在国际自然语言处理领域颇具影响力的百度,再传捷报,再度夺冠。2019年8月12日, MRQA 2019阅读理解国际评测落下帷幕。得益于自研开源深度学习平台飞桨( PaddlePaddle )的强势助攻,百度以平均 F1 值72.55%,超出第二名近两个百分点的绝对优势获得冠军。同时,在全部12个测试数据集中的10个上均排名第一。
本届评测吸引了来自苹果公司、艾伦人工智能研究院( AI2 )、哈工大、香港科技大学、富士施乐等全球知名企业和高校研究院所队伍的参与,高手如云。
▲MRQA 2019阅读理解国际评测最终榜单百度排名第一
MRQA 全称是 Machine Reading for Question Answering ,即问答阅读理解。问答阅读理解是自然语言处理领域当前最热门的研究方向之一,已成为评估机器语言理解能力的重要方式,也是搜索引擎和对话系统等行业应用中的关键技术。第二届 MRQA workshop( MRQA 2019) 将于今年11月在自然语言处理领域顶级学术会议 EMNLP 2019上举办。
本届研讨会在 Research Track 的基础上,设立了一个新的问答阅读理解评测。与以往仅聚焦于单个数据集的阅读理解评测不同,本次评测主要有两大挑战:
首先,本次评测包括训练集和测试集共18个阅读理解数据集,覆盖面广,综合难度高。针对语言理解所应解决的不同挑战,评测从多个角度考察了阅读理解模型理解语言的能力。从数据源角度看,其文档来源是多样化的,包括百科、新闻、搜索结果、电影、生物医药甚至演讲脚本。从应用任务角度来看,评测不仅包含了面向问答设计的数据集,还包含了面向信息抽取、语义解析等任务设计的数据集。此外,从语言理解的能力来看,评测除了包含传统的抽取式问答数据集,还包含了多个需要推理和计算的数据集。本次评测可谓机器阅读理解的“十项全能赛”。
更重要的是,本次评测要求参赛队伍仅可使用6个数据集训练一个统一的阅读理解模型,之后在其它12个分布各异的数据集上测试模型效果。更困难的是,测试阶段中有6个在训练阶段完全没见过的未知来源数据集。数据集分布的巨大差异和测试数据来源的完全未知为参评系统带来了极大的挑战。这样的评测设置重点考察了阅读理解模型的泛化能力。
模型的泛化能力通俗来讲就是模型对未知数据的预测能力,它是机器学习模型最重要的性质之一,决定了模型是否真正具备实用性。能够解决好该问题,意味着模型具有了一定的通用能力,在实际应用中面对不确定的数据,也能够达到可用的效果。
▲百度 D-NET 通用“预训练-微调”模型训练框架
针对上述问题,百度在本次评测中提出了一个通用的“预训练-微调”模型训练框架 D(ecathlon)- NET。
目前,“预训练-微调”在自然语言处理领域已成为一种新的、被广泛采用的学习范式,即首先在大规模无标签语料上以语言模型为目标进行预训练,然后再针对特定任务,如阅读理解进行针对性的微调。
1.在预训练阶段,采用了基于飞桨深度学习框架中的多种预训练模型,融合了多种预训练模型的优势,获得了比官方基线更好的效果。
2.在微调之前,D-NET 引入了针对更多领域数据的进一步预训练,以提升模型在特定领域上的适应性,弥补预训练模型语料分布的局限性。
3.在微调过程中,D-NET 采用了基于飞桨多任务学习框架进行多任务学习。在多任务学习的过程中利用了其它有标注的自然语言处理数据集(如自然语言推断、段落排序等)学习更好的语言表示,从而提升模型的泛化能力。“预训练-微调”学习范式在微调阶段的一个问题是容易发生灾难性遗忘。因此, D-NET 在微调过程中引入了防止灾难性遗忘的机制。
4.在微调结束后,D-NET 使用飞桨知识蒸馏框架提升单模型效果,以满足本次评测对模型效率的要求。
D-NET 能在本次评测中获得第一,得益于飞桨( PaddlePaddle ) “多,快,好,省”的四大优势:
“多”:飞桨提供了多种预置的预训练模型,方便开发者仅使用几行代码,即可调用各种预训练模型。正是得益于飞桨中的多种预训练模型库,D-NET 融合了各种预训练模型的优势,获得了更好的效果。项目地址:https://github.com/PaddlePaddle/models/tree/v1.5.1/PaddleNLP
https://github.com/PaddlePaddle/ERNIE
“快”: MRQA 2019技术评测的一大挑战是要处理大规模的阅读理解数据。飞桨的高性能分布式训练框架,帮助开发者可以通过仅仅的几行代码,即可让模型进行分布式训练。
值得一提的是,为了克服多节点之间通信带来的性能瓶颈,飞桨从梯度压缩,动态混合精度训练,梯度同步算法等方面进行了多项性能优化,使得训练大规模复杂模型的多机加速比提高至77%,极大地缩短了 MRQA 2019评测策略调研的周期,提高了实验的效率。项目地址:https://github.com/PaddlePaddle/Fleet
“好”: D-NET 的一个核心思想是让模型同时从不同类型的语料、不同的自然语言理解任务中进行学习,并将学习到的知识融会贯通,达到举一反三,增强泛化能力的作用。
开发多任务学习最大的痛点就是要灵活地调度参数和任务。为此,飞桨开发了一套针对多任务学习场景的高级库 PALM( PAddLe Multi-task ,预计在 Paddle Fluid 1.6版本中开源,敬请期待),让用户只需要开发几十行代码,就可以轻松完成不同模型间参数和任务的调度。
“省”: D-NET 夺冠的另外一个秘密武器就是飞桨提供的高性能预测引擎和模型压缩库 PaddleSlim 。PaddleSlim 提供了丰富高效的模型压缩算法,可以在不损失预测精度的前提下,通过剪枝,量化,蒸馏等算法,将多个复杂神经网络压缩至一个简单网络,从而提高预测速度并降低显存消耗。
除此之外,飞桨还针对不同硬件资源的特点在底层进行了一系列的优化,进一步提升了模型在预测部署时的性能和效率,使得 D-NET 在最终结果提交阶段,在有限的时间和空间内,可以集成更多复杂模型算法,提升模型在真实预测部署场景的精度和效果。项目地址:https://github.com/PaddlePaddle/models/tree/v1.5.1/PaddleSlim
机器阅读理解任务,是衡量机器理解人类语言综合水平的重要方式。 MRQA 阅读量理解评测取得的进展,将有力推动机器阅读理解技术的发展。同时在产业中,机器阅读理解是构建问答和对话系统的关键技术之一。百度机器阅读理解技术已广泛应用于百度内外,包括搜索、小度音箱等一系列产品中,为数亿用户提供精准问答。
来源 | 百度AI