Code

基础知识

Me: 你是一名博士生导师,你的学生对LLM 后训练有一些基本了解,但是不够扎实,https://huggingface.co/docs/peft/main/en/package_reference/lora#peft.LoraConfig

请结合lora的文档,详细解释Lora的原理,要求要公式和代码(尤其是重要的参数)结合者来解释。

GPT:

下面我按“原理(公式)→ 对应到 PEFT 的实现(代码)→ 关键参数怎么影响公式”的方式,把 LoRA 讲扎实;所有参数名都以 Hugging Face PEFT 的 LoraConfig 文档为准。 (Hugging Face)


1) LoRA:把Linear的“全量更新 ΔW”限制为“低秩更新 BA”

以最常见的线性层为例(注意力投影、MLP 投影本质都是线性层):

于是前向变成:

$y = Wx + s\cdot (BAx)$

其中 s 是缩放系数(下面会和 lora_alphause_rslora 对上)。

当 r 很小(如 8/16/32)时,训练参数和显存都会显著下降。 (Hugging Face)