AI時代新風口!吳恩達親授智能體四大設計模式

新智元報道

編輯:alan

【新智元導讀】吳恩達認爲,智能體的發展將會成爲AI時代重要的力量,甚至比基礎模型還要重要。工作之餘,「吳老師」連發多篇博客,向大家介紹了AI智能體的四大設計模式。

AI時代的風口在哪裡?

吳恩達認爲,AI Agent將在今年推動人工智能的大規模進步。

——甚至,有可能超過下一代基礎模型所帶來的影響。

他希望所有從事人工智能工作的人,都能關注AI智能體的發展。

Andrew Ng

大佬「退役」後,作爲專業的「教書先生」,仍然孜孜不倦,授業傳道解惑。

最近在工作之餘,吳恩達連續分享了很多關於智能體的見解,並定義了AI Agent的四大設計模式,

Reflection(反思)、Tool use(工具使用)、Planning(規劃)和Multi-agent collaboration(多智能體協同):

智能體工作流

我們大多數人使用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反思自己的輸出:

接下來,將之前生成的代碼和反饋放進提示的上下文,並要求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仍是一項不太成熟的技術,用戶很難提前預測它會做什麼,——不過我們可以期待技術的快速發展來解決這個問題。

這裡同樣推薦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