LoRA再度优化,可训练参数再削95 %!
写本文的原因
LoRI(LoRA with Reduced Interference)在 LoRA 的“低秩注入”框架上作两步改进:随机冻结 A 矩阵 + 任务稀疏 B 掩码,把可训练参数再削 ≈ 95 %,同时通过正交子空间显著缓解 多任务适配器合并冲突 与 持续学习遗忘;在 8 B‑70 B 级 LLM 上,LoRI 与 LoRA 单任务精度持平,却能在多任务平均分提升 3‑6 pp,且显存、训练时长均进一步下降。
1 LoRA技术背景与痛点
- 参数仍偏大:以 Llama‑3‑8B 为例,LoRA 需 4.3 M 参数,而 LoRI 仅 0.21 M,节省 95 %。
- 多任务互扰:将四个任务的 LoRA 适配器直接平均,综合得分常下跌 ≈ 5 pp;冲突源于不同任务更新落在同一子空间。
- 持续学习遗忘:顺序训练 6 个任务后,LoRA 在首任务上精度下滑 7‑9 pp。
2 LoRI 方法详解
2.1 核心公式
W ′ = W + B A , A ∈ R r × k (随机高斯,冻结) , B ∈ R d × r (稀疏、可训练) W' = W + BA,\qquad A\in\mathbb{R}^{r\times k}\ \text{(随机高斯,冻结)},\; B\in\mathbb{R}^{d\times r}\ \text{(稀疏、可训练)} W′=W+BA,A∈Rr×k (随机高斯,冻结),B∈Rd×r (稀疏、可训练)
- 冻结 A:所有任务共享,映射天然近似正交,减少重叠。
- 稀疏 B:按梯度范数选取前 10‑15 % 权重参与训练,显存与 I/O 成本线性下降。
2.2 正交子空间与低干扰
随机 A 使不同任务的 (B_iA) 向量几乎正交;合并适配器
(\Delta W_{\text{merged}}=\sum_t\lambda_t B_tA)
时交叉项趋近 0,实测直接取 (\lambda_t=1/T) 即优于 LoRA 手动调权。
2.3 参数与显存收益
基座模型 | LoRA 参数 | LoRI 参数 | 显存峰值* |
---|---|---|---|
Llama‑3‑8B | 4.3 M | 0.21 M | 32 GB (A6000) |
Llama‑3‑70B | 36 M | 1.8 M | 90 GB (A100 80G) |
*基于官方脚本 run_lori.py
。
3 实验与效果
- 单任务:12 个基准(GLUE、GSM8K、HumanEval、SafetyBench 等)中,LoRI 与 LoRA 平均差异 < 0.3 pp。
- 多任务合并:同样 4 任务,LoRI 直接平均后 +3‑6 pp,而 LoRA –5 pp。
- 持续学习:6 任务顺序训练后,LoRI 首任务仅 –1 pp;LoRA –7~9 pp。
4 实操指南
- 秩 r=4‑8 足够;模型或任务极复杂再考虑 16。
- 稀疏率 85 % 往往“零损精度 + 最大节省”。
- 量化组合:4‑bit QLoRA (arXiv 2305.14314) + LoRI,可在 24 GB RTX‑4090 微调 70 B。
- 推理部署:
生成单一权重包,推理时延与原模型一致。model = lori_model.merge_and_unload() model.save_pretrained("./merged_lori")
5 关键资源链接(也是参考资源链接)
- LoRI 论文 PDF · https://arxiv.org/pdf/2504.07448
- LoRI GitHub · https://github.com/juzhengz/LoRI
- Demo 脚本 · https://github.com/juzhengz/LoRI/blob/main/scripts/continual_safety_code.sh
- LoRA 原论文 · https://arxiv.org/abs/2106.09685
- QLoRA 论文 · https://arxiv.org/abs/2305.14314
- 技术速评 · https://www.themoonlight.io/en/review/lori-reducing-cross-task-interference-in-multi-task-low-rank-adaptation
6 案例与成本估算
6.1 企业内部 ChatBot 迁移
场景 | 原方案 | LoRI 方案 | 成本节省 |
---|---|---|---|
金融客服知识问答 | 全量微调 Llama‑3‑70B,显存 8×A100‑80G,训练 3 天 | LoRI+QLoRA,显存 2×A100‑80G,训练 1 天 | ≈ 67 % GPU 时长 |
备注:精度差异 < 0.5 pp,同时支持按需合并多行业适配器并行部署。
6.2 多语言客服
- 以 6 种语言(EN/ES/FR/DE/JP/AR)独立任务训练 LoRI 适配器,每个仅 2‑3 MB。
- 同时加载或按用户语种热插拔,内存占用 < 50 MB。
6.3 推理吞吐
在 Llama‑3‑8B 推理基线 100 tokens/s 的情况下:
- LoRI 合并权重 ≈ 100 tokens/s(与原模型一致)
- 并行多适配器(不合并) ≈ 98 tokens/s
7 趋势与待解决问题
- 自动秩/稀疏搜索:仍需人工设定 r 与稀疏率;AutoML 方法(如 DiffTune)有望进一步降低调参成本。
- 视觉‑语言模型适配:初步实验显示在 CLIP‑ViT 上也能降参 90 %,但 Transformer‑CNN 混合结构尚缺公开基准。
- 安全性评估:多任务合并后对 Jailbreak/Prompt‑Injection 抵抗力如何,社区暂无系统测评。
- 硬件指令优化:NVIDIA TensorRT‑LLM 与 AMD ROCm 暂未针对 LoRI 稀疏掩码做内核优化,未来可能再提速 10‑15 %。
结论
LoRI = LoRA – 95 % 参数 – 多任务互扰 + 显存友好; 若需在多任务或持续学习场景低成本保持精度,它是 2025 年 PEFT 社区的下一代主流方案之一。