Token Lab搜索

← 全部研究实验
PHD / RESEARCH ENGINEERING

LoRA 低秩适配实验

训练低秩因子、比较解析容量下界,检查初始化失败。

本地计算与合成示例,不调用付费 API,不代表真实大模型基准。
学习指南与本课目录LEARNING CONTRACT

理解 → 实现 → 研究

目标:解释本课机制、复现一个例子、测试一个失败案例。读完不自动代表掌握。

01 · 理解与推导

前置知识 · 矩阵乘法、秩、奇异值与梯度。

低秩更新限制了可能的权重变化空间。本实验拟合已知 8×8 目标,奇异值为 [5,3,1,0.3,0,0,0,0]。秩为 r 时的最优损失为舍弃奇异值的平方和除以 128。

Text / 原始公式
ΔW = BA; A∈R^(r×d), B∈R^(d×r)
trainable parameters = 2dr (vs d²)
L = ||BA−T||²_F / (2×8²)
∇B = (BA−T)Aᵀ/64; ∇A = Bᵀ(BA−T)/64
逐步推导与研究解释
  1. 令 ,由 与 A+B dA,整理得 ∇、∇。实现前先核对维度。
  2. 、A 随机时,初始 ∇A 为零但 ∇B 可非零。两者都为零则梯度都消失。初始输出为零和学习信号为零是不同条件。
  3. 对于此已知对角目标,最优 rank-r Frobenius 误差对应舍弃的尾部奇异值。rank 1 下界为 (9+1+0.09)/128,rank 2 为 1.09/128。有限步优化不一定达到下界。

常见误区:不同秩的相同优化步数不代表相同 FLOPs;低矩阵重建损失不证明下游语言模型质量。

02 · 检查知识掌握

4096×4096 层采用 rank 8,A 和 B 共有多少参数?

查看推导

4096×8 + 8×4096 = 65,536; 0.390625% of 4096²

03 · 运行对照实验

实验任务

使用相同种子和步数比较 rank 1、2、4,再将两个因子均初始化为零。区分秩带来的理论下界与优化尚未达到下界。

可执行的对照实验流程
  1. 用相同种子、学习率和步数比较 rank 1、2、4,记录理论下界、实际损失与剩余差距。
  2. 将两个矩阵同时置零,记录不变的损失;恢复随机 A 并跨种子重复,检查优化差异。
  3. 维度 4096、rank 8 时报告适配器 65,536 参数,对照全量 16,777,216 参数。区分该计算器与 8×8 训练任务。

交付物:输入配置、结果导出、控制变量说明、观察结果、替代解释及下一步验证。

查看提示

A、B 同时为零时两个梯度均为零。A 随机、B 为零,既能保持初始更新为零,又能让 B 的首步梯度非零。

04 · 检查证据

运行实验后查看证据。

仅比较控制变量后的运行结果,导出包含输入与方法。

05 · 解释研究判断

自评要点:解释机制、识别假设、提出可区分不同解释的实验。不使用 LLM 自动评分。

1. LoRA 如何做到初始更新为零但不停止学习?

查看参考答案与评分要点

让一个因子为零、另一个非零,乘积为零,但零因子可以获得非零梯度。

2. 更高 rank 结果更好,是否证明方法更好?

查看参考答案与评分要点

不能单独证明。需要比较计算、参数、调参预算和不确定性,容量与优化都会变化。

3. 解析损失下界能告诉你什么?

查看参考答案与评分要点

它隔离了这个已知矩阵的表示能力限制。实际损失与下界之差可能来自优化,也不能预测 LLM 任务质量。

假设与限制

这是真实的本地矩阵优化,不是语言模型微调。固定基座 ,α/。修改参数量计算器的维度不会改变 8×8 实验。不同秩的相同步数不等于相同 FLOPs。

参考资料

arXiv:2106.09685 · 2021

LoRA: Low-Rank Adaptation of Large Language Models

Hu et al. · 年份为首次 arXiv 投稿年份

建议阅读:低秩参数化、初始化与秩的实验分析。

读后自测:推导参数量和 B=0 时的首步更新;区分小矩阵实验与语言模型微调。

BibTeX
@misc{arxiv210609685,
  title = {LoRA: Low-Rank Adaptation of Large Language Models},
  year = {2021},
  eprint = {2106.09685},
  archivePrefix = {arXiv},
  url = {https://arxiv.org/abs/2106.09685}
}

arXiv:2305.14314 · 2023

QLoRA: Efficient Finetuning of Quantized LLMs

Dettmers et al. · 年份为首次 arXiv 投稿年份

建议阅读:冻结的量化基座、NF4、双重量化与分页优化器。

读后自测:分别核算权重、适配器、优化器状态和激活内存。网站不执行 QLoRA。

BibTeX
@misc{arxiv230514314,
  title = {QLoRA: Efficient Finetuning of Quantized LLMs},
  year = {2023},
  eprint = {2305.14314},
  archivePrefix = {arXiv},
  url = {https://arxiv.org/abs/2305.14314}
}
MATHEMATICAL REVIEW · 2026-10-26

假设、参考实现与验收

这是真实的本地矩阵优化,不是语言模型微调。固定基座 ,α/。修改参数量计算器的维度不会改变 8×8 实验。不同秩的相同步数不等于相同 FLOPs。

已复核目标、导数、算例及实现。通过有限差分或清单检查不代表完成论文复现。

已知 8×8 目标矩阵 → 冻结基座 + 低秩 BA → 固定种子梯度下降 → 损失与奇异值下界比较
机制图:从上到下跟踪每次变换。

运行前:预测一个边界情况

使用相同种子和步数比较 rank 1、2、4,再将两个因子均初始化为零。区分秩带来的理论下界与优化尚未达到下界。

提示:隔离假设

固定基线输入,只改变一个参数或边界;同时比较数值与声明单位。单例通过仅验证该样例。

最小可运行算例

将算例及所链接模块保存在同一目录。使用 Node.js 22 或更高版本,然后运行 node lora-rank.mjs. 无需第三方运行依赖。

import {runPhd} from './phd-core.mjs';
const params={
  "rank": 2,
  "rate": 0.8,
  "epochs": 1000,
  "seed": 42,
  "dimension": 4096,
  "zeroBoth": 0
};
console.log(runPhd('lora-rank',params));

测试与迁移

使用相同种子和步数比较 rank 1、2、4,再将两个因子均初始化为零。区分秩带来的理论下界与优化尚未达到下界。

在下方笔记记录输入、代码版本、期望值和实测值;再构造违反上述假设的反例,解释原结论为何不再成立。

下载完整代码包(.tar.gz) · 完整参考代码与回归检查

预测、检验与证据记录

展开答案前先预测一个结果;练习后记录差异和迁移测试。记录仅存本地,在不同语言版本间共用。

打开记录/导出/清除 →

数学复核范围逐篇记录,不代表完成论文实证复现;可在笔记中记录疑似错误。 复核范围