偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

ChatGPT代碼生成飆升10%!北大華人一作:細(xì)化prompt,大幅改進(jìn)大模型代碼能力

人工智能 新聞
來(lái)自北大實(shí)驗(yàn)室的研究團(tuán)隊(duì)提出了,通過(guò)與LLM聊天來(lái)細(xì)化需求的方法——ChatCoder。

在大模型時(shí)代,高質(zhì)量的代碼生成已經(jīng)強(qiáng)大到,讓人驚嘆。

從通過(guò)HumEval中67%測(cè)試的GPT-4,到近來(lái)各種開(kāi)源大模型,比如CodeLlama,有望成為碼農(nóng)編碼利器。

然而,現(xiàn)實(shí)中,程序員們不會(huì)精煉表達(dá)需求,因此誤導(dǎo)、限制了LLM生成優(yōu)秀代碼的能力。

說(shuō)白了,大模型代碼能力行不行,取決于你的提示妙不妙。

對(duì)此,來(lái)自北大實(shí)驗(yàn)室的研究團(tuán)隊(duì)提出了,通過(guò)與LLM聊天來(lái)細(xì)化需求的方法——ChatCoder。

論文地址:https://arxiv.org/pdf/2311.00272.pdf

具體來(lái)說(shuō),他們?cè)O(shè)計(jì)了一種聊天方案,大模型引導(dǎo)用戶細(xì)化需求表達(dá),進(jìn)而比以前更精確、更完整,同時(shí)提高了大模型的性能。

大模型是「碼農(nóng)」,你就是「產(chǎn)品經(jīng)理」

這里先舉個(gè)例子,如下圖,用戶提出了需求:

數(shù)據(jù)集#MBPP/443,要求ChatGPT編寫(xiě)一個(gè)python函數(shù)從給定的列表中找到「最大的負(fù)數(shù)」。

基于原始需求,ChatGPT生成一個(gè)程序,該程序可以正確提取實(shí)際值最大的負(fù)數(shù)。

然而,sanitized-MBPP的作者認(rèn)為「最大負(fù)數(shù)」應(yīng)該是指「絕對(duì)值最大的數(shù)」。

因此由于「最大」這個(gè)表達(dá)不明確,導(dǎo)致LLM生成了錯(cuò)誤的代碼。

而這里,可以通過(guò)需求細(xì)化(requirements refinement)來(lái)解決這個(gè)問(wèn)題。

需求細(xì)化就是揭示需求中的隱含依賴(lài)和隱藏結(jié)構(gòu)的過(guò)程。通過(guò)提供更多細(xì)節(jié),在需求細(xì)化的過(guò)程中可以補(bǔ)充不完整的信息,消除模糊不清的地方。

在前面舉的例子中,我們可以簡(jiǎn)單地向大語(yǔ)言模型說(shuō)明「最大的」在這里特指「絕對(duì)值最大的」,揭示了「最大」這個(gè)詞的隱藏結(jié)構(gòu)。

有了這一改進(jìn)后的需求,大模型就可以生成符合MBPP作者期望的代碼。

不得不提的是,需求細(xì)化,需要人類(lèi)用戶和大模型的協(xié)作。

一般來(lái)說(shuō),在需求工程的背景下,需求細(xì)化是通過(guò)軟件供應(yīng)商(編碼人員)和軟件客戶(用戶)之間的一系列交互來(lái)執(zhí)行的。

軟件供應(yīng)商分析客戶需求的初始表達(dá),并提出細(xì)化點(diǎn)。軟件客戶則需要根據(jù)這些點(diǎn)來(lái)作出響應(yīng),供應(yīng)商才能完成一輪需求細(xì)化。

無(wú)論是軟件客戶還是軟件供應(yīng)商,任何一方都不具備單獨(dú)進(jìn)行需求細(xì)化的資格。

這樣的劣勢(shì)在于,客戶通常不夠了解軟件設(shè)計(jì)和開(kāi)發(fā)過(guò)程,無(wú)法撰寫(xiě)可用的需求說(shuō)明;而供應(yīng)商通常也不夠了解客戶的問(wèn)題和業(yè)務(wù)領(lǐng)域,無(wú)法為滿意的系統(tǒng)制定需求。

而現(xiàn)在,在大模型時(shí)代,人類(lèi)用戶是客戶,LLM是「供應(yīng)商」。

為了通過(guò)需求細(xì)化讓大模型生成更好地滿足用戶需求的代碼,就需要研發(fā)人類(lèi)和LLM協(xié)作的方法。

ChatCoder:聊天細(xì)化,生成代碼

北大提出了ChatCoder,這是通過(guò)聊天進(jìn)行需求細(xì)化的大模型代碼生成的新方法。

整體框架如下圖,非常簡(jiǎn)潔,通過(guò)聊天來(lái)輔助LLM和人類(lèi)在需求細(xì)化方面的協(xié)作。

關(guān)鍵是,如何與大型語(yǔ)言模型聊天。

ChatCoder便提供了一個(gè)全新的聊天模式,其設(shè)計(jì)靈感來(lái)自IEEE SRS。

接下來(lái),我們具體看下ChatCoder這個(gè)框架。

其整體結(jié)構(gòu)是一個(gè)兩輪的對(duì)話。

第一階段:Paraphrase和Exend

由于人類(lèi)用戶表達(dá)需求可能語(yǔ)意模糊、不完整,ChatCoder使用提示要求LLM從幾個(gè)角度解釋用戶的原始需求,即完整的需求規(guī)范必須清晰。

對(duì)于需要改進(jìn)的遺漏或有野心的論點(diǎn),ChatCoder讓大語(yǔ)言模型基于它從訓(xùn)練數(shù)據(jù)中獲得的假設(shè)來(lái)擴(kuò)展它們。

人類(lèi)用戶需要查看細(xì)化的規(guī)范并糾正其中的錯(cuò)誤。

第二階段:Going-deep和Loop-back

在這一輪中,ChatCoder要求LLM詢問(wèn)人類(lèi)用戶,關(guān)于第一輪Paraphrase和Exend中信息損失,以及需要進(jìn)一步改進(jìn)的規(guī)范方面的困惑。

人類(lèi)用戶需要回答這些問(wèn)題,并回環(huán)糾正細(xì)化后的規(guī)范。

經(jīng)過(guò)兩輪細(xì)化后,得到細(xì)化后的需求,然后發(fā)送給大型語(yǔ)言模型,得到用戶想要的程序。

ChatGPT代碼能力10%

實(shí)驗(yàn)設(shè)置

數(shù)據(jù)集:Sanitized-MBPP、HumanEval。

基準(zhǔn):gpt-3.5-turbo、gpt-4。

研究問(wèn)題

為了評(píng)估ChatCoder,研究人員提出并測(cè)試了以下研究問(wèn)題:

1)與現(xiàn)有代碼生成模型相比,ChatCoder的表現(xiàn)如何?

2)ChatCoder是LLM和人類(lèi)用戶交流以進(jìn)行需求細(xì)化的有效方法嗎?

3)人類(lèi)參與ChatCoder帶來(lái)了多少改進(jìn)?

ChatCoder性能表現(xiàn)

首先我們來(lái)看第一個(gè)問(wèn)題,主要是為了評(píng)估ChatCoder與基線相比的整體代碼生成性能。

如表1所示,ChatCoder通過(guò)大幅細(xì)化的需求,成功幫助LLM提高了其生成程序的執(zhí)行精度。

例如,對(duì)于gpt-3.5-turbo,其在Saniticed-MBPP上的pass@1從57.04%提高到71.25%,提升了14%。

橫向比較,對(duì)于gpt-3.5-turbo和gpt-4,Saniticed-MBPP上的性能改進(jìn)比HumEval上的更突出。

溝通效率的表現(xiàn)

第二個(gè)問(wèn)題是,評(píng)估ChatCoder是否是大模型和人類(lèi)進(jìn)行需求細(xì)化交流的有效方式。

根據(jù)表2,所有3種與LLM進(jìn)行需求細(xì)化的通信方法都有助于LLM改進(jìn)其代碼生成結(jié)果。

這一發(fā)現(xiàn)指出,任何形式的需求細(xì)化在應(yīng)用LLM生成代碼時(shí)都是有用和重要的。

與ChatCoder相比,F(xiàn)ree Paraphrase和Free QA不會(huì)指示LLM執(zhí)行某些類(lèi)型的細(xì)化,從而導(dǎo)致較低的改進(jìn)。

人工干預(yù)評(píng)估

如下評(píng)估了人工干預(yù)對(duì)ChatCoder的重要性,結(jié)果見(jiàn)表3。

由于ChatCoder利用需求細(xì)化來(lái)提高大語(yǔ)言模型的代碼生成性能,因此人工干預(yù)是必要的,也是不可忽視的。

ChatCoder的過(guò)程是從給定的角度揭示需求的內(nèi)部結(jié)構(gòu),這些角度沒(méi)有明確表達(dá),即使有歧義。解決歧義的答案只有人類(lèi)用戶知道。

案例研究

如下,作者提出了幾個(gè)真實(shí)的測(cè)試用例,說(shuō)明ChatCoder如何幫助LLM生成具有細(xì)化需求的代碼。

由于頁(yè)面限制,研究人員從MBPP中選擇了3個(gè)案例,涵蓋了關(guān)于輸入、輸出和目的的細(xì)化,因?yàn)樗鼈冎苯佑绊懝δ苄枨蟆?/span>

責(zé)任編輯:張燕妮 來(lái)源: 新智元
相關(guān)推薦

2023-10-26 15:38:03

混元大模型騰訊

2021-11-19 10:13:01

模型人工智能計(jì)算

2023-10-07 08:28:06

語(yǔ)言模型代碼技術(shù)

2023-10-16 12:31:17

人工智能數(shù)據(jù)

2023-06-09 13:29:58

2024-11-27 14:30:00

模型訓(xùn)練

2024-08-20 13:30:17

2023-04-27 13:46:08

語(yǔ)言模型ChatGPT人工智能

2023-09-10 10:51:22

算法結(jié)構(gòu)

2021-12-09 09:45:44

AI 數(shù)據(jù)神經(jīng)網(wǎng)絡(luò)

2024-03-04 08:15:00

2024-09-29 13:40:00

2023-09-18 11:25:00

2023-04-11 07:56:54

2025-02-18 10:25:10

2025-02-12 13:34:40

2024-01-08 13:37:00

人工智能技術(shù)

2023-06-30 13:01:26

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)