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

Prefactory: Automated Discovery and Application of Library-Adoption Refactorings

यह शोध पत्र Prefactory को प्रस्तुत करता है, जो एक स्वचालित प्रणाली है जो पायथन कोड में लाइब्रेरी-अडॉप्शन रिफैक्टरिंग को कुशलतापूर्वक पहचानने और लागू करने के लिए LLMs का उपयोग करके निष्पादन योग्य खोज ह्यूरिस्टिक्स (search heuristics) को संश्लेषित करती है, और वास्तविक दुनिया के प्रोजेक्ट्स के एक नए बेंचमार्क पर मौजूदा बेसलाइन की तुलना में काफी उच्च पहचान और सत्यापन दर प्राप्त करती है।

मूल लेखक: Islem Bouzenia, Michael Pradel

प्रकाशित 2026-07-21
📖 4 मिनट में पढ़ें☕ कॉफ़ी ब्रेक में पढ़ें

मूल लेखक: Islem Bouzenia, Michael Pradel

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

कल्पना कीजिए कि आप एक विशाल, अव्यवस्थित पुस्तकालय को व्यवस्थित करने के लिए नियुक्त एक लाइब्रेरियन हैं, जहाँ हर किताब एक अलग लेखक द्वारा अपनी अनूठी शैली में लिखी गई है। कुछ लेखक पहिए का पुनर्जन्म करते हैं, उन चीजों के लिए लंबी, जटिल निर्देशिकाएं लिखते हैं जो पुस्तकालय के पिछले कमरे में पहले से ही मौजूद एक आदर्श, पूर्व-निर्मित उपकरण का उपयोग कर सकती थीं। कंप्यूटर प्रोग्रामिंग की दुनिया में, इसे "रिफैक्टरिंग" (refactoring) कहा जाता है। यह बिखरे हुए, हाथ से लिखे गए कोड को साफ करने और उसे मौजूदा, अच्छी तरह से परीक्षित लाइब्रेरीज़ के स्वच्छ, कुशल कॉल्स से बदलने की कला है। इसे ऐसे समझें जैसे आपको एहसास होता है कि आप एक स्वेटर हाथ से बुन रहे थे जबकि आप स्टोर से एक आदर्श स्वेटर खरीद सकते थे। समस्या यह है कि इन अवसरों को खोजना भूसे के ढेर में सुई खोजने जैसा है, खासकर जब सुई सुई जैसी दिखती भी नहीं है। हाथ से लिखा गया कोड लाइब्रेरी के नाम का उल्लेख तक नहीं कर सकता है; यह बस उसी काम को एक बोझिल तरीके से करता है। वर्षों से, कंप्यूटर इन छिपे हुए अपग्रेड के अवसरों को पहचानने में संघर्ष करते रहे हैं क्योंकि वे बहुत कठोर हैं, और किसी सुपर-स्मार्ट AI को प्रोजेक्ट की हर एक फाइल पढ़ने के लिए कहना बहुत महंगा और धीमा है।

यहाँ Prefactory आता है, एक नया टूल जिसे इस पहेली को सुलझाने के लिए डिज़ाइन किया गया है। कोड की पूरी लाइब्रेरी को हर बार शुरू से पढ़ने के लिए एक सुपर-इंटेलिजेंट AI को नियुक्त करने के बजाय (जो कि पुस्तकालय की हर किताब को एक-एक करके पढ़ने के लिए एक जासूस को काम पर रखने जैसा है), Prefactory AI को पहले कस्टम "मेटल डिटेक्टर्स" (धातु पहचानक) बनाने के लिए प्रशिक्षित करता है। ये डिटेक्टर विशिष्ट आकारों और ध्वनियों वाले दबे हुए खजाने को खोजने के लिए ट्यून किए गए विशेष मेटल डिटेक्टरों की तरह हैं। एक बार जब AI ये डिटेक्टर बना लेता है, तो वे पलक झपकते ही पूरे कोडबेस को स्कैन कर सकते हैं, उस बिखरे हुए, हाथ से लिखे गए कोड को ढूंढ निकालते हैं जो एक लाइब्रेरी फंक्शन के पैटर्न से मेल खाता है। जब कोई मैच मिल जाता है, तो AI आखिरी बार हस्तक्षेप करता है ताकि वह बदलाव (swap) कर सके और यह दोबारा जांच सके कि नया कोड पुराने कोड की तरह ही ठीक से काम कर रहा है या नहीं।

शोधकर्ताओं ने इस विचार का परीक्षण 100 वास्तविक दुनिया के उदाहरणों के एक विशाल संग्रह पर किया, जहाँ डेवलपर्स ने पहले ही हाथ से लिखे गए कोड को सफलतापूर्वक लाइब्रेरी कॉल्स के साथ बदल दिया था। उन्होंने पाया कि Prefactory इन अवसरों को पहचानने में अविश्वसनीय रूप से अच्छा था। इसने 75 में से 100 मामलों में सही फाइलों की सफलतापूर्वक पहचान की और 56 मामलों में ठीक करने के लिए सटीक फंक्शन्स को चिन्हित किया। इसकी तुलना में, अगली सबसे अच्छी विधि, जो एक मानक AI एजेंट पर निर्भर थी जो कोड को पढ़कर चलता था, केवल 35 मामलों में सही फाइलों को और 32 मामलों में सही फंक्शन्स को ही ढूंढ पाई। इससे भी बेहतर, Prefactory ने 40 पूरी तरह से सत्यापित, काम करने वाले रिफैक्टरिंग तैयार किए जो सभी सुरक्षा परीक्षणों में सफल रहे।

जो चीज़ इस दृष्टिकोण को इतना खास बनाती है, वह है इसका पैसा और समय बचाना। Prefactory के साथ एक प्रोजेक्ट को स्कैन करने में औसतन केवल 1.3 सेकंड लगता है और खोजने और ठीक करने की लागत प्रति इंस्टेंस $0.05 से भी कम आती है। इसके विपरीत, मानक AI एजेंट विधि की लागत लगभग तीन गुना अधिक है और इसमें अधिक समय लगता है क्योंकि उसे हर बार पूरे प्रोजेक्ट के बारे में "सोचना" पड़ता है। पेपर सुझाव देता है कि AI के ज्ञान को पुन: प्रयोज्य, निष्पादन योग्य (executable) डिटेक्टरों में बदलकर, हम कोड की सफाई को तेज़, सस्ता और विश्वसनीय बना सकते हैं। हालाँकि, लेखक यह भी नोट करते हैं कि यह सिस्टम अभी भी पूर्ण नहीं है; यह कभी-कभी बहुत बड़ी, जटिल लाइब्रेरीज़ के साथ संघर्ष करता है जहाँ "हाथ से लिखा" कोड, लाइब्रेरी के मानक पैटर्न से बहुत अलग दिखता है, और यह उस कोड को ठीक नहीं कर सकता जिसमें जटिल, मल्टी-फाइल आर्किटेक्चरल बदलाव शामिल हों। लेकिन रोजमर्रा के कोड क्लीनअप कार्यों के बड़े हिस्से के लिए, यह नया "डिटेक्टर-बिल्डिंग" दृष्टिकोण एक गेम-चेंजरनेर प्रतीत होता है।

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

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

Digest आज़माएँ →