Chinese-BERT-wwm

ymcuiApache-2.0更新放缓

提供中文 BERT-wwm 系列预训练模型,用全词掩码技术提升中文 NLP 任务效果,可直接加载微调。

Pre-Training with Whole Word Masking for Chinese BERT(中文BERT-wwm系列模型)

暂无版本10,231star1,380fork同步于 2026-11-10 23:30 UTC

怎么上手

由 README 提炼,执行前请确认
pip install transformers
from transformers import BertTokenizer, BertModel
tokenizer = BertTokenizer.from_pretrained("hfl/chinese-bert-wwm")
model = BertModel.from_pretrained("hfl/chinese-bert-wwm")
硬件要求按 README 说明

README 未说明显存或 GPU 型号要求,仅提及训练使用 TPU;base 模型文件约 400M,可下载后本地推理。

下载:源码 zip·GitHub Releases(安装包)本站不镜像安装包

项目说明

由 README 自动翻译提炼

哈工大讯飞开源的中文全词掩码预训练模型系列,可直接替换谷歌中文BERT提升下游任务效果

提供中文 BERT-wwm 系列预训练模型,用全词掩码技术提升中文 NLP 任务效果,可直接加载微调。

核心能力

  • 用全词掩码替代字粒度掩码训练中文BERT
  • 提供BERT-wwm、RoBERTa-wwm-ext及3层小模型RBT3/RBTL3
  • 已接入Huggingface Transformers与PaddleHub一行加载
  • 在CMRC 2018等中文基线任务上给出可复现效果对比

容易踩的坑

所有模型必须用 BertTokenizer/BertModel 加载,不能用 RobertaTokenizer/RobertaModel;开源版本不含 MLM 任务权重,做 MLM 需额外数据二次预训练;官方下载点为 TensorFlow 版权重,PyTorch 版需自行转换或从 Huggingface 下载。

内容由模型根据 README 生成,可能不完整或不准确,以官方文档为准。看原文 README

最近发版

0 个版本

暂无 release 数据(可能没有发版,或尚未同步)。

用户点评

登录用户的真实使用记录,可按版本和硬件筛选
共 0 条

    还没有人点评。第一个说出真实体验的人最有价值。

    README 原文

    未翻译

    Chinese-LLaMA-Alpaca-2 v1.0版本已正式发布!

    中文说明 | English

    在自然语言处理领域中,预训练语言模型(Pre-trained Language Models)已成为非常重要的基础技术。为了进一步促进中文信息处理的研究发展,我们发布了基于全词掩码(Whole Word Masking)技术的中文预训练模型BERT-wwm,以及与此技术密切相关的模型:BERT-wwm-ext,RoBERTa-wwm-ext,RoBERTa-wwm-ext-large, RBT3, RBTL3等。

    本项目基于谷歌官方BERT:https://github.com/google-research/bert


    中文LERT | 中英文PERT | 中文MacBERT | 中文ELECTRA | 中文XLNet | 中文BERT | 知识蒸馏工具TextBrewer | 模型裁剪工具TextPruner

    查看更多哈工大讯飞联合实验室(HFL)发布的资源:https://github.com/ymcui/HFL-Anthology

    新闻

    2023/3/28 开源了中文LLaMA&Alpaca大模型,可快速在PC上部署体验,查看:https://github.com/ymcui/Chinese-LLaMA-Alpaca

    2023/3/9 我们提出了一种图文多模态预训练模型VLE,查看:https://github.com/iflytek/VLE

    2022/11/15 我们提出了中文小型预训练模型MiniRBT。查看:https://github.com/iflytek/MiniRBT

    2022/10/29 我们提出了一种融合语言学信息的预训练模型LERT。查看:https://github.com/ymcui/LERT

    2022/3/30 我们开源了一种新预训练模型PERT。查看:https://github.com/ymcui/PERT

    2021/10/24 哈工大讯飞联合实验室发布面向少数民族语言的预训练模型CINO。查看:https://github.com/ymcui/Chinese-Minority-PLM

    2021/7/21 由哈工大SCIR多位学者撰写的《自然语言处理:基于预训练模型的方法》已出版,欢迎大家选购。

    2021/1/27 所有模型已支持TensorFlow 2,请通过transformers库进行调用或下载。https://huggingface.co/hfl

    2020/9/15 我们的论文"Revisiting Pre-Trained Models for Chinese Natural Language Processing"被Findings of EMNLP录用为长文。

    2020/8/27 哈工大讯飞联合实验室在通用自然语言理解评测GLUE中荣登榜首,查看GLUE榜单,新闻。

    2020/3/23 本目录发布的模型已接入飞桨PaddleHub,查看快速加载

    2020/3/11 为了更好地了解需求,邀请您填写调查问卷,以便为大家提供更好的资源。

    2020/2/26 哈工大讯飞联合实验室发布知识蒸馏工具TextBrewer

    2020/1/20 祝大家鼠年大吉,本次发布了RBT3、RBTL3(3层RoBERTa-wwm-ext-base/large),查看小参数量模型

    2019/12/19 本目录发布的模型已接入Huggingface-Transformers,查看快速加载

    2019/10/14 发布萝卜塔RoBERTa-wwm-ext-large模型,查看中文模型下载

    2019/9/10 发布萝卜塔RoBERTa-wwm-ext模型,查看中文模型下载

    2019/7/30 提供了在更大通用语料(5.4B词数)上训练的中文BERT-wwm-ext模型,查看中文模型下载

    2019/6/20 初始版本,模型已可通过谷歌下载,国内云盘也已上传完毕,查看中文模型下载

    内容导引

    章节描述
    简介介绍BERT-wwm基本原理
    中文模型下载提供了BERT-wwm的下载地址
    快速加载介绍了如何使用🤗Transformers、PaddleHub快速加载模型
    模型对比提供了本目录中模型的参数对比
    中文基线系统效果列举了部分中文基线系统效果
    小参数量模型列举了小参数量模型(3层Transformer)的效果
    使用建议提供了若干使用中文预训练模型的建议
    英文模型下载谷歌官方的英文BERT-wwm下载地址
    FAQ常见问题答疑
    引用本目录的技术报告

    简介

    Whole Word Masking (wwm),暂翻译为全词Mask或整词Mask,是谷歌在2019年5月31日发布的一项BERT的升级版本,主要更改了原预训练阶段的训练样本生成策略。 简单来说,原有基于WordPiece的分词方式会把一个完整的词切分成若干个子词,在生成训练样本时,这些被分开的子词会随机被mask。 在全词Mask中,如果一个完整的词的部分WordPiece子词被mask,则同属该词的其他部分也会被mask,即全词Mask。

    需要注意的是,这里的mask指的是广义的mask(替换成[MASK];保持原词汇;随机替换成另外一个词),并非只局限于单词替换成[MASK]标签的情况。 更详细的说明及样例请参考:#4

    同理,由于谷歌官方发布的BERT-base, Chinese中,中文是以字为粒度进行切分,没有考虑到传统NLP中的中文分词(CWS)。 我们将全词Mask的方法应用在了中文中,使用了中文维基百科(包括简体和繁体)进行训练,并且使用了哈工大LTP作为分词工具,即对组成同一个词的汉字全部进行Mask。

    下述文本展示了全词Mask的生成样例。 注意:为了方便理解,下述例子中只考虑替换成[MASK]标签的情况。

    说明样例
    原始文本使用语言模型来预测下一个词的probability。
    分词文本使用 语言 模型 来 预测 下 一个 词 的 probability 。
    原始Mask输入使 用 语 言 [MASK] 型 来 [MASK] 测 下 一 个 词 的 pro [MASK] ##lity 。
    全词Mask输入使 用 语 言 [MASK] [MASK] 来 [MASK] [MASK] 下 一 个 词 的 [MASK] [MASK] [MASK] 。

    中文模型下载

    本目录中主要包含base模型,故我们不在模型简称中标注base字样。对于其他大小的模型会标注对应的标记(例如large)。

    • BERT-large模型:24-layer, 1024-hidden, 16-heads, 330M parameters
    • BERT-base模型:12-layer, 768-hidden, 12-heads, 110M parameters

    注意:开源版本不包含MLM任务的权重;如需做MLM任务,请使用额外数据进行二次预训练(和其他下游任务一样)。

    模型简称语料🤗HF下载百度网盘下载
    BERT-wwm, Chinese中文维基HF LinkTensorFlow(密码qfh8)
    BERT-wwm-ext, ChineseEXT数据[1]HF LinkTensorFlow(密码wgnt)
    RoBERTa-wwm-ext, ChineseEXT数据[1]HF LinkTensorFlow(密码vybq)
    RoBERTa-wwm-ext-large, ChineseEXT数据[1]HF LinkTensorFlow(密码dqqe)
    RBT3, ChineseEXT数据[1]HF LinkTensorFlow(密码5a57)
    RBT4, ChineseEXT数据[1]HF LinkTensorFlow(密码sjpt)
    RBT6, ChineseEXT数据[1]HF LinkTensorFlow(密码hniy)
    RBTL3, ChineseEXT数据[1]HF LinkTensorFlow(密码s6cu)

    [1] EXT数据包括:中文维基百科,其他百科、新闻、问答等数据,总词数达5.4B。

    PyTorch版本

    如需PyTorch版本,

    1)请自行通过🤗Transformers提供的转换脚本进行转换。

    2)或者通过huggingface官网直接下载PyTorch版权重:https://huggingface.co/hfl

    下载方法:点击任意需要下载的模型 → 选择"Files and versions"选项卡 → 下载对应的模型文件。

    使用说明

    中国大陆境内建议使用百度网盘下载点,境外用户建议使用谷歌下载点,base模型文件大小约400M。 以TensorFlow版BERT-wwm, Chinese为例,下载完毕后对zip文件进行解压得到:

    chinese_wwm_L-12_H-768_A-12.zip
        |- bert_model.ckpt      # 模型权重
        |- bert_model.meta      # 模型meta信息
        |- bert_model.index     # 模型index信息
        |- bert_config.json     # 模型参数
        |- vocab.txt            # 词表
    

    其中bert_config.json和vocab.txt与谷歌原版BERT-base, Chinese完全一致。 PyTorch版本则包含pytorch_model.bin, bert_config.json, vocab.txt文件。

    快速加载

    使用Huggingface-Transformers

    依托于🤗transformers库,可轻松调用以上模型。

    tokenizer = BertTokenizer.from_pretrained("MODEL_NAME")
    model = BertModel.from_pretrained("MODEL_NAME")
    

    注意:本目录中的所有模型均使用BertTokenizer以及BertModel加载,请勿使用RobertaTokenizer/RobertaModel!

    其中MODEL_NAME对应列表如下:

    模型名MODEL_NAME
    RoBERTa-wwm-ext-largehfl/chinese-roberta-wwm-ext-large
    RoBERTa-wwm-exthfl/chinese-roberta-wwm-ext
    BERT-wwm-exthfl/chinese-bert-wwm-ext
    BERT-wwmhfl/chinese-bert-wwm
    RBT3hfl/rbt3
    RBTL3hfl/rbtl3

    使用PaddleHub

    依托PaddleHub,只需一行代码即可完成模型下载安装,十余行代码即可完成文本分类、序列标注、阅读理解等任务。

    import paddlehub as hub
    module = hub.Module(name=MODULE_NAME)
    

    其中MODULE_NAME对应列表如下:

    模型名MODULE_NAME
    RoBERTa-wwm-ext-largechinese-roberta-wwm-ext-large
    RoBERTa-wwm-extchinese-roberta-wwm-ext
    BERT-wwm-extchinese-bert-wwm-ext
    BERT-wwmchinese-bert-wwm
    RBT3rbt3
    RBTL3rbtl3

    模型对比

    针对大家比较关心的一些模型细节进行汇总如下。

    -BERTGoogleBERT-wwmBERT-wwm-extRoBERTa-wwm-extRoBERTa-wwm-ext-large
    MaskingWordPieceWWM[1]WWMWWMWWM
    Typebasebasebasebaselarge
    Data Sourcewikiwikiwiki+ext[2]wiki+extwiki+ext
    Training Tokens #0.4B0.4B5.4B5.4B5.4B
    DeviceTPU Pod v2TPU v3TPU v3TPU v3TPU Pod v3-32[3]
    Training Steps?100KMAX128 +100KMAX5121MMAX128 +400KMAX5121MMAX5122MMAX512
    Batch Size?2,560 / 3842,560 / 384384512
    OptimizerAdamWLAMBLAMBAdamWAdamW
    Vocabulary21,128~BERT[4]~BERT~BERT~BERT
    Init CheckpointRandom Init~BERT~BERT~BERTRandom Init

    [1] WWM = Whole Word Masking
    [2] ext = extended data
    [3] TPU Pod v3-32 (512G HBM)等价于4个TPU v3 (128G HBM)
    [4] ~BERT表示继承谷歌原版中文BERT的属性

    中文基线系统效果

    为了对比基线效果,我们在以下几个中文数据集上进行了测试,包括句子级和篇章级任务。 对于BERT-wwm-ext、RoBERTa-wwm-ext、RoBERTa-wwm-ext-large,我们没有进一步调整最佳学习率,而是直接使用了BERT-wwm的最佳学习率。

    最佳学习率:

    模型BERTERNIEBERT-wwm*
    CMRC 20183e-58e-53e-5
    DRCD3e-58e-53e-5
    CJRC4e-58e-54e-5
    XNLI3e-55e-53e-5
    ChnSentiCorp2e-55e-52e-5
    LCQMC2e-53e-52e-5
    BQ Corpus3e-55e-53e-5
    THUCNews2e-55e-52e-5

    *代表所有wwm系列模型 (BERT-wwm, BERT-wwm-ext, RoBERTa-wwm-ext, RoBERTa-wwm-ext-large)

    下面仅列举部分结果,完整结果请查看我们的技术报告。

    注意:为了保证结果的可靠性,对于同一模型,我们运行10遍(不同随机种子),汇报模型性能的最大值和平均值(括号内为平均值)。不出意外,你运行的结果应该很大概率落在这个区间内。

    评测指标中,括号内表示平均值,括号外表示最大值。

    简体中文阅读理解:CMRC 2018

    CMRC 2018数据集是哈工大讯飞联合实验室发布的中文机器阅读理解数据。 根据给定问题,系统需要从篇章中抽取出片段作为答案,形式与SQuAD相同。 评测指标为:EM / F1

    模型开发集测试集挑战集
    BERT65.5 (64.4) / 84.5 (84.0)70.0 (68.7) / 87.0 (86.3)18.6 (17.0) / 43.3 (41.3)
    ERNIE65.4 (64.3) / 84.7 (84.2)69.4 (68.2) / 86.6 (86.1)19.6 (17.0) / 44.3 (42.8)
    BERT-wwm66.3 (65.0) / 85.6 (84.7)70.5 (69.1) / 87.4 (86.7)21.0 (19.3) / 47.0 (43.9)
    BERT-wwm-ext67.1 (65.6) / 85.7 (85.0)71.4 (70.0) / 87.7 (87.0)24.0 (20.0) / 47.3 (44.6)
    RoBERTa-wwm-ext67.4 (66.5) / 87.2 (86.5)72.6 (71.4) / 89.4 (88.8)26.2 (24.6) / 51.0 (49.1)
    RoBERTa-wwm-ext-large68.5 (67.6) / 88.4 (87.9)74.2 (72.4) / 90.6 (90.0)31.5 (30.1) / 60.1 (57.5)

    繁体中文阅读理解:DRCD

    DRCD数据集由中国台湾台达研究院发布,其形式与SQuAD相同,是基于繁体中文的抽取式阅读理解数据集。 由于ERNIE中去除了繁体中文字符,故不建议在繁体中文数据上使用ERNIE(或转换成简体中文后再处理)。 评测指标为:EM / F1

    模型开发集测试集
    BERT83.1 (82.7) / 89.9 (89.6)82.2 (81.6) / 89.2 (88.8)
    ERNIE73.2 (73.0) / 83.9 (83.8)71.9 (71.4) / 82.5 (82.3)
    BERT-wwm84.3 (83.4) / 90.5 (90.2)82.8 (81.8) / 89.7 (89.0)
    BERT-wwm-ext85.0 (84.5) / 91.2 (90.9)83.6 (83.0) / 90.4 (89.9)
    RoBERTa-wwm-ext86.6 (85.9) / 92.5 (92.2)85.6 (85.2) / 92.0 (91.7)
    RoBERTa-wwm-ext-large89.6 (89.1) / 94.8 (94.4)89.6 (88.9) / 94.5 (94.1)

    司法阅读理解:CJRC

    CJRC数据集是哈工大讯飞联合实验室发布的面向司法领域的中文机器阅读理解数据。 需要注意的是实验中使用的数据并非官方发布的最终数据,结果仅供参考。 评测指标为:EM / F1

    模型开发集测试集
    BERT54.6 (54.0) / 75.4 (74.5)55.1 (54.1) / 75.2 (74.3)
    ERNIE54.3 (53.9) / 75.3 (74.6)55.0 (53.9) / 75.0 (73.9)
    BERT-wwm54.7 (54.0) / 75.2 (74.8)55.1 (54.1) / 75.4 (74.4)
    BERT-wwm-ext55.6 (54.8) / 76.0 (75.3)55.6 (54.9) / 75.8 (75.0)
    RoBERTa-wwm-ext58.7 (57.6) / 79.1 (78.3)59.0 (57.8) / 79.0 (78.0)
    RoBERTa-wwm-ext-large62.1 (61.1) / 82.4 (81.6)62.4 (61.4) / 82.2 (81.0)

    自然语言推断:XNLI

    在自然语言推断任务中,我们采用了XNLI数据,需要将文本分成三个类别:entailment,neutral,contradictory。 评测指标为:Accuracy

    模型开发集测试集
    BERT77.8 (77.4)77.8 (77.5)
    ERNIE79.7 (79.4)78.6 (78.2)
    BERT-wwm79.0 (78.4)78.2 (78.0)
    BERT-wwm-ext79.4 (78.6)78.7 (78.3)
    RoBERTa-wwm-ext80.0 (79.2)78.8 (78.3)
    RoBERTa-wwm-ext-large82.1 (81.3)81.2 (80.6)

    情感分析:ChnSentiCorp

    在情感分析任务中,二分类的情感分类数据集ChnSentiCorp。 评测指标为:Accuracy

    模型开发集测试集
    BERT94.7 (94.3)95.0 (94.7)
    ERNIE95.4 (94.8)95.4 (95.3)
    BERT-wwm95.1 (94.5)95.4 (95.0)
    BERT-wwm-ext95.4 (94.6)95.3 (94.7)
    RoBERTa-wwm-ext95.0 (94.6)95.6 (94.8)
    RoBERTa-wwm-ext-large95.8 (94.9)95.8 (94.9)

    句对分类:LCQMC, BQ Corpus

    以下两个数据集均需要将一个句对进行分类,判断两个句子的语义是否相同(二分类任务)。

    LCQMC

    LCQMC由哈工大深圳研究生院智能计算研究中心发布。 评测指标为:Accuracy

    模型开发集测试集
    BERT89.4 (88.4)86.9 (86.4)
    ERNIE89.8 (89.6)87.2 (87.0)
    BERT-wwm89.4 (89.2)87.0 (86.8)
    BERT-wwm-ext89.6 (89.2)87.1 (86.6)
    RoBERTa-wwm-ext89.0 (88.7)86.4 (86.1)
    RoBERTa-wwm-ext-large90.4 (90.0)87.0 (86.8)
    BQ Corpus

    BQ Corpus由哈工大深圳研究生院智能计算研究中心发布,是面向银行领域的数据集。 评测指标为:Accuracy

    模型开发集测试集
    BERT86.0 (85.5)84.8 (84.6)
    ERNIE86.3 (85.5)85.0 (84.6)
    BERT-wwm86.1 (85.6)85.2 (84.9)
    BERT-wwm-ext86.4 (85.5)85.3 (84.8)
    RoBERTa-wwm-ext86.0 (85.4)85.0 (84.6)
    RoBERTa-wwm-ext-large86.3 (85.7)85.8 (84.9)

    篇章级文本分类:THUCNews

    篇章级文本分类任务我们选用了由清华大学自然语言处理实验室发布的新闻数据集THUCNews。 我们采用的是其中一个子集,需要将新闻分成10个类别中的一个。 评测指标为:Accuracy

    模型开发集测试集
    BERT97.7 (97.4)97.8 (97.6)
    ERNIE97.6 (97.3)97.5 (97.3)
    BERT-wwm98.0 (97.6)97.8 (97.6)
    BERT-wwm-ext97.7 (97.5)97.7 (97.5)
    RoBERTa-wwm-ext98.3 (97.9)97.7 (97.5)
    RoBERTa-wwm-ext-large98.3 (97.7)97.8 (97.6)

    小参数量模型

    以下是在若干NLP任务上的实验效果,表中只提供测试集结果对比。

    模型CMRC 2018DRCDXNLICSCLCQMCBQ平均参数量
    RoBERTa-wwm-ext-large74.2 / 90.689.6 / 94.581.295.887.085.887.335325M
    RoBERTa-wwm-ext72.6 / 89.485.6 / 92.078.895.686.485.085.675102M
    RBTL363.3 / 83.477.2 / 85.674.094.285.183.680.80061M (59.8%)
    RBT362.2 / 81.875.0 / 83.972.392.885.183.379.55038M (37.3%)

    效果相对值比较:

    模型CMRC 2018DRCDXNLICSCLCQMCBQ平均分类平均
    RoBERTa-wwm-ext-large102.2% / 101.3%104.7% / 102.7%103.0%100.2%100.7%100.9%101.9%101.2%
    RoBERTa-wwm-ext100% / 100%100% / 100%100%100%100%100%100%100%
    RBTL387.2% / 93.3%90.2% / 93.0%93.9%98.5%98.5%98.4%94.3%97.35%
    RBT385.7% / 91.5%87.6% / 91.2%91.8%97.1%98.5%98.0%92.9%96.35%
    • 参数量是以XNLI分类任务为基准进行计算
    • 括号内参数量百分比以原始base模型(即RoBERTa-wwm-ext)为基准
    • RBT3:由RoBERTa-wwm-ext 3层进行初始化,继续训练了1M步
    • RBTL3:由RoBERTa-wwm-ext-large 3层进行初始化,继续训练了1M步
    • RBT的名字是RoBERTa三个音节首字母组成,L代表large模型
    • 直接使用RoBERTa-wwm-ext-large前三层进行初始化并进行下游任务的训练将显著降低效果,例如在CMRC 2018上测试集仅能达到42.9/65.3,而RBTL3能达到63.3/83.4

    欢迎使用效果更优的中文小型预训练模型MiniRBT:https://github.com/iflytek/MiniRBT

    使用建议

    • 初始学习率是非常重要的一个参数(不论是BERT还是其他模型),需要根据目标任务进行调整。
    • ERNIE的最佳学习率和BERT/BERT-wwm相差较大,所以使用ERNIE时请务必调整学习率(基于以上实验结果,ERNIE需要的初始学习率较高)。
    • 由于BERT/BERT-wwm使用了维基百科数据进行训练,故它们对正式文本建模较好;而ERNIE使用了额外的百度贴吧、知道等网络数据,它对非正式文本(例如微博等)建模有优势。
    • 在长文本建模任务上,例如阅读理解、文档分类,BERT和BERT-wwm的效果较好。
    • 如果目标任务的数据和预训练模型的领域相差较大,请在自己的数据集上进一步做预训练。
    • 如果要处理繁体中文数据,请使用BERT或者BERT-wwm。因为我们发现ERNIE的词表中几乎没有繁体中文。

    英文模型下载

    为了方便大家下载,顺便带上谷歌官方发布的英文BERT-large (wwm)模型:

    FAQ

    Q: 这个模型怎么用?
    A: 谷歌发布的中文BERT怎么用,这个就怎么用。 文本不需要经过分词,wwm只影响预训练过程,不影响下游任务的输入。

    Q: 请问有预训练代码提供吗?
    A: 很遗憾,我不能提供相关代码,实现可以参考 #10 和 #13。

    Q: 某某数据集在哪里下载?
    A: 请查看data目录,任务目录下的README.md标明了数据来源。对于有版权的内容,请自行搜索或与原作者联系获取数据。

    Q: 会有计划发布更大模型吗?比如BERT-large-wwm版本?
    A: 如果我们从实验中得到更好效果,会考虑发布更大的版本。

    Q: 你骗人!无法复现结果😂
    A: 在下游任务中,我们采用了最简单的模型。比如分类任务,我们直接使用的是run_classifier.py(谷歌提供)。 如果无法达到平均值,说明实验本身存在bug,请仔细排查。 最高值存在很多随机因素,我们无法保证能够达到最高值。 另外一个公认的因素:降低batch size会显著降低实验效果,具体可参考BERT,XLNet目录的相关Issue。

    Q: 我训出来比你更好的结果!
    A: 恭喜你。

    Q: 训练花了多长时间,在什么设备上训练的?
    A: 训练是在谷歌TPU v3版本(128G HBM)完成的,训练BERT-wwm花费约1.5天,BERT-wwm-ext则需要数周时间(使用了更多数据需要迭代更充分)。 需要注意的是,预训练阶段我们使用的是LAMB Optimizer(TensorFlow版本实现)。该优化器对大的batch有良好的支持。 在微调下游任务时,我们采用的是BERT默认的AdamWeightDecayOptimizer。

    Q: ERNIE是谁?
    A: 本项目中的ERNIE模型特指百度公司提出的ERNIE,而非清华大学在ACL 2019上发表的ERNIE。

    Q: BERT-wwm的效果不是在所有任务都很好
    A: 本项目的目的是为研究者提供多元化的预训练模型,自由选择BERT,ERNIE,或者是BERT-wwm。 我们仅提供实验数据,具体效果如何还是得在自己的任务中不断尝试才能得出结论。 多一个模型,多一种选择。

    Q: 为什么有些数据集上没有试?
    A: 很坦率的说: 1)没精力找更多的数据; 2)没有必要; 3)没有钞票;

    Q: 简单评价一下这几个模型
    A: 各有侧重,各有千秋。 中文自然语言处理的研究发展需要多方共同努力。

    Q: 你预测下一个预训练模型叫什么?
    A: 可能叫ZOE吧,ZOE: Zero-shOt Embeddings from language model

    Q: 更多关于RoBERTa-wwm-ext模型的细节?
    A: 我们集成了RoBERTa和BERT-wwm的优点,对两者进行了一个自然的结合。 和之前本目录中的模型之间的区别如下:
    1)预训练阶段采用wwm策略进行mask(但没有使用dynamic masking)
    2)简单取消Next Sentence Prediction(NSP)loss
    3)不再采用先max_len=128然后再max_len=512的训练模式,直接训练max_len=512
    4)训练步数适当延长

    需要注意的是,该模型并非原版RoBERTa模型,只是按照类似RoBERTa训练方式训练出的BERT模型,即RoBERTa-like BERT。 故在下游任务使用、模型转换时请按BERT的方式处理,而非RoBERTa。

    引用

    如果本项目中的资源或技术对你的研究工作有所帮助,欢迎在论文中引用下述论文。

    @journal{cui-etal-2021-pretrain,
      title={Pre-Training with Whole Word Masking for Chinese BERT},
      author={Cui, Yiming and Che, Wanxiang and Liu, Ting and Qin, Bing and Yang, Ziqing},
      journal={IEEE Transactions on Audio, Speech and Language Processing},
      year={2021},
      url={https://ieeexplore.ieee.org/document/9599397},
      doi={10.1109/TASLP.2021.3124365},
     }
    
    @inproceedings{cui-etal-2020-revisiting,
        title = "Revisiting Pre-Trained Models for {C}hinese Natural Language Processing",
        author = "Cui, Yiming  and
          Che, Wanxiang  and
          Liu, Ting  and
          Qin, Bing  and
          Wang, Shijin  and
          Hu, Guoping",
        booktitle = "Proceedings of the 2020 Conference on Empirical Methods in Natural Language Processing: Findings",
        month = nov,
        year = "2020",
        address = "Online",
        publisher = "Association for Computational Linguistics",
        url = "https://www.aclweb.org/anthology/2020.findings-emnlp.58",
        pages = "657--668",
    }
    

    致谢

    第一作者部分受到谷歌TPU Research Cloud计划资助。

    免责声明

    本项目并非谷歌官方发布的Chinese BERT-wwm模型。同时,本项目不是哈工大或科大讯飞的官方产品。 技术报告中所呈现的实验结果仅表明在特定数据集和超参组合下的表现,并不能代表各个模型的本质。 实验结果可能因随机数种子,计算设备而发生改变。 该项目中的内容仅供技术研究参考,不作为任何结论性依据。使用者可以在许可证范围内任意使用该模型,但我们不对因使用该项目内容造成的直接或间接损失负责。

    关注我们

    欢迎关注微信公众号"涌现志",了解最新的技术动态。

    qrcode.png

    问题反馈

    如有问题,请在GitHub Issue中提交。