Fine-tune时代结束?清华P-Tuning v2大幅提升小模型性能,NER也可promp tuning了!

每天给你送来NLP技术干货!


Fine-tune时代结束?清华P-Tuning v2大幅提升小模型性能,NER也可promp tuning了!_第1张图片

文 | JayJay

来自 | 高能AI

近日,清华大学发布P-Tuning v2版本,其重点解决了Prompt tuning在小模型上效果不佳的问题(如下图所示),并将Prompt tuning拓展至更复杂的NLU任务,如MRC答案抽取、NER实体抽取等序列标注任务。

Fine-tune时代结束?清华P-Tuning v2大幅提升小模型性能,NER也可promp tuning了!_第2张图片

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

P-Tuning v1回顾

最近,Prompting技术火爆NLP社区,其将预训练模型从Fine-tuning范式带入Prompt-Engineering时代。

Prompting最初由人工设计Prompt,自然语言提示本身十分脆弱(如下图所示,选择不同的Prompt对下游任务的性能影响较大),而且从优化角度无法达到最优。

Fine-tune时代结束?清华P-Tuning v2大幅提升小模型性能,NER也可promp tuning了!_第3张图片

为消除这一影响,Prompt Tuning技术应用而生:P-Tuning v1将自然语言提示的token,替换为可训练的嵌入,同时利用LSTM进行Reparamerization加速训练,并引入少量自然语言提示的锚字符进一步提升效果(例如Anchor字符:Britain)如下图b所示:

Fine-tune时代结束?清华P-Tuning v2大幅提升小模型性能,NER也可promp tuning了!_第4张图片

在知识探测任务(Knowledge Probing)上,相比人工提示(离散)方法,P-Tuning v1显著提升效果:Fine-tune时代结束?清华P-Tuning v2大幅提升小模型性能,NER也可promp tuning了!_第5张图片

然而,需要特别注意的是:P-Tuning v1论文中的Prompt Tuning仍然使用了自然语言提示的锚字符,这仍然需要人工设计、并不是完全自动化的,因此原论文并不能说明:P-Tuning v1能够与Fine-tuning效果相比肩。

Fine-tune时代结束?清华P-Tuning v2大幅提升小模型性能,NER也可promp tuning了!_第6张图片

最近的一篇论文《The Power of Scale for Parameter-Efficient Prompt Tuning》发现(如上图):随着模型参数的增加(达到10B级),Prompt Tuning才能与Fine-tuning效果相比肩,而在小模型上性能不佳。

P-Tuning v2关键所在:引入Prefix-tuning

P-Tuning v2提升小模型上的Prompt Tuning,最关键的就是引入Prefix-tuning[2]技术。

Fine-tune时代结束?清华P-Tuning v2大幅提升小模型性能,NER也可promp tuning了!_第7张图片

Prefix-tuning(前缀微调)最开始应用在NLG任务上,由[Prefix, x, y]三部分构成,如上图所示:Prefix为前缀,x为输入,y为输出。Prefix-tuning将预训练参数固定,Prefix参数进行微调:不仅只在embedding上进行微调,也在TransFormer上每一层输入进行微调。⚠️置顶留言有详细补充

P-Tuning v2将Prefix-tuning应用于在NLU任务,也就是Prompt Tuning对每一层embdding参数都进行微调,如下图所示:

Fine-tune时代结束?清华P-Tuning v2大幅提升小模型性能,NER也可promp tuning了!_第8张图片

此外,P-Tuning v2还包括以下改进:

  1. 移除了基于LSTM的Reparamerization加速训练方式;

  2. 采用了多任务学习优化:基于多任务数据集的Prompt进行预训练,然后再适配下游任务。

  3. 舍弃了词汇Mapping的Verbalizer的使用,重新利用[CLS]和字符标签,以增强通用性,可以适配到序列标注任务。

P-Tuning v2实验结果

Fine-tune时代结束?清华P-Tuning v2大幅提升小模型性能,NER也可promp tuning了!_第9张图片

重要结果1: 在不同规模大小的LM模型上,P-tuning v2能与精调(Fine-tuning)方法的表现比肩,有时甚至更好。

Fine-tune时代结束?清华P-Tuning v2大幅提升小模型性能,NER也可promp tuning了!_第10张图片

重要结果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,情感分析、意见挖掘、句法分析、机器翻译、人机对话、知识图谱、语音识别等。

Fine-tune时代结束?清华P-Tuning v2大幅提升小模型性能,NER也可promp tuning了!_第11张图片

记得备注呦

整理不易,还望给个在看!

参考资料

[1]

GPT Understands, Too: https://arxiv.org/pdf/2004.13454


[2]

Prefix-Tuning: Optimizing Continuous Prompts for Generation: https://arxiv.org/pdf/2101.00190.pdf

你可能感兴趣的:(人工智能,机器学习,深度学习,自然语言处理,nlp)