微调一个模型到底需要多大显存?直接答案:没有统一数字,24GB显卡通常能跑7B量级的QLoRA或小模型LoRA;7B全量微调在混合精度Adam下往往需要80GB以上,13B、70B全量微调则要数百GB显存或多卡集群。
微调显存由什么决定?先看四个变量
参数量与精度是基本盘
模型越大,权重本身占的显存越多,精度越低,显存越省。
| 模型规模 | fp32权重 | fp16/bf16权重 | int8权重 | 4bit权重 |
|---|---|---|---|---|
| 5B | 约6GB | 约3GB | 约1.5GB | 约0.8GB |
| 7B | 约28GB | 约14GB | 约7GB | 约3.5-4GB |
| 13B | 约52GB | 约26GB | 约13GB | 约6.5-7GB |
| 70B | 约280GB | 约140GB | 约70GB | 约35-40GB |
这张表只算权重,全量微调还要加梯度、优化器状态和激活值,显存会成倍上涨。
微调方法决定显存下限
- 全量微调:更新所有参数,权重、梯度、优化器状态都要占显存。
- LoRA:冻结基座模型,只训练低秩适配器,梯度和优化器状态只跟适配器有关。
- QLoRA:先把基座模型4bit量化,再挂LoRA,显存门槛最低。
同样是7B模型,全量微调可能要80GB以上,QLoRA在12GB到24GB显卡上就有机会跑起来,差距来自训练状态,不是来自模型本身。
批大小和序列长度是隐形大户
激活值会随着批大小和序列长度增长,你从512长度拉到2048,再从batch size 1拉到8,显存可能直接翻几倍,长文本微调尤其吃显存,因为注意力机制要保存中间结果。
优化器与并行策略影响上限
Adam会为每个参数保存一阶矩和二阶矩,显存开销很大,换成8bit优化器、paged optimizer,能省下一块,多卡场景下,ZeRO-1、ZeRO-2、ZeRO-3和FSDP会把优化器状态、梯度、参数切分到不同GPU,单卡压力下降,但通信开销上升。
7B模型全量微调需要多大显存?算一笔实操账
显存估算公式
混合精度全量微调,常见估算方式是:

- 权重:参数量 × 2 bytes
- 梯度:参数量 × 2 bytes
- Adam优化器状态:参数量 × 8 bytes
- 激活值:与batch、序列长度、层数相关
- 临时缓存:通信、碎片、CUDA上下文
合计模型状态约等于参数量 × 12 bytes,7B模型就是 7B × 12 bytes ≈ 84GB,这还没算激活值,所以单卡80GB跑7B全量微调,短序列、小batch、开梯度检查点可能勉强;长序列或大batch通常不够。
单卡80GB能不能跑7B全量微调?
看场景。
- 序列长度512、batch size 1、梯度检查点开启、8bit优化器:有机会。
- 序列长度2048、batch size 4、不检查点:大概率OOM。
- 想稳定训练:2张80GB起步,配合ZeRO-2或ZeRO-3。
- 想更宽松:4张80GB更稳妥。
多卡并行怎么选
常用路径是DeepSpeed或FSDP,命令示例:
deepspeed --num_gpus=2 train.py \ --deepspeed ds_config.json \ --model_name_or_path /path/to/model \ --per_device_train_batch_size 1 \ --gradient_accumulation_steps 8 \ --gradient_checkpointing true \ --bf16 true
ds_config.json里可以开ZeRO-2或ZeRO-3,ZeRO-3省显存更明显,但通信更多,卡间带宽不足时,训练速度会掉。
LoRA微调显存占用多少?24GB显卡的真实场景
LoRA为什么省显存
LoRA只训练低秩矩阵,基座权重冻结,不保存全量梯度,也不保存全量优化器状态,7B模型fp16基座约14GB,加上激活值、适配器和临时缓存,24GB显卡通常能跑起来,前提是控制序列长度和batch size。
QLoRA把门槛降到消费级
QLoRA把基座量化到4bit,7B模型4bit权重约3.5-4GB,加LoRA适配器、激活值和缓存,8GB到12GB显存就有机会跑通,24GB显卡跑7B QLoRA比较宽松,13B QLoRA也能尝试,但序列长度和batch要保守。
行业共识认为,QLoRA让消费级显卡具备了微调7B模型的能力,这也让个人开发者和中小团队不必一上来就租多卡A100。
实操:用peft跑QLoRA的关键配置
安装依赖:
pip install transformers peft bitsandbytes accelerate datasets
关键代码路径:

from transformers import AutoModelForCausalLM, BitsAndBytesConfig
from peft import LoraConfig, get_peft_model
bnb_config = BitsAndBytesConfig(
load_in_4bit=True,
bnb_4bit_compute_dtype=torch.bfloat16,
bnb_4bit_quant_type="nf4",
)
model = AutoModelForCausalLM.from_pretrained(
"/path/to/model",
quantization_config=bnb_config,
device_map="auto",
)
lora_config = LoraConfig(
r=16,
lora_alpha=32,
target_modules=["q_proj", "v_proj"],
lora_dropout=0.05,
bias="none",
task_type="CAUSAL_LM",
)
model = get_peft_model(model, lora_config)
训练参数建议:
per_device_train_batch_size=1gradient_accumulation_steps=8max_length=512gradient_checkpointing=Trueoptim="paged_adamw_8bit"bf16=True
这些参数能显著降低显存峰值。
24GB显卡能微调多大模型?
- 7B QLoRA:比较稳。
- 13B QLoRA:可尝试,序列长度建议512以内。
- 70B QLoRA:单卡24GB通常不够,需要多卡或云GPU。
- 5B到3B全量微调:24GB可能有机会,但也要看序列长度。
北京GPU服务器租用价格与微调显存成本怎么平衡
本地显卡 vs 云GPU:场景对比
个人实验、小规模LoRA,本地RTX 4090 24GB够用,团队要跑7B全量、13B以上微调,本地多卡成本高,云GPU更灵活。
在北京做本地化部署,团队常问GPU服务器租用价格与显存配置如何平衡,北京地区机柜、电力、带宽成本较高,同卡型价格通常比二三线城市贵一些,据工信部相关产业观察,国内智能算力租赁需求近年持续上升,按需实例和包月实例的价差也比较明显。
价格与显存配置的取舍
- 按小时计费:适合调参、验证、短时训练。
- 包月:适合持续训练和多人共享。
- 抢占式实例:价格低,但可能被回收,适合能断点续训的任务。
- A100 80GB、H100:适合全量微调和大模型LoRA。
- RTX 4090 24GB:适合QLoRA和小模型微调。
显存不够时,优先换方法,再考虑加卡。

显存不够时的降级路径
- 降batch size,增gradient_accumulation_steps。
- 开gradient_checkpointing。
- 换paged_adamw_8bit优化器。
- 从全量微调切到LoRA。
- 从LoRA切到QLoRA。
- 缩短max_length。
- 多卡FSDP或ZeRO。
- 最后才是换更大显存GPU。
微调显存优化清单:从OOM到跑通
- 先跑
nvidia-smi -l 1观察显存峰值。 - 用
torch.cuda.max_memory_allocated()定位真实占用。 - 设置
per_device_train_batch_size=1。 - 设置
gradient_accumulation_steps=8或更高。 - 开启
gradient_checkpointing=True。 - 使用
bf16或fp16混合精度。 - 优化器选
paged_adamw_8bit。 - 序列长度从256或512开始试。
- 开启FlashAttention 2。
- 清理无用缓存和日志。
- 多卡时选ZeRO-2或ZeRO-3。
- 保存检查点,避免OOM后重跑。
业内专家指出,显存估算不能只看参数量,训练框架、CUDA版本、碎片程度、通信缓存都会影响最终占用,据统计,多数OOM问题可以通过降batch、开检查点、换QLoRA解决,不必立刻升级硬件。
Q&A:微调一个模型到底需要多大显存?
微调一个模型到底需要多大显存?
看方法,7B全量微调混合精度Adam通常要80GB以上,多卡更稳,7B LoRA在24GB显卡上可跑,7B QLoRA在8GB到12GB显存就有机会跑通,13B以上建议24GB起步或云GPU,70B通常要多卡。
LoRA微调比全量微调省多少显存?
省在梯度、优化器状态和部分激活值,全量微调要保存全部参数的梯度与Adam状态,LoRA只保存适配器部分,所以7B模型能从80GB级别降到24GB级别,QLoRA进一步量化基座,门槛更低。
只有一张24GB显卡,能微调多大模型?
7B QLoRA比较现实,13B QLoRA可尝试但序列长度要短,全量微调7B通常不够,除非序列极短、batch为1并开启多种省显存策略,70B QLoRA在单卡24GB上通常跑不起来。
微调显存没有万能数字,先定模型、方法、序列长度和batch,再按公式估算,显存不够时,QLoRA和多卡并行是两条最直接的路径。