RoBERTa for Chinese, TensorFlow & PyTorch
中文预训练RoBERTa模型
-------------------------------------------------
RoBERTa是BERT的改进版,通过改进训练任务和数据生成方式、训练更久、使用更大批次、使用更多数据等获得了State of The Art的效果;可以用Bert直接加载。
本项目是用TensorFlow实现了在大规模中文上RoBERTa的预训练,也会提供PyTorch的预训练模型和加载方式。
*** 2019-10-12:添加【阅读理解】不同模型上测试效果对比 ***
*** 2019-09-08: 添加国内下载地址、PyTorch版本、与多个模型bert-wwm、xlnet等模型效果初步对比 ***
Pre-trained model of <a href="https://github.com/brightmart/albert_zh">albert, chinese version</a> is also available for you now.
中文预训练RoBERTa模型-下载
-------------------------------------------------
*** 6层RoBERTa体验版 ***
RoBERTa-zh-Layer6: <a href="https://drive.google.com/file/d/1QXFqD6Qm8H9bRSbw7yZIgTGxD0O6ejUq/view?usp=sharing"> Google Drive</a> 或 <a href="https://pan.baidu.com/s/1TfKz-d9wvfqct8vN0c-vjg">百度网盘</a>,TensorFlow版本,Bert 直接加载, 大小为200M
###### ** 推荐 RoBERTa-zh-Large 通过验证**
RoBERTa-zh-Large: <a href='https://drive.google.com/open?id=1W3WgPJWGVKlU9wpUYsdZuurAIFKvrl_Y'> Google Drive </a> 或 <a href="https://pan.baidu.com/s/1Rk_QWqd7-wBTwycr91bmug">百度网盘</a> ,TensorFlow版本,Bert 直接加载
RoBERTa-zh-Large: <a href='https://drive.google.com/open?id=1yK_P8VhWZtdgzaG0gJ3zUGOKWODitKXZ'> Google Drive </a> 或 <a href="https://pan.baidu.com/s/1MRDuVqUROMdSKr6HD9x1mw">百度网盘</a> ,PyTorch版本,Bert的PyTorch版直接加载
RoBERTa 24/12层版训练数据:30G原始文本,近3亿个句子,100亿个中文字(token),产生了2.5亿个训练数据(instance);
覆盖新闻、社区问答、多个百科数据等;
本项目与中文预训练24层XLNet模型 <a href="https://github.com/brightmart/xlnet_zh">XLNet_zh</a>项目,使用相同的训练数据。
RoBERTa_zh_L12: <a href='https://drive.google.com/open?id=1ykENKV7dIFAqRRQbZIh0mSb7Vjc2MeFA'> Google Drive</a> 或 <a href="https://pan.baidu.com/s/1hAs7-VSn5HZWxBHQMHKkrg">百度网盘</a> TensorFlow版本,Bert 直接加载
RoBERTa_zh_L12: <a href="https://drive.google.com/open?id=1H6f4tYlGXgug1DdhYzQVBuwIGAkAflwB">Google Drive</a> 或<a href="https://pan.baidu.com/s/1AGC76N7pZOzWuo8ua1AZfw">百度网盘</a> PyTorch版本,Bert的PyTorch版直接加载
---------------------------------------------------------------
<a href='https://drive.google.com/file/d/1cg3tVKPyUEmiI88H3gasqYC4LV4X8dNm/view?usp=sharing'>Roberta_l24_zh_base</a> TensorFlow版本,Bert 直接加载
24层base版训练数据:10G文本,包含新闻、社区问答、多个百科数据等。
What is RoBERTa:
-------------------------------------------------
A robustly optimized method for pretraining natural language processing (NLP) systems that improves on Bidirectional Encoder Representations from Transformers, or BERT, the self-supervised method released by Google in 2018.
RoBERTa, produces state-of-the-art results on the widely used NLP benchmark, General Language Understanding Evaluation (GLUE). The model delivered state-of-the-art performance on the MNLI, QNLI, RTE, STS-B, and RACE tasks and a sizable performance improvement on the GLUE benchmark. With a score of 88.5, RoBERTa reached the top position on the GLUE leaderboard, matching the performance of the previous leader, XLNet-Large.
(Introduction from Facebook blog)
发布计划 Release Plan:
-------------------------------------------------
1、24层RoBERTa模型(roberta_l24_zh),使用30G文件训练, 9月8日
2、12层RoBERTa模型(roberta_l12_zh),使用30G文件训练, 9月8日
3、6层RoBERTa模型(roberta_l6_zh), 使用30G文件训练, 9月8日
4、PyTorch版本的模型(roberta_l6_zh_pytorch) 9月8日
5、30G中文语料,预训练格式,可直接训练(bert,xlent,gpt2) 待定
6、测试集测试和效果对比 9月14日
效果测试与对比 Performance
-------------------------------------------------
### 互联网新闻情感分析:CCF-Sentiment-Analysis
| 模型 | 线上F1 |
| :------- | :---------: |
| BERT | 80.3 |
| Bert-wwm-ext | 80.5 |
| XLNet | 79.6 |
| Roberta-mid | 80.5 |
| Roberta-large (max_seq_length=512, split_num=1) | 81.25 |
注:数据来源于<a href="https://github.com/guoday/CCF-BDCI-Sentiment-Analysis-Baseline/blob/master/README.md">guoday的开源项目</a>;数据集和任务介绍见:<a href="https://www.datafountain.cn/competitions/350/ranking">CCF互联网新闻情感分析</a>
### 自然语言推断:XNLI
| 模型 | 开发集 | 测试集 |
| :------- | :---------: | :---------: |
| BERT | 77.8 (77.4) | 77.8 (77.5) |
| ERNIE | 79.7 (79.4) | 78.6 (78.2) |
| BERT-wwm | 79.0 (78.4) | 78.2 (78.0) |
| BERT-wwm-ext | 79.4 (78.6) | 78.7 (78.3) |
| XLNet | 79.2 | 78.7 |
| RoBERTa-zh-base | 79.8 |78.8 |
| **RoBERTa-zh-Large** | **80.2 (80.0)** | **79.9 (79.5)** |
注:RoBERTa_l24_zh,只跑了两次,Performance可能还会提升;
BERT-wwm-ext来自于<a href="https://github.com/ymcui/Chinese-BERT-wwm">这里</a>;XLNet来自于<a href="https://github.com/ymcui/Chinese-PreTrained-XLNet">这里</a>; RoBERTa-zh-base,指12层RoBERTa中文模型
### 问题匹配语任务:LCQMC(Sentence Pair Matching)
| 模型 | 开发集(Dev) | 测试集(Test) |
| :------- | :---------: | :---------: |
| BERT | 89.4(88.4) | 86.9(86.4) |
| ERNIE | 89.8 (89.6) | **87.2** (87.0) |
| BERT-wwm |89.4 (89.2) | 87.0 (86.8) |
| BERT-wwm-ext | - |- |
| RoBERTa-zh-base | 88.7 | 87.0 |
| **RoBERTa-zh-Large** | **89.9**(89.6) | **87.2**(86.7) |
| RoBERTa-zh-Large(20w_steps) | 89.7| 87.0 |
注:RoBERTa_l24_zh,只跑了两次,Performance可能还会提升。保持训练轮次和论文一致:
### 阅读理解测试
目前阅读理解类问题bert和roberta最优参数均为epoch2, batch=32, lr=3e-5, warmup=0.1
#### cmrc2018(阅读理解)
| models | DEV |
| ------ | ------ |
| sibert_base | F1:87.521(88.628) EM:67.381(69.152) |
| sialbert_middle | F1:87.6956(87.878) EM:67.897(68.624) |
| 哈工大讯飞 roberta_wwm_ext_base | F1:87.521(88.628) EM:67.381(69.152) |
| brightmart roberta_middle | F1:86.841(87.242) EM:67.195(68.313) |
| brightmart roberta_large | **F1:88.608(89.431) EM:69.935(72.538)** |
#### DRCD(阅读理解)
| models | DEV |
| ------ | ------ |
| siBert_base | F1:93.343(93.524) EM:87.968(88.28) |
| siALBert_middle | F1:93.865(93.975) EM:88.723(88.961) |
| 哈工大讯飞 roberta_wwm_ext_base | F1:94.257(94.48) EM:89.291(89.642) |
| brightmart roberta_large | **F1:94.933(95.057) EM:90.113(90.238)** |
#### CJRC(带有yes,no,unkown的阅读理解)
| models | DEV |
| ------ | ------ |
| siBert_base | F1:80.714(81.14) EM:64.44(65.04) |
| siALBert_middle | F1:80.9838(81.299) EM:63.796(64.202) |
| 哈工大讯飞 roberta_wwm_ext_base | F1:81.510(81.684) EM:64.924(65.574) |
| brightmart roberta_large | F1:80.16(80.475) EM:65.249(66.133) |
阅读理解测试对比数据来源<a href="https://github.com/ewrfcas/bert_cn_finetune">bert_cn_finetune</a>
? 处地方,将会很快更新到具体的值
RoBERTa中文版 Chinese Version
-------------------------------------------------
本项目所指的中文预训练RoBERTa模型只指按照RoBERTa论文主要精神训练的模型。包括:
1、数据生成方式和任务改进:取消下一个句子预测,并且数据连续从一个文档中获得(见:Model Input Format and Next Sentence Prediction,DOC-SENTENCES)
2、更大更多样性的数据:使用30G中文训练,包含3亿个句子,100亿个字(即token)。由新闻、社区讨论、多个百科,包罗万象,覆盖数十万个主题,
所以数据具有多样性(为了更有多样性,