1. 基本信息
题目 | 论文作者与单位 | 来源 | 年份 |
---|---|---|---|
The Power of Scale for Parameter-Effificient Prompt Tuning | Brian Lester等google | Conference on Empirical Methods in Natural Language Processing | 2021 |
857 Citations
论文链接:https://arxiv.org/abs/2104.08691
论文代码:https://github.com/google-research/prompt-tuning
另外:
google-research/prompt-tuning
official kipgparker/soft-prompt-tuning
mkshing/Prompt-Tuning
corolla-johnson/mkultra
arazd/ProgressivePrompts
2. 要点
研究主题 | 问题背景 | 核心方法流程 | 亮点 | 数据集 | 结论 | 论文类型 | 关键字 |
---|---|---|---|---|---|---|---|
语言大模型微调 | 针对之前的GPT-3的硬提示,这个提示可以通过监督数据进行学习的,学习软提示。 | 与prefix-tuning的思想是差不多的,提出了prompt tuning,这里重点研究k个token,另外做了大量的实验对比。 | 1. 在大型语言模型体系中提出“prompt tuning”并展示对于模型调优的竞争力;2. 通过消融实验,质量和鲁棒性,随着规模的增加而提高。3. 在跨域实验上,prompt tuning模型的微调。4. 提出“prompt ensembling” ,并实验证明它的有效性。 | superGLUE | 提过了GPT-3的少样本学习。多个下游任务重用一个冻结模型的能力可以减轻这一负担。这个方法可以看成是prefix-tuning的简化。 | 提出prompt tuning,做了实验对比。 | soft promts, prompt tuning |
“soft prompts”区别于之前的GPT-3的硬提示,这个提示可以通过监督数据进行学习的。
进一步对调参数的优化:prompt tuning,冻结了整个预训练模型,并且只允许每个下游任务在输入文本中添加额外的k个可调token。
论文实验结果:T5模型在不同训练方式下的结果
3. 模型(核心内容)
传统模型微调与Prompt微调的区别
对于传统模型:对于每个具体的下游任务要求复制一份完整预训练模型,在推理时也必须是分开的批次。
对于Prompt tuning: 对于每个任务只要求保存一份比较小具体任务的提示,且可以混合多个任务的数据放在一个批次上。
模型把所有任务定义成文本到文本的生成。例如Prθ;θP (Y |[P; X]),Pr是T5模型,θ表示模型的权重参数,训练时要冻结的,θP为prompt那部分的参数,训练时会更新的,Y表示Token串,P表示prompt, X提示输入token串。
形式化如下的定义:原字符串为n个token, promt为p个token, 在输入时,两者是合并的,所以嵌入时的矩阵变成(p+n)* e 维度。
4. 实验与分析
结论:
Prompt参数长度: 当prompt参数长度超过20时,整体模型的效果提升并不是很明显。当预训练模型较大时,不同prompt参数长度的表现差异较小。
**Prompt参数初始化方案:**非随机初始化方法好于随机初始化,而Class Label效果相对更好,
sampled vocab 与 class label 的效果明显好于随机初始化。
- Random Uniform方案从均匀分布中随机进行初始化;
- sampled vocab:从T5的语料库中选择最常见的5000个词汇。
- Class label:从下游任务中取label对应的 token中取。当一个label 存在 multi-token 时,取其平均值。如果数目不足,从sampled中取。
**预训练目标的影响:**作者认为使用这种不自然的sentinels来引导回答的学习方式对prompt不利。取消了预训练中的span corruption任务。
作者采用了 LM Adaptation (试图将T5转变成GPT3的风格),使得模型总是输出一个实际的文本。同时所有任务都被转变成了文本生成任务(与T5的 “text-to-text” 方法相似)。
另外,还有Domain shift实验:使用prompt方法确实比直接微调模型具有更好的泛化效果;
,Prompt Ensembling:在SueprGLUE任务上集成prompt预测的结果优于平均预测结果。
5. 总结
实验还是比较多,有新发现。跟prefix-tuning很相似的。只是用的语言不同。
6. 知识整理(知识点,要读的文献,摘取原文)
一种由下游应用程序训练数据引导的离散单词空间上的搜索算法:AutoPrompt: Eliciting Knowledge from Language Models with Automatically Generated Prompts
Domain shift实验: 所谓Domain shift其实就是跨域实验,即训练集与测试集的分布是不同的,来测试模型的泛化性能。
**Span Corruption:**Span Corruption是T5 预训练任务之一,其将完整的句子根据随机的span进行掩码。如:原句:“Thank you for inviting me to your party last week”
Span Corruption之后得到输入: “Thank you [X] me to your party [Y] week”;目标:“[X] for inviting [Y] last [Z]”。其中 [X] 等一系列辅助编码称为 sentinels。
sentinel token其实是哨兵。
7. 参考文献
https://zhuanlan.zhihu.com/p/551174711
https://zhuanlan.zhihu.com/p/415168620
made by happyprince