参数高效适配与遗忘
解释 LoRA、QLoRA、适配范围、数据容量与验证方法。
把适配目标和更新范围分开
调整已有模型可以学习应答格式、任务策略、领域表征和新事实。哪些目标需要多少更新容量,应由任务、数据、底座与验证决定。LoRA 能学习新内容,全参数更新也能只改变风格;二者的区别首先是允许参数怎样变化。
参数高效适配 PEFT 只更新少量参数。低秩更新、插入小型模块、可学习前缀各有不同位置和计算代价。已有底座满足任务时,提示与外部知识可能已够用;需要稳定改变行为或内部表示时,再比较参数适配。
LoRA 的前向与梯度
设原线性层 , 为 。LoRA 冻结底座,添加
限制更新的秩, 缩放适配分支。可训练参数为 。常见初始化令 、 随机,使初始增量为零,整个层保留原有映射。此时第一步 可以得到梯度, 的梯度受 为零限制;随着 改变,两者共同训练。这里的“零增量”与层自身是恒等映射没有关系。LoRA 原论文 建立了这种结构。
低秩结构限制单层更新方向,多层非线性组合仍能形成复杂行为。原论文的谱分析说明一些任务存在有效低秩解;观察到 LoRA 学得低秩本身不能证明所有全参数最优解都低秩。
训练后可以将 合入兼容的浮点权重,消除独立适配分支的计算。多适配器动态切换、量化底座以及特定部署格式可能保留分支或需要重新量化,合并过程应核查误差与输出。冻结权重省下其梯度和优化器状态,反向传播仍可能需要经过底座并保留激活。
秩、缩放、位置与学习率
提高秩增加容量、参数和部分计算;提高 改变同一适配参数对输出的作用。Adam 对梯度尺度的部分归一化,不会简单抵消前向分支的全部作用。学习率、初始化、缩放和训练长度共同决定有效更新。比较不同秩时,要明确缩放规则是否固定,分别讨论容量变化与尺度变化。
标准 LoRA 使用 ,rsLoRA 使用 ,目标是改善高秩设置的缩放行为。DoRA 将权重幅度与方向分开适配,增加训练时的归一化工作;这些变体的效果与成本需要在相同训练预算和任务下比较。rsLoRA、DoRA 给出各自条件。
适配 Q/V、全部注意力投影、FFN 或多个线性层,会改变容量分布。只给少数矩阵增加很高的秩,与给更多矩阵较低的秩并不等价。模块名依模型结构确定。词嵌入与输出投影也可以按任务训练或适配,尤其扩展词表时;两者是否共享参数、框架怎样选择模块需明确。
输出投影经 softmax 对所有词表候选打分,交叉熵梯度通常覆盖全部输出行。输入 embedding 的查表路径只访问输入中出现的行;共享权重、稠密实现、优化器状态和权重衰减会进一步改变更新行为。将两者统一说成“仅出现 token 行得到梯度”,会误导显存和能力判断。
学习率没有由 LoRA 结构唯一决定的固定倍数。已有文献展示过比全参数更新更大的 LoRA 学习率,也展示了任务与训练规模差异。分别调优两种方法、记录训练 token 与覆盖模块,才能判断性能差来自容量还是配置。
适配变体可按改变的对象理解。AdaLoRA 在总参数预算内调整不同层或方向的秩分配;PiSSA 使用基座权重的主要奇异方向初始化可训练分支;LoftQ 联合考虑量化底座与低秩误差补偿。它们分别改变容量配置、起点和量化误差,使用时比较相同数据、训练预算及保存能力。AdaLoRA、PiSSA、LoftQ
一个 矩阵有约 1678 万参数;秩 的 LoRA 分支有 个参数。这是单个矩阵的参数算术,整个模型还包含其他层与状态。若只适配一个投影,较小参数量也意味着更新只从这条路径影响输出。参数百分比与最终质量之间没有单调保证。
QLoRA:冻结低位权重上的适配
QLoRA 保留 LoRA 更新,将冻结底座压缩为低位表示。其论文提出 NF4、双重量化和分页优化器:NF4 适配近似正态权重的量化分布;双重量化进一步压缩量化常量;分页优化器缓解显存尖峰。QLoRA 论文 的性能与硬件结果限定于其模型和实验。
存储为 4 位与计算为 4 位需要区分。QLoRA 的典型路径在运算时反量化到计算精度,适配器保持可训练的较高精度。梯度穿过冻结底座的运算到达适配器,底座本身不积累参数梯度。量化误差对该底座形成固定扰动,适配器可能补偿部分扰动,无法保证所有任务无损。
底座低位权重并非全部显存:量化尺度、适配参数、优化器状态、激活、临时缓冲和分页传输都需记账。分页将部分状态放到主存,能够减少设备内存压力,也可能增加传输延迟。训练侧可行的格式不保证服务引擎支持相同格式或高速内核。
数据容量与效果证据怎样比较
《LoRA Learns Less and Forgets Less》在 Llama-2-7B 上比较指令微调与更大规模的持续预训练,同时测目标任务和保留能力。其结果说明低秩适配的容量与遗忘权衡随训练设置变化;不能据此划出所有模型“行为能学、知识不能学”的固定界线。原论文
《LoRA vs Full Fine-tuning: An Illusion of Equivalence》进一步比较更新谱、目标分数与预训练能力保留。目标分数接近仍可能有不同权重结构和后续学习行为。原论文 两项研究的任务和指标应分别阅读,不用单一目标分数代表适配的全部代价。
小型高质量指令集可以显著改善已有能力的表达。LIMA 的特定实验支持这种可能性,无法推出所有新任务都只需一千条。数据数量、知识新颖度、底座能力、样本多样性和更新范围共同决定需求。LIMA
遗忘与检查点选择
目标数据推动参数偏向新分布,旧任务可能退化。冻结大部分参数会限制变化,仍不能保证旧能力保持。顺序训练多个任务、量化误差和适配器切换也需要验证。
任务内验证集测目标任务,保留能力探针测原本需要保留的能力。两者在适配前建立基线,训练中按成本安排复测。数据按文档、来源或任务边界隔离,避免同一材料的近重复泄漏。探针要对应实际保留需求,任意公开选择题集无法代表全部旧能力。
训练 loss 下降而验证 loss 回升提示可能过拟合,还需排除分布、标签和损失口径差异。开放生成中,loss 与人类任务质量可能不单调;检查点选择应以预先定义的任务结果和保留预算为主,同时使用 loss 诊断。最后一个检查点没有天然优势。
回放旧数据、混合训练、早停、缩小更新范围、正则化或保留不同适配器,都可以调整遗忘与目标能力的权衡。它们各有数据、计算和管理成本。较低的秩或更强的正则也可能限制必要的新能力,处理方式应跟随可观察的缺陷。
最后更新于