किसी नतीजे को reproduce करना
किसी पेपर को सही मायने में समझने का सबसे अच्छा तरीका यह है कि आप उसके नतीजे को अपने कंप्यूटर पर लाकर देखें। छोटी शुरुआत करें, किसी एक नंबर से मिलान करें, और हर अंतर को नोट करते रहें।
60 सेकंड में
किसी नतीजे को reproduce करना
किसी पेपर को सही मायने में समझने का सबसे अच्छा तरीका यह है कि आप उसके नतीजे को अपने कंप्यूटर पर लाकर देखें। छोटी शुरुआत करें, किसी एक नंबर से मिलान करें, और हर अंतर को नोट करते…
स्टेप 1: सही पेपर चुनें
- छोटा हो: मुख्य एक्सपेरिमेंट कई GPUs पर हफ्तों में नहीं, बल्कि एक लैपटॉप या एक GPU पर कुछ ही घंटों में ट्रेन या रन हो जाता हो।
- ओपन हो: डेटा पब्लिक हो, और सबसे अच्छा तो यह होगा कि लेखकों ने कोड भी शेयर किया हो।
- स्पष्ट हो: इसमें कोई खास नंबर दिया गया हो जिसे आप हासिल करने का लक्ष्य रख सकें, जैसे किसी तय डेटासेट पर accuracy।
- आपकी रुचि का हो: आप इसके साथ कई घंटे बिताने वाले हैं।
स्टेप 2: कोड और डेटा ढूंढें
स्टेप 3: बहुत छोटे से शुरुआत करें, फिर आगे बढ़ें
- 1
पहले बस चलाकर देखें
इंस्टॉल करें, फिर केवल एक स्टेप के लिए 100 उदाहरणों पर चलाएं। बड़े पैमाने पर जाने से पहले हर एरर को ठीक करें। - 2
एक छोटे बैच को overfit करें
कुछ उदाहरणों पर तब तक ट्रेन करें जब तक कि loss शून्य के करीब न पहुंच जाए। अगर ऐसा नहीं हो पा रहा, तो कहीं कुछ गड़बड़ है। - 3
इवैल्यूएशन कोड की जांच करें
अगर लेखकों ने अपना मॉडल या प्रेडिक्शन्स शेयर किए हैं, तो उन्हें स्कोर करें और पेपर से तुलना करें। - 4
एक छोटा वर्ज़न चलाएं
डेटा या स्टेप्स के एक छोटे हिस्से पर चलाएं, ताकि यह देख सकें कि ट्रेंड सही दिशा में जा रहा है। - 5
टारगेट सेटिंग पर रन करें
अब असली कम्प्यूट खर्च करें, और अगर मुमकिन हो तो एक से ज़्यादा seed का इस्तेमाल करें।
स्टेप 4: हर चीज़ को नोट करें
2026-02-14 run 07
Goal: match Table 2, row 3 (paper reports accuracy 84.1)
Code: authors' repo, commit abc1234
Changes from paper: batch size 16 (paper: 64) because of GPU memory,
used gradient accumulation x4 to keep the same effective batch
Seeds: 0, 1, 2
Result: 82.6, 83.3, 82.9 (mean 82.9)
Gap: about 1.2 below the paper
Next: check tokenizer version; paper footnote mentions lowercasingजब नंबर मैच न हो
| संभावित कारण | क्या जांचें |
|---|---|
| Random seed का अंतर | अलग-अलग seeds के साथ रन करें। क्या पेपर का नंबर आपकी रेंज के अंदर आ रहा है? |
| डेटा का अलग वर्ज़न या स्प्लिट | क्या डेटासेट वर्ज़न, प्रीप्रोसेसिंग और टेस्ट स्प्लिट वही हैं? |
| इवैल्यूएशन का फर्क | क्या मीट्रिक कोड वही है? क्या केस, विराम चिह्न या tokenisation उसी तरह संभाला गया है? |
| छिपी हुई सेटिंग्स | Learning rate schedule, warm-up, weight decay, early stopping। अपेंडिक्स और कोड की डिफ़ॉल्ट कॉन्फ़िग जांचें। |
| लाइब्रेरी के वर्ज़न | लाइब्रेरी का नया वर्ज़न डिफ़ॉल्ट सेटिंग्स बदल सकता है। वही वर्ज़न आज़माएं जो लेखकों ने बताए हैं। |
| हार्डवेयर और प्रीसिजन (precision) | अलग GPUs और कम precision से नतीजों में थोड़ा फर्क आ सकता है। |
| आपके कोड में कोई बग | एक छोटे उदाहरण पर अपने कोड की उनके कोड से लाइन-दर-लाइन तुलना करें। |
- सीधे सबसे बड़े और पूरे रन से शुरुआत करना
- एक साथ पांच चीज़ें बदलना, फिर दोबारा रन करना
- नतीजों को सिर्फ अपनी याददाश्त में रखना
- एक बार रन फेल होने पर यह कह देना कि "पेपर ही गलत है"
- 100 उदाहरणों और एक स्टेप से शुरुआत करना
- एक बार में एक ही चीज़ बदलना
- हर रन को उसकी सेटिंग्स के साथ नोट करना
- अंतर को रिपोर्ट करना, आपने क्या कोशिश की, और किस बात को लेकर आप अब भी पक्के नहीं हैं
और देखें और पढ़ें
लैब
किसी एक असली पेपर के लिए reproducibility चेकलिस्ट, इस फैसले के साथ कि क्या आप इसे reproduce कर सके, और पहले कदम की योजना।
समस्या
पिछली लैब का पेपर लें, या कोई भी छोटा AI पेपर जिसमें मिलान करने के लिए कोई स्पष्ट नंबर दिया गया हो।
- नीचे दी गई चेकलिस्ट को कॉपी करें और हर लाइन का जवाब yes, no या unclear में दें, साथ ही यह भी बताएं कि आपको वह जानकारी कहाँ मिली (सेक्शन, टेबल, अपेंडिक्स, कोड फाइल)।
- एक टारगेट नंबर चुनें: कौन सी टेबल, कौन सी रो, क्या वैल्यू।
- कम्प्यूट का अंदाज़ा लगाएं: क्या यह लैपटॉप या किसी फ्री GPU पर चल सकता है? अगर नहीं, तो पेपर में दिया गया कौन सा छोटा सेटअप आप आज़मा सकते हैं?
- अपने पहले तीन कदम लिखें (जैसे "लेखकों के रिलीज़ किए गए मॉडल पर eval रन करना", "10 उदाहरणों को overfit करना")।
- अगर आपके पास समय हो, तो स्टेप 1 पूरा करें और इसके लिए लैब नोटबुक में एक एंट्री लिखें।
REPRODUCIBILITY CHECKLIST
Paper:
Target number (table/row/value):
Code released? yes / no / unclear - where:
Exact data and version named? yes / no / unclear - where:
Train / validation / test split given? yes / no / unclear - where:
Preprocessing described? yes / no / unclear - where:
All hyperparameters listed? yes / no / unclear - where:
How settings were chosen (val set)? yes / no / unclear - where:
Number of seeds and spread reported? yes / no / unclear - where:
Evaluation metric code available? yes / no / unclear - where:
Library versions listed? yes / no / unclear - where:
Compute used (hardware, hours)? yes / no / unclear - where:
Licence allows my use? yes / no / unclear - where:
Can I run it on my compute?
Smaller setting if not:
First three steps:
1.
2.
3.आपका काम तब पूरा होगा जब
कठिन सवाल
उत्तर देखने से पहले ख़ुद जवाब देने की कोशिश करें। अगर आप इनके जवाब दे सकते हैं, तो आप पाठ समझ गए हैं।
Q1आपको पेपर के नंबर से बेहतर नतीजा मिलता है। क्या यह अच्छी खबर है?दिखाएं
सावधान रहें। यह seed luck, डेटा का कोई अलग version, या कोई बग हो सकता है जैसे test data का training में लीक हो जाना। उम्मीद से ज़्यादा अच्छे नतीजे को भी उतनी ही सावधानी से लें जितना किसी खराब नतीजे को: यकीन करने से पहले evaluation, split और कई seeds को चेक करें।
Q2पेपर में कोई library versions नहीं दिए गए हैं और आज के versions के साथ कोड फ़ेल हो जाता है। आप क्या करेंगे?दिखाएं
कोड के आखिरी commit की तारीख देखें और उस समय के आस-पास के library versions आज़माएँ, एक अलग environment में ताकि आपके दूसरे प्रोजेक्ट्स न बिगड़ें। आखिर में आप जिस भी version पर पहुँचते हैं, उसे अपने लॉग में और एक requirements फ़ाइल में नोट कर लें। यह जानकारी शेयर करना मददगार होता है, क्योंकि दूसरों को भी यही परेशानी आएगी।
अक्सर पूछे जाने वाले सवाल
क्या किसी पेपर को reproduce करना "असली रिसर्च" है?
हाँ। नतीजे सही साबित होते हैं या नहीं, यह जांचना साइंस का एक अहम हिस्सा है। इससे वही हुनर भी तैयार होता है जिसकी आपको अपने ओरिजिनल काम के लिए ज़रूरत होती है। कई रिसर्चर्स को अपना पहला ओरिजिनल आइडिया किसी और के नतीजे को reproduce करते हुए ही मिलता है, क्योंकि उनका ध्यान किसी ऐसी चीज़ पर जाता है जो पेपर में छूट गई थी।
"काफी करीब" का मतलब कितना करीब होता है?
इसका कोई तय नियम नहीं है। एक काम का तरीका यह है: कई seeds चलाकर देखें कि क्या पेपर का नंबर आपकी मिली रेंज के अंदर आता है। अगर आता है, तो मुमकिन है कि आपने इसे reproduce कर लिया है। अगर यह रेंज से बहुत बाहर है, तो वजह तलाशें और इस अंतर को ईमानदारी से रिपोर्ट करें।
क्या मैं लेखकों का कोड इस्तेमाल कर सकता हूँ, या मुझे अपना कोड लिखना होगा?
दोनों ही तरीके काम के हैं और अलग-अलग सवालों के जवाब देते हैं। उनका कोड चलाने से यह जांच होती है कि क्या बताए गए नंबर तक पहुंचा जा सकता है। अपना कोड खुद लिखने से यह जांच होती है कि क्या पेपर में पूरे तरीके को ठीक से समझाया गया है। साफ तौर पर बताएं कि आपने कौन सा तरीका अपनाया।
अगर लेखकों का कोई जवाब न आए तो क्या करें?
यह आम बात है, क्योंकि लोग व्यस्त रहते हैं। फिर भी, आपको जो मिला उसे अपने लॉग, सेटिंग्स और कोड के साथ लिख लें। नतीजों के अंतर और उसकी वजह के बारे में अपने अंदाज़े को बताएं, और साफ लिख दें कि यह सिर्फ एक अंदाज़ा है।
पाठ का टेस्ट
5 सवाल। पास होने और इस पाठ को पूरा करने के लिए 3 सही होने चाहिए (60%)।