国产人妻精品区一区二区,国产农村妇女毛片精品久久,JAPANESE日本丰满少妇,日本公妇理伦a片,射精专区一区二区朝鲜

只有GPT-4可以自我改進,GPT-3.5都不行,MIT&微軟代碼生成實驗新發現
作者 | 機器之心2023-07-04

作為最領先(xian)的大模型,GPT-4 有自(zi)我糾(jiu)正生成代碼的能力(li),結(jie)合人(ren)類反饋,自(zi)我糾(jiu)正能力(li)還能進一步的提高。

大(da)型語(yu)言模(mo)型(LLM)已被證明能夠從自然(ran)語(yu)言中(zhong)生(sheng)成代(dai)碼(ma)片段,但在(zai)應對復(fu)(fu)(fu)雜的(de)編碼(ma)挑戰,如專(zhuan)業競賽和(he)軟件工程專(zhuan)業面試時,仍面臨巨大(da)的(de)挑戰。最近的(de)研究(jiu)試圖通過利用自修復(fu)(fu)(fu)來提高模(mo)型編碼(ma)性能。自修復(fu)(fu)(fu)是指讓(rang)模(mo)型反思并糾正自己代(dai)碼(ma)中(zhong)的(de)錯誤。

下圖(tu) 1 顯示了基于自修復方法的(de)(de)(de)典(dian)型(xing)工作流(liu)程。首先,給定一(yi)(yi)個規范,從(cong)代(dai)碼(ma)生成(cheng)模(mo)(mo)型(xing)中對(dui)程序進行(xing)采樣;然后(hou)在作為一(yi)(yi)部分(fen)規范提(ti)供的(de)(de)(de)一(yi)(yi)套單元測(ce)試(shi)上執行(xing)程序;如(ru)果(guo)程序在任一(yi)(yi)單元測(ce)試(shi)中失(shi)敗,則將錯(cuo)誤(wu)消息和錯(cuo)誤(wu)程序提(ti)供給一(yi)(yi)個反饋生成(cheng)模(mo)(mo)型(xing),該模(mo)(mo)型(xing)輸出代(dai)碼(ma)失(shi)敗原因的(de)(de)(de)簡(jian)短解釋;最(zui)后(hou),反饋被傳遞給修復模(mo)(mo)型(xing),該模(mo)(mo)型(xing)生成(cheng)程序的(de)(de)(de)最(zui)終固化版本。

從(cong)表面(mian)上看,這是一(yi)個非常(chang)有吸引(yin)力的(de)想(xiang)法。這種設計能讓系(xi)統克服在解碼(ma)過程中由離群樣本(ben)引(yin)起的(de)錯誤;在修復階段(duan),可以輕松地(di)整合來自編(bian)譯器、靜態分析工具和執行(xing)引(yin)擎等符號系(xi)統的(de)反(fan)饋,并模(mo)仿(fang)人(ren)類軟件工程師編(bian)寫代碼(ma)的(de)試(shi)錯方式(shi)。

然而,自修(xiu)復需要(yao)更多的(de)模型(xing)調用,計(ji)算(suan)成本較高。特別要(yao)注意的(de)是(shi),自修(xiu)復能(neng)否奏效,最(zui)終歸結為在同等計(ji)算(suan)性能(neng)預算(suan)下,是(shi)否能(neng)從(cong)模型(xing)中抽取更多代碼樣本,并將其與作為一部分任務提供的(de)單元(yuan)測試套件進行比(bi)較。

至關重(zhong)要(yao)的是,自修復的有(you)效性不僅取(qu)(qu)決于模(mo)型生(sheng)成(cheng)代(dai)碼的能力(li)(文獻中對(dui)此(ci)進行了廣(guang)泛研究),還取(qu)(qu)決于它(ta)識(shi)別代(dai)碼(由模(mo)型本身生(sheng)成(cheng))在任(ren)務規范(fan)方面是如何出錯的能力(li)。此(ci)前沒(mei)有(you)任(ren)何工作試(shi)圖(tu)詳細研究這些能力(li)的影響。

本文中(zhong),來自 MIT、微(wei)軟研(yan)究院的(de)研(yan)究者在解決競賽級別的(de)代(dai)碼(ma)生成(cheng)任務時,使用(yong) GPT-3.5 和 GPT-4 研(yan)究自修復的(de)有效性。研(yan)究者首先提(ti)出一種新的(de)評(ping)估策略,稱為 pass@t,其中(zhong)獲得正確(que)程序的(de)可能(neng)性(相(xiang)對于(yu)給定(ding)的(de)單元測試)相(xiang)對于(yu)從(cong)模型中(zhong)采樣的(de) token 總數進行(xing)加(jia)權(quan)。

使用新的評估策略代(dai)替傳(chuan)統的 pass@k 度量(根據試驗次(ci)數(shu)衡(heng)量通過率),研(yan)究者能夠準(zhun)確地將通過自(zi)修復(fu)(fu)獲得的性能與模型在生成反(fan)饋和(he)進(jin)(jin)行修復(fu)(fu)時所(suo)做的任何額外工作(zuo)進(jin)(jin)行比較。研(yan)究者仔細探究了在一(yi)系列超(chao)參(can)數(shu)下的動態(tai)自(zi)修復(fu)(fu)過程。

最后,鑒于(yu)研(yan)究(jiu)的(de)(de)主要目標(biao)是(shi)深(shen)入了解最先進(jin)(jin)的(de)(de)代碼生成(cheng)(cheng)模型(xing)反(fan)思和調(diao)試自(zi)己代碼的(de)(de)能力,本文進(jin)(jin)行了一組實驗,單獨研(yan)究(jiu)了改進(jin)(jin)反(fan)饋(kui)階段的(de)(de)影響(xiang)。通過分析(xi)使用比(bi)代碼生成(cheng)(cheng)模型(xing)更強的(de)(de)反(fan)饋(kui)生成(cheng)(cheng)模型(xing)(使用 GPT-4 為 GPT-3.5 代碼模型(xing)生成(cheng)(cheng)反(fan)饋(kui))的(de)(de)影響(xiang),研(yan)究(jiu)者進(jin)(jin)行了一項(xiang)研(yan)究(jiu):讓人類對不正確的(de)(de)程序提(ti)供(gong)反(fan)饋(kui),以便(bian)將(jiang)模型(xing)生成(cheng)(cheng)的(de)(de)自(zi)反(fan)饋(kui)與人類提(ti)供(gong)的(de)(de)自(zi)反(fan)饋(kui)進(jin)(jin)行比(bi)較。

論文(wen)地址(zhi)://arxiv.org/pdf/2306.09896.pdf

從本文的實驗中,研(yan)究者有了以下(xia)發現:

1. 當考(kao)慮進行檢查和修(xiu)(xiu)復(fu)(fu)的成本時,自修(xiu)(xiu)復(fu)(fu)的性(xing)能(neng)收(shou)益(yi)只能(neng)用 GPT-4 來衡(heng)量;對于(yu) GPT-3.5,在所有配置下,修(xiu)(xiu)復(fu)(fu)的通(tong)過率(lv)低(di)于(yu)或等于(yu)基(ji)線模型 / 無(wu)修(xiu)(xiu)復(fu)(fu)方法(fa)的通(tong)過率(lv)。

2. 即使(shi)對于(yu)(yu) GPT-4,性能提升也(ye)是適度(du)的(de)(de)(66%→ 71% 的(de)(de)通過率,預算(suan)為 7000 個(ge) token,約 45 個(ge)獨(du)立同分布(bu)(i.i.d.)的(de)(de) GPT-4 樣(yang)本),并同時取決(jue)于(yu)(yu)初始程序是否(fou)具有足夠的(de)(de)多(duo)樣(yang)性。

3. 用 GPT-4 產(chan)生的(de)(de)反饋代(dai)替 GPT-3.5 對錯誤的(de)(de)解釋,可以獲得更好的(de)(de)自修(xiu)復性(xing)能,甚至超過了基線的(de)(de)無(wu)修(xiu)復 GPT-3.5 方法(50%→ 7000token 時(shi)為(wei) 54%)。

4. 用人類的解釋取代 GPT-4 自己的解釋可以顯著改善修復結果,從而使通過測試的修復程序數量增加 57%。

愛丁堡大學博士生符堯表示:「只(zhi)有 GPT-4 可以自(zi)我改(gai)進,而較(jiao)弱的(de)模型(xing)(xing)不(bu)能(neng),這一發現(xian)非(fei)常有趣,表明(大模型(xing)(xing)存在(zai))一種(zhong)新型(xing)(xing)的(de)涌(yong)現(xian)能(neng)力(li)(即改(gai)進自(zi)然語言反饋),可能(neng)只(zhi)有在(zai)模型(xing)(xing)足夠成熟(大而整(zheng)齊)時(shi)才存在(zai)。大模型(xing)(xing)的(de)這種(zhong)能(neng)力(li)在(zai)論文《Improving Language Model Negotiation with Self-Play and In-Context Learning from AI Feedback》中也存在(zai)過(guo)。

只有足(zu)夠成熟(shu)的(de)模型才能清楚(listen to)并改(gai)進(jin)自然語(yu)言反(fan)饋(kui),較弱(ruo)的(de)模型要么無法理解反(fan)饋(kui),要么無法對其進(jin)行改(gai)進(jin)。

我(wo)傾向于相信這(zhe)種涌現(xian)能力(通過語言(yan)反饋進行自我(wo)改(gai)進)會對(dui) LLM 研究產生(sheng)非常重要的影響,因為這(zhe)意味著 AI 可以在很少(shao)的人類(lei)監督下(xia)不(bu)斷自主改(gai)進。」

方法

自修復概述

如上圖 1 所示,自(zi)修(xiu)(xiu)復方法包括 4 個階(jie)段:代碼生成、代碼執(zhi)行(xing)、反饋生成和代碼修(xiu)(xiu)復。接下(xia)來正式定義這(zhe)四個階(jie)段。

代碼生成

給定一(yi)個(ge)規范 ψ,程序模型 M_P 首(shou)先(xian)生成 n_p 個(ge)獨立同分布樣本,研究者將其表示為

代碼執行

然后(hou)在測(ce)試臺上(shang)執(zhi)(zhi)行(xing)這(zhe) n_p 個(ge)代碼(ma)樣(yang)(yang)本(ben)。研究者假設(she)可以訪問可執(zhi)(zhi)行(xing)形式的(de)(de)全套(tao)測(ce)試,因此(ci)如(ru)果任何(he)樣(yang)(yang)本(ben)通過了所有測(ce)試,系(xi)統就會停(ting)止,因為這(zhe)時已(yi)經找到(dao)了一個(ge)令人滿意(yi)的(de)(de)程序。否則,系(xi)統將收(shou)集(ji)執(zhi)(zhi)行(xing)環(huan)境返回(hui)的(de)(de)錯誤消(xiao)息。這(zhe)些錯誤消(xiao)息要(yao)(yao)么(me)包含(han)編譯 / 運行(xing)時錯誤信息,要(yao)(yao)么(me)包含(han)程序輸(shu)(shu)出與預(yu)期輸(shu)(shu)出不同的(de)(de)示(shi)例(li)輸(shu)(shu)入。示(shi)例(li)如(ru)圖(tu) 1(組件 3)所示(shi)。

反饋生成

由于來自執行環境的錯(cuo)誤消息(xi)通常非常高級,因此它們提供的修(xiu)復信(xin)號很少。作(zuo)為中間(jian)步驟(zou),研究者使(shi)用(yong)反(fan)饋模(mo)型來更(geng)詳細地解釋出了什么問題;示例如圖 1(組件 4)所(suo)示。形式上,在這個(ge)階段,他們為每個(ge)錯(cuo)誤的程序 p_i 生成 n_f 個(ge)反(fan)饋字符串(chuan),具體如下所(suo)示:

有了明確的反(fan)饋(kui)生(sheng)成(cheng)步驟,就可以消融這個組件,獨(du)立地研究它的意(yi)義。

代碼修復

在最后一(yi)步中,對于每個初始程序 p_i 和反饋 f_ij,可以從采樣 n_r 個候選修復程序:

修(xiu)復樹。研究者將該過程(cheng)生成的(de)包(bao)含文本和程(cheng)序(xu)的(de)樹稱為(wei)植根(gen)于規范中(zhong)的(de) ψ,然后(hou)分(fen)支(zhi)到初始程(cheng)序(xu) p_i,每(mei)個初始程(cheng)序(xu)分(fen)支(zhi)到反饋 f_ij,然后(hou)對(dui)修(xiu)復樹 r_ijk 進(jin)行修(xiu)復,如下圖所(suo)示(shi)。

注意:聯(lian)合采樣(yang)反(fan)饋(kui)和修復。上(shang)述通用(yong)框架不要求編程模(mo)型(xing)(xing)和反(fan)饋(kui)模(mo)型(xing)(xing)相同,因此兩個模(mo)型(xing)(xing)可(ke)以(yi)使用(yong)各自的(de)專(zhuan)有模(mo)型(xing)(xing)。然而(er),當(dang) M_P=M_F 時,研(yan)究者在(zai)單個 API 調用(yong)中聯(lian)合生成反(fan)饋(kui)和修復的(de)程序,因為(wei) GPT-3.5 和 GPT-4 都有在(zai)響應中交織文本和代碼的(de)自然傾向(xiang)。形式上(shang),研(yan)究者將其表示為(wei)

pass@t:通過率與 token 數(shu)量的關系(xi)

由于(yu)(yu)自(zi)修復(fu)(fu)需要幾個非均勻成本的(de)(de)依(yi)賴模(mo)型調用,因此 pass@k 這種(zhong)在 k 個獨立同分布樣本中獲得(de)正(zheng)確程序的(de)(de)可能性指標,不是(shi)用于(yu)(yu)比(bi)較和評估(gu)自(zi)修復(fu)(fu)的(de)(de)各種(zhong)超參數(shu)(shu)選擇(ze)的(de)(de)合(he)適(shi)度量。相反,研究(jiu)者將(jiang)通過率作(zuo)為從模(mo)型中采樣的(de)(de) token 總數(shu)(shu)的(de)(de)函數(shu)(shu),稱之為 pass@t。

形式(shi)上,假設一(yi)個數(shu)據集(ji) D=_d 和超(chao)參數(shu)(M_P,M_F,n_p,n_f,n_r)的(de)一(yi)組選定值。令

表示(shi)上文所述對任務 ψ_d 進行(xing)采(cai)樣的修復樹(shu);令 size(T^i_d)表示(shi)修復樹(shu)中(zhong)的程(cheng)序和反饋 token 的總數;并在當且(qie)僅當 T^i_d 至少(shao)有一(yi)個(ge)葉子節點程(cheng)序滿足規范中(zhong)的單元測試 ψ_d 時,令 T^i_d |=ψ_d 為真(zhen)。然后 pass@t 這種(zhong)超參數選擇的度量被定義為希望(wang)通過這種(zhong)超參數選擇生成(cheng)的 token 數量時預期通過率:

實驗繪制了(le)這兩個量的(de)(de) bootstrapped estimates(一(yi)種(zhong)統(tong)計(ji)(ji)估(gu)(gu)計(ji)(ji)方法(fa),通常用于評估(gu)(gu)參數(shu)估(gu)(gu)計(ji)(ji)的(de)(de)不確定性)。為(wei)(wei)了(le)獲得(de)這些(xie)數(shu)值,本(ben)(ben)文首先為(wei)(wei)每(mei)個任務規(gui)范生成一(yi)個非常大(da)的(de)(de)修(xiu)(xiu)復(fu)樹(shu),其中(zhong):有 N_p≥n_p 個初(chu)始程序(xu)樣本(ben)(ben);每(mei)個錯誤(wu)程序(xu)有 N_f≥n_f 個反饋字符串;并且每(mei)個反饋串有 N_r≥n_r 個修(xiu)(xiu)復(fu)候選。給定(n_p,n_f,n_r)的(de)(de)設置,然(ran)后(hou)從這個凍結(jie)的(de)(de)數(shu)據集中(zhong)對 N_t 個不同的(de)(de)修(xiu)(xiu)復(fu)樹(shu)進行(xing)子采(cai)樣(帶替換(huan))。最(zui)后(hou),本(ben)(ben)文計(ji)(ji)算(suan)了(le)這 N_t 棵樹(shu)上(shang)通過率和樹(shu)大(da)小(xiao)的(de)(de)樣本(ben)(ben)均值和標準(zhun)差。如此估(gu)(gu)計(ji)(ji) pass@t 大(da)大(da)降低(di)了(le)實驗的(de)(de)計(ji)(ji)算(suan)成本(ben)(ben),因為(wei)(wei)可以重(zhong)用相(xiang)同的(de)(de)初(chu)始數(shu)據集來計(ji)(ji)算(suan) n_p、n_f 和 n_r 的(de)(de)所有不同選擇的(de)(de)估(gu)(gu)計(ji)(ji)。

本文(wen)所有實驗中,N_p=50,自修(xiu)(xiu)復方法中 n_p≤25,基線無修(xiu)(xiu)復方法中 n_p≤50。類似地,對(dui)于(yu)反饋,本文(wen)令 N_f=25 和(he)(he) N_f≤10。對(dui)于(yu)候選修(xiu)(xiu)復,由于(yu)本文(wen)在大多數(shu)實驗中對(dui)反饋和(he)(he)修(xiu)(xiu)復進(jin)行(xing)聯合采樣,因此本文(wen)設置 N_r=n_r=1。最后(hou),本文(wen)對(dui)所有設置使用 N_t=1000。

實驗

研(yan)究者(zhe)針對以下問題進(jin)行了相關(guan)實驗:

(a)在(zai)具有挑(tiao)戰性的(de)編程(cheng)難題(ti)的(de)背景下,對于本文提出的(de)模(mo)型(xing),自(zi)(zi)修(xiu)復(fu)是否(fou)比(bi)不(bu)修(xiu)復(fu)的(de)獨立同分布采(cai)樣(yang)更好?如果是,在(zai)什么超參數下自(zi)(zi)修(xiu)復(fu)最(zui)有效?

(b) 更強的(de)反(fan)饋模型會提高模型的(de)修復性能嗎?

(c) 即使是最強(qiang)的模型,讓人參與提供反饋會帶來更好的修復性能嗎(ma)?

本文(wen)使用 APPS 數(shu)據集評估了這(zhe)些關于 Python 編程挑戰(zhan)的(de)疑惑。

自修復需要強大的模型和多樣化的初始樣本

令 M_P=M_F∈,用于代(dai)碼 / 修復(fu)生(sheng)成和反(fan)饋生(sheng)成的是(shi)同一個模型(xing)。GPT-3.5 的結(jie)果見圖 3,GPT-4 的結(jie)果見圖 4。

從圖中(zhong)可以看出,對于(yu)(yu) GPT-3.5 模型(xing),pass@t 在所有的(de) n_p、n_fr 選(xuan)值(zhi)中(zhong),都低于(yu)(yu)或等于(yu)(yu)相應基線(xian)(黑線(xian)),這清(qing)楚地表明自修復(fu)不(bu)是(shi) GPT-3.5 的(de)有效(xiao)策(ce)略。另一方面,對于(yu)(yu) GPT-4,有幾個 n_p、n_fr 值(zhi),其自修復(fu)的(de)通(tong)過率(lv)(lv)明顯優(you)于(yu)(yu)基線(xian)的(de)通(tong)過率(lv)(lv)。例(li)如,當 n_p=10,n_fr=3 時,通(tong)過率(lv)(lv)從 65% 增(zeng)(zeng)加(jia)到 70%,當 n_p=25,n_fr=1 時,通(tong)過率(lv)(lv)從 65% 增(zeng)(zeng)加(jia)至 71%。

GPT-4 的反饋改進了 GPT-3.5 自修復能力

接下(xia)來,本文進(jin)行了一(yi)個實驗(yan),在這個實驗(yan)中,研究者評(ping)估了使用一(yi)個單(dan)獨的、更強的模型來生(sheng)成反饋的影響。這是(shi)為(wei)了檢驗(yan)一(yi)種(zhong)假(jia)設:即模型無法內省(sheng)和(he)調(diao)試自己本身的代碼,從而阻礙了自修復(fu)(尤其是(shi) GPT-3.5)。

該實(shi)驗的(de)結(jie)果(guo)如圖(tu) 5 所示(shi)(亮藍線(xian))。研究者觀察到,就絕對性能而言,M_P=GPT-3.5,M_F=GPT-4 確實(shi)突破(po)了性能障礙,變(bian)得比 GPT-3.5 的(de)獨立同分(fen)布采樣效率略高。這(zhe)表(biao)明反饋階段至關重(zhong)要,改進它可(ke)以緩解 GPT-3.5 自(zi)修復的(de)瓶頸。

人類反饋顯著提高了 GPT-4 自修復的成功率

在本(ben)文(wen)的(de)(de)最后一個(ge)實驗中(zhong),研究(jiu)者考慮(lv)了(le)在使用 GPT-4 等更強的(de)(de)模型進行修(xiu)(xiu)復時使用專(zhuan)業人(ren)類程序員的(de)(de)反(fan)饋(kui)的(de)(de)效果。這項研究(jiu)的(de)(de)目(mu)的(de)(de)不是(shi)直(zhi)接比較人(ren)在循環中(zhong)的(de)(de)方(fang)(fang)法(fa)與(yu)自(zi)修(xiu)(xiu)復方(fang)(fang)法(fa),因為(wei)人(ren)在循環方(fang)(fang)法(fa)會帶來更多的(de)(de)認(ren)知負(fu)擔,而(er)本(ben)文(wen)沒(mei)有對此(ci)進行研究(jiu)。相(xiang)(xiang)反(fan),本(ben)文(wen)的(de)(de)目(mu)標是(shi)了(le)解模型識別代碼中(zhong)錯誤的(de)(de)能力(li)與(yu)人(ren)類相(xiang)(xiang)比如何(he),以及這如何(he)影響自(zi)修(xiu)(xiu)復的(de)(de)下游性(xing)能。因此(ci),該研究(jiu)對人(ren)類反(fan)饋(kui)對自(zi)修(xiu)(xiu)復的(de)(de)影響進行了(le)定(ding)性(xing)和定(ding)量分析。

結果總結在表 1 中。我(wo)們(men)首先注意到,當我(wo)們(men)用(yong)人類參與者的調試(shi)取代(dai) GPT-4 自己的調試(shi)時(shi),總體成功率提高了 1.57 倍以上。也許不足(zu)為(wei)奇的是,隨著(zhu)問題(ti)變(bian)得(de)越來(lai)越困(kun)難,相對差異也會增加(jia)(jia),這表明當任務(和(he)代(dai)碼)變(bian)得(de)更加(jia)(jia)復雜(za)時(shi),GPT-4 產生準確和(he)有用(yong)反饋的能力(li)遠(yuan)遠(yuan)落后于我(wo)們(men)的人類參與者。

此外,該研究還定性地(di)分析了人(ren)類參與者提供的(de)(de)反饋與 GPT-4 提供的(de)(de)反饋之間(jian)的(de)(de)差異。

只有(you) 2/80 個人(ren)貢獻的反饋(kui)字(zi)符(fu)串包括偽代(dai)碼(ma)或顯式(shi)(shi) Python;也就是說,獲(huo)得的幾乎所有(you)人(ren)類反饋(kui)都是自然語言,偶爾(er)穿(chuan)插(cha)著單語句數學 / 代(dai)碼(ma)表達式(shi)(shi)。

GPT-4 的反饋更可能(neng)明顯不準確(32/80 與人(ren)類反饋的 7/80)。

GPT-4 更可能(neng)明確地建(jian)議小的變化(54/80 對(dui) 42/80;28/48 對(dui) 38/73,當(dang)看(kan)起來正確時),而我們(men)的人類參(can)與(yu)者顯(xian)示出更大的趨勢來建(jian)議高(gao)水平的變化(23/80 對(dui) 18/80,GPT-4;21/73 對(dui) 13/48,當(dang)看(kan)起來正確時)。

人類參與者有時會表(biao)達不確定性(7/80);GPT-4 沒有(0/80)。

進(jin)(jin)一步的分析表明,表 1 中的結果不是(shi)由于(yu)人為(wei)因素造(zao)成的,例如參(can)(can)與者提(ti)供了(le)模(mo)型簡單復(fu)制的顯式代碼(ma)塊(kuai)。相反,性能的差(cha)異似乎是(shi)由更(geng)準(zhun)確的反饋、在需要時建(jian)議(yi)對代碼(ma)進(jin)(jin)行高(gao)級(ji)別(bie)、大規模(mo)更(geng)改的更(geng)大能力(li),以(yi)及參(can)(can)與者表達其(qi)不確定性的能力(li)(而不是(shi)自信地給出潛在的不準(zhun)確反饋)共(gong)同造(zao)成的。

熱門文章
由工業和信息化部組織編制,住房和城鄉建設部發布的《建筑物移動通信基礎設施工程技術標準》將于2023年9月1日起正式實施。
2023-07-04
X