使用 vLLM 部署 GLM-4.7-Flash 大模型完整指南
·
前言
GLM-4.7-Flash 是智谱 AI 推出的一款高性能大语言模型。本文将详细介绍如何在 Ubuntu 22.04 + CUDA 12.4 环境下,使用 vLLM 框架部署 GLM-4.7-Flash 模型,支持双卡推理和工具调用功能。
环境准备
硬件要求
- GPU: 2x NVIDIA L20 48GB
- 内存: 至少 128GB
- 存储: 至少 200GB(用于模型存储)
软件环境
# 操作系统
Ubuntu 22.04 LTS
# CUDA 版本
CUDA 12.4
# Docker 版本
Docker 24.0+
Docker Compose 2.0+
Dockerfile 配置
创建 Dockerfile 文件:
FROM vllm/vllm-openai:nightly
RUN pip install transformers==5.0.0 -i https://mirrors.aliyun.com/pypi/simple/
说明:
- 基于
vllm/vllm-openai:nightly镜像,这是 vLLM 官方提供的兼容 OpenAI API 的镜像 - 安装
transformers==5.0.0以支持 GLM 模型的加载 - 使用阿里云镜像源加速 pip 安装
构建镜像
docker build -t glm-4.7-custom .
模型准备
下载 GLM-4.7-Flash 模型文件到 ./models 目录:
mkdir -p ./models/GLM-4.7-Flash
# 将模型文件放入该目录
确保目录结构如下:
./models/GLM-4.7-Flash/
├── config.json
├── tokenizer.model
├── tokenizer_config.json
├── chat_template.jinjia
└── ...
启动服务
完整启动命令
sudo docker run -itd \
-e NCCL_DEBUG=INFO \
-e NCCL_SHM_DISABLE=0 \
-e OMP_NUM_THREADS=1 \
-e CUDA_VISIBLE_DEVICES=0,1 \
-e CUDA_DEVICE_ORDER=PCI_BUS_ID \
--gpus all \
-p 9998:8000 \
--shm-size 128GB \
-v ./models:/models \
glm-4.7-custom:latest \
--model /models/GLM-4.7-Flash \
--tensor-parallel-size 2 \
--gpu-memory-utilization 0.90 \
--max-model-len 100000 \
--served-model-name GLM-4.7-Flash \
--reasoning-parser glm45 \
--chat-template /models/GLM-4.7-Flash/chat_template.jinjia \
--enable-auto-tool-choice \
--tool-call-parser glm47 \
--quantization fp8 \
--generation-config vllm \
--chat-template-content-format openai
参数详解
| 参数 | 说明 |
|---|---|
-e NCCL_DEBUG=INFO |
启用 NCCL 调试信息输出 |
-e NCCL_SHM_DISABLE=0 |
启用共享内存通信 |
-e OMP_NUM_THREADS=1 |
设置 OpenMP 线程数为 1 |
-e CUDA_VISIBLE_DEVICES=0,1 |
指定使用 GPU 0 和 1 |
--gpus all |
容器访问所有 GPU |
-p 9998:8000 |
端口映射,宿主机 9998 映射到容器 8000 |
--shm-size 128GB |
设置共享内存大小 |
-v ./models:/models |
挂载模型目录 |
vLLM 参数详解
| 参数 | 说明 |
|---|---|
--model |
模型路径 |
--tensor-parallel-size 2 |
张量并行度,使用 2 张 GPU |
--gpu-memory-utilization 0.90 |
GPU 显存利用率 90% |
--max-model-len 100000 |
最大序列长度 |
--served-model-name |
服务对外暴露的模型名称 |
--reasoning-parser glm45 |
推理解析器(GLM-4.5 格式) |
--chat-template |
聊天模板文件路径 |
--enable-auto-tool-choice |
启用自动工具选择 |
--tool-call-parser glm47 |
工具调用解析器(GLM-4.7 格式) |
--quantization fp8 |
使用 FP8 量化 |
--generation-config vllm |
生成配置使用 vLLM 格式 |
--chat-template-content-format openai |
聊天内容格式兼容 OpenAI |
测试服务
检查服务状态
# 查看容器日志
docker logs -f <container_id>
# 检查健康状态
curl http://localhost:9998/health
API 调用示例
curl http://localhost:9998/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "GLM-4.7-Flash",
"messages": [
{"role": "user", "content": "你好,请介绍一下你自己"}
],
"temperature": 0.7
}'
Python 调用示例
from openai import OpenAI
client = OpenAI(
base_url="http://localhost:9998/v1",
api_key="dummy"
)
response = client.chat.completions.create(
model="GLM-4.7-Flash",
messages=[
{"role": "user", "content": "写一首关于春天的诗"}
],
temperature=0.7,
max_tokens=512
)
print(response.choices[0].message.content)
常见问题
1. 显存不足
调整 --gpu-memory-utilization 或 --max-model-len 参数
2. NCCL 通信错误
确保 --shm-size 设置足够大,推荐 128GB+
3. 模型加载慢
首次启动需要加载模型到显存,耐心等待
总结
通过 vLLM 部署 GLM-4.7-Flash 可以获得高性能的推理服务,支持 OpenAI 兼容的 API 接口,方便集成到现有应用中。双卡张量并行可以有效提升推理吞吐量,FP8 量化进一步降低显存占用。在 2 张 NVIDIA L20 48GB 显卡上,该配置可以稳定运行并支持长文本推理。
更多推荐
所有评论(0)