MacBERT论文解读:如何训练一个更强大的中文语言模型?

简介: MacBERT论文解读:如何训练一个更强大的中文语言模型?

自从Google提出预训练语言模型BERT,关于语言模型的玩法层出不穷。然而,大部分模型都是在英文场景中提出的,迁移到中文场景效果往往有不同程度的下降。


之前我和朋友参加了CCKS机器阅读理解比赛,查资料时发现哈工大崔一鸣、车万翔、刘挺等人提出了一个针对中文的预训练语言模型MacBERT,刷新了众多下游任务的 SOTA。


我们在比赛中实测了MacBERT,提分显著,最终在246支参赛队伍中获得了第3。



本文带你了解这项更强大的中文语言模型 MacBERT。


论文链接

https://arxiv.org/pdf/2004.13922.pdf

开源权重

https://github.com/ymcui/MacBERT


1. MacBERT是什么?



我们先简单回顾一下什么是BERT。


BERT本质上是一个自编码语言模型,为了见多识广,BERT使用3亿多词语训练,采用12层双向Transformer架构。注意,BERT只使用了Transformer的编码器部分,可以理解为BERT旨在学习庞大文本的内部语义信息。


具体训练目标之一,是被称为掩码语言模型的MLM。即输入一句话,给其中15%的字打上“mask”标记,经过Embedding和12层Transformer深度理解,来预测“mask”标记的地方原本是哪个字。


input:  欲把西[mask]比西子,淡[mask]浓抹总相宜
output: 欲把西[湖]比西子,淡[妆]浓抹总相宜


例如我们给BERT输入“欲把西[mask]比西子,淡[mask]浓抹总相宜”,它需要根据没有被“mask”的上下文,预测出掩盖的地方是“”和“”。


相比之下,MacBERT 沿用了 BERT 的整体架构,主要在训练目标上做了改进。


针对 MLM 任务改进


Mac = MLM as correction,即校正的 mask 策略。


原始 BERT 模型的缺点之一是预训练和微调阶段任务不一致,pretrain 有 [mask] 字符,而 finetune 没有。


MacBERT 用目标单词的相似单词,替代被 mask 的字符,减轻了预训练和微调阶段之间的差距。


具体实现分2步:1)我们使用全词mask以及Ngram mask策略来替代随机mask,其中单词级别的1-gram到4-gram的比例为40%,30%,20%,10%。


2)抛弃 [mask] 字符,而是通过word2vec查找被考察单词的语义相似单词进行mask。在极少数情况下,当没有相似的单词时,会降级以使用随机单词替换。


最终,我们对15%的输入单词进行mask,其中80%替换为相似的单词,10%替换为随机单词,其余10%则保留原始单词。


如果感觉有点抽象,看这张图就一目了然。



假设原始中文句子是“使用语言模型来预测下一个词的概率”。BPE切词后,按BERT的随机 masking 策略,可能得到:


1. 使 用 语 言 [M] 型 来 [M] 测 下 一 个 词 的 概 率。

如果加入全词掩码策略,会以实体为单位进行 masking:

2. 使 用 语 言 [M] [M][M] [M] 下 一 个 词 的 概 率。

继续加入 N-gram 掩码:

3. 使 用 [M] [M] [M] [M] [M] [M] 下 一 个 词 的 概 率。

最后加入 Mac 掩码,用语义相似的词代替 [M]:

4. 使 用 语 法 建 模预 见 下 一 个 词 的 几 率

以上就是 MacBERT 的核心思想。


针对 NSP 任务改进


原始NSP已被证明贡献不大,MacBERT 引入了 ALBERT 的句子顺序预测(SOP)任务,通过切换两个连续句子的原始顺序来创建负样本。


后续的消融实验证明,SOP 效果好于 NSP。


2. 实验设置与结果



从中文维基百科中,我们获得了大约0.4B的单词。此外,还从收集的扩展数据中获得了 5.4B 个字,包含百科全书,新闻和问答网站,比中文维基百科大十倍。


为了识别中文单词的边界,我们使用LTP进行中文单词分割,词表沿用原始BERT。



微调实验


最终我们在分类、匹配、阅读理解等众多下游任务上对比了不同预训练模型的效果。

CMRC 2018 机器阅读理解:


情感分类+长文本分类:


文本相似匹配:



实验证明,MacBERT 在多种中文 NLP 任务上都获得了显著改进。这些改进的重要部分又来自何处呢?详细的消融实验给出了答案。


消融实验



实验结论:


1. 所有提出的改进点,对于总体结果都有帮助。


2.最有效的修改是N-gram masking和相似单词替换


3.NSP任务的重要性不如MLM,设计更好的MLM任务以充分释放文本建模能力十分重要。


4.SOP任务确实比NSP表现出更好的性能,删除SOP将导致阅读理解任务明显下降。

我们在CCKS比赛中实测了MacBERT,在编码器中将RoBertA替换为MacBERT,验证集 F1 从 0.780 上升到 0.797,获得了将近 2% 的提升。


3. 总结

MacBERT 将 MLM 任务作为一种语言校正方式进行了修改,减轻了预训练和微调阶段的差异。


下游各种中文NLP数据集的微调实验表明,MacBERT 可以在多数任务中获得显著收益。

通过分析消融实验,我们应该更多关注MLM任务,而不是NSP及其变体,因为类似NSP的任务并没有显示出彼此的压倒性优势。


这篇收录于 EMNLP 2020 子刊的论文,是对中文场景预训练语言模型的创新与尝试,由于模型结构并没有改动,可以很好地兼容现有任务(替换 checkpoint 和配置文件即可)。

感兴趣的小伙伴,快来动手试试吧!


相关文章
|
机器学习/深度学习 自然语言处理 算法
文本分析-使用jieba库进行中文分词和去除停用词(附案例实战)
文本分析-使用jieba库进行中文分词和去除停用词(附案例实战)
9871 0
|
机器学习/深度学习 PyTorch 算法框架/工具
RGCN的torch简单案例
RGCN 是指 Relational Graph Convolutional Network,是一种基于图卷积神经网络(GCN)的模型。与传统的 GCN 不同的是,RGCN 可以处理具有多种关系(边)类型的图数据,从而更好地模拟现实世界中的实体和它们之间的复杂关系。 RGCN 可以用于多种任务,例如知识图谱推理、社交网络分析、药物发现等。以下是一个以知识图谱推理为例的应用场景: 假设我们有一个知识图谱,其中包含一些实体(如人、物、地点)以及它们之间的关系(如出生于、居住在、工作于)。图谱可以表示为一个二元组 (E, R),其中 E 表示实体的集合,R 表示关系的集合,每个关系 r ∈ R
2464 0
|
自然语言处理 Java 大数据
阿里云自然语言处理--文本纠错(中文)Java 调用示例
自然语言处理(Natural Language Processing,简称NLP),是为各类企业及开发者提供的用于文本分析及挖掘的核心工具,旨在帮助用户高效的处理文本,已经广泛应用在电商、文娱、司法、公安、金融、医疗、电力等行业客户的多项业务中,取得了良好的效果。文本纠错产品是基于海量大数据研发,为有文本纠错需求的产品提供服务。能够准确识别输入文本中出现的拼写错别字及其段落位置信息,并针对性给出正确的建议文本内容。本文将使用Java CommonSDK演示文本纠错(中文)服务的快速调用以供参考。
2000 0
阿里云自然语言处理--文本纠错(中文)Java 调用示例
|
2月前
|
人工智能 运维 监控
Moltbot(原 Clawdbot)成本失控的 5 个技术陷阱与实时监控方案
Hacker News上警示频发:Clawdbot(原Moltbot)因五大技术陷阱致成本失控——上下文O(N²)膨胀、Agent无限循环、大页浏览器加载、并发爆炸、模型误用。本文详解每类陷阱原理、真实案例及可落地的缓解方案,并提供实时监控、预算熔断与CLI管理工具,助AI Agent实现低成本、高可控运行。
343 5
|
2月前
|
人工智能 缓存 API
在科研与项目开发中如何高效调用国内国外 AI 大语言模型 LLM API
本文剖析大模型应用从Demo到生产落地的三大核心痛点:账号支付难、网络不稳定、API碎片化。通过对比自建方案、开源网关与托管式AI网关(如n1n.ai),揭示如何以工程化手段实现稳定、高效、低成本的LLM调用,助力科研与开发跨越“Hello World”到生产环境的鸿沟。
446 9
|
数据采集 JavaScript 搜索推荐
ssr(Nuxt+Next.js)
服务器端渲染(SSR)技术可在服务器上生成页面HTML,提升首屏加载速度和SEO效果。Nuxt.js基于Vue.js,提供自动化路由管理、页面级数据获取和模块化扩展;Next.js基于React.js,支持SSR、静态生成和文件系统路由。两者均具备快速加载、SEO友好和处理复杂页面的优点,但也存在服务器压力大、开发限制和调试困难的缺点。开发者可根据项目需求和技术栈选择合适的框架。
257 2
|
负载均衡 监控 安全
硬件负载均衡和软件负载均衡的性能如何对比?
硬件负载均衡和软件负载均衡的性能如何对比?
533 120
|
机器学习/深度学习 人工智能 测试技术
阿里云百炼已上线超强推理开源模型QwQ-32B,尺寸更小,性能比肩DeepSeek满血版
通义千问团队推出了320亿参数的QwQ-32B模型,通过大规模强化学习和多阶段训练,在数学、编程及通用能力上达到或超越了DeepSeek-R1等先进模型。QwQ-32B模型已在阿里云百炼上线,支持API调用,用户可通过官方文档了解详细使用方法。未来,团队将继续探索智能体与RL集成,推动人工通用智能的发展。
9577 0
|
自然语言处理 算法 JavaScript
面向长文本的多模型协作摘要架构:多LLM文本摘要方法
多LLM摘要框架通过生成和评估两个步骤处理长文档,支持集中式和分散式两种策略。每个LLM独立生成文本摘要,集中式方法由单一LLM评估并选择最佳摘要,而分散式方法则由多个LLM共同评估,达成共识。论文提出两阶段流程:先分块摘要,再汇总生成最终摘要。实验结果显示,多LLM框架显著优于单LLM基准,性能提升最高达3倍,且仅需少量LLM和一轮生成评估即可获得显著效果。
684 10
面向长文本的多模型协作摘要架构:多LLM文本摘要方法

热门文章

最新文章