Co-Located Tests, Better AI Code: How Test Syntax Structure Affects Foundation Model Code Generation
यह शोध पत्र एक बड़े पैमाने पर अनुभवजन्य अध्ययन प्रस्तुत करता है जो यह प्रदर्शित करता है कि टेस्ट सिंटैक्स को कार्यान्वयन कोड (इम्प्लीमेंटेशन कोड) के साथ सह-स्थित करना, अलग किए गए टेस्ट स्ट्रक्चर की तुलना में विविध फाउंडेशन मॉडल्स और आर्किटेक्चर में एआई-जनरेटेड कोड की गुणवत्ता, शुद्धता और संरक्षण में महत्वपूर्ण रूप से सुधार करता है।
मूल पेपर CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) के तहत लाइसेंस किया गया है। नीचे दिए गए पेपर की यह व्याख्या AI से तैयार की गई है। इसे लेखकों ने न तो लिखा है, न इसका समर्थन किया है। तकनीकी सटीकता के लिए मूल पेपर देखें। पूरा डिस्क्लेमर पढ़ें
कल्पना कीजिए कि आप एक प्रतिभाशाली लेकिन थोड़े शाब्दिक अर्थ निकालने वाले (literal-minded) रोबोटिक सहायक को आपके लिए एक जटिल कंप्यूटर प्रोग्राम लिखने के लिए काम पर रख रहे हैं। आप उसे एक ब्लूप्रिंट (निर्देश) और एक चेकलिस्ट देते हैं कि प्रोग्राम को क्या करना चाहिए (परीक्षण)।
यह शोध पत्र एक सरल प्रश्न पूछता है: क्या यह मायने रखता है कि आप उस चेकलिस्ट को कहाँ रखते हैं?
शोधकर्ताओं ने पाया कि उत्तर एक जोरदार हाँ है। आप AI के लिए अपनी "टू-डू लिस्ट" को कैसे व्यवस्थित करते हैं, यह इस बात को बदल देता है कि AI अपना काम कितनी अच्छी तरह करता है।
यहाँ रोजमर्रा की उपमाओं (analogies) का उपयोग करके विवरण दिया गया है:
1. चेकलिस्ट लिखने के दो तरीके
अध्ययन ने इन परीक्षणों को व्यवस्थित करने के दो मुख्य तरीकों की तुलना की:
- "इनलाइन" विधि (स्टिकी नोट): आप परीक्षण को उस विशिष्ट निर्देश के ठीक बगल में लिखते हैं जिसे वह जाँचता है, जैसे कि किसी मैनुअल के प्रासंगिक पैराग्राफ पर चिपका हुआ एक स्टिकी नोट। प्रोग्रामिंग के संदर्भ में, यह Python doctests की तरह है, जहाँ परीक्षण फ़ंक्शन के विवरण के भीतर ही रहता है।
- "सेपरेटेड" विधि (परिशिष्ट/Appendix): आप पहले कोड लिखते हैं, और फिर अपने सभी परीक्षणों को दस्तावेज़ के बिल्कुल अंत में एक अलग अनुभाग में, या पूरी तरह से एक अलग फ़ाइल में रखते हैं। प्रोग्रामिंग के संदर्भ में, यह Rust
#[test]ब्लॉक्स की तरह है, जो फ़ाइल के निचले हिस्से में एक अलग "टेस्ट मॉड्यूल" में स्थित होते हैं।
2. बड़ी खोज: निकटता मायने रखती है
शोधकर्ताओं ने पाया कि इनलाइन (स्टिकी नोट्स) हर बार जीतता है।
- जब परीक्षण कोड के ठीक बगल में होते हैं: AI एक अत्यधिक केंद्रित छात्र की तरह व्यवहार करता है। वह निर्देश और परीक्षण को एक साथ देखता है, इसलिए वह समझ जाता है कि उसे वास्तव में क्या बनाना है। वह शायद ही कभी गलतियाँ करता है, और वह लगभग हमेशा परीक्षणों को अंतिम उत्पाद में भी रखता है।
- जब परीक्षण अलग होते हैं: AI भ्रमित हो जाता है। यह ऐसा है जैसे किसी से घर बनाने के लिए कहना और फिर उन्हें निरीक्षण चेकलिस्ट दूसरे कमरे में थमा देना। AI एक बेहतरीन घर बना सकता है (कोड काम करता है), लेकिन वह अक्सर चेकलिस्ट को पूरी तरह से फेंक देता है, या वह घर तो बना लेता है लेकिन यह जांचना भूल जाता है कि दरवाजे खुल रहे हैं या नहीं।
3. "रोबोट व्यक्तित्व" की समस्या
एक सबसे दिलचस्प खोज यह है कि विभिन्न AI मॉडल अलग-अलग आदतों वाले अलग-अलग लोगों की तरह व्यवहार करते हैं।
- "ईमानदार" मॉडल: कुछ मॉडल (जैसे निचले स्तर के "Haiku" या "Sonnet" संस्करण) बहुत आज्ञाकारी होते हैं। भले ही आप परीक्षणों को "परिशिष्ट" (Appendix) में रखें, वे उन्हें फिर भी रखते हैं।
- "ओवरअचीवर" मॉडल: कुछ उच्च-शक्ति वाले मॉडल (जैसे "Opus" श्रृंखला) बहुत उत्साही इंटर्न की तरह व्यवहार करते हैं। जब वे एक अलग टेस्ट लिस्ट देखते हैं, तो वे सोचते हैं, "ओह, मुझे इस लिस्ट को रखने की ज़रूरत नहीं है; मैं बस लिस्ट के आधार पर चीज़ को पूरी तरह से बना दूँगा और लिस्ट को फेंक दूँगा।" वे बेहतरीन कोड बनाते हैं लेकिन परीक्षणों को हटा देते हैं, जिससे बाद में इसे सत्यापित करने का कोई तरीका नहीं बचता।
- "भुलक्कड़" मॉडल: कुछ मॉडल अलग किए गए परीक्षणों से इतने भ्रमित हो जाते हैं कि वे एक टूटा हुआ घर बनाते हैं और चेकलिस्ट को भी फेंक देते हैं।
ट्विस्ट: शोधकर्ताओं ने इन रोबोटों को विकसित होते देखा। एक मॉडल (Opus 4.6) ने अचानक अपना मन बदल लिया और अलग किए गए परीक्षणों को रखना शुरू कर दिया, जबकि उसके पुराने भाई-बहन ऐसा नहीं कर पाए। यह साबित करता है कि AI व्यवहार स्थिर नहीं है; यह अपडेट के साथ बदलता है, इसलिए आप केवल यह मानकर नहीं चल सकते कि "मॉडल X अच्छा है" हमेशा के लिए।
4. यह क्यों होता है? ("ब्रेन स्कैन")
शोधकर्ताओं ने केवल अनुमान नहीं लगाया; उन्होंने AI के "मस्तिष्क" के अंदर झाँका (मैकेनिस्टिक इंटरप्रिटेबिलिटी नामक तकनीक का उपयोग करके)।
उन्होंने पाया कि जब परीक्षण इनलाइन (कोड के बगल में) होते हैं, तो AI का अटेंशन मैकेनिज्म (उसका ध्यान) 3 से 4 गुना अधिक मजबूत होता है। यह ऐसा है जैसे AI ने चश्मा पहना हो जो परीक्षण निर्देशों को कोड के बगल में होने पर चमकीले लाल रंग में चमकता हुआ दिखाता है। जब परीक्षण अलग होते हैं, तो निर्देश धुंधले और दूर होते हैं, इसलिए AI का मस्तिष्क उन्हें मुश्किल से ही नोटिस करता है।
इससे भी अधिक आश्चर्यजनक बात यह है कि यह "चमकने वाला" प्रभाव विभिन्न प्रकार के AI मस्तिष्क में होता है, न कि केवल सबसे सामान्य वाले में। यह सुझाव देता है कि टेक्स्ट में भौतिक निकटता एक मौलिक नियम है कि ये मशीनें कैसे सीखती हैं।
5. "टेम्परेचर" का आश्चर्य
अध्ययन में यह भी पाया गया कि AI को "टेम्परेचर 0" पर सेट करना (जिसका अर्थ आमतौर पर यह होता है कि "जितना संभव हो उतना अनुमानित बनें") वास्तव में AI को 100% अनुमानित नहीं बनाता है। यह एक इंसान को "सुसंगत रहें" कहने जैसा है, लेकिन वे फिर भी हर बार अलग वाक्य संरचना लिख सकते हैं। कोड काम करता है, लेकिन शब्द बदल जाते हैं। इसका मतलब है कि आप केवल एक बार परीक्षण नहीं कर सकते; आपको सुनिश्चित करने के लिए इसे कई बार चलाना होगा कि यह काम करता है।
निष्कर्ष: आपको क्या करना चाहिए?
यदि आप कोड लिखने के लिए AI का उपयोग कर रहे हैं, तो यह शोध पत्र आपको एक स्पष्ट डिज़ाइन नियम देता है:
अपने परीक्षणों को ठीक उसी कोड के बगल में रखें जिसका वे परीक्षण कर रहे हैं।
अपने परीक्षणों को एक अलग फ़ाइल या दस्तावेज़ के दूर के अनुभाग में न छिपाएं। उन्हें उस फ़ंक्शन से चिपका कर रखें जिसे वे सत्यापित करते हैं।
- AI सहायकों के लिए: यह केवल "क्लीन कोड" के बारे में नहीं है; यह संचार के बारे में है। आप AI की भाषा बोल रहे हैं।
- टीमों के लिए: यदि आप AI का उपयोग करते हैं, तो आपकी परीक्षण रणनीति अब केवल एक डेवलपर की पसंद नहीं है; यह सॉफ़्टवेयर डिज़ाइन का एक महत्वपूर्ण हिस्सा है। यदि आप अपने परीक्षणों को अलग करते हैं, तो आपको बेहतरीन कोड तो मिल सकता है लेकिन आप वह सुरक्षा जाल (परीक्षण) खो सकते हैं जो यह साबित करता है कि वह काम करता है।
संक्षेप में: यदि आप चाहते हैं कि AI अपना सर्वश्रेष्ठ काम करे, तो उसे निर्देशों को खोजने के लिए मजबूर न करें। चेकलिस्ट को कार्य के ठीक बगल में रखें।
अपने क्षेत्र के पेपरों की भीड़ में उलझे हुए हैं?
आपके रिसर्च कीवर्ड से मेल खाने वाले सबसे नए और अलग सोच वाले पेपरों का रोज़ाना Digest पाएँ—तकनीकी सारांश के साथ, आपकी भाषा में।