首頁  >  文章  >  科技週邊  >  當GPT-4反思自己錯了:效能提升近30%,程式設計能力提升21%

當GPT-4反思自己錯了:效能提升近30%,程式設計能力提升21%

WBOY
WBOY轉載
2023-04-04 11:55:03967瀏覽

GPT-4 的思考方式,越來越像人了。

人類在做錯事時,會反思自己的行為,避免再次出錯,如果讓 GPT-4 這類大型語言模型也具備反思能力,性能不知道要提高多少了。

眾所周知,大型語言模型 (LLM) 在各種任務上已經表現出前所未有的表現。然而,這些 SOTA 方法通常需要對已定義的狀態空間進行模型微調、策略最佳化等操作。由於缺乏高品質的訓練資料、定義良好的狀態空間,優化模型實現起來還是比較難的。此外,模型還不具備人類決策過程所固有的某些特質,特別是從錯誤中學習的能力。

不過現在好了,在最近的一篇論文中,來自美國東北大學、MIT 等機構的研究者提出 Reflexion,該方法賦予智能體動態記憶和自我反思的能力。

為了驗證方法的有效性,研究評估了智能體在AlfWorld 環境中完成決策任務的能力,以及在HotPotQA 環境中完成知識密集型、基於搜尋問答任務的能力,在這兩項任務的成功率分別為97% 和51%。

當GPT-4反思自己錯了:效能提升近30%,程式設計能力提升21%

論文網址:https://arxiv.org/pdf/2303.11366.pdf

計畫網址:https://github.com/GammaTauAI/ reflexion-human-eval

如下圖所示,在AlfWorld 環境中,房間裡擺設了各種物品,要求讓智能體給出推理計劃以拿到某件物體,下圖上半部分由於智能體低效率的計劃而失敗。經過反思後,智能體意識到錯誤,修正推理軌跡,給出簡潔的軌跡方式(如圖下半部)。

當GPT-4反思自己錯了:效能提升近30%,程式設計能力提升21%

模型反思有缺陷的搜尋策略:

當GPT-4反思自己錯了:效能提升近30%,程式設計能力提升21%

#這篇論文表明,你可以透過要求GPT-4反思「為什麼錯了?」並為自己產生一個新的提示,將這個錯誤原因考慮在內,直到結果正確,從而將GPT-4 的性能提高驚人的30%。

當GPT-4反思自己錯了:效能提升近30%,程式設計能力提升21%

網友不禁感嘆:人工智慧的發展速度已經超過了我們的適應能力。

當GPT-4反思自己錯了:效能提升近30%,程式設計能力提升21%

方法介紹

Reflexion 智能體的整體架構如下圖 1 所示,其中 Reflexion 利用 ReAct(Yao et al., 2023)。在第一次試驗中,智能體從構成初始查詢的環境中獲得任務,然後智能體執行 LLM 產生的一系列動作,並從環境中接收觀察和獎勵。對於提供描述型或持續型獎勵的環境,該研究將輸出限制為簡單的二元成功狀態以確保適用性。

當GPT-4反思自己錯了:效能提升近30%,程式設計能力提升21%

在每個動作a_t 之後,智能體會計算一個啟發性函數h,如下圖所示

當GPT-4反思自己錯了:效能提升近30%,程式設計能力提升21%

這個啟發性函數旨在檢測智能體產生訊息幻覺(即虛假或錯誤的訊息)或效率低下,並「告訴」智能體何時需要反思(reflexion),其中t 是time step,s_t 是當前狀態,Ω表示重複動作循環的次數,ε 表示執行動作的最大總數,[a_o, o_0 . . . , a_(t−1), o_(t−1)] 代表軌跡歷史。 repeat 是一個簡單的函數,用於確定產生相同結果的重複動作循環的次數。

如果函數 h 告訴智能體需要反思,那麼智能體會查詢 LLM 以反映其當前任務、軌跡歷史和上次獎勵,然後智能體在後續試驗中會重置環境再重試。如果函數 h 沒有告訴智能體需要反思,那麼智能體會將 a_t 和 o_t 加到其軌跡歷史記錄中,並向 LLM 查詢下一個動作。

如果如果啟發式h 建議在time step t 時進行反思,則智能體會根據其當前狀態s_t、最後的獎勵r_t、先前的動作和觀察[a_0, o_0, . . . , a_t, o_t],以及智慧體現有的工作儲存mem,啟動一個反思過程。

反思的目的是透過反覆試驗來幫助智能體修正「幻覺」和低效率問題。用於反思的模型是一個使用特定的失敗軌跡和理想的反思範例來 prompt 的 LLM。

當GPT-4反思自己錯了:效能提升近30%,程式設計能力提升21%

智能體會迭代地進行上述反思過程。在實驗中,研究設定在智能體記憶體中儲存的反思最多為 3 次,這是為了避免查詢超出 LLM 的限制。以下幾種情況,運行會終止:

  • 超過最大試驗次數;
  • 未能在兩次連續試驗之間提高表現;
  • 完成任務。

實驗及結果

AlfWorld 提供了六種不同的任務和3000 多個環境,這些任務要求智能體理解目標任務,制定子任務的順序計劃,並在在給定環境中執行操作。

研究在134 個AlfWorld 環境中測試智能體,任務包括尋找隱藏物體(例如,在抽屜裡找到水果刀)、移動物體(例如,將刀移到砧板上),以及用其他物件來操縱另一個物件(例如,在冰箱中冷藏番茄)。 

在沒有反思的情況下,智能體的準確率為 63%,之後再加入 Reflexion 進行比較。結果顯示,智能體在 12 次試驗中能夠處理好 97% 的環境,在 134 項任務中僅有 4 項沒有解決。

當GPT-4反思自己錯了:效能提升近30%,程式設計能力提升21%

接下來的實驗是在HotPotQA 中進行了,它是一個基於維基百科的資料集,包含113k 個問答對,主要用來挑戰智能體解析內容和推理的能力。

在 HotpotQA 的 100 個問答對測試中,該研究將基礎智能體和基於 Reflexion 的智能體進行比較,直到它們在連續的試驗中無法提高準確性。結果顯示基礎智能體並沒有性能提高,在第一次試驗中,基礎智能體準確率為34%,Reflexion 智能體準確率為32%,但在7 次試驗後,Reflexion 智能體表現大幅改善,性能提升接近30%,大大優於基礎智能體。

當GPT-4反思自己錯了:效能提升近30%,程式設計能力提升21%

類似地,在測試模型編寫程式碼的能力時,加入Reflexion 的GPT-4 也顯著優於常規的GPT-4:

當GPT-4反思自己錯了:效能提升近30%,程式設計能力提升21%

#

以上是當GPT-4反思自己錯了:效能提升近30%,程式設計能力提升21%的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:51cto.com。如有侵權,請聯絡admin@php.cn刪除