LoRA target module 可选参数
目录
明白,你想系统梳理 LoRA 微调时 target modules 可选的参数/矩阵,也就是在 Transformer 或大模型里,LoRA 可以作用在哪些权重上。我们按结构拆开讲,方便面试和工程实践都能用。
一、LoRA 可调目标模块(Target Modules)概览
LoRA 的目标是 在已有权重矩阵上加低秩增量:
[
W' = W + A \cdot B
]
- W → 底模权重
- A, B → 可训练的低秩矩阵
- rank r 决定容量
1️⃣ 多头自注意力层(MHA)
Transformer 每个注意力层包含:
| 参数 | 含义 | LoRA 常规选择 |
|---|---|---|
| Q (Query) | 投影输入到查询空间 | 常用,提升分类/语义区分 |
| K (Key) | 投影输入到键空间 | 可选,配合 Q 提升注意力分布 |
| V (Value) | 投影输入到值空间 | 常用,增强下游输出特征 |
| Output Projection (O) | 注意力输出矩阵 | 偶尔用,容量有限时优先调 Q/K/V |
工程经验:对分类任务,优先选择 Q/V,K 可视情况选。
2️⃣ FFN(前馈网络)
Transformer FFN 层通常是两层线性:
[
\text{FFN}(x) = \text{GELU}(x W_1 + b_1) W_2 + b_2
]
| 参数 | LoRA 微调实践 |
|---|---|
| W1 (输入投影) | 常用,可增强特征组合能力 |
| W2 (输出投影) | 少用,对分类提升有限 |
| b1/b2 (偏置) | 通常不调,可选 bias tuning 或 P-tuning |
工程经验:rank 小时只调 W1 或部分顶层 FFN。
3️⃣ Embedding 层
| 参数 | 含义 | LoRA 是否常用 |
|---|---|---|
| Token embedding | 输入词向量 | 可选,通常用于特定 domain embedding 微调 |
| Positional embedding | 位置编码 | 很少调 |
| LayerNorm gamma/beta | 归一化参数 | 很少调,通常不动 |
Embedding LoRA 更常见于 少量数据微调或风格迁移。
4️⃣ 特殊模块(可选)
- LM head / 输出投影层(分类任务可调 final linear)
- Adapter-like 模块(部分大模型预留接口)
对分类任务:可以调 LM head 来微调 label 投影,但通常 Q/K/V + 顶层 FFN 足够。
二、选择原则总结
| 任务类型 | rank | target modules 建议 | 说明 |
|---|---|---|---|
| 中等复杂度分类 | 8~16 | Q/V + 顶层 2~4 层 FFN | 提升分类能力,同时控制泛化 |
| 高复杂度生成 | 16~32 | Q/K/V + FFN 全模块 | 数据量大,可微调更多模块 |
| 小数据域迁移 | 8~16 | Q/V + Embedding + LM head | 调整 domain-specific 特征 |
核心原则:
- rank 小 → 精选模块(Q/V + 顶层 FFN)
- rank 大 → 可以增加模块,但要防止过拟合
- Embedding / LM head / 输出层 → 可选,用于 domain 特化或风格迁移
三、面试级表述示例
“LoRA target modules 可选的参数主要包括注意力层的 Q/K/V、输出投影矩阵,FFN 层的输入投影 W1(可选输出投影 W2),Embedding 层以及 LM head 等。
对于中等复杂度的分类任务,我通常 rank 8~16,只微调 Q/V 和顶层少量 FFN 层,这样在增强任务能力的同时保持泛化。”
如果你愿意,我可以画一张 Transformer + LoRA target modules 可选参数示意图,把 Q/K/V、O、FFN W1/W2、Embedding 等模块直观标出,一眼就能看到可微调位置。
你希望我画吗?

浙公网安备 33010602011771号