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) 等等。