Prefix tuning
Prefix-Tuning: Optimizing Continuous Prompts for Generation(ACL 2021)
本文是斯坦福大学在 ACL2021 的一篇工作。作者提出了一种前缀微调的方法,与 GPT-3 通过自然语言指令提示模型生成输出的 Prompting 方法不同的是,作者采用连续的任务相关向量作为输入前缀,在微调时不训练模型参数,只训练这些前缀向量,并利用这些连续可训练的 Prefix Embedding 提示模型生成正确的输出。下图是该方法分别在自回归模型和编码器-解码器模型中的表示:

在训练时,Prefix-Tuning 的优化目标与正常微调相同,但只需要更新前缀向量的参数。作者发现直接更新前缀向量的参数会导致训练的不稳定与结果的略微下降,因此采用了重参数化的方法,通过一个若干较小的前缀向量经过单层 MLP 生成正常规模的前缀向量,其形式化表示如下:

训练完后,用于重参数化的较小前缀向量会被丢弃,只保留目标前缀向量的参数。
作者采用了 Table-To-Text 与 Summarization 作为实验任务,在 Table-To-Text 任务上,Prefix-Tuning 在优化相同参数的情况下结果大幅优于 Adapter,并与全参数微调几乎相同。而在 Summarization 任务上,Prefix-Tuning 方法在使用 2%参数与 0.1%参数时略微差于全参数微调,但仍优于 Adapter 微调。
对 virtual token 的编码方式
同时,为了防止直接更新 Prefix 的参数导致训练不稳定和性能下降的情况,在 Prefix 层前面加了 MLP 结构,训练完成后,只保留 Prefix 的参数。
除此之外,通过消融实验证实,只调整 embedding 层的表现力不够,将导致性能显著下降,因此,在每层都加了 prompt 的参数,改动较大。
References
-大模型微调实践——Prefix tuning与P-tuning v2的原理、区别与代码解析最终章 (opens new window)