基于BML平台快速标注文本数据集
- 一、数据集介绍
- 二、文本智能标注原理
- 1.基于预训练模型生成「教师模型」
- 2.将「教师模型」的能力教给「学生模型」
- 三、启动智能标注获得智能标注数据
- 1.准备工作
- 2.创建文本智能标注任务
- 3.完成标注并查看标注数据
- 4.优化智能标注
- 5.再次启动智能标注
- 四、总结与升华
昨晚看到GT_老张发的一篇博客——BML全功能AI开发平台完成昆虫目标检测模型的全流程笔记,拜读全文之后,我发现老张用的BML(Baidu Machine Learning)平台是最近新出的平台,看起来功能很强大(实际上确实也很强大),当然要体验一下啦!
一、数据集介绍
我的数据集源自Kaggle,名称叫做Emotions dataset for NLP,是一个文本情绪分析的数据集,其数据格式是这样的:
data;label
就像下面这样,一共有20000条数据数据,其中有16000条训练数据、2000条测试数据和2000条验证数据:
为了使用BML平台的智能标注功能,我把训练集的标签删除了,保留验证集的标签用于数据标注。
需要注意的是:
- 数据集中已标注数据量超过600条
- 每个标注标签的数据量超过50条
- 未标注数据的数据量超过600条
二、文本智能标注原理
训练模型过程中,通常需要经历数据集准备(标注)、任务网络配置开发、模型的训练和部署等重要过程。很多时候,模型训练在数据准备阶段会遇到数据量不足的问题,使模型开发过程迟迟不能启动。
BML平台推出的文本智能标注功能,目标是通过少量的已标注数据样本,来获得大规模的智能标注数据,通过减少人工逐一校验的工作,使用智能标注数据来训练小型网络模型,以获得效果和性能更优的模型预测服务。
使用文本智能标注数据来训练模型的原理,有点像当前较为流行的模型蒸馏。
1.基于预训练模型生成「教师模型」
BML平台提供的文本智能标注,是使用了当前中文模型效果最好的预训练模型ERNIE2.0。
完成对少量人工标注数据学习后,可以对未标注数据进行预测,从而获得智能标注数据。
优化智能标注的过程中,系统会根据算法挑选出优先标注样本。用户对优先校验样本进行人工校验后,系统又会使用此部分样本重新训练模型,从而获得更精准的智能标注数据。
在使用上,一般重复这个过程1到2遍即可把全部数据给标注好。
2.将「教师模型」的能力教给「学生模型」
ERNIE完成对人工标注数据学习后,生成的模型称之为「教师模型」,通过预测的大规模无监督语料,把「教师模型」的泛化能力通过模型训练教给「学生模型」。如下图所示:
所以,可以使用智能标注数据,在训练任务配置中,不使用ERNIE预训练模型。通过选择小型的网络,即可训练出效果逼近「教师模型」ERNIE Large的模型。
三、启动智能标注获得智能标注数据
1.准备工作
智能标注任务,是对一个数据集中的未标注数据进行智能标注。点击左侧“数据总览”,在出来的界面中点击“创建数据集”,并上传一定量的已标注数据和未标注数据。
找到刚刚创建好的数据集,点击“导入”:
我首先导入了16000条未标注的数据:
去重后,只有15969条数据,接着导入2000条已标注数据:
最终导入了1998条已标注数据,此时已标注与未标注数据的比例是1:10
2.创建文本智能标注任务
点击“标注”进入如下界面:
点击“开启智能标注”,此时平台将会根据已标注数据训练一个教师模型,然后用教师模型标注未标注数据。
此时可以在“智能标注”找到刚刚提交的标注任务:
- 预学习阶段耗时约30-60分钟不等,根据数据集中已标注数据的量而定。
- 智能标注阶段的耗时跟提交的未标注数据量正相关,即数据量越大,耗时将越长
我自己的数据集在做智能标注时花了大概半个小时的时间,这段时间可以去忙别的,喝口茶。(感觉就像是雇了一个机器员工,让它帮你标注数据,还不用给钱!)
注意:
如果已标注数据少于600条,或每个标注标签的数据量未超过50条,抑或是未标注数据的数据量未超过600条,则会出现错误提示
3.完成标注并查看标注数据
标注完成后,点击“查看结果”,即可看到智能标注的概况:
点击“立即查看”,跳转到如下界面,:
此时数据集被分为「无标注信息」、「有标注信息(人工)」和「有标注信息(智能)」三个标签。
完成智能标注的数据,将放置在「有标注信息(智能)」中, 可以对智能标注数据进行人工校验,完成校验的数据,将被转移到「有标注信息(人工)」,代表此样本确认无误。
也可以在「有标注信息(智能)」中,查看本次智能标注的准确率,以及智能标注数据的总样本数。
4.优化智能标注
如果对智能标注的准确率不满意,可以点击「优化智能标注效果」,来对全部的智能标注数据进行优化。
点击“开始校验”即可进入标注界面:
标注了超过100条数据以后,可以点击“启动效果提升”
此时系统将会根据刚刚新标注的数据继续训练「教师模型」:
5.再次启动智能标注
此时,可以继续在此数据集下,增加「未标注」数据,并对新增的「未标注」数据进行智能标注。
点击“再次启动”即可再次开启智能标注。此时,智能标注的数据将比「优化智能标注」前质量更高。最后,完成标注后可以查看数据集的各个标签以及每个标签的数据:
整个流程做下来只花了大概1个小时的时间,这个速度还是非常快的!把之前要人工连续干24小时的工作直接压缩到了1个小时,真的非常高效!
四、总结与升华
总的来说,智能标注这个功能我是非常喜欢的,毕竟可以把更多的时间用在模型开发而不是数据标注上(我不是很喜欢做重复的工作,数据标注真的费时又费力,标注一天,人都要傻了)。
使用BML平台的智能标注功能,只需要少量的标注数据,即可给大量的未标注数据做标注,准确且省时,我觉得这才是真正的人工智能!