प्रोडक्शन वातावरण में Machine Learning (CMU कोर्स)
(mlip-cmu.github.io)- CMU का 17-445/17-645/17-745 Machine Learning in Production / AI Engineering Spring 2025 कोर्स इस बात पर केंद्रित है कि ML मॉडल को वास्तविक रूप से deploy और operate किए जा सकने वाले software products में कैसे बदला जाए
- इसका मुख्य बिंदु data scientists और software engineers के बीच साझा समझ बनाना है, और मॉडल की त्रुटियों को मानकर requirements, design, deployment, operations और quality assurance को जोड़ना है
- कोर्स में गलत predictions की तैयारी, MLOps, A/B testing और canary release, data quality·concept drift·feedback loop detection, testing·debugging, fairness·privacy·safety जैसे विषयों को व्यापक रूप से कवर किया जाता है
- छात्र 10 लाख users के स्तर की movie recommendation service को group project के रूप में build, deploy, evaluate और maintain करते हैं, और Kafka, Jenkins, Prometheus, Grafana, Docker आदि पर hands-on अभ्यास भी करते हैं
- बुनियादी ML अनुभव और programming skill अपेक्षित हैं, लेकिन software engineering का अनुभव अनिवार्य नहीं है; lecture materials, assignments और textbook खुले रूप में उपलब्ध हैं, इसलिए self-learning और teaching material के रूप में इनका उपयोग किया जा सकता है
कोर्स के लक्ष्य और लक्षित छात्र
- Machine Learning in Production / AI Engineering एक ऐसा कोर्स है जो ML मॉडल या prompt से prediction बनाने के चरण के बाद की प्रक्रिया पर केंद्रित है
- मॉडल को product में बदलना और वास्तविक वातावरण में deploy करना
- quality पर भरोसा स्थापित करना
- scale के साथ operate और maintain करना
- Spring 2025 कोर्स उन छात्रों के लिए design किया गया है जिन्हें कुछ data science अनुभव है
- उदाहरण: ML कोर्स किया हो,
sklearnका उपयोग किया हो - बुनियादी Python programming और Unix shell उपयोग की क्षमता अपेक्षित है
- testing, requirements, architecture, process, team experience जैसी software engineering background आवश्यक नहीं है
- उदाहरण: ML कोर्स किया हो,
- आगे चलकर यह कोर्स कम-से-कम हर spring semester में पेश किया जाएगा, और कुछ fall semester में भी खुल सकता है
- summer semester में इसे चलाने की योजना नहीं है
सार्वजनिक सामग्री और संदर्भ संसाधन
- researchers, educators और रुचि रखने वाले पाठकों के लिए slides और assignments सहित पूरा material Creative Commons license के तहत सार्वजनिक किया गया है
- CMU MLIP GitHub
- Spring 2025 की सार्वजनिक सामग्री course GitHub repository में है
- एक online textbook भी उपलब्ध है, जिसमें लगभग पूरे course से मेल खाने वाले chapters हैं
- Machine Learning in Production textbook
- यह textbook MIT Press द्वारा प्रकाशित की जाएगी, और online Creative Commons license के तहत उपलब्ध है
- कोर्स के उद्देश्य और शुरुआती design पर आधारित एक paper भी दिया गया है
- Summer 2020 के lecture recordings course page पर उपलब्ध हैं, लेकिन अभी के हिसाब से वे कुछ पुराने हो चुके हैं
- संबंधित research खोजने के लिए एक annotated bibliography भी उपलब्ध है
प्रोडक्शन ML सिस्टम में उठने वाले प्रश्न
-
गलत predictions के लिए तैयार design
- ऐसे हालात में सिस्टम कैसे काम करे जब मॉडल गलत हो सकता है
- संभावित गलतियों के बावजूद safety और security कैसे बनाए रखें
- वास्तविक वातावरण में काम करने वाले user interface और पूरे system design को साथ में देखना
-
प्रोडक्शन deployment और updates
- मॉडल को स्थिर तरीके से deploy और update कैसे करें
- पूरे ML pipeline को test कैसे करें
- MLOps tools के जरिए deployment process को automate और scale करना
- A/B testing और canary release जैसे production experiments को संभालना
- data quality issues, concept drift और feedback loop detection को संभालना
-
scalable ML systems
- बड़े पैमाने के training data, telemetry data और user requests को संभालने वाले systems का design
- stream processing, batch processing, lambda architecture, data lake जैसे विकल्पों की तुलना
-
testing और debugging
- production में model prediction quality का मूल्यांकन कैसे करें
- सिर्फ model नहीं बल्कि पूरे ML-based system का test करना
- software testing, automatic test case generation, simulation और continuous integration से मिले lessons को ML production testing में लागू करना
-
accuracy के अलावा quality attributes
- training·inference latency, operating cost, scalability, explainability, fairness, privacy, robustness और safety को देखना
- offline operation की आवश्यकता है या नहीं और model update frequency पर भी विचार करना
- business production environment में महत्वपूर्ण quality requirements को पहचानना और conflicts व trade-offs को संतुलित करना
case studies और group project
- lecture में शामिल case studies विभिन्न ML-based products को कवर करती हैं
- automatic speech transcription
- webcam आधारित missing children distributed detection
- augmented reality instant translation
- cancer detection, fall detection, COVID diagnosis जैसी medical·health services
- PowerPoint automatic slide layout
- semi-automatic college admissions evaluation
- inventory management
- smart playlist और movie recommendation
- ad fraud detection
- delivery robots और smart driving features
- scalable group project में movie recommendation service को build, deploy, evaluate और maintain करना शामिल है
- इसमें कुछ हद तक यथार्थवादी “production” environment माना गया है
- user scale 10 लाख है
learning outcomes और practical tools
- कोर्स के बाद छात्रों को ML component वाले production system design में कई quality attributes के trade-offs का analysis करने में सक्षम होना चाहिए
- accuracy के अलावा operating cost, latency, updateability और explainability को देखना
- ML component की त्रुटि-सम्भावना को मानकर production quality के robust systems implement करने में सक्षम होना चाहिए
- model training, serving, versioning और experimentation के लिए fault-tolerant और scalable data infrastructure design कर सकना चाहिए
- test automation और quality assurance techniques के जरिए पूरे ML pipeline की quality सुनिश्चित करनी चाहिए
- data quality
- data drift
- feedback loop
- model quality
- production में test और monitor किए जा सकने वाले systems और robust deployment pipelines बनाने में सक्षम होना चाहिए
- safety, security, privacy, fairness, usability जैसी system-level requirements पर विचार करना चाहिए
- जिन tools से परिचित कराया जाएगा उनमें Apache Kafka, Jenkins, Prometheus, Grafana, Docker और कई MLOps tools शामिल हैं
कोर्स संचालन और schedule
- कोर्स नंबर 17-445/17-645/17-745 है और यह 12-unit का कोर्स है
- सभी नंबरों में course content समान है, लेकिन PhD-स्तर के 17-745 में दो assignments को अनिवार्य research project से बदला जाता है
- Spring 2025 lectures in-person होंगे
- lecture: सोमवार·बुधवार 2:00–3:20pm, PH 100
- lab: शुक्रवार को कई समय और स्थानों पर, और remote-only lab भी उपलब्ध है
- हाल के कुछ वर्षों में course content काफी स्थिर रहा है, लेकिन विशिष्ट topics और tools को नई research और tools के अनुसार लगातार update किया जाता है
- tentative schedule बदल सकता है, और semester के दौरान requested topics या learning support के आधार पर समायोजित किया जा सकता है
- lecture topic flow मॉडल से AI-based systems की ओर बदलाव, requirement gathering, mistakes की तैयारी, model quality, collaboration, behavior-based model testing, architecture और design, model deployment, production experiments, data quality, pipeline automation, scaling, operations planning, versioning·provenance·reproducibility, technical debt, ethics·fairness, explainability, safety, security·privacy आदि तक जाता है
मूल्यांकन और assignment policy
- assignment submission, grading, discussion, questions, announcements और supplementary documents के लिए Canvas और Gradescope का उपयोग होता है
- slides course page पर पोस्ट की जाती हैं, और Slack का उपयोग homework व project communication के लिए होता है
- GitHub का उपयोग group work coordination के लिए होता है
- grading weight इस प्रकार है
- individual assignments 35%
- group project 30%
- midterm 15%
- participation 5%
- lab 10%
- reading quiz 5%
- final exam नहीं है
- grading में स्पष्ट specification और points rubric दिया जाता है, और हर हिस्से को pass/fail के रूप में grade किया जाता है
- partial credit नहीं है
- कुछ assignments में थोड़े bonus points होते हैं
- grade boundaries अपेक्षाकृत ऊँची रखी गई हैं
- A+ 99% से अधिक
- A 96% से अधिक
- A- 94% से अधिक
- B+ 91% से अधिक
- B 86% से अधिक
- B- 82% से अधिक
- C 75% से अधिक
- D 60% से अधिक
पूर्वज्ञान और कोर्स की तैयारी
- कोई आधिकारिक prerequisite नहीं है, लेकिन सफलतापूर्वक कोर्स करने के लिए बुनियादी ML अनुभव और basic programming skill अपेक्षित हैं
- ML background के लिए feature extraction, model building और evaluation, और learning techniques कब और कैसे काम करती हैं, इसकी बुनियादी समझ की सिफारिश की जाती है
- Python और Jupyter notebook का अनुभव मददगार है
- practical projects, self-study और online courses भी पर्याप्त हो सकते हैं
- anonymous·ungraded prerequisite knowledge check के जरिए अपनी background knowledge जाँची जा सकती है
- programming में basic proficiency आवश्यक है
- Python जैसी भाषा में बुनियादी fluency
- उस भाषा की libraries install करने और सीखने की क्षमता
- Unix machine पर
sshसे login कर basic command-line tasks करने की क्षमता - Docker जैसे नए tools install और सीखने की क्षमता
- कोई specific programming language तय नहीं है, लेकिन लगभग सभी teams मुख्य रूप से Python का उपयोग करती हैं
- Git, Docker, Grafana, Jenkins जैसे आवश्यक tools का परिचय और examples labs में दिए जाते हैं, और छात्रों से अपेक्षा की जाती है कि वे documentation और tutorials पढ़कर खुद सीखें
- Flask जैसी libraries से web services लिखने का बुनियादी उपयोग students को स्वयं सीख पाने में सक्षम होना चाहिए
- software engineering experience prerequisite नहीं है
- requirements engineering, software design, software testing, distributed systems, continuous deployment, team management जैसे topics को course में कवर किया जाता है
class participation, labs और reading
- lectures in-person होंगी, और class participation learning experience का महत्वपूर्ण हिस्सा है
- lecture recordings Canvas पर best effort आधार पर उपलब्ध कराए जाते हैं
- synchronous remote class option नहीं है
- labs record नहीं किए जाते
- Slack का उपयोग class activities के दौरान भी होता है, इसलिए class के समय laptop, tablet या phone पर इसका access होना चाहिए
- labs आमतौर पर tools का परिचय देती हैं और एक या अधिक स्पष्ट deliverables माँगती हैं
- lab assignments लगभग 1 घंटे के काम के हिसाब से design किए गए हैं
- deliverables को उसी सप्ताह के lab समय में TA को दिखाने पर pass/fail grade मिलता है
- इनमें code, running demo, और oral questions के answers शामिल हो सकते हैं
- labs को low-stakes first practice के रूप में design किया गया है
- यदि अपेक्षा पूरी न हो तो lab समय के दौरान संशोधन जारी रखा जा सकता है
- बिना स्पष्ट कारण या token उपयोग के lab समाप्त होने के बाद submission स्वीकार नहीं किए जाते
- reading material के रूप में Goeff Hulten की Building Intelligent Systems: A Guide to Machine Learning Engineering का व्यापक उपयोग होता है
- स्वयं की Machine Learning in Production textbook हर lecture से काफ़ी निकटता से जुड़ी है, लेकिन इसे required reading chapter नहीं बल्कि supplementary reading के रूप में बताया गया है
- अधिकांश classes में reading assignments होती हैं, और Canvas पर reading quiz class से पहले submit करनी होती है
- quiz में reading से संबंधित 1 open-ended question होता है
- ईमानदार भागीदारी को pass/fail आधार पर आंका जाता है
teamwork और submission flexibility
- teamwork इस course का अनिवार्य तत्व है
- group project 3–5 लोगों की team में किया जाता है
- teams instructor द्वारा assign की जाती हैं
- हर team को एक TA mentor दिया जाता है
- team assignments में team citizenship मानदंड पर peer evaluation लागू होती है
- सक्रिय और सहयोगी team member की भूमिका का मूल्यांकन किया जाता है
- team mentor हर milestone के बाद team के साथ debrief करता है और teamwork सुधारने की रणनीतियों पर चर्चा करता है
- हर छात्र को semester के दौरान उपयोग के लिए 8 personal tokens दिए जाते हैं
- 1 token से individual homework 1 दिन late submit किया जा सकता है
- 3 tokens से individual homework को improve या rework करके छोटी reflection के साथ resubmit किया जा सकता है
- 1 token से reading quiz late submit या resubmit की जा सकती है
- 1 token से lab late complete या redo की जा सकती है
- बचे हुए personal tokens semester के अंत में 1 दिन participation के रूप में गिने जाते हैं
- हर team को अलग से 8 team tokens भी दिए जाते हैं
- milestone deadline extension के लिए प्रति दिन 1 token उपयोग किया जा सकता है
- reflection के साथ milestone resubmission के लिए 3 tokens उपयोग किए जा सकते हैं
- personal tokens और team tokens एक-दूसरे के बदले उपयोग नहीं किए जा सकते
- token न होने पर individual या team assignment late submission पर शुरू हुए हर दिन के लिए 15% penalty लागू होती है
AI tools, collaboration और research participation
- कोर्स की प्रकृति के कारण content generation AI tools के उपयोग पर कोई विशेष प्रतिबंध नहीं है
- ChatGPT, Bard, Co-Pilot, Stable Diffusion जैसे tools का उपयोग किया जा सकता है
- StackOverflow या tutorials जैसे बाहरी code reuse भी संभव है
- submissions की accuracy पूरी तरह students की जिम्मेदारी है
- content generation tools भरोसेमंद दिखने वाले लेकिन गलत answers बना सकते हैं, और ऐसे answers को अंक नहीं मिलेंगे
- लागू licenses का पालन करना भी students की जिम्मेदारी है
- सामान्य academic integrity policy लागू होती है
- अन्य छात्रों के answers copy नहीं किए जा सकते और न ही साथ मिलकर लिखे गए answers इस्तेमाल किए जा सकते हैं
- अन्य छात्रों के answers नहीं देखने चाहिए, अपने answers उपलब्ध नहीं कराने चाहिए, और उन्हें ऐसी जगह नहीं छोड़ना चाहिए जहाँ अन्य छात्र देख सकें
- answers को public GitHub पर डालना भी अनुमति नहीं है
- labs में अन्य छात्रों के साथ collaboration किया जा सकता है, लेकिन reading quiz, homework और exams में collaboration नहीं किया जा सकता
- cheating पर न्यूनतम दंड पूरे assignment में 0 अंक है, और university procedure के अनुसार अतिरिक्त disciplinary action भी संभव है
- course में student assignments का analysis करने वाला academic research भी किया जाता है
- भाग न लेने पर grades या CMU academic record पर कोई प्रभाव नहीं पड़ेगा
- research data में student grades शामिल नहीं होंगे
- analysis course समाप्त होने और final grades submit होने के बाद de-identified और aggregated रूप में किया जाएगा
1 टिप्पणियां
Hacker News की राय
सामग्री वाकई व्यावहारिक है। Kafka, Docker, Kubernetes, Jenkins सभी industry-standard tools हैं, और MLOps पर focus भी ताज़ा लगता है
यह अच्छा है कि course सिर्फ model बनाने पर नहीं रुकता, बल्कि machine learning और वास्तविक operational systems के बीच की खाई को address करता है। explainability, fairness और monitoring तक cover करना भी पसंद आया। हालांकि labs देखने पर लगता है कि इसमें काफी कुछ ऐसा है जिसे mid-level software engineer या motivated beginner भी tutorials से सीख सकता है। Git, Flask, container orchestration उपयोगी हैं, लेकिन जिन लोगों ने production environment पहले ही देखा है, उनके लिए ये काफी basic हैं। distributed training networking optimization या large-scale inference operations जैसे गहरे topics कम cover होते दिखते हैं, और उत्सुकता है कि क्या वे group projects में आते हैं। Jenkins widely used है, लेकिन CI/CD के लिए GitHub Actions या ArgoCD जैसे ज्यादा modern tools भी introduce करना बेहतर नहीं होता? Kubernetes भी जरूरी है, पर edge deployment या serverless systems के लिए alternatives/complementary tools तक cover करें तो यह ज्यादा future-oriented हो सकता है
अगर Jenkins और दूसरे CI/CD frameworks के बीच conceptual तौर पर कोई बड़ा फर्क नहीं है, तो लोकप्रिय options में से एक चुनकर इस्तेमाल किया जा सकता है, और लगता है कि उन्होंने यही किया है
20 साल पहले Java में database बनाकर सीखते थे, और तब भी “ऐसे tools” इस्तेमाल करते थे जो कभी न कभी obsolete हो जाएंगे। बस नया starting point बदल गया है
Labs पर नजर डाली तो दिलचस्प लगे। मैं बहुत ज्यादा LLM experience न रखने वाला full-stack developer हूं, फिर भी Git, Flask, Kafka, Kubernetes जैसे आधे tools से पहले से परिचित हूं, और बाकी आधा भी बस code जैसा दिखता है
machine learning सुनते ही जो जटिल maths दिमाग में आती थी, वह लगभग नहीं है। तो क्या इसका मतलब है कि MLOps ऐसा field है जिसमें PhD के बिना general developers भी practical तौर पर आसानी से प्रवेश कर सकते हैं?
उदाहरण के लिए, simulation से बहुत सारा synthetic data बनाना हो तो unbiased dataset generation itself से ज्यादा batch processing, encoding formats और data loading जैसी समस्याओं में आपकी दिलचस्पी हो सकती है। अगर crowdsourcing से data collect/sample करना हो, तो reservoir sampling theory से ज्यादा अक्सर online fast processing और cost/compute का efficient implementation महत्वपूर्ण होता है
ज्यादातर companies में machine learning engineer ऐसा engineer होता है जो software और machine learning का कुछ हिस्सा समझता है; अच्छे case में दोनों में अच्छा होता है, खराब case में दोनों में नहीं
यह course data quality को लगभग cover नहीं करता और लगता है कि chapter 16 तक जाकर ही आता है। उत्सुकता है कि authors के पास industry experience कितना है
असल में समय का 90% data quality और data cleaning में ही चला जाता है
उदाहरण के लिए मेरा machine learning काम लगभग पूरी तरह engineering simulation regression/surrogate model development के context में है, इसलिए data quality या cleaning लगभग समस्या नहीं होती। ज्यादातर काम dataset generation और model selection/training/deployment की तरफ होता है। काम के हिसाब से बदलता है
अगर data pipeline के source generation, transformation और preprocessing stages में जम जाने से पहले इसे तैयार कर लें, तो बाद में बहुत सिरदर्द कम हो सकता है
सोच रहा हूं कि क्या non-students के लिए भी साथ-साथ follow करने की कोई जगह है
सोच रहा हूं कि कोई भी enroll कर सकता है, या देश के top computer science programs में से एक में admission लेना जरूरी है
अच्छा लगता है। LLM Systems course भी ऐसा ही है
क्या किसी को machine learning cluster infrastructure बनाने से जुड़ी literature या lectures पता हैं? खासकर storage infrastructure scaling, networking और scheduling approaches में दिलचस्पी है
storage में अगर models या data store करना है तो S3 जैसे object storage या EFS, Lustre जैसे shared network file systems इस्तेमाल किए जा सकते हैं। बड़े GPU networking पर कोई definitive material मुझे अच्छी तरह नहीं पता। scheduling अब लगभग solved problem जैसा है, इसलिए कुछ भी काम कर जाएगा। periodically Docker image-based jobs चलाने वाला अपना coordinator भी बना सकते हैं, और message queue-based metadata/trigger system जोड़ दें तो काफी जल्दी बनाया जा सकता है। Airflow या large-scale jobs के लिए AWS Batch भी संभव है। जो चीज छूट सकती है वह model serving है। खासकर recommendation systems में यह कठिन और latency-sensitive होता है, और latency spikes व traffic spikes के लिए vulnerable होता है। अच्छी तरह लिखा Python code भी काफी जल्दी limits से टकरा सकता है
अच्छा लगा कि यह course आया। Christian इंसान के तौर पर भी शानदार हैं और उनका काम भी अच्छा है। मैं इस course और book के शुरुआती रूप से कुछ हद तक परिचित हूं, इसलिए strongly recommend कर सकता हूं
अलग-अलग scales के machine learning platforms और systems पर 9.5 साल काम किया है, और सामग्री अच्छी लगती है
हो सकता है मैं course की difficulty को underestimate कर रहा हूं, लेकिन यह introductory course जैसा सुनाई देता है। model explainability tools से पहले तक ज्यादातर चीजें काफी intuitive लगती हैं
फिर भी, ज्यादातर use cases में industry-standard tools इस्तेमाल करना अच्छा लगता है