小数据福音!BERT在极小数据下带来显著提升的开源实现

本文展示了BERT模型在极小数据集上的显著效果,特别是在文本多分类任务中,对比了基础版BERT与ULMFiT,结果显示BERT在1000至12000条数据上的分类准确率大幅提升。实验表明,即使在12000条样本上,数据不平衡可能影响BERT的性能。提供了BERT在Windows环境下实现文本25分类任务的教程,包括下载模型、数据准备和代码调整等步骤。
摘要由CSDN通过智能技术生成

640


作者丨金立达

单位丨笨鸟社交 AI Lab

学校丨英国帝国理工学院

研究方向丨自然语言处理、知识图谱


标注数据,可以说是 AI 模型训练里最艰巨的一项工作了。自然语言处理的数据标注更是需要投入大量人力。相对计算机视觉的图像标注,文本的标注通常没有准确的标准答案,对句子理解也是因人而异,让这项工作更是难上加难。 


但是,谷歌最近发布的 BERT [1] 大大地解决了这个问题!根据我们的实验,BERT 在文本多分类的任务中,能在极小的数据下带来显著的分类准确率提升。并且,实验主要对比的是仅仅 5 个月前发布的 State-of-the-Art 语言模型迁移学习模型 – ULMFiT [2],结果有着明显的提升。我们先看结果:


640

 图1. 实验结果对比,BERT在极少的数据集上表现非常出色


从上图我们可以看出,在不同的数据集中,BERT 都有非常出色的表现。我们用的实验数据分为 1000、 6700 和 12000 条,并且各自包含了测试数据,训练测试分割为 80%-20%。数据集从多个网页来源获得,并经过了一系列的分类映射。但 Noisy 数据集带有较为显著的噪音,抽样统计显示噪音比例在 20% 左右。


实验对比了几个模型,从最基础的卷积网络作为 Baseline,到卷积网络加上传统的词向量 Glove embedding, 然后是 ULMFiTBERT。为了防止过拟合,CNN 与 CNN+Glove 模型训练时加入了 Early stopping。


值得注意的是,这里用的 BERT 模型均为基础版本,“BERT-Base, Uncased”,12 层,110M 参数,对比的是 ULMFiT 调整过的最优化参数。可见 BERT 在此任务中的强大。 


然而,在 12000 条样本的数据集上,BERT 的结果相对 6700 条并没有显著的提升。数据分类不平衡可能是导致此结果的一大因素。



BERT 开源的多个版本的模型:


640

 图2. 开源的多个版本的BERT模型


接下来,我们直奔主题 – 如何在自己的机器上实现 BERT 的文本 25 分类任务。教程分为以下几部分:


  • 运行环境

  • 硬件配置

  • 下载模型

  • 输入数据准备

  • 实现细节



640


运行环境


TensorFlow 版本为 Windows 1.10.0 GPU,具体安装教程可以参考此链接:


https://www.tensorflow.org/install/pip?lang=python3


评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值