COMPAS: Difficulty-Aware Joint Search for Optimizing Code Generation
COMPAS एक कठिनाई-जागरूक (difficulty-aware) फ्रेमवर्क है जो विशिष्ट कार्य कठिनाई समूहों के लिए सर्वोत्तम मॉडल, प्रॉम्प्ट और डिकोडिंग सेटिंग्स को संयुक्त रूप से खोजकर कोड जनरेशन को अनुकूलित करता है, जिससे LiveCodeBench और SWE-bench जैसे बेंचमार्क पर पास रेट और लागत दक्षता दोनों में महत्वपूर्ण सुधार होता है।
मूल पेपर CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) के तहत लाइसेंस किया गया है। नीचे दिए गए पेपर की यह व्याख्या AI से तैयार की गई है। इसे लेखकों ने न तो लिखा है, न इसका समर्थन किया है। तकनीकी सटीकता के लिए मूल पेपर देखें। पूरा डिस्क्लेमर पढ़ें
कल्पना कीजिए कि आप एक बेहतरीन केक बनाने की कोशिश कर रहे हैं, लेकिन आपके पास एक जादुई ओवन है जो आपसे बात कर सकता है। कंप्यूटर विज्ञान की दुनिया में, यह "ओवन" एक लार्ज लैंग्वेज मॉडल (LLM) है, जो एक सुपर-स्मार्ट AI है जो इंसानी प्रोग्रामर की तरह कंप्यूटर कोड लिख सकता है। एक बेहतरीन केक पाने के लिए, आपको तीन चीजें चुननी होंगी: किस ओवन का उपयोग करना है (मॉडल), कौन सी रेसिपी देनी है (प्रॉम्ट), और तापमान और टाइमर कैसे सेट करना है (डिकोडिंग सेटिंग्स)। लंबे समय तक, वैज्ञानिकों ने एक ऐसा एक आदर्श रेसिपी और ओवन सेटिंग खोजने की कोशिश की जो हर एक केक के लिए काम कर सके, चाहे वह एक साधारण कप केक हो या एक जटिल वेडिंग टियर। लेकिन वे एक समस्या का सामना करते रहे: एक सेटिंग जो कप केक को फूला हुआ (fluffy) बनाती है, वह वेडिंग केक को जला सकती है, और एक सेटिंग जो आटे पर पैसा बचाने के लिए बनाई गई है, वह स्वाद बिगाड़ सकती है। बड़ा सवाल यह था: हम बिना बहुत सारा पैसा खर्च किए या सालों तक हर संभावना को आजमाए बिना, प्रत्येक विशिष्ट कार्य के लिए सबसे अच्छा संयोजन कैसे खोजें?
यहाँ COMPAS आता है, जो एक प्रतिभाशाली, बजट के प्रति सचेत हेड शेफ की तरह काम करता है। सभी के लिए एक ही नियम अनुमान लगाने के बजाय, COMPAS महसूस करता है कि अलग-अलग कार्यों के अलग-अलग "कठिनाई स्तर" होते हैं। यह सुझाव देता है कि हमें अपने कार्यों को समूहों में बांटना चाहिए—जैसे सॉर्टिंग समस्याओं को "आसान," "मध्यम," और "कठिन" में बांटना—और फिर प्रत्येक समूह के लिए एक अनूठी, सटीक रेसिपी ढूंढनी चाहिए। शोधकर्ताओं ने पाया कि प्रॉम्ट्स (निर्देश) और डिकोडिंग सेटिंग्स (ओवन के डायल) सबसे अच्छा तब काम करते हैं जब उन्हें अलग-अलग नहीं, बल्कि एक साथ बदला जाता है, और यह भी कि जो एक AI मॉडल के लिए काम करता है, वह दूसरे के लिए विफल हो सकता है। एक स्मार्ट दो-चरणीय प्रक्रिया का उपयोग करके—पहले सही ओवन चुनना, फिर प्रॉम्ट और डायल को एक साथ ट्यून करना—उन्होंने प्रत्येक कठिनाई स्तर के लिए विकल्पों का एक "मेन्यू" बनाया। जब कोई नया कार्य आता है, तो COMPAS तुरंत उसकी कठिनाई की जांच करता है, उस समूह के लिए चुना गया सटीक प्री-मेड मेन्यू चुनता है, और काम शुरू कर देता है।
उनके प्रयोगों में, यह दृष्टिकोण एक बड़ी सफलता रहा। LiveCodeBench नामक कोडिंग समस्याओं के एक टेस्ट सेट पर, COMPAS 52.8% बार सही उत्तर देने में सफल रहा, जिसने पिछले सर्वश्रेष्ठ तरीके को पीछे छोड़ दिया जो केवल 45.9% तक पहुँच पाया था। इससे भी बेहतर बात यह है कि इसने काफी कम पैसा खर्च किया: लागत 4.92 रह गई। उन्होंने पूरे सॉफ्टवेयर प्रोजेक्ट्स में बग्स को ठीक करने से जुड़ी एक अधिक जटिल चुनौती (SWE-bench) पर भी इसका परीक्षण किया, जहाँ इसने 76.0% कार्यों को हल किया, फिर से मौजूदा सर्वोत्तम तरीकों से बेहतर प्रदर्शन किया।
COMPAS का "सीक्रेट सॉस" इसकी "डिफिकल्टी-अवेयर" (कठिनाई-जागरूक) रणनीति है। शोधकर्ताओं ने अपने प्रयोगों के माध्यम से तीन प्रमुख बातें खोजीं। पहला, निर्देश और ओवन सेटिंग्स एक-दूसरे के साथ इंटरैक्ट करते हैं; दोनों को एक साथ बदलने से एक-एक करके बदलने की तुलना में बेहतर परिणाम मिलते हैं। दूसरा, एक ट्वीक (बदलाव) जो एक AI मॉडल की मदद करता है, वह दूसरे को नुकसान भी पहुँचा सकता है, इसलिए आपको ट्यूनिंग शुरू करने से पहले अपने मॉडल को सावधानी से चुनना होगा। तीसरा, और सबसे महत्वपूर्ण, एक आसान समस्या के लिए "सर्वश्रेष्ठ" सेटिंग एक कठिन समस्या के लिए "सर्वश्रेष्ठ" सेटिंग से बिल्कुल अलग होती है। एक वैश्विक, 'एक-आकार-सभी-के-लिए-उपयुक्त' (one-size-fits-all) दृष्टिकोण काम नहीं करता है।
इसे हल करने के लिए, COMPAS एक दो-चरण वाली योजना का उपयोग करता है। ऑफलाइन चरण (तैयारी का चरण) में, यह अपने प्रशिक्षण कार्यों को उनकी कठिनाई के आधार पर समूहों में विभाजित करता है। फिर यह प्रत्येक समूह के लिए सबसे अच्छा AI मॉडल चुनने के लिए एक तेज़, सस्ता परीक्षण चलाता है। एक बार मॉडल चुन लिए जाने के बाद, यह "संयुक्त खोज" (joint search) मोड में जाता है, जहाँ यह प्रॉम्ट और डिकोडिंग सेटिंग्स को एक साथ समायोजित करने के लिए एक स्मार्ट फीडबैक लूप का उपयोग करता है। यह केवल रैंडम कॉम्बिनेशन नहीं आजमाता; यह अपनी गलतियों और सफलताओं से सीखता है, और प्रत्येक कठिनाई समूह के लिए एक "क्वालिटी-कॉस्ट फ्रंट" (गुणवत्ता-लागत फ्रंट) बनाता है—जो मूल रूप से एक अच्छा परिणाम प्राप्त करने और पैसा बचाने के बीच के सर्वोत्तम ट्रेड-ऑफ की एक सूची है।
ऑनलाइन चरण (रियल-टाइम कुकिंग) में, जब कोई नया कार्य आता है, तो COMPAS समय बर्बाद नहीं करता है। यह बस कार्य के कठिनाई लेबल को देखता है, मिलते-जुलते समूह को ढूँढता है, और उस समूह के लिए बने-बनाए मेन्यू में से सबसे अच्छा कॉन्फ़िगरेशन चुन लेता है। यह बिल्कुल वैसा ही है जैसे आपके पास पूरी तरह से ट्यून किए गए व्यंजनों का एक पुस्तकालय तैयार हो, ताकि आपको कभी भी शून्य से शुरुआत न करनी पड़े।
पेपर दिखाता है कि यह विधि मजबूत है। भले ही उन्होंने रैंडम सीड्स (जैसे ताश के पत्तों को अलग तरह से फेंटना) को बदला हो या विभिन्न प्रकार के AI मॉडल्स पर परीक्षण किया हो, COMPAS ने लगातार अन्य तरीकों से बेहतर प्रदर्शन किया। इसने यह भी साबित किया कि कार्यों को कठिनाई के आधार पर तोड़ना महत्वपूर्ण है; यदि आप कठिनाई स्तरों को अनदेखा करते हैं और हर चीज़ के लिए एक ही सेटिंग का उपयोग करने का प्रयास करते हैं, तो आपके परिणाम काफी गिर जाते हैं। हालांकि यह विधि वर्तमान में सबसे अच्छा तब काम करती है जब AI मॉडल एक ही "परिवार" के हों, शोधकर्ता सुझाव देते हैं कि इस दृष्टिकोण का भविष्य में विस्तार किया जा सकता है। फिलहाल के लिए, COMPAS एक शक्तिशाली प्रदर्शन है कि सही सेटिंग्स को खोजने के लिए कैसे खोजना है, यह सेटिंग्स के स्वयं के होने जितना ही महत्वपूर्ण है।
अपने क्षेत्र के पेपरों की भीड़ में उलझे हुए हैं?
आपके रिसर्च कीवर्ड से मेल खाने वाले सबसे नए और अलग सोच वाले पेपरों का रोज़ाना Digest पाएँ—तकनीकी सारांश के साथ, आपकी भाषा में।