机器之心专栏

机器之心编辑部

在当今的大模型时代,围绕大模型的自主智能体被认为是通向通用人工智能(AGI)最有希望的道路。随着 OpenAI 提出 plugin 增强大模型等能力,社区涌现出了一批 Agent 系统,如 LangChain,transformers agent, AutoGPT 等,能够通过自主规划和指令来完成任务。魔搭社区推出了大小模型协同解决方案 ModelScope-Agent,一个以开源大模型为核心的 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) 等等。