每天给你送来NLP技术干货!
文 | JayJay
来自 | 高能AI
近日,清华大学发布P-Tuning v2版本,其重点解决了Prompt tuning在小模型上效果不佳的问题(如下图所示),并将Prompt tuning拓展至更复杂的NLU任务,如MRC答案抽取、NER实体抽取等序列标注任务。
P-Tuning v2并不是一个全新的方法,其事实上是将文本生成的prefix-tuning技术适配到NLU任务中,其主要结果如下:
仅精调0.1%参数量(固定LM参数),在330M到10B参数规模LM模型上,均取得和Fine-tuning相比肩的性能。而P-tuning v1仅在10B规模表现良好,而在稍小规模的模型(330M和2B)上表现不佳。
将Prompt tuning技术首次拓展至序列标注等复杂的NLU任务上,而P-tuning(v1)在此任务上无法运作。
笔者注:本文将论文《GPT Understands, Too》[1]中的Prompt tuning称为P-tuning v1。
论文题目:P-Tuning v2: Prompt Tuning Can Be Comparable to Finetuning Universally Across Scales and Tasks
论文地址:https://arxiv.org/pdf/2110.07602.pdf
论文源码:https://github.com/THUDM/P-tuning-v2
最近,Prompting技术火爆NLP社区,其将预训练模型从Fine-tuning范式带入Prompt-Engineering时代。
Prompting最初由人工设计Prompt,自然语言提示本身十分脆弱(如下图所示,选择不同的Prompt对下游任务的性能影响较大),而且从优化角度无法达到最优。
为消除这一影响,Prompt Tuning技术应用而生:P-Tuning v1将自然语言提示的token,替换为可训练的嵌入,同时利用LSTM进行Reparamerization加速训练,并引入少量自然语言提示的锚字符进一步提升效果(例如Anchor字符:Britain)如下图b所示:
在知识探测任务(Knowledge Probing)上,相比人工提示(离散)方法,P-Tuning v1显著提升效果:
然而,需要特别注意的是:P-Tuning v1论文中的Prompt Tuning仍然使用了自然语言提示的锚字符,这仍然需要人工设计、并不是完全自动化的,因此原论文并不能说明:P-Tuning v1能够与Fine-tuning效果相比肩。
最近的一篇论文《The Power of Scale for Parameter-Efficient Prompt Tuning》发现(如上图):随着模型参数的增加(达到10B级),Prompt Tuning才能与Fine-tuning效果相比肩,而在小模型上性能不佳。
P-Tuning v2提升小模型上的Prompt Tuning,最关键的就是引入Prefix-tuning[2]技术。
Prefix-tuning(前缀微调)最开始应用在NLG任务上,由[Prefix, x, y]三部分构成,如上图所示:Prefix为前缀,x为输入,y为输出。Prefix-tuning将预训练参数固定,Prefix参数进行微调:不仅只在embedding上进行微调,也在TransFormer上每一层输入进行微调。⚠️置顶留言有详细补充
P-Tuning v2将Prefix-tuning应用于在NLU任务,也就是Prompt Tuning对每一层embdding参数都进行微调,如下图所示:
此外,P-Tuning v2还包括以下改进:
移除了基于LSTM的Reparamerization加速训练方式;
采用了多任务学习优化:基于多任务数据集的Prompt进行预训练,然后再适配下游任务。
舍弃了词汇Mapping的Verbalizer的使用,重新利用[CLS]和字符标签,以增强通用性,可以适配到序列标注任务。
重要结果1: 在不同规模大小的LM模型上,P-tuning v2能与精调(Fine-tuning)方法的表现比肩,有时甚至更好。
重要结果2: 在序列标注任务上,P-tuning v2也几乎总是能与精调方法相比肩,P-tuning v2能够拓展到更为复杂的NLU任务上!
本文介绍了一种“优化升级”的Prompt Tuning方法——P-tuning v2,其主要贡献是:
解决了Prompt Tuning无法在小模型上有效提升的问题;
将Prompt Tuning拓展至NER等序列标注任务上;
看完上述解读后,不难发现(划重点):P-tuning v2就是将Prefix-tuning应用到NLU任务上的一种方法。
此外,P-tuning v2还未在few-shot上验证性能,有待进一步验证。
最后,在预训练时代,P-tuning v2是否可以成为完全替代Fine-tuning的一种方式呢?留给读者思考。
投稿或交流学习,备注:昵称-学校(公司)-方向,进入DL&NLP交流群。
方向有很多:机器学习、深度学习,python,情感分析、意见挖掘、句法分析、机器翻译、人机对话、知识图谱、语音识别等。
记得备注呦
整理不易,还望给个在看!
[1]
GPT Understands, Too: https://arxiv.org/pdf/2004.13454
Prefix-Tuning: Optimizing Continuous Prompts for Generation: https://arxiv.org/pdf/2101.00190.pdf