当前位置:首页 > 高端制造 > 正文

比肩5400亿模型,IDEA封神榜团队仅2亿级模型达到零样本学习SOTA

机器之心专栏机器之心编辑部本文是IDEA封神榜团队的杨平和王军杰为大家带来论文解读。在今年的一篇文章[1]中指出,自预训练技术被提出以来,NLP界一直存在着一个不可能三角(如下图1),即一个模型不能同时满足:中等模型大小(10亿以下);SOTA的Few-Shot(甚至是Zero-shot)性能;SO...

机器之心专栏机器之心编辑部本文是IDEA封神榜团队的杨平和王军杰为大家带来论文解读。在今年的一篇文章[1]中指出,自预训练技术被提出以来,NLP界一直存在着一个不可能三角(如下图1),即一个模型不能同......

机器之心专栏

机器之心编辑部

本文是IDEA封神榜团队的杨平和王军杰为大家带来论文解读。

在今年的一篇文章[1]中指出,自预训练技术被提出以来,NLP界一直存在着一个不可能三角(如下图1),即一个模型不能同时满足:

中等模型大小(10亿以下);

SOTA的Few-Shot(甚至是Zero-shot)性能;

SOTA的Fine-tuning性能。

图1。

不可能三角存在的原因是,当前预训练模型的参数量只有达到一定的数量级,并且使用提示学习才能体现出强大的few/zero-shot性能。

最近我们封神榜团队被EMNLP2022收录的论文:《Zero-ShotLearnersforNaturalLanguageUnderstandingviaaUnifiedMultipleChoicePerspective》则打破了这一「魔咒」,提供了一个灵活高效的解决思路。我们的论文提出的UniMC在拥有模型参数量很小(仅仅是亿级)和SOTA的Fine-tuning能力的前提下,同时还能拥有(与5400亿的PaLM相当的)SOTA的Few/Zero-Shot性能。

论文地址:

模型开源地址:

技术背景

2018年BERT的提出,标志着整个NLP领域进入一个预训练时代,NLP的百尺竿头终于更进一步。现有的模型如DeBERTa等预训练掩码语言模型(PMLM)已经可以在10亿级以下的参数做到fine-tuning的SOTA了,但是面对Zero-shot场景下的NLU任务时表现无力。

针对Zero-shot场景,近年来的主流做法是利用上百亿乃至千亿的预训练语言模型(PLM)统一将NLU任务转化为文本生成任务,这样可以通过人工构造prompt或者是人工设计verbalizer使得大模型可以应用于zero-shot任务上,如图2(a)。进一步地,FLAN论文中,使用了大量人工构造的模版来统一了不同的任务,使得别的任务的知识可以迁移到特定任务上,如图2(b)。不过,这样的生成模型具有以下缺点:

生成模型需要将verbalizer(标签描述)给生成出来,而verbalizer通常由人工进行编写,不同的verbalizer会导致较大的性能差异;

prompt也需要人工设计,不同的prompt会极大影响下游任务的效果;

生成模型在推理时,需要自回归的生成答案,速度较慢。并且一般是单向的,无法像BERT一样可以获取双向信息;

为保证few/zero-shot性能,生成模型参数量往往较大,达到GPT-3的1750亿或者是PaLM的5400亿;

虽然FLAN的Instructiontuning可以迁移别的任务的知识到特定任务上,但是面对不同任务需要新的训练。比如,评估A时,需要在BCDE上训练;评估B时,需要在ACDE上训练。

而我们提出了图2(d)中UniMC的方法,避免了上述问题,并且在中英文数个任务中达到了SOTA或者是与最先进模型相近的表现。

图2

UniMC(一个新的模型表现型)

模型思路

大部分的NLU任务都是基于标签的,而生成模型需要将标签给生成出来,这无疑是加重了任务的难度和模型的学习成本。对于许多基于标签的任务(Label-basedTask)来说,通常只需要给定输入文本,输出文本属于每种label的概率即可。基于这个思路,我们将NLU任务转化为多项选择任务(Multiple-Choice)。即给定文本、问题和选项,输出每个选项的概率,而不需要将选项生成出来。

在此基础之上,我们提出一个新的概念:模型的表现型。现有的模型表现型,都是在后面添加某个层,比如分类层。或者是,生成模型GPT的表现型是通过Prompt来挖掘模型的知识。而我们提出的UniMC方案不需要在PMLM引入任何额外的层,挖掘了另一种PMLM的表现型。

在本论文中,我们选择了ALBERT作为我们的骨干PMLM网络。

统一的多项选择格式

如图3,我们希望把基于标签的NLU任务都转换成统一的MC(Multiple-Choice)格式。我们的理念是,尽可能少添加人工信息。

图3

具体地说,我们做了如下两步:

把label变成option;

选择是否添加questionprompt(question基本来自数据集的描述)。

优点:只设计了一种optionprompt,设计一种或者是没有questionprompt。

模型结构

UniMC的结构如下图4所示,它采用类似于BERT的自编码结构。主要流程为,我们先统一好不同任务的输入,并且限制好输入信息之间的流通性,经过PMLM之后,利用O-MLM、OP和MLM进行MCtraining,最后使用O-MLM和OP进行zero-shot预测。接下来我将一步一步地拆解我们的方案。

图4

输入Input

如图5红色实线框区域内容。在输入到UniMC之前还要处理一下,变成UniMC特有的token格式。为了提升计算效率,我们将所有选项与问题和文本进行直接拼接,即[Options,Question,Passage]。并且我们在每一个选项的前面插入一个特殊的token,[O-MASK],用来表示yes或no(选不选这个选项)。(注,为了可以提高复用性,我们复用了[MASK]token。

如图5绿色虚线框区域内容。我们需要考虑输入信息源太多,有选项信息、问题信息和文本段信息。它们之间的信息会相互影响,所以我们希望隔绝不同的信息。比如,我们在输入的时候,假如可以看到别的选项,那么这道题的难度就下降了,模型会有惰性。

因此我们进行了如下考虑:

使用SegmentID,告诉模型option和context(question,passage)信息是不同的;

修改PostionID,需要模型同等地看待不同option的位置信息;

修改AttentionMask矩阵,避免模型可以看到不同option的信息导致模型产生惰性。

图5

模型如何做选择题?(O-MLM和OP)

如图6,我们利用O-MLM和OP任务来让模型可以去「选择」答案。O-MASK完全继承于MASKtoken(具体地,为了不添加额外的参数以及充分利用模型在无监督预训练阶段所学习到的知识,我们复用了MaskLMhead的参数)。唯一不同的是,它是100%被mask的。O-MLM任务的目标就是把O-MASK解码出‘yes’或‘no’,其用来预测该选项是否被选择。

而OP任务的作用在于,从各个选项的‘yes’中预测答案。具体地,我们取每个[O-MASK]输出的‘yes’的logit进行softmax得到每个选项的概率,取概率最大的的选项最为预测答案即可。

图6

在一个Batch中处理多个MC任务

如图7,我们希望在一个batch中放入多个MC数据集,这样可以增强模型的能力,而且,也更加统一(Unified)。我们在构建batch的时候,发现了一个问题:假如,一个batch里面有不同选项的sample呢?

所以我们在输出的前面,再设计了一个logitmask的方法。直接给无关的token赋予一个负无穷大的预测值,加起来,我们就可以在计算softmax的时候消除别的token对于O-MASK的影响了。并且,不同数量的多项选择题可以在一个batch中统一处理。

图7

模型训练和预测

MCTraining

与FLAN的InstructionTuning不同,我们仅仅在MC数据集上进行训练,这主要是为了让模型学会如何做选择题,并且MC数据集具有一定的通用性,比如,不同的数据集可能由数量不等的标签组成。

图8

Zero-shotInference

有趣的是,我们可以发现,这两个任务,是可以在Training和zero-shotinference两个阶段拥有一致性的。这是因为我们都是使用了O-MLM和OP两个任务来实现让模型做选择题。并且由于我们抛弃了分类层,所有的参数都可以复用,这样一来就激活了PMLM的Zero-shot能力。

图9

UniMC性能

英文场景

我们收集了14份multiple-choice任务进行预训练,然后做其他NLU任务进行zero-shot性能测试。在4个NLI任务中,UniMC取得了SOTA并且超越5400亿参数的PaLM模型。

图10

并且我们在分类任务上击败了以GPT-2和GPT-3为骨干的网络。对于非常困难的Dbpedia任务,高达13个类别,甚至可以达到88.9%的超高准确率。

图11

为了探究UNIMC的泛化性,我们和FLAN做了对比。可以看到,我们的UniMC几乎可以在所有任务中超越FLAN或者是接近。

图12

中文场景

在中文场景中,我们收集了40份有监督数据集,并统一构造成为MC的任务形式对UniMC模型进行预训练,然后在FewCLUE和ZeroCLUE的9个任务上进行测试。截止2022年8月30日,UniMC取得了FewCLUE和ZeroCLUE双榜第一(图中的二郎神-UnifiedMC即为UniMC)。

图13

图14

总结

我们提出了一个新颖的Zero-shot场景下的NLU任务的解决方案,仅利用亿级的参数量就战胜了千倍参数量的复杂大模型。

此外,我们几乎没有引入任何的人工信息。并且克服了BERT类模型的预训练和微调不一致的问题,我们的训练和预测是具有一致性的。我们甚至可以做到一次训练,多次zero-shot预测,极大地节约了算力成本。目前IDEA封神榜团队已经推出了超过70个预训练大模型。

模型:

封神榜总论文(中英双语):

封神榜主页:

引用

[1]ImpossibleTriangle:What'sNextforPre-trainedLanguageModels?

最新文章