论文解读:Prefix-Tuning: Optimizing Continuous Prompts for Generation

 &emps;本文我们提出一种prefix-tuning方法,其是一个轻量级的fine-tuning方法用于自然语言处理的生成任务。该方法可以保持预训练语言模型参数固定(frozen),而只需要在task-specific vector(称为prefix)上进行优化。即只需要少量(约0.1%)的优化参数,即可以在量和小量数据上达到不错的效果。

简要信息:

序号属性
1模型名称Prefix-tuning
2所属领域自然语言处理;文本生成
3研究内容预训练语言模型;Prompt框架
4核心内容Prompt-based Fine-tuning
5GitHub源码https://github.com/XiangLi1999/PrefixTuning
6论文PDFhttps://arxiv.org/pdf/2101.00190.pdf

核心要点:

  • template的构建:不采用离散的template token,而使用连续可调的矩阵来调整template;
  • 将prompt-tuning用于语言模型的生成任务上;

一、动机:

  • 传统的fine-tuning是在大规模预训练语言模型上完成的,而大规模模型非常expansive;
  • 一种解决这个问题的方法是采用轻量级的微调(ligthweight fine-tuning),即先固定预训练语言模型的参数,然后只对一小部分的可训练参数进行微调
  • GPT-3提出了一种不需要引入任何参数的fine-tuning方法,即in-context prompting;
  • 受到prompt的启发,提出一种prefix-tuning方法用于生成任务上;
  • 只需要保存prefix部分的参数即可;

Consequently, we only need to store the prefix for each task, making prefix-tuning modular and space-efficient. Note that each vertical block denote transformer activations at one time step.
Lightweight fine-tuning;

  • 固定预训练语言模型的大部分参数,而只对小部分的参数进行更新;
  • Controllable generation:可控生成旨在引导预训练的语言模型以匹配句子级别的属性;

Controllable generation aims to steer a pretrained language model to match a sentence level attribute.

在这里插入图片描述

二、任务定义:

  table-to-text任务:输入 X X X 表示一个线性的表格,输出 Y Y Y 表示一个短文本;

  • 自回归模型:在某一时刻 i i i,Transformer的每一层的隐状态向量拼接起来之后用于预测下一个词;
  • 整体采用encoder-to-decoder架构;

三、方法:Prefix-Tuning

  可以将token优化为连续词嵌入,而不是优化离散标记,其效果将向上传播到所有 Transformer 激活层,然后向右传播到后续标记。 这比需要匹配真实单词嵌入的离散提示更具表现力。 同时,这不如干预所有激活层的表现力,这避免了长期依赖并包括更多可调参数。 因此,Prefix-Tuning优化了前缀部分对应的所有层参数。
  如下图所示:
在这里插入图片描述

  • 添加一个prefix,自回归模型表示为 z = [ p r e f i x ; x ; y ] z=[prefix; x; y] z=[prefix;x;y],encoder decoder模型表示为 z = [ p r e f i x ; x ; p r e f i x ′ ; y ] z=[prefix; x; prefix ' ; y] z=[prefix;x;prefix;y]

  • 输入部分 p r e f i x prefix prefix x x x y y y的position id分别记作 P i d x P_{idx} Pidx X i d x X_{idx} Xidx Y i d x Y_{idx} Yidx

  • prefix-tuning初始化一个训练的矩阵,记作 P θ ∈ R ∣ P i d x ∣ × d i m ( h i ) P_\theta\in\mathbb{R}^{|P_{idx}|\times dim(h_i)} PθRPidx×dim(hi),这部分参数用于存储prefix parameters:
    在这里插入图片描述
    即,处于前缀部分token,参数选择设计的训练矩阵,而其他部分的token,参数则固定且为预训练语言模型的参数。

  • 训练目标为:
    在这里插入图片描述

四、实验

  实验对比了标准fine-tunine,主要在E2E、WebNLG和DART三个table-to-text任务上实现。发现prefix-tuning有所提升,如下图:
在这里插入图片描述

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐