Skip to content

nishiwen1214/GLUE-bert4keras

Repository files navigation

基于bert4keras的GLUE基准代码

引用苏神博客中的话:“事实上,不管是tensorflow还是pytorch,不管是CLUE还是GLUE,笔者认为能找到的baseline代码,都很难称得上人性化,试图去理解它们是一件相当痛苦的事情。” (附上苏神的中文CLUE基准代码)

本人也是感同身受,既然有了中文CLUE基准代码,那么英文GLUE基准代码也得搞一个,所以决定基于bert4keras实现一套GLUE的baseline。经过测试,基本上复现了Huggingface的基准成绩,并且大多数任务还更优。最重要的是,所有代码尽量保持了清晰易读的特点(bert4keras的最大特点)。

GLUE benchmark: General Language Understanding Evaluation

⭐️欢迎star和提问~

实验结果:

  • 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:

image

image

使用

  • 下载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