JARVIS / HuggingGPT
用 ChatGPT 编排 Hugging Face 专家模型,完成多步骤 AI 任务。
按维度查看评分与理由
证据显示:仓库未提供权限管理、用户确认、数据流透明性、敏感数据处理、依赖安全、外部影响、回滚或来源归属的明确机制。README仅要求用户提供OpenAI Key和Hugging Face Token,但未说明其使用范围或保护措施。因此,所有信任标准均得0分。
证据显示:README和配置说明在多个地方保持一致,但未提供错误处理或失败消息的详细说明。依赖项(如PyTorch、Hugging Face模型)的可用性未明确保证,但提供了下载脚本。因此,自一致性得1分,依赖可用性得1分,失败消息得1分。
证据显示:README明确描述了多种使用场景(服务器、Web、Gradio、CLI)和配置选项(inference_mode、local_deployment),并提供了系统要求。能力边界通过配置说明有所体现,但触发精度(如任务规划的具体规则)未详细说明。因此,受众和场景得2分,能力边界得2分,触发精度得1分,环境适配得2分。
证据显示:README提供了清晰的安装步骤、配置说明和示例,但缺少FAQ和已知限制的明确说明。许可证为MIT,但版本变更日志未提供。维护责任通过Microsoft的SECURITY.md有所体现。因此,信息架构得2分,安装说明得2分,命名稳定性得1分,示例和FAQ得2分,已知限制得1分,许可证得2分,版本变更日志得1分,维护责任得2分。
证据显示:README提供了详细的输出示例(如CLI对话),表明输出可用性较好。边际价值通过连接LLM和Hugging Face模型体现,但成本效益未明确讨论(如计算资源需求)。因此,输出可用性得2分,边际价值得2分,成本效益得1分。
证据显示:README引用了论文和arXiv链接,但未提供详细的验证方法。跨来源佐证有限,事实与推断的分离不明确。因此,声明可追溯性得2分,跨来源佐证得1分,事实推断分离得1分。
- 该仓库要求用户提供OpenAI Key和Hugging Face Token,但未说明其使用范围或保护措施,存在敏感信息泄露风险。
- 依赖项(如PyTorch、Hugging Face模型)的可用性未明确保证,且未提供错误处理或失败消息的详细说明。
- 未提供版本变更日志和已知限制,可能影响用户对项目稳定性的判断。
这个 Agent 能做什么,适合哪些场景?
JARVIS(论文中称 HuggingGPT)是一个把大语言模型作为控制器、把 Hugging Face Hub 专家模型作为执行器的协作系统。它将用户请求拆解为任务,选择模型并执行,再由 ChatGPT 汇总模型预测生成回复。服务器由 `models_server.py` 提供本地或混合推理端点,`awesome_chat.py` 提供服务端和命令行交互;另有 Web 客户端与 Gradio 演示。服务端提供 `/hugginggpt`、`/tasks` 和 `/results` POST 接口,其中后两者可获取任务规划及模型选择、执行的中间结果。采用本地或混合部署时需要下载专家模型,默认配置的硬件与磁盘需求很高;lite 配置不下载本地模型,但只能使用稳定运行的 Hugging Face Inference Endpoints。
系统接收对话消息或包含本地文件路径的任务请求。ChatGPT 在“Task Planning”阶段分析意图并生成可解决的子任务;在“Model Selection”阶段按模型描述从 Hugging Face 选择专家模型;“Task Execution”调用选中的模型;最后“Response Generation”整合预测结果。启动 models_server.py 后,POST /tasks 返回第一阶段的任务列表,POST /results 返回截至模型选择和执行的中间结果,POST /hugginggpt 访问完整服务。它可通过 awesome_chat.py --mode cli 运行交互式命令行,也可在 server 模式下配合 web 或 run_gradio_demo.py 使用。
- 需要将图像姿态与另一张图像内容组合生成新图像的用户,可让系统规划
openpose-control、image-to-text和openpose-text-to-image等任务。 - 处理一组本地图像并需要统计目标数量的研究者,可通过图像描述和目标检测模型获得汇总回答。
- 需要从文本中抽取命名实体的用户,可让系统选择 token-classification 模型并返回处理后的结果。
- 希望以 HTTP 接入多阶段任务编排的应用开发者,可调用
/tasks查看规划,或调用/hugginggpt获取完整服务结果。 - 拥有 NVIDIA Jetson AGX Orin 设备并可接受本地推理资源需求的团队,可使用仓库提供的 Jetson Dockerfile 部署模型服务器、聊天服务和 Web 应用。
这个 Agent 有哪些优点和局限?
- 明确实现了“规划—模型选择—执行—回复生成”的四阶段流程,并能通过
/tasks和/results暴露中间结果。 - 同时提供 HTTP API、交互式 CLI、Web 客户端和 Gradio 演示,适合不同接入方式。
- 支持
local、huggingface和hybrid三种推理端点模式,并提供minimal、standard、full的本地部署规模选项。 - 仓库记录了 Azure 平台上的 OpenAI 服务与 GPT-4 支持,并附带 NVIDIA Jetson 的实验性 Docker 部署路径。
- 核心控制器依赖 ChatGPT/OpenAI 凭据,专家执行器依赖 Hugging Face Token、Hub 模型或 Inference Endpoints。
- 默认本地部署成本高:文档列出至少 24GB 显存、超过 284GB 磁盘,且完整配置涉及多个大型模型下载。
- lite 配置虽不需本地模型,却受限于稳定可用的 Hugging Face Inference Endpoints;文档也提示混合模式的远程端点可能不稳定。
- 配置中当前列出的 LLM 为
text-davinci-003,文档仅说明正在整合更多开源 LLM,未给出其可用配置。
如何安装或部署这个 Agent?
先在 server/configs/config.default.yaml 中填入个人 OpenAI Key 和 Hugging Face Token,或设置环境变量 OPENAI_API_KEY、HUGGINGFACE_ACCESS_TOKEN。服务端安装步骤为:cd server;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。如使用 local 或 hybrid 推理模式,进入 models 后执行 bash download.sh,并确保已安装 git-lfs。默认配置要求 Ubuntu 16.04 LTS、至少 24GB 显存、超过 12GB 内存和超过 284GB 磁盘;若只使用 configs/config.lite.yaml,则不需要下载本地专家模型。
如何使用这个 Agent?
在 server 中先运行 python models_server.py --config configs/config.default.yaml(local 或 hybrid 模式需要),再运行 python awesome_chat.py --config configs/config.default.yaml --mode server。随后可向 http://localhost:8004/tasks 发出 POST 请求,JSON 体使用 messages 数组,例如包含 {"role":"user","content":"based on pose of /examples/d.jpg and content of /examples/e.jpg, please show me a new image"}。完整服务使用 /hugginggpt,任务与执行中间结果使用 /tasks 和 /results。命令行模式可执行 python awesome_chat.py --config configs/config.default.yaml --mode cli;Web 客户端则在 web 目录运行 npm install 和 npm run dev。
常见问题
是否必须部署本地模型?
configs/config.lite.yaml 不要求下载和本地部署专家模型,但只能使用稳定运行的 Hugging Face Inference Endpoints。local 与 hybrid 模式则需要运行模型服务器并下载模型。需要哪些凭据?
server/configs/config.default.yaml,或分别设置为 OPENAI_API_KEY 与 HUGGINGFACE_ACCESS_TOKEN。能否查看系统如何拆解任务?
POST /tasks 提供第一阶段任务规划结果;POST /results 提供截至模型选择和执行的中间结果。可以在 Jetson 上运行吗?
Dockerfile.jetson。文档建议 Jetson AGX Orin 系列,优选 64GB 板载内存,并设置 inference_mode: local 与 local_deployment: standard。