如果想要在某个模型基数上做全参数微调,究竟需要多少显存?

全参数微调(Full Fine-Tuning)到底需要多少显存,没有一个固定数字,但有一个非常实用的估算规律:

训练时显存 ≈ 模型参数本体 ×(8~16 倍)

之所以远高于“模型大小”,是因为训练时不仅要放模型参数,还要放:

  • 梯度(gradients)
  • 优化器状态(Adam 的 m/v)
  • 激活值(activations)
  • 临时缓存
  • batch / sequence 长度带来的额外开销

一、最核心的经验值

FP16 / BF16 全参数微调(最常见)

如果使用:

  • AdamW
  • fp16 / bf16
  • PyTorch
  • Transformer 架构

通常:

内容 显存占用
模型参数 2 bytes/param
梯度 2 bytes/param
Adam 一阶动量 4 bytes/param
Adam 二阶动量 4 bytes/param
Master FP32 权重 4 bytes/param
合计(不含激活) ≈16 bytes/param

因此:

粗略公式

总显存 ≈ 参数量 × 16 bytes

再加上 activation:

实际训练显存 ≈ 参数量 × (16~24 bytes)

二、不同模型的大致显存需求

7B 模型

例如:

  • Meta 的 Llama 2 7B
  • Alibaba Cloud 的 Qwen2.5 7B

参数:

7B ≈ 70 亿参数

仅训练状态:

7e9 × 16 bytes
≈ 112 GB

再算 activation:

通常需要 140~180GB 显存

现实配置:

配置 是否够
单张 80G A100
2×80G A100
4×48G RTX 6000 Ada
8×24G 4090 勉强可行(需 ZeRO/FSDP)

13B 模型

13e9 × 16
≈ 208GB

实际:

250~350GB 显存

一般至少:

  • 4×80G A100
  • 或更多卡切分

70B 模型

例如:

  • Llama 3 70B

This chapter requires login to view full content. You are viewing a preview.

Login to View Full Content

Course Curriculum

1

基础篇

3

Transformer

4

LangChain

5

Agent

6

RAG

7

LORA

8

大模型推理

9

分布式训练

10

蒸馏

11

多模态