Benchmark · agentic
SWE-rebench
SWE-rebench, कोडिंग बेंचमार्क SWE-bench का लगातार अपडेट होता रहने वाला संस्करण है, जो हाल के GitHub issues से कार्य लेता है ताकि यह संभावना घटे कि मॉडल ने उन्हें प्रशिक्षण के दौरान पहले ही देख लिया हो। यह बताता है कि मॉडल कितने प्रतिशत सॉफ़्टवेयर-इंजीनियरिंग कार्य हल करता है (% resolved)।
और पढ़ें
- उदाहरण
- एक सामान्य कार्य में मॉडल को किसी GitHub रिपॉज़िटरी से एक असली बग रिपोर्ट या फ़ीचर अनुरोध दिया जाता है, और उसे उस समस्या को हल करने के लिए प्रोजेक्ट का कोड संपादित करना होता है।
- स्कोरिंग
- मीट्रिक % resolved है: मॉडल जितने कार्य ठीक करता है उनकी संख्या को कुल कार्यों की संख्या से भाग देकर प्रतिशत में व्यक्त किया जाता है।
- सत्यापन
- जब रिपॉज़िटरी का अपना टेस्ट सूट संशोधित कोड पर पास हो जाता है, तो समाधान अपने-आप स्वीकार हो जाता है — फ़िक्स को असफल हो रहे टेस्ट को हरा करना होता है, बिना बाकी को तोड़े।
- यह क्यों मायने रखता है
- चूँकि इसके कार्य हाल के issues से लगातार नए किए जाते हैं, यह असली कोडिंग कौशल का अधिक साफ़ आकलन देता है, जिसे पुराने सार्वजनिक बेंचमार्क डेटा को रटकर बढ़ाना कठिन है।
हल किया गया उदाहरण
कार्य
GitHub के एक असली Python रिपॉज़िटरी (
python-slugify) से बनाया गया SWE-rebench इंस्टेंस, जो एक बेस commit पर पिन किया गया है। समस्या: slugify('Hello, World!') 'hello--world' लौटाता है — लगातार आने वाले separators एक के बजाय दोहरा hyphen देते हैं, जबकि अपेक्षित slug 'hello-world' है। देना है: रिपॉज़िटरी स्नैपशॉट के विरुद्ध एक git-diff patch जो FAIL_TO_PASS test को पास कराए और सभी PASS_TO_PASS tests को हरा बनाए रखे।समाधान
--- a/slugify/slugify.py
+++ b/slugify/slugify.py
@@ def slugify(text):
text = re.sub(r"[^\w\s-]", "", text).strip().lower()
- return re.sub(r"[\s]+", "-", text)
+ text = re.sub(r"[\s]+", "-", text)
+ return re.sub(r"-{2,}", "-", text)
व्याख्या
slug बनाने वाला कोड whitespace को
- में समेट देता है पर दोहराए गए hyphens को नहीं हटाता, इसलिए कई separators बाहर निकल आते हैं; re.sub(r'-{2,}', '-', text) जोड़ने से वे एक ही - में सामान्य हो जाते हैं। SWE-rebench निष्पादन के आधार पर आँकता है: patch को रिपॉज़िटरी कंटेनर में लगाया जाता है और इंस्टेंस तभी हल माना जाता है जब FAIL_TO_PASS test अब पास हो और सभी PASS_TO_PASS tests पहले जैसे पास रहें (leaderboard = हल किए गए %)।