SuperAPI AI 工具集

JARVIS

JARVIS(又称 HuggingGPT)是微软开源的一个研究项目,旨在将大型语言模型(LLM)与机器学习社区(Hugging Face)连接起来,协同完成复杂 AI 任务。它以 LLM 作为控制器,将用户请求分解为可执行任务,自动从 Hugging Face 选择专家模型并执行,最后整合预测结果生成回复。系统流程分为任务规划、模型选择、任务执行和响应生成四个阶段。项目提供 Web API、Gradio 演示、CLI 模式等多种使用方式,支持本地部署与 Hugging Face 推理端点混合模式,并发布了 EasyTool、TaskBench 等相关工具与基准。

访问官网

工具介绍

JARVIS(HuggingGPT)是微软发起的研究项目,使命是探索通用人工智能(AGI)并向社区提供前沿研究。项目代码托管于 GitHub(https://github.com/microsoft/JARVIS),论文地址为 https://arxiv.org/pdf/2303.17580.pdf。

用途 语言作为 LLM 连接众多 AI 模型的接口,用于解决复杂的 AI 任务。JARVIS 构建了一个协作系统,由 LLM 作为控制器,众多专家模型(来自 Hugging Face Hub)作为协作执行器。

主要能力 系统工作流包含四个阶段:

  1. 任务规划:使用 ChatGPT 分析用户请求,理解意图,并将其分解为可能可解决的任务。
  2. 模型选择:为解决规划的任务,ChatGPT 根据模型描述从 Hugging Face 选择专家模型。
  3. 任务执行:调用并执行每个选定的模型,将结果返回给 ChatGPT。
  4. 响应生成:最后使用 ChatGPT 整合所有模型的预测,生成响应。

项目更新

  • 2024.01.15:发布 Easytool,用于更简便的工具使用,代码和数据集见 EasyTool,论文见 EasyTool: Enhancing LLM-based Agents with Concise Tool Instruction。
  • 2023.11.30:发布 TaskBench,用于评估 LLM 的任务自动化能力,代码和数据集见 TaskBench,论文见 TaskBench: Benchmarking Large Language Models for Task Automation。
  • 2023.07.28:正在规划评估和项目重建,近期将发布新版本 Jarvis。
  • 2023.07.24:发布 Jarvis 的轻量 langchain 版本。
  • 2023.04.16:Jarvis 支持 Azure 平台上的 OpenAI 服务和 GPT-4 模型。
  • 2023.04.06:添加 Gradio 演示,并在服务器模式下为 /tasks 和 /results 构建 Web API。Gradio 演示托管于 Hugging Face Space(使用 inference_mode=hybrid 和 local_deployment=standard 构建)。Web API /tasks 和 /results 可访问第 1 阶段(任务规划)和第 1-3 阶段(模型选择及执行结果)的中间结果。
  • 2023.04.03:添加 CLI 模式,并提供配置本地端点规模的参数。无需本地部署模型即可体验轻量版 Jarvis,运行 python awesome_chat.py --config configs/config.lite.yaml 即可。
  • 2023.04.01:更新了构建代码版本。

系统要求 针对 configs/config.default.yaml:

  • Ubuntu 16.04 LTS
  • RAM > 12GB(最小)、16GB(标准)、80GB(完整)
  • 磁盘 > 284GB:damo-vilab/text-to-video-ms-1.7b 需 42GB,ControlNet 需 126GB,stable-diffusion-v1-5 需 66GB,其他需 50GB 针对 configs/config.lite.yaml: 此配置不需要在本地下载和部署任何专家模型,但意味着 Jarvis 仅限于在 HuggingFace Inference Endpoints 上稳定运行的模型。

使用方式 首先将 server/configs/config.default.yaml 中的 openai.key 和 huggingface.token 替换为个人的 OpenAI Key 和 Hugging Face Token,或分别放入环境变量 OPENAI_API_KEY 和 HUGGINGFACE_ACCESS_TOKEN。然后运行相应命令。 可通过 Web API 访问 Jarvis 服务:

  • /hugginggpt --method POST,访问完整服务。
  • /tasks --method POST,访问第 1 阶段的中间结果。
  • /results --method POST,访问第 1-3 阶段的中间结果。 提供用户友好的网页。在服务器模式下启动 awesome_chat.py 后,可在浏览器中运行命令与 Jarvis 通信。需先安装 nodejs 和 npm。若在另一台机器上运行 Web 客户端,需将 web/src/config/index.ts 的 HUGGINGGPT_BASE_URL 设置为 http://{LAN_IP_of_the_server}:{port}/。若想使用视频生成功能,需手动编译支持 H.264 的 ffmpeg。双击设置图标可切换到 ChatGPT。 Gradio 演示托管于 Hugging Face Space,也可在本地运行命令启动演示。 CLI 模式:可更轻松地运行 Jarvis,并提供 CLI 模式示例。

配置参数 服务器端配置文件为 server/configs/config.default.yaml,部分参数如下:

  • model:LLM,目前支持 text-davinci-003。正在整合更多开源 LLM。
  • inference_mode:推理端点模式。local:仅使用本地推理端点;huggingface:仅使用 Hugging Face 推理端点(无需本地推理端点);hybrid:同时使用本地和 huggingface。
  • local_deployment:本地部署模型规模,在 local 或 hybrid 推理模式下有效。minimal(RAM>12GB,仅 ControlNet)、standard(RAM>16GB,ControlNet + 标准流水线)、full(RAM>42GB,所有注册模型)。 在个人笔记本电脑上,推荐配置为 inference_mode: hybrid 和 local_deployment: minimal。但此设置下可用模型可能因远程 Hugging Face Inference Endpoints 的不稳定性而受限。

NVIDIA Jetson 嵌入式设备支持 包含一个 Dockerfile,为 NVIDIA Jetson 嵌入式设备提供实验性支持。该镜像提供加速的 ffmpeg、pytorch、torchaudio 和 torchvision 依赖。构建 Docker 镜像前需确保默认 Docker 运行时设置为 'nvidia'。预构建镜像位于 https://hub.docker.com/r/toolboc/nv-jarvis。 由于内存要求,JARVIS 需在 Jetson AGX Orin 系列设备上运行(最好为 64G 板载内存设备),配置选项设置为:inference_mode: local、local_deployment: standard。建议通过从主机到容器的卷挂载提供模型和配置。可取消 Dockerfile 中 # Download local models 部分的注释以构建包含模型的容器。

引用 若在方法中发现本工作有用,可按如下引用论文:JARVIS, a system to connect LLMs with ML community. Paper: https://arxiv.org/pdf/2303.17580.pdf

限制 关于收费、价格、平台、效果或使用步骤等缺失事实暂未提供。