toplogo
Masuk

基於過去反思學習語言代理指令:元反思


Konsep Inti
元反思是一種離線強化學習技術,它通過增強基於過去試驗經驗學習的語義記憶來提高語言代理的性能。
Abstrak
edit_icon

Kustomisasi Ringkasan

edit_icon

Tulis Ulang dengan AI

edit_icon

Buat Sitasi

translate_icon

Terjemahkan Sumber

visual_icon

Buat Peta Pikiran

visit_icon

Kunjungi Sumber

摘要 大型語言模型 (LLM) 的普及開啟了語言代理解決各種任務的新時代。 雖然當前的尖端 LLM 足以為相當不錯的語言代理提供動力,但封閉式 API 模型使得在它們表現不佳的情況下難以改進。 為了應對這一挑戰,最近的研究探索了使用自我反思和提示優化等技術來提高其性能的方法。 不幸的是,像自我反思這樣的技術只能在線上設置中使用,而當前的提示優化技術的設計和測試僅適用於簡單的任務。 為此,我們引入了元反思,這是一種新穎的離線強化學習技術,通過增強基於過去試驗經驗學習的語義記憶來提高語言代理的性能。 我們通過跨多個領域的評估證明了元反思的有效性,包括複雜的邏輯推理、生物醫學語義相似性、開放世界問答以及基礎設施即代碼 (IAC) 中的漏洞威脅檢測,涵蓋不同的代理設計。 元反思將語言代理的性能比原始 GPT-4 基線提高了 4% 到 16.82%,並且與現有的最先進提示優化技術相比表現相當,同時需要的 LLM 調用更少。 元反思 我們考慮一個 LLM 代理 A 與環境 Env 交互以解決任務 T 的設置,該任務的特徵是初始狀態 S0。 在時間步長 t,代理 A 在狀態 St 接收觀察結果 ot,並使用策略 π(at|Tt, Pt) 採樣動作 at,其中 Tt = {o0, a0, o1 . . . , at, ot} 表示代理的軌跡,而提示 Pt 是驅動時間步長 t 的動作選擇的提示。 最終,代理到達狀態 Sn,在該狀態下它從代理接收獎勵 r = R(Sn)。 該狀態標記著語言代理正確/不正確地完成了任務 T。 元反思旨在通過以基於規則的指令 Instr 的形式增強它們的語義記憶 (McRae and Jones, 2013) 來提高此類語言代理的性能,用 π(at|Tt, P L Instr) 替換 π(at|Tt, P) 來存儲經驗學習。 算法 1 顯示了元反思過程的概要。 該算法的核心原理是從一組空指令開始,並使用小的訓練批次迭代地改進指令。 例如,如果代理 Areact 是一個在維基百科上處理問答任務的 REACT 風格的代理,則在狀態 S0,代理將收到問題 Q。現在,代理可以選擇執行搜索動作,在該動作之後它將接收觀察結果 o。 然後,代理可以選擇選擇進一步的搜索或查找動作,或者選擇答案動作來返回答案。 此動作將標記到狀態 Sn 的轉換,並且可以根據答案的正確性生成二進制獎勵。 一個更簡單的例子是代理 As,給定一個多項選擇題,它選擇一個答案,如果答案正確則獲得正獎勵。 代理、環境和自我反思方法 元反思過程的核心是使用以下組件:(a) 基於語言模型的代理 A(即 RL actor),(b) 環境 Env,它根據代理的軌跡為特定動作生成獎勵,以及 (c) A SelfReflect 方法,該方法按照 (Shinn et al., 2023) 生成給定代理軌跡的口頭強化(算法 1 的第 10 行)。這與先前的最先進提示優化技術 (Wang et al., 2023; Pryzant et al., 2023) 形成對比,其中優化僅依賴於代理的最終動作,並且不能應用於 actor 未觀察到的中間狀態。 此外,我們調整代理 A,使其除了標準任務描述和代理行為提示之外,還通過一組指令進行參數化。 在我們的實現和實驗中,我們利用單步代理(一個普通的單次語言模型代理)或基於 REACT (Yao et al., 2023c) 和 COT (Wei et al., 2023) 的多步代理。 雖然元反思沒有區分兩者,但我們做出這種區分是為了便於與其他提示優化技術進行比較,這些技術僅適用於單步代理配置。 有關代理配置的更多信息可以在第 3.3 節中找到。 元反思步驟 MetaReflect 方法旨在將先前的指令集 Instr、一組自我反思 refl、訓練數據 DT 和驗證數據 DV 作為輸入,並將生成更新的指令集 Instr∗,如算法 1 的第 11 行所示。 對於 MetaReflect 方法,我們使用一個標準的語言模型,其提示指示 LLM 觀察反思、訓練數據,並生成一個新的非特定於案例的指令風格記憶。 此外,先前的記憶也被作為輸入傳遞,以便輸出是先前學習的概括。 在我們的實現中,為了提高效率,這種元反思和概括是在同一個提示中完成的。 或者,可以先生成新指令,然後將其與現有指令組合。 我們指定指令需要採用列表的形式。 因此,第 11 行中的元反思步驟通常要么 (a) 通過添加新項目來更新列表,要么 (b) 將一個或多個先前項目與自我反思中的學習成果相結合以生成更短的列表。 例如,在我們的 HOTPOTQA 實驗中學到的一條元反思指令建議在搜索人以縮小結果範圍時包含職業。 在後續的批次中,自我反思步驟產生了一個反思,其中提到在搜索電影時添加諸如發行日期之类的搜索詞。 MetaReflect 步驟可以通過以下兩種方式將先前的指令與當前的自我反思相結合:通過將一個新項目附加到列表中以闡明搜索電影的策略,或者可以將先前的項目概括為類似於“在搜索特定實體時,使用額外的上下文信息來使用與實體特徵相對應的輔助關鍵字來擴充主要搜索詞”。 驗證和回溯 在每次迭代中,在 MetaReflect 之後,我們驗證新指令的質量。 由於稀疏的獎勵信號導致糟糕的自我反思或元反思指令過度概括,我們最終可能會得到比先前指令質量更差的指令。 較差的指令也可能是由於大型語言模型普遍反复無常、不可預測的性質造成的。 因此,我們通過在訓練數據和驗證集的隨機樣本上測試新指令來驗證它們,以確保它們的性能優於先前的指令,如算法 1 的第 12 行所示。理想情況下,我們會在完整的驗證數據集上執行此驗證。 但是,在我們的例子中,我們僅在當前批次上進行驗證,以平衡指令質量和效率。 如果更新後的指令與之前的指令相比表現不佳,我們將回溯到之前的指令,如第 13 行所示。 例如,在上一段中,元反思步驟將關於如何搜索人的特定指令替換為關於如何搜索實體的更通用的指令。 但是,這些通用指令可能過於模糊(特別是對於較小、能力較弱的模型),並且客戶端代理無法將其正確應用於搜索人的情況。 迭代優化 受 (Shinn et al., 2023) 中展示的語言模型的自我優化行為的啟發,我們對每個批次使用多次元反思嘗試(第 4 行到第 13 行),直到我們在當前批次中沒有看到失敗或耗盡最大試驗次數(我們所有實驗都設置為 3 次)。 類似於自我反思如何幫助優化語言代理的軌跡以完成任務,來自 Instr∗ 的失敗軌跡的反饋在元反思過程中充當隱含的口頭強化。 然後,元反思步驟可以使用這些口頭強化來指導指令搜索。 這種以軌跡為導向的迭代優化策略減少了在指令優化過程中重複錯誤的可能性,例如提出過去已經嘗試過的錯誤優化。 在可以直接比較的單步代理設置中,我們觀察到這種迭代優化策略使我們能夠獲得與最先進的提示優化技術相似的性能,但 LLM 調用次數更少。
Statistik
元反思將語言代理的性能比原始 GPT-4 基線提高了 4% 到 16.82%。 與現有的最先進提示優化技術相比,元反思需要的 LLM 調用更少。 在所有配置中,元反思所需的訓練 LLM 調用次數最少(包括任何中間推理調用),而 PROTEGI 和 PROMPTAGENT 分別需要多達 17 倍和 1.5 倍的 LLM 調用。

Pertanyaan yang Lebih Dalam

元反思如何在多模態環境中應用,例如結合文本和圖像的環境?

元反思的概念可以拓展到多模態環境中,例如結合文本和圖像的環境。以下是一些可能的應用方向: 多模態自我反思: 在這種情況下,語言代理不僅可以分析文本信息,還可以分析圖像信息來進行自我反思。例如,一個圖像描述任務的代理可以分析生成的描述和實際圖像之間的差異,並生成反思,例如「我沒有注意到圖像背景中的關鍵細節」。 跨模態元反思: 語言代理可以從不同模態的數據中學習元反思指令。例如,一個代理可以通過分析圖像描述任務中的失敗案例,學習到在文本描述中更注重圖像細節的指令,然後將這些指令應用到其他涉及圖像理解的任務中。 多模態指令生成: 元反思可以指導代理生成更全面的多模態指令。例如,一個機器人代理可以通過元反思學習到,在抓取物體時,不僅要考慮物體的位置信息(圖像),還要考慮物體的材質和重量等信息(文本),從而生成更精確的抓取指令。 然而,多模態元反思也面臨著一些挑戰: 多模態數據對齊: 如何有效地對齊不同模態的信息,以便代理能夠進行跨模態的自我反思和學習。 多模態指令表示: 如何設計有效的指令表示方式,使其能夠同時指導代理處理文本和圖像信息。 計算複雜度: 多模態元反思需要處理的信息量更大,計算複雜度也更高。 總之,將元反思應用於多模態環境是一個很有前景的研究方向,但也需要克服一些挑戰。

如果元反思過程中使用的訓練數據存在偏差,會如何影響語言代理的性能和行為?

如果元反思過程中使用的訓練數據存在偏差,會導致語言代理的性能下降,並產生不公平或不期望的行為。 性能下降: 元反思依賴於訓練數據中的自我反思來學習有效的指令。如果訓練數據存在偏差,學習到的指令可能無法很好地泛化到其他數據集或真實場景中,導致代理的性能下降。 放大偏差: 元反思可能會放大訓練數據中的偏差。例如,如果訓練數據中的圖像描述任務主要關注男性,代理可能會學習到更偏向於描述男性的指令,導致在描述女性時表現不佳。 產生偏見行為: 如果訓練數據包含歧視性或有害的語言,代理可能會學習到這些偏見,並在與用戶互動時表現出不公平或冒犯性的行為。 为了减轻训练数据偏差带来的负面影响,可以采取以下措施: 使用更平衡的训练数据: 尽可能使用包含多样化样本的训练数据,避免特定群体或观点的过度代表。 偏差检测和修正: 在训练过程中,定期检测代理的输出是否存在偏差,并采取措施修正偏差,例如调整训练数据的权重或引入公平性约束。 人工干预和评估: 人工评估代理的输出,识别潜在的偏差问题,并对模型进行微调或修正。 总之,在使用元反思技术时,必须关注训练数据的质量和潜在偏差,并采取措施减轻偏差带来的负面影响,以确保语言代理的公平性和可靠性。

元反思的語義記憶學習機制如何應用於其他領域,例如機器人技術或自動駕駛汽車?

元反思的語義記憶學習機制在機器人技術和自動駕駛汽車等領域有著廣闊的應用前景。 機器人技術: 技能學習: 機器人可以通過元反思分析自身在執行任務時的成功和失敗經驗,總結出更有效的策略,並將其存儲在語義記憶中,以便在未來遇到類似情況時能够更快地做出正確決策。例如,機器人可以學習如何更好地抓取不同形狀和材質的物體,或者如何在複雜環境中進行導航。 人機交互: 元反思可以幫助機器人更好地理解人類的指令和意圖。通過分析過去與人類互動的經驗,機器人可以學習到人類語言的模糊性和多義性,並根據上下文做出更準確的判斷。 故障排除: 當機器人遇到故障或無法完成任務時,元反思可以幫助其分析原因,並嘗試找到解決方案。例如,機器人可以通過分析傳感器數據和自身行為,判斷出是哪個部件出現了問題,並嘗試自行修復或尋求幫助。 自動駕駛汽車: 決策制定: 自動駕駛汽車可以利用元反思來分析駕駛過程中遇到的各種路況和突發事件,學習更安全的駕駛策略。例如,汽車可以學習如何在擁堵路段安全變道,或者如何在惡劣天氣條件下保持車距。 路線規劃: 元反思可以幫助自動駕駛汽車根據實時路況和歷史數據,規劃出更優的路線,避開擁堵路段,縮短行駛時間。 安全性提升: 通過分析事故案例和自身駕駛數據,自動駕駛汽車可以不斷學習和改進安全性能,例如更早地识别潜在危险,并采取更有效的避让措施。 总而言之,元反思的语义记忆学习机制可以帮助机器人和自动驾驶汽车等智能体从经验中学习,提高其自主性、适应性和安全性,使其在复杂多变的环境中表现更加出色。
0
star