大模型微调对显存的要求,核心看微调方式、模型参数量和序列长度;全量微调通常按“参数量×16到20字节再加激活”估算,LoRA能压到十几GB到几十GB,QLoRA则让7B、13B模型在24GB显卡上也有机会跑起来。
大模型微调需要多大显存?先记住这个估算公式
显存由四块组成
微调不是只把模型权重加载进来就完事,训练时显存主要被四部分吃掉:
- 模型权重:FP32约4字节/参数,FP16或BF16约2字节/参数,INT8约1字节,INT4约0.5字节。
- 梯度:可训练参数越多,梯度占用越大,FP16梯度约2字节/参数。
- 优化器状态:Adam类优化器通常要保存一阶动量和二阶方差,FP32下约8字节/参数。
- 激活值:和批次大小、序列长度、隐藏层维度强相关,序列越长、批次越大,激活值涨得越快。
业内专家指出,很多微调显存爆掉,不是模型权重大,而是优化器状态和激活值没算够,据NVIDIA官方文档,Transformer类模型训练显存通常由参数、梯度、优化器状态和激活值共同构成。
全量微调和LoRA微调显存要求对比
先看一张粗略对比表,数字是行业常见估算,实际会因框架、序列长度、批次大小浮动。
| 微调方式 | 7B模型显存大致范围 | 13B模型显存大致范围 | 适合硬件 |
|---|---|---|---|
| 全量FP16/BF16 | 约112GB起,加激活更高 | 约208GB起 | 多卡A100/H100 |
| LoRA FP16 | 约18GB到30GB | 约30GB到50GB | 24GB勉强,40GB更稳 |
| QLoRA 4bit | 约8GB到16GB | 约12GB到24GB | 24GB可跑,40GB舒服 |
全量微调为什么这么吃显存?以7B为例,FP16权重约14GB,梯度约14GB,Adam优化器状态和主权重加起来可能超过80GB,总计很容易超过110GB,这也是全量微调通常要上多卡的原因。
LoRA只训练低秩适配器,基座模型冻结,优化器状态大幅减少,但激活值仍在,QLoRA再把基座量化到4bit,权重占用降到原来的零头,据Hugging Face PEFT文档,QLoRA通过4bit量化基座和低秩适配器,显著降低了微调门槛,行业共识认为,消费级显卡微调大模型,优先考虑QLoRA而不是硬上全量。
本地部署大模型微调显存不够怎么办
如果你在本地机器上遇到CUDA out of memory,按下面顺序处理:
- 把
per_device_train_batch_size降到1。 - 提高
gradient_accumulation_steps,用时间换显存。 - 打开
gradient_checkpointing=True,激活值会明显下降,训练速度会变慢。 - 缩短
max_seq_length,比如从2048降到1024或512。 - 改用QLoRA 4bit加载基座。
- 优化器换成
paged_adamw_8bit。 - 启用DeepSpeed ZeRO-3,把优化器和参数卸载到CPU。
- 多卡不够就换更大显存卡,或者用云GPU按小时租。
这些操作里,梯度检查点、4bit量化、8bit优化器是性价比最高的三招。
实操:把7B模型塞进24GB显卡的配置清单
关键参数
下面是一段常见训练参数思路,框架用Transformers加PEFT加bitsandbytes:
from transformers import TrainingArguments, BitsAndBytesConfig import torch bnb_config = BitsAndBytesConfig( load_in_4bit=True, bnb_4bit_quant_type="nf4", bnb_4bit_compute_dtype=torch.bfloat16, bnb_4bit_use_double_quant=True, ) training_args = TrainingArguments( per_device_train_batch_size=1, gradient_accumulation_steps=8, gradient_checkpointing=True, fp16=True, optim="paged_adamw_8bit", max_grad_norm=0.3, learning_rate=2e-4, num_train_epochs=1, logging_steps=10, save_strategy="epoch", )
如果显存还是紧,把fp16=True换成bf16=True,前提是显卡支持BF16,A100、H100、RTX 30系以后多数支持。
启动与监控
安装依赖:
pip install transformers peft bitsandbytes accelerate deepspeed
启动训练时挂DeepSpeed配置:
python train.py --deepspeed ds_config.json
DeepSpeed配置里重点看三项:
zero_optimization.stage=3offload_optimizer.device=cpuoffload_param.device=cpu
监控显存用:
nvidia-smi -l 1
如果碎片多,加环境变量:
export PYTORCH_CUDA_ALLOC_CONF=expandable_segments:True
大模型微调云服务器显存价格怎么选
云GPU价格不是只看显卡型号,显存容量、显存带宽、NVLink、CPU内存、本地盘、网络带宽都会影响报价,按小时计费适合短任务,包月适合长期训练,切分卡看起来便宜,但显存和带宽被切分后,微调大模型容易卡在通信和激活值上。
北京上海租GPU微调,显存配置怎么挑

北京、上海等地算力租赁供给多,机型选择全,但价格不一定最低,选卡时按任务倒推:
- 7B QLoRA:24GB卡可跑,优先看RTX 4090、A5000级别。
- 13B QLoRA:24GB紧张,40GB更稳。
- 34B QLoRA:建议48GB或80GB。
- 70B QLoRA:建议80GB单卡或多卡。
- 全量7B:单卡80GB不够,通常要双卡或更多A100/H100。
租卡前问清楚:是否整卡、是否支持NVLink、CPU内存多大、数据盘是否本地SSD、能否持久化保存。显存不够,再便宜也跑不起来;显存够但带宽差,训练时间会拉长。
显存预算不是拍脑袋,先确定全量还是PEFT,再按参数量、精度、序列长度做估算,最后用梯度检查点和ZeRO兜底,把这几步走完,大多数微调任务都能找到合适的硬件档位。
大模型微调对显存的要求常见问答
Q1:大模型微调对显存的要求和推理有什么不同?
推理通常只加载权重和KV Cache,显存占用低得多,微调还要保存梯度、优化器状态和激活值,所以同一模型微调比推理更吃显存,7B模型推理可能十几GB,全量微调却要上百GB。
Q2:24GB显卡能微调多大的模型?
用QLoRA 4bit,7B模型比较稳,13B模型在短序列、小批次下可尝试,LoRA FP16跑7B要看序列长度和批次,容易接近上限,全量微调7B基本不可能。
Q3:QLoRA比LoRA省多少显存?
QLoRA把基座量化到4bit,权重占用大幅下降,但激活值仍随序列和批次增长,7B模型QLoRA常见占用在十几GB,LoRA FP16常见在二十多GB到三十GB,实际显存占用以训练日志和nvidia-smi为准。

