AI時代新風口!吳恩達親授智能體四大設計
【新智元導讀】吳恩達認為,智能體的發展將會成為AI時代重要的力量,甚至比基礎模型還要重要。工作之余,「吳老師」連發多篇博客,向大家介紹了AI智能體的四大設計模式。
AI時代的風口在哪裏?
吳恩達認為,AI Agent將在今年推動人工智能的大規模進步。
——甚至,有可能超過下一代基礎模型所帶來的影響。
他希望所有從事人工智能工作的人,都能關注 AI智能體的發展。
Andrew Ng
大佬「退役」後,作為專業的「教書先生」,仍然孜孜不倦,授業傳道解惑。
最近在工作之余,吳恩達連續分享了很多關於智能體的見解,並定義了AI Agent的四大設計模式,
Reflection(反思)、Tool use(工具使用)、Planning(規劃)和Multi-agent collaboration(多智能體協同):
* -反思:LLM檢查自己的工作,並提出改進的方法。
* -工具使用:LLM利用Web搜索、代碼執行或任何其他功能的工具,來幫助自己收集信息、采取行動或處理數據。
* -規劃:LLM提出並執行實現目標的多步驟計劃(比如一篇論文,首先寫大綱,然後搜索和研究各部分內容,再寫草稿)。
* -多智能體協作:多個AI agent協同工作,分工任務,討論和辯論想法,提出比單個智能體更好的解決方案。
智能體工作流
我們大多數人使用LLM通常是zero-shot模式,模型根據提示逐個輸出token,沒有返回修改的機會。
——這相當於要求人類從頭到尾一口氣寫完一篇文章,不允許回退,——盡管是個比較困難的要求,不過大模型們目前都做得非常出色。
但事實上,我們人類正常的工作流程一般是叠代式的。
比如對於一篇文章,可能需要:計劃一個大綱;通過網絡搜索來收集更多信息; 寫初稿; 通讀初稿,發現不合理的論點或無關的信息; 反復修改......
這種工作模式對於人類寫出好文章至關重要,——那麽對於AI來說,是不是也應如此?
前段時間,世界上第一個AI程序員Devin的演示,在社交媒體上引起了轟動。
吳恩達團隊於是研究了多個相關算法,在HumanEval編碼基準測試中的表現,如下圖所示:
在zero shot的情況下,GPT-3.5的正確率為48.1%,GPT-4的表現更好,達到67.0%。
然而,加入了叠代智能體工作流程之後,GPT-3.5的正確率直接飆到了95.1%,——Agent工作流效果顯著,而且GPT-3.5比GPT-4得到的提升更加可觀。
目前,各種開源智能體工具和相關研究的數量正在激增,擅於利用這些工具和經驗,將使你的LLM更加強大。
Reflection
反思,作為容易迅速實現的一種設計模式,已經帶來了令人驚訝的性能影響。
我們可能有過這樣的經歷:當LLM( ChatGPT/Claude/Gemini等)給出的結果不太令人滿意時,我們可以提供一些反饋,通常LLM再次輸出時,能夠給出更好的響應。
——如果這個反饋的過程留給LLM自己執行,是不是會更好?這就是反思(Reflection)。
以編碼任務為例,可以通過類似的提示,讓LLM反思自己的輸出:
這是用於任務 X 的代碼,仔細檢查代碼的正確性、風格和效率,並就如何改進它提出建設性的批評。
接下來,將之前生成的代碼和反饋放進提示的上下文,並要求LLM根據反饋重寫代碼。
當然,我們也可以利用一些評估LLM輸出質量的工具,使上面這個過程更進一步,
比如通過單元測試檢查代碼在測試用例上的結果,或者通過web搜索來比對輸出的正確性。
此外,也可以像上圖那樣,使用多智能體框架實現Reflection:一個負責生成輸出,另一個負責對輸出提出建議。
如果諸位對Reflection感興趣,這裏推薦下面幾篇文章,可以提供更多相關的知識:
論文地址:https://arxiv.org/pdf/2303.17651.pdf
論文地址:https://arxiv.org/pdf/2303.11366.pdf
論文地址:https://arxiv.org/pdf/2305.11738.pdf
Tool Use
工具使用,LLM可以調用給定的函數,來收集信息、采取行動或操作數據,——這是AI智能體工作流的關鍵設計模式。
最常見的例子就是LLM可以使用工具,執行Web搜索或執行代碼。事實上,一些面向消費者的大型公司已經采用了這些功能。
比如如果你問Copilot這樣的在線LLM:「最好的咖啡機是哪一款?」,它可能會決定進行網絡搜索,並下載一個或多個網頁以獲取上下文。
畢竟,僅依靠預訓練的Transformer來生成輸出答案是有局限性的,而提供Web搜索工具可以讓LLM做更多的事情。
LLM使用特殊的字符串,例如 {tool:web-search,query:coffee maker reviews} ,以請求調用搜索引擎。
後處理步驟會查找字符串,調用具有相關參數的Web搜索函數,並將結果附加到輸入上下文,傳遞回LLM。
再比如,如果你問,「如果我以12年復利7%,投資100美元,最後會獲得多少收益?」,
LLM可能會使用代碼執行工具,運行Python命令來計算:{tool:python-interpreter,code:100 *(1+0.07)**12}。
現在這個過程更近一步,我們可以搜索不同的來源(Web、Wikipedia、arXiv等),與各種生產力工具交互(發送電子郵件、讀/寫日歷條目等),並且我們希望LLM自動選擇正確的函數調用來完成工作。
此外,當有太多函數可供使用時,無法將所有函數都放入上下文中,這時可以使用啟發式方法,在當前處理步驟中選擇要包含在LLM上下文中的最相關子集。
事實上,當有太多的文本無法作為上下文包含,檢索增強生成(RAG)系統也是采用同樣的方法,選擇要包含的文本子集。
這裏同樣推薦幾篇相關文章:
論文地址:https://arxiv.org/pdf/2305.15334.pdf
論文地址:https://arxiv.org/pdf/2303.11381.pdf
論文地址:https://arxiv.org/pdf/2401.17464.pdf
Planning
規劃,使用LLM將目標任務分解為更小的子任務,然後自主決定執行的步驟。
例如,如果我們要求智能體對給定主題進行在線研究,LLM可以將其拆解為特定的子主題、綜合發現、編寫報告。
曾經,ChatGPT的發布讓很多人經歷了「ChatGPT時刻」,AI的能力大大超出了人們的預期。
——而類似的「AI Agent時刻」,也許很快就會到來。
吳恩達回憶了之前的一次現場展示,因為網速問題,Agent的Web搜索API返回了錯誤,——眼看就要被公開處刑,Agent居然轉到了維基百科的搜索工具,最終完成了任務(救大命了)。
吳恩達表示,看到一個Agent以出人意料的方式執行任務,並獲得成功,是一件美好的事情。
不過也有網友表示,大事不好啦,Agent失控啦!
現實中,有許多任務無法通過單個步驟或單個工具調用完成,但Agent可以決定要執行哪些步驟。
例如,要求智能體參照一張男孩的照片,畫一張相同姿勢的女孩的照片,則該任務可以分解為兩個步驟:(i)檢測男孩圖片中的姿勢,(ii)以檢測到的姿勢渲染女孩的圖片。
LLM可能會通過輸出類似 {tool:pose-detection,input:image.jpg,output:temp1 } {tool:pose-to-image,input:temp1,output:final.jpg} 這樣的字符串來指定計劃。
Planning是一種非常強大的能力,不過它也會導致難以預測的結果。
吳恩達表示Planning仍是一項不太成熟的技術,用戶很難提前預測它會做什麽,——不過我們可以期待技術的快速發展來解決這個問題。---[新智元報導*編輯:alan/來源:新智元]
這裏同樣推薦3篇相關的優秀工作:
論文地址:https://arxiv.org/pdf/2201.11903.pdf
論文地址:https://arxiv.org/pdf/2303.17580.pdf
論文地址:https://arxiv.org/pdf/2402.02716.pdf
參考資料:https://twitter.com/AndrewYNg/status/1779606380665803144