过去数年,在迁移学习的推动下,NLP的模型变得越来越强大。性能快速提升的AI算法,使得现在面向AI性能的基准测试变得有些落后。例如,近来不断涌现的AI模型,在SuperGLUE、SQuAD等标准基准上基本都能够实现超越人类的表现。但是这就意味着我们已经接近解决自然语言处理的问题了吗?

显然,没有人会这么想;相反,近来所有的研究者都在重复一句话:我们离 NLP 的终极目标依然还很遥远。

这是因为什么呢?

随时间发展,模型在SQuAD2.0上的性能(图源:Papers with Code)

传统上,评测 NLP 模型性能的做法,通常是使用一个单一的指标,例如精度(accuracy)或BLEU。这种方法是一个静态的基准,依靠的是一个抽象的任务相关的公式。但这种方法,在当下各种模型强大但却流于表面的「语言理解」情况下,已经不再有效。

因此,我们需要重新思考如何设计 NLP 的基准,用来评测当下的这些模型的真实能力,从而指引NLP研究的发展。

本文将概述 NLP 基准测试方面存在的挑战和机遇,并提供一些一般性的建议。

作者:Sebastian Ruder,DeepMind 研究科学家

编译:贾伟,戴一鸣


内容目录:

  • 什么是基准?

  • 基准简史

  • 指标很重要

  • 考虑下游使用案例

  • 细粒度评测

  • 基准性能的长尾效应

  • 大规模联系评测


原文:https://ruder.io/nlp-benchmarking

01

什么是基准?

数据集就是我们的望远镜 —— Aravind Joshi

基准(Benchmark),这个术语原本是指建筑中建筑师们做的水平标记;延伸义则是,用来比较事物的标准参考点。

在机器学习(ML)和自然语言处理(NLP)中,一个典型的基准通常包含几个基本的组成部分:一个/多个数据集(datasets),一个/多个相关指标(metrics),一种计算性能的方法。

设定基准的意义在于,针对领域内各种各样的系统,我们能够有一个共同的标准来评定其优良。当然,其前提是,领域内的人都愿意接受这个基准。

因此,为了确保让大家接受,近期的许多基准,要么选择一组具有代表性的标准任务,例如GLUE 或 XTREME;要么会通过征集的意见来构建,例如SuperGLUE、GEM 或 BIG-Bench等。

对于该领域的研究者来说,基准就是跟踪研究进展最重要的工具。Aravind Joshi 曾说过:「我们如果没有基准来评测模型的性能,这就像天文学家想看星星却不去造望远镜一样。」

对于开发者或非专业人士来说,基准能给他们提供一个相对客观的比较方法,让他们快速了解这个领域的进展,识别出有用的模型。例如《AI Index Report 2021》便采用SuperGLUE 和SQuAD作为标准来衡量 NLP 的进展。

通常人们会把在一个有影响力的基准测试中超越人类表现的模型,视为一个领域的关键研究里程碑。AlphaFold 2之所以轰动,正是因为在 CASP 14 的竞赛中取得了与实验室方法(人类表现)媲美的性能,这被认为是结构生物学领域中的重大科学进步。

02

基准简史

制定一个好的基准,其难度超出大多数人的想象。—John R. Mashey

在评测计算系统的性能方面采用基准测试的方法有着悠久的历史。标准性能评测公司 (SPEC) 成立于 1988 年,这也是致力于对计算机硬件性能进行基准测试的最悠久的组织之一。每年,SPEC 都会发布不同的基准测试集,每个测试集由多个程序组成,并采用MIPS(每秒数百万条指令的几何平均值)来衡量计算系统的性能。

最近针对机器学习(ML)出现了一个类似于 SPEC 的组织 MLCommons。他们会组织 MLPerf 系列性能基准,其关注的重点是模型训练和推理的性能。

与 SPEC类似,MLPerf 获得了来自学术界和工业界的广泛支持,并建立在之前的一些工作基础上,包括百度的 DeepBench、斯坦福大学的 DAWNBench等。

对于 DARPA 和 NIST 这样的美国机构而言,基准在衡量和跟踪科学进步方面也发挥了至关重要的作用。早期的自动语音识别 (ASR) 基准,例如 TIMIT 和 Switchboard,从 1986 年开始都是由 DARPA 资助并由 NIST 协调的。后来在其他机器学习领域,比较有影响力的基准,例如 MNIST,也都是基于 NIST 的数据。

在语言技术和信息检索 (IR)上,NIST 曾举办了 TREC 系列研讨会(DARPA资助),涵盖了诸多 tracks 和 topics,如下图所示:

从1992-2020年间TREC workshop的任务和主题

TREC 组织这些比赛,是建立在 Cranfield 在 1960 年代首创的评测范式之上,即基于一组测试集对模型进行评测。由于许多模型在不同的 topics上会表现出较大的差异,因此最终的分数会取分数平均值。

近年来,许多有影响力的基准测试,例如 ImageNet、SQuAD 或 SNLI,在规模上都比以前的基准测试更大,这些基准一般会由资金雄厚的大学中的学术团队开发。在深度学习时代,这些大规模的数据集被认为是推动研究进步的支柱之一。NLP 和生物学等领域也都相继见证了属于它们的“ImageNet 时刻”。

随着模型变得越来越强大和通用,基准也开始变得更加面向应用,并且越来越多地从单任务转向多任务,从单领域转向多领域。

例如,

  • 原来的基准专注于核心语言任务(如词性标注、依存分析),现在则更加贴近现实世界的任务(如面向目标的对话和开放域问答)

  • 出现了多任务数据集和基准,如GLUE;

  • 出现了多模态数据集和基准,如WILDS。

但是随之而来的却是出乎意料的记过。对于MNIST、Switchboard等经典基准,在它们发布 15 年后才出现能够超越人类性能的模型;而GLUE、SQuAD 2.0 等新型的基准,发布仅一年左右,便有模型实现了超越人类的性能表现。

见下图:

各类Benchmark随年份的性能情况,初始表现为 -1,人类表现为 0。

但我们每个人都清楚,「问答」这个任务本身 ,远没有得到解决。

导致这些新基准很快被AI超越的一个因素是,与早期基准相比,新基准的数据集中的局限性和标注的人为性特征(annotation artefacts)能够很快被AI识别出来。

在 SNLI中,标注员/标注器会依赖于启发式标注方法,模型能够只需要进行假设,就能够对很多样本做出正确的预测。但在SQuAD 上训练的模型,却会受到对抗性句子的影响。

最近在基准上出现了一个新趋势:对抗样本数据集,例如 Adversarial NLI、Beat the AI等。在一般数据集上表现优良的模型,用这些数据集进行测试,结果往往会比较惨。

Dynabench 是最新的一个开源平台,其目的就是要促进此类数据集的创建。这一类基准的好处是,它们是动态的,可以随着新模型的出现而更新,从而更具有挑战性,因此不会像静态基准那样容易被很快超越。

03

指标很重要

“当你能衡量你所说的并用数字表达它时,你就知道你在讨论什么。但是当你不能衡量它却还要用数字表达它时,你的知识就是非常贫乏且不能让人满意的。” —Lord Kelvin

评价指标很重要。

在衡量性能时,指标的重要作用却往往会被低估。

例如对于分类任务,准确率或 F-score 似乎是一个最佳选择。但事实上我们会忽略一点,不同类型的预测错误,对于结果的影响是不同的。例如,对于细粒度的情感分析,混淆了「积极」和「非常积极」,可能没有太大的问题,但将「非常积极」和「非常消极」混淆带来的问题是更为严重的。

设计一个好的指标依赖于领域内的专业知识。MLPerf 测量将模型训练到特定于数据集的性能目标所需的时间。这一性能结果是由终端应用案例和训练模型的效率(如FLOPS)两个指标共同评价的。在 ASR 中,最初仅使用正确转录单词的百分比(类似于准确性)作为度量标准。社区则在后来确定了单词错误率的指标,即

(替换+删除+插入数量)/参考文本词数

因为这一指标能够直接反映纠正转录错误所耗费的成本。

正如 Mark Liberman 所强调的那样,为长达数十年的研究而设计的指标与为实际应用开发而设计的指标之间存在很大差异。为了开发十年规模的技术,我们需要有效的指标,只要它们指向我们遥远目标的大方向,就可以是粗略的。 例如 ASR 中的单词错误率(假设所有单词同等重要)和机器翻译中的 BLEU(假设词序不重要)。相比之下,对于实用技术的评测,我们需要在设计时考虑到特定应用程序的要求,并且可以考虑不同类型的错误类别的指标。

为了继续取得进展,我们需要能够更新和完善我们的指标,用特定于应用程序的指标替换高效的简化指标。例如,最近的 GEM 基准明确将指标作为一个组成部分,应该随着时间的推移进行改进,如下所示。

在评价基准测试有效性方面的机遇和挑战

建议:

  • 考虑更适合下游任务和语言的指标;

  • 考虑突出下游设置权衡的指标;

  • 随着时间的推移更新和完善指标。

04

考虑下游用例

不管是好是坏,基准会塑造一个领域。好的基准应该与实际应用保持一致性,糟糕的基准则往往不能保证一致性。这会迫使工程师们不得不在终端用户和营销之间做出选择。—David A. Patterson; foreword to Systems Benchmarking (2020)

从创造性的自我表达,到欺诈检测和推荐,NLP技术越来越多地被用到许多现实世界的应用领域。因此,在设计基准时考虑真实世界的环境是非常关键的。

Ido Dagan强调,基准测试的数据和评测过程应该能够反映真实世界的情况。例如,

1)对于关系分类,FewRel数据集就缺少一些重要的现实属性,而Few-shot TACRED则解决了这些问题。

2)对于IMDb数据集上的二元情感分类,只考虑高度极化的正面和负面评论,标签完全平衡。

3)在信息检索中,在「非相关文档」(non-relevant documents)之前检索「相关文档」是必要的,但对于真实世界的使用来说,光这些还是不够的。

作为该领域的研究人员,我们应该清楚地将基准所反映的性能到底是什么,以及它与现实世界之间的对应关系是什么,讲清楚。同样重要的是,在一个基准上表现良好的性能,也应该暗含着在任务上有鲁棒的域内性能(in-domain performance)

然而,在现实世界的应用任务中,模型往往会遇到与其训练数据集分布不同的数据。因此,评测模型的稳健性以及对OOD数据(out-of-distribution data)的泛化能力,也同样至关重要。

鉴于 NLP 研究中的语言多样性,一个重要的问题就是,不应当将英语视作评测的唯一语言。在设计基准时,应当收集其他语言的测试数据,这可能会有助于突破一些挑战,并有助于促进语言模型的包容性。同样,在评测模型(例如问答或文本摘要)时,利用越来越多的非英语数据集,往往会有助于提高模型的功能。

最后,考虑一些语言技术当前以及未来可能遇到的现实应用问题,可能会给设计新的基准提供灵感。基准是 NLP 领域最具影响力的产物之一,通常会导致全新的研究方向,因此,通过它来反映现实世界的需求,反映我们技术的潜在雄心,同样至关重要。

建议:

  • 设计基准及其评测,使其反映真实世界的问题;

  • 评测域内和域外的泛化;

  • 在多语言上进行收集数据、评测模型;

  • 从语言技术的实际应用中汲取灵感。

05

细粒度评测

“不论人们多么希望性能能够用单一数字来表示,这种方式都会让正确的方式产生误导,而对于错误的方式,就更不会有什么提升了。—John R. Mashey

技术的下游用例(use case)应当能够反映我们用来评估的指标。

对于下游应用,通常需要考虑的不是某一个单一的指标,而是一系列的约束。因此我们不应当仅仅只关注准确率,还应当关注现实世界场景中的其他一些重要方面。

在一个特定的环境中,什么是重要的呢?我们应该认识到,NLP 系统的有用性最终取决于每个用户的需求,这才是真正重要的。

然而在机器学习的研究中,社会的真正需求通常并没有得到足够的重视。例如,对于真实世界的应用来说,让一个模型不带有任何有害的社会偏见,是非常重要的。因此,在算法设计和模型评测中,测试是否存在偏见应当成为标准部分。

对于实际应用,另一个重要问题是效率。根据应用的不同,「效率」可能是指样本效率、FLOPS或内存约束等。在资源受限的环境下评测模型,常常会导致新的研究方向。

例如,NeurIPS 2020 中 EfficientQA竞赛中,Lewis等人便证明了检索增强和大量弱监督问答对能够给模型带来更大的好处。

为了更好地理解我们的模型的优势和劣势,我们进一步需要在单个度量上进行更细粒度的评估,从而能够突出模型能够在哪类样本上表现良好,哪些又不够好。

ExplainaBoard 实现了跨不同任务的模型性能的细粒度细分,如下所示:

获得模型性能的更细粒度估计的另一种方法是为特定现象和模型行为创建测试用例,例如使用CheckList框架。

在上图中,针对三个最佳系统的 CoNLL-2003 NER数据集,提供了ExplainaBoard接口。这个接口包含最佳系统的单系统分析(A)、top-2系统的成对分析(B)、常见错误表(C)和综合结果(D)。

由于单个指标可能存在缺陷,因此评估多个指标是非常关键的。在对多个指标进行评估时,通常会对分数进行平均,从而获得一个分数。这个分数有助于一目了然地比较模型的优劣,并且能够为领域以外的人提供一种评估模型性能的清晰方法。

不过,并不是所有情况下都适合使用算术平均值。例如 SPEC 使用的就是几何平均值,这在聚合呈指数的值(例如运行时)时非常有用。

另一种方法是使用加权总和,并允许用户能为每个组件定义自己的权重。DynaBench 使用这种动态权重来衡量模型性能的重要性,同时也考虑模型吞吐量、内存消耗、公平性和稳健性等。通过这种方式,可以让用户有效地定义自己的排行榜,如下所示:

DynaBench 自然语言推理任务排行榜中的动态度量权重

建议:

  • 不要使用单一的性能评估指标;

  • 要考虑评估社会偏见和效率;

  • 针对模型进行细粒度评估;

  • 需要考虑如何聚合多个指标。

06

基准性能的长尾问题

现在我们应该关注模型的长尾问题,比如在最差样本,或者数据集中模型表现最差的部分。

当然,随着模型性能的增强,这种数据集上性能的割裂会变小。为了保证对长尾样本进行可靠的评价,基准需要变得虽高大,使得性能在不同样本间的差距得以体现。需要注意的是,即使是大型的模型,在样本上的性能也不是统一的。

当然,我们也可以提出新的机制,使我们能够用很少的样本来评价模型。这一点其实很重要,因为要评价许多模型是成本很高的,比如由人类进行自然语言生成的评价。

基准测试也可以关注一些具有挑战性的样本,比如标注样本,比如说最近出现的对抗基准。这种基准,只要不会对特定的模型有偏见,就可以作为传统基准的补充。这些方法能够帮助找到最为有效的评测样本,同时也能够帮助标注者更好地了解模型的能力边界。

由于基准数据集的大小和成本投入是稳定的,统计显著性检验更为重要,因为它能够帮助我们去发现不同模型之间性能和模型本身的关系。

为了能够进行可靠地比较,基准测试的标注需要准确、可靠。然而,当模型变得更强时,许多看似是模型错误的预测,实际上是体现数据中不确定性的样本。Bowman和Dahi认为,模型对于这种不确定性的处理,可能是其超越人类表现的体现。

可能的话,基准测试的目标应当是收集多种标注来发现数据中的不确定性。这种信息可以提供有用的学习信号,帮助进行错误分析。更重要的是,在设立基准时,要在多个标注者之间形成一种共同的标准,这可以对模型能够达到的性能上界做出一个限定。

建议:

  • 在一个基准中加入很多不同的,或者很难推理的样本;

  • 采用统计显著性检验;

  • 对于不确定的样本,收集多种标注结果;

  • 在标注者之间报告共识。

07

大规模持续评价

“当一个措施本身成为目标时,它就不再是一个好的措施。” ——古德哈特定律

多任务基准测试,如GLUE,已经成为关键的测试指标,但是这种静态的基准很快就会过时。同时,AI模型的性能提升并不意味着在多种任务上同时取得提升。当模型已经在大多数GLUE任务上取得超越人类的表现时,很多模型在CoLA上仍有差距。在XTREME测试上,模型在跨语言抽取任务上的提升更大。

考虑到过去模型提升的速度,我们可能需要更为长远的评价机制。我们尤其要超越动态单一任务评价的方法(如DynaBench)。如果能够定义一个动态的、尚没有模型超越人类水平的基准测试数据集,这将是一个非常有用的数据集。

这一数据集可以由社区来进行管理,当模型在某些任务上达到人类水平时,该指标被降权,或者干脆将数据集移出基准,并加入新的数据集。这样一来,这种基准测试也会有多个版本,能够采用超越学术评估的方法来更新,并能够进行更新,也可以和之前的基准进行对比。

目前已有的多任务基准测试集,如GEM等,这些数据集的目的就是为了创造一种“动态”的基准,能够包括10-15种任务。如果不将基准限定在表示任务上,而是能够囊括更多跨领域的NLP任务,这些基准可能会更有用。

NLP任务本身就是很多样的,所以新的基准才能够提供更为鲁棒、更为即时的评测体系。例如,百度的LUGE就是这样一个案例。该基准有28个数据集,是一个面向中文自然语言处理的大型任务集合。

当然,即使是一个大型的基准测试集,其也能够被拆分,提供更为精细的评价。这种拆分,在以评价行为的基准测试集上,更为有用。BIG-Bench,就提供了基于关键词分类的任务。

当然,采用这种大规模多任务测评基准的关键是可用性。评价过程中,输入应当是统一的,所以才能够很容易地进行计算。此外,在缺乏算力资源的情况下,这些测评也应当能够很高效地跑起来,或者测评方应当提供相应的基础设施。

另一个需要关注的问题是,这种大型多任务测评基准其实对通用任务模型更有利,这些模型我那个网由大公司和机构研发训练。当然,这些模型已经是当前很多研究中最开始使用的方法了。当然,如果这些模型能够进行微调、蒸馏和剪枝,它们就可以变得更为高效。

建议:

  • 建议采用大型、多样、分版本的NLP任务作为评价方式。

08

结  论

为了能够跟上AI模型发展的脚步,我们需要重新回顾许多基准测试中采用的策略,比如基于F1-socre和BLEU的简单指标等。我们应该从真实世界的应用中汲取灵感,比如语言技术,同时考虑一些基准对模型的限制和特殊的需求。

我们同时也需要关注长尾分布,因为这也是许多应用性能可以得到提升的地方。最后,和现在主流趋势不同,我们在模型评测时更为谨慎,要采用多种指标和统计显著性检验。


欢迎加入「自然语言处理」交流群!

(与内行人交流日常)


Sebastian Ruder 发文:Benchmark 的挑战与机遇!相关推荐

  1. 2021年ML和NLP研究亮点回顾 | DeepMind科学家Sebastian Ruder

    导语:2021年见证了机器学习和自然语言处理领域许多振奋人心的进展.DeepMind科学家Sebastian Ruder近期撰文介绍了过去一年中最具有启发意义的论文和研究领域,要点如下: Univer ...

  2. 读博难,大神来支招:DeepMind科学家Sebastian Ruder提出十条实用建议

    点击上方"AI遇见机器学习",选择"星标"公众号 重磅干货,第一时间送达来源:机器之心 如何找到合适的研究方向?如何维持饱满的科研热情?如何通过读博实现长期规划 ...

  3. 限时免费下载丨《2021 中国游戏市场挑战与机遇盘点》重磅发布!

    虽然 2020 年宅经济带来了游戏市场的短期高增长,但中国游戏市场从高速增长阶段逐步向稳定增长转变的长期趋势没有改变.与此同时,海外游戏市场正在从蓝海市场变为红海市场,中国游戏企业未来想要在海外市场占 ...

  4. [转载]模糊系统:挑战与机遇并存——十年研究之感悟 王立新

    [转载]模糊系统:挑战与机遇并存--十年研究之感悟 王立新 http://www.ee.ust.hk/ece.php http://www.ee.ust.hk/~eewang/ 模糊系统:挑战与机遇并 ...

  5. 对话OTTVerse创始人Krishna Rao Vijayanagar:创业之初,挑战与机遇并存

    点击上方"LiveVideoStack"关注我们 编者按:在过去几个月时间里,LiveVideoStack翻译了一系列视频技术文章(Easy Tech系列),这些文章内容丰富,轻松 ...

  6. 【免费报名】挑战与机遇同在,大步迈进全真互联网时代

    随着云计算的普及与高速发展,5G网络.VR技术的日益成熟,我们正向着全真互联网时代大步迈进.伴随着新时代的到来,"元宇宙"."沉浸式"等概念横空出世,挑战与机遇 ...

  7. 视频质量评价:挑战与机遇

    正文字数:5168  阅读时长:10分钟 本文整理自鹏城实验室助理研究员王海强在LiveVideoStack线上分享上的演讲.他通过自身的实践经验,详细讲解了视频质量评价的挑战与机遇.   文 / 王 ...

  8. 【线上分享】视频质量评价:挑战与机遇

    随着在线视频分享平台和社交媒体的兴起,用户原创视频为视频行业带来新的机遇与挑战.传统视频质量评价主要衡量高清视频经压缩/网络损伤后的视觉体验,高清源视频可以用于离线优化系统中.然而,用户原创视频并不具 ...

  9. 圆桌对话:云时代下,企业运维面临的挑战与机遇

    简介:四位企业运维大咖展开对话,讨论"云时代下,企业运维面临的挑战与机遇". 编者按:上云,已经成为了企业势不可挡的选择.云计算所拥有的"软件定义一切"的特性, ...

最新文章

  1. bom event周期_前端知识点总结——BOM
  2. boost::fusion::flatten用法的测试程序
  3. 实战Jquery(一)--username校验
  4. Python到底是有什么魅力,让程序猿为它折腰?
  5. 服务3000万制造企业 阿里云数字工厂诚邀合伙人
  6. 黑马程序员——选择排序
  7. [译]Vulkan教程(20)重建交换链
  8. 【MySQL】exists与in的比较
  9. 强子对撞机下午3时半开始一次全轨道试验,如果产生黑洞,人类将在今日消失
  10. 计算机开机后 打不开软件,电脑开机后软件打不开怎么回事
  11. Linux学习笔记(1)--Linux的发展史
  12. 《SICP》习题第1章
  13. 日本“性爱机器人”上线1小时被抢空
  14. matlab eqs,EQS(奔驰eqs什么时候上市)
  15. 短视频风口持续 今日头条再投10亿补贴火山小视频
  16. Echarts 开源,免费商用图表控件使用整理
  17. 字符流何用, 字节流呢
  18. 金蝶K3生产任务单批次号和工单号同步需求实现
  19. jquery手机触屏滑动拼音字母城市选择器代码
  20. udp洪水攻击java_udp洪水攻击 - 上树的熊的个人空间 - OSCHINA - 中文开源技术交流社区...

热门文章

  1. c语言用链表的方式实现多项式加减,如何实现C语言单链表多项式相加的操作
  2. 为啥led灯用一年后暗了很多_有些人日间车灯可以关为啥偏偏不关?是要告诉别人他的车好吗?...
  3. oracle卸载注意啥,关于oracle的安装,卸载以及其他注意事项
  4. electron 托盘图标闪烁_从零到一,用 Electron 开发桌面效率工具
  5. 注塑机摆放间距多少合适_红木家具之间正确的摆放距离
  6. python batch normalization_python – Keras BatchNormalization,样本明智规范化究竟是什么?...
  7. oracle怎么打代码,使用DOS打Oracle代码技巧
  8. java httpurl_Java HttpURLConnection使用方法详解
  9. MyBatis学习总结(14)——Mybatis使用技巧总结
  10. 王高利:Kvm虚拟化(1)__基础搭建