EasyNLP带你实现中英文机器阅读理解

导读
机器阅读理解是自然语言处理(NLP),特别是自然语言理解(NLU)领域最重要的研究方向之一 。自1977年首次被提出以来,机器阅读理解已有近50年的发展史,历经“人工规则”、“传统机器学习”、“深度学习”、“大规模预训练模型”等多个发展阶段 。机器阅读理解旨在帮助人类从大量文本中,快速聚焦相关信息,降低人工信息获取成本,增加信息检索有效性 。作为人工智能在自然语言理解方向上的“集大成者”,机器阅读理解任务考察了从 “词” 到 “句” 乃至 “篇章”,每一个语言粒度的理解能力,这使得在人工智能发展的每个阶段,它都是非常困难、也颇为重要的“兵家必争之地” 。以SQuAD为代表的阅读理解数据集,见证了深度学习大发展时代里,各大公司刷榜创新方案的你方唱罢我登场,随后又在大规模预训练时代,成为BERT等预训练模型的评测基准 。可以说近十年里,机器阅读理解极大促进与见证了自然语言处理领域的繁荣与发展 。
形式化来讲,机器阅读理解任务的输入为一段篇章文本(),与一个问句(),通过学习模型,输出预测的答案文本() 。根据获取答案方式的不同,当前业界主流将阅读理解任务分为四大类:完型填空式(Cloze tests)、多项选择式(Multi-)、片段抽取式(Span )及自由生成式(Free ) 。其中片段抽取式根据问句(),直接从篇章文本()中预测答案文本()的起止位置(start/end ),从而抽取出答案 。由于其与真实场景接近,难度适中,易于评测,且有SQuAD等高质量数据集支撑,因此成为当前的主流阅读理解任务 。随着预训练语言模型的发展,近年来片段抽取式阅读理解的效果屡创新高 。在英文场景下,传统的BERT、、等模型都能取得超越人类的效果;而在中文场景下,等模型(Pre- with Whole WordforBERT)通过引入一种纠错型掩码语言模型(Mac)预训练任务,缓解了“预训练-下游任务”不一致的问题,也更好地适配了中文场景,在包括机器阅读理解在内的多种NLP任务上取得了显著的性能提升 。因此,我们在框架中集成了算法和模型,配合中原有的BERT、等模型,使用户能够方便地使用这些模型进行中英文机器阅读理解任务的训练和预测 。
()是阿?云机器学习PAI 团队基于开发的易?且丰富的中?NLP算法框架,?持常?的中?预训练模型和?模型落地技术,并且提供了从训练到部署的?站式 NLP 开发体验 。提供了简洁的接?供?户开发 NLP 模型,包括NLP应?和预训练 ,同时提供技术帮助?户?效的落地超?预训练模型到业务 。机器阅读理解作为自然语言理解的集大成者,同时也是文本问答、信息抽取等领域的基础任务,具有较高的研究价值 。因此,增加了对中英文机器阅读理解任务的支持,希望能服务更多的NLP/NLU算法开发者和研究者,也希望和社区一起推动NLU相关技术的发展和落地 。
本?将提供对模型的技术解读,以及如何在框架中使?及其他预训练语言模型,进行中英文机器阅读理解任务的训练与预测 。
模型解读
主流的大规模预训练语言模型(如BERT、等)主要针对英语语言设计,将其直接迁移到中文场景时,会面临中英文语言本身的差异,如:中文词间无空格、无需切分子词、多个单字组成具有完整意义的词语等 。例如下图中原始语句“使用语言模型来预测下一个词的概率”,按单字切分后,某些单字由于会组成完整的词语(如:语言模型、预测、概率),此时若只mask掉其中一个字,会影响掩码与语言模型预训练的效果 。此外,传统语言模型在预训练时会采用 [MASK] 字符进行mask,而在下游任务文本中却并不存在 [MASK] 标记,这在两阶段中天然引入了gap 。为缓解上述问题,等模型修改传统MLM任务,引入了一种纠错型掩码语言模型(Mac)预训练任务,包括wwm (whole word )、NM(n-gram )、相似词替换等mask方案,更好地适配了中文的语言场景,减少了“预训练-下游任务”不一致的问题,提升了预训练模型在多种NLP任务上的效果 。另外,由于的主要框架与BERT完全一致,可在不修改现有代码的基础上进行无缝过渡,这为开发者的代码迁移带来了很大的便利 。