10月中旬,谷歌AI团队新发布的BERT模型,在机器阅读理解顶级水平测试SQuAD1.1中表现出惊人的成绩:两个衡量指标上超越人类,并且还在11种不同NLP测试中创出最佳成绩,奠基新的NLP里程碑。后续,谷歌开源了该项目,并且公布了包括中文字向量预训练模型等在大规模数据上预训练过的通用模型。随后,陆续有AI业界同仁尝试在不同任务中应用BERT预训练模型,其中有团队在AI Challenger阅读理解赛道中取得了最好成绩。
开源项目公布之前,我所在的实在智能RPA学院对BERT论文进行了学习和讨论,并根据论文思想实现了简化版、预训练的TextCNN模型。在预训练的中文BERT模型公布不久,作者写了一个BERT中文预训练模型的简短教程,并将模型成功部署到我们正在推进的“AI赋能法律”相关系统。
最近,我们结合智能法律评估工作实践对pre-train和fine-tune不同模式下BERT模型与经典模型的效果差异进行了对比,发现即使仅训练有限轮次,预训练过的BERT模型也能取得很不错的效果。本文将具体介绍上述实践和探索,同时也将介绍在谷歌TPU上训练定制版BERT模型的过程。
关键词:BERT; pre-train; fine-tuning; performance; sequence length; TPU; multi-label; on-line prediction
- 模型效果对比
我们使用司法领域的公开数据,在10万份民事判决书上进行训练和效果对比。输入包括原告诉求请求、事实描述或法院认定的事实以及特定案由下的诉求类型;输出是“0,1”。“1”代表支持原告,“0”代表不支持原告。训练数据包含11个民事大案由,55个诉求类型。所有诉求类型的数据都经过采样,支持与否比例为1比1。虽已预先过滤了一部分缺失证据、诉讼时效存在问题等影响结果预测的数据,但数据集中仍存在不少噪音。字符级别文本平均长度为420。报告的准确率,指验证集上的准确率。数据集:100k, 55个类别, 二元分类,验证集上准确率,类别平衡。
3L代表3层网络;sent-piar代表sentence pairs即句子对任务;seq-512代表sequence length即最大句子长度为512;batch32表示batch size即批次大小为32;epoch10代表训练10轮次。其他简写,表示类似意思。
从训练结果来看,有以下初步结论:
(1). 在同等条件下,使用句子对 (sent-pair)形式和单纯的文档分类(classify)的形式,来做本任务,效果相差不显著;
(2).