如何知道一个大模型是否可以在自己的显卡上运行呢?

1.经验评估

  • 推理显存估算:7B-float 是 28 GB,7B-BF16 是 14GB,7B-int8 是 7GB;其他版本以此类推即可。
  • 训练的参数类型,只能是 float / BF16
  • 训练 所需显存 保守估算 是 同参数同类型llm 推理 的 4倍。
    • 例子:7B-float 训练 显存:28 * 4 = 112 GB
方法 bits 7B 13B 30B 65B 8*7B
全参数微调 16 160GB 320GB 600GB 1200GB 900GB
Freeze 16 20GB 40GB 120GB 240GB 200GB
LoRA 16 16GB 32GB 80GB 160GB 120GB
QLoRA 8 10GB 16GB 40GB 80GB 80GB
QLoRA 4 6GB 12GB 24GB 48GB 32GB

2.精确评估

2.1 在线评估

accelerate estimate-memory 是 huggingface 的 accelerate 开发库中提供的一个工具。可网页在线访问

https://huggingface.co/spaces/hf-accelerate/model-memory-usage选择相应模型进行评估

2.2 本地评估
  • 安装 accelerate, transformers
1
2
pip install accelerate
pip install transformers
  • 使用方法举例
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 基本使用方法
accelerate estimate-memory mistralai/Mistral-7B-v0.1

# 只显示指定的数据类型
accelerate estimate-memory mistralai/Mistral-7B-v0.1 --dtypes float16

# 指定开发库(针对本地模型,Hub上存储的模型不需要指定)
accelerate estimate-memory mistralai/Mistral-7B-v0.1 --dtypes float32 float16 --library_name transformers

# 设置 trust_remote_code=True
accelerate estimate-memory Qwen/Qwen1.5-7B #正常
accelerate estimate-memory Qwen/Qwen-7B #报错
accelerate estimate-memory Qwen/Qwen-7B --trust_remote_code #可以运行

# 其他模型
accelerate estimate-memory google/gemma-7b
accelerate estimate-memory baichuan-inc/Baichuan2-7B-Base --trust_remote_code

如何知道一个大模型是否可以在自己的显卡上运行呢?
https://linxkon.github.io/如何知道一个大模型是否可以在自己的显卡上运行呢?.html
作者
linxkon
发布于
2023年11月25日
许可协议