这篇适合谁
适合有 Linux 服务器和多张 NVIDIA 显卡、想在本地跑 GLM-4.5-Air 的读者。读完你能下载模型权重,用 vLLM 的 Python 接口离线生成一次文本,再启动兼容 OpenAI 协议的服务,用 curl 和 OpenAI 的 Python 客户端调用它。
vLLM 是什么
vLLM 是大语言模型的推理和部署服务系统。它用 PagedAttention 算法管理 KV 缓存,减少显存浪费,因此运行效率更高。它支持异步处理和连续批处理请求,能明显提高推理吞吐量。它和 Hugging Face 模型无缝衔接,并提供兼容 OpenAI 的 API 服务器。在多张 GPU 上,它还能用模型并行做分布式推理[1]。
GLM-4.5-Air 兼容 OpenAI API 协议,所以可以直接用 vLLM 创建 OpenAI 接口的服务器,已有的 OpenAI 客户端代码也能调用它[1]。
环境和安装
基础环境是 Ubuntu 22.04、Python 3.10、CUDA 12.4 和 PyTorch 2.7.1。PyTorch 的 CUDA 版本需要事先配置好。然后升级 pip,把 pip 的索引换成清华镜像,再安装 modelscope 和 vllm>=0.10.0[1]。
python -m pip install --upgrade pip
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
pip install modelscope
pip install vllm>=0.10.0版本要求是 vllm>=0.10.0,即不低于 0.10.0。安装命令里的 >= 在 shell 中会被当作重定向符号,所以输入时要给版本约束加上引号,避免命令被截断。安装前先确认 PyTorch 和 CUDA 已经能正常工作,否则 vLLM 无法启动。
清华镜像对国内网络更友好,装包时速度通常明显快于默认源。这一步只影响下载速度,不影响 vLLM 的版本和行为。
下载模型
用 ModelScope 的 snapshot_download 下载。第一个参数是模型名 ZhipuAI/GLM-4.5-Air,cache_dir 指定权重保存的目录,记得改成你自己的路径[1]。
from modelscope import snapshot_download
model_dir = snapshot_download('ZhipuAI/GLM-4.5-Air', cache_dir='your_model_dir', revision='master')离线跑通一次生成
先离线跑一次,是为了在不启动服务的情况下确认模型能加载、分词器能工作、输出格式符合预期。离线方式适合在脚本里批量生成文本;需要被其他程序长期调用时,再切换到服务方式。
离线推理要用到两个类。LLM 类负责运行 vLLM 推理引擎,SamplingParams 类控制采样过程,比如温度和 top-p 等参数[1]。脚本里设置 os.environ['VLLM_USE_MODELSCOPE']='True' 后,vLLM 会从 ModelScope 下载模型;不设置时会从 Hugging Face 下载[1]。
脚本中的 LLM 对象设置了 trust_remote_code=True 和 tensor_parallel_size=4,也就是用四张卡并行推理。max_model_len 限制的是一次请求中输入和输出 token 的总长度[1]。
llm = LLM(model=model, tokenizer=tokenizer, max_model_len=max_model_len,trust_remote_code=True, tensor_parallel_size=4)提示词要先用分词器的 apply_chat_template 排成模型需要的格式。思考模式默认开启,对应参数是 enable_thinking=True[1]。
text = tokenizer.apply_chat_template(
messages,
tokenize=False,
add_generation_prompt=True,
enable_thinking=True # 是否开启思考模式,默认为 True
)思考模式下,官方建议的采样参数是 temperature 0.6、TopP 0.95、TopK 20、MinP 0[1]。
模型的输出分两部分。思考过程包在 <think> 和 </think> 之间,最终答案在 </think> 之后[1]。读取结果时,程序需要按这个标记把两部分分开。
启动兼容 OpenAI 的服务
vllm serve 默认在 http://localhost:8000 启动服务。一个服务进程一次托管一个模型,并实现模型列表、completions 和 chat completions 三类接口。completions 用于续写给定的提示,chat completions 用于对话[1]。
vllm serve /model/ModelScope/ZhipuAI/GLM-4.5-Air \
--tensor-parallel-size 4 \
--tool-call-parser glm4_moe \
--reasoning-parser glm4_moe \
--enable-auto-tool-choice \
--served-model-name glm-4.5-air--reasoning-parser 用来解析模型输出的推理内容,设置 --enable-reasoning 时它是必需的。推理模型的输出会多出一个 reasoning_content 字段。deepseek_r1 解析器适用于 <think> ... </think> 格式的内容[1]。服务在处理每个请求时,也会打印对应的日志和统计信息[1]。
调用接口
两类接口的区别在于输入格式。completions 接收一段原始提示,模型从这段文字往下续写。chat completions 接收对话消息列表,由服务端按模板组织对话,并返回带 content 和 reasoning_content 的结构化结果。做聊天应用时通常用后者,做文本续写或者需要自己拼模板时用前者[1]。
先用 curl 测试 completions 接口。示例请求的模型名是 glm-4.5-air,max_tokens 为 1024,temperature 为 0[1]。
curl http://localhost:8000/v1/completions \
-H "Content-Type: application/json" \
-d '{
"model": "glm-4.5-air",
"prompt": "我想问你,5的阶乘是多少?<think>\n",
"max_tokens": 1024,
"temperature": 0
}'示例返回中,提示词用了 11 个 token,生成部分用了 449 个 token[1]。
对话接口可以用 OpenAI 的 Python 客户端调用,base_url 设为 http://localhost:8000/v1。API Key 随便填,服务端只检查参数是否存在[1]。返回的回答在 content 字段里,思考内容在 reasoning_content 字段里[1]。
from openai import OpenAI
openai_api_key = "sk-xxx" # 随便填写,只是为了通过接口参数校验
openai_api_base = "http://localhost:8000/v1"
client = OpenAI(
api_key=openai_api_key,
base_url=openai_api_base,
)
chat_outputs = client.chat.completions.create(
model="glm-4.5-air",
messages=[
{"role": "user", "content": "什么是深度学习?"},
]
)
print(chat_outputs)常见问题
上手时可以按下面的清单逐项核对:
- PyTorch 能用 GPU,并且版本与 CUDA 12.4 的环境一致。
vllm>=0.10.0已安装,且服务端带上了--tensor-parallel-size 4。- 服务启动后,
/v1/completions能返回结果,说明接口已经就绪。 - 请求里的
model字段是glm-4.5-air,与--served-model-name一致。
离线脚本里的 cache_dir 和模型路径也要和实际目录一致。路径写错时,报错往往出现在模型加载阶段,需要先从路径检查起。
最常见的问题是 vLLM 和 PyTorch、CUDA 版本不匹配,先确认 PyTorch 能正常使用 GPU,再安装 vLLM。服务的 --served-model-name 必须和请求里的 model 字段一致,否则会找不到模型[1]。
本文改编自 Datawhale 开源项目 self-llm 中的 GLM-4.5-Air vLLM 部署教程[1],原文以 Apache-2.0 许可证发布。
来源
- 101-GLM-4.5-Air vLLM 部署调用Datawhale self-llm (Apache-2.0)
引用本页: GLM-4.5-Air 用 vLLM 部署. TellWorld, https://www.tellworld.net/zh/practice/practice-glm-4-5-air-vllm. 更新于 2026-11-14