赞
踩
&emps;本文我们提出一种prefix-tuning方法,其是一个轻量级的fine-tuning方法用于自然语言处理的生成任务。该方法可以保持预训练语言模型参数固定(frozen),而只需要在task-specific vector(称为prefix)上进行优化。即只需要少量(约0.1%)的优化参数,即可以在量和小量数据上达到不错的效果。
简要信息:
序号 | 属性 | 值 |
---|---|---|
1 | 模型名称 | Prefix-tuning |
2 | 所属领域 | 自然语言处理;文本生成 |
3 | 研究内容 | 预训练语言模型;Prompt框架 |
4 | 核心内容 | Prompt-based Fine-tuning |
5 | GitHub源码 | https://github.com/XiangLi1999/PrefixTuning |
6 | 论文PDF | https://arxiv.org/pdf/2101.00190.pdf |
核心要点:
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 aims to steer a pretrained language model to match a sentence level attribute.
table-to-text任务:输入 X X X 表示一个线性的表格,输出 Y Y Y 表示一个短文本;
可以将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θ∈R∣Pidx∣×dim(hi),这部分参数用于存储prefix parameters:
即,处于前缀部分token,参数选择设计的训练矩阵,而其他部分的token,参数则固定且为预训练语言模型的参数。
训练目标为:
实验对比了标准fine-tunine,主要在E2E、WebNLG和DART三个table-to-text任务上实现。发现prefix-tuning有所提升,如下图:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。