“成熟”大模型才能湧現?MIT:GPT-4能自我糾錯程式碼,GPT-3.5卻不行

首頁 > 科技

“成熟”大模型才能湧現?MIT:GPT-4能自我糾錯程式碼,GPT-3.5卻不行

來源:娛樂大爆料 釋出時間:2023-06-21 17:21

“成熟”大模型才能湧現?MIT:GPT-4能自我糾錯程式碼,GPT-3.5卻不行

新智元報道

編纂:編輯部

【新智元導讀】MIT、微軟的研究發現,GPT-4能夠自我糾正錯誤程式碼,GPT-3.5卻不行。無獨有偶,其他研究也表明,好像只有「成熟」的大模型才具備湧現能力。背後的原因竟是由於……

我們都知道,大語言模型在天生程式碼方面,表現出了不凡的能力。然而,在具有挑戰性的程式設計任務(好比競賽和軟體工程師的口試)中,它們卻完成得並不好。

好在,許多模型會透過一種自修復工作流來「自省」,來自我糾正程式碼中的錯誤。

研究者很但願知道,這些模型在多大程度上能提供準確的反饋,並且說明自己天生的程式碼為什麼是錯誤的。

近日,MIT和微軟的學者發現, 在對GPT-4和GPT-3.5,只有GPT-4表現出了有效的自修復。並且,GPT-4甚至還能對GPT-3.5天生的程式提供反饋。

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

愛丁堡大學博士生符堯表示,自己的團隊也發現了類似結果——只有GPT-4能夠自我改進,而較弱的模型則不能。

也就是說,只有當模型足夠「成熟」(規模大且對齊良好)時,可能存在一種新的「湧現能力」(即在自然語言反饋的基礎上改進)。

只有足夠「成熟」的模型才能聽取並在自然語言反饋的基礎上進行改進;較弱的模型要麼無法理解反饋,要麼無法對其進行改進。

我傾向於相信這種「湧現能力」(透過語言反饋自我改進)將對LLM的發展產生非常重大的影響,由於這意味著AI可以在很少的人工監視下持續不斷地進行自主改進。

俄勒岡州立大學傑出教授Thomas G. Dietterich以為,這可能是LLM包含了多個子模型,這些子模型之間可能存在不一致性,而這種情況在更大的模型中更為常見。

「自我改進」是去除這些不一致性的過程。他的猜測是,一旦這些不一致性被消除,自我改進將住手。

對此,符堯非常同意:「在上下文學習中使用自我改進,可能會一定程度上推動模型,但進展不會很大;而強化學習可能會推進得更遠。之後,模型需要與世界進行互動,透過接受基於實際情境的反饋來進一步改進。」

不外,俄亥俄州立大學工程系傑出助理教授Yu Su則以為,這可能只是由於在指令微調的資料上存在一些無意的差異而已。

對此符堯表示,他在Claude模型上也發現了類似的行為——Claude-instant無法很好地響應語言反饋(由於它很難理解和遵循指令),但Claude可以。

而且,這些觀察結果還在多篇相關的論文中泛起,不太可能是無意的資料差異。

揭秘用於程式碼生成的GPT自修復

大語言模型怎樣透過自我修復進步機能?這個過程是靠模型的自省,自我糾正程式碼中的錯誤。

下圖顯示了模型自修複方法的典型工作流。

首先,我們會給定一個規範,從一個程式碼生成模型中給一個程式取樣,然後在規範中的一組單元測試上執行這個程式。

假如程式在測試中失敗,錯誤動靜會被傳送到反饋天生模型,輸出一個程式碼失敗原因的解釋,然後把反饋傳給修復模型。

從表面上看,這個工作流好像非常完美。它讓系統克服了在解碼過程中不良樣本引起的錯誤,還模仿了人類軟體工程師寫程式碼的試錯方法。

然而,工作流有一個題目:自修復需要對模型進行更多的呼叫,從而增加了計算成本。

而且,研究者們發現了一個很有意思的現象:大模型自修復的有效性不僅取決於模型天生程式碼的能力,還取決於它對於程式碼如何在任務中出錯的識別能力。

目前還沒有任何工作對此進行具體調查,因此,作者們研究了GPT-3.5和GPT-4在解決競賽級程式碼生成任務時的自修復有效性。

他們提出了一種pass@t的新評估策略,在這個策略中,根據從模型中取樣的token總數來衡量任務的透過率。

由於使用的是pass@t,而不是傳統的pass@k(根據實驗數目衡量透過率),這樣就能與純粹基於取樣的方法進行公平的比較。

從實驗中,研究者發現:

1. GPT-4才能實現自我修復帶來的機能晉升;對於GPT-3.5,在所有預算下,修復後的透過率要低於或即是基準的無修復方法。

2. 即使對於GPT-4模型,機能晉升也最多隻能算是適度的(在預算為7000個token的情況下,透過率從66%進步到71%,約等於45個獨立同分布的GPT-4樣本的本錢),並且取決於初始程式的多樣性足夠豐碩。

3. 使用GPT-4天生的反饋替代GPT-3.5對錯誤的解釋,可以獲得更好的自修復機能,甚至超過基準的無修復GPT-3.5方法(在7000個token下,從50%進步到54%)。

4. 使用人類程式設計師提供的解釋替代GPT-4自己的解釋,可以明顯改善修復效果,修復並透過測試的程式數目增加了57%。

實驗

研究職員又進一步針對3個題目進行了測試:

1. 對於更加有挑戰的程式設計任務中,這些模型的自我修復是否比不進行修復的i.i.d.有更好的取樣?

2. 更強的反饋模型會進步模型的修復機能嗎?

3. 假如讓人類介入功能最強模型的自我修復輪迴,提供人工反饋,是否可以解鎖更好的修復機能?

首先研究團隊引入了一個很有挑戰的程式設計任務:Automated Programming Progress Standard (APPS)資料集中的程式設計任務。

這個資料集中的任務包括從入門級到大學競賽級的程式設計任務,可以用來評估人類程式設計師解決問題和程式碼能力。

研究職員選取了300個任務,包括60個入門級別的任務和60個競賽級別的任務。

上一篇:DeepMind創始... 下一篇:早安心語正能...
猜你喜歡
熱門閱讀
同類推薦