引用苏神博客中的话:“事实上,不管是tensorflow还是pytorch,不管是CLUE还是GLUE,笔者认为能找到的baseline代码,都很难称得上人性化,试图去理解它们是一件相当痛苦的事情。” (附上苏神的中文CLUE基准代码)
本人也是感同身受,既然有了中文CLUE基准代码,那么英文GLUE基准代码也得搞一个,所以决定基于bert4keras实现一套GLUE的baseline。经过测试,基本上复现了Huggingface的基准成绩,并且大多数任务还更优。最重要的是,所有代码尽量保持了清晰易读的特点(bert4keras的最大特点)。
GLUE benchmark: General Language Understanding Evaluation
- val set:
Task | Metric | BERT-base* | BERT-base# | ELECTRA-base# | ELECTRA-large# |
---|---|---|---|---|---|
CoLA | Matthews corr | 56.53 | 61.53 | 65.63 | 68.99 |
SST-2 | Accuracy | 92.32 | 92.66 | 94.04 | 94.95 |
MRPC | F1/Accuracy | 88.85/84.07 | 88.53/84.17 | 90.83/87.71 | 91.78/89.16 |
STS-B | Pearson/Spearman corr | 88.64/88.48 | 89.20/88.77 | 90.97/90.75 | 91.13/91.25 |
QQP | Accuracy/F1 | 90.71/87.49 | 90.81/87.66 | 91.23/88.33 | 92.20/89.70 |
MNLI | M acc/MisM acc | 83.91/84.10 | 84.02/84.24 | 88.32/88.16 | 91.10/91.15 |
QNLI | Accuracy | 90.66 | 91.42 | 92.11 | 93.74 |
RTE | Accuracy | 65.70 | 69.68 | 81.23 | 87.73 |
WNLI | Accuracy | 56.34 | 56.34 | 64.79 | 84.51 |
* Huggingface # Our
- test set:
- 下载GLUE数据集和bert预训练的权重(这里使用的是Google原版bert)到指定文件夹;
- 例如:训练CoLA,直接运行
python CoLA.py
。
- 软件:bert4keras>=0.10.8, tensorflow = 1.15.0, keras = 2.3.1;
- 硬件:bert-base和electra-base结果是用RTX 2080(12G)跑出来的,electra-large是用RTX 3090 (24G),注意3090显卡不支持Google的tf 1.x系列,需使用Nvidia的tf.15。安装教程可参考:https://www.bilibili.com/read/cv9162965/
- 2021.11.28,增加code的test set的预测功能,并且上传到GLUE网站进行评估,结果已公开。
- 2021.12.07,增加ELECTRA-base和ELECTRA-large的dev set结果(代码暂时未公开)。
- 增加SuperGLUE基准代码 https://github.com/nishiwen1214/SuperGLUE-bert4keras