数据点(data points)通常用于形容单个信息单位或观测值,在本文中,它被用来量化“提醒词”办法绝对于传统办法的效率和成果。文章比拟了两种训练(微调)机器学习模型的办法:一种是应用提醒 (prompts),本文也称之“提醒词”,另一种是应用传统的分类器头 (classifier heads),本文也称之为“分类头”。通过比拟能够发现,应用提醒词的办法通常比应用分类器头的办法更好。
本文由 Hugging Face 的研究员 Teven Le Scao 撰写,并于 2021 年 4 月发表。只管曾经过来了很久,但其中的钻研办法和发现仍具备深远的学术价值和理论利用意义,特地是对于了解和应用自然语言提醒在机器学习中的角色。
本文原文是以 Hugging Face Space 利用做的展示,对于很多后果能够进行更高级的交互,请在文末查看本文的中英文原文。
以后 NLP 利用的支流办法是针对各式各样的特定工作,别离对预训练语言模型的分类头进行微调。随着语言模型变得越来越大,各种代替办法相继涌现,开始叫板在 BERT、UniLM 以及 GPT 中宽泛应用的分类头法。特地地,GPT-3 向大家遍及了提示法,该办法通过自然语言输出来疏导预训练语言模型依附本身解决工作,而不再须要额定的分类头。
提醒的形式十分独特,用户能够通过它向模型提供信息,这与传统的 ML 监督学习有显著区别。在与 Alexader Rush 单干的 NAACL 2021 论文 中,咱们钻研了基于提醒的微调,该办法可用于代替以后规范的有监督微调法,咱们的试验表明提醒通常比规范办法更有劣势,因而该办法很有前途。在剖析这种劣势时,咱们认为提醒为模型带来了额定的信息,这促使咱们想用数据点这个指标来量化这种劣势,也就是说:提醒能够抵多少个数据点?
提醒词法
为了使预训练语言模型可能实现特定工作,以后的支流办法是用随机初始化的线性分类头替换原模型的最初一层:词预测层。而后应用有监督的工作数据通过反向流传来训练批改后的模型,次要学习这个新分类头的权重,同时也能够更新模型其余层的权重。咱们将这种办法称为 分类头 法。
一种与之相竞争的办法是 提示法 :这类办法次要尝试应用原语言模型来预测指标类相应的单词来“答复”分类问题,而不是像传统办法那样“预测”类标签。这使得咱们能够间接应用语言模型自身来执行分类工作。在这里, 提醒 就是精心设计的、用于生成所需的答案文本的输出文本。
这听起来可能很形象,但这其实恰好就是人类在理论生存中进行文本推理时所应用的十分天然的办法:例如,学校练习往往以一个文本输出(例如,一篇对于火星的文章)加上一个问题(“火星上有生命吗?”)的模式出现,并冀望你提供一个自然语言的答案(“否”1),该答案其实就能够映射到分类工作的某个类别(这里,“否”对应假,“是”对应真,本例就是个二分类问题)。在这种范式中,就像做语法练习一样,咱们把特定于工作的数据输出给模型,而模型就像学生一样,须要以固定的形式进行填空。提示法心愿能显式利用语言模型中蕴含的预训练信息,而不是仅以将其隐含表征馈送给线性分类头的形式隐式利用这些信息。
以下是 SuperGLUE 中的 BoolQ 工作的示例,其题型为判断题,每条数据包含一个文本 <span style=”color: #0c593d”>passage</span> 及其对应的问题 <span style=”color: #031154″>question</span>,其答案为布尔值,要么为真,要么为假。每条数据能够和 <span style=”color: #910713″>模板(pattern)</span> 一起组装成一个文本序列,该序列只有一个需预测的 <span style=”color: #ba9004″>掩码词 </span>。预测出该掩码词后,预测词会被一个预设的 语言器(verbalizer) 转换为类,也就是说 语言器 负责输入词与类别之间的映射:比拟该词被映射为 真 和 假 的概率,如果 真 的概率高,则最终预测为真,反之则为假。
微调
这样,咱们就把通用语言模型转变成了针对特定工作的分类器。这种基于提醒的语言模型分类器的用法很多:
- 预训练模型中保留的语言建模性能容许它们在没有额定数据的状况下执行,这与 以随机初始化开始因而初始性能也随机 的线性分类头 模型相同。因而,许多论文将其用于零样本分类。
- 为了将有监督的工作数据引入模型,咱们能够应用反向流传及语言建模中的穿插熵损失指标来微调:将与正确类别相关联的语言器词作为正确预测。PET 应用了这个办法,T5 也应用了这个指标函数 – 只管 T5 应用工作前缀来批示工作,而未应用自然语言提醒来形容它。
- 还有一种办法是应用 潜觉(priming),此时,咱们须要为以后问题找到若干正确的示例,将其作为原输出文本的前缀一起输出给模型。它没有反向流传,所以永远不会批改语言模型的权重永远;相同,它次要靠在推理时应用注意力机制去利用正确的示例。GPT3 应用了该办法。
- 最初,PET 的办法是应用提醒模型预测未标注数据的软标签(或称为伪标签),而后将其作为标签去训练线性分类头。
在本文中,为了在提示法和分类头法之间进行偏心比拟,咱们采纳了对立的基于反向流传的微调办法。
一个提醒能够抵多少条数据?
正如咱们所看到的,分类头法和提示法都能够用于针对上游工作进行有监督微调。二者的外围区别在于,除了带标注的原始样本外,提示法还给了模型一个用于对特定工作进行粗略形容的句子。从某种意义上说,这句话也是一种监督数据,因为它通知模型工作的信息,但它在实质上与机器学习中规范的监督数据又截然不同。咱们应该如何对待这种新的监督数据?又该如何量化这种办法的“零样本”水平?
咱们通过在 SuperGLUE 工作和 MNLI 上比拟 分类头法 和 提示法 来尝试答复下面的问题。咱们应用的具体方法是:对每个工作,咱们通过从数据集中选取样本数一直减少的子集,而后在每个子集上应用这两种办法对 RoBERTa-large
进行微调,同时其余所有配置放弃不变,最初对评估各自的微调模型的性能。为了偏心起见,咱们先调整基线分类头模型的超参,并使它们的性能达到 SuperGLUE 排行榜中 BERT++ 的性能程度,而后在对应的 提示法 模型中采纳雷同的超参。
下图绘制了每个工作 2 的最终性能(指标随工作而不同)随数据集大小的变动曲线。有了这个图,咱们就可能对两种办法在给定工作上达到肯定性能程度所需的数据量进行比照。咱们将这种差别称为在该性能程度上其中一个办法绝对于其余办法的 数据劣势 。咱们将两种办法都能达到的性能的范畴称为 比拟窗口。通过在该范畴内进行积分,咱们能够取得在某工作上一种办法绝对于另一种办法的“均匀数据劣势”。从图上看,这即是两条曲线所夹区域的的面积除以比拟窗口的高度。3
下表总结了在每个工作上提示法绝对于分类头法的均匀数据劣势,其误差范畴由自助采样法(bootstrapping)取得,具体做法是对每个数据规模,咱们运行 4 次分类头法和 4 次提示法(即每个数据规模共 16 种组合),而后计算这些后果的标准差。不同工作的后果有很大不同;甚至对于同一工作的不同数据集,后果也会有所不同,例如 MNLI 和 RTE,这俩数据集尽管同属蕴涵工作,但后果就很不同。然而,总的趋势也很显著,即:除 WiC 4 之外,提醒办法在其余工作中都具备显著的劣势。提醒提供的附加信息始终大抵相当于数百个数据点。
MNLI | BoolQ | CB | COPA | MultiRC5 | RTE | WiC | WSC | |
---|---|---|---|---|---|---|---|---|
提示法 vs 分类头法 | 3506±536 | 752±46 | 90±2 | 288±242 | 384±378 | 282±34 | -424±74 | 281±137 |
模板与语言器
对语言器进行管制
以后,提醒次要被用作零样本分类的工具,这是一个很天然的用法。然而,真正操作起来,零样本个别会很辣手,因为须要对提醒和语言器进行完满对齐。在上文中,咱们曾经表明,提醒能够利用到更宽泛的场景中,包含在全数据场景中。为了比照提示法的零样本性和自适应性,咱们思考一个 空语言器(null verbalizer),该语言器与工作齐全无关。对于只须要填写一个词的工作(因而 COPA 和 WSC 数据集不在此列),咱们把其语言映射(例如“是”、“否”、“兴许”、“对”或“错”)替换成随机的。这样的话,提醒模型就会像分类头模型一样,在没有训练数据的状况下无奈应用。咱们对空语言器配置进行与上文雷同的劣势剖析,并绘制出相应的曲线,如下:
MNLI | BoolQ | CB | MultiRC5 | RTE | WiC | |
---|---|---|---|---|---|---|
提示法 vs 分类头法 | 3506±536 | 752±46 | 90±2 | 384±378 | 282±34 | -424±74 |
提示法 vs 空语言器 | 150±252 | 299±81 | 78±2 | 74±56 | 404±68 | -354±166 |
空语言器 vs 分类头法 | 3355±612 | 453±90 | 12±1 | 309±320 | -122±62 | -70±160 |
从后果来看,其数据劣势噪声比间接提示法与分类头法的数据劣势的噪声更大。然而,咱们也发现,即便仅应用空语言器,语言模型也可能适应工作,即便只有几个数据点,其也能凭借失当的提醒获得与分类头模型相当或更好的性能。因而,咱们能够认为,即便没有信息丰盛的语言器,提示法带来的演绎偏差也是无益的。
模板抉择带来的影响
另一个可能影响提示法在零样本分类场景下的成败的因素是:提醒模板的抉择。这里,咱们看一下该因素对咱们的影响。咱们复用了 PET 中的模板(每个工作有两到三个齐全不同的模板),并对每个工作的每种模板进行了试验,后果如下。咱们能够看到提醒的抉择对后果没有显著影响,其方差小于随机种子带来的方差。
最初的话
通过这项工作,咱们钻研了一种新的、基于自然语言提醒的微调办法,其目标是通过单词预测显式地利用预训练模型的语言建模能力,而不是通过基于模型两头表征的线性分类器隐式地利用它。为了偏心比拟,咱们把问题建模为用反向流传来微调基于提醒的分类器语言模型,咱们发现提示法通常优于应用规范微调线性分类头的办法。咱们用数据点来预计这种劣势,以掂量人类通过提醒提供的附加信息,并发现 编写提醒始终抵得上数百个数据点。此外,即便没有语言器带来的信息量(即应用空语言器),这种劣势依然存在,并且这种办法对于提醒的抉择相当鲁棒。
对于从业人员而言,咱们置信基于提醒的微调不仅该当成为一种规范工具,而且将会成为如此。特地是对于中小型的特定工作数据集,通过自行设计提醒,只需付出很小的致力就能取得显著的数据劣势。而对于钻研人员而言,咱们认为这个畛域还有很多问题尚待摸索:为什么雷同的提醒在 MNLI 数据集上抵得上 3500 个样本,而在 RTE 数据集上却只抵得上 282 个样本?提醒与规范 ML 监督有何关系?因为它们具备一些零样本个性,因而它们对反抗样本或畛域外样本的反馈是否有所不同?
1:或者严格点说,至多据咱们所知为否。
2:眼尖的读者会留神到所有这些曲线都是枯燥的。咱们为每个试验执行了 4 次运行(即对每个工作的每个数据规模,别离各运行分类头法和提示法 4 次,并用失去的模型测试)。为了分明起见,并且因为两种办法的微调有时都会失败,从而导致负异常值,因而针对每个数据规模咱们报告在此数据规模或更小的数据规模下取得的最大性能,咱们将其称为 累积最大 聚合。除了缩小方差之外,这不会对报告的数据劣势产生太大影响,且即便对于非枯燥曲线,对图形的解读依然成立。
3:在计算每个指标的数据劣势时,咱们为每个数据赋予雷同的权重;咱们还能够针对每个工作从新参数化 y 轴。这种做法到底是会对提示法绝对于分类头法的数据劣势起促进作用还是妨碍作用不好说,与数据集相干。举个例子,强调靠近收敛时的增益会减少 CB 和 MNLI 上的提示法的数据劣势,但会升高 COPA 或 BoolQ 上的劣势。
4:乏味的是,PET 曾经发现提醒对该数据集有效。
5:MultiRC 的比拟窗口太小,因为分类头基线模型无奈学习到少数类之外常识;咱们应用整个区域来取得理论后果的下界。
英文原文: https://hf.co/spaces/teven-projects/how_many_data_points
中文版本: https://hf.co/spaces/MatrixYao/how_many_data_points_zh
原文作者:Teven Le Scao译者: Matrix Yao (姚伟峰),英特尔深度学习工程师,工作方向为 transformer-family 模型在各模态数据上的利用及大规模模型的训练推理。