模型微调最容易被问成一句话:"7B 要几张卡,70B 要几张卡?"
这个问题没法直接回答。训练和推理是两套显存账,LoRA、QLoRA 和全量微调的差别又非常大。7B 模型用 QLoRA 可以在一张 24GB 卡上起步,但做全量微调,参数、梯度、优化器状态和激活值加起来会迅速超过 100GB。
这篇把 7B 到 67B 放在同一套比较口径里,先比较三种微调方式的显存、质量、速度和运维成本,再给训练与推理的 GPU 配置矩阵,最后说明不同云环境怎么选。
直接结论
| 你的目标 | 推荐方式 | 7B 到 14B | 27B 到 32B | 67B 到 70B |
|---|---|---|---|---|
| 低成本适配任务 | QLoRA | 1×24GB 到 1×48GB | 1×48GB 到 1×80GB | 1×80GB 或 2×48GB |
| 快速迭代、多任务适配 | LoRA | 1×24GB 到 1×48GB | 2×48GB 或 1×80GB | 4×80GB 起步 |
| 全面能力更新、持续预训练 | 全量微调 | 4×48GB 或 2×80GB 起步 | 8×80GB 或 16×48GB 起步 | 16×80GB 起步 |
| 只做线上推理 | 量化推理 | 1×24GB | 1×48GB | 2×48GB 或 2×80GB |
这张表是起步配置,不是承诺。序列长度、batch、梯度检查点、并行策略和框架版本都会改变结果。
比较口径:先分清训练和推理
推理显存主要看三笔账:
text
推理显存 ≈ 权重 + KV 缓存 + 运行时开销
训练显存要看五笔账:
text
训练显存 ≈ 权重 + 梯度 + 优化器状态 + 激活值 + 临时 buffer
所以"7B 推理只要 14GB 权重"并不等于"7B 全量微调只要 14GB"。训练时 Adam 还要保存动量、方差和 FP32 主权重,激活值也会随着序列长度迅速增长。
三种微调方式对比
| 维度 | 全量微调 | LoRA | QLoRA |
|---|---|---|---|
| 更新参数 | 全部参数 | 低秩适配器 | 4-bit 基座 + 低秩适配器 |
| 训练显存 | 最高 | 中等 | 最低 |
| 7B 起步显存 | 约 112GB 参数状态 | 24GB 到 48GB | 24GB 可尝试 |
| 32B 起步显存 | 约 512GB 参数状态 | 2×48GB 或 1×80GB | 48GB 可尝试 |
| 67B 起步显存 | 约 1.07TB 参数状态 | 4×80GB 起步 | 48GB 到 80GB |
| 质量上限 | 最高,适合全面更新 | 多数任务接近全量微调 | 接近 16-bit LoRA |
| 训练速度 | 慢 | 较快 | 较慢 |
| 部署复杂度 | 高 | 低 | 中 |
| 推理成本 | 与原模型一致 | 可合并适配器 | 与量化基座相关 |
| 适合场景 | 持续预训练、领域迁移 | 多任务、快速迭代 | 单卡、低预算、原型 |
全量微调按 Adam 混合精度粗略估算,每个参数需要约 16 字节:
text
2 字节权重
+ 2 字节梯度
+ 4 字节 FP32 主权重
+ 8 字节 Adam 一阶/二阶动量
= 约 16 字节 / 参数
7B 约 112GB,14B 约 224GB,32B 约 512GB,67B 约 1.07TB。这还没算激活值和临时 buffer。
LoRA 冻结基座,只训练低秩矩阵。它的显存大头从"全量梯度 + 优化器状态"变成了"基座权重 + 激活值 + 少量适配器"。
QLoRA 再把基座量化到 4-bit NF4。65B 模型可以在单张 48GB GPU 上微调,这是 QLoRA 最有代表性的结果。代价是训练速度、数值稳定性和框架兼容性要更多调优。
7B 到 67B 训练配置对比
| 参数量 | QLoRA | LoRA | 全量微调 | 关键变量 |
|---|---|---|---|---|
| 7B / 8B | 24GB 可尝试 | 24GB 到 48GB | 4×48GB 或 2×80GB 起步 | 序列长度、batch、梯度检查点 |
| 13B / 14B | 24GB 到 48GB | 48GB 起步 | 8×48GB 或 4×80GB 起步 | 激活值和并行策略 |
| 27B / 32B | 48GB 可尝试 | 2×48GB 或 1×80GB | 8×80GB 或 16×48GB 起步 | 长序列下激活值 |
| 67B / 70B | 48GB 到 80GB | 4×80GB 起步 | 16×80GB 起步 | ZeRO-3/FSDP、通信和 checkpoint |
QLoRA 的"单卡可跑"有前提:序列不能太长,batch 要小,梯度检查点要开,框架版本要匹配。它适合先验证数据和方法,不等于能直接承载大规模训练。
7B 到 67B 推理配置对比
| 参数量 | FP16 权重 | FP8 权重 | INT4 权重 | 推荐推理配置 |
|---|---|---|---|---|
| 7B / 8B | 约 14GB | 约 7GB | 约 3.5GB | 1×24GB |
| 13B / 14B | 约 28GB | 约 14GB | 约 7GB | 1×24GB 或 1×48GB |
| 27B / 32B | 约 54GB 到 64GB | 约 27GB 到 32GB | 约 14GB 到 16GB | 1×48GB 或 2×48GB |
| 67B / 70B | 约 134GB 到 140GB | 约 67GB 到 70GB | 约 34GB 到 35GB | 2×48GB 或 2×80GB |
推理还要加 KV 缓存。KV 缓存按层数、KV 头数、head_dim、序列长度和批大小计算。长上下文场景里,KV 缓存可能比权重更早把显存吃满。
以 Qwen3.8-27B FP8 为例,权重 30.9GB,加载后约 27.6GiB。单张 48GB 卡能放下权重,并留出约 15GB 给 KV 缓存。双卡数据并行后,单流约 31 tok/s,总吞吐约 60 tok/s。
量化怎么影响训练和推理
| 精度 | 训练可用性 | 推理价值 | 主要风险 |
|---|---|---|---|
| FP16/BF16 | 全量微调、LoRA 常用 | 质量稳,显存高 | 成本和显存 |
| FP8 | 依赖硬件和框架 | 显存减半,适合 32B 和 70B | 算子支持和质量评估 |
| INT4/NF4 | QLoRA 常用 | 显存最低,适合 7B/14B 和 70B 短上下文 | 精度损失和兼容性 |
需要强调,量化不是一种训练方法。INT4 权重不能直接做纯 4-bit 全量训练,QLoRA 是在冻结的 4-bit 基座上训练 LoRA 适配器。
怎么选:按约束做决策
预算有限、先验证数据
先用 QLoRA。7B/14B 单卡 24GB 到 48GB 就能起步,27B/32B 单卡 48GB 可尝试。先验证数据和任务,再决定是否扩大训练。
多任务、多版本、快速迭代
优先 LoRA。适配器体积小,训练成本低,可以按任务切换。7B/14B 用 24GB 到 48GB,27B/32B 用 2×48GB 或 1×80GB,67B 需要 4×80GB 起步。
全面能力更新和持续预训练
考虑全量微调。7B 需要 4×48GB 或 2×80GB 起步,32B 需要 8×80GB 或更多,67B 通常要 16×80GB 起步。训练前必须用 ZeRO-3 或 FSDP 做分片,并评估通信开销。
只做线上推理
优先看量化和并发。7B/14B 用 24GB,27B/32B 用 48GB,67B FP8 用双卡。长上下文和高并发再往上加显存。
2026 年值得关注的变化
第一,LoRA 生态更成熟。DoRA、LoRA-FA、trainable token 等方法继续降低微调门槛,但适配效果和训练稳定性仍需按任务验证。
第二,QLoRA 仍是低显存微调的重要路径。4-bit NF4、双量化和 paged optimizer 让 65B 级模型可以在单张 48GB 卡上训练,但长序列和大 batch 仍会显著增加显存。
第三,FP8 和 FP4 正在推理侧普及。新一代 GPU 对低精度权重和 KV 缓存的支持更好,但模型、框架和算子必须一起验证。
第四,MoE 模型越来越常见。总参数决定显存,激活参数决定计算量,专家并行和路由策略会影响训练与推理配置。
第五,PD 分离、前缀缓存和投机解码正在改变推理部署。长上下文场景里,Prefill 和 Decode 的最优配置可能完全不同。
常见误区
误区一:7B 全量微调一张 24GB 卡就能跑。
不够。7B 全量微调的参数、梯度和 Adam 状态就超过 100GB,需要多卡分片。
误区二:LoRA 一定比全量微调效果差。
不一定。高质量数据和小秩适配器在很多任务上可以接近全量微调,但全面能力更新和复杂领域适配仍需评估。
误区三:QLoRA 可以无限压缩显存。
QLoRA 降低基座权重,但激活值和长序列仍然吃显存。65B 单卡 48GB 是论文条件下的结果,不代表所有序列和 batch 都能跑。
误区四:推理和训练可以用同一套配置。
不能。推理看 KV 缓存和并发,训练看梯度、优化器状态和激活值。
误区五:多卡一定更快。
多卡会增加通信和同步成本。小模型、短序列、低并发下,单卡可能更划算。
FAQ
Q1:7B 模型 LoRA 微调需要多大显存?
24GB 可以起步,具体取决于序列长度、batch、梯度检查点和 LoRA rank。长序列建议 48GB。
Q2:13B 模型 QLoRA 能单卡 24GB 跑吗?
有机会,但要控制序列长度和 batch,并开启梯度检查点。QLoRA 降低基座权重,激活值仍然是关键。
Q3:32B 全量微调需要多少卡?
粗略按每参数 16 字节算,参数、梯度和优化器状态约 512GB,实际还要加激活值。通常需要 8×80GB 或更多 GPU,并配合 ZeRO-3/FSDP。
Q4:65B QLoRA 单卡 48GB 真的能跑吗?
QLoRA 论文给出的条件是 65B 模型在单张 48GB GPU 上微调。实际能否复现取决于序列长度、batch、框架版本和优化配置。
Q5:推理 70B 一定要双卡吗?
不一定。70B INT4 权重约 35GB,短上下文、低并发可以在 48GB 单卡上尝试。FP8 权重约 70GB,通常需要双卡。
Q6:MoE 模型训练看总参数还是激活参数?
显存主要看总参数,计算和吞吐更多看激活参数。训练时还要看专家并行和负载均衡。
结论
7B 到 67B 的 GPU 配置,没有一张万能表。
全量微调是"权重 + 梯度 + 优化器状态 + 激活值"的账,LoRA 是"基座 + 适配器 + 激活值"的账,QLoRA 是"4-bit 基座 + 适配器 + 激活值"的账。推理则是"权重 + KV 缓存 + 运行时开销"的账。
先用公式估算,再用目标模型做小规模显存压测,最后再决定买几张卡。参数规模只是起点,训练方法和推理场景才是决定配置的关键。