讓AI代理工作流程為您的生產力注入新能量
就在我們開始驚嘆ChatGPT般的大型語言模型(Large Language Model, LLM)之際,AI代理工作流程的概念正悄然改變著我們與這些系統的互動方式。透過反覆迭代和分拆任務,AI代理能夠充分發揮LLM的潛力,為數種應用帶來前所未有的生產力提升。
在本文中,我們將透過安德魯·吳(Andrew Ng)的解說,深入探討AI代理工作流程的四種主要設計模式。這位備受推崇的人工智慧權威不僅參與了諸如Google Brain等劃時代項目,更預見了AI代理將成為下一個重要趨勢。讓我們一探AI代理工作流程能為您的生產力帶來何種驚人成就!
Youtube影片來源
反思:LLM自我審視與修正
設計模式 | 說明 | 優點 |
---|---|---|
反思 | 讓LLM檢查自己先前的輸出(如程式碼),提出Critique並自行修正 | 提升輸出品質、提高生產力、不需額外系統 |
第一種設計模式"反思"展現了LLM的一種獨特能力 - 自我審視與自我修正。舉例來說,您可以提示LLM寫一段程式碼,隨後再將這段程式碼原模原樣回饋給LLM,並提示它"檢查程式碼是否正確、有效率且良好編碼"。
驚人的是,相同的LLM有能力檢視自己的作品、發現錯誤(如程式Bug)並提出具體的修正建議。經過這一輪自我審視及修正,LLM便能產出品質更佳的程式碼V2版本。
這種"讓LLM自我審查"的做法不但提升了最終產出的品質,更能為您的工作流程注入效率,無需透過其他系統介面即可完成迭代優化,是一種極其簡單卻行之有效的方法。
工具運用:從分析到行動的無縫整合
設計模式 | 說明 | 優點 |
---|---|---|
工具運用 | 讓LLM存取並使用各種工具進行分析、web搜尋、採取行動等 | 大幅擴展LLM的實用能力範圍 |
現代LLM不只可以產生文字,更能呼叫並運用各種外部工具,大幅提升了LLM的實用能力範圍。
您是否曾想要LLM自動為您尋找網路上的最佳咖啡機評論、分析比較並導出結論?又或者期望LLM能夠manipulate圖像、合成語音等?有了工具運用這個設計模式,這些願景通通成為可能。
只要將適當的工具(如網頁搜索、物件偵測等)整合進LLM的運作流程中,LLM除了能產生對應的輸出文字外,還能直接呼叫工具進行網路搜索、影像辨識或是語音合成。這讓LLM能跨足分析、決策、採取行動等更廣泛的層面,成為一站式解決方案。
透過工具的整合,LLM的能力範疇遠非僅限於自然語言的理解與生成,更擴展到了資訊蒐集、問題分析以及實際行動等層次,為您的工作流程帶來無可限量的幫助。
規劃:LLM的自主思考與執行
設計模式 | 說明 | 優點 |
---|---|---|
規劃 | 讓LLM決定任務步驟、模組串接順序等實現目標的規劃 | 減輕人工規劃負擔、執行更複雜流程 |
既然LLM已經能運用各種外部工具,那麼是否能讓LLM自己規劃如何利用這些工具、按何種順序執行模組以達成特定目標呢?這就是所謂的"規劃"設計模式。
舉個例子,如果您希望LLM能為您合成一張按指定姿勢擺盪的人物照片,它需要先確定第一步是檢測參考圖像中的人物姿勢、第二步是從工具庫中選取適當的姿態模型進行人物pose轉移、第三步是文字到圖像的生成、最後才是語音合成步驟。
訓練有素的LLM具備規劃這類自主思考的能力,可以得出恰當的工作流程順序,並在失敗時自動規避或重新規劃。實際上,透過代理式工作流程,LLM已經可以自動執行相當複雜的規劃任務,範疇遠超過簡單的文字生成。
只要賦予LLM正確的目標導向,它們能自行作出詳細的任務拆解與模組整合,大幅減輕了人工規劃的負擔,讓您能專注於需求定義與成果檢視,真正實現"要事交代、過程不問"的人機協作模式。
多代理協作:專家組織啟動高效能分工
設計模式 | 說明 | 優點 |
---|---|---|
多代理協作 | 讓不同角色的LLM代理互相協作、分工以完成複雜任務 | 發揮各專長、組織高效能團隊、適用高複雜度工作 |
LLM的能力已經遠超單一實體,透過正確的設計,我們還能將多個LLM組織協作,發揮最大效能。這就是"多代理協作"的設計模式。
最直覺的例子,便是將不同的LLM提示扮演不同的角色,如程式開發團隊中的CEO、設計師、程式員、測試人員等。這些"代理"將根據自身角色展開持續對話,協力完成一項複雜的任務。
舉例來說,如果你要求這個多代理系統為你開發一款遊戲,CEO代理可能會先定義產品方向;設計師則負責概念與介面;程式員開始實際撰寫遊戲程式碼;測試人員隨後對開發中的遊戲進行測試回饋,促使程式員進行修正。這些不同專長的代理通力協作,終能把複雜的遊戲開發任務循序漸進地完成。
甚至您還可以設計兩個完全相同的基礎LLM模型,但透過不同的提示,使其一個扮演正面代理,另一個則扮演反面檢視者的角色,兩相辯證之下就能產出更高質量的成果。
這種多代理協作模式其實復刻了人類團隊的優勢 - 透過專家分工、互補合作,任務難度可以大幅提高。對於複雜的工程項目而言,單一LLM是否足以勝任恐怕是個疑問,但是透過AI代理的安排編制,複雜程度的上限將能被極大拓展。
正是這四種AI代理工作流程設計模式,讓LLM不再只是個簡單的文字生成器,而是能夠像人類專家團隊一樣透過分工合作、互相審視、工具整合及任務規劃來完成複雜的工作流程。這無疑將為各行業的生產力帶來革命性的提升。
Youtube 逐字稿
Title: “(3) 什麼是AI代理工作流程的下一步?ft. 安德魯·吳(AI Fund) - YouTube”
大家都認識吳恩達,他是斯坦福大學著名的電腦科學教授,在利用GPU發展神經網路初期就處於領先地位。當然,他也是Coursera的創辦人及創始人,開設了像是deeplearning.ai這樣的熱門課程。他也是谷歌大腦(Google Brain)的創辦人和早期主要負責人。
在我把發言權交給吳恩達之前,有一件事我一直想問你,我想對全體觀眾來說這也是一個相關的問題:10年前,在cs229的習題二中,你給了我一個B,我重新查看後,想知道你看出我做錯了什麼嗎?
無論如何,感謝漢森邀請,我很期待與各位分享我所看到代理AI(AI agents)的激動人心趨勢,我認為這是每個從事AI的人都應該關注的。我也很高興看到所有其他Onsak的精彩報告。
大家好,談談代理人,目前我們大多數人使用語言模型都是採用非代理式工作流程,你輸入提示後它就生成回應,有點像你要求某人寫一篇文章,然後說"請坐下來直接從頭到尾打字完成,不要用復原鍵。“儘管如此,LLM們做得出乎意料地好。
相較之下,使用代理式工作流程的運作會是這樣:讓AI編寫文章大綱,需要做任何網路研究嗎?如果需要,就讓我們先做那部分,然後寫出第一稿,再讀自己寫的草稿,想一想哪些部分需要修改,然後修改草稿,如此循環往復。這種工作流程的形式是相當反覆迭代的,你可能要讓LLM思考一下,然後修改該文章,再思考更多內容,反覆循環數次。
很多人都沒有意識到,這種方式確實會帶來驚人的好成果。我自己在使用這些代理工作流程時也感到非常驚訝,它們竟然能如此出色運作。我的團隊分析了一些數據,利用OpenAI幾年前發布的稱為HumanEval的編碼基準進行評測。這項基準中包括了像這樣:給定一個非空整數列表,傳回所有在偶數位置的元素之和的編碼問題,所以答案的程式碼片段就會是這樣。
現在大多數人會使用零 shot提示,也就是告訴AI寫出程式碼就直接運行第一遍,哪有人真的這樣寫程式碼?我是絕對做不到。結果顯示,如果使用GPT-3.5的零shot提示編碼,它只能得到48%的正確率,GPT-4就好多了,有77%正確率。但如果在GPT-3.5周圍包裝一個代理式工作流程,它的表現實際上比GPT-4還要好。如果在GPT-4周圍包裝同樣的工作流程,它自然也能做得很好。你會發現,即使只是GPT-3.5也能透過代理式工作流程超越GPT-4的表現。我認為這對於我們如何建構應用程式來說具有重大影響。
代理式工作流程在業界備受討論,許多顧問報告都在談論代理式是AI的未來之類的話題,但我想更具體地與大家分享一些代理式推理設計模式。這個領域非常雜亂無秩序,有大量研究和開源工作正在進行,但我試著更清楚地將正在發生的事情歸納為幾個類別。
反思式工具是我認為我們很多人應該直接使用的,它真的很有用,我想這一點尚未被廣泛認知,但它實際上效果相當不錯。我認為這是相當成熟可靠的技術,當我使用時幾乎總能讓它們正常運作。規劃和多代理協作則屬於新興的設計模式,有時我使用這些工具時會被它們的出色表現震撼,但目前來說我還無法確定能一直輕鬆地讓它們正常工作。
讓我在幾張投影片上逐一講解這四種設計模式,如果你們回去要求工程師使用這些,我認為你們可以很快獲得生產力的提升。
首先是反思工具,這是一個例子:假設你要求一個系統"請為給定的任務寫一段程式碼”,然後我們讓一個程式代理 (只是一個你可以提示來寫程式碼的LLM) 來寫一些像 def do_task(): … 這樣的程式碼。
一個自我反思的例子是,你把剛剛代理生成的程式碼原封不動地丟回去,並提示說:“這是為了某項任務而設計的程式碼,請仔細檢查正確性、效率和良好的設計架構,並提出Critiques和建議修改。“結果是,同一個你用來生成程式碼的LLM也許能夠發現這樣的問題:“第5行存在bug,可以通過…進行修正。“如果你接受它的反饋並重新提示它,它可能會提出一個比第一版更好的程式碼V2版本,雖然不能100%保證,但足以讓你在許多應用中嘗試使用這種方法。
順帶一提,如果你讓它運行單元測試,如果測試失敗,就詢問為什麼失敗,然後根據對話給出修改建議,來提出V3版本。
對於想要進一步瞭解這些技術的人,我對此非常興奈。對於上述四個主題,我在底部都列出了一些推薦閱讀資料,希望能提供更多參考。我剛剛描述的是一個單一的程式碼代理進行自我對話,但這個想法的一種自然發展就是,不是使用單一代理,而是使用兩個代理,一個是程式碼專家代理,另一個是程式碼評審專家代理,兩者可以是基於相同的LLM模型,只是被提示以不同的方式運作。這種工作流程實際上非常容易實現,我認為對於許多工作流程,它都可以顯著提升LLM的性能,是一種非常通用的技術。
第二種設計模式是使用多個工具(tools)。我們已經看到基於LLM的系統能夠使用各種工具,左邊是來自Copilot的截圖,右邊是我從GPT-4中摘錄的內容,但無論如何,現在的LLM如果被要求搜索某些問題的最佳咖啡機,它會生成代碼並運行代碼。
事實證明,有許多不同的工具被用於分析、收集信息、採取行動和個人生產力等領域。有趣的是,最早將工具與LLM整合的工作來自於電腦視覺領域,因為在大型語言模型出現之前,LLM完全看不到圖像,所以唯一的辦法就是讓LLM生成一個可以操作圖像的函數,比如生成圖像或進行物體檢測之類的。如果你看一下相關文獻,你會發現很多早期的工具整合工作似乎都源自視覺領域,因為LLM在GPT-4和LavA等模型出現之前對圖像都是無能為力的。
這就是關於工具的介紹,它擴展了LLM的能力範圍。然後是規劃,對於那些還沒有使用過規劃算法的人來說,我感覺很多人都在談論chatGPT帶來的"wow"時刻,但我認為如果你還沒使用過規劃,當你看到LLM代理完成某些任務時,你很可能會感覺"靠,我從來沒想過AI能做到這個程度”。我曾在現場演示中遇到某些失敗情況,而AI代理會自主繞過那些失敗點,我真的經歷過好幾次"我不敢相信我的AI系統剛才自主做了這些事情"的驚奇時刻。
這是一個我從HuggingFace的GPT論文中改編的例子:給定一張一個女孩在看書而一個男孩也在圖片中出現的照片,你的任務是製作一個新圖像,將男孩的姿勢複製到一個女孩的形象上。今天我們已經有這樣的AI代理,它可以先決定首先需要確定男孩的姿勢,然後找到合適的在HuggingFace上的模型來提取姿勢,接著需要找到一個能夠合成一個按照指令擺姿勢的女孩圖像的姿態模型,然後使用圖像到文字的模型,最終使用文字到語音的模型。
我們現在確實有這樣的代理,雖然我不敢說它們運作可靠,它們有些做不來、做不好,但是當它們真的能正常工作時,表現是相當驚人的。有了代理循環,有時候你還能從早期的失敗中恢復過來。對我來說,現在在某些研究工作中,如果不想自己耗費大量時間上網搜索,我會把任務丟給研究代理,過幾分鐘再回來看它為我準備了什么,有時候它的表現不錯,有時又失敗了,但無論如何,這已經成為我個人工作流程的一部分。
最後一個設計模式是多代理協作,這是一個有趣的現象,它的表現遠比你預期的要好。左側是一張來自名為ChatDev的開源論文的截圖,相信大家都看過最近關於DeepMind演示Devon AI的炫酷社交媒體公告,而ChatDev恰恰就是Devon的開源版本,可以在我的筆記本電腦上運行。ChatDev的做法是一種多代理系統,你可以提示一個LLM有時扮演一家軟件公司的CEO,有時扮演設計師、產品經理或測試人員,然後這群受提示各自扮演不同角色的"代理"會展開長時間的對話協作。比如如果你告訴它"請開發一款遊戲”,它們會花幾分鐘時間寫程式碼、測試、迭代,最終生成一個驚人地複雜的程式,雖然它並不是總能成功,有時我使用它時就失敗了,但有時又出人意料地成功,總的來說這項技術正在不斷改進。
事實證明,讓不同的代理(比如chatGPT和Gemini)進行多代理辯論,也能獲得更好的性能。所以讓多個模擬代理一起協作已經成為了一種強大的設計模式。
總結一下,這些就是我所看到的設計模式,我認為如果我們在工作中使用這些模式,許多人都可以相當快地獲得生產力的提升。我認為代理式推理的設計模式將會變得非常重要,因為我預計,透過代理式工作流程,AI能夠完成的任務種類在今年將會出現劇增。
有一點人們可能需要一些時間去適應,那就是當我們提示LLM時,我們期望立即得到回應。事實上,十年前當我在谷歌參與討論所謂的"大盒子搜索”(輸入長提示後才顯示結果)時,其中一個原因導致我無法成功推動這個想法,就是因為當我們進行網路搜索時,我們希望能在0.5秒內得到回應,這就是人性。我們習慣了立即獲得反饋。
但對於許多代理式工作流程而言,我們需要學會委派任務給AI代理,並耐心地等待數分鐘甚至數小時才能獲得回應,就像我看過一些新手經理人委派工作後5分鐘就檢查進度,這是低效率的做法。我認為對待一些AI代理時,我們也需要避免這種低效率做法。
我剛才提到過一個損失函數,快速生成 token 也是非常重要的,因為在這些代理式工作流程中,我們需要不斷地迭代,所以LLM需要一直生成token供自己閱讀,能夠比任何人類閱讀速度更快地生成token實在是太棒了。我認為即使是從略低質量的LLM生成更多tokens的速度很快,也可能比從更好但更慢的LLM生成tokens獲得更好的結果,就像我在第一張投影片上展示的,用GPT-3加上代理式架構的結果好於GPT-4。這種觀點可能有些爭議性,因為它可能讓你圍繞這個循環進行更多迭代。
我非常期待云端5號、CLR4號、GPT-5號、Gemini 2.0版以及其他人正在構建的這些美妙模型。我有一種感覺,如果你只是期待在GPT-5上零 shot運行你的項目,你可能會發現透過在較早期模型上使用代理式推理,能更接近那個水準的表現。無論如何,我認為這是一個重要的趨勢,老實說,通向AGI的道路更像是一個漫長的旅程而非一個終點,但我認為這類代理式工作流程或許能幫助我們在這條漫長道路上邁出一小步。
重要英文詞彙:
agentic workflows: 代理工作流程AI agents: AI代理zero shot prompting: 零 shot 提示multi-agent systems: 多代理系統planning algorithms: 規劃算法web search: 網路搜索productivity boost: 生產力提升token generation: 生成tokenAGI: 人工通用智能 (Artificial General Intelligence)