Home

Awesome

<p align="center"> <br> <img src="./pics/banner.png" width="450"/> <br> </p> <p align="center"> <a href="https://github.com/ymcui/Chinese-MobileBERT/blob/master/LICENSE"> <img alt="GitHub" src="https://img.shields.io/github/license/ymcui/Chinese-MobileBERT.svg?color=blue&style=flat-square"> </a> </p> 本项目包含使用中文数据训练的MobileBERT模型。MobileBERT是BERT-large模型更“苗条”的版本,使用了瓶颈结构(bottleneck)并且对自注意力和前馈神经网络之间的平衡做了细致的设计。

本项目基于谷歌原版MobileBERT实现:谷歌官方MobileBERT项目

说明:本目录仅作为个人存档使用,如有问题还请互助解决。


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

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

内容导引

章节描述
简介MobileBERT预训练模型的基本原理
模型下载中文MobileBERT预训练模型的下载地址
基线系统效果在部分NLU任务上的基线系统效果
如何预训练和精调任务介绍了如何预训练MobileBERT,以及在下游任务中精调
FAQ常见问题答疑

简介

请直接参考MobileBERT原论文:MobileBERT: a Compact Task-Agnostic BERT for Resource-Limited Devices

说明:

以下为本项目的目录结构;

模型下载

原版下载地址

这里主要提供TensorFlow 1.15版本的模型权重。如需PyTorch或者TensorFlow2版本的模型,请看下一小节。

以下是每个模型的重要参数,更详细的参数请查看每个模型的config文件。

结构总层数中间层大小隐层大小瓶颈大小注意力头数FFN层数总参数量<sup>[1]</sup>
Base-f21251276814412226.3M
Base-f41276876814412432.2M
Large-f224512102412816240.6M
Large-f424512102412816452.9M

[1] 对照BERT-base是110M(约),BERT-large是330M(约)。

模型简称模型文件大小百度盘下载
Chinese-MobileBERT-base-f2672MBTensorFlow(密码:56bj)
Chinese-MobileBERT-base-f4737MBTensorFlow(密码:v2v7)
Chinese-MobileBERT-large-f21.66GBTensorFlow(密码:6m5a)
Chinese-MobileBERT-large-f41.80GBTensorFlow(密码:3h9b)

注:模型中的adam相关参数未删除,故模型文件较大。如有必要请自行删除。

PyTorch以及TensorFlow 2版本

目前使用transformers给出的TF转PT脚本转换本目录中的模型会有一些问题,暂时不提供PT版本下载。

基线系统效果

为了测试中文MobileBERT的效果,我们选取了6个NLU进行测试,主要分为阅读理解和文本分类两大类。

阅读理解

在以下两个任务上进行了测试:

MobileBERT超参:初始学习率3e-5、训练2轮、batch_size 32、最大长度512,其余保持默认。(注意:超参并非最优,还请自行多尝试)

评价指标:EM/F1

CMRC 2018数据集开发集测试集挑战集
BERT65.5 / 84.570.0 / 87.018.6 / 43.3
RoBERTa-wwm-ext67.4 / 87.272.6 / 89.426.2 / 51.0
MobileBERT-base-f259.8 / 81.465.4 / 84.216.3 / 37.3
MobileBERT-base-f462.4 / 83.367.5 / 85.819.0 / 41.6
RoBERTa-wwm-ext-large68.5 / 88.474.2 / 90.631.5 / 60.1
MobileBERT-large-f262.4 / 84.067.1 / 86.322.4 / 45.5
MobileBERT-large-f464.4 / 85.668.2 / 87.122.2 / 46.3
DRCD数据集开发集测试集
BERT83.1 / 89.982.2 / 89.2
RoBERTa-wwm-ext86.6 / 92.585.6 / 92.0
MobileBERT-base-f281.4 / 88.680.3 / 87.7
MobileBERT-base-f484.6 / 90.883.2 / 89.8
RoBERTa-wwm-ext-large89.6 / 94.889.6 / 94.5
MobileBERT-large-f284.1 / 90.583.3 / 90.2
MobileBERT-large-f486.1 / 91.385.5 / 91.3

文本分类

在以下四个任务上进行了测试:

MobileBERT超参:初始学习率6e-5、训练3轮(XNLI为2轮)、batch_size为64、最大长度128(CSC为256),其余保持默认。(注意:超参并非最优,还请自行多尝试)

评价指标:Accuracy

XNLI数据集开发集测试集
BERT77.877.8
RoBERTa-wwm-ext80.078.8
MobileBERT-base-f274.373.6
MobileBERT-base-f475.474.9
RoBERTa-wwm-ext-large82.181.2
MobileBERT-large-f275.575.6
MobileBERT-large-f476.476.1
CSC数据集开发集测试集
BERT94.795.0
RoBERTa-wwm-ext95.095.6
MobileBERT-base-f294.094.0
MobileBERT-base-f493.494.0
RoBERTa-wwm-ext-large95.895.8
MobileBERT-large-f293.894.8
MobileBERT-large-f494.795.3
LCQMC数据集开发集测试集
BERT89.486.9
RoBERTa-wwm-ext89.086.4
MobileBERT-base-f284.882.7
MobileBERT-base-f485.884.1
RoBERTa-wwm-ext-large90.487.0
MobileBERT-large-f287.884.9
MobileBERT-large-f487.285.4
BQ数据集开发集测试集
BERT86.084.8
RoBERTa-wwm-ext86.485.3
MobileBERT-base-f282.381.2
MobileBERT-base-f483.183.1
RoBERTa-wwm-ext-large86.385.8
MobileBERT-large-f284.083.7
MobileBERT-large-f484.484.3

如何预训练和精调任务

FAQ

1)本项目实际完成时间久远(2020年),如有问题还请自行查阅资料解决,感谢理解。

2)本项目中的内容仅供参考,实现也并非完全按照谷歌官方的配置进行,请酌情使用。

致谢

感谢TPU Research Cloud(TRC)提供TPU训练支持。

I would like to thank TPU Research Cloud (TRC) program for TPU access.

引用

@misc{cui-2022-chinese-mobilebert,
  title={Chinese MobileBERT},
  author={Cui, Yiming},
  howpublished={\url{https://github.com/ymcui/Chinese-MobileBERT}},
  year={2022}
}