0. NLP 的四种范式
最近几年,有人将近代 NLP 技术的发展总结为四种范式,他们分别是:
P1. 非神经网络时代的完全监督学习 (Fully Supervised Learning, Non-Neural Network)
P2. 基于神经网络的完全监督学习 (Fully Supervised Learning, Neural Network)
P3. 预训练,精调范式 (Pre-train, Fine-tune)
P4. 预训练,提示,预测范式 (Pre-train, Prompt, Predict)
在不同范式变迁过程中,我们可以发现一些规律,比如:
规律1: 每个范式都会涉及繁琐的,需要人来参与(提供先验)的工程(engineering)
- P1 特征工程(Feature Engineering):进行”无聊”的特征模版定义环节
- P2 结构工程(Architecture Engineering): 神经网络虽然解放手动配置特征模版所需要的人力,但是也需要人工去设计合适网络结构。
- P3 目标函数挖掘 (Objective Engineering): 这个过程需要引入额外的目标函数到预训练语言模型上,以便让其更适配下游任务。
- P4 Prompt挖掘工程:这个过程往往不对预训练语言模型做太多改动,而是希望通过对合适 prompt 的利用将下游任务建模的方式重新定义
规律2: 新范式带来的收益可以让我们暂时”忽略”额外需要的人力代价
虽然这可能是一句”废话”,但是我们需要注意的是,”收益”并不仅仅局限为某个任务性能的提升,还可以是”帮我们做一些过去框架不能做的事情”,或者是新的研究场景。
1. Prompt
在介绍 promot 之前,我们先介绍下什么是 fine-tuning, fine-tuning 方式是指在已经训练好的语言模型的基础上,加入少量的task-specific parameters, 例如对于分类问题在语言模型基础上加一层softmax网络,然后在新的语料上重新训练来进行 fine tune。
Prompt Learning 是指对输入文本信息按照特定模板进行处理,把任务重构成一个更能充分利用预训练语言模型处理的形式。
比如我要判断”我喜欢这个电影” 这句话的情感(”正面” 或者 “负面”),原有的任务形式是把他看成一个分类问题
- 输入:我喜欢这个电影
- 输出:"正面" 或者 "负面"
而如果用Prompt Learning去解决的话,任务可以变成”完形填空”,
- 输入:我喜欢这个电影,整体上来看,这是一个 __ 的电影
- 输出:"有趣的" 或者 "无聊的"
至此,我们可以看出 fine-tuning 和 prompt 的区别如下:
Fine-tuning中:是预训练语言模型”迁就”各种下游任务。 具体体现就是上面提到的通过引入各种辅助任务loss,将其添加到预训练模型中,然后继续pre-training,以便让其更加适配下游任务。总之,这个过程中,预训练语言模型做出了更多的牺牲。
Prompting中,是各种下游任务”迁就”预训练语言模型。 具体体现也是上面介绍的,我们需要对不同任务进行重构,使得它达到适配预训练语言模型的效果。总之,这个过程中,是下游任务做出了更多的牺牲。
可以看出,两个方法都希望让预训练语言模型和下游任务靠近,只是实现的方式不同而已。
2. 总结
回顾 NLP 的发展历史,我们发现 NLP 性能被大幅度提高经历了以下三个阶段
- 使用了预训练模型
- 使用了更强的预训练语言模型
- 更好的使用了预训练语言模型
如何更好的使用预训练模型,我相信 Prompting 不是唯一的答案,也许你也能发现下一个范式。
我是 Anthony, 我们下期再见
学习资料
Original: https://blog.csdn.net/weixin_43937759/article/details/121159298
Author: YUAnthony
Title: NLP 新宠 prompt
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/532041/
转载文章受原作者版权保护。转载请注明原作者出处!