Andrej Karpathy की डीप लर्निंग यह दिखाती है कि कैसे स्पष्ट मान्यताओं, मीट्रिक्स और इंजीनियरिंग-फ़र्स्ट वर्कफ़्लो के साथ न्यूरल नेट्स को प्रोडक्ट में बदला जाए।

एक डीप लर्निंग डेमो जादू जैसा लग सकता है। एक मॉडल साफ़ पैराग्राफ लिख देता है, किसी ऑब्जेक्ट को पहचान लेता है, या एक मुश्किल सवाल का जवाब दे देता है। फिर आप उस डेमो को रोज़ाना दबाए जाने वाले बटन में बदलने की कोशिश करते हैं, और चीज़ें उलझ जाती हैं। वही प्रॉम्प्ट अलग तरह से व्यवहार करता है, एज केस बढ़ जाते हैं, और वो "वाह" का पल सपोर्ट टिकट बन जाता है।
यही फर्क है जिसकी वजह से Andrej Karpathy का काम बिल्डर्स के बीच गूंजता है। उन्होंने एक माइंडसेट को बढ़ावा दिया जहाँ नयूरल नेट रहस्यमयी वस्तुएँ नहीं हैं। वे सिस्टम हैं जिन्हें आप डिज़ाइन, टेस्ट और मेंटेन कर सकते हैं। मॉडल बेकार नहीं होते—प्रोडक्ट्स सिर्फ़ स्थिरता मांगते हैं।
जब टीमें कहती हैं वे “प्रैक्टिकल” AI चाहती हैं, तो आमतौर पर वे चार चीज़ें चाहती हैं:
टीमें इसलिए संघर्ष करती हैं क्योंकि डीप लर्निंग संभाव्य और संदर्भ-संवेदी है, जबकि प्रोडक्ट्स भरोसेमंदता पर आँके जाते हैं। एक चैटबॉट जो 80% सवालों का सही जवाब देता है, तब भी टूटे हुए जैसा लग सकता है अगर बाकी 20% आत्मविश्वासी, गलत और पता लगाने में कठिन हों।
एक "ऑटो-रिप्लाई" असिस्टेंट लें ग्राहक सपोर्ट के लिए। यह कुछ चुनिंदा टिकटों पर शानदार दिखता है। प्रोडक्शन में ग्राहक स्लैंग लिखते हैं, स्क्रीनशॉट दें, भाषाएँ मिलाएँ, या नीति के एज केस पूछें। अब आपको गार्डरैलों, स्पष्ट इनकार व्यवहार, और मापने का तरीका चाहिए कि क्या ड्राफ्ट ने वास्तव में एजेंट की मदद की।
कई लोगों ने Karpathy के काम को व्यावहारिक उदाहरणों के जरिए देखा, न कि अमूर्त गणित के जरिए। शुरुआती प्रोजेक्ट्स भी एक साधारण बात बताते थे: नयूरल नेट तब उपयोगी होते हैं जब आप उन्हें उस सॉफ्टवेयर की तरह मानते हैं जिसे आप टेस्ट, तोड़ और फिक्स कर सकें।
"मॉडल काम करता है" पर रुकने की बजाय ध्यान इसे गंदे, असली डेटा पर चलाने पर शिफ्ट होता है। इसमें डेटा पाइपलाइन्स, ट्रेनिंग रन जो नॉन-ग्लैमरस कारणों से फेल होते हैं, और नतीजे जो एक छोटे बदलाव से बदल जाते हैं, सब आते हैं। उस दुनिया में डीप लर्निंग रहस्यमयी लगना बंद कर देता है और इंजीनियरिंग जैसा महसूस होने लगता है।
Karpathy-शैली का तरीका रहस्यमयी ट्रिक्स के बारे में कम और आदतों के बारे में अधिक है:
यह नींव बाद में मायने रखती है क्योंकि प्रोडक्ट AI मूल रूप से वही खेल है, बस दांव ज़्यादा बड़े होते हैं। अगर आप शुरु में क्राफ्ट नहीं बनाते (साफ़ इनपुट, साफ़ आउटपुट, दोहराए जाने योग्य रन), तो AI फीचर शिप करना अटकलबाज़ी बन जाता है।
Karpathy का बड़ा प्रभाव यह था कि उन्होंने नयूरल नेट्स को ऐसी चीज़ माना जिसे आप तर्कसंगत बना सकें। स्पष्ट व्याख्याएँ काम को "विश्वास प्रणाली" से इंजीनियरिंग में बदल देती हैं।
यह टीमों के लिए इसलिए महत्वपूर्ण है क्योंकि जो व्यक्ति पहला प्रोटोटाइप शिप करता है अक्सर वही व्यक्ति नहीं होता जो उसे मेंटेन करे। अगर आप यह समझा नहीं सकते कि मॉडल क्या कर रहा है, तो आप शायद उसे डिबग नहीं कर पाएँगे, और निश्चित रूप से आप प्रोडक्शन में उसका समर्थन नहीं कर पाएँगे।
जल्दी स्पष्टता ज़बरदस्ती लागू करें। फीचर बनाने से पहले लिख दीजिए कि मॉडल क्या देखता है, क्या आउटपुट देता है, और आप कैसे बताएँगे कि यह बेहतर हो रहा है। अधिकतर AI प्रोजेक्ट्स बेसिक्स पर फेल होते हैं, गणित पर नहीं।
एक छोटा चेकलिस्ट जो बाद में फायदा देता है:
स्पष्ट सोच अनुशासित प्रयोगों में दिखती है: एक स्क्रिप्ट जिसे आप फिर से चला सकें, फिक्स्ड इवैल्यूएशन डेटासेट, वर्शन किए हुए प्रॉम्प्ट, और लॉग किए हुए मीट्रिक्स। बेसलाइन्स आपको ईमानदार रखते हैं और प्रगति को दिखाई देता बनाते हैं।
एक प्रोटोटाइप यह साबित करता है कि किसी आइडिया पर काम किया जा सकता है। एक शिप्ड फीचर यह साबित करता है कि यह रोज़ाना, गंदे हालात में लोगों के लिए काम करता है। यही वह गैप है जहाँ कई AI प्रोजेक्ट अटक जाते हैं।
एक रिसर्च डेमो धीमा, महंगा और नाज़ुक हो सकता है, जब तक वह क्षमता दिखाता रहे। प्रोडक्शन में प्राथमिकताएँ उलट जाती हैं। सिस्टम को पूर्वानुमेय, देखे जाने योग्य और सुरक्षित होना चाहिए — भले ही इनपुट अजीब हों, यूज़र्स अधीर हों, और ट्रैफ़िक स्पाइक हो।
प्रोडक्शन में लेटेंसी एक फीचर है। अगर मॉडल को 8 सेकंड लगते हैं, तो यूज़र्स इसे छोड़ देते हैं या बटन स्पैम करते हैं, और हर रीट्राई का पैसा लगता है। लागत भी एक प्रोडक्ट निर्णय बन जाती है, क्योंकि एक छोटा प्रॉम्प्ट बदलाव आपके बिल को दोगुना कर सकता है।
मॉनिटरिंग अनिवार्य है। आपको सिर्फ सेवा चलने की जानकारी ही नहीं चाहिए, बल्कि यह भी जानना चाहिए कि आउटपुट समय के साथ स्वीकार्य क्वालिटी के भीतर बने रहें। डेटा शिफ्ट, नए यूज़र बिहेवियर, और अपस्ट्रीम बदलाव बिना किसी एरर के परफॉर्मेंस को चुपचाप तोड़ सकते हैं।
सुरक्षा और पॉलिसी चेक "अच्छा होने" से "ज़रूरी" बन जाते हैं। आपको हानिकारक अनुरोधों, निजी डेटा, और एज केस्स को इस तरह हैंडल करना होगा जो सुसंगत और टेस्टेबल हो।
टीमें आमतौर पर एक ही सेट के सवालों का जवाब देती हैं:
एक प्रोटोटाइप एक व्यक्ति बना सकता है। शिपिंग के लिए आमतौर पर प्रोडक्ट को सफलता परिभाषित करनी होती है, डेटा वर्क से इनपुट और इवैल्यूएशन सेट वैलिडेट होते हैं, इंफ्रास्ट्रक्चर इसे भरोसेमंद चलाती है, और QA फेल्योर मोड्स टेस्ट करती है।
"माई मशीन पर काम कर रहा है" रिलीज़ का मानदंड नहीं है। एक रिलीज़ का मतलब है कि यह लोड के तहत यूज़र्स के लिए काम करता है, लॉगिंग, गार्डरैल्स, और एक तरीका होता है यह नापने का कि यह मदद कर रहा है या नुकसान।
Karpathy का प्रभाव तकनीकी नहीं बल्कि सांस्कृतिक है। उन्होंने नयूरल नेट्स को उसी अनुशासन के साथ बनाया, टेस्ट किया और सुधारा जैसे किसी भी इंजीनियरिंग सिस्टम के साथ करेंगे।
यह कोड लिखने से पहले मान्यताएँ लिखने से शुरू होता है। अगर आप यह नहीं बता सकते कि फीचर के काम करने के लिए क्या सच होना चाहिए, तो बाद में आप उसे डिबग नहीं कर पाएँगे। उदाहरण:
ये टेस्टेबल स्टेटमेंट्स हैं।
बेसलाइन्स इसके बाद आते हैं। बेसलाइन वह सबसे सरल चीज़ है जो काम कर सकती है, और यह आपकी रियलिटी चेक है। यह नियम, सर्च टेम्पलेट, या अच्छा UI के साथ "कुछ न करना" भी हो सकता है। मजबूत बेसलाइन्स आपको एक शानदार मॉडल पर हफ्तों बर्बाद करने से बचाती हैं जो कुछ सरल से बेहतर नहीं है।
इंस्ट्रुमेंटेशन इटरेशन को संभव बनाती है। सिर्फ़ डेमो देखकर आप मूड से चल रहे होते हैं। कई AI फीचर्स के लिए कुछ संख्याएँ ही बता देती हैं कि आप सुधार कर रहे हैं या नहीं:
फिर तंग लूप में इटरेट करें। एक चीज बदलिए, बेसलाइन से तुलना करें, और आपने क्या आज़माया और क्या बदला इसकी सरल लॉग रखें। अगर प्रगति असली है, तो वह ग्राफ़ पर दिखती है।
AI शिप करना सबसे अच्छा तब काम करता है जब आप इसे इंजीनियरिंग की तरह ट्रीट करें: स्पष्ट लक्ष्य, एक बेसलाइन, और तेज़ फीडबैक लूप्स।
एक वाक्य में यूज़र समस्या बताइए। इसे ऐसे लिखें जैसे असली व्यक्ति की शिकायत: “सपोर्ट एजेंट सामान्य सवालों के जवाब ड्राफ्ट करने में बहुत समय लगाते हैं।” अगर आप इसे एक वाक्य में नहीं कह सकते, तो फीचर शायद बहुत बड़ा है।
एक मापनीय परिणाम चुनें। एक संख्या चुनें जिसे आप साप्ताहिक ट्रैक कर सकें। अच्छे विकल्पों में समय की बचत प्रति टास्क, फर्स्ट-ड्राफ्ट स्वीकृति दर, एडिट्स में कमी, या टिकट डिफ्लेक्शन रेट शामिल हैं। निर्माण से पहले "पर्याप्त अच्छा" तय करें।
उस बेसलाइन को परिभाषित करें जिसे आपको हराना है। एक सरल टेम्पलेट, नियम-आधारित तरीका, या "केवल इंसान" के खिलाफ तुलना करें। अगर AI आपकी चुनी हुई मीट्रिक पर बेसलाइन को नहीं हरा पा रहा, तो शिप मत करें।
प्राकृतिक डेटा के साथ एक छोटा टेस्ट डिजाइन करें। वास्तविकता से मेल खाने वाले उदाहरण इकट्ठा करें, जिसमें गंदे केस भी हों। एक छोटा इवैल्यूएशन सेट रखें जिसे आप रोज़ाना "ट्रेïn" न करें। पास क्या गिना जाएगा और फेल क्या होगा, लिख दें।
फ्लैग के पीछे शिप करें, फीडबैक इकट्ठा करें, और इटरेट करें। पहले एक छोटा इंटर्नल ग्रुप या यूज़र्स का छोटा प्रतिशत चुनें। इनपुट, आउटपुट और क्या मदद मिली उसे लॉग करें। सबसे बड़े फेल्योर मोड को पहले ठीक करें, फिर वही टेस्ट दोहराएँ ताकि प्रगति साफ़ दिखे।
ड्राफ्टिंग टूल्स के लिए एक व्यावहारिक पैटर्न: “सेंड करने तक सेकंड” और “माइ너 एडिट्स के साथ इस्तेमाल किए गए ड्राफ्ट का प्रतिशत” मापें।
कई AI फीचर विफलताएँ मॉडल की विफलता नहीं होतीं। ये "हमने कभी सहमति नहीं की कि सफलता कैसी दिखेगी" वाली विफलताएँ होती हैं। अगर आप चाहते हैं कि डीप लर्निंग प्रैक्टिकल लगे, तो प्रॉम्प्ट या मॉडल ट्रेन करने से पहले मान्यताएँ और माप लिखें।
ऐसी मान्यताएँ लिखें जो असली उपयोग में आपके फीचर को तोड़ सकें। सामान्यत: ये डेटा और लोगों के बारे में होती हैं: इनपुट टेक्स्ट एक भाषा में है, यूज़र्स एक समय में एक ही इरादा पूछते हैं, UI पर्याप्त संदर्भ देता है, एज केस दुर्लभ हैं, और कल का पैटर्न अगले महीने भी सच रहेगा (ड्रिफ्ट)। साथ ही यह भी लिखें कि आप अभी क्या नहीं संभालेंगे—जैसे व्यंग्य, कानूनी सलाह, या लंबे दस्तावेज़।
हर मान्यता को कुछ टेस्टेबल में बदल दें। एक उपयोगी फॉर्मेट है: “यदि X दिया गया, तो सिस्टम Y करे, और हम इसे Z से सत्यापित कर सकें।” ठोस रखें।
एक पन्ने पर लिखने लायक पाँच चीज़ें:
ऑफलाइन और ऑनलाइन को अलग रखें जानबूझ कर। ऑफलाइन मीट्रिक्स बताते हैं कि सिस्टम ने टास्क सीखा या नहीं। ऑनलाइन मीट्रिक्स बताते हैं कि फीचर मानवों की मदद कर रहा है या नहीं। एक मॉडल ऑफलाइन अच्छा स्कोर कर सकता है और फिर भी यूज़र्स को परेशान कर सकता है क्योंकि वह धीमा है, बहुत आत्मविश्वासी है, या उन मामलों में गलत है जो मायने रखते हैं।
"पर्याप्त अच्छा" को थ्रेशहोल्ड और नतीजों के रूप में परिभाषित करें। उदाहरण: “ऑफलाइन: इवैल सेट पर कम से कम 85% सही; ऑनलाइन: 30% ड्राफ्ट्स कम एडिट्स के साथ स्वीकार किए गए।” अगर आप किसी थ्रेशहोल्ड को मिस करते हैं, तो पहले से तय करें क्या होगा: इसे टॉगल के पीछे रखें, रोलआउट घटाएँ, कम-कॉनफ़िडेंस केस को टेम्पलेट पर भेजें, या रोककर और डेटा इकट्ठा करें।
टीमें अक्सर AI फीचर को सामान्य UI बदलाव जैसा समझती हैं: शिप करें, देखें क्या होता है, बाद में एडजस्ट करें। यह जल्दी विफल कर देता है क्योंकि मॉडल बिहेवियर प्रॉम्प्ट्स, ड्रिफ्ट, और छोटे कॉन्फ़िगरेशन एडिट्स से बदल सकता है। नतीजा बहुत मेहनत और कोई स्पष्ट सबूत नहीं कि इससे फायदा हुआ।
एक व्यावहारिक नियम साधारण है: अगर आप बेसलाइन और माप नहीं बता सकते, तो आप अभी शिप नहीं कर रहे।
सबसे आम फेल्योर मोड्स:
एक ठोस उदाहरण: आप सपोर्ट रिप्लाइ ड्राफ्ट करने के लिए AI जोड़ते हैं। अगर आप केवल थम्ब्स-अप ट्रैक करते हैं, तो आप यह देख न पाएँगे कि एजेंट ड्राफ्ट की समीक्षा करने में ज़्यादा समय ले रहे हैं, या जवाब सही तो हैं पर बहुत लंबे हैं। बेहतर माप हैं “कम एडिट्स के साथ भेजे गए प्रतिशत” और “मीडियन समय टू सेंड”।
रिलीज़ डे को एक इंजीनियरिंग हैंडऑफ की तरह ट्रीट करें, न कि एक डेमो की तरह। आप चाहें तो सरल शब्दों में समझा सकें कि फीचर क्या करता है, आप कैसे जानते हैं कि यह काम करता है, और यह टूटने पर आप क्या करेंगे।
शिप करने से पहले सुनिश्चित करें कि आपके पास है:
साथ ही एक ऑफलाइन इवैल्यूएशन सेट रखें जो असली ट्रैफ़िक जैसा दिखे, एज केस शामिल हों, और सप्ताह दर सप्ताह तुलना के लिए पर्याप्त स्थिर रहे। जब आप प्रॉम्प्ट, मॉडल, या डेटा क्लीनिंग बदलते हैं, तो वही सेट फिर से चलाएं और देखें क्या बदला।
एक सपोर्ट टीम चाहती है कि टिकट व्यू में एक असिस्टेंट ड्राफ्ट प्रस्ताव करे। एजेंट खुद संदेश नहीं भेजता—यह ड्राफ्ट सुझाता है, उसने जिन मुख्य तथ्यों का उपयोग किया उन्हें हाइलाइट करता है, और एजेंट से भेजने से पहले समीक्षा व संपादन करने को कहता है। यह एक निर्णय जोखिम कम रखता है जबकि आप सीखते हैं।
शुरू करें यह तय करके कि "बेहतर" अंकों में क्या मतलब है। ऐसे आउटपुट चुनें जिन्हें आप पहले दिन से मौजूदा लॉग्स से माप सकें:
मॉडल लाने से पहले एक बोरिंग पर वास्तविक बेसलाइन रखें: सेव्ड टेम्पलेट्स प्लस सरल रूल्स लेयर (रिफंड vs शिपिंग vs पासवर्ड रिसेट का पता लगाएं और सबसे अच्छा टेम्पलेट प्रीफिल करें)। अगर AI वह बेसलाइन नहीं हराता, तो यह तैयार नहीं है।
एक छोटा पायलट चलाएँ। कुछ एजेंटों के लिए ऑप्ट-इन बनाएं, पहले एक टिकट कैटेगरी तक सीमित रखें (मान लीजिए ऑर्डर स्टेटस)। हर ड्राफ्ट पर त्वरित फीडबैक जोड़ें: “हैल्पफुल” या “नॉट हैल्पफुल,” साथ में एक छोटा कारण। केवल यह कैप्चर करें कि एजेंट ने क्या बदला, सिर्फ़ बटन क्लिक नहीं।
शिप मानदंड पहले से तय करें ताकि बाद में अनुमान न करना पड़े। उदाहरण: हैंडल टाइम 10% सुधरे बिना एस्केलेशन या रीओपन रेट न बढ़े, और एजेंट कम एडिट्स के साथ कम से कम 30% ड्राफ्ट्स स्वीकार करें।
यह भी तय करें क्या ट्रिगर रोलबैक करेगा: एस्केलेशन्स का स्पाइक, सैटिस्फैक्शन में गिरावट, या बार-बार नीति त्रुटियाँ।
एक AI आइडिया चुनें जिसे आप 2 से 4 हफ्तों में शिप कर सकें। इसे इतना छोटा रखें कि आप इसे माप सकें, डिबग कर सकें, और बिना ड्रामे के रोलबैक कर सकें। लक्ष्य मॉडल की बुद्धिमत्ता साबित करना नहीं है—लक्ष्य यह है कि यूज़र आउटपुट विश्वसनीय रूप से उस चीज़ से बेहतर हो जो आपके पास पहले थी।
आइडिया को एक पन्ने की योजना में बदलें: फीचर क्या करता है, क्या नहीं करता, और आप कैसे जानेंगे कि यह काम कर रहा है। एक बेसलाइन और ठीक वही मीट्रिक शामिल करें जिसे आप ट्रैक करेंगे।
यदि आप तेजी से इम्प्लिमेंट करना चाहते हैं, तो Koder.ai (koder.ai) वेब, सर्वर, और मोबाइल ऐप्स को चैट इंटरफ़ेस से बनाने के इर्द-गिर्द बना है, साथ में स्नैपशॉट्स/रोलबैक और स्रोत कोड एक्सपोर्ट जैसी सुविधाएँ जब आपको गहरी पकड़ चाहिए।
रखने की आदत सरल है: हर AI बदलाव के साथ एक लिखी हुई मान्यता और एक मापनीय आउटपुट होना चाहिए। इस तरह डीप लर्निंग जादू लगना बंद करती है और ऐसा काम बन जाती है जिसे आप शिप कर सकते हैं।
क्योंकि डेमो आमतौर पर साफ-सुथरे, हाथ से चुने हुए इनपुट्स पर बनते हैं और भावनाओं/प्रभाव के आधार पर जज किए जाते हैं, जबकि प्रोडक्ट्स में गंदे इनपुट, यूज़र दबाव और बार-बार उपयोग जैसी चुनौतियाँ आती हैं।
गैप बंद करने के लिए इनपुट/आउटपुट का कॉन्ट्रैक्ट परिभाषित करें, प्रतिनिधि डेटा पर क्वालिटी नापें, और टाइमआउट या लो-कॉन्फिडेंस केस के लिए फॉलबैक्स डिजाइन करें।
ऐसा मेट्रिक चुनें जो यूज़र वैल्यू से जुड़ा हो और आप साप्ताहिक रूप से ट्रैक कर सकें। अच्छे डिफ़ॉल्ट:
प्रॉम्प्ट या मॉडल ट्यून करने से पहले “पर्याप्त अच्छा” लक्ष्य तय कर लें।
वह सबसे सरल विकल्प जो वास्तविक रूप से शिप हो सकता है:
अगर AI आपकी मुख्य मीट्रिक पर बेसलाइन को नहीं हराता (और लेटेंसी/कास्ट तोड़ता भी नहीं), तो अभी शिप मत करें।
छोटी लेकिन वास्तविक evaluation सेट रखें जो असल ट्रैफ़िक जैसा दिखे, सिर्फ बेहतरीन-केस के उदाहरण नहीं।
व्यवहारिक नियम:
यह प्रगति दिखने लायक बनाता है और अनजाने रिग्रेशन कम करता है।
सरल, टेस्टेबल गार्डरैलों से शुरू करें:
गार्डरैलों को ऑप्शनल पॉलिश न मानें—उन्हें प्रोडक्ट रिक्वायरमेंट की तरह लें।
सिस्टम हेल्थ और आउटपुट क्वालिटी दोनों पर मॉनिटर करें:
इनपुट/आउटपुट को लॉग करें (प्राइवेसी नियंत्रण के साथ) ताकि आप फेल्यर्स को पुनरुत्पादित कर सकें और टॉप पैटर्न्स ठीक कर सकें।
पहले से अधिकतम बजट तय करें: लक्ष्य लेटेंसी और प्रति अनुरोध अधिकतम लागत।
फिर अनुमान लगाने के बजाय खर्च घटाएँ:
छोटी क्वालिटी बढ़ोतरी आमतौर पर बड़े कॉस्ट या स्पीड हिट के लायक नहीं होती।
फ्लैग के पीछे शिप करें और धीरे-धीरे रोलआउट करें।
एक व्यावहारिक रोलआउट प्लान:
रोलबैक कोई विफलता नहीं है; यह AI को मेंटेनेबल बनाने का हिस्सा है।
न्यूनतम भूमिकाएँ जो कवर होनी चाहिए (भले ही एक ही व्यक्ति कई रोल निभा रहा हो):
जब हर कोई मीट्रिक, बेसलाइन और रोलबैक प्लान पर सहमत होता है तब शिपिंग बेहतर होती है।
इसे तब उपयोग करें जब आप आइडिया से एक काम करने वाले ऐप तक तेज़ी से बढ़ना चाहें, पर इंजीनियरिंग अनुशासन नहीं खोना चाहें।
एक व्यावहारिक वर्कफ़्लो:
टूल आपको तेजी से इटरेट करने में मदद करता है; फिर भी आपको स्पष्ट मान्यताएँ और मापनीय आउटपुट चाहिए।