अनुसंधान

सिमैंटिक खोज के साथ एजेंट को बेहतर बनाना

Stefan Heule, Emily Jia & Naman Jain4 मिनट में पढ़ें

जब कोडिंग एजेंट्स को कोई प्रॉम्प्ट मिलता है, तो सही उत्तर देने के लिए उन्हें फ़ाइलें पढ़कर और प्रासंगिक जानकारी खोजकर कोडबेस को समझना होता है।

Cursor के एजेंट द्वारा उपयोग किए जाने वाले टूल्स में से एक सिमैंटिक खोज है, जो प्राकृतिक भाषा क्वेरीज़ से मेल खाने वाले कोड के हिस्सों को पुनर्प्राप्त करती है, जैसे “हम प्रमाणीकरण को कहाँ संभालते हैं?”, और यह grep जैसे टूल द्वारा प्रदान की जाने वाली regex-आधारित खोज के अतिरिक्त काम करती है।

सिमैंटिक खोज को समर्थन देने के लिए, हमने अपना स्वयं का एम्बेडिंग मॉडल प्रशिक्षित किया है और तेज़ पुनर्प्राप्ति के लिए अनुक्रमण पाइपलाइन बनाई हैं। हालांकि खोज के लिए आप केवल grep और इसी तरह के कमांड-लाइन टूल्स पर भी निर्भर रह सकते हैं, हमने पाया है कि सिमैंटिक खोज एजेंट के प्रदर्शन में उल्लेखनीय सुधार करती है, खासकर बड़े कोडबेस में:

  • प्रश्नों के उत्तर देने में औसतन 12.5% अधिक सटीकता हासिल करना (मॉडल के आधार पर 6.5%–23.5%)।

  • ऐसे कोड परिवर्तन तैयार करना जिनके कोडबेस में बने रहने की संभावना अधिक हो।

  • उपयोगकर्ताओं को सही समाधान तक पहुँचने के लिए कम पुनरावृत्तियों की आवश्यकता होना।

  • जिन सभी मॉडल्स का हमने परीक्षण किया, उनमें सटीकता बढ़ाना, जिसमें सभी फ्रंटियर कोडिंग मॉडल्स शामिल हैं।

ऑफ़लाइन evals

हम एक मूल्यांकन डेटासेट, Cursor Context Bench, बनाए रखते हैं, जो ज्ञात सही उत्तरों वाले कोडबेस से जानकारी निकालने पर केंद्रित है। यह मूल्यांकन Cursor में सबसे ज़्यादा उपयोग किए जाने वाले सभी मॉडल्स पर चलाया जाता है, जिसमें हमारा अपना Composer भी शामिल है।

यह तुलना उपलब्ध उपकरणों के दो सेटों के साथ प्रदर्शन को देखती है: एक जिसमें सिमैंटिक खोज शामिल है और एक जिसमें नहीं। हर कॉन्फ़िगरेशन में, सिमैंटिक खोज नतीजों में काफ़ी सुधार करती है।

ऑनलाइन A/B परीक्षण

हम यह भी समझना चाहते थे कि इसका अंतिम उपयोगकर्ता के अनुभव पर क्या प्रभाव पड़ता है। हमने एक A/B परीक्षण किया, जिसमें दोनों समूहों ने एक ही मॉडल का उपयोग किया, लेकिन एक समूह के एजेंट को सिमैंटिक खोज तक पहुँच थी, जबकि दूसरा केवल grep जैसे पारंपरिक खोज उपकरणों पर निर्भर था। हमने दो मेट्रिक्स पर नज़र डाली:

  • कोड रिटेन्शन: प्रभावी एजेंटों द्वारा लिखा गया कोड उपयोगकर्ताओं के कोडबेस में बने रहने की अधिक संभावना रखता है। हमने देखा कि जब सिमैंटिक खोज उपलब्ध होती है, तो एजेंट कोड रिटेन्शन 0.3% बढ़ जाता है। 1,000 फ़ाइलों या उससे अधिक वाले बड़े कोडबेस में यह प्रभाव बढ़कर 2.6% हो जाता है।

  • असंतुष्ट उपयोगकर्ता अनुरोध: प्रभावी एजेंटों द्वारा लिखा गया कोड किसी अनुवर्ती कार्रवाई या सुधार की ज़रूरत नहीं छोड़ता। हमने देखा कि जब सिमैंटिक खोज उपलब्ध नहीं थी, तो असंतुष्ट अनुवर्ती उपयोगकर्ता अनुरोधों में 2.2% की वृद्धि हुई।

यहाँ प्रभाव अपेक्षाकृत कम है, क्योंकि A/B परीक्षण सभी एजेंट क्वेरीज़ पर किया गया है और सभी अनुरोधों में खोज की आवश्यकता नहीं होती।

कस्टम पुनर्प्राप्ति मॉडल

इन परिणामों को संभव बनाने वाले अहम हिस्सों में से एक हमारा कस्टम एम्बेडिंग मॉडल है। हमारा तरीका एजेंट सत्रों को प्रशिक्षण डेटा के रूप में इस्तेमाल करता है: जब कोई एजेंट किसी कार्य पर काम करता है, तो सही कोड तक पहुँचने से पहले वह कई बार खोज करता है और फ़ाइलें खोलता है। इन ट्रेस का विश्लेषण करके हम बाद में समझ सकते हैं कि बातचीत में पहले क्या पुनर्प्राप्त हो जाना चाहिए था।

हम इन ट्रेस को एक LLM को देते हैं, जो रैंक करता है कि हर चरण पर कौन-सा कंटेंट सबसे ज़्यादा मददगार होता। इसके बाद हम अपने एम्बेडिंग मॉडल को इस तरह प्रशिक्षित करते हैं कि उसके समानता स्कोर, LLM द्वारा जनरेट की गई इन रैंकिंग्स के अनुरूप हों। इससे एक फ़ीडबैक लूप बनता है, जिसमें मॉडल सामान्य कोड समानता पर निर्भर रहने के बजाय यह सीखता है कि एजेंट वास्तव में कोडिंग कार्यों को कैसे पूरा करते हैं।

निष्कर्ष

सर्वश्रेष्ठ परिणाम हासिल करने के लिए, खासकर बड़े कोडबेस में, वर्तमान में सिमैंटिक खोज आवश्यक है।

हमारा एजेंट grep के साथ-साथ सिमैंटिक खोज का भी काफी उपयोग करता है, और इन दोनों का संयोजन सर्वश्रेष्ठ नतीजे देता है। जैसे-जैसे मॉडल बेहतर होते जा रहे हैं, हम एजेंट हार्नेस को दिए जाने वाले सभी उपकरणों का लगातार परीक्षण और मूल्यांकन कर रहे हैं।