Stanford CS329A 自我改進 AI Agent 第 7 部分:自我改進與深度研究 Agent
TL;DR
透過搜尋來改進 AI agent 的方式有兩種:(1) 生成大量程式碼樣本,並進行過濾與分群以挑選多樣化的候選方案,這能隨著樣本預算增加而提高解決率,但受限於選擇瓶頸;(2) 讓大型推理模型在表達不確定性時觸發搜尋查詢,接著對檢索到的文件進行推理(Search‑O1),這在 GPQA 和多跳問題回答(multi‑hop question answering)上優於標準的檢索增強生成(RAG)與 Agentic RAG。
AlphaCode2 證明了更強大的基礎模型(Gemini Pro)加上學習型評分模型(learned scoring model),能將所需的樣本預算從 100 萬個減少到約 100 個,同時將解決率從 25% 提高到 43%,並在程式競賽中達到第 85 百分位數的排名。
AlphaCode: 採樣、過濾與分群
AlphaCode 透過在 GitHub 和 CodeContests 數據上預訓練一個遮罩語言模型(masked language model),然後針對每個問題生成 100 萬個多樣化的候選程式碼(一半 Python,一半 C++)來解決程式競賽問題。它會過濾掉未通過範例測試的候選方案,將其進行分群以保留語法不同但語義等價的解決方案,最後將精選的子集提交至 Codeforces 平台。
在 10 場各約有 5,000 名參與者的競賽中,AlphaCode 的平均排名為 54.3%(假設每個問題提交 10 次),其表現與過去六個月內 28% 的競爭對手相當。解決率隨著樣本數大致呈對數線性增長,但當僅允許提交 10 次時,選擇與分群階段會成為瓶頸,將準確度限制在約 30%,而無限制嘗試時則可超過 40%。
AlphaCode2: 微調 Gemini Pro 與學習型評分
AlphaCode2 將預訓練模型替換為微調後的 Gemini Pro,使用一系列微調變體來增加多樣性,並引入了能預測程式碼樣本正確性的學習型評分模型(reward model)。數據混合包含開源的 CodeContests V2 集合,以及用於訓練評分模型的高品質精選集合。
在相同的 100 萬個樣本預算下,AlphaCode2 的解決率達到 43%,幾乎是 AlphaCode 25% 的兩倍。更重要的是,AlphaCode2 僅需每個問題約 100 個樣本就能達到 AlphaCode 的解決率,這顯示了更強大的基礎模型與更好的評分機制能減少所需的採樣預算。就百分位數而言,AlphaCode2 在 Codeforces 的專家級與大師候選人等級的人類選手中排名約第 85 百分位數,而 AlphaCode 約在第 46 百分位數(若考慮前兩名解決方案時則為 99.5%)。
Search‑O1: 當模型表達不確定性時觸發搜尋
Search‑O1 在大型推理模型之上構建深度研究 Agent。模型不再進行單一的檢索步驟,而是在其推理鏈中包含不確定性指標(例如:「perhaps」、「alternatively」、「wait」)時,便會生成搜尋查詢。接著,系統會分析檢索到的文件,僅提取相關的片段(chunks),並將其重新插入提示詞(prompt)中,讓模型能夠繼續進行連貫的推理。這種「迭代‑檢索‑推理」的循環減少了不確定性的傳播,並避免了無關文本對模型的干擾。
在 GPQA(物理、化學、生物)和多跳問答基準測試(如 HotpotQA、2Wiki、MusiQue 和 Bamboogle)上,Search‑O1 的表現優於標準的檢索增強生成(RAG)與 Agentic RAG,其準確度在物理與化學領域可與人類專家媲美,在生物領域則接近專家水平。
Search‑R1 vs. Search‑O1: 提示詞工程 vs. 強化學習
本講義對比了 Search‑O1 的基於提示詞(prompting-based)方法(模型透過顯式的不確定性標記來學習何時搜尋)與 Search‑R1 的基於強化學習(reinforcement-learning-based)方法,後者透過強化學習循環來教導模型決定何時發出搜尋查詢。Search‑R1 並未詳細討論,但被視為自動學習搜尋行為的一個互補方向。
Key Takeaways
- 擴展採樣生成可以提高解決率,但當提交預算有限時,選擇與分群階段會成為瓶頸。
- 更強大的基礎模型(Gemini Pro)結合學習型評分模型,可帶來巨大增益:AlphaCode2 僅需 AlphaCode 約 1% 的樣本預算即可達到其性能,並幾乎將絕對解決率翻倍。
- 在推理密集型任務中,當模型信號顯示不確定性時觸發搜尋查詢,並對檢索到的文件進行推理(Search‑O1),比傳統的檢索增強生成(RAG)更有效,特別是在處理多跳問題時。
- AlphaCode/AlphaCode2 與 Search‑O1 展示了實現自我改進 Agent 的兩條互補路徑:(1) 透過採樣與學習型評分在輸出空間進行更好的搜尋,(n1) 透過不確定性驅動的搜尋與外部知識進行更好的互動。