新智元报道
来源:百度AI
编辑:元子
今年3月份,百度发布了NLP模型ERNIE初代版本。这个模型刚一出世,便取得了骄人成绩:在中文任务中,全面超越当前最强NLP模型BERT,一度引发业界广泛关注和探讨。而短短4个月时间,百度ERNIE就进化到了2代版本,这是一个中英文对话的AI框架和模型。
近日百度正式发布的ERNIE 2.0,直接将初代版本提升到了一个新的高度,刷新了SOTA。不仅在中文上全面超越BERT,甚至在英文上也全面超越了BERT和XLNet!
ERNIE的全称是“Enhanced Representation through Knowledge Integration”,代表通过知识集成实现增强型表示。和Google的BERT一样,ERNIE 2.0依赖于transformer编码器和BookCorpus数据集进行训练。
ERNIE 2.0采用多任务学习和一系列预训练任务,如大写字母预测(因为大写单词通常包含专有名词)和任务,例如学习句子之间的关系或发出语义理解。
目前,百度 ERNIE 2.0的 Fine-tuning 代码和英文预训练模型已开源。Github 项目地址:
https://github.com/PaddlePaddle/ERNIE
近两年来,以BERT、XLNet为代表的无监督预训练技术在语言推断、语义相似度、命名实体识别、情感分析等多个自然语言处理任务上取得了非常大的突破。
但是百度认为,以BERT为首的模型的工作流程,主要是通过词或句子的共现信号,构建语言模型任务进行模型预训练。
除了语言共现信息之外,语料中的词法、语法、语义也是非常有价值的信息。那么该如何利用好人名、地名、机构名等词语概念知识,句子间顺序和距离关系等结构知识,文本语义相似度和语言逻辑关系等语义知识呢?
百度ERNIE 2.0提出了持续预训练。通过持续预训练,模型能够持续地学习各类任务,从而使得模型的效果达到了进一步提升。
百度称持续预训练的过程包含两个步骤:首先,需要不断构建无监督的预训练任务,具有大的语料库和/或先验知识。其次,通过多任务学习逐步更新ERNIE模型。
百度提出可持续学习语义理解框架 ERNIE 2.0,支持增量引入词汇( lexical )、语法 ( syntactic ) 、语义( semantic )等3个层次的自定义预训练任务,能够全面捕捉训练语料中的词法、语法、语义等潜在信息。
这些任务通过多任务学习对模型进行训练更新,每当引入新任务时,该框架可在学习该任务的同时,不遗忘之前学到过的信息。这也意味着,该框架可以通过持续构建训练包含词法、句法、语义等预训练任务,持续提升模型效果。
依托该框架,百度充分借助飞桨 PaddlePaddle 多机分布式训练优势,利用 79亿 tokens 训练数据(约1/4的 XLNet 数据)和64张 V100(约1/8的 XLNet 硬件算力)训练的 ERNIE 2.0预训练模型不仅实现了 SOTA 效果,而且为开发人员定制自己的 NLP 模型提供了方案。目前,百度开源了 ERNIE 2.0的 Fine-tuning 代码和英文预训练模型。
百度研究团队分别比较了中英文环境上的模型效果。英文上,ERNIE 2.0在自然语言理解数据集 GLUE 的7个任务上击败了 BERT 和 XLNet。中文上,在包括阅读理解、情感分析、问答等不同类型的9个数据集上超越了 BERT 并刷新了 SOTA。
模型论文链接:
https://arxiv.org/abs/1907.12412
所有预训练任务都使用自我监督或弱监督信号,这些信号可以从没有人类标签的海量数据中获得。
ERNIE 的工作表明,在预训练过程中,通过构建各层面的无监督预训练任务,模型效果也会显著提升。未来,研究者们可沿着该思路构建更多的任务提升效果。