视频字幕
LoRA,全称Low-Rank Adaptation,是一种革命性的大模型微调技术。传统的全参数微调需要更新模型的所有参数,这对于拥有数十亿参数的大型语言模型来说,需要巨大的计算资源和存储空间。LoRA通过低秩分解的方法,只训练很少的参数就能达到接近全参数微调的效果,将可训练参数减少99%以上,大幅降低了训练成本和部署难度。
低秩分解是LoRA的数学基础。传统方法需要更新整个权重矩阵W,而LoRA将其分解为两个低秩矩阵A和B的乘积。通过选择远小于原矩阵维度的秩r,我们可以大幅减少需要训练的参数数量。例如,一个512乘512的矩阵有超过26万个参数,但通过秩为8的分解,只需要约8千个参数,减少了96.9%。这种方法基于一个重要假设:大多数深度学习模型的权重矩阵都具有低的内在维度。
LoRA的架构设计巧妙地解决了大模型微调的难题。在Transformer架构中,LoRA采用并行结构,原始权重矩阵W₀保持完全冻结,不参与训练。同时添加两个小的可训练矩阵A和B,形成旁路连接。前向传播时,输入同时经过原始路径和LoRA路径,最终输出是两个路径结果的和。这种设计的优势在于非侵入性,可以轻松集成到现有模型中,而且通过缩放因子α/r可以控制LoRA适应的强度。
LoRA的训练过程有其独特的设计。首先是初始化策略:矩阵A采用高斯随机初始化,而矩阵B初始化为零矩阵,这确保了训练开始时增量ΔW等于零,模型行为与原始模型完全一致。训练过程中,原始权重W₀保持完全冻结,梯度只反向传播到LoRA模块的A和B矩阵。损失函数计算时包含LoRA的贡献,但参数更新只针对A和B。缩放因子α/r起到重要作用,它控制LoRA适应的强度,通常α设为秩r的倍数,这样可以在不同秩之间保持一致的学习率。