
exo 如何从 HuggingFace 加载自定义模型/models/add、trust_remote_code 安全开关与删除模型卡【免费下载链接】exoRun frontier AI locally.项目地址: https://gitcode.com/GitHub_Trending/exo8/exoexo 自带一批内置模型卡如果你要跑的模型不在这个列表里可以通过 API 的/models/add端点从 HuggingFace hub 拉取模型信息生成一张本地保存的自定义模型卡custom model card。本文按搜索模型 → 添加模型卡 → 理解trust_remote_code安全默认值 → 验证结果 → 删除模型卡的顺序走通 exo 加载自定义模型的完整路径。前提exo 已经在运行——无论是uv run exo从源码启动还是安装 macOS appAPI 与 dashboard 都跑在http://localhost:52415见 README.md。先找到要添加的模型 IDGET /models/search添加模型需要 HuggingFace 模型 ID。用/models/search在 HuggingFace Hub 上搜索query为可选的搜索词limit限制返回条数默认 20见 docs/api.mdcurl http://localhost:52415/models/search?queryllamalimit10该端点会优先在mlx-community作者名下搜索如果搜不到结果再回落到整个 HuggingFacedocs/api.md实现见 src/exo/api/main.py。返回的是模型 ID、作者、下载量等信息从中挑一个适合 exoMLX 后端的模型 ID后面/models/add会用到。添加模型卡POST /models/add把上一步选好的模型 ID 放进请求体curl -X POST http://localhost:52415/models/add \ -H Content-Type: application/json \ -d { model_id: mlx-community/my-custom-model }model_id替换成你的 HuggingFace 模型 ID。响应是这条模型对应的模型描述符其中is_custom标记为truedocs/api.md响应结构见 src/exo/api/main.py。这个调用背后做的事情exo 从 HuggingFace 拉取该模型的config.json和 safetensors 索引据此计算层数、hidden size、存储大小等生成一张模型卡并保存到本地自定义模型卡目录README 原文Models are fetched from HuggingFace and stored locally as custom model cards实现见 src/exo/shared/models/model_cards.py。如果拉取失败API 返回 400detail形如Failed to fetch model: ...src/exo/api/main.py。trust_remote_code 安全开关默认关闭安全关键的一点配置中需要trust_remote_code的自定义模型必须被显式启用默认值是 falseREADME.md、docs/api.md。具体行为通过/models/add保存下来的模型卡始终写入trust_remote_code falsesrc/exo/shared/models/model_cards.py。仓库里的安全测试脚本 tmp/test_trust_remote_code_attack.sh 就是靠grep trust_remote_code false检查卡片文件来验证这一点的。模型卡是 TOML 文件trust_remote_code是其中的可选字段CONTRIBUTING.md。如果某个模型确实需要远程代码执行你可以在保存下来的卡片文件中显式把它设为true文档明确提醒只有信任该模型的远程代码时才这样做。卡片文件保存在 exo 数据目录下的custom_model_cards/中文件名为规范化后的model_id加.toml后缀src/exo/shared/models/model_cards.py。两处文档给出的目录位置略有差异按平台对照README.md 中 Linux 遵循 XDG 规范为~/.local/share/exo/custom_model_cards/CONTRIBUTING.md 的模型卡章节写的是~/.exo/custom_model_cards/。卡片 TOML 的结构示例来自 CONTRIBUTING.md仅展示字段形态实际值由 exo 生成model_id mlx-community/Llama-3.2-1B-Instruct-4bit n_layers 16 hidden_size 2048 supports_tensor true tasks [TextGeneration] family llama quantization 4bit base_model Llama 3.2 1B capabilities [text] [storage_size] in_bytes 729808896验证添加结果两个层面的检查API 列表curl http://localhost:52415/models应能看到新模型模型列表响应带is_custom字段用于区分自定义 HuggingFace 模型docs/api.md。用curl http://localhost:52415/models?statusdownloaded可以只列出已下载的模型README.md。磁盘上的卡片文件到上文所说的custom_model_cards/目录确认对应.toml文件已生成并检查其中的trust_remote_code值仓库安全测试的做法是grep trust_remote_code false custom_model_cards目录/规范化模型ID.toml...处替换为你实际的卡片文件路径命令形式参考 tmp/test_trust_remote_code_attack.sh。如果该模型你手动开过远程代码这里应为你设置的实际值。删除模型卡DELETE /models/custom/{model_id}不再需要某个自定义模型时删除它而不是删除已下载的权重文件curl -X DELETE http://localhost:52415/models/custom/mlx-community/my-custom-model路径参数model_id是完整的 HuggingFace 模型 IDdocs/api.md路由定义见 src/exo/api/main.py。响应是包含被删除模型 ID 的确认 JSONdocs/api.md。两点限制该端点只作用于用户添加的自定义卡片目标不存在或不是 custom 卡片时返回 404src/exo/api/main.py。内置模型卡不受此端点影响。删除会同步到集群中的其他节点src/exo/api/main.py。限制与边界模型信息来自 HuggingFace hub以EXO_OFFLINEtrue启动时 exo 只使用本地模型环境变量表见 README.md。已下载权重的存放目录由EXO_DEFAULT_MODELS_DIR、EXO_MODELS_DIRS、EXO_MODELS_READ_ONLY_DIRS等环境变量控制放在只读目录如 NFS 挂载中的模型不能删除README.md。模型卡就绪后下一步就是按 README.md 的 API 流程创建实例先GET /instance/previews?model_id...预览放置方案再POST /instance创建实例并用GET /instance/await等待其 ready 后发送推理请求。【免费下载链接】exoRun frontier AI locally.项目地址: https://gitcode.com/GitHub_Trending/exo8/exo创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考