最近去参会,看到了大量关于Prompt相关的论文,或者说跟NLP NLU相关的新论文或多或少都使用到了Prompt learning的一些思想或者设置。由于本人主业不是是做NLP的,所以对NLP顶会的这一现象觉得很有意思,趁闲暇学习了一下Prompt learning。 网上讲解的帖子很多,我整理了一些帖子的核心内容,也写一下我自己在学习过程中的感悟。
-----手动分割----
1. 大型语言模型的进化史
这里引入刘鹏飞大佬的的观点,他在论文中提到,语言模型在Deep learning 时代,大致经历了四个阶段:
- 完全监督的机器学习:通过构建特征工程,直接解决下游任务。
- 完全监督深度神经网络:通过构建ML模型,训练一个端到端的模型,同样的,直接解决下游任务。实际上,相比于后两种情况,1和2在某些程度上是一个意思。
- 预训练模型微调阶段: 先通过大型的生语料库预训练大型语言模型,比如常见的各种Transformer,再进行Fine Tuning来使大型语言模型适配下游子任务。
- prompt 提示学习阶段: 跟3一样,先获得大型语言模型,然后通过提示学习Promt Learning, 在一定程度上重构下游任务来适配大型语言模型,以完成下游任务。
如图所示,NLP语言模型的四个阶段
对比一般的Fine-tuning 范式,我们有:
• 左边是传统的 Model Tuning 的范式:对于不同的任务,都需要将整个预训练语言模型进行精调,每个任务都有自己的一整套参数。
• 右边是Prompt Tuning,对于不同的任务,仅需要插入不同的prompt 参数,每个任务都单独训练Prompt 参数,不训练预训练语言模型,这样子可以大大缩短训练时间,也极大的提升了模型的使用率

Prompt Learning的基本流程
关于预训练模型的前三种情况就不赘述了,Prompt Engineering的核心思想,主要就是将已有的下游NLP任务重构成token级的预测任务,在不改变原有的pre-trained LM的前提下(也就是说不进行fine tuning)直接将LM应用的过程,换言之,是在用下游任务适配LM。融入了 Pr

文章探讨了PromptLearning在NLP领域的兴起,它通过构建提示来适应大型语言模型,减少了对微调的需求。PromptLearning将下游任务转化为预训练模型的任务形式,简化了任务适配过程,尤其适用于小样本数据集。与Fine-tuning相比,PromptLearning提供了一种无需额外训练的解决方案,但是否是最优策略仍有待探讨。

1万+

被折叠的 条评论
为什么被折叠?



