标准 LoRA 前向公式
训练完 A/B 参数会不会永久合并到 W
训练完的 A/B 参数最终会作用在 W 上吗?
仅离线合并时,数学上叠加进 W,永久固化;
在线动态推理(PEFT):不修改原始 W,只是前向计算时临时叠加增量,原始 W 文件不变。
示例
这里的 x 是啥
LoRA 挂载在哪些地方?
q_proj、v_proj、k_proj、o_proj、gate_proj、up_proj、down_proj 都指的是啥
Transformer 一层分为两大块:Self-Attention 自注意力 + FFN 前馈网络
q_proj /k_proj/v_proj /o_proj → 属于注意力模块
gate_proj /up_proj/down_proj → 属于FFN 前馈层
注意力模块四组线性投影(q/k/v/o_proj)
输入是上一层输出的隐状态 x(din=4096),全部是独立的权重矩阵 W,各自可以单独挂载 LoRA
FFN 三层线性:gate /up/down_proj(LLaMA/Mistral 标准 SwiGLU 激活)
注意力输出后进入前馈网络,三层独立权重,负责非线性语义加工
q/k/v/o:注意力相关,负责 token 之间上下文关联
gate/up/down:前馈 FFN 相关,负责单 token 内部语义、知识存储
LoRA挂载经验总结
轻量化微调(显存小、通用任务):target_modules=[“q_proj”,“v_proj”]
重度领域微调(代码 / 数学 / 长文本):全量 [“q_proj”,“v_proj”,“k_proj”,“o_proj”,“gate_proj”,“up_proj”,“down_proj”]
不推荐优先挂 k_proj,收益极低、容易打乱原生注意力权重