百科.dev
全部条目AI 编程趋势榜开源项目技术资讯提交条目
登录
< 返回工具列表
C

Chinese-BERT-wwm

> 编程语言
开源

用全词掩码进行预训练的中文 BERT(中文 BERT-wwm 系列模型)

10.2K stars0 点赞0 次浏览
访问官网GitHub

工具介绍

用全词掩码进行预训练的中文 BERT(中文 BERT-wwm 系列模型)

# [Chinese-LLaMA-Alpaca-2 v1.0版本](https://github.com/ymcui/Chinese-LLaMA-Alpaca-2)已正式发布! [**中文说明**](https://github.com/ymcui/Chinese-BERT-wwm/) | [**English**](https://github.com/ymcui/Chinese-BERT-wwm/blob/master/README_EN.md)



在自然语言处理领域中,预训练语言模型(Pre-trained Language Models)已成为非常重要的基础技术。为了进一步促进中文信息处理的研究发展,我们发布了基于全词掩码(Whole Word Masking)技术的中文预训练模型BERT-wwm,以及与此技术密切相关的模型:BERT-wwm-ext,RoBERTa-wwm-ext,RoBERTa-wwm-ext-large, RBT3, RBTL3等。 - **[Pre-Training with Whole Word Masking for Chinese BERT](https://ieeexplore.ieee.org/document/9599397)** - *Yiming Cui, Wanxiang Che, Ting Liu, Bing Qin, Ziqing Yang* - Published in *IEEE/ACM Transactions on Audio, Speech, and Language Processing (TASLP)* 本项目基于谷歌官方BERT:https://github.com/google-research/bert ---- [中文LERT](https://github.com/ymcui/LERT) | [中英文PERT](https://github.com/ymcui/PERT) | [中文MacBERT](https://github.com/ymcui/MacBERT) | [中文ELECTRA](https://github.com/ymcui/Chinese-ELECTRA) | [中文XLNet](https://github.com/ymcui/Chinese-XLNet) | [中文BERT](https://github.com/ymcui/Chinese-BERT-wwm) | [知识蒸馏工具TextBrewer](https://github.com/airaria/TextBrewer) | [模型裁剪工具TextPruner](https://github.com/airaria/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/12/17 哈工大讯飞联合实验室推出模型裁剪工具包TextPruner。查看:https://github.com/airaria/TextPruner 2021/10/24 哈工大讯飞联合实验室发布面向少数民族语言的预训练模型CINO。查看:https://github.com/ymcui/Chinese-Minority-PLM 2021/7/21 由哈工大SCIR多位学者撰写的[《自然语言处理:基于预训练模型的方法》](https://item.jd.com/13344628.html)已出版,欢迎大家选购。 2021/1/27 所有模型已支持TensorFlow 2,请通过transformers库进行调用或下载。https://huggingface.co/hfl 2020/9/15 我们的论文["Revisiting Pre-Trained Models for Chinese Natural Language Processing"](https://arxiv.org/abs/2004.13922)被[Findings of EMNLP](https://2020.emnlp.org)录用为长文。 2020/8/27 哈工大讯飞联合实验室在通用自然语言理解评测GLUE中荣登榜首,查看[GLUE榜单](https://gluebenchmark.com/leaderboard),[新闻](http://dwz.date/ckrD)。 2020/3/23 本目录发布的模型已接入[飞桨PaddleHub](https://github.com/PaddlePaddle/PaddleHub),查看[快速加载](#快速加载) 2020/3/11 为了更好地了解需求,邀请您填写[调查问卷](https://wj.qq.com/s2/5637766/6281),以便为大家提供更好的资源。 2020/2/26 哈工大讯飞联合实验室发布[知识蒸馏工具TextBrewer](https://github.com/airaria/TextBrewer) 2020/1/20 祝大家鼠年大吉,本次发布了RBT3、RBTL3(3层RoBERTa-wwm-ext-base/large),查看[小参数量模型](#小参数量模型) 2019/12/19 本目录发布的模型已接入[Huggingface-Transformers](https://github.com/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](https://github.com/huggingface/transformers)、[PaddleHub](https://github.com/PaddlePaddle/PaddleHub)快速加载模型 | | [模型对比](#模型对比) | 提供了本目录中模型的参数对比 | | [中文基线系统效果](#中文基线系统效果) | 列举了部分中文基线系统效果 | | [小参数量模型](#小参数量模型) | 列举了小参数量模型(3层Transformer)的效果 | | [使用建议](#使用建议) | 提供了若干使用中文预训练模型的建议 | | [英文模型下载](#英文模型下载) | 谷歌官方的英文BERT-wwm下载地址 | | [FAQ](#FAQ) | 常见问题答疑 | | [引用](#引用) | 本目录的技术报告 | ## 简介 **Whole Word Masking (wwm)**,暂翻译为`全词Mask`或`整词Mask`,是谷歌在2019年5月31日发布的一项BERT的升级版本,主要更改了原预训练阶段的训练样本生成策略。 简单来说,原有基于WordPiece的分词方式会把一个完整的词切分成若干个子词,在生成训练样本时,这些被分开的子词会随机被mask。 在`全词Mask`中,如果一个完整的词的部分WordPiece子词被mask,则同属该词的其他部分也会被mask,即`全词Mask`。 **需要注意的是,这里的mask指的是广义的mask(替换成[MASK];保持原词汇;随机替换成另外一个词),并非只局限于单词替换成`[MASK]`标签的情况。 更详细的说明及样例请参考:[#4](https://github.com/ymcui/Chinese-BERT-wwm/issues/4)** 同理,由于谷歌官方发布的`BERT-base, Chinese`中,中文是以**字**为粒度进行切分,没有考虑到传统NLP中的中文分词(CWS)。 我们将全词Mask的方法应用在了中文中,使用了中文维基百科(包括简体和繁体)进行训练,并且使用了[哈工大LTP](http://ltp.ai)作为分词工具,即对组成同一个**词**的汉字全部进行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 Link](https://huggingface.co/hfl/chinese-bert-wwm) | [TensorFlow(密码qfh8)](https://pan.baidu.com/s/1HDdDXiYxGT5ub5OeO7qdWw?pwd=qfh8) | | **`BERT-wwm-ext, Chinese`** | EXT数据[1] | [HF Link](https://huggingface.co/hfl/chinese-bert-wwm-ext) | [TensorFlow(密码wgnt)](https://pan.baidu.com/s/1x-jIw1X2yNYHGak2yiq4RQ?pwd=wgnt) | | **`RoBERTa-wwm-ext, Chinese`** | EXT数据[1] | [HF Link](https://huggingface.co/hfl/chinese-roberta-wwm-ext) | [TensorFlow(密码vybq)](https://pan.baidu.com/s/1oR0cgSXE3Nz6dESxr98qVA?pwd=vybq) | | **`RoBERTa-wwm-ext-large, Chinese`** | EXT数据[1] | [HF Link](https://huggingface.co/hfl/chinese-roberta-wwm-ext-large) | [TensorFlow(密码dqqe)](https://pan.baidu.com/s/1F68xzCLWEonTEVP7HQ0Ciw?pwd=dqqe) | | **`RBT3, Chinese`** | EXT数据[1] | [HF Link](https://huggingface.co/hfl/rbt3) | [TensorFlow(密码5a57)](https://pan.baidu.com/s/1AnapwWj1YBZ_4E6AAtj2lg?pwd=5a57) | | **`RBT4, Chinese`** | EXT数据[1] | [HF Link](https://huggingface.co/hfl/rbt4) | [TensorFlow(密码sjpt)](https://pan.baidu.com/s/1MUrmuTULnMn3L1aw_dXxSA?pwd=sjpt) | | **`RBT6, Chinese`** | EXT数据[1] | [HF Link](https://huggingface.co/hfl/rbt6) | [TensorFlow(密码hniy)](https://pan.baidu.com/s/1_MDAIYIGVgDovWkSs51NDA?pwd=hniy) | | **`RBTL3, Chinese`** | EXT数据[1] | [HF Link](https://huggingface.co/hfl/rbtl3) | [TensorFlow(密码s6cu)](https://pan.baidu.com/s/1vV9ClBMbsSpt8wUpfQz62Q?pwd=s6cu) | > [1] EXT数据包括:中文维基百科,其他百科、新闻、问答等数据,总词数达5.4B。 ### PyTorch版本 如需PyTorch版本, 1)请自行通过[Transformers](https://github.com/huggingface/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库](https://github.com/huggingface/transformers),可轻松调用以上模型。 ``` tokenizer = BertTokenizer.from_pretrained("MODEL_NAME") model = BertModel.from_pretrained("MODEL_NAME") ``` **注意:本目录中的所有模型均使用BertTokenizer以及BertModel加载,请勿使用RobertaTokenizer/RobertaModel!** 其中`MODEL_NAME`对应列表如下: | 模型名 | MODEL_NAME | | - | - | | RoBERTa-wwm-ext-large | hfl/chinese-roberta-wwm-ext-large | | RoBERTa-wwm-ext | hfl/chinese-roberta-wwm-ext | | BERT-wwm-ext | hfl/chinese-bert-wwm-ext | | BERT-wwm | hfl/chinese-bert-wwm | | RBT3 | hfl/rbt3 | | RBTL3 | hfl/rbtl3 | ### 使用PaddleHub 依托[PaddleHub](https://github.com/PaddlePaddle/PaddleHub),只需一行代码即可完成模型下载安装,十余行代码即可完成文本分类、序列标注、阅读理解等任务。 ``` import paddlehub as hub module = hub.Module(name=MODULE_NAME) ``` 其中`MODULE_NAME`对应列表如下: | 模型名 | MODULE_NAME | | - | - | | RoBERTa-wwm-ext-large | [chinese-roberta-wwm-ext-large](https://www.paddlepaddle.org.cn/hubdetail?name=chinese-roberta-wwm-ext-large&en_category=SemanticModel) | | RoBERTa-wwm-ext | [chinese-roberta-wwm-ext](https://www.paddlepaddle.org.cn/hubdetail?name=chinese-roberta-wwm-ext&en_category=SemanticModel) | | BERT-wwm-ext | [chinese-bert-wwm-ext](https://www.paddlepaddle.org.cn/hubdetail?name=chinese-bert-wwm-ext&en_category=SemanticModel) | | BERT-wwm | [chinese-bert-wwm](https://www.paddlepaddle.org.cn/hubdetail?name=chinese-bert-wwm&en_category=SemanticModel) | | RBT3 | [rbt3](https://www.paddlepaddle.org.cn/hubdetail?name=rbt3&en_category=SemanticModel) | | RBTL3 | [rbtl3](https://www.paddlepaddle.org.cn/hubdetail?name=rbtl3&en_category=SemanticModel) | ## 模型对比 针对大家比较关心的一些模型细节进行汇总如下。 | - | BERTGoogle | BERT-wwm | BERT-wwm-ext | RoBERTa-wwm-ext | RoBERTa-wwm-ext-large | | :------- | :---------: | :---------: | :---------: | :---------: | :---------: | | Masking | WordPiece | WWM[1] | WWM | WWM | WWM | | Type | base | base | base | base | **large** | | Data Source | wiki | wiki | wiki+ext[2] | wiki+ext | wiki+ext | | Training Tokens # | 0.4B | 0.4B | 5.4B | 5.4B | 5.4B | | Device | TPU Pod v2 | TPU v3 | TPU v3 | TPU v3 | **TPU Pod v3-32[3]** | | Training Steps | ? | 100KMAX128
+100KMAX512 | 1MMAX128
+400KMAX512 | 1MMAX512 | 2MMAX512 | | Batch Size | ? | 2,560 / 384 | 2,560 / 384 | 384 | 512 | | Optimizer | AdamW | LAMB | LAMB | AdamW | AdamW | | Vocabulary | 21,128 | ~BERT[4] | ~BERT | ~BERT | ~BERT | | Init Checkpoint | Random Init | ~BERT | ~BERT | ~BERT | Random 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`的最佳学习率。 最佳学习率: | 模型 | BERT | ERNIE | BERT-wwm* | | :------- | :---------: | :---------: | :---------: | | CMRC 2018 | 3e-5 | 8e-5 | 3e-5 | | DRCD | 3e-5 | 8e-5 | 3e-5 | | CJRC | 4e-5 | 8e-5 | 4e-5 | | XNLI | 3e-5 | 5e-5 | 3e-5 | | ChnSentiCorp | 2e-5 | 5e-5 | 2e-5 | | LCQMC | 2e-5 | 3e-5 | 2e-5 | | BQ Corpus | 3e-5 | 5e-5 | 3e-5 | | THUCNews | 2e-5 | 5e-5 | 2e-5 | *代表所有wwm系列模型 (BERT-wwm, BERT-wwm-ext, RoBERTa-wwm-ext, RoBERTa-wwm-ext-large) **下面仅列举部分结果,完整结果请查看我们的[技术报告](https://arxiv.org/abs/1906.08101)。** - [**CMRC 2018**:篇章片段抽取型阅读理解(简体中文)](https://github.com/ymcui/cmrc2018) - [**DRCD**:篇章片段抽取型阅读理解(繁体中文)](https://github.com/DRCSolutionService/DRCD) - [**CJRC**: 法律阅读理解(简体中文)](http://cail.cipsc.org.cn) - [**XNLI**:自然语言推断](https://github.com/google-research/bert/blob/master/multilingual.md) - [**ChnSentiCorp**:情感分析](https://github.com/pengming617/bert_classification) - [**LCQMC**:句对匹配](http://icrc.hitsz.edu.cn/info/1037/1146.htm) - [**BQ Corpus**:句对匹配](http://icrc.hitsz.edu.cn/Article/show/175.html) - [**THUCNews**:篇章级文本分类](http://thuctc.thunlp.org) **注意:为了保证结果的可靠性,对于同一模型,我们运行10遍(不同随机种子),汇报模型性能的最大值和平均值(括号内为平均值)。不出意外,你运行的结果应该很大概率落在这个区间内。** **评测指标中,括号内表示平均值,括号外表示最大值。** ### 简体中文阅读理解:CMRC 2018 [**CMRC 2018数据集**](https://github.com/ymcui/cmrc2018)是哈工大讯飞联合实验室发布的中文机器阅读理解数据。 根据给定问题,系统需要从篇章中抽取出片段作为答案,形式与SQuAD相同。 评测指标为:EM / F1 | 模型 | 开发集 | 测试集 | 挑战集 | | :------- | :---------: | :---------: | :---------: | | BERT | 65.5 (64.4) / 84.5 (84.0) | 70.0 (68.7) / 87.0 (86.3) | 18.6 (17.0) / 43.3 (41.3) | | ERNIE | 65.4 (64.3) / 84.7 (84.2) | 69.4 (68.2) / 86.6 (86.1) | 19.6 (17.0) / 44.3 (42.8) | | **BERT-wwm** | 66.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-ext** | 67.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-ext** | 67.4 (66.5)

GitHub Issues· 0 开放

在 GitHub 查看全部

暂无开放 Issues,或尚未同步最近议题。

核心特点

  • •Pre-Training with Whole Word Masking for Chinese BERT
  • •Yiming Cui, Wanxiang Che, Ting Liu, Bing Qin, Ziqing Yang
  • •Published in *IEEE/ACM Transactions on Audio, Speech, and Language Processing (TASLP)
  • •BERT-large模型:24-layer, 1024-hidden, 16-heads, 330M parameters
  • •BERT-base模型:12-layer, 768-hidden, 12-heads, 110M parameters
  • •CMRC 2018:篇章片段抽取型阅读理解(简体中文)
  • •DRCD:篇章片段抽取型阅读理解(繁体中文)
  • •CJRC: 法律阅读理解(简体中文)
  • •XNLI:自然语言推断
  • •ChnSentiCorp:情感分析

> 标签

Pythonbertbert-wwmbert-wwm-extchinese-bert

暂无评论,来聊聊你的看法吧

> 工具信息

发布日期2026年8月1日
最后更新2026年9月17日
分类编程语言
定价开源

> 相关工具

T
TypeScript
JavaScript 的超集,为前端与全栈提供静态类型
P
Python
通用编程语言,广泛用于 Web、数据与 AI
G
Go
Google 推出的简洁高效系统语言