← नवीनतम पेपर
💬 NLP

Function-Aware Fill-in-the-Middle as Mid-Training for Coding Agent Foundation Models

यह शोधपत्र फंक्शन-अवेयर फिल-इन-द-मिडल (FIM) मिड-ट्रेनिंग पेश करता है, जो एक स्व-पर्यवेक्षित (self-supervised) दृष्टिकोण है जो कोडिंग एजेंट लूप और फंक्शन कॉल्स के बीच संरचनात्मक समानता का लाभ उठाता है ताकि SWE-Bench जैसे बेंचमार्क पर कोडिंग एजेंट के प्रदर्शन को महत्वपूर्ण रूप से बढ़ाया जा सके और साथ ही सामान्य कोडिंग और टूल-यूज़ क्षमताओं को सुरक्षित रखा जा सके जो अक्सर मानक पोस्ट-ट्रेनिंग द्वारा कम हो जाती हैं।

मूल लेखक: Yubo Wang, Jiarong Liang, Yuxuan Zhang, Xuye Liu, Cong Wei, Yuyu Zhang, Ping Nie, Wenhu Chen

प्रकाशित 2026-07-15
📖 6 मिनट में पढ़ें🧠 गहराई से पढ़ें

मूल लेखक: Yubo Wang, Jiarong Liang, Yuxuan Zhang, Xuye Liu, Cong Wei, Yuyu Zhang, Ping Nie, Wenhu Chen

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

कल्पना कीजिए कि आप एक रोबोट को कोड की एक विशाल, अव्यवस्थित लाइब्रेरी में बग्स (bugs) ठीक करना सिखा रहे हैं। आमतौर पर, हम इन रोबोटों को शुरू से अंत तक, बाएं से दाएं किताबें पढ़ने के माध्यम से सिखाते हैं। लेकिन एक समस्या है: जब एक रोबोट वास्तव में एक बग को ठीक करने जाता है, तो वह केवल आगे नहीं पढ़ता। वह एक कदम उठाता है, देखता है कि क्या हुआ (शायद किसी टूल ने कोई एरर दिया), और फिर तय करता है कि आगे क्या करना है। यह एक लूप है: एक्शन (Action) → ऑब्जर्वेशन (Observation) → अगला कदम (Next Step)

इस पेपर के लेखकों ने गौर किया कि यह रोबोट लूप सामान्य कंप्यूटर कोड में एक फंक्शन कॉल (function call) जैसा दिखता है।

  • रोबोट का एक्शन एक फंक्शन द्वारा दूसरे फंक्शन को कॉल करने जैसा है।
  • रोबोट का ऑब्जर्वेशन उस वैल्यू की तरह है जो फंक्शन वापस (return) करता है।
  • रोबोट का अगला कदम उस वैल्यू का उपयोग करके बाकी कोड चलाने जैसा है।

बड़ा विचार क्या है? कोड को केवल आगे से पढ़ने के बजाय, लेखकों ने अपने रोबोट मॉडल्स को इन फंक्शन कॉल्स के साथ एक "खाली स्थान भरने" (fill-in-the-blank) का खेल खेलने के लिए प्रशिक्षित किया। वे इसे फंक्शन-अवेयर फिल-इन-द-मिडल (FIM) मिड-ट्रेनिंग (Mid-Training) कहते हैं।

खेल: "गायब हिस्से का अनुमान लगाना"

कल्पना कीजिए कि आपके पास एक कहानी है जहाँ एक पात्र (कॉलर/caller) अपने एक मित्र (कली/callee) से एक कार्य करने के लिए कहता है, लेकिन मित्र का वास्तविक कार्य छिपा हुआ है। रोबोट को यह अनुमान लगाना है कि मित्र ने क्या किया और उसने ऐसा क्यों किया, केवल पहले और बाद के संदर्भ (context) के आधार पर।

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

  1. पर्याप्त जटिल ताकि एक अच्छा चैलेंज बन सकें (बहुत आसान नहीं, और असंभव भी नहीं)।
  2. पर्याप्त अनुमान योग्य (predictable) ताकि रोबोट आसपास के सुरागों से उन्हें वास्तव में समझ सके।

उन्होंने रोबोट को कोड लिखने से पहले एक "रीजनिंग नोट" (चेन-ऑफ-थॉट) लिखने के लिए भी प्रेरित किया, जिससे वह कोड लिखने से पहले सोचने के लिए मजबूर हो जाए, ठीक वैसे ही जैसे एक मानव प्रोग्रामर करता है।

परिणाम: क्या यह काम करता है?

लेखकों ने तीन अलग-अलग रोबोट दिमागों (मॉडल्स) पर इसका परीक्षण किया: Qwen2.5-Coder परिवार के दो (7 बिलियन और 14 बिलियन पैरामीटर्स) और नए Qwen3 परिवार का एक (8 बिलियन पैरामीटर्स)। उन्होंने इन रोबोटों को 2.6 बिलियन टोकन (शब्द और प्रतीक) के विशाल डेटासेट पर प्रशिक्षित किया, जो 968 वास्तविक दुनिया के पायथन (Python) कोड रिपॉजिटरीज़ से लिया गया था।

यहाँ उन्होंने क्या पाया:

  • बग्स ठीक करने में बेहतर: SWE-Bench-Verified (जो वास्तविक दुनिया के सॉफ्टवेयर मुद्दों का अनुकरण करता है) नामक एक प्रसिद्ध बेंचमार्क पर परीक्षण करने पर, रोबोट्स में महत्वपूर्ण सुधार हुआ।
    • 7B मॉडल में +2.8% का सुधार हुआ।
    • 14B मॉडल में +3.0% का सुधार हुआ।
    • 8B मॉडल में +3.2% का सुधार हुआ।
  • आसान कार्यों पर और भी बेहतर: एक हल्के संस्करण वाले टेस्ट (SWE-Bench-Lite) पर, लाभ और भी अधिक थे, जहाँ 8B मॉडल +5.4% उछल गया।
  • यह हर जगह काम करता है: ये सुधार तब भी हुए जब रोबोट्स को बाद में अलग-अलग तरीकों से प्रशिक्षित किया गया। यह सुझाव देता है कि उनके "फिल-इन-द-मिडल" प्रशिक्षण ने उन्हें एक ठोस आधार दिया जो बाद में पॉलिश करने के बावजूद बना रहा।

आश्चर्य: इसने अन्य कौशल को नहीं तोड़ा

आमतौर पर, जब आप एक रोबोट को एक सुपर-स्पेशलिस्ट (जैसे बग-फिक्सिंग एजेंट) बनाने के लिए प्रशिक्षित करते हैं, तो वह अन्य चीजें, जैसे सरल कोड लिखना या टूल्स का उपयोग करना, भूल जाता है। लेखकों को डर था कि ऐसा होगा।

लेकिन, इस "मिड-ट्रेनिंग" ने रोबोट के अन्य कौशलों को बचा लिया!

  • इस अतिरिक्त प्रशिक्षण के बिना, रोबोट अपने आप में कोड लिखने में कमजोर हो गए (LiveCodeBench जैसे बेंचमार्क पर गिरावट आई)।
  • इस FIM प्रशिक्षण के साथ, वे न केवल समान रहे, बल्कि वे बेहतर (+11.1% on LiveCodeBench) भी हो गए।
  • भले ही प्रशिक्षण डेटा केवल पायथन कोड था, रोबोट पूरी तरह से अलग संदर्भों (जैसे τ-bench और BFCL) में टूल्स का उपयोग करने में बेहतर हो गए, जो यह सुझाव देता है कि उन्होंने "कारण-और-प्रभाव" (cause-and-effect) के बारे में सोचने का एक सामान्य कौशल सीखा है जो विभिन्न कार्यों में स्थानांतरित हो गया।

उन्होंने स्पष्ट रूप से किसे खारिज किया

लेखकों ने सावधानीपूर्वक कहा कि यह तरीका क्या नहीं है:

  • यह केवल एक स्मार्ट शिक्षक की नकल करना नहीं है: उन्होंने परीक्षण किया कि क्या रोबोट केवल एक शक्तिशाली AI (Gemini-3-Flash) की नकल कर रहा था जिसने प्रशिक्षण डेटा बनाने में मदद की थी। उन्होंने पाया कि जब रोबोट ने अपने स्वयं के रीजनिंग नोट्स बनाए, तब भी उसमें सुधार हुआ। इसलिए, जादू केवल "शिक्षक की नकल करना" नहीं है; यह खेल की संरचना ही है।
  • यह हर चीज़ के लिए जादुई समाधान नहीं है: यह तरीका तब सबसे अच्छा काम करता है जब कोड मॉड्यूलर (साफ-सुथरे फंक्शन्स में विभाजित) हो। यदि कोड एक विशाल, अव्यवस्थित स्क्रिप्ट है जहाँ सब कुछ मिला-जुला हुआ है, तो यह तरीका उतना अच्छा काम नहीं करता क्योंकि यह स्पष्ट "फंक्शन कॉल" पहेलियों को हल नहीं कर पाता।
  • यह अभी तक सभी भाषाओं के लिए सिद्ध नहीं हुआ है: उनका प्रशिक्षण डेटा केवल पायथन था। हालांकि रोबोट अन्य कार्यों में बेहतर हुए, लेखक स्वीकार करते हैं कि उन्होंने अभी तक यह साबित नहीं किया है कि यह Java, C++, या Rust के लिए भी काम करता है।

वे कितने आश्वस्त हैं?

लेखक अपने नंबरों को लेकर काफी आश्वस्त हैं क्योंकि उन्होंने परिणामों को केवल भाग्य नहीं बनाने के लिए अलग-अलग रैंडम सीड्स के साथ परीक्षण तीन बार किया। उन्होंने सुधारों को सटीक रूप से मापा (जैसे, +2.8%, +3.0%) और दिखाया कि रोबोटों ने लगातार अधिक समस्याओं को हल किया और फंसने पर कम गलतियाँ कीं।

उनका सुझाव है कि यह "मिड-ट्रेनिंग" चरण एक महत्वपूर्ण लुप्त कड़ी है। यह रोबोट को वास्तविक दुनिया में भेजने से पहले एक विशिष्ट प्रकार का जिम वर्कआउट देने जैसा है, जिससे यह सुनिश्चित होता है कि उसके पास "एक्ट, ऑब्जर्व, एंड कंटिन्यू" के जटिल लूप को संभालने के लिए सही मांसपेशियां हों, बिना अपनी अन्य क्षमताओं को खोए।

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

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

Digest आज़माएँ →