Pre-trained Chinese ELECTRA(中文ELECTRA预训练模型)
<br>
本项目基于谷歌&斯坦福大学官方的ELECTRA:https://github.com/google-research/electra
中文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
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多位学者撰写的《自然语言处理:基于预训练模型的方法》已出版,欢迎大家选购。
2020/12/13 基于大规模法律文书数据,我们训练了面向司法领域的中文ELECTRA系列模型,查看模型下载,司法任务效果。
点击这里查看历史新闻 2020/10/22 ELECTRA-180g已发布,增加了CommonCrawl的高质量数据,查看[模型下载](#模型下载)。2020/9/15 我们的论文"Revisiting Pre-Trained Models for Chinese Natural Language Processing"被Findings of EMNLP录用为长文。
2020/8/27 哈工大讯飞联合实验室在通用自然语言理解评测GLUE中荣登榜首,查看GLUE榜单,新闻。
2020/5/29 Chinese ELECTRA-large/small-ex已发布,请查看模型下载,目前只提供Google Drive下载地址,敬请谅解。
2020/4/7 PyTorch用户可通过Transformers加载模型,查看快速加载。
2020/3/31 本目录发布的模型已接入飞桨PaddleHub,查看快速加载。
2020/3/25 Chinese ELECTRA-small/base已发布,请查看模型下载。
| 章节 | 描述 |
|---|---|
| 简介 | 介绍ELECTRA基本原理 |
| 模型下载 | 中文ELECTRA预训练模型下载 |
| 快速加载 | 介绍了如何使用Transformers、PaddleHub快速加载模型 |
| 基线系统效果 | 中文基线系统效果:阅读理解、文本分类等 |
| 使用方法 | 模型的详细使用方法 |
| FAQ | 常见问题答疑 |
| 引用 | 本目录的技术报告 |
ELECTRA提出了一套新的预训练框架,其中包括两个部分:Generator和Discriminator。
在预训练阶段结束之后,我们只使用Discriminator作为下游任务精调的基模型。
更详细的内容请查阅ELECTRA论文:ELECTRA: Pre-training Text Encoders as Discriminators Rather Than Generators
ELECTRA-large, Chinese: 24-layer, 1024-hidden, 16-heads, 324M parameters ELECTRA-base, Chinese: 12-layer, 768-hidden, 12-heads, 102M parameters ELECTRA-small-ex, Chinese: 24-layer, 256-hidden, 4-heads, 25M parametersELECTRA-small, Chinese: 12-layer, 256-hidden, 4-heads, 12M parameters| 模型简称 | HF下载 | 百度网盘下载 | 压缩包大小 |
|---|---|---|---|
ELECTRA-180g-large, Chinese |
HF link | TensorFlow(密码2v5r) | 1G |
ELECTRA-180g-base, Chinese |
HF link | TensorFlow(密码3vg1) | 383M |
ELECTRA-180g-small-ex, Chinese |
HF link | TensorFlow(密码93n8) | 92M |
ELECTRA-180g-small, Chinese |
HF link | TensorFlow(密码k9iu) | 46M |
| 模型简称 | HF下载 | 百度网盘下载 | 压缩包大小 |
|---|---|---|---|
ELECTRA-large, Chinese |
HF link | TensorFlow(密码1e14) | 1G |
ELECTRA-base, Chinese |
HF link | TensorFlow(密码f32j) | 383M |
ELECTRA-small-ex, Chinese |
HF link | TensorFlow(密码gfb1) | 92M |
ELECTRA-small, Chinese |
HF link | TensorFlow(密码1r4r) | 46M |
| 模型简称 | HF下载 | 百度网盘下载 | 压缩包大小 |
|---|---|---|---|
legal-ELECTRA-large, Chinese |
HF link | TensorFlow(密码q4gv) | 1G |
legal-ELECTRA-base, Chinese |
HF link | TensorFlow(密码8gcv) | 383M |
legal-ELECTRA-small, Chinese |
HF link | TensorFlow(密码kmrj) | 46M |
中国大陆境内建议使用百度网盘下载点,境外用户建议使用谷歌下载点。
以TensorFlow版ELECTRA-small, Chinese为例,下载完毕后对zip文件进行解压得到如下文件。
chinese_electra_small_L-12_H-256_A-4.zip
|- electra_small.data-00000-of-00001 # 模型权重
|- electra_small.meta # 模型meta信息
|- electra_small.index # 模型index信息
|- vocab.txt # 词表
|- discriminator.json # 配置文件:discriminator(若没有可从本repo中的config目录获取)
|- generator.json # 配置文件:generator(若没有可从本repo中的config目录获取)我们采用了大规模中文维基以及通用文本训练了ELECTRA模型,总token数达到5.4B,与RoBERTa-wwm-ext系列模型一致。词表方面沿用了谷歌原版BERT的WordPiece词表,包含21,128个token。其他细节和超参数如下(未提及的参数保持默认):
ELECTRA-large: 24层,隐层1024,16个注意力头,学习率1e-4,batch96,最大长度512,训练2M步ELECTRA-base: 12层,隐层768,12个注意力头,学习率2e-4,batch256,最大长度512,训练1M步ELECTRA-small-ex: 24层,隐层256,4个注意力头,学习率5e-4,batch384,最大长度512,训练2M步ELECTRA-small: 12层,隐层256,4个注意力头,学习率5e-4,batch1024,最大长度512,训练1M步Huggingface-Transformers 2.8.0版本已正式支持ELECTRA模型,可通过如下命令调用。
tokenizer = AutoTokenizer.from_pretrained(MODEL_NAME)
model = AutoModel.from_pretrained(MODEL_NAME) 其中MODEL_NAME对应列表如下:
| 模型名 | 组件 | MODEL_NAME |
|---|---|---|
| ELECTRA-180g-large, Chinese | discriminator | hfl/chinese-electra-180g-large-discriminator |
| ELECTRA-180g-large, Chinese | generator | hfl/chinese-electra-180g-large-generator |
| ELECTRA-180g-base, Chinese | discriminator | hfl/chinese-electra-180g-base-discriminator |
| ELECTRA-180g-base, Chinese | generator | hfl/chinese-electra-180g-base-generator |
| ELECTRA-180g-small-ex, Chinese | discriminator | hfl/chinese-electra-180g-small-ex-discriminator |
| ELECTRA-180g-small-ex, Chinese | generator | hfl/chinese-electra-180g-small-ex-generator |
| ELECTRA-180g-small, Chinese | discriminator | hfl/chinese-electra-180g-small-discriminator |
| ELECTRA-180g-small, Chinese | generator | hfl/chinese-electra-180g-small-generator |
| ELECTRA-large, Chinese | discriminator | hfl/chinese-electra-large-discriminator |
| ELECTRA-large, Chinese | generator | hfl/chinese-electra-large-generator |
| ELECTRA-base, Chinese | discriminator | hfl/chinese-electra-base-discriminator |
| ELECTRA-base, Chinese | generator | hfl/chinese-electra-base-generator |
| ELECTRA-small-ex, Chinese | discriminator | hfl/chinese-electra-small-ex-discriminator |
| ELECTRA-small-ex, Chinese | generator | hfl/chinese-electra-small-ex-generator |
| ELECTRA-small, Chinese | discriminator | hfl/chinese-electra-small-discriminator |
| ELECTRA-small, Chinese | generator | hfl/chinese-electra-small-generator |
司法领域版本:
| 模型名 | 组件 | MODEL_NAME |
|---|---|---|
| legal-ELECTRA-large, Chinese | discriminator | hfl/chinese-legal-electra-large-discriminator |
| legal-ELECTRA-large, Chinese | generator | hfl/chinese-legal-electra-large-generator |
| legal-ELECTRA-base, Chinese | discriminator | hfl/chinese-legal-electra-base-discriminator |
| legal-ELECTRA-base, Chinese | generator | hfl/chinese-legal-electra-base-generator |
| legal-ELECTRA-small, Chinese | discriminator | hfl/chinese-legal-electra-small-discriminator |
| legal-ELECTRA-small, Chinese | generator | hfl/chinese-legal-electra-small-generator |
依托PaddleHub,我们只需一行代码即可完成模型下载安装,十余行代码即可完成文本分类、序列标注、阅读理解等任务。
import paddlehub as hub
module = hub.Module(name=MODULE_NAME)其中MODULE_NAME对应列表如下:
| 模型名 | MODULE_NAME |
|---|---|
| ELECTRA-base, Chinese | chinese-electra-base |
| ELECTRA-small, Chinese | chinese-electra-small |
我们将ELECTRA-small/base与BERT-base、BERT-wwm、BERT-wwm-ext、RoBERTa-wwm-ext、RBT3进行了效果对比,包括以下六个任务:
对于ELECTRA-small/base模型,我们使用原论文默认的3e-4和1e-4的学习率。
需要注意的是,我们没有针对任何任务进行参数精调,所以通过调整学习率等超参数可能获得进一步性能提升。
为了保证结果的可靠性,对于同一模型,我们使用不同随机种子训练10遍,汇报模型性能的最大值和平均值(括号内为平均值)。
CMRC 2018数据集是哈工大讯飞联合实验室发布的中文机器阅读理解数据。 根据给定问题,系统需要从篇章中抽取出片段作为答案,形式与SQuAD相同。 评价指标为:EM / F1
| 模型 | 开发集 | 测试集 | 挑战集 | 参数量 |
|---|---|---|---|---|
| BERT-base | 65.5 (64.4) / 84.5 (84.0) | 70.0 (68.7) / 87.0 (86.3) | 18.6 (17.0) / 43.3 (41.3) | 102M |
| 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) | 102M |
| 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) | 102M |
| RoBERTa-wwm-ext | 67.4 (66.5) / 87.2 (86.5) | 72.6 (71.4) / 89.4 (88.8) | 26.2 (24.6) / 51.0 (49.1) | 102M |
| RBT3 | 57.0 / 79.0 | 62.2 / 81.8 | 14.7 / 36.2 | 38M |
| ELECTRA-small | 63.4 (62.9) / 80.8 (80.2) | 67.8 (67.4) / 83.4 (83.0) | 16.3 (15.4) / 37.2 (35.8) | 12M |
| ELECTRA-180g-small | 63.8 / 82.7 | 68.5 / 85.2 | 15.1 / 35.8 | 12M |
| ELECTRA-small-ex | 66.4 / 82.2 | 71.3 / 85.3 | 18.1 / 38.3 | 25M |
| ELECTRA-180g-small-ex |
No open issues yet, or sync has not completed.