gpt3(GPT3------少样本示例推动下的通用语言模型雏形)结合提示词和少样本示例后,展示出了强大性能。但大语言模型的训练门槛太高,普通研究人员无力,LM-BFF(Making Pre-trained Language Models Better Few-shot Learners)的作者受gpt3启发后,将gpt3的少样本学习思路与常规语言模型(如BERT、RoBERTa)相结合,最终提出了一种新颖的微调方法,大大降低了微调所需样本量,也为我们理解提示词的重要性带来了新的启发。
本文主要分享这种新颖微调方法的好处,不对细节做过多展开。
方法
传统的微调方法是,给定训练好的预训练模型后,再利用该预训练模型在各类监督数据集上结合标签进行监督训练。输入和输出由不同的数据集决定。
LM-BFF作者的思路是,在监督训练时,通过引入提示模板 (prompt template) 和任务示例 (task demonstrations/examples),将原始输入和输出(标签)转换成一种更接近语言模型预训练任务的格式(即完形填空或文本生成)进行训练。
例如,对于一个传统的文本分类任务:
- 传统微调输入(以RoBERTa为例) :
[CLS] No reason to watch. [SEP]
,预测输出通常是数据集的标签(如positive,negative) - LM-BFF微调输入示例 :
[CLS] No reason to watch. [SEP] It was [MASK]. [SEP] A fun ride. It was great. [SEP] The drama discloses nothing. It was terrible. [SEP]
,预测输出是标签词映射得到的词(如great,terrible)
在这个LM-BFF的例子中:
No reason to watch.
是原始输入文本。It was [MASK].
是应用于原始输入文本的提示模板,模型需要预测[MASK]
位置最合适的词。A fun ride. It was great.
和The drama discloses nothing. It was terrible.
是任务示例(demonstrations)。其中great
和terrible
是原始标签(如"正面"、"负面")通过标签词映射 (label word mapping) 转换成的具体词语。这些示例为模型提供了当前任务的上下文信息。
下图是更详细的过程:

LM-BFF的四个关键部分:
- 三个输入部分:原始输入 + 提示模板 + 任务示例
- 输出标签词映射。
其中提示模板和输出词映射可以手动指定也可以自动得出,作者提出了自动推断提示模板和输出词映射的方法。任务示例从训练样本中抽样。
自动推断输出标签映射词的方法:
- 使用预训练语言模型(如 RoBERTa)来预测与标签语义最相关的词。
- 对于每个标签,构造一个模板(如"It was [MASK]."),然后通过模型预测 [MASK] 位置的词,选择概率最高的词作为标签映射词。
- 例如,对于"positive"标签,模型可能预测"great"作为映射词;对于"negative"标签,预测"terrible"。
- 这种方法减少了手动指定标签词的负担,提高了方法的通用性。
自动推断提示模板的方法:
- 利用 T5 模型的填空能力,将模板字符作为掩码序列输入T5,使其通过预测掩码序列生成候选提示模板。
- 例如,对于文本分类任务,T5 可能生成"It was [MASK]."或"The sentiment is [MASK]."作为提示模板。
- 然后通过少量验证数据评估每个模板的性能,选择效果最好的模板。
- 这种方法通过自动化生成提示模板,减少了人工设计的成本。
实验
作者在GLUE数据集和SNLI数据集上做了实验。
在不同的数据集上,作者手工指定了提示模板和标签词映射。当然后面有手工,也有自动推断的实验结果。

实验效果
作者对比了若干方法:
第一部分:
- Majority(选取数据最多的类做标签)
- 使用作者手工指定的提示词进行零样本学习,不微调训练
- 使用作者手工指定的提示词 + 任务示例,不微调训练
- 使用少量样本进行传统微调训练
第二部分(LM-BFF):
- 手工指定提示词(原始输入 + 提示模板),微调训练
- 手工指定提示词+任务示例(原始输入 + 提示模板+ 任务示例 ),微调训练
- 自动指定提示词(原始输入 + 提示模板),微调训练
- 自动指定提示词+任务示例(原始输入 + 提示模板+ 任务示例 ),微调训练
第三部分:
全量样本传统微调训练
实验结果确实显著的表明,在少样本设定下,LM-BFF具有显著的优势,比传统微调性能大幅提高(大多在百分之10以上)

结合提示词微调的优势
另一篇论文(How Many Data Points is a Prompt Worth?)通过实验清楚的表明了结合提示微调的好处:
作者用SuperGLUE数据集对比了结合提示微调和传统微调在不同数据量情况下的表现,横坐标代表样本量,黄色代表提示词微调在使用不同样本量数据时的性能,紫色为传统微调的性能。大部分数据集上提示词微调的效果都要好于传统微调。
结果表明结合提示微调对训练样本的需求大大少于传统微调,几十个样本可以达到较好效果,不同数据量下的效果也大多好于传统微调。这也充分证明了语言模型的提示词的重要性。