自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

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

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

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

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

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

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

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

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

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

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

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

數(shù)據(jù)集#MBPP/443,要求ChatGPT編寫一個(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ò)誤的代碼。

而這里,可以通過需求細(xì)化(requirements refinement)來解決這個(gè)問題。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

第一階段:Paraphrase和Exend

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

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

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

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

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

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

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

ChatGPT代碼能力10%

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

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

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

研究問題

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

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

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

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

ChatCoder性能表現(xiàn)

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

如表1所示,ChatCoder通過大幅細(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è)問題是,評(píng)估ChatCoder是否是大模型和人類進(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í)行某些類型的細(xì)化,從而導(dǎo)致較低的改進(jìn)。

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

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

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

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

案例研究

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

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

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

2023-10-26 15:38:03

混元大模型騰訊

2021-11-19 10:13:01

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

2023-10-07 08:28:06

語言模型代碼技術(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-09-10 10:51:22

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

2023-04-27 13:46:08

語言模型ChatGPT人工智能

2021-12-09 09:45:44

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

2023-09-18 11:25:00

2023-04-11 07:56:54

2024-03-04 08:15:00

2024-09-29 13:40:00

2024-01-08 13:37:00

人工智能技術(shù)

2025-02-12 13:34:40

2025-02-18 10:25:10

2023-06-30 13:01:26

點(diǎn)贊
收藏

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