通过此文你可以了解以下几个方面的内容:
本文内容和测试数据主要来自Qwen,零一万物,Nvidia等官方材料(相关文档请查看参考资料部分)。
实验设置:batch-size = 1
部分模型只推荐GPU,没有显存数据。
Int4量化,约2K上下文
模型(int4) | 所需显存GB | 推荐GPU | 参考模型 |
---|---|---|---|
0.5B | <5G | |
Qwen2-0.5B-Instruct |
1.5B | <3G | |
Qwen-1_8B-Chat, Qwen2-1.5B-Instruct |
6B | 4G | |
Yi-6B-Chat-4bits |
7B | <11G | |
Qwen2-7B-Instruct,Qwen-7B-Chat-Int4 |
14B | 13G | |
Qwen-14B-Chat-Int4 |
34B | 20G | |
Yi-34B-Chat-4bits |
57B | <35G | |
Qwen2-57B-A14B-Instruct |
72B | <47G | |
Qwen2-72B-Instruct |
130B | - | 8 * RTX 2080 Ti(11G) 4 * RTX 3090(24G) |
GLM-130B |
236B | 130G | 8xA100(80G) | DeepSeek-V2-Chat |
Int8量化,4k,6k上下文
模型(int8) | 所需显存GB | 推荐GPU | 参考模型 |
---|---|---|---|
0.5B | 6G | |
Qwen2-0.5B-Instruct |
1.5B | 8G | |
Qwen2-1.5B-Instruct |
6B | 8G | |
Yi-6B-Chat-8bits |
7B | 14G | |
Qwen2-7B-Instruct |
14B | 27G | |
Qwen-14B-Chat-Int8 |
34B | 38G | |
Yi-34B-Chat-8bits |
57B | 117G (bf16) | |
Qwen2-57B-A14B-Instruct |
72B | 80G | |
Qwen2-72B-Instruct |
130B | - | 8xRTX3090 (24G) | GLM-130B |
236B | 490G(fb16) | 8xA100 (80G) | DeepSeek-V2-Chat |
340B | - | 16xA100(80G) 16xH100(80G) 8xH200 |
Nemotron-4-340B-Instruct |
性能优先,不量化,数据格式FB16,32K上下文
模型(fb16) | 所需显存GB | 推荐GPU | 参考模型 |
---|---|---|---|
0.5B | 27G | |
Qwen2-0.5B-Instruct |
1.5B | 30G | |
Qwen2-1.5B-Instruct |
6B | 20G | |
Yi-6B-200K |
7B | 43G | |
Qwen2-7B-Instruct |
14B | 39G(8k) | |
Qwen-14B-Chat |
34B | 200G(200k) | 4 x A800 (80 GB) | Yi-34B-200K |
57B | 117G | |
Qwen2-57B-A14B-Instruct |
72B | 209G | |
Qwen2-72B-Instruct |
要点:
Model | batch=1 | batch=4 | batch=16 | batch=32 |
---|---|---|---|---|
Yi-6B-Chat | 12 GB | 13 GB | 15 GB | 18 GB |
Yi-6B-Chat-8bits | 7 GB | 8 GB | 10 GB | 14 GB |
Yi-6B-Chat-4bits | 4 GB | 5 GB | 7 GB | 10 GB |
Yi-34B-Chat | 65 GB | 68 GB | 76 GB | > 80 GB |
Yi-34B-Chat-8bits | 35 GB | 37 GB | 46 GB | 58 GB |
Yi-34B-Chat-4bits | 19 GB | 20 GB | 30 GB | 40 GB |
数据来源:https://huggingface.co/01-ai/Yi-6B-Chat
输入长度(上下文) | 推理速度 Tokens/s | GPU占用 |
---|---|---|
1 | 37.97 | 14.92 |
6144 | 34.74 | 20.26 |
14336 | 26.63 | 27.71 |
30720 | 17.49 | 42.62 |
数据整理自Qwen2官方测试报告。
要点:
量化后推理速度会变慢或者持平
当量化影响到GPU使用量时,比如从多张GPU降低到单GPU,推理速度会明显变快
Qwen2模型的测试结果如下:
详细结果请访问:https://qwen.readthedocs.io/en/latest/benchmark/speed_benchmark.html
单位:tokens/s
推理工具 | 0.5B | 1.5B | 7B | 72B |
---|---|---|---|---|
Transformers | 50.83 | 40.86 | 34.74 | 5.99 |
vLLM | 256.16 | 166.23 | 76.41 | 27.98 |
vLLM 速度提升倍数 | 5.04倍 | 4.07倍 | 2.20倍 | 4.67倍 |
模型:Qwen2系列,上下文6K,FB16模型
与Transformers相比,使用vLLM,DeepSeed等工具加速,推理速度可以提升2到5倍。
DeepSeed, vLLM, Ctranslate2 三个加速工具中 CTranslate2 的表现更好,尤其是batch size为1时。
图片来源于参考资料 [9]:生成速度测定使用了同一个问题的生成所用时间(感觉方法不太合理,与常用的 tokens/s 不太一样,但是从结果来看,与Qwen2中给出的结果比较一致)。
Int8量化模型性能与float16格式差别不大
https://github.com/01-ai/Yi?tab=readme-ov-file#quantization
Int4量化模型与float16模型相比,精度损失在 1 - 2 个百分点左右。(Yi模型与Baichuan2模型有类似的结论)
https://github.com/baichuan-inc/Baichuan2
GPU | 显存 |
---|---|
H200 | 141GB |
H100 H800 |
80GB |
A100 A800 |
80GB |
A100 | 40GB |
V100 | 32GB |
RTXA6000 | 48G |
RTX4090 RTX3090 A10 A30 |
24GB |
RTX4070 | 12GB |
RTX3070 | 8GB |