Hugging Face Jobs: 使用单个命令部署 vLLM 服务器

Hugging Face Jobs: 使用单个命令部署 vLLM 服务器

Hugging Face 推出了一种方法,可以在 Hugging Face 基础设施上使用 vLLM 通过单个命令启动私有的 OpenAI 兼容 LLM 端点。这种方法消除了手动服务器配置或 Kubernetes 管理的需求,提供了一种按秒计费的模型,非常适合快速测试、评估和批量生成。

通过 HF Jobs 部署 vLLM 服务器

用户可以使用 hf jobs run 命令启动 vLLM 服务器,该命令在 Hugging Face 基础设施上类似于 docker run。通过使用官方的 vllm/vllm-openai 镜像并通过 --flavor 标志指定硬件,用户可以通过 Hugging Face 的 jobs 代理将服务器暴露到公共互联网。

示例启动命令:

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

关键参数包括:

  • --expose 8000: 通过公共 jobs 代理路由容器的端口。
  • --flavor: 指定 GPU 硬件(例如 a10g-large)。
  • --timeout: 设置安全网,在指定持续时间后自动停止作业。

启动后,系统会提供一个唯一的作业 ID 和一个可访问的 URL(例如 https://<job_id>--8000.hf.jobs)。

查询和身份验证

由于 vLLM 实现了 OpenAI API,因此可以使用标准的 OpenAI 客户端或 curl 查询已部署的端点。所有请求必须将 Hugging Face 令牌作为承载令牌包含在内以进行身份验证。

身份验证要求:

  • 端点是受限的且不公开。
  • 请求需要具有作业命名空间读取权限的 HF 令牌。
  • 访问范围限于用户或其组织。

扩展到大型模型

HF Jobs 通过结合更强大的硬件规格和 vLLM 的张量并行性来支持扩展到更大的模型。例如,在两个 H200 GPU 上部署像 Qwen3.5-122B-A10B 这样的 122B 参数模型需要使用 --tensor-parallel-size 2 标志将模型分片到各个 GPU 上。

对于非常大的模型,内存管理至关重要。来源指出,如果模型因内存不足(OOM)或缓存块错误而无法启动,则限制上下文长度(--max-model-len)和并发序列数(--max-num-seqs)是主要解决方案。

高级运营功能

通过 SSH 进行交互式调试

用户可以在启动时添加 --ssh 标志直接打开一个 shell 进入正在运行的作业。这允许使用如 nvidia-smi 之类的工具进行实时监控和交互式日志检查。

hf jobs ssh <job_id>

与编码代理的集成

部署的 vLLM 服务器可以作为终端编码代理(如 Pi)的后端。要启用此功能,必须通过 --enable-auto-tool-choice 启用工具调用并在启动服务器时指定特定的 --tool-call-parser(例如 Qwen3 模型的 hermes)。

HF Jobs 与推理端点的对比

Feature HF Jobs Inference Endpoints
主要用途 实验、一次性评估、批量生成 生产就绪、长期服务
控制 最大灵活性(选择镜像、标志、硬件) 托管的运营体验
计费 按秒计费(根据作业持续时间) 零规模(非活动期间不计费)
访问控制 通过 HF 令牌/命名空间进行门控 更细粒度(公开、受保护或私有)

使用前提条件

  • 付款方式或正的预付信用余额。
  • 通过 pip 安装 huggingface_hub >= 1.20.0
  • 通过 hf auth login 进行本地身份验证。

Sources