QLoRA:显存预算不能只看权重位宽
区分存储权重、计算精度、适配器与训练状态,建立完整内存账本。
QLoRA: Efficient Finetuning of Quantized LLMs · Dettmers et al. · arXiv:2305.14314
Token Lab 原创学习解读 · 来源核对 2026-10-25 · 区分论文主张与合成教学例子。
01 · 论文提出了什么
QLoRA 将冻结的 4-bit 基座与可训练 LoRA 结合。NF4、双重量化、分页优化器针对不同内存成本。论文在特定硬件与训练设置下展示大模型微调;本站并不运行这类训练。
一手来源:论文摘要 ↗学习指南与本课目录
LEARNING CONTRACT理解 → 实现 → 研究
目标:解释本课机制、复现一个例子、测试一个失败案例。读完不自动代表掌握。
- 理解层:写明假设、形状/单位和一个反例。
- 实现层:复算数值例子并检查边界。
- 研究层:在匹配预算下比较一个替代方法。
02 · 核心机制
Text / 原始公式
Mtotal ≈ Mbase + Mquant-metadata + Madapter
+ Mgrad + Moptimizer + Mactivation + Mworkspace
Raw base storage = parameter_count × bits / 8存储精度与算术精度是不同约定。紧凑权重表示需要在计算中解释,梯度仍通过运算传向适配器。量化元数据也占内存。分页状态有助于管理峰值,但数据搬运不是免费的,也不会消除激活内存。
符号与直觉为教学解释,完整假设及实现细节请对照原论文方法。
机制图与逐步推导
| 符号 | 含义 |
|---|---|
| b | 每个基座权重的存储位数,不含元数据 |
| N | 基座参数量 |
| Mactivation | 依赖工作负载的保存激活 |
- 从 N×b/8 字节开始,再加入量化尺度等元数据。除以 10⁹ 得到 GB,除以 2³⁰ 得到 GiB,单位必须明确。
×10⁹ 时,原始 4-bit 存储为 3.5 GiB,不含适配器、梯度、优化器状态与激活。 - 共同开销由 6 增至 20 GB 时,16-bit/4-bit 总量比从 20/9.5≈2.105 降至 34/23.5≈1.447。这解释了上下文长度为何重要。
分别报告存储 dtype 与计算 dtype。正向成功并不证明反向与优化器步骤能装入内存。
改变一个变量,解释结果为什么变。
原创教学计算,并非论文 benchmark 复现。条形在面板内相对缩放,具体数值与单位以标注为准。
04 · 手算一个例子
原创账本:70 亿原始权重在 16-bit 下为 14 GB,4-bit 下为 3.5 GB,单位是十进制 GB。下方可调“其他内存”。若其他内存为 6 GB,总量分别为 20 和 9.5 GB,比例约 2.11 倍,而非 4 倍。这些假设开销不是任何具体模型的实测。
05 · 设计实验
选小型受支持模型,固定序列长度、microbatch 和优化器做 profile。分别记录 allocated 与 reserved 峰值,覆盖完整反向和优化器步骤。用同样数据、适配器目标比较 16-bit LoRA 与量化 LoRA。扫描序列长度以判断何时激活主导,同时记录质量、吞吐和内存。
写出一个假设,保存配置与原始结果,提出替代解释,只报告证据支持的结论。关联实验是本地起点,不是完整论文复现。
打开关联课程/实验 →06 · 局限与审稿式追问
分析提醒:4-bit checkpoint 不保证端到端节省四倍或质量完全一致。量化分布、离群值、元数据、kernel 与 CPU 分页都会影响结果。合成内存计算器验证算术,不证明硬件可行性。
为什么更长上下文可能削弱相对内存优势?
冻结权重存储近似固定,激活与注意力相关状态则随工作负载增长。当两边共同开销占主导时,总量之比趋近 1。
07 · 阅读原文
NF4、双重量化和分页优化器章节;分开分析各自贡献。
年份采用首次 arXiv 投稿年份。未锁定版本的链接随修订变化,复现报告请记录准确版本。此处 DeepSeek-R1 明确固定为 v1。
继续学习本主题
LoRA:约束的是更新,而非整个模型
分解权重更新、计算可训练参数,并解释第一次梯度的不对称性。
Hu et al. · arXiv:2106.09685
DPO:通过相对对数概率学习偏好
推导成对偏好 margin,并观察 β 对单个偏好样本的影响。
Rafailov et al. · arXiv:2305.18290