LoRA 参数高效微调
LoRA 解决什么问题?
- 背景: SFT 与 RL 都要更新模型参数,全参数微调需要为数十亿参数都存梯度和优化器状态,显存要求很高;
- 定义: LoRA(Low-Rank Adaptation,低秩适配)不动原始的大权重矩阵,只在旁边挂一个很小的低秩“补丁”来学习任务;
- 参数量: 仅占原始的 1%–5%,却能接近全参微调的效果;
- 额外收益: 原权重被冻结,对基座已有能力的扰动更小,灾难性遗忘的风险更低;
- 定位: 是贯穿所有后训练方法的工程默认项,不是 SFT 专属技巧;
有哪些经过验证的实践经验?
| 项目 | 建议 | 原因 |
|---|---|---|
| 应用位置 | 必须应用到所有主要权重矩阵,尤其参数占比最大的 MLP 层 | 只加在注意力层会掉点 |
| 学习率 | 约取全参微调的 10 倍(SFT、RL 都成立) | 非常实用的迁移规则 |
| SFT 的 rank | 中高 rank,64–256 | SFT 每轮信息量较大 |
| RL 的 rank | 小 rank,8–32,甚至 rank=1 就够 | RL 每轮信息量很小 |
部署侧有什么额外好处?
- 多租户: 一台推理服务器可同时加载多个 LoRA adapter,做多租户服务;
- 记忆载体选择: 客户专属 adapter 与外部知识库是两种不同的记忆载体,取舍见后训练实践要点;