JARVIS 完全解析:微软开源的通用 AI 协作系统

项目介绍:当 LLM 学会调用工具

2023 年,微软团队发表了 HuggingGPT 论文,提出了一种全新的 AI 协作范式:让一个大语言模型(如 ChatGPT)作为“大脑”,通过任务规划、模型选择、执行调度,将用户请求分解并分发给 HuggingFace 上的数百万个专家模型,最后整合结果返回给用户。这一思想迅速引发关注,而其开源实现正是 JARVIS 项目。

JARVIS 的目标是探索人工通用智能(AGI),为社区提供一个可扩展的、基于 LLM 的多模型协作系统。它不再是单一模型单打独斗,而是像人类团队一样,由“项目经理”LLM 统筹,调用最合适的“专家”模型完成复杂任务——无论是图像生成、视频编辑、语音识别,还是跨模态推理,JARVIS 都能通过自然语言指令轻松调度。

图片

核心架构:四步协作流程

JARVIS 的工作流程清晰分为四个阶段:

  1. 任务规划:LLM 分析用户请求,将其拆解为一系列可执行的子任务,并规划依赖关系。

  2. 模型选择:根据任务描述,LLM 在 HuggingFace Hub 上检索匹配的专家模型(如 Stable Diffusion、CLIP、Whisper 等),并挑选最合适的。

  3. 任务执行:依次调用所选模型(本地或云端)执行任务,收集中间结果。

  4. 响应生成:LLM 整合所有执行结果,生成对用户的最终回答。

这种架构让 JARVIS 能够处理极其复杂的跨模态任务,例如“基于这张图片的姿势和那张图片的内容,生成一幅新图像”——系统会依次调用姿态检测、图像描述、文生图等多个模型协作完成。

图片

快速开始:5 分钟体验 JARVIS

环境准备

# 克隆仓库(需科学访问)
git clone https://github.com/microsoft/JARVIS.git
cd JARVIS/server

# 创建 conda 环境
conda create -n jarvis python=3.8
conda activate jarvis
conda install pytorch torchvision torchaudio pytorch-cuda=11.7 -c pytorch -c nvidia
pip install -r requirements.txt

配置 API 密钥

编辑 configs/config.default.yaml,填入你的 OpenAI Key 和 Hugging Face Token,或通过环境变量设置:

export OPENAI_API_KEY=your_key
export HUGGINGFACE_ACCESS_TOKEN=your_token

启动服务

# 下载模型(如需本地部署,约需 284GB 磁盘空间)
cd models
bash download.sh

# 启动模型服务器
cd ..
python models_server.py --config configs/config.default.yaml

# 启动主服务(使用 text-davinci-003)
python awesome_chat.py --config configs/config.default.yaml --mode server

通过 Web 界面交互

cd web
npm install
npm run dev

访问 http://localhost:3000,即可在浏览器中与 JARVIS 对话。

CLI 模式快速测试

cd server
python awesome_chat.py --config configs/config.default.yaml --mode cli

输入你的请求,例如“请描述这张图片的内容”,JARVIS 会自动调度模型并返回结果。

配置选项:灵活适应不同硬件

JARVIS 提供了多种配置模式,以适应从个人笔记本到企业服务器的不同场景:

参数

选项

说明

inference_mode local

 / huggingface / hybrid

模型执行方式:本地、云端 HuggingFace Endpoints、或混合

local_deployment minimal

 / standard / full

本地部署规模,决定下载多少模型(从仅 ControlNet 到全部)

例如,在内存有限的笔记本上,可以设置 inference_mode: hybrid 和 local_deployment: minimal,这样大部分模型通过云端 API 调用,仅少量必要模型本地运行。

应用示例:复杂指令轻松应对

示例 1:跨模态生成

用户:基于 /examples/d.jpg 的姿态和 /examples/e.jpg 的内容,生成一幅新图像。
JARVIS 过程

  1. 调用 openpose-control 提取姿态图。

  2. 调用 image-to-text 生成内容描述。

  3. 调用 openpose-text-to-image 融合生成最终图像。

示例 2:多图像分析

用户:统计三张图片中斑马的数量。
JARVIS:依次对每张图调用图像描述和目标检测模型,汇总结果后回答“共有 4 只斑马”。

示例 3:实体识别与问答

用户:识别句子中的命名实体。
JARVIS:调用 BERT 实体识别模型,提取出“Iron Man”、“Stan Lee”等实体。

优势对比:JARVIS 与其他智能体框架

维度

JARVIS (HuggingGPT)

AutoGPT

LangChain Agent

ChatGPT Plugins

模型库规模 数百万 HuggingFace 模型

有限的自定义工具

有限的内置工具

白名单插件

任务规划

基于 LLM 的动态拆解

基于目标循环

基于 ReAct 提示

基于指令

跨模态能力

原生支持图像、音频、视频等

文本为主

需额外集成

部分支持

部署方式

自托管,支持本地/云端混合

自托管

自托管

云端

扩展性

高(新模型自动发现)

中(需编写工具)

中(需自定义工具)

低(需插件审核)

核心优势

  • 模型即插即用:无需预先集成,LLM 根据任务描述自动从 HuggingFace 选择模型。

  • 跨模态统一调度:一套系统处理文本、图像、视频、音频等任意组合的任务。

  • 透明可控:用户可通过 API 查看中间任务规划和模型选择结果,便于调试和优化。

总结:通往 AGI 的协作之路

JARVIS 不仅是一个开源项目,更是一种全新的 AI 应用范式。它证明了:通过将大语言模型的推理能力与海量专家模型的感知生成能力相结合,我们可以构建出远超单一模型能力的通用问题解决系统。

随着 EasyTool、TaskBench 等配套工具的陆续开源,JARVIS 正在不断完善其工具使用能力和任务自动化评估体系。无论你是研究者想探索 AGI 新路径,还是开发者希望快速搭建多模态应用,JARVIS 都值得深入探索。

现在就访问 GitHub 仓库,让 ChatGPT 成为你的“总指挥官”,调动整个 HuggingFace 宇宙为你服务!


项目地址:https://github.com/microsoft/JARVIS

Logo

AtomGit AI 社区提供模型库、数据集、Agent、Token等资源

更多推荐