首页 > 其他分享 >【论文笔记】MacBert:Revisiting Pre-trained Models for Chinese Natural Language Processing

【论文笔记】MacBert:Revisiting Pre-trained Models for Chinese Natural Language Processing

时间:2023-05-08 16:32:00浏览次数:60  
标签:Pre BERT MacBert Natural Language mask 使用 Setups


文章目录

  • 相关信息
  • 摘要(Abstract)
  • 1. 介绍(Introduction)
  • 2. 相关工作(Related Work)
  • 3. 中文预训练模型(Chinese Pre-trained Language Models)
  • 3.1 BERT-wwm & RoBERTa-wwm
  • 3.2 MacBERT
  • 4. 实验设置(Experiment Setups)
  • 4.1 Setups for Pre-Trained Language Models
  • 4.2 Setups for Fine-tuning Tasks
  • 5. 结果(Results)
  • 6. 讨论(Discussion)
  • 7. 结论(Conclusion)

相关信息

论文年份:2020年04月

论文地址:https://arxiv.org/pdf/2004.13922.pdf

论文代码(官方):https://github.com/ymcui/MacBERT

论文模型(Hugging Face): hfl/chinese-macbert-base ; hfl/chinese-macbert-large

论文阅读前提:熟悉BERT模型及其前置知识

一句话概括一下本文的内容:作者对原有的BERT的MLM任务进行了魔改,不使用[MASK]作为掩码,而是使用相似的字进行掩码,然后发现Performance提升了,起个新名字MacBERT。

摘要(Abstract)

作者提出了一个中文Bert,起名为MacBert

该模型采用的mask策略(作者提出的)是 MLM as correction (Mac)

作者用MacBert在8个NLP任务上进行了测试,大部分都能达到SOTA

1. 介绍(Introduction)

作者的贡献:提出了新的MacBert模型,其缓和了pre-training阶段和fine-tuning阶段的gap。采用的方式是“mask字时,采用相似的字进行mask”

2. 相关工作(Related Work)

【论文笔记】MacBert:Revisiting Pre-trained Models for Chinese Natural Language Processing_人工智能

这个表总结的不错。其他略

3. 中文预训练模型(Chinese Pre-trained Language Models)

3.1 BERT-wwm & RoBERTa-wwm

略(也是相关工作)

3.2 MacBERT

MacBERT的训练使用了两个任务,MLM和SOP(sentence-order prediciton)

对于MLM任务,与BERT类似,但做了如下修改:

  • 作者使用N-gram的方式来选择要mask的token,按照40%,30%,20,10%的比例进行1-gram到4-gram的mask
  • 相对于BERT中使用[MASK]来替换token,作者使用的方式是使用相似的字来进行替换。相似字使用的是Synonyms toolkit
  • 对于要进行mask的token,15%使用[mask]替换,80%使用相似字,10%使用随机字,剩下10%使用原始字。

在原文中,作者使用的是word,其实我也不太清楚他说的word是一个字还是一个词。一般中文的BERT模型都是按字来处理的,所以我这里也认为是word指代的是一个字。

对于SOP任务,其负样本就是将两个连续的句子交换顺序。

4. 实验设置(Experiment Setups)

4.1 Setups for Pre-Trained Language Models

数据集:①中文维基百科,0.4B个字;② 新百科全书(encyclopedia news)+问答网站,5.4B个字

分词工具LTP(Language Technology Platform) , 4.2k star, 基于深度学习,包括:分词、词性标注、句法分析等

训练方式:①对于BaseModel,基于Chinese BERT-base继续训练;②对于LargeModel,从0开始训练。

其他设置

  • 句子最大长度: 512
  • Weight Decay Optimizer:Adam
  • Optimizer: Lamb
  • 对MacBERT-large:2M steps, 512 batch_size, 1e-4 learning rate

训练细节汇总如下表:

【论文笔记】MacBert:Revisiting Pre-trained Models for Chinese Natural Language Processing_人工智能_02

4.2 Setups for Fine-tuning Tasks

本节是关于下游任务的设置,略。

5. 结果(Results)

本章展示了在各个下游任务的实验结果。这里我简单列个表:

任务

Level

MacBERT结果

Machine Reading Comprehension

document-level

最强

Single Sentence Classification

sentence-level

一般,与其他差异不大

Sentence Pair Classification

sentence-level

稍好,平均来讲,比其他模型稍微好一丢丢

6. 讨论(Discussion)

作者做了消融实验,得出了以下结论:

  1. MacBERT对Performance的提升主要是因为N-gram mask和相似词替换(Similar word replacement)这两个机制
  2. SOP(Sentence-order Prediciton)任务虽然对Performance也有提升,但微乎其微。

7. 结论(Conclusion)


标签:Pre,BERT,MacBert,Natural,Language,mask,使用,Setups
From: https://blog.51cto.com/u_11466419/6254951

相关文章

  • JavaScript: XMLHTTPRequest
     XMLHttpRequest(javascript.info)<body><script>//CreateanewXMLHTTPRequestobjectletxhr=newXMLHttpRequest()xhr.timeout=5000//timeoutinmsleturl=newURL('https://cursive.winch.io/......
  • 界面控件DevExpress Blazor UI v22.2亮点:全新的Window组件
    DevExpress拥有.NET开发需要的所有平台控件,包含600多个UI控件、报表平台、DevExpressDashboardeXpressApp框架、适用于VisualStudio的CodeRush等一系列辅助工具,该组件拥有众多新产品和数十个具有高影响力的功能,可为桌面、Web和移动应用提供直观的解决方案,全面解决各种使用场......
  • keras.preprocessing.sequence.pad_sequences()的用法
    1.pad_sequences()的作用keras只能接受长度相等的序列输入。当我们的数据集中出现了长度不等的序列时,可以使用pad_sequence()函数将序列转化为经过填充以后得到的一个长度相同新的序列。2.pad_sequences()语法 1keras.preprocessing.sequence.pad_sequences(2sequenc......
  • Node.js躬行记(28)——Cypress自动化测试实践
    最近在研究如何提升项目质量,提炼了许多个用于自测的测试用例,但是每次修改后,都手工测试,成本太高,于是就想到了自动化测试。在一年前已将Cypress集成到管理后台的项目中,不过没有投入到实践中。今天在实践时发现,版本已经到了12.X,当时集成的版本是8.X。一、准备在......
  • DevExpress
    DevExpress.XtraGrid.GridControl控件获取选中行某列的值intselectedHandle;selectedHandle=this.gridView1.GetSelectedRows()[0];MessageBox.Show(this.gridView1.GetRowCellValue(selectedHandle,"RoadName").ToString());......
  • Python wordpress-xmlrpc错误:xml.parsers.expat.ExpatError: XML or text declaration
    解决方法:修改打开client.py文件原代码:deffeed(self,data):self._parser.Parse(data,0)改成如下的代码:deffeed(self,data):self._parser.Parse(data.strip(),0)......
  • Vulnhub: InfoSec Prep:OSCP靶机
    kali:192.168.111.111靶机:192.168.111.130信息收集端口扫描nmap-A-v-sV-T5-p---script=http-enum192.168.111.130访问80端口下的robots.txt文件,内容提示另一个文件/secret.txtsecret.txt文件内容为base64加密的字符串,解密后发现是ssh私钥echo'LS0tLS1CRUdJTiBPU......
  • TypeError: 'numpy.float64' object cannot be interpreted as an integer
    报错内容:Traceback(mostrecentcalllast):File"C:\Users\xuan\.conda\envs\pytorch1-6\lib\site-packages\scipy\sparse\_sputils.py",line225,inisintlikeoperator.index(x)TypeError:'numpy.float64'objectcannotbeinterpre......
  • Hive表 Parquet压缩 , Gzip,Snappy,uncompressed 效果对比
     创建两张表,通过一种是parquet,一种使用parquetsnappy压缩创建表使用snappyCREATEEXTERNALTABLEIFNOTEXISTStableName(xxxstring)partitionedby(pt_xvcstring)ROWFORMATDELIMITEDFIELDSTERMINATEDBY'\001'STOREDASPARQUETTBLPROPERTIES('parquet.compre......
  • 一统天下 flutter - 存储: shared_preferences - 用于操作 android 的 SharedPreferen
    源码https://github.com/webabcd/flutter_demo作者webabcd一统天下flutter-存储:shared_preferences-用于操作android的SharedPreferences,ios的NSUserDefaults,web的LocalStorage示例如下:lib\storage\shared_preferences.dart/**shared_preferences......