如何评估大模型全参数微调需要的显存
模型的大小、批处理大小(Batch Size)、序列长度,以及是否采用了一些显存优化技术。模型的大小直接影响显存使用。例如,一个有110M参数的模型(如BERT-base)与一个有340M参数的模型(如BERT-large),在相同条件下,后者会消耗更多的显存。批处理大小增加意味着同时处理更多的数据,这会线性增加显存的需求。输入的序列长度越长,模型处理时占用的显存也就越多。这是因为模型必须处理并存
文章共475字 · 阅读需要大约2分钟
一键AI生成摘要,助你高效阅读
问答
·
简介
现有的大模型 默认的是16bits精度,当模型的参数量大小为 **B ,推理所需的显存一般是 ** 的 2 倍。对于全参数微调所需显存,目前来说普遍的说法是约为推理所需显存的 3-4 倍(包括模型推理(1倍)、梯度(1倍)、优化器状态(AdamW 2倍,SGD 1倍)),也就是 ** 的 6-8 倍。但是从实际测试来看的话,全参数微调所需显存约为推理所需显存的10 倍左右,也即 ** 的20倍左右。
以下是模型不同微调方法时候的经验显存数值:
方法 | 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 |
结论
从上述的经验显存上也可看到,全参数微调,约为 ** 的20倍左右;而4 bits 的QLoRA,所需的显存约为 ** 的1 倍左右。
更多推荐
已为社区贡献3条内容
所有评论(0)