最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

0代碼訓(xùn)練GPT-5?MIT微軟證實(shí)GPT-4涌現(xiàn)自我糾錯(cuò)能力迭代

2023-07-08 16:47 作者:一起學(xué)chatGPT一起學(xué)ai  | 我要投稿




我們都知道,大模型具有自省能力,可以對(duì)寫出的代碼進(jìn)行自我糾錯(cuò)。

這種自我修復(fù)背后的機(jī)制,究竟是怎樣運(yùn)作的?

對(duì)代碼為什么是錯(cuò)誤的,模型在多大程度上能提供準(zhǔn)確反饋?

近日,MIT和微軟的學(xué)者發(fā)現(xiàn),在GPT-4和GPT-3.5之中,只有GPT-4表現(xiàn)出了有效的自修復(fù)。并且,GPT-4甚至還能對(duì)GPT-3.5生成的程序提供反饋。


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

英偉達(dá)科學(xué)家Jim Fan強(qiáng)烈推薦了這項(xiàng)研究。

在他看來,即使是最專業(yè)的人類程序員也無法一次性正確編寫程序。他們需要查看執(zhí)行結(jié)果,推理出問題所在,給出修復(fù)措施,反復(fù)嘗試。這是一個(gè)智能體循環(huán):根據(jù)環(huán)境反饋迭代改進(jìn)代碼。

很有可能,OpenAI正在通過雇傭大量軟件工程師來訓(xùn)練下一代GPT。而他們不需要輸出代碼——Critique is all you need。


- GPT-4能夠進(jìn)行自我修復(fù)的核心原因是其強(qiáng)大的反饋能力。它能夠有效地自我反思代碼的問題所在,其他模型無法與之競(jìng)爭(zhēng)。


- 反饋模型和代碼生成模型不必相同。事實(shí)上,反饋模型是瓶頸。


- 基于GPT-4的反饋,GPT-3.5能夠編寫更好的代碼。


- 基于專業(yè)人員的反饋,GPT-4本身能夠編寫更好的代碼。

揭秘用于代碼生成GPT修復(fù)


我們都知道,大語言模型在生成代碼方面,表現(xiàn)出了非凡的能力。

然而,在具有挑戰(zhàn)性的編程任務(wù)(比如競(jìng)賽和軟件工程師的面試)中,它們卻完成得并不好。

好在,很多模型會(huì)通過一種自修復(fù)工作流來「自省」,來自我糾正代碼中的錯(cuò)誤。

研究者很希望知道,這些模型在多大程度上能提供正確的反饋,并且說明自己生成的代碼為什么是錯(cuò)誤的。

如圖顯示的是,基于自我修復(fù)方法的經(jīng)典工作流程。

首先,給定一個(gè)規(guī)范,從代碼生成模型中采樣一個(gè)程序,然后在規(guī)范中提供的一組單元測(cè)試上執(zhí)行該程序。


如果程序在任何單元測(cè)試中失敗,那么錯(cuò)誤的消息和程序會(huì)被提供給一個(gè)反饋生成模型,該模型再輸出代碼失敗原因的簡(jiǎn)短解釋。

最后,反饋被傳遞給一個(gè)修復(fù)模型,該模型生成程序的一個(gè)固定版本。

表面上看,這個(gè)工作流似乎非常完美。它讓系統(tǒng)在解碼過程中克服由于不良樣本引起的錯(cuò)誤,在修復(fù)階段容易地合并來自符號(hào)系統(tǒng)(編譯器、靜態(tài)分析工具和執(zhí)行引擎等)的反饋。

并且模仿人類軟件工程師編寫代碼的試錯(cuò)方式。


然而,工作流有一個(gè)問題:自修復(fù)需要對(duì)模型進(jìn)行更多的調(diào)用,從而增加了計(jì)算成本。

而且,研究者們發(fā)現(xiàn)了一個(gè)很有意思的現(xiàn)象:大模型自修復(fù)的有效性不僅取決于模型生成代碼的能力,還取決于它對(duì)于代碼如何在任務(wù)中犯錯(cuò)的識(shí)別能力。

目前還沒有任何工作對(duì)此進(jìn)行詳細(xì)調(diào)查,因此,作者們研究了GPT-3.5和GPT-4在解決競(jìng)賽級(jí)代碼生成任務(wù)時(shí)的自修復(fù)有效性。

研究人員提出了一個(gè)新的評(píng)估策略,稱為


,在這個(gè)策略中,根據(jù)從模型中采樣的token總數(shù)來衡量任務(wù)的通過率。

因?yàn)槭褂玫氖莗ass@t,而不是傳統(tǒng)的pass@k(根據(jù)實(shí)驗(yàn)數(shù)量衡量通過率),這樣就能與純粹基于采樣的方法進(jìn)行公平的比較。

從實(shí)驗(yàn)中,研究者發(fā)現(xiàn):

1. GPT-4才能實(shí)現(xiàn)自我修復(fù)帶來的性能提升;對(duì)于GPT-3.5,在所有預(yù)算下,修復(fù)后的通過率要低于或等于基準(zhǔn)的無修復(fù)方法。


2. 即使對(duì)于GPT-4模型,性能提升也最多只能算是適度的(在預(yù)算為7000個(gè)token的情況下,通過率從66%提高到71%,約等于45個(gè)獨(dú)立同分布的GPT-4樣本的成本),并且取決于初始程序的多樣性足夠豐富。


3. 使用GPT-4生成的反饋替換GPT-3.5對(duì)錯(cuò)誤的解釋,可以獲得更好的自修復(fù)性能,甚至超過基準(zhǔn)的無修復(fù)GPT-3.5方法(在7000個(gè)token下,從50%提高到54%)。


4. 使用人類程序員提供的解釋替換GPT-4自己的解釋,可以顯著改善修復(fù)效果,修復(fù)并通過測(cè)試的程序數(shù)量增加了57%。

自我修復(fù)四階段


自修復(fù)方法涉及4個(gè)階段:代碼生成、代碼執(zhí)行、反饋生成和代碼修復(fù)。對(duì)此,研究人員正式定義了這四個(gè)階段。


階段一:代碼生成

給定規(guī)范


,一個(gè)程序模型


,首先生成


樣本


用一個(gè)公式來表示:


階段二:代碼執(zhí)行

然后在測(cè)試平臺(tái)上執(zhí)行


代碼示例,并假設(shè)可以以可執(zhí)行形式的訪問完整測(cè)試集。

如果任何樣本通過了所有的測(cè)試,就會(huì)停止,因?yàn)榇藭r(shí)已經(jīng)找到了令人滿意的程序。

否則,收集執(zhí)行環(huán)境返回的錯(cuò)誤信息


這些錯(cuò)誤消息要么包含編譯/運(yùn)行時(shí)錯(cuò)誤信息,要么包含程序輸出與預(yù)期不同的示例輸入。

階段三:反饋生成

在此,研究人員使用反饋模型來生成更詳細(xì)的錯(cuò)誤解釋。

在這個(gè)階段,為每個(gè)錯(cuò)誤的程序生成


反饋?zhàn)址?/span>


,如下所示:


階段四:代碼修復(fù)

在最后一步中,對(duì)于每個(gè)初始程序


和反饋


,


候選修復(fù)程序從


中采樣:


研究人員稱這個(gè)過程產(chǎn)生的交錯(cuò)文本和程序樹修復(fù)樹T

——植根于規(guī)范


,然后分支到初始程序


,每個(gè)程序分支到反饋


,然后修復(fù)


。

具體如圖所示:


由于自我修復(fù)需要幾個(gè)非一致成本的相關(guān)模型調(diào)用,在這種設(shè)置中,


(在


樣本中獲得正確程序的可能性)不是比較和評(píng)估自我修復(fù)的各種超參數(shù)選擇的合適度量。

相反,研究人員將通過率作為從模型中采樣總token數(shù)量的函數(shù)來衡量,將其稱之為


的度量。

實(shí)驗(yàn)過程


研究人員又進(jìn)一步針對(duì)3個(gè)問題進(jìn)行了測(cè)試:

1. 對(duì)于更加有挑戰(zhàn)的編程任務(wù)中,這些模型的自我修復(fù)是否比不進(jìn)行修復(fù)的i.i.d.有更好的采樣?

2. 更強(qiáng)的反饋模型會(huì)提高模型的修復(fù)性能嗎?

3. 如果讓人類參與功能最強(qiáng)模型的自我修復(fù)循環(huán),提供人工反饋,是否可以解鎖更好的修復(fù)性能?

首先研究團(tuán)隊(duì)引入了一個(gè)很有挑戰(zhàn)的編程任務(wù):Automated Programming Progress Standard (APPS)數(shù)據(jù)集中的編程任務(wù)。

這個(gè)數(shù)據(jù)集中的任務(wù)包括從入門級(jí)到大學(xué)競(jìng)賽級(jí)的編程任務(wù),可以用來評(píng)估人類程序員解決問題和代碼能力。

研究人員選取了300個(gè)任務(wù),包括60個(gè)入門級(jí)別的任務(wù)和60個(gè)競(jìng)賽級(jí)別的任務(wù)。


研究人員選取了GPT-3.5和GPT-4作為模型,使用模板字符串連接和單次提示詞來進(jìn)行自我修復(fù)。

下圖為提示詞的實(shí)例之一。


自修復(fù)需要強(qiáng)大的模型和多樣化的初始樣本

研究人員讓單個(gè)模型分別進(jìn)行代碼的修復(fù)生成和反饋生成。

在右邊的圖中,我們沿軸顯示了具有兩個(gè)超參數(shù)的熱圖,其中每個(gè)單元格中的值表示平均通過率,當(dāng)給定相同的token預(yù)算(即t的相同值pass@t)時(shí),自我修復(fù)由基線的平均通過率歸一化。


從圖中可以看到,對(duì)于GPT-3.5模型,pass@t在所有設(shè)置下都低于或等于相應(yīng)的基線(黑),清楚地表明自我修復(fù)對(duì)GPT-3.5并不是一種有效的策略。

而在GPT-4(下圖)中,有幾個(gè)值的自修復(fù)通過率明顯優(yōu)于基線。


下圖是


和基線的無修復(fù)方法。

GPT-4反饋改進(jìn)了GPT3.5的修復(fù)結(jié)果

研究人員又進(jìn)一步進(jìn)行了新的實(shí)驗(yàn),評(píng)估使用單獨(dú)的、更強(qiáng)的模型來生成反饋的效果,目的是為了測(cè)試一個(gè)假設(shè):由于模型無法內(nèi)省和調(diào)試自己的代碼,阻礙了自我修復(fù)(比如說對(duì)于GPT-3.5)。


這個(gè)實(shí)驗(yàn)的結(jié)果如上圖(亮藍(lán)色)所示。

在絕對(duì)性能方面,GPT-3.5,GPT-4確實(shí)突破了性能障礙,并且比GPT-3.5的i.i.d.采樣略微更高效。

這表明文本反饋階段本身是至關(guān)重要的,改進(jìn)它可以緩解GPT-3.5自修復(fù)的瓶頸。

人工反饋顯著提高了GPT-4修復(fù)的成功率

在最后一項(xiàng)實(shí)驗(yàn)中,想要研究在用更強(qiáng)的模型(GPT-4)進(jìn)行修復(fù)時(shí),加入專家人類程序員的反饋的影響。

研究目的是了解模型識(shí)別代碼中錯(cuò)誤的能力與人類的能力相比如何,以及這如何影響自修復(fù)的下游性能。

研究人員研究人員招募了16名參與者,包括15名研究生和1名專業(yè)機(jī)器學(xué)習(xí)工程師。

每個(gè)參與者都有五種不同的基礎(chǔ)程序,基于他們的Python經(jīng)驗(yàn)編寫代碼。

每個(gè)程序都取自不同的任務(wù),參與者永遠(yuǎn)不會(huì)看到屬于同一個(gè)任務(wù)的兩個(gè)不同的程序。

然后,參與者被要求用他們自己的話解釋這個(gè)程序做錯(cuò)了什么。

實(shí)驗(yàn)結(jié)果如下圖所示:


研究人員發(fā)現(xiàn),當(dāng)我們用人類參與者的調(diào)試替換GPT-4自己的調(diào)試時(shí),總體成功率提高了1.57×以上。

不出意外的是,隨著問題變得更難,相對(duì)差異也會(huì)增加,這表明當(dāng)任務(wù)(和代碼)變得更復(fù)雜時(shí),GPT-4產(chǎn)生準(zhǔn)確和有用反饋的能力遠(yuǎn)遠(yuǎn)落后于人類參與者。



0代碼訓(xùn)練GPT-5?MIT微軟證實(shí)GPT-4涌現(xiàn)自我糾錯(cuò)能力迭代的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國家法律
山阴县| 正镶白旗| 漯河市| 贵南县| 永宁县| 棋牌| 麦盖提县| 江山市| 额济纳旗| 顺义区| 平远县| 嘉鱼县| 巴林右旗| 长岛县| 巧家县| 湘潭市| 龙胜| 清流县| 普安县| 栾城县| 蓬溪县| 新源县| 嘉善县| 潢川县| 汝城县| 五华县| 方正县| 洪湖市| 刚察县| 固阳县| 淅川县| 凤阳县| 益阳市| 平南县| 五莲县| 通河县| 邓州市| 子长县| 楚雄市| 黎川县| 保定市|