Files
FastDeploy/docs/zh/best_practices/GLM-4-MoE-Text.md
chen 927bd74075 [Docs] add doc for glm (#4933)
* add doc for glm

* del v1 loader

* delete mtp
2025-11-10 21:21:33 +08:00

101 lines
4.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
[English](../../best_practices/GLM-4-MoE-Text.md)
# GLM-4.5/4.6 文本模型
## 一、环境准备
### 1.1 支持情况
GLM-4.5/4.6 各量化精度,在下列硬件上部署所需要的最小卡数如下:
| | WINT8 | WINT4 | FP8 |
|-----|-----|-----|-----|
|H800 80GB| 4 | 4 | 4 |
|A800 80GB| 4 | 4 | / |
**注:**
1. 在启动命令后指定`--tensor-parallel-size 4` 即可修改部署卡数
2. 表格中未列出的硬件,可根据显存大小进行预估是否可以部署
3. 量化精度推荐FP8。
### 1.2 安装fastdeploy
安装流程参考文档 [FastDeploy GPU 安装](../get_started/installation/nvidia_gpu.md)
## 二、如何使用
### 2.1 基础:启动服务
**示例1** H100上四卡部署BF16模型16K上下文的服务
```shell
python -m fastdeploy.entrypoints.openai.api_server \
--model zai-org/GLM-4.5-Air \
--tensor-parallel-size 4 \
--port 8185 \
--max-model-len 16384 \
```
**示例2** H100上四卡部署FP8推理服务
```shell
python -m fastdeploy.entrypoints.openai.api_server \
--model zai-org/GLM-4.5-Air \
--tensor-parallel-size 4 \
--port 8185 \
--quantization wfp8afp8 \
```
其中:
- `--quantization`: 表示模型采用的量化策略。不同量化策略,模型的性能和精度也会不同。可选值包括:`wint8` / `wint4` / `wfp8afp8`(需要Hopper架构)。
- `--max-model-len`表示当前部署的服务所支持的最长Token数量。设置得越大模型可支持的上下文长度也越大但相应占用的显存也越多可能影响并发数。
更多的参数含义与默认设置,请参见[FastDeploy参数说明](../parameters.md)。
### 2.2 进阶:如何获取更优性能
#### 2.2.1 评估应用场景,正确设置参数
结合应用场景评估平均输入长度、平均输出长度、最大上下文长度。例如平均输入长度为1000输出长度为30000那么建议设置为 32768
- 根据最大上下文长度,设置`max-model-len`
#### 2.2.2 Prefix Caching
**原理:** Prefix Caching的核心思想是通过缓存输入序列的中间计算结果KV Cache避免重复计算从而加速具有相同前缀的多个请求的响应速度。具体参考[prefix-cache](../features/prefix_caching.md)
**启用方式:**
自2.2版本开始包括develop分支Prefix Caching已经默认开启。
对于2.1及更早的版本,需要手动开启。其中`--enable-prefix-caching`表示启用前缀缓存,`--swap-space`表示在GPU缓存的基础上额外开启CPU缓存大小为GB应根据机器实际情况调整。建议取值为`(机器总内存 - 模型大小) * 20%`。如果因为其他程序占用内存等原因导致服务启动失败,可以尝试减小`--swap-space`的值。
```
--enable-prefix-caching
--swap-space 50
```
#### 2.2.3 Chunked Prefill
**原理:** 采用分块策略将预填充Prefill阶段请求拆解为小规模子任务与解码Decode请求混合批处理执行。可以更好地平衡计算密集型Prefill和访存密集型Decode操作优化GPU资源利用率减少单次Prefill的计算量和显存占用从而降低显存峰值避免显存不足的问题。 具体请参考[Chunked Prefill](../features/chunked_prefill.md)
**启用方式:**
自2.2版本开始包括develop分支Chunked Prefill已经默认开启。
对于2.1及更早的版本,需要手动开启。
```
--enable-chunked-prefill
```
#### 2.2.4 CUDAGraph
**原理:**
CUDAGraph 是 NVIDIA 提供的一项 GPU 计算加速技术,通过将 CUDA 操作序列捕获capture为图结构graph实现 GPU 任务的高效执行和优化。CUDAGraph 的核心思想是将一系列 GPU 计算和内存操作封装为一个可重复执行的图,从而减少 CPU-GPU 通信开销、降低内核启动延迟,并提升整体计算性能。
**启用方式:**
在2.3版本之前需要通过`--use-cudagraph`启用。
2.3版本开始部分场景已默认开启 CUDAGraph对于暂时不能兼容 CUDAGraph 的功能投机解码、强化学习训练、多模模型推理CUDAGraph 会自动关闭。
注:
- 通常情况下不需要额外设置其他参数但CUDAGraph会产生一些额外的显存开销在一些显存受限的场景下可能需要调整。详细的参数调整请参考[GraphOptimizationBackend](../features/graph_optimization.md) 相关配置参数说明
#### 2.2.5 拒绝采样
**原理:**
拒绝采样即从一个易于采样的提议分布proposal distribution中生成样本避免显式排序从而达到提升采样速度的效果对小尺寸的模型有较明显的提升。
**启用方式:**
启动前增加下列环境变量
```
export FD_SAMPLING_CLASS=rejection
```
## 三、常见问题FAQ
如果您在使用过程中遇到问题,可以在[FAQ](./FAQ.md)中查阅。