GPT-4寫代碼能力提升21%!MIT新方法讓LLM學會反思

量子位 發佈 2024-03-02T10:48:48.666026+00:00

加上一個簡單方法,就能讓GPT-4這類大語言模型學會自我反思,性能直接提升30%。在此之前,大語言模型回答出錯,經常是二話不說,直接先道歉,然後emmmmmm,繼續亂猜。

Pine 發自 凹非寺

量子位 | 公眾號 QbitAI

GPT-4再度進化!

加上一個簡單方法,就能讓GPT-4這類大語言模型學會自我反思,性能直接提升30%

在此之前,大語言模型回答出錯,經常是二話不說,直接先道歉,然後emmmmmm,繼續亂猜。

現在,它不會這樣了,有了新方法的加成,GPT-4不僅會反思自己哪裡錯了,還會給出改進策略。

比如說它會自動分析為什麼「陷入循環」:

或者說反思一下自己有缺陷的搜索策略:

這是美國東北大學聯合MIT發表的最新論文中的方法:Reflexion

不僅適用於GPT-4,也適用於其他大語言模型,讓它們學會人類特有的反思能力。

目前該論文已經發表在預印平台arxiv上。

這把直接讓網友直呼「AI進化的速度已經超過我們適應的能力了,我們要被毀滅了。」

甚至有網友為開發人員發來「飯碗警告」:

用這種方法寫代碼的時薪是要比普通開發人員便宜的。

利用二元獎勵機制實現反思

正如網友所言,Reflexion賦予GPT-4的反思能力和人類的思考過程差不多:

可以簡單用兩個字來概括:反饋

在這個反饋過程中,又可以分為三大步:

  • 1、評估:測試當前生成答案的準確性
  • 2、自我反省的產生:錯誤識別——實現修正
  • 3、執行一個疊代反饋循環

在第一步評估的過程中,首先要經歷的是LLM(大語言模型)自我評估

也就是說LLM在還沒有外部反饋時,首先要自己對答案進行反思。

那如何進行自我反思?

研究團隊使用了一個二元獎勵機制,為LLM在當前狀態下執行的操作賦值:

1代表生成的結果OK,0則表示生成的結果不太行。

而之所以採用二元而非多值或連續輸出這類更具描述性的獎勵機制,原因和沒有外部輸入有關。

要在沒有外部反饋的條件下進行自我反思,必須將答案限制在二元狀態下,只有這樣,才能迫使LLM做出有意義的推斷。

在自我評估結束之後,如果二元獎勵機制輸出為1,則不啟動自我反思裝置,若為0,LLM則會開啟反思模式。

在反思的過程中,模型會觸發一個啟發性函數h(如下),類比人類思考過程,h起到的作用就像是監督一樣。

不過,同人類思考一樣,LLM在反思的過程中同樣也有局限性,這在函數中的Ω和ε中就能體現。

Ω表示重複連續動作的次數,一般會將這個數值設置為3,這表示反思過程中若重複一個步驟三次,會直接跳到下一個步驟。

而ε則表示在反思的過程中允許執行的最大操作數量。

既然有監督,那修正也必須執行,修正過程的函數是這樣子的:

其中,自我反思模型是通過「特定領域的失敗軌跡和理想反射對」訓練而來的,並不允許訪問數據集中給定問題的特定領域的解決方案。

這樣一來,LLM在反思的過程中便能夠迸發出更多有「創新性」的東西。

反思之後性能提升近30%

既然GPT-4這類LLM都能夠進行自我反思了,那具體效果究竟如何?

研究團隊在ALFWorld和HotpotQA基準上對這種方法進行了評估。

在HotpotQA的100個問答對測試中,使用Reflexion這種方法的LLM顯示出了巨大的優勢,再經過多輪反思重複提問之後,LLM的性能提升了接近30%。

而沒有使用Reflexion,在重複問答之後,性能沒有任何變化。

在HotpotQA的134個問答對測試中,可以看出在Reflexion的加持下,LLM經過多輪反思後,準確率一度達到97%。

在另外一篇博客中,團隊成員也曬出了他們這種方法在GPT-4上的效果,測試範圍是編寫代碼。

結果也顯而易見,用了Reflexion,GPT-4的編程能力直接提升了21%。

關於GPT-4已經會「思考」了,你怎(huang)(le)(ma)

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

參考連結:
[1] https://nanothoughts.substack.com/p/reflecting-on-reflexion

[2] https://www.reddit.com/r/MachineLearning/comments/1215dbl/r_reflexion_an_autonomous_agent_with_dynamic/

— 完 —

量子位 QbitAI · 頭條號簽約

關注我們,第一時間獲知前沿科技動態

關鍵字: