大语言模型LLM基础:推理/不同模型/量化对显存、推理速度和性能的影响

发布于:2024-06-30 ⋅ 阅读:(383) ⋅ 点赞:(0)

通过本文,你将了解以下几个方面的内容:

  • 要运行一个LLM需要多少显存?(我的GPU可以运行多大LLM?)
  • 不同LLM推理速度如何?
  • 量化对显存、推理速度和性能的影响?
  • vLLM、DeepSeed等工具的加速效果如何?
  • 上下文、batch-size对显存和推理的影响?

本文内容和测试数据主要来自Qwen,零一万物,Nvidia等官方材料(相关文档请查看参考资料部分)。

1. 不同参数量LLM推理需要多少显存?

实验设置:batch-size = 1
部分模型只推荐GPU,没有显存数据。

1.1 低配使用(计算资源有限)

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

1.2 标配使用(性能与资源平衡)

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

1.3 高配使用(高级用法,性能优先)

性能优先,不量化,数据格式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 (80G) Yi-34B-200K
57B 117G Qwen2-57B-A14B-Instruct
72B 209G Qwen2-72B-Instruct

若以上内容无法帮助你做出判断,你可以参考Qwen官网更详细的数据:Qwen速度基准

2. Batch Size和量化对显存的影响

要点:

  • Batch Size增加,显存占用也会增加。
  • 量化可以节省显存:通过下表中的数据可以看到,6B模型在float16时占用12G显存,8bit量化占用7G,4bit量化只需要4G显存。
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

数据来源:Yi-6B-Chat

3. 上下文长度对显存和推理速度的影响

要点:

  • 上下文越长,推理速度越慢。
  • 显存占用也会增加。
输入长度(上下文) 推理速度 (Tokens/s) GPU占用
1 37.97 14.92
6144 34.74 20.26
14336 26.63 27.71
30720 17.49 42.62

数据整理自Qwen2官方测试报告。

4. 量化对推理速度的影响

要点:

  • 量化后推理速度会变慢或持平。
  • 当量化影响到GPU使用量时,例如从多张GPU降低到单GPU,推理速度会明显变快。

Qwen2模型的测试结果如下:

  • Qwen2-0.5B模型:量化模型速度变慢。
  • Qwen2-1.5B模型:量化与fb16相比速度持平。
  • Qwen2-7B模型:稍微变慢,使用vLLM时,量化版本更快。
  • Qwen2-72B模型:速度变快(尤其是Int4量化后,从2GPU变为1GPU后推理速度明显变快),但使用长context时(120k),量化版本推理速度变慢。

详细结果请访问:Qwen速度基准

5. 参数量对推理速度的影响

单位: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模型

6. vLLM、DeepSeed、CTranslate2等工具推理速度如何?

  • 与Transformers相比,使用vLLM、DeepSeed等工具加速,推理速度可以提升2到5倍。
  • DeepSeed、vLLM、CTranslate2三个加速工具中,CTranslate2的表现更好,尤其是batch size为1时。

在这里插入图片描述

7. 量化对模型性能的影响

  • Int8量化模型性能与float16格式差别不大。量化文档
    在这里插入图片描述
  • Int4量化模型与float16模型相比,精度损失在1-2个百分点左右。(Yi模型与Baichuan2模型有类似结论)Baichuan2

8. 常见LLM用GPU参考

GPU 显存
H200 141GB
H100, H800 80GB
A100, A800 80GB
A100 40GB
V100 32GB
RTXA6000 48GB
RTX4090, RTX3090, A10, A30 24GB
RTX4070 12GB
RTX3070 8GB

参考资料

  1. Qwen速度基准
  2. Qwen-1_8B-Chat
  3. Qwen-7B-Chat-Int8
  4. Qwen-14B-Chat-Int8
  5. Yi-6B-Chat
  6. GLM-130B量化
  7. Nemotron-4-340B-Instruct
  8. DeepSeek-V2-Chat
  9. Zenn文章
  10. Baichuan2

网站公告

今日签到

点亮在社区的每一天
去签到