一.介绍
1.1 前置知识
1.1.1 in-context learning
At the limit, GPT-3 (Brown et al, 2020) can be deployed using in-context learning, which is a form of prompting, without modifying any LM parameters.
"部署" 指的是将 GPT-3 模型用于实际应用或特定任务的过程。
"In-context learning" 是一种通过提供上下文或附加信息来指导模型生成的方法。在这种情况下,用户可以向 GPT-3 提供一些上下文或提示(prompt),以引导模型生成相关的回复或执行特定任务,而不必重新训练或微调模型。模型根据提示生成响应,并且可以根据提示的不同来执行不同的任务。这种方式可以让 GPT-3 在不修改模型参数的情况下,适应多种任务。
1.2 简介
微调(顶部)更新所有LM参数(红色Transformer框),并且需要为每个任务存储完整的模型副本。我们提出prefixtuning(底部),它冻结LM参数并只优化前缀(红色前缀块)。因此,我们只需要为每个任务存储前缀,使前缀调优模块化且节省空间。
前缀调优(prefix-tuning)将一系列,被称之为前缀(prefix),连续的特定于任务的向量添加到输入中。为了生成每个令牌,LM可以像处理“虚拟令牌”序列一样处理前缀,但与提示不同的是,前缀完全由不对应于真实令牌的自由参数组成。
1.3 理解
基于前缀的架构使我们能够在单个批处理中处理来自多个用户/任务的示例,这是其他轻量级微调方法(如adaptertuning)无法实现的。
二 .
2.1 问题建模
一个条件生成任务,其中输入x是一个上下文,输出y是一个令牌序列。有两种模式:第一种是像GPT2的自回归模型,第二种是类似于BART的encoder-decoder架构来建模上述问题
2.1.1 自回归建模
表示在时间步骤i的到第j层的激活向量。
一个自回归神经LM计算作为的函数和过去在其左侧上下文中的激活,如下所示:
最后一层使用Softmax计算下一个token的分布
2.1.2 编码器解码器架构
由双向编码器编码,解码器自回归预测y(以编码的x及其左侧上下文为条件)
通过双向编码器获得当时的,通过自回归解码器获得当时的
2.2 Prefix-Tuning
上下文可以通过指导从x中提取什么来影响任务输入x的编码,并且可以通过指导下一个令牌分布来影响任务输出y的生成。比较直观的想法就是直接使用词嵌入来替代在使用过程中提供上下文信息和额外信息
- 自回归 : 增加一个前缀,得到z = [prefix;x;y]
- encoder-decoder架构:为编码器和解码器都添加前缀,得到z = [PREFIX;x;;y]
直接更新Pθ参数会导致优化不稳定,直接重参数化为一个小的矩阵和一个大前馈神经网络MLP,即 。一旦训练完成,这些重参数化参数可以被丢弃,只需要保存前缀
2.3 实验结论
- 当训练样本数量较少时,前缀调优具有相对优势
- 前缀长度:更长的前缀意味着更多可训练的参数。当前缀长度增加到一个阈值(时,性能会增加,然后出现轻微的性能下降。
- 增强表现力的链:离散提示< embedding-only < prefix-tuning
embedding-only就是“虚拟令牌”的连续嵌入的实例化实现
- 前缀调优由优于中缀调优
作者认为这是因为前缀调优可以影响x和y的激活,而中缀调优只能影响y的激活。