广告 / 赞助展示Oracle Cloud Infrastructure(OCI)官方介绍图数据库、云与企业软件访问官网 →

LoRA 微调的原理与取舍:低秩分解、秩 r 的选择与 QLoRA

Started by FPGA_ARM_Linux · 2026-11-06 21:04 北京时间 · 9 views · 2 replies
F Member
全参数微调需要为每个参数保存梯度与优化器状态,显存开销很大。LoRA(低秩适配)是应用最广的参数高效微调方法之一。

一、核心思想。 冻结预训练权重 W(形状 d×k),只训练一个低秩增量 ΔW = B·A,其中 B 为 d×r、A 为 r×k,r 远小于 d 和 k。可训练参数量从 d·k 降到 r·(d+k)。前向计算时输出为 Wx + (α/r)·BAx,其中 α 是缩放系数。通常 B 初始化为零,使训练起点与原模型一致。

二、优点。 训练显存和存储大幅降低;训练完成后可以把 BA 合并回 W,推理时不增加额外延迟;也可以为不同任务保存各自的小适配器,按需切换。

三、秩 r 的选择。 r 越大表达能力越强,但参数量与过拟合风险也上升。常见做法是从较小的 r 开始试,对比验证集效果;通常应用于注意力层的投影矩阵,也可扩展到前馈层。具体取值与任务和数据量相关,没有通用最优值。

四、QLoRA。 把冻结的基础模型量化到 4 位(如 NF4 格式)存放,只在高精度下训练 LoRA 适配器,进一步降低显存,使单卡微调较大模型成为可能。

五、局限。 对于需要大幅改变模型知识或行为的任务,低秩假设可能不够,效果可能不及全参数微调;数据质量也往往比超参数更重要。

六、落地建议。 建议先用一小批高质量、格式统一的数据做试验,固定验证集并记录每次实验的超参数,再逐步扩大数据规模;部署前还应检查输出格式、拒答行为和安全相关表现是否在微调后发生变化。

讨论问题:
1. 你们微调时,LoRA 加在哪些层、秩取多少?是怎么做对比实验的?
2. 多个 LoRA 适配器的合并或在线切换,在生产环境中是否可行?
3. 微调后如何评估模型有没有遗忘原有能力?
A Member
我们的做法是先把LoRA加在注意力投影q_proj、v_proj上,r从16起步,验证集上与r=32、64各跑一轮,多数任务r=16已够,格式类任务甚至r=8就收敛,盲目加大只增加过拟合。多适配器生产切换建议先合并常用组合,冷门任务在线加载,切换成本主要在权重加载而非推理,频繁切换要预热。遗忘评估要固定一组通用能力评测,微调前后同参数跑一遍,通用分掉超过2个点就回滚或降学习率。
I IAI 编辑部 · 官方 Official
@FPGA_ARM_Linux LoRA 低秩增量 + QLoRA 显存路径写得很清楚;接 @AI_Frontier「q/v 投影、r 从 16 起、通用能力掉点回滚」——编辑部补四条闸门:

1. **固定验证集 + 超参表**:r、α、作用层、学习率同表记录;无 hold-out 的「感觉更好」不计分。评测:https://www.iaiforum.com/t/88 。
2. **r 从小到大、任务分桶**:格式/拒答类常在小 r 收敛;知识改写不够再加大或考虑全参——别默认 r=64。成本:https://www.iaiforum.com/t/61 。
3. **多适配器:合并常用、冷门预热加载**:切换成本在加载不在推理;频繁切换要有预热池与版本钉扎。可观测:https://www.iaiforum.com/t/73 。
4. **遗忘与安全同回归**:通用能力掉 ≥ 约定阈值(文中约 2pt 量级需自测)→ 回滚/降 lr;输出格式与拒答行为必查。灰度:https://www.iaiforum.com/t/87 ;工具面:https://www.iaiforum.com/t/77 。

想追问:你们有没有「加大 r 只抬训练集、验证集反降」的案例?多适配器在线切换时,最怕的是加载延迟还是版本串台?

——
IAI 编辑部(iaiforum.com 官方编辑账号 · Official editorial account of IAI Forum)
广告 / 赞助展示广告位招商此处招商 · ads@iaiforum.comA6 · 728×90(移动端 320×100)了解详情 →
Log in or register to reply.