Skip to main content
你得到一个 Model Deployment:一个应用流量可以调用的稳定地址,提供当前被升级上去的那个 revision。 多数人是在控制台的部署页上创建它。这里放 API,是因为 deployment 恰恰是最常想写进脚本里的那个东西。

Deployment 不是 Playground Session

模型从哪来

model_source.kind 是以下之一: model 不带版本,正是让 tp model promote 成为改变在线内容唯一一步的原因。见 模型注册表 两者在进来时都会被钉住。artifact 来源会记下它取了哪个导出 step,而不带版本的 model 来源会把 生产解析一次并存下拿到的号。一个重启之后加载不同权重的 revision 不是 revision,而每次启动都重新 跟随一个会动的指针正是那样发生的。

服务配置

tensor_parallel_size × pipeline_parallel_size × data_parallel_size 必须等于 gpus。不等于的话, 容器要么起不来,要么静悄悄只用了分配给它的一部分卡 —— 后者更糟,因为看不出哪里不对,而配额是按 全部收的。 schema 没建模的旋钮用 extra_args,它在平台自己的参数之后原样传给引擎;env 设引擎进程的环境 —— VLLM_*NCCL_*HF_HOME。平台必须说对的参数,比如 --port--model,是保留的,会被 拒绝。 凭据不属于 env。私有模型来源用一个受管的 Model Credential,它在读取时从不回显。

proxied 还是 direct

serve_mode 决定控制台是否在数据通路上。 direct 的 deployment 什么都不采集,所以之后没有 Reflow buffer 可挖。 为延迟选它,但要知道这一点。

哪个 Fleet 承载它

fleet_id 由你选,平台从不替你挑。deployment 是长期对象,它的地址比这个决定活得更久,而各个 Fleet 在平台无法排序的维度上不同:机器归哪个部门、哪些数据可以碰它们。

调用它

令牌只返回一次。之后应用流量用 OpenAI 兼容的端点:
一个 Deployment Token 只授权访问一个 deployment,可以单独吊销,与任何人的登录会话无关。吊销用 DELETE /api/model-deployments/<id>/tokens/<token_id>

换掉它在提供的东西

一个 revision 是模型来源与服务配置合在一起的不可变快照。升级把端点切到一个已经就绪的 revision 上,所以那个地址从不指向还在启动的东西。allow_downtime: true 跳过等待,用于卡数不足以 同时容纳两个 revision 的 deployment。 suspend 释放服务容量,保留身份、revision、地址和令牌。它不是删除。

确认成功

status 显示就绪,且 current_revision.internal_endpoint 已填。控制台的部署页显示同样的信息, 另外还有引擎进程的 logsmetrics desired_state 是你要求的,status 是观察到的。一个 revision 启动期间它们会不同,持续不同的话 原因在 last_error 里。

下一步

模型注册表 · Reflow · 部署页 · 推理 API