一、预训练语言模型的发展过程
第一阶段的模型主要是基于自监督学习的训练目标,其中常见的目标包括掩码语言模型(MLM)和下一句预测(NSP)。这些模型采用了Transformer架构,并遵循了Pre-training和Fine-tuning的训练范式。通过预训练模型在大规模无标签数据上进行学习,可以使模型学习到丰富的语言知识和语境理解能力。
第二阶段是在第一阶段的基础上,逐步扩大了模型的参数规模和训练语料的规模。同时,研究人员还尝试了不同类型的模型架构,如BART、T5和GPT-3。这些模型在预训练的基础上,可以进行各种下游任务的微调,如文本摘要、机器翻译等,展示了更强大的语言生成和理解能力。
第三阶段是目前的最新发展阶段,模型的参数规模进一步增大,达到千万亿级别。模型架构也从自监督预训练转向了自回归架构,更加注重与人类的交互对齐,实现可靠、安全、无毒的生成内容。同时,大型模型也开始应用于对话生成和多模态任务,可以生成更具人类交互性和多样性的内容。
随着GPT-3的诞生,其面向新一代大规模AI模型方向的发展正在成为自然语言处理领域的一个重要趋势。与传统的离散、连续Prompt构建方法不同的是,这些新的方法都可以直接从context中获取信息,使得模型能够更好地适应真实的场景。
其中,In-Context Learning可以让模型根据上下文信息不断学习、优化,提高模型的交互性和自适应性。In Context Learning(ICL)的关键思想是从类比中学习。下图给出了一个描述语言模型如何使用 ICL 进行决策的例子。首先,ICL 需要一些示例来形成一个演示上下文。这些示例通常是用自然语言模板编写的。然后 ICL 将查询的问题(即你需要预测标签的 input)和一个上下文演示(一些相关的 cases)连接在一起,形成带有提示的输入,并将其输入到语言模型中进行预测。
而Instruction-tuning则利用指令的形式让模型更好地理解并遵循特定的任务需求。你觉得哪个任务简单?请把序号打在公屏上。做判别是不是比做生成要容易?Prompt就是第一种模式,Instruction就是第二种。
- 带女朋友去了一家餐厅,她吃的很开心,这家餐厅太__了!(Prompt)
- 判断这句话的情感:带女朋友去了一家餐厅,她吃的很开心。选项:A=好,B=一般,C=差(Instruction-tuning)
而Chain-of-Thought则能帮助模型在一个完整的思路链条中理解和生成文本。作者Jason发现,传统的prompting中,总是让模型一步到位地解决一个复杂multi-step问题,而我们人类的认知方式则是分步骤解决复杂推理问题。所以,他提出了一个简单有效的prompting方法,把人类思考问题的过程,所谓Chain of Thought,用自然语言的形式,显性的放在prompt message中。下图左图是标准的Prompting,右侧是采用思维链的Prompting。
二、 Prompt-Tuning
给定一个句子[CLS] I like the Disney films very much. [SEP]
传统的Fine-tuning方法是将其通过BERT的Transformer获得 [CLS]
表征之后再喂入新增加的MLP分类器进行二分类,预测该句子是积极的(positive)还是消极的(negative),因此需要一定量的训练数据来训练。
(1)构建模板: 通过人工定义、自动搜索、文本生成等方法,生成与给定句子相关的一个含有[MASK]标记的模板。例如It was [MASK].,并拼接到原始的文本中,获得Prompt-Tuning的输入:[CLS] I like the Disney films very much. [SEP] It was [MASK]. [SEP]。将其喂入BERT模型中,并复用预训练好的MLM分类器(在huggingface中为BertForMaskedLM),即可直接得到[MASK]预测的各个token的概率分布;
(2)标签词映射(Label Word Verbalizer) :因为[MASK]部分我们只对部分词感兴趣,因此需要建立一个映射关系。例如如果[MASK]预测的词是“great”,则认为是positive类,如果是“terrible”,则认为是negative类。
(3)训练:根据Verbalizer,则可以获得指定label word的预测概率分布,并采用交叉信息熵进行训练。此时因为只对预训练好的MLM head进行微调,所以避免了过拟合问题
PET(Pattern-Exploiting Training)出自《Exploiting Cloze Questions for Few Shot Text Classification and Natural Language Inference》(EACL2021)[4],根据论文题目则可以猜出,Prompt-Tuning启发于文本分类任务,并且试图将所有的分类任务转换为与MLM一致的完形填空。
PET详细地设计了Prompt-Tuning的重要组件——Pattern-Verbalizer-Pair(PVP),并描述了Prompt-tuning如何实现Few-shot/Zero-shot Learning,如何应用在全监督和半监督场景(iPET)。PET的详细讲解可参考PET的论文解读[5]
PET设计了两个很重要的组件:
-
Pattern(Template) :记作 ,即上文提到的Template,其为额外添加的带有
[mask]
标记的短文本,通常一个样本只有一个Pattern(因为我们希望只有1个让模型预测的[mask]
标记)。上文也提到,不同的任务、不同的样本可能会有其更加合适的pattern,因此 如何构建合适的pattern是Prompt-Tuning的研究点之一 ; -
Verbalizer :记作 ,即标签词的映射,对于具体的分类任务,需要选择指定的标签词(label word)。例如情感分析中,我们期望Verbalizer可能是 , (positive和negative是类标签)。同样,不同的任务有其相应的label word,但需要注意的是,Verbalizer的构建需要取决于对应的Pattern。因此 如何构建Verbalizer是另一个研究挑战 。 上述两个组件被称为Pattern-Verbalizer-Pair(PVP),一般记作 ,在后续的大多数研究中均采用这种PVP组件。基于PVP的训练目标可以形式化描述:
参考:Prompt-Tuning——深度解读一种新的微调范式_prompt tuning_华师数据学院·王嘉宁的博客-CSDN博客