3. vLLM在线API服务部署
任务目标
使用vLLM启动一个兼容接口的在线API服务,并通过HTTP请求完成一次完整的文本补全调用。本案例聚焦于最小可用的服务部署闭环,不涉及生产环境的高可用、鉴权或负载均衡配置。
环境依赖
已安装vLLM(版本≥0.4.0),且本机具备可用的GPU资源(NVIDIA GPU,显存≥8GB)。模型使用HuggingFace上的facebook/opt-125m,该模型约250MB,适合快速验证服务部署流程。
启动API服务
在终端执行以下命令启动vLLM的兼容服务:
python -m vllm.entrypoints..api_server \
--model facebook/opt-125m \
--host 0.0.0.0 \
--port 8000 \
--dtype float16
启动成功后,终端会显示服务监听地址http://0.0.0.0:8000。首次启动需要从HuggingFace下载模型权重,耗时取决于网络状况。
客户端调用代码
以下Python脚本使用 SDK(需安装:pip install )向本地服务发送补全请求:
from import
# 连接到本地vLLM服务
client = (
base_url="http://localhost:8000/v1",
="EMPTY", # vLLM默认不校验key
)
# 发送文本补全请求
response = client.completions.create(
model="facebook/opt-125m",
prompt="The capital of France is",
max_tokens=16,
temperature=0.0,
)
# 打印返回结果
print(response.choices[0].text)
将上述代码保存为client.py,在另一个终端中执行:
python client.py
验证方法与判定标准
满足以下条件即判定服务部署成功:
- 服务启动终端无报错,显示
Uvicorn running on http://0.0.0.0:8000; - 客户端脚本正常退出,无连接异常;
- 输出文本以
Paris开头(temperature=0时,该prompt的贪心解码结果确定,OPT-125M会补全为Paris)。
常见问题
- 端口被占用:更换
--port参数,并同步修改客户端base_url中的端口号; - GPU显存不足:OPT-125M在float16下约需500MB显存,若仍不足,可添加
--max-model-len 512限制序列长度; - 模型下载超时:可预先执行
huggingface-cli download facebook/opt-125m手动下载。