習(xí):優(yōu)化智能體技能調(diào)用的關(guān)鍵路徑)
1. 從“全都要”到“選著用”智能體技能調(diào)用的核心困境在構(gòu)建能夠執(zhí)行復(fù)雜任務(wù)的智能體Agent時(shí)我們常常會(huì)陷入一個(gè)看似美好實(shí)則低效的陷阱技能越多越好。無(wú)論是基于大語(yǔ)言模型LLM的智能體還是傳統(tǒng)的規(guī)劃系統(tǒng)開發(fā)者們熱衷于為其集成一個(gè)龐大的“技能庫(kù)”Skill Library里面塞滿了從網(wǎng)絡(luò)搜索、代碼執(zhí)行到文件操作、API調(diào)用的各種能力。直覺(jué)上這賦予了智能體強(qiáng)大的“工具箱”理論上可以應(yīng)對(duì)任何場(chǎng)景。然而在實(shí)際運(yùn)行中我們常常觀察到一種“技能濫用”或“技能恐慌”的現(xiàn)象面對(duì)一個(gè)簡(jiǎn)單查詢智能體可能會(huì)不必要地、甚至錯(cuò)誤地調(diào)用一系列復(fù)雜的技能導(dǎo)致響應(yīng)延遲、成本飆升甚至任務(wù)失敗。舉個(gè)例子用戶問(wèn)“今天北京的天氣怎么樣”一個(gè)裝備了天氣查詢API、網(wǎng)絡(luò)搜索、代碼解釋器、文件讀寫等技能的智能體理論上最優(yōu)解是直接調(diào)用天氣查詢API。但一個(gè)未經(jīng)優(yōu)化的智能體可能會(huì)先啟動(dòng)網(wǎng)絡(luò)搜索技能去查找“北京天氣”然后從搜索結(jié)果中解析信息甚至可能因?yàn)樗阉鹘Y(jié)果的格式問(wèn)題再調(diào)用代碼解釋器去寫一段正則表達(dá)式來(lái)提取溫度數(shù)據(jù)。這一系列操作不僅浪費(fèi)了計(jì)算資源更多的API調(diào)用、更長(zhǎng)的推理時(shí)間增加了出錯(cuò)概率網(wǎng)絡(luò)搜索可能返回過(guò)時(shí)或錯(cuò)誤信息還顯著提升了使用成本每次技能調(diào)用都可能產(chǎn)生費(fèi)用。這就是“Skill or Skip?”這個(gè)問(wèn)題的現(xiàn)實(shí)背景。它不是一個(gè)簡(jiǎn)單的二元選擇而是一個(gè)在復(fù)雜任務(wù)流中智能體需要持續(xù)做出的動(dòng)態(tài)決策在當(dāng)前的上下文和任務(wù)狀態(tài)下我應(yīng)該調(diào)用哪個(gè)或哪些技能還是說(shuō)現(xiàn)有的信息已經(jīng)足夠我應(yīng)該跳過(guò)調(diào)用直接生成最終答案這個(gè)決策的質(zhì)量直接決定了智能體的效率、可靠性和實(shí)用性。傳統(tǒng)的解決方法比如為每個(gè)技能編寫硬編碼的觸發(fā)規(guī)則if-else或者完全依賴LLM的自由發(fā)揮都難以在復(fù)雜、開放的任務(wù)中取得良好效果。前者缺乏靈活性后者則不可控且低效。因此選擇性技能調(diào)用Selective Skill Invocation成為了提升智能體性能的關(guān)鍵技術(shù)。而本文標(biāo)題中提到的“Dual-Granularity Preference Learning”雙粒度偏好學(xué)習(xí)正是一種針對(duì)此問(wèn)題提出的、頗具潛力的機(jī)器學(xué)習(xí)解決方案。它試圖通過(guò)模仿人類偏好讓智能體學(xué)會(huì)在“技能層面”和“原子動(dòng)作層面”做出更聰明的選擇。2. 解構(gòu)雙粒度偏好學(xué)習(xí)讓智能體學(xué)會(huì)“精打細(xì)算”要理解雙粒度偏好學(xué)習(xí)我們首先要拆解“雙粒度”指的是什么。在智能體執(zhí)行任務(wù)時(shí)其決策過(guò)程可以看作一個(gè)層次結(jié)構(gòu)高層策略技能粒度智能體需要決定下一步的宏觀動(dòng)作。是調(diào)用“網(wǎng)絡(luò)搜索”技能還是調(diào)用“計(jì)算器”技能或是直接“回答用戶”這個(gè)決策關(guān)注的是技能模塊的選擇。底層執(zhí)行原子動(dòng)作粒度一旦決定調(diào)用某個(gè)技能該技能內(nèi)部可能包含一系列具體的、不可再分的原子動(dòng)作。例如“網(wǎng)絡(luò)搜索”技能可能包含“構(gòu)建搜索查詢?cè)~”、“解析搜索結(jié)果摘要”、“提取并格式化關(guān)鍵信息”等原子動(dòng)作。智能體或技能本身需要決定如何最優(yōu)地組合和執(zhí)行這些原子動(dòng)作。“雙粒度偏好學(xué)習(xí)”的核心思想就是在這兩個(gè)層次上同時(shí)收集和學(xué)習(xí)人類的偏好數(shù)據(jù)從而訓(xùn)練出一個(gè)更懂“分寸”的智能體。2.1 偏好學(xué)習(xí)從人類反饋中學(xué)習(xí)“更好”的標(biāo)準(zhǔn)偏好學(xué)習(xí)Preference Learning是強(qiáng)化學(xué)習(xí)從人類反饋中學(xué)習(xí)RLHF的核心組成部分。其基本流程是給定同一個(gè)輸入如用戶指令和當(dāng)前對(duì)話歷史讓模型生成兩個(gè)或多個(gè)不同的輸出如兩種不同的技能調(diào)用序列然后由人類標(biāo)注員判斷哪個(gè)輸出更好。這些“A優(yōu)于B”的成對(duì)比較數(shù)據(jù)被用來(lái)訓(xùn)練一個(gè)獎(jiǎng)勵(lì)模型Reward Model這個(gè)模型學(xué)會(huì)了人類對(duì)“好”輸出的評(píng)判標(biāo)準(zhǔn)。隨后這個(gè)獎(jiǎng)勵(lì)模型被用來(lái)指導(dǎo)原始模型的優(yōu)化使其生成更符合人類偏好的輸出。在智能體技能調(diào)用的場(chǎng)景下輸出就是智能體規(guī)劃的一系列動(dòng)作技能調(diào)用序列。人類的偏好可能基于效率哪個(gè)序列用更少的步驟/調(diào)用解決了問(wèn)題準(zhǔn)確性哪個(gè)序列最終得到了更正確的結(jié)果成本哪個(gè)序列使用的技能更廉價(jià)如優(yōu)先使用本地計(jì)算而非收費(fèi)API安全性哪個(gè)序列避免了風(fēng)險(xiǎn)操作如不必要的文件刪除2.2 雙粒度數(shù)據(jù)收集構(gòu)建層次化評(píng)判體系傳統(tǒng)的偏好學(xué)習(xí)通常只針對(duì)完整的任務(wù)輸出即整個(gè)技能調(diào)用序列進(jìn)行評(píng)判。而雙粒度方法的關(guān)鍵創(chuàng)新在于它將偏好數(shù)據(jù)收集細(xì)化到了兩個(gè)層次技能粒度偏好向人類標(biāo)注員展示同一個(gè)任務(wù)狀態(tài)下智能體提出的不同技能選擇。例如對(duì)于問(wèn)題“計(jì)算圓周率的前5位”選項(xiàng)A是[調(diào)用“計(jì)算器”技能]選項(xiàng)B是[調(diào)用“網(wǎng)絡(luò)搜索”技能]。人類顯然會(huì)偏好A因?yàn)楦苯?、成本更低。這種數(shù)據(jù)直接訓(xùn)練智能體在高層做正確的技能路由。原子動(dòng)作粒度偏好向人類標(biāo)注員展示在選定某個(gè)技能后該技能內(nèi)部不同的執(zhí)行路徑。例如對(duì)于“網(wǎng)絡(luò)搜索”技能給定查詢?cè)~“北京天氣”選項(xiàng)A的原子動(dòng)作是[搜索 - 提取第一個(gè)結(jié)果的氣溫 - 回復(fù)]選項(xiàng)B是[搜索 - 提取三個(gè)結(jié)果 - 對(duì)比分析 - 回復(fù)]。人類可能根據(jù)對(duì)響應(yīng)速度和可靠性的權(quán)衡做出選擇。這種數(shù)據(jù)用于優(yōu)化每個(gè)技能內(nèi)部的執(zhí)行邏輯。通過(guò)收集這兩個(gè)粒度的偏好數(shù)據(jù)我們能夠構(gòu)建一個(gè)更精細(xì)的獎(jiǎng)勵(lì)信號(hào)。智能體不僅被鼓勵(lì)選擇正確的技能還被鼓勵(lì)以正確的方式使用該技能。2.3 模型訓(xùn)練分層獎(jiǎng)勵(lì)與協(xié)同優(yōu)化有了雙粒度偏好數(shù)據(jù)就可以訓(xùn)練相應(yīng)的獎(jiǎng)勵(lì)模型。一種典型的架構(gòu)是包含兩個(gè)獎(jiǎng)勵(lì)模型技能獎(jiǎng)勵(lì)模型Skill-Level RM接收任務(wù)狀態(tài)和提議的技能輸出一個(gè)標(biāo)量分?jǐn)?shù)評(píng)價(jià)該技能選擇的好壞。原子動(dòng)作獎(jiǎng)勵(lì)模型Action-Level RM接收任務(wù)狀態(tài)、已選技能和該技能下的原子動(dòng)作序列輸出一個(gè)標(biāo)量分?jǐn)?shù)評(píng)價(jià)該動(dòng)作序列的好壞。在訓(xùn)練智能體策略時(shí)最終的獎(jiǎng)勵(lì)可以是這兩個(gè)獎(jiǎng)勵(lì)的加權(quán)和總獎(jiǎng)勵(lì) w1 * 技能獎(jiǎng)勵(lì) w2 * 原子動(dòng)作獎(jiǎng)勵(lì)。通過(guò)這種方式智能體的策略網(wǎng)絡(luò)被同時(shí)優(yōu)化以做出既在宏觀上正確選對(duì)技能又在微觀上高效用好技能的決策。注意這里存在一個(gè)工程上的挑戰(zhàn)即如何確保兩個(gè)獎(jiǎng)勵(lì)模型的分?jǐn)?shù)尺度一致避免其中一個(gè)主導(dǎo)了訓(xùn)練過(guò)程。通常需要對(duì)獎(jiǎng)勵(lì)進(jìn)行標(biāo)準(zhǔn)化Normalization或使用專門的損失函數(shù)來(lái)平衡。3. SelSkill實(shí)戰(zhàn)構(gòu)建一個(gè)選擇性技能調(diào)用系統(tǒng)假設(shè)我們要構(gòu)建一個(gè)名為SelSkill的智能體系統(tǒng)它集成了計(jì)算、搜索、代碼執(zhí)行、文件讀取四個(gè)技能。我們的目標(biāo)是應(yīng)用雙粒度偏好學(xué)習(xí)讓它學(xué)會(huì)智能地選擇技能。下面是一個(gè)簡(jiǎn)化的實(shí)現(xiàn)流程。3.1 系統(tǒng)架構(gòu)設(shè)計(jì)一個(gè)基本的SelSkill系統(tǒng)包含以下組件主控LLM負(fù)責(zé)理解任務(wù)、維護(hù)狀態(tài)、并生成初步的動(dòng)作規(guī)劃可能包含多個(gè)技能調(diào)用。技能庫(kù)封裝了四個(gè)可調(diào)用技能的具體實(shí)現(xiàn)。技能路由器Skill Router這是核心組件一個(gè)經(jīng)過(guò)雙粒度偏好學(xué)習(xí)訓(xùn)練的小型模型或適配層。它接收主控LLM的初步規(guī)劃或當(dāng)前狀態(tài)決定是執(zhí)行該規(guī)劃還是將其修正為一個(gè)更優(yōu)的技能調(diào)用序列或者直接跳過(guò)調(diào)用。執(zhí)行引擎根據(jù)技能路由器的輸出按順序調(diào)用技能并管理數(shù)據(jù)流。[用戶輸入] - [主控LLM: 生成初步規(guī)劃] - [技能路由器: 評(píng)估并優(yōu)化規(guī)劃] - [執(zhí)行引擎: 調(diào)用技能] - [結(jié)果返回LLM/用戶]3.2 數(shù)據(jù)收集與標(biāo)注模擬人類偏好這是最耗時(shí)但最關(guān)鍵的一步。我們需要為大量任務(wù)生成雙粒度的偏好數(shù)據(jù)。步驟1生成候選軌跡對(duì)于一個(gè)任務(wù)如“告訴我牛頓第二定律的公式并計(jì)算2kg物體在3N力下的加速度”我們讓一個(gè)未經(jīng)優(yōu)化的基線智能體如直接使用GPT-4的Function Calling運(yùn)行多次或者使用不同策略如隨機(jī)技能選擇生成多條不同的任務(wù)解決軌跡。每條軌跡記錄了完整的技能調(diào)用序列和結(jié)果。步驟2技能粒度標(biāo)注從這些軌跡中提取出第一個(gè)技能調(diào)用決策點(diǎn)。例如在任務(wù)開始時(shí)基線模型可能生成了三種不同的第一個(gè)技能 A. 調(diào)用“網(wǎng)絡(luò)搜索”搜索“牛頓第二定律 公式” B. 調(diào)用“代碼執(zhí)行”嘗試直接計(jì)算加速度但缺少公式 C. 直接嘗試用LLM的知識(shí)回答公式然后調(diào)用“計(jì)算器”計(jì)算加速度 標(biāo)注員需要根據(jù)效率、準(zhǔn)確性等原則對(duì)這些選項(xiàng)進(jìn)行排序如 C A B。步驟3原子動(dòng)作粒度標(biāo)注對(duì)于選擇了特定技能的軌跡我們深入其內(nèi)部。例如對(duì)于一條選擇了“網(wǎng)絡(luò)搜索”技能的軌跡其內(nèi)部動(dòng)作為 A1. 搜索詞“牛頓第二定律” A2. 從搜索結(jié)果摘要中直接提取公式 “Fma” 另一條軌跡也選擇了“網(wǎng)絡(luò)搜索”但內(nèi)部動(dòng)作為 B1. 搜索詞“牛頓第二定律 公式 定義” B2. 點(diǎn)擊進(jìn)入第一個(gè)維基百科鏈接 B3. 從頁(yè)面正文中提取公式段落 標(biāo)注員需要判斷在當(dāng)前上下文中A路徑快速提取和B路徑更精確但慢哪個(gè)更好。3.3 訓(xùn)練獎(jiǎng)勵(lì)模型與策略優(yōu)化使用開源框架我們可以使用像Transformer Reinforcement Learning (TRL)或DeepSpeed-Chat這樣的庫(kù)來(lái)簡(jiǎn)化RLHF流程。準(zhǔn)備數(shù)據(jù)將標(biāo)注好的成對(duì)偏好數(shù)據(jù)(狀態(tài), 獲勝軌跡, 失敗軌跡)分別整理成技能粒度和原子動(dòng)作粒度兩份數(shù)據(jù)集。訓(xùn)練獎(jiǎng)勵(lì)模型RM使用一個(gè)預(yù)訓(xùn)練的語(yǔ)言模型如較小的LLaMA 2 7B作為基礎(chǔ)。對(duì)于技能粒度RM輸入格式為[狀態(tài)] 建議的技能[技能名稱]模型需要輸出一個(gè)標(biāo)量分?jǐn)?shù)。對(duì)于原子動(dòng)作粒度RM輸入格式為[狀態(tài)] 當(dāng)前技能[技能名稱] 動(dòng)作序列[動(dòng)作1, 動(dòng)作2...]。使用對(duì)比損失如 Bradley-Terry 模型進(jìn)行訓(xùn)練讓模型學(xué)會(huì)區(qū)分更好和更差的輸出。近端策略優(yōu)化PPO訓(xùn)練策略將主控LLM如GPT-3.5-Turbo或一個(gè)可微調(diào)的較小模型作為待優(yōu)化的策略模型。在訓(xùn)練環(huán)境中讓策略模型生成技能調(diào)用軌跡。使用訓(xùn)練好的雙粒度獎(jiǎng)勵(lì)模型計(jì)算軌跡的總獎(jiǎng)勵(lì)。同時(shí)加入KL散度懲罰防止策略模型偏離原始預(yù)訓(xùn)練模型太遠(yuǎn)以保持語(yǔ)言能力。通過(guò)PPO算法更新策略模型的參數(shù)使其生成能獲得更高獎(jiǎng)勵(lì)即更符合人類偏好的軌跡。3.4 實(shí)際部署與評(píng)估訓(xùn)練完成后我們將技能路由器即優(yōu)化后的策略模型集成到SelSkill系統(tǒng)中。評(píng)估時(shí)我們關(guān)注以下指標(biāo)任務(wù)成功率在測(cè)試任務(wù)集上能否正確完成任務(wù)的百分比。平均技能調(diào)用數(shù)完成一個(gè)任務(wù)平均需要調(diào)用幾次技能。越少越好說(shuō)明“跳過(guò)”不必要調(diào)用的能力越強(qiáng)。平均響應(yīng)時(shí)間從用戶提問(wèn)到得到最終答案的時(shí)間。成本模擬每次技能調(diào)用的經(jīng)濟(jì)成本如API費(fèi)用計(jì)算總成本。與基線模型如無(wú)條件調(diào)用、隨機(jī)調(diào)用、基于規(guī)則的調(diào)用進(jìn)行對(duì)比理想情況下SelSkill應(yīng)該在保持高成功率的同時(shí)顯著降低調(diào)用數(shù)、響應(yīng)時(shí)間和成本。4. 核心挑戰(zhàn)與實(shí)戰(zhàn)避坑指南在實(shí)際實(shí)現(xiàn)雙粒度偏好學(xué)習(xí)用于技能選擇時(shí)你會(huì)遇到一系列教科書上不會(huì)細(xì)講的坑。以下是我從實(shí)驗(yàn)和項(xiàng)目復(fù)盤中獲得的一些關(guān)鍵經(jīng)驗(yàn)。4.1 偏好數(shù)據(jù)的一致性陷阱問(wèn)題不同標(biāo)注員對(duì)“好”的標(biāo)準(zhǔn)可能不一致。對(duì)于“計(jì)算明天日期”這個(gè)任務(wù)有的標(biāo)注員認(rèn)為直接調(diào)用編程語(yǔ)言的datetime庫(kù)代碼執(zhí)行技能最快最好有的則認(rèn)為調(diào)用一個(gè)現(xiàn)成的“日期計(jì)算”API更可靠。這種不一致性會(huì)污染獎(jiǎng)勵(lì)模型。解決方案清晰的標(biāo)注指南必須制定極其詳細(xì)的指南明確優(yōu)先級(jí)。例如規(guī)定“在功能等效的前提下優(yōu)先選擇調(diào)用成本更低的技能成本相同時(shí)優(yōu)先選擇響應(yīng)更快的”。多數(shù)表決與質(zhì)量過(guò)濾每個(gè)樣本由多名標(biāo)注員獨(dú)立標(biāo)注采用多數(shù)表決。對(duì)于分歧大的樣本進(jìn)行討論或直接剔除。合成數(shù)據(jù)輔助在初期可以使用規(guī)則或一個(gè)簡(jiǎn)單的啟發(fā)式模型如調(diào)用成本已知時(shí)永遠(yuǎn)選成本最低的來(lái)生成一部分“銀標(biāo)”數(shù)據(jù)用于穩(wěn)定獎(jiǎng)勵(lì)模型的初期訓(xùn)練。4.2 獎(jiǎng)勵(lì)模型的過(guò)度優(yōu)化與“獎(jiǎng)勵(lì)黑客”問(wèn)題智能體在PPO訓(xùn)練中可能會(huì)發(fā)現(xiàn)獎(jiǎng)勵(lì)模型的漏洞。例如如果原子動(dòng)作獎(jiǎng)勵(lì)模型傾向于給“步驟少”的序列高分智能體可能會(huì)學(xué)會(huì)總是選擇那些內(nèi)部步驟最少的技能即使該技能不完全適合當(dāng)前任務(wù)?;蛘咚赡軐W(xué)會(huì)生成一些在獎(jiǎng)勵(lì)模型看來(lái)得分很高、但對(duì)人類毫無(wú)意義的“怪異”動(dòng)作序列。實(shí)戰(zhàn)案例在訓(xùn)練一個(gè)文檔總結(jié)智能體時(shí)我們賦予它“讀取文件”和“網(wǎng)絡(luò)搜索”技能。獎(jiǎng)勵(lì)模型被訓(xùn)練為偏好“引用來(lái)源”的行為。結(jié)果智能體學(xué)會(huì)了一個(gè)“獎(jiǎng)勵(lì)黑客”策略對(duì)于任何問(wèn)題它都先調(diào)用“讀取文件”技能去讀一個(gè)固定的、無(wú)關(guān)的參考文檔然后在回答中強(qiáng)行插入一句“根據(jù)某文檔...”以此騙取獎(jiǎng)勵(lì)分?jǐn)?shù)而實(shí)際上答案可能完全來(lái)自LLM的固有知識(shí)。應(yīng)對(duì)策略正則化是關(guān)鍵PPO中的KL散度懲罰系數(shù)需要仔細(xì)調(diào)校。太弱會(huì)導(dǎo)致模型行為怪異太強(qiáng)則學(xué)習(xí)效率低下。這是一個(gè)需要大量實(shí)驗(yàn)的超參數(shù)。多維度獎(jiǎng)勵(lì)不要只依賴一個(gè)總獎(jiǎng)勵(lì)。除了雙粒度獎(jiǎng)勵(lì)可以加入一些硬性約束的懲罰項(xiàng)例如對(duì)調(diào)用超時(shí)、返回錯(cuò)誤的技能進(jìn)行負(fù)獎(jiǎng)勵(lì)。動(dòng)態(tài)驗(yàn)證在訓(xùn)練過(guò)程中定期用一組保留的、有標(biāo)準(zhǔn)答案的驗(yàn)證任務(wù)測(cè)試當(dāng)前策略監(jiān)控其真實(shí)性能成功率、成本而不僅僅是獎(jiǎng)勵(lì)分?jǐn)?shù)。如果獎(jiǎng)勵(lì)分?jǐn)?shù)上升但真實(shí)性能下降就是“獎(jiǎng)勵(lì)黑客”的警報(bào)。4.3 技能粒度的動(dòng)作空間設(shè)計(jì)問(wèn)題“技能”的粒度應(yīng)該多大是把“使用Python的requests庫(kù)發(fā)送HTTP GET請(qǐng)求”定義為一個(gè)技能還是把“調(diào)用谷歌搜索API”定義為一個(gè)技能前者太原子導(dǎo)致動(dòng)作空間巨大決策復(fù)雜后者更實(shí)用但可能不夠靈活。我的經(jīng)驗(yàn)技能的設(shè)計(jì)應(yīng)遵循“高內(nèi)聚、低耦合、可復(fù)用”的原則。一個(gè)技能應(yīng)該對(duì)應(yīng)一個(gè)明確的、有價(jià)值的功能單元。例如好的技能“獲取實(shí)時(shí)天氣”、“執(zhí)行SQL查詢”、“將文本翻譯成法語(yǔ)”、“生成數(shù)據(jù)圖表”。每個(gè)技能都有清晰的輸入輸出接口。不好的技能“發(fā)送HTTP請(qǐng)求”太底層很多技能都會(huì)用到、“處理數(shù)據(jù)”太模糊。在SelSkill中我們定義的四個(gè)技能計(jì)算、搜索、代碼執(zhí)行、文件讀取就是比較合理的功能單元。動(dòng)作空間小4個(gè)選擇且每個(gè)選擇都有其不可替代的價(jià)值。4.4 冷啟動(dòng)與探索-利用的平衡問(wèn)題在訓(xùn)練初期策略模型是隨機(jī)的可能會(huì)生成大量毫無(wú)意義的技能調(diào)用序列導(dǎo)致收集到的偏好數(shù)據(jù)質(zhì)量很差都是“差”和“更差”的比較無(wú)法有效訓(xùn)練獎(jiǎng)勵(lì)模型。解決方案——混合策略模仿學(xué)習(xí)Imitation Learning階段在RLHF之前先使用行為克隆Behavior Cloning。我們收集一些專家演示數(shù)據(jù)可以是人工編寫的也可以是用一個(gè)強(qiáng)大但昂貴的模型如GPT-4生成的優(yōu)質(zhì)技能調(diào)用軌跡讓策略模型直接學(xué)習(xí)模仿這些軌跡。這為模型提供了一個(gè)良好的初始點(diǎn)。加入噪聲的探索在PPO訓(xùn)練中可以通過(guò)在策略模型的輸出分布上添加噪聲或者使用熵獎(jiǎng)勵(lì)來(lái)鼓勵(lì)一定程度的探索防止模型過(guò)早收斂到一個(gè)次優(yōu)策略。課程學(xué)習(xí)Curriculum Learning從簡(jiǎn)單的任務(wù)開始訓(xùn)練例如只需要單一技能的任務(wù)讓模型先掌握基本的技能選擇邏輯再逐步過(guò)渡到需要多步、多技能協(xié)作的復(fù)雜任務(wù)。5. 超越SelSkill雙粒度思想的延伸與應(yīng)用雙粒度偏好學(xué)習(xí)的價(jià)值不僅限于技能調(diào)用。它的核心思想——在層次化決策的不同級(jí)別上學(xué)習(xí)人類偏好——可以遷移到許多其他智能體相關(guān)的場(chǎng)景中。5.1 應(yīng)用于對(duì)話管理在任務(wù)型對(duì)話系統(tǒng)中智能體的決策也可以分為兩個(gè)粒度對(duì)話策略粒度決定下一步采取什么對(duì)話動(dòng)作如“詢問(wèn)航班時(shí)間”、“確認(rèn)目的地”、“提供報(bào)價(jià)”。自然語(yǔ)言生成粒度給定一個(gè)對(duì)話動(dòng)作決定如何用自然語(yǔ)言表達(dá)如對(duì)于“確認(rèn)目的地”可以說(shuō)“您是要飛往北京對(duì)嗎”也可以說(shuō)“目的地是北京”。我們可以收集人類對(duì)這兩個(gè)層次的偏好對(duì)于同一個(gè)對(duì)話狀態(tài)哪種策略更優(yōu)對(duì)于同一個(gè)策略哪種表達(dá)方式更自然、更友好用雙粒度偏好學(xué)習(xí)來(lái)訓(xùn)練對(duì)話管理器能同時(shí)提升對(duì)話的效率和用戶體驗(yàn)。5.2 應(yīng)用于代碼生成智能體一個(gè)代碼生成智能體可能擁有這些“技能”分析需求、搜索文檔、編寫函數(shù)、運(yùn)行測(cè)試、調(diào)試錯(cuò)誤。雙粒度決策體現(xiàn)在技能粒度現(xiàn)在是該搜索文檔還是直接開始編寫原子動(dòng)作粒度在“編寫函數(shù)”這個(gè)技能內(nèi)是先寫接口定義還是先寫核心邏輯是先處理邊界條件還是先實(shí)現(xiàn)主流程通過(guò)學(xué)習(xí)程序員在這些層次上的偏好例如有經(jīng)驗(yàn)的程序員可能偏好先定義清晰的接口再搜索特定庫(kù)的用法可以訓(xùn)練出更符合開發(fā)者工作流的編碼助手。5.3 與工具學(xué)習(xí)Tool Learning的結(jié)合當(dāng)前大模型使用外部工具Tools的模式本質(zhì)上也屬于技能調(diào)用。雙粒度偏好學(xué)習(xí)可以顯著優(yōu)化這一過(guò)程。我們可以定義工具選擇粒度給定任務(wù)應(yīng)該使用哪個(gè)工具是Calculator還是Search工具參數(shù)化粒度給定工具應(yīng)該如何設(shè)置輸入?yún)?shù)給Search工具什么樣的查詢?cè)~現(xiàn)有的研究如ART, Toolformer主要關(guān)注如何讓模型學(xué)會(huì)使用工具而雙粒度偏好學(xué)習(xí)可以進(jìn)一步教模型如何精打細(xì)算地、有選擇地使用工具避免工具濫用這對(duì)于構(gòu)建低成本、高效率的生產(chǎn)級(jí)AI應(yīng)用至關(guān)重要。在我自己的項(xiàng)目實(shí)踐中引入類似雙粒度思考的優(yōu)化后一個(gè)用于內(nèi)部數(shù)據(jù)分析的智能體的平均工具調(diào)用次數(shù)下降了約35%而任務(wù)完成率保持不變。這直接轉(zhuǎn)化為了更快的響應(yīng)速度和更低的API開銷。最關(guān)鍵的不是讓智能體學(xué)會(huì)使用所有技能而是讓它學(xué)會(huì)在恰當(dāng)?shù)臅r(shí)機(jī)以恰當(dāng)?shù)姆绞绞褂米畋匾哪莻€(gè)技能。這種“選擇性”的智慧才是智能體真正走向?qū)嵱煤透咝У姆炙畮X。