← नवीनतम पेपर
💻 computer science

Generating Complex Code Analyzers from Natural Language Questions

यह शोध पत्र Merlin को प्रस्तुत करता है, जो एक नवीन RAG-आधारित पुनरावृत्ति जनन (iterative generation) और स्व-परीक्षण दृष्टिकोण का उपयोग करके बड़े कोडबेस के बारे में जटिल प्राकृतिक भाषा संबंधी प्रश्नों के उत्तर देने के लिए लार्ज लैंग्वेज मॉडल्स को CodeQL प्रोग्राम विश्लेषण ढांचे के साथ जोड़ता है, जिससे डेवलपर कार्य की सटीकता और दक्षता में महत्वपूर्ण सुधार होता है।

मूल लेखक: Amirmohammad Nazari, Sadra Sabouri, Wang Bill Zhu, Robin Jia, Souti Chattopadhyay, Mukund Raghothaman

प्रकाशित 2026-05-12
📖 5 मिनट में पढ़ें🧠 गहराई से पढ़ें

मूल लेखक: Amirmohammad Nazari, Sadra Sabouri, Wang Bill Zhu, Robin Jia, Souti Chattopadhyay, Mukund Raghothaman

मूल पेपर CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) के तहत लाइसेंस किया गया है। नीचे दिए गए पेपर की यह व्याख्या AI से तैयार की गई है। इसे लेखकों ने न तो लिखा है, न इसका समर्थन किया है। तकनीकी सटीकता के लिए मूल पेपर देखें। पूरा डिस्क्लेमर पढ़ें

कल्पना कीजिए कि आपके पास लाखों किताबों वाली एक विशाल लाइब्रेरी है (कोडबेस), जो एक बहुत ही विशिष्ट, तकनीकी भाषा में लिखी गई है। आप एक लाइब्रेरियन (डेवलपर) हैं जिसे एक बहुत ही विशिष्ट पैटर्न खोजना है: "हर उस किताब को खोजें जहाँ एक पात्र अपने जन्म से पहले अपना परिचय देता है।"

इसे हाथ से करना असंभव है। केवल एक सर्च बार का उपयोग करके "born" शब्द को खोजना (जैसे grep) बेकार है क्योंकि यह वाक्य के अर्थ को नहीं समझ पाता। एक बहुत ही बुद्धिमान AI असिस्टेंट (एक लार्ज लैंग्वेज मॉडल या LLM) से पूरी लाइब्रेरी को पढ़ने और आपको उत्तर बताने के लिए कहना अक्सर विफल हो जाता है क्योंकि लाइब्रेरी इतनी बड़ी होती है कि AI उसे एक बार में अपनी मेमोरी में नहीं रख पाता, या AI गलत अनुमान लगा लेता है।

मिलिए Merlin से।

Merlin एक नया सिस्टम है जो एक सुपर-पावर्ड अनुवादक और जासूस के रूप में कार्य करता है। यह आपके (जो स्वाभाविक अंग्रेजी बोलते हैं) और एक बहुत ही सख्त, शक्तिशाली डेटाबेस इंजन CodeQL (जो कोड की तकनीकी संरचना को पूरी तरह से समझता है) के बीच में स्थित है।

Merlin कैसे काम करता है, इसके सरल उदाहरणों का उपयोग करते हुए यहाँ बताया गया है:

1. अनुवादक (प्राकृतिक भाषा से CodeQL तक)

आप Merlin से सामान्य अंग्रेजी में एक प्रश्न पूछते हैं: "मुझे वे सभी स्थान दिखाएं जहाँ एक कंस्ट्रक्टर (constructor) एक ऐसे मेथड को कॉल करता है जिसे बाद में बदला जा सकता है।"
Merlin केवल अनुमान नहीं लगाता है। इसके बजाय, वह आपके प्रश्न को CodeQL डेटाबेस के लिए एक सटीक क्वेरी (query) में अनुवादित करता है। इसे ऐसे सोचें कि CodeQL आपके पूरे कोड का एक विशाल, संरचित स्प्रेडशीट है। Merlin उस स्प्रेडशीट से सटीक डेटा मांगने के लिए एक विशिष्ट SQL-जैसी कमांड लिखता है।

2. "स्व-परीक्षण" (द लिटमस टेस्ट)

यहाँ पेचीदा हिस्सा यह है: भले ही Merlin एक ऐसी क्वेरी लिखे जो व्याकरण की दृष्टि से सही दिखती हो, लेकिन वह तार्किक रूप से गलत हो सकती है। वह शायद "सेब" मांग रहा हो जब आपका मतलब "फल" से था, या वह इतना अधिक सख्त हो सकता है कि कुछ भी न मिले।

इसे ठीक करने के लिए, Merlin में एक स्व-परीक्षण (self-test) फीचर है। आपकी विशाल लाइब्रेरी को खोजने से पहले, यह AI से एक छोटा, नकली उदाहरण (एक "मॉक" परिदृश्य) बनाने के लिए कहता है ताकि यह देखा जा सके कि क्या वह क्वेरी काम करती है।

  • उपमा: कल्पना कीजिए कि आप एक मेटल डिटेक्टर का परीक्षण कर रहे हैं। पूरे शहर में जाने से पहले, आप एक छोटे से बगीचे में जाते हैं जहाँ कुछ सिक्के दबे हुए हैं। यदि मेटल डिटेक्टर सिक्कों के लिए बीप करता है, तो आप जानते हैं कि यह काम कर रहा है। यदि यह शांत रहता है, तो आप जानते हैं कि आपका डिटेक्टर खराब है, और आप शहर को खोजने में समय बर्बाद करने से पहले इसे ठीक कर लेते हैं।
  • परिणाम: यदि क्वेरी इस छोटे परीक्षण में विफल रहती है, तो Merlin जान जाता है कि यह खराब है और फिर से प्रयास करता है।

3. "सहायक क्वेरी" (डिटेक्टिव की टॉर्च)

कभी-कभी, क्वेरी सिंटैक्स के मामले में बिल्कुल सही होती है लेकिन फिर भी कुछ नहीं ढूंढ पाती क्योंकि AI ने किसी सूक्ष्म विवरण को गलत समझा है।
Merlin सहायक क्वेरी (Assistive Queries) नामक तकनीक का उपयोग करता है।

  • उपमा: कल्पना कीजिए कि आप जंगल में एक विशिष्ट प्रकार के पक्षी की तलाश कर रहे हैं, लेकिन आपकी दूरबीन धुंधली है। ज़ोर से देखने के बजाय, आप एक सहायक से पूछते हैं कि वह अभी पेड़ों में क्या-क्या देख रहा है ("मैं एक लाल पक्षी, एक नीला पक्षी, एक गिलहरी देख रहा हूँ...")।
  • यह कैसे मदद करता है: इन "गवाहों" की सूची देखकर, AI को एहसास होता है, "ओह! मैं लाल पक्षियों की तलाश कर रहा था, लेकिन जंगल नीले पक्षियों से भरा है। मुझे अपनी खोज बदलने की आवश्यकता है।" यह AI को अपने स्वयं के तर्क को सुधारने और सही उत्तर खोजने में मदद करता है।

4. परिणाम: यह क्यों महत्वपूर्ण है

शोधकर्ताओं ने Merlin का परीक्षण अन्य उपकरणों और मानव डेवलपर्स के विरुद्ध किया।

  • सुई ढूँढना: Merlin ने लगभग उन सभी बग्स को खोज निकाला जिन्हें मौजूदा पेशेवर उपकरण खोज पाते थे, लेकिन इसने कई और ऐसे बग्स भी खोज निकाले जिन्हें अन्य उपकरणों ने मिस कर दिया था।
  • मानव गति: एक अध्ययन में जहाँ वास्तविक प्रोग्रामरों को बग खोजने और ठीक करने के लिए कहा गया था:
    • Merlin का उपयोग करने वाले बिना इसके उपयोग करने वालों की तुलना में 3.8 गुना अधिक सटीक थे।
    • उन्होंने कार्यों को 31% तेज़ी से पूरा किया।
  • "क्यों": Merlin के बिना, प्रोग्रामर अक्सर उबाऊ, मैन्युअल खोज करने में फंस जाते थे या ऐसे AI पर निर्भर रहते थे जो उन्हें गलत उत्तर देते थे। Merlin ने उन्हें स्थानों की एक स्पष्ट, ऑडिट योग्य सूची और उन्हें खोजने के लिए उपयोग किए गए सटीक तर्क दिए, ताकि वे परिणामों पर भरोसा कर सकें।

सारांश

Merlin एक ऐसे अनुवादक की तरह है जो "मानव अंग्रेजी" और "मशीन लॉजिक" दोनों बोलता है, एक गुणवत्ता नियंत्रण निरीक्षक की तरह जो निर्देशों को भेजने से पहले उनका परीक्षण करता है, और एक जासूस की तरह जो यह पता लगाने के लिए टॉर्च का उपयोग करता है कि उसकी खोज क्यों विफल हुई। यह डेवलपर्स को विशाल कोडबेस के बारे में जटिल प्रश्न पूछने और बिना खुद तकनीकी क्वेरी भाषा का विशेषज्ञ बने, विश्वसनीय और सटीक उत्तर प्राप्त करने की अनुमति देता है।

अपने क्षेत्र के पेपरों की भीड़ में उलझे हुए हैं?

आपके रिसर्च कीवर्ड से मेल खाने वाले सबसे नए और अलग सोच वाले पेपरों का रोज़ाना Digest पाएँ—तकनीकी सारांश के साथ, आपकी भाषा में।

Digest आज़माएँ →