大模型显存计算

大模型微调需要多少GPU显存?

  如:微调 1B 模型,16bit = 2byte

  1. 全量微调

  显存占用分为:

  • model weight(参数本身):10亿(bit) = 20亿(byte)约等于2GB

  训练模型时,通过一系列反向传播的方法,来更新模型参数,涉及以下gradient​和optimizer states​参数。

  不断计算梯度,以更新模型参数

  • gradient(梯度):近似2GB
  • optimizer states(优化器):近似4倍的model weight​,即8GB
  • Activation:忽略不计

  共12GB,约6倍的model weight​显存。

  1. 高效微调(PEFT)
  • LoRA微调:以更少量的参数进行学习,从而对原有模型微调。

image

  原有模型model weight​为2GB

  ​Adaptor weight​为0.05GB(如按2.5%的比例)

  ​gradient​和optimizer states​约为0.25GB(如按2.5%的比例)

  共约2.3GB。

  • QLoRA微调:对原有参数(model weight​)进一步压缩,如将原有的16bit转换为8bit或者4bit。

论文推荐:

  1. GPU估计: LLMem: Estimating GPU Memory Usage for Fine-Tuning Pre-Trained LLMs
  2. QLoRA:Efficient Finetuning of Quantized LLMs
  3. LoRA: Low-Rank Adaptation of Large Language Models

  ‍

posted @ 2024-06-21 00:11  PamShao  阅读(198)  评论(0编辑  收藏  举报