本教程介绍如何在 v6e TPU 虚拟机上使用 vLLM TPU 部署框架来部署 Qwen/Qwen3-8B-Base 模型。
目标
- 设置环境。
- 使用 Qwen3-8B-Base 运行 vLLM。
- 发送推理请求。
- 运行基准工作负载。
- 清理。
费用
本教程使用 Google Cloud 的以下收费组件:
如需根据您的预计使用量来估算费用,请使用价格计算器。
准备工作
在学习本教程之前,请按照设置 Cloud TPU 环境页面中的说明操作。这些说明将引导您完成创建 Google Cloud项目并将其配置为使用 Cloud TPU 所需的步骤。您也可以使用现有的Google Cloud 项目。如果您选择这样做,可以跳过创建Google Cloud 项目的步骤,直接从设置环境以使用 Cloud TPU 开始。
您需要拥有 Hugging Face 访问令牌才能使用本教程。您可以在 Hugging Face 上注册免费账号。拥有账号后,生成访问令牌:
- 在 Welcome to Hugging Face 页面上,点击您的账号头像,然后选择 Access tokens。
- 在访问令牌页面上,点击创建新令牌。
- 选择读取令牌类型,然后输入令牌的名称。
- 系统会显示您的访问令牌。将令牌保存在安全的位置。
设置环境
已排入队列的资源
使用 Queued Resources API 创建 Cloud TPU v6e 虚拟机。对于 Qwen3-8B-Base,我们建议使用 v6e-1 TPU。
设置变量:
- PROJECT - 您的项目的名称。
- TPU_NAME - 您将创建的 TPU 虚拟机机器的名称。
- ZONE - 您要在其中创建新虚拟机的云可用区。
- TPU_TYPE - 您创建的 TPU 虚拟机的类型。例如
v6e-1或v6e-4。 - QR_ID - 您创建的已排队资源的名称。
创建已排队的资源请求:
检查以确保 TPU 虚拟机已准备就绪。
例如,当状态为 ACTIVE 时:
name: projects/your-project-id/locations/your-zone/queuedResources/your-queued-resource-id
state:
state: ACTIVE
tpu:
nodeSpec:
- node:
acceleratorType: v6e-1
bootDisk: {}
networkConfig:
enableExternalIps: true
queuedResource: projects/your-project-number/locations/your-zone/queuedResources/your-queued-resource-id
runtimeVersion: v2-alpha-tpuv6e
schedulingConfig: {}
serviceAccount: {}
shieldedInstanceConfig: {}
useTpuVm: true
nodeId: your-node-id
parent: projects/your-project-number/locations/your-zone
预订
使用预留创建 Cloud TPU v6e 虚拟机。对于 Qwen3-8B-Base,我们建议使用 v6e-1 TPU。首先,设置环境变量:
设置变量:
- PROJECT - 您的项目的名称。
- TPU_NAME - 您将创建的 TPU 虚拟机机器的名称。
- ZONE - 您要在其中创建新虚拟机的云可用区。
- TPU_TYPE - 您创建的 TPU 虚拟机的类型。例如
v6e-1或v6e-4。 - RESERVATION - 包含 TPU 的预留的名称。
使用预留创建 TPU 虚拟机:
连接到 TPU 虚拟机。
使用 Qwen3-8B-Base 运行 vLLM
设置您的 Hugging Face 令牌和模型名称变量。
export HF_TOKEN="YOUR_HF_TOKEN" export MODEL_NAME="Qwen/Qwen3-8B-Base"在 TPU 虚拟机内,以分离模式运行 vLLM Docker 容器并启动 vLLM 服务器。此命令使用 10 GB 的共享内存大小。
检查服务器日志,确认服务器正在运行。
当 vLLM 服务器运行时,您会看到类似于以下内容的输出。输出显示后,按
CTRL+C返回到终端。(APIServer pid=7) INFO: Started server process [7] (APIServer pid=7) INFO: Waiting for application startup. (APIServer pid=7) INFO: Application startup complete.
发送推理请求
vLLM 服务器开始运行后,您可以向 API 发送请求。如需了解详情,请参阅 vLLM API 参考文档。
使用
curl向服务器发送测试请求。
响应以 JSON 格式返回。
运行基准测试工作负载
您可以在第二个终端中针对正在运行的服务器运行基准测试。
在容器内,安装
datasets库。在容器内,运行
vllm bench serve命令。
基准测试结果如下所示:
============ Serving Benchmark Result ============
Successful requests: 1000
Failed requests: 0
Benchmark duration (s): 73.97
Total input tokens: 1024000
Total generated tokens: 128000
Request throughput (req/s): 13.52
Output token throughput (tok/s): 1730.38
Peak output token throughput (tok/s): 2522.00
Peak concurrent requests: 1000.00
Total Token throughput (tok/s): 15573.42
---------------Time to First Token----------------
Mean TTFT (ms): 34834.97
Median TTFT (ms): 34486.19
P99 TTFT (ms): 70234.40
-----Time per Output Token (excl. 1st token)------
Mean TPOT (ms): 47.30
Median TPOT (ms): 48.57
P99 TPOT (ms): 48.60
---------------Inter-token Latency----------------
Mean ITL (ms): 47.31
Median ITL (ms): 53.49
P99 ITL (ms): 54.58
==================================================
清理
为避免因本教程中使用的资源导致您的 Google Cloud 账号产生费用,请删除包含这些资源的项目,或者保留项目但删除各个资源。
- 在终端中,输入 exit 以断开与 TPU 虚拟机的连接。
删除您的资源
您可以删除项目,这样会删除所有资源;也可以保留项目,但删除资源。
删除项目
如需删除 Google Cloud 项目和所有关联的资源,请运行以下命令:
gcloud projects delete $PROJECT_ID
删除 TPU 资源
已排入队列的资源
删除 Cloud TPU 资源。以下命令使用 --force 参数同时删除已排队的资源请求和 TPU 虚拟机。
预订
删除 Cloud TPU 虚拟机。使用以下命令终止虚拟机,将 TPU 释放回您的预留。
后续步骤
- 详细了解 Cloud TPU 上的 vLLM。
- 详细了解 Cloud TPU。