Prefix Tuning

分类: 量化与低秩

Prefix Tuning

定义

前缀调优是一种参数高效微调方法,在 Transformer 每一层的注意力计算中,为 key 和 value 前拼接一组可训练的连续向量(“前缀”),训练时仅更新这些前缀参数而冻结全部模型权重。

数学形式

headi=Attention(xWiQ,[PK(i)前缀;xWiK],[PV(i)前缀;xWiV])\text{head}_i = \text{Attention}(x W_i^Q, [\underbrace{P_K^{(i)}}_{前缀}; x W_i^K], [\underbrace{P_V^{(i)}}_{前缀}; x W_i^V])

PK(i),PV(i)Rl×dkP_K^{(i)}, P_V^{(i)} \in \mathbb{R}^{l \times d_k}: 第 ii 个注意力头在 key/value 上的前缀矩阵

ll: 前缀长度(通常 10-200)

为稳定训练,实际通过重参数化实现:P=MLP(P)P = \text{MLP}(P'),其中 PP' 是较低维的可训练嵌入

核心要点

Prompt Tuning 的关键区别:Prefix Tuning 在每一层的 key/value 中都加入前缀,而 Prompt Tuning 仅在输入嵌入层添加

前缀在每一层都直接影响注意力计算,因此表达能力强于仅在输入层操作的方法

可训练参数量 = 前缀长度 ×\times 层数 ×\times 2(key + value)×\times 隐藏维度,通常为模型参数的 0.1%

重参数化技巧(MLP)在训练时稳定优化,训练完成后丢弃 MLP,只保留最终的前缀向量

原始论文在 table-to-text(E2E)和摘要生成(XSUM)任务上展示了接近全参数微调的效果

与 Adapter 类似,支持多任务场景下为每个任务存储独立的轻量前缀

代表工作

Li & Liang (2021): “Prefix-Tuning: Optimizing Continuous Prompts for Generation” (ACL 2021)

Liu et al. (2022): “P-Tuning v2: Prompt Tuning Can Be Comparable to Fine-tuning Universally Across Scales and Tasks”,将 Prefix Tuning 思想推广

相关概念

PEFT

Prompt Tuning

Adapter

Fine-tuning

AdaLoRA