paint-brush
बड़े भाषा मॉडल का उपयोग करके आनुवंशिक सुधार उत्परिवर्तन को बढ़ानाद्वारा@escholar
493 रीडिंग
493 रीडिंग

बड़े भाषा मॉडल का उपयोग करके आनुवंशिक सुधार उत्परिवर्तन को बढ़ाना

बहुत लंबा; पढ़ने के लिए

यह पेपर प्रयोगात्मक मूल्यांकन के माध्यम से सॉफ्टवेयर इंजीनियरिंग के भीतर आनुवंशिक सुधार (जीआई) में बड़े भाषा मॉडल (एलएलएम) के अनुप्रयोग की पड़ताल करता है। अंतर्दृष्टि जेसीओडेक परियोजना पर ध्यान केंद्रित करने के साथ खोज-आधारित तकनीकों, प्रोग्राम मरम्मत और कोड पीढ़ी पर एलएलएम के प्रभाव को प्रकट करती है। पता लगाएं कि एलएलएम म्यूटेशन सॉफ्टवेयर विकास प्रक्रियाओं को कैसे बढ़ाते हैं।
featured image - बड़े भाषा मॉडल का उपयोग करके आनुवंशिक सुधार उत्परिवर्तन को बढ़ाना
EScholar: Electronic Academic Papers for Scholars HackerNoon profile picture

लेखक:

(1) अलेक्जेंडर ईआई ब्राउनली, स्टर्लिंग विश्वविद्यालय, यूके;

(2) जेम्स कैलन, यूनिवर्सिटी कॉलेज लंदन, यूके;

(3) कैरिन इवन-मेंडोज़ा, किंग्स कॉलेज लंदन, यूके;

(4) एलिना गीगर, जोहान्स गुटेनबर्ग यूनिवर्सिटी मेन्ज़, जर्मनी;

(5) कैरोल हना, यूनिवर्सिटी कॉलेज लंदन, यूके;

(6) जस्टिना पेटके, यूनिवर्सिटी कॉलेज लंदन, यूके;

(7) फेडेरिका सरो, यूनिवर्सिटी कॉलेज लंदन, यूके;

(8) डोमिनिक सोबनिया, जोहान्स गुटेनबर्ग यूनिवर्सिटी मेन्ज़, जर्मनी।

सामग्री अवलोकन

  • अमूर्त
  • परिचय
  • प्रयोगात्मक स्थापना
  • परिणाम
  • निष्कर्ष और भविष्य के काम
  • संदर्भ

अमूर्त

बड़े भाषा मॉडल (एलएलएम) को प्रोग्राम मरम्मत सहित सॉफ्टवेयर इंजीनियरिंग कार्यों में सफलतापूर्वक लागू किया गया है। हालाँकि, जेनेटिक इम्प्रूवमेंट (जीआई) जैसी खोज-आधारित तकनीकों में उनका अनुप्रयोग अभी भी काफी हद तक अज्ञात है। इस पेपर में, हम खोज प्रक्रिया को बेहतर बनाने के लिए जीआई के लिए उत्परिवर्तन ऑपरेटरों के रूप में एलएलएम के उपयोग का मूल्यांकन करते हैं। हम JCodec टूल के लिए संपादन उत्पन्न करने के लिए OpenAI के API को कॉल करने के लिए जिन जावा GI टूलकिट का विस्तार करते हैं। हम 5 अलग-अलग संपादन प्रकारों का उपयोग करके संपादनों के स्थान का यादृच्छिक रूप से नमूना लेते हैं। हमने पाया है कि यूनिट परीक्षण पास करने वाले पैच की संख्या एलएलएम-आधारित संपादनों के साथ मानक सम्मिलित संपादनों की तुलना में 75% अधिक है। इसके अलावा, हम देखते हैं कि एलएलएम के साथ पाए जाने वाले पैच आम तौर पर मानक संपादनों की तुलना में कम विविध होते हैं। हमने रनटाइम सुधार खोजने के लिए स्थानीय खोज के साथ जीआई चलाया। यद्यपि कई सुधारात्मक पैच एलएलएम-संवर्धित जीआई द्वारा पाए जाते हैं, सबसे अच्छा सुधार पैच मानक जीआई द्वारा पाया गया था।


परिचय

जैसे-जैसे सॉफ़्टवेयर सिस्टम बड़े और अधिक जटिल होते जाते हैं, उन्हें बनाए रखने के लिए महत्वपूर्ण मैन्युअल प्रयास की आवश्यकता होती है [2]। सॉफ़्टवेयर रखरखाव और अनुकूलन कार्यों में डेवलपर के प्रयास को कम करने के लिए, स्वचालित प्रतिमान आवश्यक हैं। जेनेटिक इम्प्रूवमेंट (जीआई) [15] मौजूदा सॉफ़्टवेयर के गैर-कार्यात्मक गुणों जैसे निष्पादन समय के साथ-साथ बग की मरम्मत जैसे कार्यात्मक गुणों को बेहतर बनाने के लिए खोज-आधारित तकनीकों को लागू करता है। यद्यपि जीआई को उद्योग में सफलता मिली है [12,13], यह खोज में नियोजित उत्परिवर्तन ऑपरेटरों के सेट तक सीमित है [14]।


बड़े भाषा मॉडल (एलएलएम) में अनुप्रयोगों की एक विस्तृत श्रृंखला होती है क्योंकि वे किसी विशेष कार्य के लिए अतिरिक्त प्रशिक्षण के बिना पाठ्य प्रश्नों को संसाधित करने में सक्षम होते हैं। एलएलएम को कई अलग-अलग प्रोग्रामिंग भाषाओं में फैले लाखों कोड रिपॉजिटरी पर पूर्व-प्रशिक्षित किया गया है [5]। सॉफ़्टवेयर इंजीनियरिंग कार्यों के लिए उनके उपयोग को बड़ी सफलता मिली है [9,6], जो प्रोग्राम मरम्मत के लिए भी आशाजनक है [17,19]।


कांग और यू [10] ने सुझाव दिया है कि जीआई को बढ़ाने के लिए एलएलएम के उपयोग में अप्रयुक्त क्षमता है। जीआई विभिन्न अनुकूलन कार्यों के लिए समान उत्परिवर्तन ऑपरेटरों का उपयोग करता है। इन ऑपरेटरों को खोज शुरू करने से पहले हाथ से तैयार किया जाता है और इस प्रकार परिणाम सीमित खोज स्थान में होता है। हमारा अनुमान है कि एक अतिरिक्त म्यूटेशन ऑपरेटर के रूप में एलएलएम पैच सुझावों को बढ़ाने से खोज स्थान समृद्ध होगा और परिणामस्वरूप अधिक सफल वेरिएंट सामने आएंगे।


इस पेपर में, हम यह पता लगाने के लिए कई प्रयोग करते हैं कि क्या जीआई में उत्परिवर्तन ऑपरेटर के रूप में एलएलएम का उपयोग खोज की दक्षता और प्रभावकारिता में सुधार कर सकता है। हमारे परिणाम बताते हैं कि एलएलएम-जनरेटेड पैच में यादृच्छिक खोज और स्थानीय खोज के लिए क्रमशः 51.32% और 53.54% की संकलन दर है (मध्यम शीघ्र श्रेणी के साथ)। पहले एलएलएम (जैसे एलएलएम मॉडल का उपयोग करके) को कोड का उत्पादन करने के लिए दिखाया गया था जो लगभग 40% समय संकलित करता था [16,18]। हमने पाया कि बेतरतीब ढंग से नमूना किए गए एलएलएम-आधारित संपादन मानक जीआई संपादनों की तुलना में अधिक बार संकलित और इकाई परीक्षण पास करते हैं। हमने देखा कि एलएलएम-आधारित संपादनों के लिए यूनिट परीक्षण पास करने वाले पैच की संख्या जीआई इंसर्ट संपादनों की तुलना में 75% अधिक है। हालाँकि, हम देखते हैं कि एलएलएम के साथ पाए गए पैच कम विविध हैं। स्थानीय खोज के लिए, मानक जीआई स्टेटमेंट संपादन का उपयोग करके सर्वोत्तम सुधार प्राप्त किया जाता है, इसके बाद एलएलएम-आधारित संपादन किया जाता है। ये निष्कर्ष म्यूटेशन ऑपरेटर के रूप में एलएलएम की क्षमता को प्रदर्शित करते हैं और इस क्षेत्र में आगे के शोध की आवश्यकता पर प्रकाश डालते हैं।


प्रयोगात्मक स्थापना

जीआई में म्यूटेशन ऑपरेटर के रूप में एलएलएम के उपयोग का विश्लेषण करने के लिए, हमने ओपनएआई द्वारा जीपीटी 3.5 टर्बो मॉडल और जीआई टूलबॉक्स जिन [3] का उपयोग किया। हमने Gin के भीतर कार्यान्वित दो प्रकार की खोज का प्रयोग किया: यादृच्छिक खोज और स्थानीय खोज। ओपनएआई एपीआई का उपयोग करके एलएलएम के लिए अनुरोध लैंगचैन4जे लाइब्रेरी के माध्यम से 0.7 के तापमान के साथ किए गए थे। हमारे प्रयोगों में सुधार के लिए लक्ष्य परियोजना लोकप्रिय JCodec [7] परियोजना थी जो जावा में लिखी गई है। संपादन द्वारा लक्षित किए जाने वाले 'हॉट' तरीकों की पहचान जिन के प्रोफाइलर टूल का उपयोग करके प्रोफाइलिंग को 20 बार दोहराकर और परिणामी सेट के संघ को लेकर की गई थी।


यादृच्छिक नमूनाकरण प्रयोगों के लिए, हम स्टेटमेंट लेवल एडिट्स ([14] से कॉपी/डिलीट/रिप्लेस/स्वैप और [4] से ब्रेक/कंटिन्यू/रिटर्न डालें) और एलएलएम एडिट्स के साथ रन सेट करते हैं, जिससे यादृच्छिक रूप से प्रत्येक प्रकार के 1000 उत्पन्न होते हैं। . संपादनों द्वारा शुरू किए गए अनंत लूपों को पकड़ने के लिए प्रत्येक इकाई परीक्षण के लिए 10000 मिलीसेकंड का टाइमआउट उपयोग किया गया था; टाइमआउट को पार करना परीक्षण विफलता के रूप में गिना जाता है। स्थानीय खोज के लिए, प्रयोग इसी तरह स्थापित किए गए थे। 10 रिपीट रन थे (शीर्ष 10 हॉट तरीकों में से प्रत्येक के लिए एक) लेकिन रन 100 मूल्यांकन तक सीमित थे, जिसके परिणामस्वरूप यादृच्छिक खोज से मेल खाते हुए कुल 1000 मूल्यांकन हुए। व्यवहार में यह प्रति रन 99 संपादन था क्योंकि पहली बार मूल अनपैच किए गए कोड को समयबद्ध करने के लिए उपयोग किया गया था।


हमने दोनों प्रकार की खोज के लिए एलएलएम को अनुरोध भेजने के लिए तीन अलग-अलग संकेतों का प्रयोग किया: एक सरल संकेत, एक मध्यम संकेत और एक विस्तृत संकेत। तीनों संकेतों के साथ, हमारा कार्यान्वयन कोड के पांच अलग-अलग रूपों का अनुरोध करता है। सरल संकेत बिना किसी अतिरिक्त जानकारी के केवल कोड का अनुरोध करता है। मीडियम प्रॉम्प्ट प्रदान किए गए कोड और आवश्यकताओं के बारे में अधिक जानकारी प्रदान करता है, जैसा कि चित्र 1 में दिखाया गया है। विशेष रूप से, हम एलएलएम को प्रयुक्त प्रोग्रामिंग भाषा, कोड से संबंधित प्रोजेक्ट, साथ ही फ़ॉर्मेटिंग निर्देश प्रदान करते हैं। विस्तृत प्रॉम्प्ट एक उपयोगी परिवर्तन के उदाहरण के साथ मीडियम प्रॉम्प्ट का विस्तार करता है। यह उदाहरण ब्राउनली एट अल द्वारा प्राप्त परिणामों से लिया गया था। [4]. पैच jCodec प्रोजेक्ट पर लागू इन्सर्ट एडिट का एक सफल उदाहरण है (यानी, एक एडिट जो संकलित किया गया, यूनिट परीक्षण पास किया और मूल कोड पर स्पीडअप की पेशकश की)। हम अपने प्रयोगों में उपयोग किए गए सभी विस्तृत त्वरित अनुरोधों के लिए एक ही उदाहरण का उपयोग करते हैं; ऐसा इसलिए है क्योंकि एलएलएम आगमनात्मक तर्क करने में सक्षम हैं जहां उपयोगकर्ता विशिष्ट जानकारी प्रस्तुत करता है, और एलएलएम उस इनपुट का उपयोग अधिक सामान्य कथन उत्पन्न करने के लिए कर सकता है, जिसे जीपीटी-4 [8] में और बेहतर बनाया गया है।



चित्र 1. एलएलएम अनुरोधों के लिए मध्यम संकेत, पठनीयता के लिए लाइन ब्रेक जोड़े गए हैं।



एलएलएम संपादन लक्ष्य 'हॉट' विधि में यादृच्छिक रूप से एक ब्लॉक स्टेटमेंट का चयन करके लागू किया जाता है। इस ब्लॉक की सामग्री in the prompt. The first code block in the LLM response is identified. Gin uses JavaParser (https://javaparser.org) internally to represent target source files, so we attempt to parse the LLM suggestion with JavaParser, and replace the original block with the LLM suggestion.


परिणाम

पहला प्रयोग यादृच्छिक नमूनाकरण का उपयोग करके अलग-अलग विस्तृत संकेतों (सरल, मध्यम और विस्तृत) का उपयोग करके एलएलएम संपादन के साथ मानक जीआई उत्परिवर्तन, अर्थात् सम्मिलित और कथन संपादन की तुलना करता है। तालिका 1 सभी पैच के साथ-साथ केवल अद्वितीय पैच के लिए परिणाम दिखाती है। हम रिपोर्ट करते हैं कि कितने पैच JavaParser द्वारा सफलतापूर्वक पार्स किए गए (जिसे वैध नाम दिया गया है), कितने पैच संकलित किए गए, और कितने ने सभी यूनिट परीक्षण पास किए (जिसे पास किया गया नाम दिया गया)। हमने मूल सॉफ़्टवेयर के समतुल्य पैच को हटा दिया है। सर्वोत्तम परिणाम बोल्ड में हैं।


हम देखते हैं कि यद्यपि मानक इंसर्ट और स्टेटमेंट संपादनों के साथ काफी अधिक वैध पैच पाए गए थे, एलएलएम-जनरेटेड संपादनों का उपयोग करके अधिक पासिंग पैच पाए जा सकते थे। विशेष रूप से, मीडियम और विस्तृत संकेतों के लिए क्रमशः 292 और 230 पैच ने यूनिट परीक्षण पास कर लिया। इंसर्ट और स्टेटमेंट संपादन के लिए क्रमशः केवल 166 और 91 ने यूनिट परीक्षण पास किया। वास्तविक रूप से, न्यूनतम/उच्चतम पैच पास दर वाले हॉट तरीके प्रत्येक ऑपरेटर के लिए अलग-अलग थे: इस भिन्नता को समझना भविष्य की जांच के लिए दिलचस्प होगा।


यह भी उल्लेखनीय है कि एलएलएम पैच कम विविध हैं: मीडियम का उपयोग करने वाले एलएलएम की तुलना में मानक उत्परिवर्तन ऑपरेटरों द्वारा 50% से अधिक अद्वितीय पैच पाए गए।



तालिका 1. हमारे यादृच्छिक नमूनाकरण प्रयोग के परिणाम। हम इस तालिका में मूल सॉफ़्टवेयर के समतुल्य पैच को हटा देते हैं। सभी और अनूठे पैच के लिए हम रिपोर्ट करते हैं: कितने पैच ने JavaParser पास किया, संकलित किया, और सभी यूनिट परीक्षण पास किए।




तालिका 2. स्थानीय खोज परिणाम. हम सभी खाली पैच को बाहर कर देते हैं। हम रिपोर्ट करते हैं कि कितने पैच संकलित किए गए, सभी यूनिट परीक्षण पास किए गए और कितने से रनटाइम में सुधार हुआ। हम पैच में सुधार के बीच पाए गए सर्वोत्तम सुधार और औसत सुधार की रिपोर्ट करते हैं।



और विस्तृत संकेत. हालाँकि, सिंपल प्रॉम्प्ट के साथ, एक भी पैच यूनिट परीक्षण में उत्तीर्ण नहीं हुआ, क्योंकि सुझाए गए संपादन अक्सर पार्स नहीं किए जा सकते थे। इस प्रकार एलएलएम को प्रयोग योग्य आउटपुट उत्पन्न करने के लिए बाध्य करने के लिए विस्तृत संकेत आवश्यक हैं।


हमने विस्तृत (अनूठे पैच सेट में) प्रदर्शन में कमी को समझने के लिए मीडियम और विस्तृत संकेतों के बीच अंतर की जांच की क्योंकि मीडियम में संकलित और पारित पैच की संख्या अधिक थी। दोनों त्वरित स्तरों में, उत्पन्न प्रतिक्रिया 42 मामलों (कुल अद्वितीय वैध मामलों में से) के लिए समान थी। हालाँकि, विस्तृत में औसतन 363 वर्णों के साथ लंबी प्रतिक्रियाएँ उत्पन्न हुईं, जबकि मीडियम में औसतन 304 वर्ण थे। हमने मैन्युअल रूप से कई विस्तृत त्वरित प्रतिक्रियाओं की जांच की, जिसमें हमने अन्य फ़ाइलों से चर सहित कुछ की पहचान की, जो संभावित रूप से जीआई द्वारा खोजे जा सकने वाले कोड वेरिएंट के सेट के एक महत्वपूर्ण विस्तार की पेशकश कर सकते हैं।


दूसरा प्रयोग स्थानीय खोज के साथ मानक और एलएलएम संपादनों के प्रदर्शन की तुलना करते हुए हमारे विश्लेषण का विस्तार करता है। तालिका 2 स्थानीय खोज प्रयोग के परिणाम दिखाती है। हम संकलित और पासिंग पैच की संख्या के साथ-साथ रनटाइम सुधार पाए गए पैच की संख्या की रिपोर्ट करते हैं। इसके अलावा, हम मिलीसेकंड (एमएस) में औसत और सर्वोत्तम सुधार की रिपोर्ट करते हैं। तालिका में, हमने सभी खाली पैच को बाहर कर दिया है। पहले की तरह, सर्वोत्तम परिणाम बोल्ड में हैं।


फिर से, हम देखते हैं कि यूनिट परीक्षणों को पास करने वाले अधिक पैच एलएलएम के साथ माध्यम और विस्तृत संकेतों का उपयोग करके पाए जा सकते हैं। इसके अलावा, इन संकेतों के साथ एलएलएम का उपयोग करके और अधिक सुधार पाए जा सकते हैं। विशेष रूप से, मध्यम और विस्तृत के साथ, हमें क्रमशः 164 और 196 सुधार मिले, जबकि हमें सम्मिलित के साथ केवल 136 और स्टेटमेंट के साथ 71 सुधार मिले। सबसे अच्छा सुधार स्टेटमेंट एडिट के साथ 508 एमएस में पाया जा सकता है। एलएलएम (मीडियम प्रॉम्प्ट का उपयोग करके) का उपयोग करके पाया गया सबसे अच्छा सुधार केवल 395 एमएस तक रनटाइम में सुधार करने में सक्षम था। विस्तृत प्रॉम्प्ट की प्रतिक्रियाओं की कम संकलन दर के कारण मध्यम और विस्तृत प्रॉम्प्ट के बीच अंतर की जानकारी प्राप्त करने के लिए हमने स्थानीय खोज परिणामों में संपादनों की एक श्रृंखला की भी जांच की। उदाहरण में, फ़ंक्शन क्लिप में कॉल को इनलाइन करने के उद्देश्य से संपादन का एक क्रम। विस्तृत संकेत ने कुछ संपादनों के भीतर कॉल को लगभग तुरंत शामिल करने का प्रयास किया, जिससे संभवतः अमान्य कोड हो गया। दूसरी ओर, मीडियम प्रॉम्प्ट ने कम मौलिक परिवर्तन किए, धीरे-धीरे कोड को परिष्कृत किया। इसकी शुरुआत अंततः क्लिप फ़ंक्शन कॉल को इनलाइन करने का प्रयास करने से पहले टर्नरी ऑपरेटर अभिव्यक्ति को यदि-तब-अन्यथा कथन और सिस्टम फ़ंक्शन कॉल के साथ बदलने से हुई।


निष्कर्ष और भविष्य के काम

सॉफ़्टवेयर का आनुवंशिक सुधार खोज प्रक्रिया में उपयोग किए जाने वाले उत्परिवर्तन ऑपरेटरों पर अत्यधिक निर्भर है। ऑपरेटरों में विविधता लाने और खोज स्थान को और समृद्ध करने के लिए, हमने एक ऑपरेटर के रूप में एक बड़े भाषा मॉडल (एलएलएम) को शामिल किया।


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


सारांश । हमने पाया कि, हालांकि रैंडम सैंपलिंग का उपयोग करके मानक संपादन के साथ अधिक वैध और विविध पैच पाए गए, यूनिट परीक्षण पास करने वाले अधिक पैच एलएलएम-आधारित संपादन के साथ पाए गए। उदाहरण के लिए, मीडियम प्रॉम्प्ट का उपयोग करके एलएलएम एडिट के साथ, हमने क्लासिक इंसर्ट एडिट की तुलना में यूनिट परीक्षणों को पास करने वाले 75% से अधिक पैच पाए। हमारे स्थानीय खोज प्रयोग में, हमें स्टेटमेंट संपादन (508 एमएस) के साथ सबसे अच्छा सुधार मिला। सबसे अच्छा एलएलएम आधारित सुधार मीडियम प्रॉम्प्ट (395 एमएस) के साथ पाया गया। इस प्रकार एलएलएम और 'क्लासिक' जीआई संपादन दोनों के संयोजन के दृष्टिकोण की खोज करने की संभावना है।


हमारे प्रयोगों से पता चला कि एलएलएम अनुरोधों के लिए उपयोग किए जाने वाले संकेत परिणामों को बहुत प्रभावित करते हैं। इस प्रकार, भविष्य के काम में, हम त्वरित इंजीनियरिंग के साथ और अधिक प्रयोग करने की उम्मीद करते हैं। यह संकेतों को मिश्रित करने में भी सहायक हो सकता है: उदाहरण के लिए, मध्यम से शुरू करना और फिर स्थानीय मिनीमा से बाहर निकलने वाले बड़े संपादन करने के लिए विस्तृत पर स्विच करना। इसके अलावा, एलएलएम संपादनों को अन्य जैसे मानक कॉपी/डिलीट/रिप्लेस/स्वैप या PAR टेम्प्लेट [11] के साथ संयोजित करने की संभावना दिलचस्प हो सकती है। अंत में, हम अतिरिक्त परीक्षण कार्यक्रमों पर अधिक व्यापक प्रयोग करने की आशा करते हैं।


डेटा उपलब्धता. कोड, एलएलएम प्रॉम्प्ट और प्रायोगिक बुनियादी ढाँचा, मूल्यांकन से डेटा और परिणाम [1] पर खुले स्रोत के रूप में उपलब्ध हैं। कोड github.com/gintool/gin की 'llm' शाखा के अंतर्गत भी है (9fe9bdf प्रतिबद्ध; मास्टर कमिट 2359f57 से शाखाबद्ध, जिन के साथ पूर्ण एकीकरण लंबित है)।


आभार यूकेआरआई ईपीएसआरसी ईपी/पी023991/1 और ईआरसी 741278।

संदर्भ

  1. बड़े भाषा मॉडल का उपयोग करके आनुवंशिक सुधार उत्परिवर्तन को बढ़ाने की कलाकृति। ज़ेनोडो (सितंबर 2023)। https://doi.org/10.5281/zenodo.8304433


  2. बोहमे, एम., सोरेमेकुन, ईओ, चट्टोपाध्याय, एस., उघेरुघे, ई., ज़ेलर, ए.: बग कहां है और इसे कैसे ठीक किया जाता है? अभ्यासकर्ताओं के साथ एक प्रयोग. इन: प्रोक. सॉफ्टवेयर इंजीनियरिंग की नींव पर एसीएम संगोष्ठी। पीपी 117-128 (2017)


  3. ब्राउनली, एई, पेटके, जे., अलेक्जेंडर, बी., बर्र, ईटी, वैगनर, एम., व्हाइट, डीआर: जिन: आनुवंशिक सुधार अनुसंधान आसान बना दिया गया। इन: गेको। पीपी. 985-993 (2019)


  4. ब्राउनली, एई, पेटके, जे., रासबर्न, एएफ: तेजी से चलने वाले जावा कोड के लिए शॉर्टकट इंजेक्ट करना। इन: आईईईई सीईसी 2020. पी. 1-8


  5. चेन, एम., ट्वोरेक, जे., जून, एच., युआन, क्यू., पिंटो, एचपीडीओ, कपलान, जे., एडवर्ड्स, एच., बर्दा, वाई., जोसेफ, एन., ब्रॉकमैन, जी., एट अल.: कोड पर प्रशिक्षित बड़े भाषा मॉडल का मूल्यांकन करना। arXiv प्रीप्रिंट arXiv:2107.03374 (2021)


  6. फैन, ए., गोक्कया, बी., हरमन, एम., हुबार्स्की, एम., सेनगुप्ता, एस., यू, एस., झांग, जेएम: सॉफ्टवेयर इंजीनियरिंग के लिए बड़े भाषा मॉडल: सर्वेक्षण और खुली समस्याएं (2023)

  7. जीथब - जेकोडेक/जेकोडेक: जेकोडेक मुख्य रेपो, https://github.com/jcodec/jcodec


  8. हान, एसजे, रैनसम, केजे, परफोर्स, ए., केम्प, सी.: मानव और बड़े भाषा मॉडल में आगमनात्मक तर्क। संज्ञानात्मक प्रणाली अनुसंधान पी. 101155 (2023)


  9. होउ, एक्स., लियू, वाई., यांग, जेड., ग्रुंडी, जे., झाओ, वाई., ली, एल., वांग, के., लुओ, एक्स., लो, डी., वांग, एच.: सॉफ्टवेयर इंजीनियरिंग के लिए बड़े भाषा मॉडल: एक व्यवस्थित साहित्य समीक्षा। arXiv:2308.10620 (2023)


  10. कांग, एस., यू, एस.: बड़े भाषा मॉडल के माध्यम से उद्देश्य-अनुरूप आनुवंशिक सुधार की ओर। arXiv:2304.09386 (2023)


  11. किम, डी., नाम, जे., सॉन्ग, जे., किम, एस.: मानव-लिखित पैच से सीखी गई स्वचालित पैच जेनरेशन (2013), http://logging.apache.org/log4j/


  12. किर्बास, एस., विंडेल्स, ई., मैकबेलो, ओ., केल्स, के., पैगानो, एम., सज़ालांस्की, आर., नोवाक, वी., विंटर, ई., काउंसेल, एस., बोवेस, डी., हॉल, टी., हेराल्डसन, एस., वुडवर्ड, जे.: ब्लूमबर्ग में स्वचालित प्रोग्राम मरम्मत की शुरूआत पर। आईईईई सॉफ्टवेयर 38(4), 43-51 (2021)


  13. मार्जिनियन, ए., बेडर, जे., चंद्रा, एस., हरमन, एम., जिया, वाई., माओ, के., मोल्स, ए., स्कॉट, ए.: सैपफिक्स: स्वचालित एंड-टू-एंड मरम्मत पैमाना। इन: आईसीएसई-एसईआईपी। पीपी 269-278 (2019)


  14. पेटके, जे., अलेक्जेंडर, बी., बर्र, ईटी, ब्राउनली, एई, वैगनर, एम., व्हाइट, डीआर: जिन का उपयोग करके स्वचालित प्रोग्राम संशोधन के लिए प्रोग्राम परिवर्तन परिदृश्य। अनुभवजन्य सॉफ्टवेयर इंजीनियरिंग 28(4), 1-41 (2023)


  15. पेटके, जे., हेराल्डसन, एसओ, हरमन, एम., लैंगडन, डब्ल्यूबी, व्हाइट, डीआर, वुडवर्ड, जेआर: सॉफ्टवेयर का आनुवंशिक सुधार: एक व्यापक सर्वेक्षण। विकासवादी संगणना पर आईईईई लेनदेन 22, 415-432 (2018)


  16. सिद्दीक, एमएल, सैंटोस, जे., तनवीर, आरएच, उल्फत, एन., रिफत, एफए, लोप्स, वीसी: यूनिट परीक्षण उत्पन्न करने में बड़े भाषा मॉडल की प्रभावशीलता की खोज। arXiv प्रीप्रिंट arXiv:2305.00418 (2023)


  17. सोबनिया, डी., ब्रीश, एम., हन्ना, सी., पेटके, जे.: चैटजीपीटी के स्वचालित बग फिक्सिंग प्रदर्शन का विश्लेषण। में: स्वचालित प्रोग्राम मरम्मत (एपीआर) पर 2023 आईईईई/एसीएम अंतर्राष्ट्रीय कार्यशाला। पृ. 23-30. आईईईई कंप्यूटर सोसायटी (2023)


  18. ज़िया, सीएस, पाल्टेंघी, एम., तियान, जेएल, प्राडेल, एम., झांग, एल.: बड़े भाषा मॉडल के माध्यम से यूनिवर्सल फ़ज़िंग। arXiv प्रीप्रिंट arXiv:2308.04748 (2023)


  19. ज़िया, सीएस, झांग, एल.: बातचीत जारी रखें: चैटजीपीटी का उपयोग करके $0.42 प्रत्येक के लिए 337 में से 162 बग को ठीक करना। arXiv प्रीप्रिंट arXiv:2304.00385 (2023)




यह पेपर CC 4.0 लाइसेंस के तहत arxiv पर उपलब्ध है।