iT邦幫忙

2023 iThome 鐵人賽

DAY 26
0
AI & Data

AI 再次入門到進階系列 第 26

【Day26】 AutoGen / Retrieval Augmented Generation

  • 分享至 

  • xImage
  •  

AutoGen

這是一個微軟這幾天剛開發出來的開源LLM驅動的模型開發框架,類似 Agent,算是Langchain的競爭對手。

英文官網連結

AutoGen Doc

Yes

下面是官網的繁中翻譯,美語強的直接去官網看比較快。

AutoGen:啟用下一代大型語言模型應用程式

https://ithelp.ithome.com.tw/upload/images/20231001/20092056uyveglDA9z.png
圖 1. AutoGen 使用多代理對話啟用基於 LLM 的複雜工作流程。(左)AutoGen 代理是可自訂的,可以基於LLM、工具、人類,甚至是它們的組合。(右上)Agent可以透過對話來解決任務。(右下)該框架支援許多其他複雜的對話模式。

設計、實施和優化可以充分利用大型語言模型 (LLM) 潛力的工作流程需要付出大量的努力和專業知識。自動化這些工作流程具有巨大的價值。隨著開發人員開始創建日益複雜的基於 LLM 的應用程序,工作流程將不可避免地變得更加複雜。此類工作流程的潛在設計空間可能巨大且複雜,從而加大了編排具有強大性能的最佳工作流程的挑戰。

AutoGen 是一個用於簡化 LLM 工作流程的編排、最佳化和自動化的框架。它提供可自訂和可對話的代理,利用最先進的 LLM(如 GPT-4)的最強功能,同時透過與人員和工具整合以及透過自動聊天在多個Agent之間進行對話來解決其局限性。

使用 AutoGen,建構複雜的多代理對話系統可以歸結為:

定義一組具有專門功能和角色的Agent程式。
定義代理之間的交互行為,即當一個Agent收到另一個Agent的訊息時要回复什麼。

這兩個步驟都是直覺且模組化的,使得這些代理可重複使用和可組合。 例如,要建立一個基於程式碼的問答系統,可以設計Agent程式及其交互,如圖 2 所示。這樣的系統可以將供應鏈優化等應用程式中所需的手動交互數量從 3 倍減少到 10 倍)。 使用 AutoGen 可以將編碼工作量減少 4 倍以上。

https://ithelp.ithome.com.tw/upload/images/20231001/2009205600arYoOOR1.png
圖 2.供應鏈優化中基於程式碼的問答的範例工作流程。Commander 接收使用者問題並與 Writer 和 Safeguard 進行協調。Writer 編寫程式碼和解釋,Safeguard 確保安全,Commander 執行程式碼。如果出現問題,可以重複此過程直至解決。陰影圓圈表示可以重複多次的步驟。

有能力、可交談且可調整的Agent——整合 LLM、人員和工具

AutoGen Agent具有由LLM、人類、工具或這些元素的組合啟用的功能。例如:

https://ithelp.ithome.com.tw/upload/images/20231001/20092056jyP6XvjrUR.png
圖 3. AutoGen 的使用者代Agent式和助理Agent可用於建立 ChatGPT + 程式碼解釋器 + 插件的增強版本。助理Agent扮演像 Bing Chat 這樣的 AI 助手的角色。使用者Agent扮演使用者的角色,模擬使用者的程式碼執行等行為。AutoGen 可以自動執行兩個Agent之間的聊天,同時允許人工回饋或介入。使用者Agent無縫地與人類互動並在適當的時候使用工具。

Agent 以對話為中心的設計有許多好處,包括:

  • 自然地處理歧義、回饋、進展和協作。
  • 實現有效的編碼相關任務,例如使用工具來進行來回故障排除。
  • 允許用戶透過聊天中的Agent無縫選擇加入或選擇退出。
  • 透過多位特化的Agent的合作實現集體目標。

AutoGen 支援自動聊天和多樣化的通訊模式,可輕鬆編排複雜、動態的工作流程並進行多功能性實驗。圖 4 展示了一種新遊戲—對話式國際象棋,由 AutoGen 啟用。圖 5 說明 AutoGen 如何支援群組聊天使用另一個稱為「GroupChatManager」的特殊代理程式在多個代理程式之間進行通訊。

https://ithelp.ithome.com.tw/upload/images/20231001/20092056SieEmP4uom.png
圖 4. AutoGen 支援的新應用程式範例:對話式國際象棋(在新分頁中開啟)。它可以支援各種場景,因為每個玩家都可以是LLM的人工智慧、人類或兩者的混合體。它允許玩家創造性地表達自己的棋子,例如使用笑話、模因參考和角色扮演,使國際象棋遊戲對玩家和觀察者來說都更具娛樂性。

https://ithelp.ithome.com.tw/upload/images/20231001/20092056pnnJKQDtWW.png
圖 5. AutoGen 如何啟用動態群聊的概述解決任務:我們使用一個稱為管理器的特殊Agent,它重複以下三個步驟:選擇一個發言者(在本例中為鮑勃),要求發言者做出回應,並將所選發言者的消息廣播給所有其他Agent。

入門

AutoGen(預覽版)作為 Python 套件免費提供。要安裝它,請運行

pip install pyautogen

您只需幾行程式碼即可快速啟用強大的體驗:

import autogen
assistant = autogen.AssistantAgent("assistant")
user_proxy = autogen.UserProxyAgent("user_proxy")
user_proxy.initiate_chat(assistant, message="Show me the YTD gain of 10 largest technology companies as of today.")
# This triggers automated chat to solve the task

檢查各種任務的範例:https://microsoft.github.io/autogen/docs/Examples/AutoGen-AgentChat 。

下一步:

了解該研究:

AutoGen 是一個開源、社群驅動的項目,正在積極開發中(作為FLAML的衍生項目),一個用於自動化機器學習和調整的快速庫),它鼓勵各種背景的個人做出貢獻。許多微軟研究院的合作者都為這個計畫做出了巨大的貢獻,包括賓州州立大學和華盛頓大學等學術貢獻者,以及 Microsoft Fabric 和 ML.NET 等產品團隊。AutoGen 旨在為開發人員建立下一代應用程式提供有效且易於使用的框架,並且已經展示了建立創意應用程式的良好機會並提供了巨大的創新空間。


Retrieval Augmented Generation

Yes

下面是幾個可參考的colab example:

Generative QA with RAGenerator

Retrieval_Augmented_Generation_(for_AI_Chatbots).ipynb

Generative AI - Document Retrieval and Question Answering with LLMs

【10分鐘教你】如何使用Google PaLM2建構個人知識庫


上一篇
【Day25】LLM Agent 玩具專案(一)規劃
下一篇
【Day27】 LLM Agent 玩具專案(二)幾個簡單的 Example
系列文
AI 再次入門到進階30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言