跳到内容

GLM-4.X LLM 使用指南

GLM-4.X LLM 包括以下模型

  • GLM-4.7
  • GLM-4.6
  • GLM-4.5
  • GLM-4.5-Air

GLM-V 系列,请查看 此处

本指南介绍了如何使用原生的 FP8 和 BF16 格式运行 GLM-4.X 系列。FP8 模型在精度损失方面最小。除非您需要严格的可复现性来进行基准测试或类似场景,否则我们建议使用 FP8 以降低成本。这些模型包含 MTP 层。

在此,我们以 GLM-4.5-Air 为例,同样的方法也适用于该系列的其它模型。

安装 vLLM

uv venv
source .venv/bin/activate
uv pip install -U vllm --torch-backend auto

运行 FP8 或 BF16 格式的 GLM-4.5-Air

有两种方法可以在多个 GPU 上并行化模型:(1) 张量并行或 (2) 数据并行。每种方法都有其自身的优点,其中张量并行通常更有利于低延迟/低负载场景,而数据并行更适用于数据量大且负载重的情况。

像这样运行张量并行

# Start server with FP8 model on 4 GPUs. the model can also changed to BF16 as zai-org/GLM-4.5-Air
vllm serve zai-org/GLM-4.5-Air-FP8 \
     --tensor-parallel-size 8 \
     --tool-call-parser glm45 \
     --reasoning-parser glm45 \
     --enable-auto-tool-choice
  • 您可以设置 --max-model-len 来节省内存。 --max-model-len=65536 通常适用于大多数场景,最大可设置为 128k。
  • 您可以设置 --max-num-batched-tokens 来平衡吞吐量和延迟,数值越高意味着吞吐量越高但延迟也越高。--max-num-batched-tokens=32768 通常适用于提示密集型工作负载。但您可以将其减少到 16k 和 8k 以减少激活内存使用并降低延迟。
  • vLLM 保守地使用 90% 的 GPU 内存,您可以设置 --gpu-memory-utilization=0.95 来最大化 KVCache。
  • 请务必按照命令行说明操作,以确保工具调用功能已正确启用。

基准测试

对于基准测试,通过向服务器命令添加 --no-enable-prefix-caching 来禁用前缀缓存。

FP8 基准测试

# Prompt-heavy benchmark (8k/1k)
vllm bench serve \
  --model zai-org/GLM-4.5-FP8 \
  --dataset-name random \
  --random-input-len 8000 \
  --random-output-len 1000 \
  --request-rate 10000 \
  --num-prompts 16 \
  --ignore-eos

基准测试配置

通过调整输入/输出长度测试不同的工作负载

  • 提示密集型:8000 输入 / 1000 输出
  • 解码密集型:1000 输入 / 8000 输出
  • 平衡型:1000 输入 / 1000 输出

通过更改 --num-prompts 测试不同的批处理大小

  • 批处理大小:1、16、32、64、128、256、512

预期输出

============ Serving Benchmark Result ============
Successful requests:                     16        
Request rate configured (RPS):           10000.00  
Benchmark duration (s):                  24.56     
Total input tokens:                      128000    
Total generated tokens:                  16000     
Request throughput (req/s):              0.65      
Output token throughput (tok/s):         651.58    
Total Token throughput (tok/s):          5864.22   
---------------Time to First Token----------------
Mean TTFT (ms):                          2100.95   
Median TTFT (ms):                        2063.87   
P99 TTFT (ms):                           4284.97   
-----Time per Output Token (excl. 1st token)------
Mean TPOT (ms):                          22.35     
Median TPOT (ms):                        22.39     
P99 TPOT (ms):                           24.19     
---------------Inter-token Latency----------------
Mean ITL (ms):                           22.35     
Median ITL (ms):                         20.23     
P99 ITL (ms):                            37.17     
==================================================