如果Agent模仿了人類在現(xiàn)實世界中的操作方式,那么,能否應(yīng)用于提示工程即Prompt Engingeering 呢?
大型語言模型(LLM)是一種基于Transformer的模型,已經(jīng)在一個巨大的語料庫或文本數(shù)據(jù)集上進行了訓(xùn)練,包括了互聯(lián)網(wǎng)上的大多數(shù)網(wǎng)頁。在訓(xùn)練期間,需要花費大量的時間(和/或圖形處理器)、能量和水(用于冷卻) ,梯度下降法被用來優(yōu)化模型的參數(shù),以便它能夠很好地預(yù)測訓(xùn)練數(shù)據(jù)。
本質(zhì)上,LLM 學(xué)習(xí)根據(jù)前面的詞序預(yù)測最可能的下一個詞。這可以用來執(zhí)行推理即查找模型生成某些文本的可能性,或者用來生成文本,像 ChatGPT 這樣的 LLM 使用這些文本與人進行對話。一旦 LLM 完成了訓(xùn)練,意味著它的參數(shù)被保存,不會向訓(xùn)練數(shù)據(jù)或重新訓(xùn)練的數(shù)據(jù)中添加輸入。值得注意的是,LLM 仍然會從訓(xùn)練數(shù)據(jù)中學(xué)到偏見,而 ChatGPT 背后的 OpenAI 公司不得不增加安全措施,使用來自人類反饋的強化學(xué)習(xí)(RLHF)以防止該模型產(chǎn)生有問題的內(nèi)容。此外,由于 LLM 默認(rèn)情況下只是根據(jù)他們所看到的內(nèi)容生成最有可能的下一個單詞,而沒有進行任何事實核查或推理,因此它們?nèi)菀桩a(chǎn)生幻覺,或者編造事實,以及推理錯誤。
自從 ChatGPT 公開發(fā)布以來,LLM 風(fēng)靡全球。這些模型的新興智能以及它們在我們生活中的各個方面的應(yīng)用,使它們成為一種非常受歡迎的工具,每家公司都想從中分一杯羹。除了聊天機器人以及編碼和寫作助手,LLM 還被用來創(chuàng)建與包括互聯(lián)網(wǎng)在內(nèi)的模擬環(huán)境交互的Agent。
如果嘗試過 ChatGPT,有時會發(fā)現(xiàn)它的回答很糟糕,但是如果重新措辭這個問題,可能會得到更好的結(jié)果。這就是提示工程的藝術(shù),通過修改輸入使 LLM 以您希望的方式作出響應(yīng)。提示語的背后只是嘗試通過提出一些事實來“喚醒LLM的記憶”,或者告訴它一個新的領(lǐng)域,然后從一個訓(xùn)練好的 LLM 那里得到適當(dāng)?shù)捻憫?yīng)。這就是所謂的上下文學(xué)習(xí),一般主要有兩種類型: zero-shot和few-shot。zero-shot為 LLM 提供了一個提示,可以在問題/命令之前包含一些背景信息,以幫助 LLM 找到一個好的響應(yīng)。few-shot給 LLM 提供了一些示例提示和可取的響應(yīng),然后提出一個新的提示,LLM 將以示例的格式響應(yīng)這些提示。
提示工程可能是自然語言處理(NLP)的未來趨勢之一。這個領(lǐng)域正在從定制模型轉(zhuǎn)向定制提示,因為 LLM 比任何人在沒有大量時間和精力的情況下自己制作的語言模型要好得多。當(dāng) LLM 與正確的提示工程技術(shù)配對時,通常情況下,它可以完成專用模型所能完成的任何工作。
思維鏈推理(CoT)是一種流行的提示工程技術(shù),旨在對抗推理錯誤。它包括給 LLM 提供一個或多個例子,說明如何通過語言推理解決問題,然后給它一個不同的問題,以這種方式解決。這可以幫助克服推理的錯誤,但它仍然受到幻覺的影響以及幻覺的“事實”可以通過推理傳播,導(dǎo)致模型得出錯誤的結(jié)論。
只提出一個問題的標(biāo)準(zhǔn)提示語被比作思維鏈(CoT)提示的輸入 ,需要多步推理才能解決問題。由于幻覺的問題,使用 CoT 提示的 LLM 有更令人信服的響應(yīng),但它仍然有可能是錯誤的。如果 LLM 要成為一個有用的工具,如果不能左右它胡編亂造,我們就永遠(yuǎn)不能相信它們,最好還是自己做研究。而Agent似乎可以解決這個問題,允許 LLM 采取行動,比如搜索維基百科,以便從中找到事實和理由。
與思維鏈推理一樣,ReAct 也是一種提示工程方法,它使用少量學(xué)習(xí)來教模型如何解決問題。CoT 被認(rèn)為是模仿人類如何思考問題,ReAct 也包括了這個推理元素,但它更進一步,允許Agent操作文本,讓它與環(huán)境互動。人類使用語言推理來幫助我們制定策略并記住事情,但也可以采取行動來獲得更多的信息并實現(xiàn)目標(biāo)。這就是 ReAct 的基礎(chǔ)。ReAct 提示包括行動的例子、通過行動獲得的觀察結(jié)果,以及人類在過程中各個步驟中轉(zhuǎn)錄的思想(推理策略)。LLM 學(xué)習(xí)模仿這種交叉思考和行動的方法,使其成為其環(huán)境中的Agent。
一定要記住,觀察結(jié)果不是由 LLM 生成的,而是由環(huán)境生成的,環(huán)境是一個單獨的模塊,LLM 只能通過特定的文本操作與之交互。因此,為了實現(xiàn) ReAct,需要:
一種環(huán)境,它采取一個文本操作, 從一組可以根據(jù)環(huán)境的內(nèi)部狀態(tài)改變的潛在操作中返回一個文本觀察。
一個輸出解析器框架,一旦Agent編寫了一個有效的操作,它就停止生成文本,在環(huán)境中執(zhí)行該操作,并返回觀察結(jié)果, 一般是將其追加到目前生成的文本中,并用該結(jié)果提示 LLM。
人工產(chǎn)生的示例,混合了思想,行動和觀察,在環(huán)境中可以使用few-shot,例子的數(shù)量和細(xì)節(jié)取決于目標(biāo)和開發(fā)者的設(shè)計,例如:
這里,思想、動作和觀察都被清楚地標(biāo)記如上,而且動作使用了一種特殊的格式,查詢放在括號中,這樣Agent就可以學(xué)習(xí)以這種方式編寫任務(wù),然后輸出解析器就可以輕松地提取查詢。
Yao 等人(2023)使用了 PalM-540B,用這個 LLM 在兩個知識密集型推理任務(wù)和兩個決策任務(wù)上測試了 基于ReAct 的提示工程效果。
在這個任務(wù)領(lǐng)域中使用的兩個域是 HotPotQA 和 FEVER,前者是使用 Wikipedia 段落進行多跳問答,后者是事實驗證。Agent可以使用以下操作與Wikipedia API 進行交互:
Search: 根據(jù)名稱或大多數(shù)相似結(jié)果列表查找頁面。
查找: 在頁中查找字符串。
以答案結(jié)束任務(wù)。
在 HotPotQA 和 FEVER 這兩個評估領(lǐng)域中, ReAct 與如下提示工程 技術(shù)進行了比較,結(jié)果是通過 FEVER 的準(zhǔn)確性和 HotPotQA 中 EM 來評估的。
其中:
標(biāo)準(zhǔn)Prompt: 沒有思想,行動,或觀察。
CoT: 沒有及時的行動或觀察。
CoT-SC (自我一致性) : 從 LLM 中抽取一定數(shù)量的回答,并選擇大多數(shù)作為回答。
動作: 沒有思維的prompt。
ReAct ->CoT-SC: 開始時是ReAct,然后轉(zhuǎn)換為 CoT-SC。
CoT-SC-> ReAct: 開始時是 CoT-SC,然后切換到 ReAct。
ReAct 在 HotPotQA 中表現(xiàn)不佳,但在 FEVER 中表現(xiàn)優(yōu)于 CoT。ReAct 比 CoT 更不容易產(chǎn)生幻覺,但是有更高的推理錯誤率。盡管 ReAct 確實有這個缺點,但是 ReAct-> CoT-SC 和 CoT-SC-> ReAct 方法是其中最成功的。
測試ReAct 的兩個決策任務(wù)是 ALFWorld 和 WebShop。
ALFWorld 是一個基于文本的游戲,具有真實的環(huán)境。它具有用于在模擬世界中移動和交互的文本操作,例如“打開抽屜1”給代理人的一個目標(biāo)可能是在房子里找到一個特定的物體,因此常識推理有助于知道這樣一個物體通常在哪里被發(fā)現(xiàn)。衡量成功的標(biāo)準(zhǔn)是達到目標(biāo)的試驗的百分比。
WebShop 是一個模擬在線購物網(wǎng)站,數(shù)據(jù)來自亞馬遜。這是一個具有挑戰(zhàn)性的領(lǐng)域,因為它有大量的行動導(dǎo)航網(wǎng)站和搜索產(chǎn)品。目標(biāo)是找到一個符合用戶規(guī)范的項目。衡量成功的標(biāo)準(zhǔn)是所選項目與用戶心目中的隱藏項目有多接近。
從論文中的評估結(jié)果來看,ReAct 的表現(xiàn)明顯優(yōu)于基線。
ReAct 雖然由于其推理錯誤而并不完善,但仍然是一個強有力的提示工程方法,它克服了思維鏈推理的事實幻覺問題,并且允許 LLM 成為一個可以與其環(huán)境相互作用的Agent。此外,它具有可解釋性,因為Agent在行動時輸出其思維過程。
作為Agent 應(yīng)用于提示工程的一種具體實現(xiàn),ReAct 邁出通往通用人工智能和具象語言模型的一步。如果一個機器人有一種基于熟悉的特征對外部環(huán)境進行建模并使用該模型創(chuàng)建提示的方法,那么它至少可以嘗試在各種領(lǐng)域獨立行動,而不需要人工制作的示例。它還需要某種記憶,或者從它的經(jīng)歷中學(xué)習(xí)的能力,具有常識性知識的機器人,只要能夠解決諸如推理錯誤和幻覺之類的問題,就可能對我們有很大的幫助。
BTW,擁有了大模型就可以擁有好的產(chǎn)品么? 產(chǎn)品經(jīng)理的貢獻往往仍然是不可或缺的,以智能語音產(chǎn)品為例, 你可能需要這樣的一本案頭手冊(筆者的最新譯作),幫助自己更好的完成產(chǎn)品設(shè)計。
【參考資料】
Yao etc, “ReAct: Synergizing Reasoning and Acting in Language Models”,ICLR,2023
聯(lián)系客服