第 227 题:大模型的微调策略,LoRA的秩选择与训练效率?
题目
大模型的微调策略,LoRA的秩选择与训练效率?
完整讲解
一、LoRA 简述
- 低秩适应:在原有权重旁路加 $\Delta W = BA$,$B \in \mathbb{R}^{d\times r}$,$A \in \mathbb{R}^{r\times k}$,$r \ll \min(d,k)$,只训 $A,B$,冻结原权重,大幅减少可训练参数与显存。
二、秩(rank)选择
- 秩 $r$:越大表达能力越强、过拟合风险与显存越高。常用 8、16、32;推荐任务可从小秩(8)起步,效果不足再试 16/32。
- 秩与模块:可对不同层设不同秩(如 attention 用 16、FFN 用 8),或仅对部分层加 LoRA,在效果与效率间折中。
- 经验:同参数量下,多模块低秩有时优于少模块高秩;需在目标数据上做小规模验证。
三、训练效率
- 显存:只存 LoRA 参数与激活梯度,比全量微调省很多;可用梯度检查点进一步省显存。
- 吞吐:小参数量便于加大 batch、用混合精度;多卡时 LoRA 参数通信量小,扩展友好。
- 合并:推理前可将 $W + BA$ 合并为单矩阵,无额外推理开销;不同任务可保留多套 LoRA 做动态加载。
面试要点
- 能写出 LoRA 形式 $\Delta W = BA$ 并说明秩 $r$ 对参数量与表达能力的影响。
- 能说清秩选择经验(8/16/32、按层分配)、训练效率(显存、合并推理)及多任务 LoRA 切换。
记忆要点
- LoRA:$\Delta W = BA$,低秩 $r$,只训 $A,B$;秩常用 8/16/32,可按层分配。
- 效率:省显存、易并行、推理可合并;多任务多套 LoRA 动态加载。