2024-06-23 22:08:20 版本 : LLM基础资料整理:推理所需显存与速度
作者: 系统管理员1 于 2024年06月23日 发布在分类 / 配置安装 / AI / LLM 下,并于 2024年06月23日 编辑
 历史版本

备注 修改日期 修改人
创建版本 2024-06-23 22:08:20[当前版本] 系统管理员1


LLM基础资料整理:推理所需显存与速度

通过此文你可以了解以下几个方面的内容:

  • 要运行一个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 (80 GB) Yi-34B-200K
57B 117G
Qwen2-57B-A14B-Instruct
72B 209G
Qwen2-72B-Instruct

2 Batch Size,量化对所需显存有什么影响?

要点:

  • BatchSize增加,显存占用也会增加。
  • 量化可以节省显存:通过下表中的数据可以看到,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

数据来源:https://huggingface.co/01-ai/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),量化版本推理速度变慢

    详细结果请访问:https://qwen.readthedocs.io/en/latest/benchmark/speed_benchmark.html

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时。

    粘贴图片
    图片来源于参考资料 [9]:生成速度测定使用了同一个问题的生成所用时间(感觉方法不太合理,与常用的 tokens/s 不太一样,但是从结果来看,与Qwen2中给出的结果比较一致)。

7 量化对模型性能的影响如何?

8 常见LLM用GPU参考

GPU 显存
H200 141GB
H100
H800
80GB
A100
A800
80GB
A100 40GB
V100 32GB
RTXA6000 48G
RTX4090
RTX3090
A10
A30
24GB
RTX4070 12GB
RTX3070 8GB
历史版本-目录  [回到顶端]
    wcp知识库系统-京ICP备15024440号-1 -V 5.1.9 -wcp