Ernie4.5 VL 模型使用指南¶
本指南介绍了如何使用原生 BF16 运行 ERNIE-4.5-VL-28B-A3B-PT 和 ERNIE-4.5-VL-424B-A47B-PT。
安装 vLLM¶
Ernie4.5-VL 支持已最近添加到 vLLM 主分支,但尚未包含在任何官方发布版本中。
运行 Ernie4.5-VL¶
注意:由于异构专家架构(视觉和文本专家),不支持 torch.compile 和 cuda graph。
# 424B model 140G*8 GPU with native BF16
vllm serve baidu/ERNIE-4.5-VL-424B-A47B-PT \
--trust-remote-code \
--tensor-parallel-size 8
如果您只想测试功能且只有 8×80G GPU,可以使用 --cpu-offload-gb 参数将部分权重卸载到 CPU 内存,并额外使用 FP8 在线量化进一步减少 GPU 内存。
# 424B model 80G*8 GPU with FP8 quantization and CPU offloading
vllm serve baidu/ERNIE-4.5-VL-424B-A47B-PT \
--trust-remote-code \
--tensor-parallel-size 8 \
--quantization fp8 \
--cpu-offload-gb 50
如果您的单节点 GPU 内存不足,原生 BF16 部署可能需要多节点,多节点部署请参考 vLLM 文档 来启动 ray 集群。然后在主节点上运行 vllm。
# 424B model 80G*16 GPU with native BF16
vllm serve baidu/ERNIE-4.5-VL-424B-A47B-PT \
--trust-remote-code \
--tensor-parallel-size 16
基准测试¶
对于基准测试,仅在服务启动后的第一次 vllm bench serve 进行,以确保不受前缀缓存的影响。
# Prompt-heavy benchmark (8k/1k)
vllm bench serve \
--model baidu/ERNIE-4.5-VL-28B-A3B-PT \
--host 127.0.0.1 \
--port 8200 \
--dataset-name random \
--random-input-len 8000 \
--random-output-len 1000 \
--request-rate 10 \
--num-prompts 16 \
--ignore-eos \
--trust-remote-code
基准测试配置¶
通过调整输入/输出长度测试不同的工作负载
- 提示密集型: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): 10.00
Benchmark duration (s): 61.27
Total input tokens: 128000
Total generated tokens: 16000
Request throughput (req/s): 0.26
Output token throughput (tok/s): 261.13
Total Token throughput (tok/s): 2350.19
---------------Time to First Token----------------
Mean TTFT (ms): 15663.63
Median TTFT (ms): 21148.69
P99 TTFT (ms): 22147.85
-----Time per Output Token (excl. 1st token)------
Mean TPOT (ms): 38.74
Median TPOT (ms): 38.90
P99 TPOT (ms): 39.92
---------------Inter-token Latency----------------
Mean ITL (ms): 43.27
Median ITL (ms): 36.35
P99 ITL (ms): 236.49
==================================================