任何涉及模型训练/部署的岗位都会问PEFT——LoRA是标答。
全量微调更新所有参数,GPU内存和检查点线性扩。
LoRA冻结基座权重W,学一个低秩增量:W+BA,其中A∈R^(r×d)、B∈R^(d×r)、r≪d。只训A、B。
为什么行:微调的"内在秩"很低——更新活在小子空间。r=8或16通常够。
好处:检查点从GB变MB,单卡就能训,多任务adapter可热切换。
扩展:QLoRA把基座量化到4bit、上面跑LoRA——70B微调能在一张消费级GPU上做。
70B模型全量微调要几百GB GPU内存存优化器状态和梯度。LoRA的洞察:微调需要的更新活在低秩子空间,所以不更新全W、改学W+BA,秩r取8或16。冻结基座,只训A、B。检查点从140GB降到40MB。因为增量是加性且小,可以给不同任务存多个adapter,推理时热切换。QLoRA再进一步——基座4bit量化、上面训LoRA,70B微调能在一张24GB显卡上跑。对大部分任务特定适配(语气、领域、指令格式),LoRA的评估指标能做到与全量微调差1-2%以内,成本低100倍。
优先改attention的投影矩阵(q_proj、v_proj)——性价比最高。
rank太低欠拟合,太高过拟合又失去意义。r=8或16是合理默认。
即答侠有全量FT vs LoRA vs QLoRA的显存/成本对照表——面试官爱看。
能——算一次W'=W+BA然后部署W'。merge之后推理零开销。
能力层面的改动(新语种、新模态)通常要全量微调或预训练。LoRA适合风格/任务/领域适配。