🧪 AI 与算力 · 训练态显存估算

LoRA微调需要多少显存 · rank、批量与 QLoRA 对照

训练态与推理态的显存口径完全不同:冻结的基座权重之外,还要算 LoRA 参数、梯度、AdamW 优化器状态与激活。本工具按基座参数量、rank、序列长度、批量、4bit QLoRA 与梯度检查点逐项估算,输出可训练参数占比、推荐显卡与 OOM 风险;公式与量化系数按版本存放可替换,全部本地计算。

rank 敏感性4bit QLoRA梯度检查点批量估算

① 微调配置

带 * 为必填 · 单位按十进制 GB

填好配置后点「估算训练显存」,结果只写入下方结果区。

📐 估算结果尚未生成 LoRA 省的是「可训练参数对应的梯度与优化器状态」,冻结的基座权重仍然要放进显存;QLoRA 才进一步压缩基座部分。

🧾口径说明与常见误填

训练态比推理态多出梯度、优化器状态与激活,别拿推理公式套微调。

训练态与推理态差异
推理只需权重 + KV Cache + 少量运行时开销;训练还要保存梯度、优化器状态与反向传播用的激活。LoRA 把「需要梯度与优化器状态的参数」压缩到极小比例,但冻结的基座权重依然占显存。
可训练参数公式
每个目标线性层的 LoRA 参数量 = rank × (输入维度 + 输出维度);总量 = 层数 × 每层目标模块数 × 该值。默认 hidden 4096、32 层、每层 2 个模块,rank 8 时约 4.2M 参数,占 7B 基座约 0.06%。
优化器状态口径
AdamW 通常按每个可训练参数约 16 字节估算(FP32 主权重 4 + 梯度 4 + 一阶动量 4 + 二阶动量 4);SGD / Adafactor 约 8 字节。本页按所选优化器切换系数。
QLoRA 与检查点
4bit QLoRA 把基座权重从每参数 2 字节压到约 0.5 字节(另有少量量化常数);梯度检查点用重算换显存,本页按激活系数 0.25 估算,开启会延长训练时间。实际占用以框架实测为准。

这个工具解决什么问题

「微调需要多少显存」不能套用推理显存公式:训练态除了冻结的基座权重,还要放可训练参数、梯度、AdamW 优化器状态与反向激活。本工具按基座参数量、LoRA rank、目标模块数、序列长度、批量、4bit QLoRA 与梯度检查点逐项估算,输出训练显存总量、可训练参数占比、推荐显卡与 OOM 风险,并把训练与推理两种口径并列对比。另有 rank / 量化方式敏感性表、批量估算、示例、复制结论与导出 CSV。公式与量化系数按版本独立存放可替换,全部在浏览器本地计算;结果是规划上限估算,实际占用请以所用训练框架的实测为准。

四条微调避坑要点

① rank 不是越大越好:rank 翻倍会翻倍可训练参数与优化器状态,但对多数指令微调任务,8~32 已足够;先用小 rank 验证数据质量。

② 长序列先看激活:激活显存与 seq × batch × hidden × layers 相关,开梯度检查点可显著下降,代价是训练变慢。

③ QLoRA 省的是基座:4bit 量化压缩的是冻结权重,梯度与优化器状态仍按可训练参数计算;两者不要混为一谈。

④ 留 20% 以上余量:CUDA 上下文、碎片与峰值激活都会额外吃显存,按总量上浮后选卡,别卡着标称容量跑。

怎么用

  1. 第 1 步 · 填写基座与 LoRA 配置
    选参数量、rank、目标模块数,架构默认按 32 层 / hidden 4096 估算。
  2. 第 2 步 · 设置训练负载与优化
    填序列长度、批量,选基座加载方式、梯度检查点与优化器。
  3. 第 3 步 · 估算并看风险
    查看显存分解、OOM 风险灯、推荐显卡与训练 / 推理口径差异。
  4. 第 4 步 · 对照敏感性或批量
    比较不同 rank 与量化方式,多套配置可用批量框一次估算。

更新记录

  • v1.0 2026-11-09
  • 2026-11-09 上线首个版本:rank 公式、QLoRA 系数、检查点、OOM 风险与批量估算

常见问题

LoRA 微调需要多少显存?
取决于基座大小、rank、序列长度与批量。7B 模型用 4bit QLoRA、rank 8、序列 1024、batch 1 并开启梯度检查点,常见估算约 6~9 GB;改成 FP16 全量基座会明显增加。请用本页按实际配置估算。
QLoRA 显存为什么比 LoRA 小?
QLoRA 把冻结的基座权重以 4bit 加载(每参数约 0.5 字节,FP16 为 2 字节),大幅压缩权重部分;LoRA 参数、梯度与优化器状态仍在较高精度下保存,所以节省主要体现在基座权重。
rank 与显存关系大吗?
rank 直接决定可训练参数量:每层每模块参数 = rank × (d_in + d_out)。rank 从 8 升到 64,可训练参数与对应梯度、优化器状态约增至 8 倍,但在 7B 基座里占比仍通常小于 1%。
可训练参数占比怎么算?
先算 LoRA 参数总量 = 层数 × 每层目标模块数 × rank × (输入维度 + 输出维度),再除以基座参数量。默认 32 层、2 模块、hidden 4096、rank 8 时约 4.2M,占 7B 约 0.06%。
梯度检查点省显存吗?
会。它通过反向时重算部分激活,把激活显存显著降低(本页按系数 0.25 估算),代价是额外计算时间。长序列或大批量时尤其值得开启。
批量大小显存怎么变化?
激活显存与 batch × seq 近似成正比,批量翻倍激活部分大致翻倍;权重、LoRA 状态基本不变。OOM 时可先减小批量或序列长度,再考虑梯度累积保持等效批量。

💬 留言板 0

全部留言需审核通过后展示
💬

还没有留言,来抢沙发吧!

✍️ 说点什么
0 / 500
图形验证码
👣 做完这一步,顺便看看
📄 上下文窗口字数换算 按窗口 Token 与中英比例换算汉字、英文词与 A4 页数… → 🧠 大模型显存估算 按参数量、精度、上下文与批大小估算权重显存、KV Cache… → 🧰 乱码修复 / 文本编码转换 在线乱码修复工具:上传乱码文本文件或粘贴乱码字符串,用 UT… → 💻 假装工作模拟器 老板走近工位的一瞬间,点一下就能从摸鱼切回正经工作界面。代码… →
全部工具 →