有了ModelScope-Agent,小白也能打造專屬智能體,附保姆級教程
ModelScope-Agent 提出了一個通用的、可定制的 Agent 框架,方便用戶打造屬于自己的智能體。它基于開源的大語言模型 (LLMs) 作為核心,提供了一個用戶友好的系統庫, 具有以下特點:
- 可定制且功能全面的框架:提供可定制的引擎設計,涵蓋了數據收集、工具檢索、工具注冊、存儲管理、定制模型訓練和實際應用等功能,可用于快速實現實際場景中的應用。
- 開源 LLMs 作為核心組件:支持在 ModelScope 社區的多個開源 LLMs 上進行模型訓練,并開源了配套的中英文工具指令數據集 MSAgent-Bench,用于增強開源大模型作為 Agent 中樞的規劃調度能力。
- 多樣化且全面的 API,支持 API 檢索:以統一的方式實現與模型 API 和常見的功能 API 進行無縫集成,默認提供開源 API 檢索方案。
- 論文鏈接:https://arxiv.org/abs/2309.00986
- 代碼鏈接:https://github.com/modelscope/modelscope-agent
- ModelScope 體驗地址:https://modelscope.cn/studios/damo/ModelScopeGPT/summary
能力展示
下面先展示一些基于 ModelScope-Agent 實現的 ModelScopeGPT (魔搭 GPT)的能力:
1. 單步工具調用,Agent 需要選擇正確的工具并生成請求,并根據執行結果返回給用戶。
2. 多步工具調用,Agent 需要多個工具的規劃、調度、執行和回復。
3. 多輪對話中工具調用,Agent 需要從歷史對話中挖掘需要傳給工具的參數。
4.基于檢索工具的社區知識問答。
框架介紹
ModelScope-Agent 框架是如何設計的
ModelScope-Agent 是一個通用的、可定制的 Agent 框架,用于實際應用程序開發,其基于開源的大語言模型 (LLMs) 作為核心,包含記憶控制、工具使用等模塊。開源 LLM 主要負責任務規劃、調度以及回復生成;記憶控制模塊,主要包含知識檢索以及 prompt (提示詞)管理;工具使用模塊,包含工具庫以及工具檢索和工具可定制化。ModelScope-Agent 系統架構如下:
ModelScope-Agent 框架是如何執行的
ModelScope-Agent 的工作原理是,把目標拆分成更小的任務,然后一項一項完成。比如,當用戶請求「寫一個簡短故事,并用女聲朗讀,同時配個視頻」時,ModelScope-Agent 會展示整個任務規劃過程,先通過工具檢索檢索相關的語音合成工具,然后由開源 LLM 進行規劃調度, 首先生成一段故事,然后調用對應語音生成模型,生成語音并用女聲念出,展示給用戶,最后再調用視頻生成模型,針對生成的故事內容生成一段視頻;這里全程不需要用戶配置當前請求可能需要調用到的工具,極大提升了使用便捷性。
開源大模型訓練框架:新的訓練方法、數據和模型開源
除了 ModelScope-Agent 框架之外,研究團隊還提出了新的工具指令微調訓練方法:Weighted LM,通過對工具指令調用部分 token 進行 loss 加權,提升開源大模型工具指令調用能力。
研究團隊還開源了一個包含60w具備多輪多步工具指令調用能力的高質量中英數據集MSAgent-Bench,基于該數據集新的訓練方法,研究團隊在 Qwen-7B 基礎上優化訓練了一個 MSAgent-Qwen-7B 模型,相關數據集和模型都已開源。
- MSAgent-Bench:https://modelscope.cn/datasets/damo/MSAgent-Bench/summary
- MSAgent-Qwen-7B:https://modelscope.cn/models/damo/MSAgent-Qwen-7B/summary
已集成的工具列表
目前 ModelScope-Agent 已經默認接入了自然語言處理、語音、視覺、多模態等眾多 AI 模型,還默認集成了知識檢索、API 檢索等開源方案。
ModelScope-Agent 實踐
ModelScope-Agent github 還提供了保姆級實踐 demo 頁,讓小白新手也能搭建屬于自己的智能體。
下載 demo notebook:https://github.com/modelscope/modelscope-agent/blob/master/demo/demo_qwen_agent.ipynb
1、首先拉取 ModelScope-Agent 代碼并安裝相關依賴
2、配置 config 文件,ModelScope token 和構建 API 工具檢索引擎
3、中樞大模型啟動
4、Agent 構建和使用,依賴之前構建好的大模型,工具 list,工具檢索和記憶模塊
注冊新工具實踐
1、拉取 ModelScope-Agent 代碼后,進入 modelscope_agent/tools 里,通過代碼層面新增工具 custom_tool.py 文件,配置 API 需要的:description,name 和 parameters;同時增加調用方式,可以選用 local_call 和 remote_call 兩種
2、配置環境和大模型部署參考上個章節的 2、3
3、將注冊的新工具構建 list,并且增加到 Agent 構建過程
4、agen.run () 輸入 query,測試工具可以正常調用對應 API
5、agent 會自動調用對應的 API,并返回執行結果給大模型,大模型返回回復
One More Thing
開發者可以參考上述教程很容易搭建屬于自己的智能體,ModelScope-Agent 依托魔搭社區,未來也會適配更多新增的開源大模型,推出更多基于 ModelScope-Agent 開發的應用,如客戶服務 Agent、個人助理 Agent、story Agent、Motion Agent、multi-Agent(多模態 Agent) 等等。