Reliable handling of code diffs is central to agents that edit and refactor repositories at scale. We introduce Diff-XYZ, a compact benchmark for code-diff understanding with three supervised tasks: apply (old code $+$ diff $\rightarrow$ new code), anti-apply (new code $-$ diff $\rightarrow$ old code), and diff generation (new code $-$ old code $\rightarrow$ diff). Instances in the benchmark are triples $\langle \textit{old code}, \textit{new code}, \textit{diff} \rangle$ drawn from real commits in CommitPackFT, paired with automatic metrics and a clear evaluation protocol. We use the benchmark to do a focused empirical study of the unified diff format and run a cross-format comparison of different diff representations. Our findings reveal that different formats should be used depending on the use case and model size. For example, representing diffs in search-replace format is good for larger models in the diff generation scenario, yet not suited well for diff analysis and smaller models. The Diff-XYZ benchmark is a reusable foundation for assessing and improving diff handling in LLMs that can aid future development of diff formats and models editing code. The dataset is published on HuggingFace Hub: https://huggingface.co/datasets/JetBrains-Research/diff-xyz.
- पेपर ID: 2510.12487
- शीर्षक: Diff-XYZ: Diff समझ का मूल्यांकन करने के लिए एक बेंचमार्क
- लेखक: Evgeniy Glukhov, Michele Conti, Egor Bogomolov, Yaroslav Golubev, Alexander Bezzubov (JetBrains Research)
- वर्गीकरण: cs.SE (सॉफ्टवेयर इंजीनियरिंग), cs.LG (मशीन लर्निंग)
- प्रकाशन सम्मेलन: 39वां न्यूरल इनफॉर्मेशन प्रोसेसिंग सिस्टम्स सम्मेलन (NeurIPS 2025) कार्यशाला: एजेंटिक युग में कोड के लिए गहन शिक्षा
- पेपर लिंक: https://arxiv.org/abs/2510.12487
यह पेपर Diff-XYZ बेंचमार्क प्रस्तावित करता है, जो बड़े भाषा मॉडल (LLM) की कोड अंतर (diff) समझने की क्षमता का मूल्यांकन करने के लिए है। बेंचमार्क में तीन पर्यवेक्षित शिक्षण कार्य शामिल हैं: apply (पुरानी कोड + diff → नई कोड), anti-apply (नई कोड - diff → पुरानी कोड) और diff जनन (नई कोड - पुरानी कोड → diff)। बेंचमार्क डेटा CommitPackFT से वास्तविक प्रतिबद्धताओं से आता है, जिसमें 1000 त्रिपक्षीय उदाहरण ⟨पुरानी कोड, नई कोड, diff⟩ शामिल हैं। अनुसंधान से पता चलता है कि विभिन्न diff प्रारूपों को उपयोग के मामले और मॉडल आकार के अनुसार चुना जाना चाहिए, जो भविष्य के कोड संपादन मॉडल के विकास के लिए एक महत्वपूर्ण आधार प्रदान करता है।
आधुनिक कोड संपादन एजेंटों को बड़े पैमाने पर रिपॉजिटरी संपादन और पुनर्संरचना में कोड अंतर को विश्वसनीय रूप से संभालने की आवश्यकता है, लेकिन मौजूदा मूल्यांकन विधियों में निम्नलिखित समस्याएं हैं:
- प्रारूप चयन में व्यवस्थित अनुसंधान की कमी: हालांकि कई diff प्रतिनिधित्व प्रारूप (unified diff, search-replace आदि) मौजूद हैं, लेकिन प्रारूपों की व्यवस्थित तुलना का अभाव है
- मूल्यांकन जटिलता: मौजूदा end-to-end बेंचमार्क (जैसे SWE-bench) कई कारकों (पुनः प्राप्ति, उपकरण उपयोग आदि) को मिश्रित करते हैं, जिससे diff प्रारूप के प्रभाव को अलग करना मुश्किल है
- विविध विफलता पैटर्न: पैच वाक्य रचना त्रुटियों, संदर्भ बेमेल या तार्किक त्रुटियों के कारण विफल हो सकते हैं, जिन्हें अधिक विस्तृत विश्लेषण की आवश्यकता है
- व्यावहारिक मूल्य: कोड diff प्रसंस्करण स्वचालित कोड संपादन, बग सुधार, CI बिल्ड सुधार आदि कार्यों की मुख्य क्षमता है
- सैद्धांतिक महत्व: LLM कैसे संरचित संपादन जानकारी को संभालते हैं, यह समझना कोड जनन मॉडल में सुधार के लिए महत्वपूर्ण है
- इंजीनियरिंग मूल्य: उपयुक्त diff प्रारूप चुनने के लिए डेटा-संचालित मार्गदर्शन प्रदान करता है
- Diff-XYZ बेंचमार्क प्रस्तावित करना: तीन पूरक कार्यों के साथ एक हल्का, पुनरुत्पादनीय मूल्यांकन ढांचा
- व्यवस्थित प्रारूप तुलना: पहली बार कई diff प्रतिनिधित्व प्रारूपों की नियंत्रित चर तुलना
- प्रदर्शन आधारभूमि स्थापित करना: diff समझ कार्यों पर मालिकाना और ओपन-सोर्स मॉडल के लिए विस्तृत प्रदर्शन आधारभूमि
- प्रारूप चयन मार्गदर्शन: मॉडल आकार, कार्य प्रकार और इष्टतम प्रारूप चयन के बीच संबंध खोजना
- खुला डेटासेट: HuggingFace Hub पर उच्च गुणवत्ता वाला मूल्यांकन डेटासेट प्रकाशित करना
समीकरण diff = नई कोड - पुरानी कोड के आधार पर, तीन कार्य परिभाषित किए गए हैं:
X. Apply कार्य (आवेदन कार्य)
- इनपुट: पुरानी कोड + diff
- आउटपुट: नई कोड
- उद्देश्य: प्रारूप अनुपालन और वर्ण-स्तरीय निष्ठा का परीक्षण करना
Y. Anti-Apply कार्य (विपरीत आवेदन कार्य)
- इनपुट: नई कोड + diff
- आउटपुट: पुरानी कोड
- उद्देश्य: प्रारूप की प्रतिवर्तनीयता और हानिरहितता की जांच करना
Z. Diff जनन कार्य (अंतर जनन कार्य)
- इनपुट: पुरानी कोड + नई कोड
- आउटपुट: diff
- उद्देश्य: विश्वसनीय diff संश्लेषण क्षमता का परीक्षण करना
डेटा स्रोत: CommitPackFT डेटासेट से वास्तविक ओपन-सोर्स प्रतिबद्धताएं
फ़िल्टरिंग रणनीति:
- केवल एकल-फ़ाइल संशोधन वाली प्रतिबद्धताओं को बनाए रखना
- बाइनरी फ़ाइलें, उत्पन्न कोड, विक्रेता निर्देशिकाएं बाहर करना
- फ़ाइल पंक्ति सीमा: 40-1000 पंक्तियां
- केवल व्हाइटस्पेस परिवर्तन बाहर करना
स्तरीकृत नमूनाकरण:
- भाषा वितरण: Python, JavaScript, Java, Kotlin, Rust प्रत्येक 200 नमूने
- संपादन जटिलता: परिवर्तन ब्लॉक संख्या और परिवर्तन आकार के अनुसार स्तरीकृत
- छोटे संपादन: ≤7 पंक्ति परिवर्तन (40%)
- मध्यम संपादन: 8-24 पंक्ति परिवर्तन (40%)
- बड़े संपादन: >24 पंक्ति परिवर्तन (20%)
- परिवर्तन प्रकार: 81.5% में जोड़/हटाना शामिल, 16.3% केवल जोड़ना, 2.2% केवल हटाना
Apply और Anti-Apply कार्य:
- Stripped Exact Match (EM): व्हाइटस्पेस पंक्तियों को हटाने के बाद सटीक मिलान दर
- Stripped Intersection over Union (IoU): पंक्ति-स्तरीय प्रतिच्छेदन संघ
Diff जनन कार्य:
- पार्सिंग दर: पार्सेबल diff का अनुपात
- आवेदन दर: सफलतापूर्वक लागू किए जा सकने वाले diff का अनुपात
- EM/IoU आवेदन के बाद: diff लागू करने के बाद सटीक मिलान दर और IoU
- F1+ / F1-: जोड़ी गई और हटाई गई पंक्तियों के लिए F1 स्कोर
- कार्य डिजाइन की पूरकता: तीन कार्य विभिन्न कोणों से diff समझ क्षमता का व्यापक मूल्यांकन करते हैं
- नियंत्रित चर प्रयोग: संदर्भ परिवर्तन प्रारूप को ठीक करके, प्रारूप प्रभाव को सटीक रूप से मापना
- वास्तविक डेटा-संचालित: वास्तविक प्रतिबद्धताओं पर आधारित, कृत्रिम डेटा नहीं, पारिस्थितिकी वैधता सुनिश्चित करता है
- बहु-आयामी मूल्यांकन: वाक्य रचना सही होना, आवेदन सफलता दर और शब्दार्थ सही होना को जोड़ता है
- udiff: मानक unified diff प्रारूप
- udiff-h: शिथिल ब्लॉक हेडर के साथ unified diff
- udiff-l: स्पष्ट टैग (ADD/DEL/CON) के साथ unified diff
- search-replace: खोज-प्रतिस्थापन प्रारूप
मालिकाना मॉडल:
- GPT-4o, GPT-4o-mini
- GPT-4.1, GPT-4.1-mini, GPT-4.1-nano
- Claude 4 Sonnet
- Gemini 2.5 Flash
ओपन-सोर्स मॉडल:
- Qwen2.5-Coder श्रृंखला (0.5B-32B)
- बिना प्रारूप के: सामान्य सहायक प्रॉम्प्ट
- प्रारूप के साथ: प्रारूप विवरण वाली सिस्टम प्रॉम्प्ट
मालिकाना मॉडल प्रदर्शन:
- Claude 4 Sonnet Apply कार्य पर सर्वश्रेष्ठ प्रदर्शन करता है (EM: 0.95-0.96)
- GPT-4.1 सभी कार्यों पर मजबूत प्रदर्शन करता है, लेकिन प्रॉम्प्ट के प्रति संवेदनशील है
- छोटे मालिकाना मॉडल (जैसे GPT-4.1-nano) जटिल कार्यों पर महत्वपूर्ण रूप से गिरते हैं
ओपन-सोर्स मॉडल स्केलिंग नियम:
- प्रदर्शन मॉडल आकार के साथ स्पष्ट रूप से सुधरता है
- Qwen2.5-Coder-32B Apply/Anti-Apply पर GPT-4o स्तर के करीब है
- लेकिन Diff जनन पर अभी भी महत्वपूर्ण अंतर है
मुख्य निष्कर्ष:
- कार्य निर्भरता:
- Apply/Anti-Apply: udiff प्रारूप सर्वश्रेष्ठ प्रदर्शन करता है
- Diff जनन: search-replace बड़े मॉडल के लिए बेहतर है
- मॉडल आकार प्रभाव:
- बड़े मॉडल: search-replace जनन कार्य में उत्कृष्ट प्रदर्शन करता है
- छोटे मॉडल: udiff-l (स्पष्ट टैग) सर्वश्रेष्ठ है
- प्रारूप विशेषता विश्लेषण:
- search-replace लाभ: वैश्विक बाधाओं से बचना, स्थानीय संपादन स्वतंत्र
- udiff-h नुकसान: पंक्ति संख्या समर्थन को हटाने से संरचना भ्रमित होती है
- udiff-l लाभ: स्पष्ट टैग टैग संघर्ष को कम करते हैं
प्रॉम्प्ट प्रभाव:
- Diff जनन कार्य प्रारूप विवरण के प्रति अत्यधिक संवेदनशील है
- GPT-4.1 प्रारूप विवरण के बिना V4A प्रारूप आउटपुट करने के लिए प्रवृत्त है
- Apply कार्य प्रॉम्प्ट परिवर्तन के लिए अपेक्षाकृत मजबूत है
भाषा अंतर:
- पांच प्रोग्रामिंग भाषाओं पर अपेक्षाकृत सुसंगत प्रदर्शन
- Python और JavaScript अन्य भाषाओं पर थोड़ा बेहतर हैं
- HumanEval/MBPP: फ़ंक्शन-स्तरीय कोड जनन
- BigCodeBench: जटिल लाइब्रेरी कॉल कार्य
- सीमाएं: मुख्य रूप से शून्य से जनन पर ध्यान केंद्रित, संपादन प्रतिनिधित्व शामिल नहीं
- SWE-bench: वास्तविक GitHub समस्या समाधान
- CodeEditorBench: निर्देश-पालन संपादन
- सीमाएं: end-to-end मूल्यांकन, प्रारूप प्रभाव को अलग करना मुश्किल
- पूरकता: संपादन प्रतिनिधित्व के अलग-थलग अध्ययन पर ध्यान केंद्रित
- हल्कापन: कोई रिपॉजिटरी सेटअप या निष्पादन वातावरण की आवश्यकता नहीं
- नियंत्रणशीलता: कार्य संदर्भ को ठीक करना, प्रतिनिधित्व प्रारूप को बदलना
- प्रारूप चयन महत्वपूर्ण है: विभिन्न प्रारूप विभिन्न कार्यों और मॉडल आकारों में महत्वपूर्ण रूप से भिन्न होते हैं
- कार्य विशिष्टता: जनन और आवेदन कार्यों के लिए विभिन्न इष्टतम प्रारूपों की आवश्यकता है
- आकार निर्भरता: छोटे और बड़े मॉडल के लिए इष्टतम रणनीति अलग है
- वास्तविक अंतर: ओपन-सोर्स मॉडल में diff जनन पर अभी भी बड़ी सुधार की गुंजाइश है
- सरलीकृत कार्य: बेंचमार्क कार्य डाउनस्ट्रीम अनुप्रयोगों के सरलीकृत प्रॉक्सी हैं
- मूल्यांकन दायरा: केवल लालची डिकोडिंग पर विचार, तर्क या उपकरण उपयोग शामिल नहीं
- प्रारूप कवरेज: AST-स्तरीय या संरचित पैच प्रारूप शामिल नहीं
- डाउनस्ट्रीम कनेक्शन: बेंचमार्क प्रदर्शन और वास्तविक अनुप्रयोग प्रभाव के बीच मात्रात्मक संबंध की कमी
- प्रारूप विस्तार: वृक्ष संरचना और AST-स्तरीय संपादन प्रतिनिधित्व का अन्वेषण
- डाउनस्ट्रीम कनेक्शन: बेंचमार्क प्रदर्शन और वास्तविक अनुप्रयोग प्रभाव के बीच संबंध स्थापित करना
- तर्क क्षमता: बहु-चरणीय तर्क और उपकरण उपयोग परिदृश्य का मूल्यांकन
- त्रुटि पुनः प्राप्ति: आंशिक या क्षतिग्रस्त diff की प्रसंस्करण क्षमता का अध्ययन
- स्पष्ट समस्या परिभाषा: diff समझ की इस मुख्य लेकिन अनदेखी क्षमता को सटीक रूप से पहचानना
- कठोर प्रायोगिक डिजाइन: नियंत्रित चर प्रारूप तुलना विधि वैज्ञानिक और विश्वसनीय है
- उच्च डेटा गुणवत्ता: वास्तविक प्रतिबद्धताओं पर आधारित, स्तरीकृत नमूनाकरण प्रतिनिधित्व सुनिश्चित करता है
- मूल्यवान निष्कर्ष: प्रारूप चयन मार्गदर्शन में सीधा व्यावहारिक मूल्य है
- मजबूत पुनरुत्पादनशीलता: विस्तृत प्रायोगिक सेटअप और खुला डेटासेट
- सीमित सैद्धांतिक गहराई: प्रारूप अंतर तंत्र का सैद्धांतिक विश्लेषण पर्याप्त नहीं है
- एकल मूल्यांकन आयाम: मुख्य रूप से सही होना पर ध्यान केंद्रित, दक्षता और पठनीयता पर विचार की कमी
- अधूरा मॉडल कवरेज: ओपन-सोर्स मॉडल मुख्य रूप से Qwen श्रृंखला पर केंद्रित
- सीमित अनुप्रयोग परिदृश्य: इंटरैक्टिव संपादन और वृद्धिशील अपडेट परिदृश्य पर विचार नहीं
- शैक्षणिक मूल्य: कोड संपादन मूल्यांकन में महत्वपूर्ण अंतर भरता है, बाद के अनुसंधान को प्रेरित कर सकता है
- इंजीनियरिंग मूल्य: औद्योगिक क्षेत्र को diff प्रारूप चुनने के लिए डेटा समर्थन प्रदान करता है
- समुदाय योगदान: खुला बेंचमार्क और डेटासेट पूरे अनुसंधान समुदाय को लाभान्वित करेगा
- मानकीकरण क्षमता: कोड संपादन क्षमता मूल्यांकन के लिए मानक बेंचमार्क बन सकता है
- मॉडल विकास: कोड संपादन मॉडल की क्षमता मूल्यांकन और सुधार
- प्रारूप डिजाइन: नए diff प्रारूप की प्रभावशीलता सत्यापन
- उपकरण चयन: कोड संपादन उपकरणों की प्रारूप रणनीति चयन
- अनुसंधान आधार: जटिल कोड संपादन कार्यों के लिए बुनियादी क्षमता परीक्षण
पेपर 31 संबंधित संदर्भों का हवाला देता है, मुख्य रूप से:
- कोड जनन बेंचमार्क: HumanEval, MBPP, BigCodeBench आदि
- संपादन मूल्यांकन: SWE-bench, CodeEditorBench आदि
- मॉडल तकनीकी रिपोर्ट: GPT-4o, Claude, Qwen2.5-Coder आदि
- उपकरण और प्रारूप: Aider, GNU diffutils आदि
समग्र मूल्यांकन: यह एक उच्च गुणवत्ता वाला व्यवस्थित अनुसंधान पेपर है जो कोड संपादन क्षेत्र में एक महत्वपूर्ण समस्या को सटीक रूप से पहचानता है और हल करता है। हालांकि सैद्धांतिक गहराई में कुछ कमी है, लेकिन इसका व्यावहारिक मूल्य और पद्धति योगदान महत्वपूर्ण है, और कोड संपादन तकनीक के विकास को आगे बढ़ाने में महत्वपूर्ण भूमिका निभाता है।