CS 203: Software Tools & Techniques for AI

IIT Gandhinagar

Sem II - 2024-25


Instructor: Mayank Singh (email: singh.mayank@iitgn.ac.in)

Class Schedule: K1, Monday 15:30 - 16:50

Location: AB 10/201


Lab Schedule: J2,M2, Friday 14:00 - 15:20 15:30 - 16:50

Location: AB 7/109 


Communication Google group: cs203-2024.pvtgroup@iitgn.ac.in


Google Classroom: CS 203 Google Classroom   join this classroom for class related communication.



Teaching Assistants:


Prerequisite (Optional)

Course Contents

1. Data collection and labeling 

a. collecting data: tools for logging/instrumenting sources (e.g. website) to collect usage data; 

b. validating data 

c. labeling data: tools such as label studio to annotate datasets, methods such as Cohen Kappa inter-annotator agreement, snowball sampling, active learning for cost-effective data annotation, 

d. data augmentation

2. Model and code reproducibility and versioning: 

a. architecture and hyperparameter search: tools such as weights and biases for architecture and hyperparameter search and various AutoML tools such as AutoGluon 

b. model checkpointing: tools such as MLFlow, Tensorboard/Weights, and Biases for model/weights checkpointing 

c. data versioning;

3. Self-contained environments: tools such as Docker for managing released packages; cloud platforms such as GCP/AWS/Azure;

4. Run-time profiling and optimization (e.g., memory footprint, measuring GPU utilization and optimizing it).

5. Continuous Integration/Co: A/B tests; Distribution, Covariate shift— data version management and retraining to account for shifts; Redeployment

6. Deployment on constrained devices: tools such as TF-lite, topics like quantization, etc.


Lecture Slides and Lab Material (Slides and Colab Notebooks)


Week 1 (Jan 6-10): Course Introduction and Data Collection  (Lead TA:Eshwar)

              Lecture: 

               

             Lab: 


Week 2 (Jan 13-17): Data Validation  (Lead TA: Sailesh)

               Lecture: 


               Lab:


Week 3 (Jan 20-24): Data Labeling and Inter-Annotator Agreement  (Lead TA:Aamod)

              Lecture: 


              Lab:


Week 4 (Jan 27-31): Active Learning and Cost-Effective Labeling  (Lead TA:Eshwar)

              Lecture: 


              Lab:


Week 5 (Feb 3-7): Data Augmentation  (Lead TA:Aamod)

              Lecture: 

              Lab:


Week 6 (Feb 10-14): Reproducibility and Versioning  (Lead TA:Eshwar)

              Lecture: 

              Lab:


Week 7 (Feb 17-21): Architecture and Hyperparameter Search  (Lead TA: Himanshu)

              Lecture: 

              Lab:

Week 8 (Feb 24-28): Model Checkpointing  (Lead TA: Himanshu)

              Lecture: 

              Lab:


Week 9 (Mar 3-7): Mid-Semester Exams


Week 10 (Mar 10-14): Self-Contained Environments  (Lead TA: Aamod)

Lecture: 


              Lab:


Week 11 (Mar 17-21): Profiling and Optimization  (Lead TA: Eshwar)

Lecture: 


              Lab:


Week 12 (Mar 24-28): Continuous Integration/Continuous Deployment (CI/CD)  (Lead TA: Sailesh)

    Lecture: 


              Lab:



Week 13 (Mar 31- Apr 4):  A/B Testing and Covariate Shift (Lead TA: Sailesh)

    Lecture: 


              Lab:



Week 14 (Apr 7-11): Deployment on Constrained Devices  (Lead TA: Himanshu)

              Lecture: 


              Lab:



Week 15 (Apr 14-18): Course Wrap-Up and Discussions

              Lecture: 

              Lab: Brainstorming Lab sessions


Week 16 (Apr 21 onwards): Examinations and Evaluations



Grading Policy & Schedule


Books


Reference course

CS 329 course from Stanford University https://stanford-cs329s.github.io/syllabus.html