一声棒喝,本不立文字
偏要著録,已是二义

together-ai

部署并推理 HuggingFace 上的任意模型

Deploy and inference any model from HuggingFace

二〇二六年五月九日 · 英文原文

Netflix 在 Hugging Face 发布 void-model 后,作者使用 Goose CLI agent 和 Together dedicated containers skill,通过一句 prompt 生成部署代码与 container 配置,在 Together Dedicated Container Inference 上运行该 model,并用 Together CLI 发起异步 inference,返回 request_id 后轮询并下载输出视频。

开发者的工作方式正在发生真实的变化。agent 打开了过去难以触及的工作,并不是因为这些工作在技术上不可能完成,而是因为它们需要大多数人并不具备的专门知识。Containerization、inference server 配置、针对特定 model 的环境设置:这些任务过去通常要求很深的专业能力,或者在真正开始之前先花几个小时自学。agent 提供了一种优雅的方式来弥合这些前置知识缺口。你描述你想要什么,agent 补齐其中的知识空白。

这就是解锁点。不是速度。_是可达性。_‍

Netflix 发布新 model 的那一天

Netflix 最近在 Hugging Face 上发布了 void-model。它发布当天,我的直觉和以往一样:我想试试这个。但想试一个新 model,和真正把它_跑起来_是两回事。把它放进可用环境、处理 inference server 设置、弄清 container 配置、把所有东西正确串起来:通常正是这些环节,会在“这个看起来不错”和“好了,我真的用上了”之间引入一两天的延迟。

这一次,这个延迟基本为零。

我使用 Goose 这个 CLI agent runner,并结合 Together 的 dedicated containers skill,在一次 session 中就从“Netflix 刚发布了一个 model”走到了“我已经有了一个运行中的 container”。agent 生成了在 Together 的 Dedicated Container Inference (DCI) 基础设施上部署 void-model 所需的全部代码,基本上是在发布当天完成的。

输出在这里:github.com/blainekasten/together-void-model-container

我具体做了什么

整个设置只用了三步。

步骤 1:安装 Together dedicated containers skill。

npx skills add togethercomputer/skills

图片 1

这会拉取 together-dedicated-containers skill,它为 Goose 提供了使用 Together 基础设施所需的专门知识:如何配置 inference server、container spec 应该是什么样子、如何针对给定 model 把所有内容串起来。

步骤 2:启动一个 Goose session,并运行一个 prompt。

I want to deploy this model on togethers dedicated containers https://huggingface.co/netflix/void-model

图片 2

就这样。一句话。

步骤 3:坐下来,看它工作。

之后,agent 从 Hugging Face 拉取 model 详情,找出适合该 model architecture 的 inference server 配置,生成 container config 文件,并产出一套完整、可运行的设置;整个过程中,我不需要查任何资料,也不需要引导它完成每一个单独步骤。

结果是:blainekasten/together-void-model-container, 一个干净、可工作的 repo,任何人都可以用它在 Together 基础设施上运行 void-model。

步骤 4:使用你的 model!

agent 部署你的 application 后,你就可以开始对它运行 inference。Together CLI 提供了便于测试 inference 的命令。

tg beta jig submit --watch --payload '{
    "video_url": "https://github.com/Netflix/void-model/raw/refs/heads/main/sample/lime/input_video.mp4",
    "quadmask_url": "https://github.com/Netflix/void-model/raw/refs/heads/main/sample/lime/quadmask_0.mp4",
    "prompt": "Empty park bench with fallen leaves on the ground",
    "use_pass2": false
  }'

这个 model 可以从视频中移除对象,以及它们在场景中引发的所有交互——不只是阴影、反射这类次级效果,还包括当某个人被移除后物体掉落这类物理交互。

我们对这个 model 的 inference 调用是异步的。因此,这个请求的响应会返回一个包含标识符的 payload,我们可以用它来轮询。响应如下:

{
  "model": "void-byoc",
  "request_id": "019dc0f3-3c73-7a3f-b4b6-87ad06091180",
  "status": "running",
  "claimed_at": "2026-04-24T19:24:19.447457Z",
  "created_at": "2026-04-24T19:24:19.444567Z",
  "done_at": null,
  "info": null,
  "inputs": {
    "prompt": "Empty park bench with fallen leaves on the ground",
    "quadmask_url": "https://github.com/Netflix/void-model/raw/refs/heads/main/sample/lime/quadmask_0.mp4",
    "use_pass2": false,
    "video_url": "https://github.com/Netflix/void-model/raw/refs/heads/main/sample/lime/input_video.mp4"
  },
  "outputs": null,
  "priority": 1,
  "retries": null,
  "warnings": null
}

当 inference 完成后,outputs 会包含托管视频的 URL。我们可以使用 cURL 和 Together API key 下载它:

curl -L -O \
  https://api.together.ai/v1/storage/019dc0f3-3c73-7a3f-b4b6-87ad06091180-tmpddmhtvar.mp4 \
  --header "Authorization: Bearer $TOGETHER_API_KEY"

注意:需要使用 -L 来跟随 storage url 中的 http redirect,-O 会将输出写入本地文件。

为什么选择 Together Dedicated Container Inference

这个故事之所以成立,是因为 Together 的 Dedicated Container Inference (DCI) 确实很适合运行这类 model,这一点值得解释。

DCI 为你提供一个私有的、由 GPU 支撑的环境,用来运行你选择的 model,并由 Together 完全托管。你不需要争抢共享资源,不需要配置自己的 cluster,也不会被锁定在一个固定的可用 model 菜单里。你带来 model;Together 处理基础设施。

对于想要快速推进的团队来说,这很重要。当 Netflix、研究实验室或 open-source community 发布一个新 model 时,你几乎可以立刻让它运行在 production-grade 环境中。不需要自己启动 GPU VM,不需要和 inference server dependencies 纠缠,也不需要等待某个 managed endpoint 增加对它的支持。DCI 的设计目标就是灵活:只要 model 存在,你就可以部署它。

它的成本模型也让实验变得容易。你为实际使用付费,运行在属于你的 container 上,同时不需要承担管理底层 compute 的开销。这样的设置会让你更愿意对测试新 model 说“可以”,而不是把它归档到“等我有时间再说”。

如果你对 Together 的 DCI 感兴趣,可以联系我们完成设置。

译自 together-ai · 录于 二〇二六年五月九日