Benchmark · coding
LiveCodeBench
LiveCodeBench यह आँकता है कि बड़े भाषा मॉडल competitive programming की समस्याओं को कितनी अच्छी तरह हल करते हैं; इसके लिए कोडिंग चुनौतियाँ हाल की प्रतियोगिताओं से लगातार इकट्ठी की जाती हैं ताकि प्रशिक्षण-डेटा संदूषण से बचा जा सके। मुख्य मीट्रिक pass@1 है — वे समस्याएँ जिन्हें मॉडल अपने पहले ही प्रयास में सही हल कर देता है, उनका अनुपात।
और पढ़ें
- उदाहरण
- एक सामान्य आइटम प्रतियोगिता-शैली की कोडिंग समस्या होती है — उदाहरण के लिए, पूर्णांकों की एक सूची दी गई हो और सबसे लंबी कड़ाई से बढ़ती उपअनुक्रम (strictly increasing subsequence) की लंबाई लौटाने वाला एक फ़ंक्शन लिखना — जिसे मॉडल को कार्यशील कोड बनाकर हल करना होता है।
- स्कोरिंग
- हर उत्पन्न समाधान को समस्या के टेस्ट केस पर चलाया जाता है; pass@1 उन समस्याओं का अनुपात है जिनमें मॉडल का पहला सबमिशन सभी टेस्ट पास कर लेता है।
- सत्यापन
- जब उत्पन्न कोड उस समस्या के सभी छिपे और सार्वजनिक टेस्ट केस पास कर लेता है, तो समाधान स्वतः स्वीकार हो जाता है; इसमें कोई मानवीय मूल्यांकन या सटीक-पाठ मिलान शामिल नहीं होता।
- यह क्यों मायने रखता है
- चूँकि इसकी समस्याएँ किसी मॉडल की प्रशिक्षण कट-ऑफ के बाद जारी हुई प्रतियोगिताओं से ली जाती हैं, इसलिए LiveCodeBench रटे-रटाए उत्तरों के बजाय वास्तविक तर्क और कोडिंग क्षमता मापता है, जिससे यह कोडिंग कौशल का एक भरोसेमंद और संदूषण-प्रतिरोधी पैमाना बन जाता है।
हल किया गया उदाहरण
कार्य
प्रतियोगी प्रोग्रामिंग शैली (stdin/stdout)। n पूर्णांक दिए गए हैं; ऐसे युग्मों (i, j) की गिनती करें जहाँ i < j और nums[i] + nums[j] सम हो। इनपुट: पहली पंक्ति में n, दूसरी पंक्ति में स्पेस से अलग किए गए n पूर्णांक; गिनती प्रिंट करें।
समाधान
import sys
def main():
data = sys.stdin.read().split()
n = int(data[0])
nums = list(map(int, data[1:1 + n]))
odd = sum(x % 2 for x in nums)
even = n - odd
print(odd * (odd - 1) // 2 + even * (even - 1) // 2)
main()
व्याख्या
योगफल तभी सम होता है जब दोनों संख्याओं की सम-विषमता समान हो, इसलिए उत्तर C(evens, 2) + C(odds, 2) है; सम-विषमता गिनना O(n) में होता है। LiveCodeBench मॉडल के प्रोग्राम को छिपे हुए यूनिट टेस्ट पर चलाकर pass@1 से अंक देता है — सही तभी जब सभी टेस्ट पास हों।