Files
FastDeploy/docs/zh/best_practices/ERNIE-4.5-0.3B-Paddle.md
RAM 775edcc09a [Executor] Default use CUDAGraph (#3594)
* add start intercept

* Adjustment GraphOptConfig

* pre-commit

* default use cudagraph

* set default value

* default use cuda graph

* pre-commit

* fix test case bug

* disable rl

* fix moba attention

* only support gpu

* Temporarily disable PD Disaggregation

* set max_num_seqs of test case as 1

* set max_num_seqs and temperature

* fix max_num_batched_tokens bug

* close cuda graph

* success run wint2

* profile run with max_num_batched_tokens

* 1.add c++ memchecker 2.success run wint2

* updatee a800 yaml

* update docs

* 1. delete check 2. fix plas attn test case

* default use use_unique_memory_pool

* add try-except for warmup

* ban mtp, mm, rl

* fix test case mock

* fix ci bug

* fix form_model_get_output_topp0 bug

* fix ci bug

* refine deepseek ci

* refine code

* Disable PD

* fix sot yaml
2025-10-21 14:25:45 +08:00

4.9 KiB
Raw Blame History

English

ERNIE-4.5-0.3B

一、环境准备

1.1 支持情况

ERNIE-4.5-0.3B 各量化精度,在下列硬件上部署所需要的最小卡数如下:

WINT8 WINT4 FP8
H800 80GB 1 1 1
A800 80GB 1 1 /
H20 96GB 1 1 1
L20 48GB 1 1 1
A30 40GB 1 1 /
A10 24GB 1 1 /

注:

  1. 在启动命令后指定--tensor-parallel-size 1 即可修改部署卡数
  2. 表格中未列出的硬件,可根据显存大小进行预估是否可以部署

1.2 安装fastdeploy

二、如何使用

2.1 基础:启动服务

通过下列命令启动服务

python -m fastdeploy.entrypoints.openai.api_server \
       --model baidu/ERNIE-4.5-0.3B-Paddle \
       --tensor-parallel-size 1 \
       --quantization wint4 \
       --max-model-len 32768 \
       --max-num-seqs 128 \
       --load-choices "default_v1"

其中:

  • --quantization: 表示模型采用的量化策略。不同量化策略,模型的性能和精度也会不同。可选值包括:wint8 / wint4 / block_wise_fp8(需要Hopper架构)。
  • --max-model-len表示当前部署的服务所支持的最长Token数量。设置得越大模型可支持的上下文长度也越大但相应占用的显存也越多可能影响并发数。
  • --load-choices: 表示loader的版本"default_v1"表示启用v1版本的loader具有更快的加载速度和更少的内存使用。

更多的参数含义与默认设置,请参见FastDeploy参数说明

2.2 进阶:如何获取更优性能

2.2.1 评估应用场景,正确设置参数

结合应用场景评估平均输入长度、平均输出长度、最大上下文长度。例如平均输入长度为1000输出长度为30000那么建议设置为 32768

  • 根据最大上下文长度,设置max-model-len

2.2.2 Prefix Caching

原理: Prefix Caching的核心思想是通过缓存输入序列的中间计算结果KV Cache避免重复计算从而加速具有相同前缀的多个请求的响应速度。具体参考prefix-cache

启用方式: 自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

启用方式: 自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 相关配置参数说明

2.2.5 拒绝采样

原理: 拒绝采样即从一个易于采样的提议分布proposal distribution中生成样本避免显式排序从而达到提升采样速度的效果对小尺寸的模型有较明显的提升。

启用方式: 启动前增加下列环境变量

export FD_SAMPLING_CLASS=rejection

三、常见问题FAQ

如果您在使用过程中遇到问题,可以在FAQ中查阅。