當(dāng)GPT-4反思自己錯(cuò)了:性能提升近30%,編程能力提升21%
人類(lèi)在做錯(cuò)事時(shí),會(huì)反思自己的行為,避免再次出錯(cuò),如果讓 GPT-4 這類(lèi)大型語(yǔ)言模型也具備反思能力,性能不知道要提高多少了。
眾所周知,大型語(yǔ)言模型 (LLM) 在各種任務(wù)上已經(jīng)表現(xiàn)出前所未有的性能。然而,這些 SOTA 方法通常需要對(duì)已定義的狀態(tài)空間進(jìn)行模型微調(diào)、策略?xún)?yōu)化等操作。由于缺乏高質(zhì)量的訓(xùn)練數(shù)據(jù)、定義良好的狀態(tài)空間,優(yōu)化模型實(shí)現(xiàn)起來(lái)還是比較難的。此外,模型還不具備人類(lèi)決策過(guò)程所固有的某些品質(zhì),特別是從錯(cuò)誤中學(xué)習(xí)的能力。
不過(guò)現(xiàn)在好了,在最近的一篇論文中,來(lái)自美國(guó)東北大學(xué)、MIT 等機(jī)構(gòu)的研究者提出 Reflexion,該方法賦予智能體動(dòng)態(tài)記憶和自我反思的能力。
為了驗(yàn)證方法的有效性,該研究評(píng)估了智能體在 AlfWorld 環(huán)境中完成決策任務(wù)的能力,以及在 HotPotQA 環(huán)境中完成知識(shí)密集型、基于搜索問(wèn)答任務(wù)的能力,在這兩項(xiàng)任務(wù)的成功率分別為 97% 和 51%。
論文地址:https://arxiv.org/pdf/2303.11366.pdf
項(xiàng)目地址:https://github.com/GammaTauAI/reflexion-human-eval
如下圖所示,在 AlfWorld 環(huán)境中,房間里擺設(shè)了各種物品,要求讓智能體給出推理計(jì)劃以拿到某件物體,下圖上半部分由于智能體低效的計(jì)劃而失敗。經(jīng)過(guò)反思后,智能體意識(shí)到錯(cuò)誤,糾正推理軌跡,給出簡(jiǎn)潔的軌跡方式(如圖下半部分)。
模型反思有缺陷的搜索策略:
這篇論文表明,你可以通過(guò)要求 GPT-4 反思「你為什么錯(cuò)了?」并為自己生成一個(gè)新的提示,將這個(gè)錯(cuò)誤原因考慮在內(nèi),直到結(jié)果正確,從而將 GPT-4 的性能提高驚人的 30%。
網(wǎng)友不禁感嘆:人工智能的發(fā)展速度已經(jīng)超過(guò)了我們的適應(yīng)能力。
方法介紹
Reflexion 智能體的整體架構(gòu)如下圖 1 所示,其中 Reflexion 利用 ReAct(Yao et al., 2023)。在第一次試驗(yàn)中,智能體從構(gòu)成初始查詢(xún)的環(huán)境中獲得任務(wù),然后智能體執(zhí)行由 LLM 生成的一系列動(dòng)作,并從環(huán)境中接收觀察和獎(jiǎng)勵(lì)。對(duì)于提供描述型或持續(xù)型獎(jiǎng)勵(lì)的環(huán)境,該研究將輸出限制為簡(jiǎn)單的二元成功狀態(tài)以確保適用性。
在每個(gè)動(dòng)作 a_t 之后,智能體會(huì)計(jì)算一個(gè)啟發(fā)性函數(shù) h,如下圖所示
這個(gè)啟發(fā)性函數(shù)旨在檢測(cè)智能體產(chǎn)生信息幻覺(jué)(即虛假或錯(cuò)誤的信息)或效率低下,并「告訴」智能體何時(shí)需要反思(reflexion),其中 t 是 time step,s_t 是當(dāng)前狀態(tài),Ω 表示重復(fù)動(dòng)作循環(huán)的次數(shù),ε 表示執(zhí)行動(dòng)作的最大總數(shù),[a_o, o_0 . . . , a_(t?1), o_(t?1)] 代表軌跡歷史。repeat 是一個(gè)簡(jiǎn)單的函數(shù),用于確定產(chǎn)生相同結(jié)果的重復(fù)動(dòng)作循環(huán)的次數(shù)。
如果函數(shù) h 告訴智能體需要反思,那么智能體會(huì)查詢(xún) LLM 以反映其當(dāng)前任務(wù)、軌跡歷史和上次獎(jiǎng)勵(lì),然后智能體在后續(xù)試驗(yàn)中會(huì)重置環(huán)境再重試。如果函數(shù) h 沒(méi)有告訴智能體需要反思,那么智能體會(huì)將 a_t 和 o_t 添加到其軌跡歷史記錄中,并向 LLM 查詢(xún)下一個(gè)動(dòng)作。
如果如果啟發(fā)式 h 建議在 time step t 時(shí)進(jìn)行反思,則智能體會(huì)根據(jù)其當(dāng)前狀態(tài) s_t、最后的獎(jiǎng)勵(lì) r_t、先前的動(dòng)作和觀察 [a_0, o_0, . . . , a_t, o_t],以及智能體現(xiàn)有的工作存儲(chǔ) mem,啟動(dòng)一個(gè)反思過(guò)程。
反思的目的是通過(guò)反復(fù)試驗(yàn)幫助智能體糾正「幻覺(jué)」和低效率問(wèn)題。用于反思的模型是一個(gè)使用特定的失敗軌跡和理想的反思示例來(lái) prompt 的 LLM。
智能體會(huì)迭代地進(jìn)行上述反思過(guò)程。在實(shí)驗(yàn)中,該研究設(shè)置在智能體內(nèi)存中存儲(chǔ)的反思最多為 3 次,這是為了避免查詢(xún)超出 LLM 的限制。以下幾種情況,運(yùn)行會(huì)終止:
- 超過(guò)最大試驗(yàn)次數(shù);
- 未能在兩次連續(xù)試驗(yàn)之間提高性能;
- 完成任務(wù)。
實(shí)驗(yàn)及結(jié)果
AlfWorld 提供了六種不同的任務(wù)和 3000 多個(gè)環(huán)境,這些任務(wù)要求智能體理解目標(biāo)任務(wù),制定子任務(wù)的順序計(jì)劃,并在給定環(huán)境中執(zhí)行操作。
該研究在 134 個(gè) AlfWorld 環(huán)境中測(cè)試智能體,任務(wù)包括尋找隱藏物體(例如,在抽屜里找到水果刀)、移動(dòng)物體(例如,將刀移到砧板上 ),以及用其他對(duì)象來(lái)操縱另一個(gè)對(duì)象(例如,在冰箱中冷藏西紅柿)。
在沒(méi)有反思的情況下,智能體的準(zhǔn)確率為 63%,之后加入 Reflexion 進(jìn)行對(duì)比。結(jié)果顯示,智能體在 12 次試驗(yàn)中能夠處理好 97% 的環(huán)境,在 134 項(xiàng)任務(wù)中僅有 4 項(xiàng)沒(méi)有解決。
接下來(lái)的實(shí)驗(yàn)是在 HotPotQA 中進(jìn)行了,它是一個(gè)基于維基百科的數(shù)據(jù)集,包含 113k 個(gè)問(wèn)答對(duì),主要用來(lái)挑戰(zhàn)智能體解析內(nèi)容和推理的能力。
在 HotpotQA 的 100 個(gè)問(wèn)答對(duì)測(cè)試中,該研究將基礎(chǔ)智能體和基于 Reflexion 的智能體進(jìn)行比較,直到它們?cè)谶B續(xù)的試驗(yàn)中無(wú)法提高準(zhǔn)確性。結(jié)果顯示基礎(chǔ)智能體并沒(méi)有性能提高,在第一次試驗(yàn)中,基礎(chǔ)智能體準(zhǔn)確率為 34%,Reflexion 智能體準(zhǔn)確率為 32%,但在 7 次試驗(yàn)后,Reflexion 智能體表現(xiàn)大幅改善,性能提升接近 30%,大大優(yōu)于基礎(chǔ)智能體。
類(lèi)似地,在測(cè)試模型編寫(xiě)代碼的能力時(shí),加入 Reflexion 的 GPT-4 也顯著優(yōu)于常規(guī)的 GPT-4: