Hugging Face 于 2026-06-26 宣布可在 HF Jobs 上一条命令启动 vLLM 推理服务器(来源:Hugging Face Blog)。具体来说,hf jobs run 后面跟容器镜像和启动命令,暴露 8000 端口就能得到一个 OpenAI 兼容的端点,按秒计费。如果你只需要跑临时测试、做 eval、跑 batch generation 或接 Pi 这类 coding agent,Jobs 比 Inference Endpoints 启动更快也更便宜;如果需要长期稳定的生产端点、scale-to-zero 和细粒度的访问控制,选 Inference Endpoints。
前提
- Hugging Face 账号,已登录 CLI:
hf auth login huggingface_hub >= 1.20.0:pip install -U "huggingface_hub>=1.20.0"- 可用付费方式或正余额(Jobs 按硬件使用分钟计费)
来源:HF 官方文章,2026-06-26。
启动
以 Qwen/Qwen3-4B 为例,在 A10G 上起一个 2 小时自动超时的 server:
hf jobs run --flavor a10g-large --expose 8000 --timeout 2h \
vllm/vllm-openai:latest \
vllm serve Qwen/Qwen3-4B --host 0.0.0.0 --port 8000
启动成功后返回 job URL 和暴露的端口 URL,格式为:
https://<job_id>--8000.hf.jobs/v1
一两分钟后日志显示 Application startup complete,server 即就绪。
使用
curl 调用
curl https://<job_id>--8000.hf.jobs/v1/chat/completions \
-H "Authorization: Bearer $(hf auth token)" \
-H "Content-Type: application/json" \
-d '{
"model": "Qwen/Qwen3-4B",
"messages": [{"role": "user", "content": "Hello!"}],
"chat_template_kwargs": {"enable_thinking": false}
}'
返回 OpenAI 格式的 JSON 响应。
Python SDK
from huggingface_hub import get_token
from openai import OpenAI
client = OpenAI(
base_url="https://<job_id>--8000.hf.jobs/v1",
api_key=get_token(),
)
resp = client.chat.completions.create(
model="Qwen/Qwen3-4B",
messages=[{"role": "user", "content": "Hello!"}],
extra_body={"chat_template_kwargs": {"enable_thinking": False}},
)
print(resp.choices[0].message.content)
模型列表检查
curl https://<job_id>--8000.hf.jobs/v1/models \
-H "Authorization: Bearer $(hf auth token)"
端点安全说明
暴露的端口 URL 不是公开端点。每个请求必须携带有 job 命名空间 read 权限的 HF token(来源:HF 官方文章,2026-06-26)。需要更细粒度访问控制或公开访问时,应该在前面加一层 gateway,或改用 Inference Endpoints。
停止
按秒计费,做完就停避免浪费:
hf jobs cancel <job_id>
--timeout 是安全网,但人工取消更省费用。A10G large 规格约 $1.50/小时。
高级用法
用 Gradio 做聊天 UI
HF 文章提供了一个完整的 Gradio 示例:启动 job 后,本地跑一段 Python 脚本(用 OpenAI client 加 chat template kwargs 处理 reasoning),本地开 http://127.0.0.1:7860 即获得带推理面板的聊天界面(来源:HF 官方文章,2026-06-26)。
SSH 进入容器调试
启动时加 --ssh 参数,然后使用 hf jobs ssh <job_id> 进入容器内执行 nvidia-smi、监控进程或直接排查启动失败。需要本地 SSH 公钥已在 huggingface.co/settings/keys 注册(来源:HF 官方文章,2026-06-26)。
hf jobs run --flavor a10g-large --expose 8000 --timeout 2h --ssh \
vllm/vllm-openai:latest \
vllm serve Qwen/Qwen3-4B --host 0.0.0.0 --port 8000
hf jobs ssh <job_id>
作为 Pi coding agent 的后端
将启动命令加上 --enable-auto-tool-choice --tool-call-parser hermes,并用更强的模型(HF 文章中用了 Qwen3.5-122B-A10B):
hf jobs run --flavor h200x2 --expose 8000 --timeout 2h \
vllm/vllm-openai:latest \
vllm serve Qwen/Qwen3.5-122B-A10B \
--host 0.0.0.0 --port 8000 --tensor-parallel-size 2 \
--max-model-len 32768 --max-num-seqs 256 \
--reasoning-parser deepseek_r1 \
--enable-auto-tool-choice --tool-call-parser hermes
然后在 ~/.pi/agent/models.json 中配置自定义 provider:
{
"providers": {
"hf-jobs": {
"baseUrl": "https://<job_id>--8000.hf.jobs/v1",
"api": "openai-completions",
"apiKey": "!hf auth token",
"models": [
{ "id": "Qwen/Qwen3.5-122B-A10B" }
]
}
}
}
随后用 pi 启动 agent,即可使用自托管模型驱动的 coding agent(来源:HF 官方文章,2026-06-26)。
什么时候用 Jobs,什么时候用 Inference Endpoints
| 场景 | 推荐 |
|---|---|
| 临时测试、一次性 eval、batch generation | HF Jobs |
| 长期稳定端点、需要 scale-to-zero | Inference Endpoints |
| 调试容器启动或排查推理问题 | HF Jobs(加 --ssh) |
| 需要 public/protected/private 细粒度访问控制 | Inference Endpoints |
| 自托管 coding agent(Pi 等)用于开发阶段 | HF Jobs |
| 需要 CI/CD 中复用 job 镜像 | HF Jobs |
| 生产环境对外暴露的 API | Inference Endpoints + gateway |
来源:HF 官方文章,2026-06-26。
FAQ
vLLM 服务器支持哪些模型?
只要 vLLM 支持的模型(Qwen、Llama、Mistral、DeepSeek 等)都可以。注意部分模型可能需要额外 tokenizer 或 chat template 调整。
按秒计费大概多少钱?
A10G large 约 $1.50/小时,H200 约数美元/小时。具体价格以 HF Jobs 定价页为准。
端口暴露是公开的吗?
HF 官方文章说明,端点的访问是 gated 的:每个请求需要 HF token 有 job 命名空间的 read 权限。不是公开端点,不适合直接对外服务。
能用其他推理引擎吗?
HF 官方文章说同一个 --expose port 模式也适用于 llama.cpp(GGUF)、SGLang 等 OpenAI 兼容引擎,只要镜像提供对应端口。这里只覆盖 vLLM,其他引擎参考 Serve Models on Jobs 指南。
和 Hugging Face Spaces 有什么区别?
Spaces 适合做交互式 demo 和原型,对 GPU 规格和运行时间有限制。Jobs 更接近裸容器,适合你想精确控制 vLLM flags、硬件规格和运行时长的场景。
Pi agent 是什么?
Pi 是 provider-agnostic 的 agent harness,支持通过自定义 provider 配置对接自托管模型后端。README 和文档见 Pi 项目页面。