Self Discover框架,萬萬想不到AI Agent還能這樣推理

0 評論 1225 瀏覽 0 收藏 10 分鐘

前面我們分享了Basic Reflection這種偏重反思的AI Agent設計模式,在面對復雜的問題時,就需要更強大的Self-discover設計模式來進行。這篇文章,作者的分享一定不能錯過。

在上篇文章《AI大模型實戰篇:Basic Reflection,AI Agent的左右互搏之術》中,風叔結合原理和具體源代碼,詳細介紹了第一種偏重反思的AI Agent設計模式,即Basic Reflection。

Basic Reflection 的思路非常樸素,使用成本較低,但是在實際應用中,Basic Reflection面對一些比較復雜的問題時,需要Generator具備更強大的推理能力。

在這篇文章中,沿著“更強大的推理能力”這條優化路線,風叔將介紹Self-discover設計模式。這個設計模式非常有意思,相信看到最后,大家會發現令人驚奇的結果。

一、Self Discover的概念

Self-Discover 是由Google的研究人員提出的一種AI Agent框架,可實現自動發現和構建推理結構,以解決各種推理任務。這種方法的核心是一個自發現過程,它允許大型語言模型在沒有明確標簽的情況下,自主地從多個原子推理模塊(如批判性思維和逐步思考)中選擇,并將其組合成一個推理結構。

Self-Discover框架包含兩個主要階段,自發現特定任務的推理結構、應用推理結構解決問題。如下圖所示:

階段一:自發現特定任務的推理結構

主要包含三個主要動作:選擇(SELECT)、適應(ADAPT)和實施(IMPLEMENT)。

選擇:在這個階段,模型從一組原子推理模塊(例如“批判性思維”和“逐步思考”)中選擇對于解決特定任務有用的模塊。模型通過一個元提示來引導選擇過程,這個元提示結合了任務示例和原子模塊描述。選擇過程的目標是確定哪些推理模塊對于解決任務是有助的。

適應:一旦選定了相關的推理模塊,下一步是調整這些模塊的描述使其更適合當前任務。這個過程將一般性的推理模塊描述,轉化為更具體的任務相關描述。例如對于算術問題,“分解問題”的模塊可能被調整為“按順序計算每個算術操作”。同樣,這個過程使用元提示和模型來生成適應任務的推理模塊描述。

實施:在適應了推理模塊之后,Self-Discover框架將這些適應后的推理模塊描述轉化為一個結構化的可執行計劃。這個計劃以鍵值對的形式呈現,類似于JSON,以便于模型理解和執行。這個過程不僅包括元提示,還包括一個人類編寫的推理結構示例,幫助模型更好地將自然語言轉化為結構化的推理計劃。

階段二:應用推理結構

完成階段一之后,模型將擁有一個專門為當前任務定制的推理結構。在解決問題的實例時,模型只需遵循這個結構,逐步填充JSON中的值,直到得出最終答案。

二、Self Discover的實現過程

下面,風叔通過實際的源碼,詳細介紹Self Discover模式的實現方法,具體的源代碼地址可以在文章結尾處獲取。在手機端閱讀源碼的體驗不太好,建議大家在PC端打開。

第一步 定義Select、Adapt和Implement

第一步要做的事情,是前面所講的階段一,定義好select、adapt和implement這三個過程。

首先,定義select。給Select的prompt是,“對于給定的任務,找出最相關的reasoning module,即確定通過什么方法來解決任務”

然后,定義adapt。給Adapt的prompt是,“在不需要給出完整解決方案的情況下,讓大模型調整上一步得到的reasoning module,以更好地適應任務?!?/p>

接下來,定義implement。給Implement的prompt是,“在不需要給出完整解決方案的情況下,利用上一步得到的優化后的reasoning module,創建一個可執行的推理結構。”

第二步 執行推理結構

第二步要做的事情,就是前面所講的階段二,應用這個推理結構獲得最終答案

第三步 提出問題,開始推理

第三步就是將這個過程進行推理實現,如下面的代碼所示,這一步非常關鍵,大家可以逐條仔細看:

這段代碼非常簡單。首先,我們提出了39種reasoning modules,即推理的具體方法,大家也可以自己提煉出一些推理方法,通過prompt告知給Agent。

然后,我們提出一個具體的推理任務:“Lisa 有 10 個蘋果。她給了朋友 3 個蘋果,然后從商店買了 5 個蘋果。Lisa 現在有多少個蘋果?”

然后大模型會自動選出最合適的推理方法。實踐中發現,大模型選擇了方法9和10。

接下來,針對目標任務,大模型自動優化推理方法的描述。

然后,大模型自動給出了具體的推理結構。

至此,Self Discover的原理和流程就介紹完了。

風叔在嘗試這個case之前,完全沒想到大模型還能在給定的推理方法中,自主選擇最合適特定的問題的推理方法,并完成推理結構和推理語言的輸出,這項能力確實是讓風叔眼前一亮。通過這種推理方式,未來Agent就能解決更加多樣化的問題,因為任何類型的問題,總能有其對應的推理和思考方式。

大家可以關注公眾號【風叔云】,回復關鍵詞【SD源碼】,獲取self discover設計模式的完整源代碼,然后自己嘗試一些更復雜的提問,看看大模型的回答效果。

總結

整個Self-Discover的關鍵在于,它允許模型在沒有人類干預的情況下,自主地生成適合特定任務的推理結構。這樣不僅提高了模型的推理能力,而且提高了推理過程的可解釋性。通過這種方式,模型能夠更有效地處理復雜和多樣化的任務。

本篇文章提到的例子,雖然結構很清晰,但不足之處在于沒有使用Tools。對于需要使用搜索工具、數學工具等外部工具的場景,我們也可以讓大模型在adapt環節給出適合解決目標任務的外部工具,然后在后續過程中執行。

在下一篇文章中,風叔將介紹另一種優化Basic Reflection的方式,增加強化學習,Reflexion。

本文由人人都是產品經理作者【風叔】,微信公眾號:【風叔云】,原創/授權 發布于人人都是產品經理,未經許可,禁止轉載。

題圖來自Unsplash,基于 CC0 協議。

更多精彩內容,請關注人人都是產品經理微信公眾號或下載App
評論
評論請登錄
  1. 目前還沒評論,等你發揮!