赞
踩
机器阅读理解是自然语言处理(NLP),特别是自然语言理解(NLU)领域最重要的研究方向之一。自1977年首次被提出以来,机器阅读理解已有近50年的发展史,历经“人工规则”、“传统机器学习”、“深度学习”、“大规模预训练模型”等多个发展阶段。
机器阅读理解旨在帮助人类从大量文本中,快速聚焦相关信息,降低人工信息获取成本,增加信息检索有效性。作为人工智能在自然语言理解方向上的“集大成者”,机器阅读理解任务考察了从 “词” 到 “句” 乃至 “篇章”,每一个语言粒度的理解能力,这使得在人工智能发展的每个阶段,它都是非常困难、也颇为重要的“兵家必争之地”。以SQuAD为代表的阅读理解数据集,见证了深度学习大发展时代里,各大公司刷榜创新方案的你方唱罢我登场,随后又在大规模预训练时代,成为BERT等预训练模型的评测基准。可以说近十年里,机器阅读理解极大促进与见证了自然语言处理领域的繁荣与发展。
形式化来讲,机器阅读理解任务的输入为一段篇章文本(context),与一个问句(question),通过学习模型,输出预测的答案文本(answer)。根据获取答案方式的不同,当前业界主流将阅读理解任务分为四大类:完型填空式(Cloze tests)、多项选择式(Multi-choice)、片段抽取式(Span extraction)及自由生成式(Free answering)。其中片段抽取式根据问句(question),直接从篇章文本(context)中预测答案文本(answer)的起止位置(start/end positions),从而抽取出答案。由于其与真实场景接近,难度适中,易于评测,且有SQuAD等高质量数据集支撑,因此成为当前的主流阅读理解任务。随着预训练语言模型的发展,近年来片段抽取式阅读理解的效果屡创新高。在英文场景下,传统的BERT、RoBERTa、ALBERT等模型都能取得超越人类的效果;而在中文场景下,MacBERT等模型(Pre-Training with Whole Word Masking for Chinese BERT)通过引入一种纠错型掩码语言模型(Mac)预训练任务,缓解了“预训练-下游任务”不一致的问题,也更好地适配了中文场景,在包括机器阅读理解在内的多种NLP任务上取得了显著的性能提升。因此,我们在EasyNLP框架中集成了MacBERT算法和模型,配合EasyNLP中原有的BERT、RoBERTa等模型,使用户能够方便地使用这些模型进行中英文机器阅读理解任务的训练和预测。
EasyNLP(https://github.com/alibaba/EasyNLP)是阿⾥云机器学习PAI 团队基于 PyTorch 开发的易⽤且丰富的中⽂NLP算法框架,⽀持常⽤的中⽂预训练模型和⼤模型落地技术,并且提供了从训练到部署的⼀站式 NLP 开发体验。EasyNLP 提供了简洁的接⼝供⽤户开发 NLP 模型,包括NLP应⽤ AppZoo 和预训练 ModelZoo,同时提供技术帮助⽤户⾼效的落地超⼤预训练模型到业务。机器阅读理解作为自然语言理解的集大成者,同时也是文本问答、信息抽取等领域的基础任务,具有较高的研究价值。因此,EasyNLP增加了对中英文机器阅读理解任务的支持,希望能服务更多的NLP/NLU算法开发者和研究者,也希望和社区一起推动NLU相关技术的发展和落地。
本⽂将提供对MacBERT模型的技术解读,以及如何在EasyNLP框架中使⽤MacBERT及其他预训练语言模型,进行中英文机器阅读理解任务的训练与预测。
主流的大规模预训练语言模型(如BERT、RoBERTa等)主要针对英语语言设计,将其直接迁移到中文场景时,会面临中英文语言本身的差异,如:中文词间无空格、无需切分子词、多个单字组成具有完整意义的词语等。例如下图中原始语句“使用语言模型来预测下一个词的概率”,按单字切分后,某些单字由于会组成完整的词语(如:语言模型、预测、概率),此时若只mask掉其中一个字,会影响掩码与语言模型预训练的效果。此外,传统语言模型在预训练时会采用 [MASK] 字符进行mask,而在下游任务文本中却并不存在 [MASK] 标记,这在两阶段中天然引入了gap。为缓解上述问题,MacBERT等模型修改传统MLM任务,引入了一种纠错型掩码语言模型(Mac)预训练任务,包括wwm (whole word masking)、NM(n-gram masking)、相似词替换等mask方案,更好地适配了中文的语言场景,减少了“预训练-下游任务”不一致的问题,提升了预训练模型在多种NLP任务上的效果。另外,由于MacBERT的主要框架与BERT完全一致,可在不修改现有代码的基础上进行无缝过渡,这为开发者的代码迁移带来了很大的便利。
具体来讲,MacBERT等模型在MLM时,对中文整词中所有单字同时进行mask,并采用n-gram mask策略,从unigram到4-gram对应的mask概率分别为40%-10%。在mask时不再采用 [MASK] token,而改为使用词语的近义词,近义词采用基于word2vec相似度计算的Synonyms toolkit获取,在极少数情况没有近义词时,使用随机词进行替换。模型总体对输入15%的词进行mask,mask时80%的概率替换为近义词、10%的概率替换为随机词、10%的概率保留为原始词。此外,BERT原版的NSP模型长期为研究者们所诟病,MacBERT模型中将NSP修改为SOP (Sentence Order Prediction),其正例为连续文本,负例为交换原始文本顺序,这样很好提升了模型在多句篇章型任务上的效果。模型的实验结果表明,去除上述MLM中任一改进都会导致平均性能下降,这表明几处掩码修改都有助于语言模型学习;同时去除SOP任务后,在机器阅读理解任务上的效果会明显下降,这也表明句子级预训练任务在篇章学习中的必要性。
以下我们简要介绍,如何在EasyNLP框架中使用MacBERT及其他预训练语言模型,进行机器阅读理解任务的训练及预测。
用户可以直接参考GitHub(https://github.com/alibaba/EasyNLP)上的说明安装EasyNLP算法框架。
为了方便开发者使用,我们在EasyNLP框架内实现了Inference Pipeline功能。用户可以在不需要自己训练或微调模型的情况下,直接“尝鲜”,使用pipeline接口一步调用finetune好的中英文机器阅读理解模型。只需执行如下命令即可:
- from easynlp.pipelines import pipeline
-
- # 输入数据
- data = [{
- "query": "杭州什么时候发布了《杭州市亚运城市行动计划纲要》?",
- "answer_text": "2020年4月",
- "context": "新华社杭州9月22日电(记者商意盈 夏亮)竞赛场馆全部竣工并完成赛事功能验收,“迎亚运”城市基础设施建设迈入快车道,亚运场馆提前开放掀起全民健身热潮……23日,延期后的杭州亚运会将迎来倒计时一周年,各项筹备工作也结出累累硕果,“天堂之城”再次蓄势待发。办好一个会,提升一座城。2020年4月,杭州发布了《杭州市亚运城市行动计划纲要》,其中包括基础设施提升、绿水青山守护、数字治理赋能等八项具体行动。随着亚运的脚步日益临近,杭州西站、萧山国际机场三期、合杭高铁湖杭段、机场轨道快线(19号线)等“两点两线”重大项目正式投运。根据杭州市城乡建设委员会发布的信息,预计到今年9月底全市快速路总里程将达到480公里。住在这里的人们正切身体会到悄然发生的变化——交通方便了,道路变美了,城市基础设施也愈发完善。",
- "qas_id": "CN_01"
- },
- {
- "query": "今年9月底全市快速路总里程将达到多少?",
- "answer_text": "480公里",
- "context": "新华社杭州9月22日电(记者商意盈 夏亮)竞赛场馆全部竣工并完成赛事功能验收,“迎亚运”城市基础设施建设迈入快车道,亚运场馆提前开放掀起全民健身热潮……23日,延期后的杭州亚运会将迎来倒计时一周年,各项筹备工作也结出累累硕果,“天堂之城”再次蓄势待发。办好一个会,提升一座城。2020年4月,杭州发布了《杭州市亚运城市行动计划纲要》,其中包括基础设施提升、绿水青山守护、数字治理赋能等八项具体行动。随着亚运的脚步日益临近,杭州西站、萧山国际机场三期、合杭高铁湖杭段、机场轨道快线(19号线)等“两点两线”重大项目正式投运。根据杭州市城乡建设委员会发布的信息,预计到今年9月底全市快速路总里程将达到480公里。住在这里的人们正切身体会到悄然发生的变化——交通方便了,道路变美了,城市基础设施也愈发完善。",
- "qas_id": "CN_02"
- }]
-
- # pipeline的参数为finetune好的模型
- # 当前EasyNLP支持中英文机器阅读理解的pipeline快速体验,分别集成了finetune好的中文macbert模型和英文bert模型
- # 如想体验英文阅读理解,只需将模型名改为 'bert-base-rcen' 即可
- generator &

Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。