编辑导语:在很多公司都会有标注系统,标注系统属于一种辅助型产品,我们对特定的对象进行标注;标注系统在使用中要注重它的稳定性等,在设计过程中也有很多注意的点;本文作者分享了关于从0到1快速搭建标注系统的方法,我们一起来看一下。
一、明确标注目的
绝大部分的标注系统,是一种辅助型的产品;按照一定的标注标准,由人工完成标注对象的标注,为业务系统、模型系统、数据系统等提供支持服务。
目前,市面上有不少提供标注服务的公司,但由于标注会涉及数据敏感、标注内容归属、标注质量等问题,不少有一定实力的公司,都会自行定制研发所需的产品,确保标注流程和结果处于可控状态。
在进行标注系统的搭建之前,我们需要明确标注的目的所在:
- 标注结果的使用方是谁?是为业务服务,还是模型训练使用?如果标注结果满足要求,可以为使用方带来怎样的效果?
- 是否有强烈的需求,要定制开发标注系统?公司内部其他标注系统是否可满足,用excel等工具进行线下标注是否可满足,以及不满足的点是什么?
- 标注的类型是什么?是视频、图片、文字、音频?是分类标注(通常是可枚举的分类,标注对象属于某一类或多累,比如新闻分类中的时政、财经、体育、社会等),还是识别性标注(通常是不可枚举得,比如,要识别出一个视频中人物的性别、年龄范围、胖瘦等)。
二、标注筹备
明确了为什么要开发标注产品以后,接下来需要进入标注服务的筹划中:
1)明确标注标准,标注标准是标注工作开展的前提;它不仅关系标注人员手工标注的效率、质量,还影响标注系统的搭建。这里对标注标准的最重要的要求就是,标注标准是准确的、可执行的。
2)筹建标注团队,标注团队分为2类:
- 人工标注团队:他们是标注系统的直接使用者,对整个标注服务至关重要;因此,在筹划标注团队的时候,要选择认真仔细、有耐性的人员;在确定好标注标准后,还要对人工标注团队进行培训,并进行充分的沟通讨论,防止标准设定人员与人工标注人员对于标准的理解有差,同时将标注效率、标注质量作为人工标注人员的考核依据;此外,还应该根据情况对人工标注团队,进行标注员与质检员的角色划分,前者负责标注工作,后者负责标注结果的抽查工作。
- 产品开发团队:与大部分的产品团队配置类似,产品、前后端、测试都不能少;最好可以把标注系统的使用方也拉进来,比如业务方产品、模型算法工程师等,听取他们对于标注标准、系统功能和流程的建议。
3)了解标注需求量、预估日均标注量;这里主要是来评估标注量是否可以满足需求量,以及标注结果的数据存储等。
三、标注系统设计
一个基本的标注系统流程,应该包含以下几个模块:
按照箭头所示的流程:
- 原始语料,进入数据库。
- 标注系统从语料数据库中,读取未标注的语料。
- 标注完成的语料,进入质量评估模块。
- 质量评估合格后,进入语料数据库,作为已标注语料。
- 已标注的语料,同步给使用方进行使用。
下面对每一个模块进行详解:
1. 语料数据模块
有几个功能:
- 语料数据模块,用来储存语料数据;区分已标注、未标注。
- 与系统外部对接,同步原始语料,输出已标注语料。
2. 标注系统模块
有以下子模块:
- 任务分配:这里需要有一个语料任务分配机制,用来将语料分配给不同的标注员、质检员;这个分配机制可以是手动的,也可以是自动的,根据具体情况,来具体实现。
- 标准管理:是对标注标准进行管理的地方;主要包含2个功能:一是,对标注标准文档进行管理和查阅,以方便标注人员在标注模棱两可时快速获取正确标准进行标注;二是,对标注的类型、类别、识别性标注辅助信息的配置功能,比如,针对新闻内容的分类标注,有时政、财经、社会、体育四个类别,需要加第5个类别房产,就需要用到标准管理模块。
- 语料标注:这是实现标注人员的核心标注界面。根据业务具体情况,可以是单条标注,也可以是列表式标注后统一提交等;需要说明的是,标注界面的展示信息要尽可能的完整,这样标注员才能尽可能准确标注。
- 业务管理:由于标注系统不可能是服务于单一业务的,尤其是在大公司内部,很多时候会接入很多标注业务;这个时候,就需要对业务进行管理,确认业务的标注目的、类型、标注量等,以及相关的申请、审核、权限工作。
3. 质量评估模块
我们对标注人员的效果衡量,通常从数量和质量两个维度。数量比如容易,就是简单的标注数量统计。而质量的评估会比较复杂,有两种方式:
1)手动评估:这里是由质检员对标注员的标注结果进行抽查,来确定标注员的标注质量;在抽查时,系统应提供给质检员对标注员的数量抽取和比例抽取两种基础抽查手段。
2)自动评估:由于面向的业务千差万别,自动评估方式也应该各不相同的;对于类别标注,可以采取多人投票的形式,假设我们把1条语料,分配给A、B、C3个人进行标注,如果A和B标注的结果一致,与C不一致,那么我们按照少数服从多数的原则,默认A、B的结果是正确的,C是错误的;通过这种随机抽取一定量的语料,分配给多人投票来进行自动评估,在一定程度上,是可以比较好的正确评估标注人员的质量。
4. 其他模块
- 数据统计:用来统计标注量、标注质量、标注类别分布等情况;由于标注团队的规模一般都比较大,在10人以上,且标注团队关注的数据,与产品人员不尽相同,这里也需要定制化的开发一些用于评估标注员绩效考核的模块。
- 角色权限:对标注系统进行权限管理的地方。角色通常有管理员、质检员、标注员等。
- 邮件报告:每日或每周通过邮件的形式,来获取标注情况的报告。
以上仅是标注系统的简单架构和说明。在实际的标注系统搭建过程中,还应该根据实际情况,进行调整。
四、实际上线使用
标注系统上线以后,应该重点关注:
- 标注的质量、效率情况:一方面,了解标注人员的标注情况;另一方面需要对标注的成本、投入产出比有所预估,避免投入了大量标注人力进入,得到的结果却是不尽人意。
- 对模型训练、业务的效果提升:标注系统搭建的初衷就是来提升业务效果、提高模型的各项指标。系统上线后,要紧紧关注系统的使用效果,要多向业务贴合,避免沦为彻彻底底的工具型产品。
五、值得注意的点
文章结尾的地方,我来谈谈标注系统中值得注意的点:
首先,要保证标注标准的稳定性;因为标注系统一旦上线开始运行,如果标注标准发生变更,前期的所有标注工作,都有可能推倒重来,造成人力的浪费。
其次,保证标注的质量和效率;要把质量和效率,作为标注系统后面迭代的优化目标,但很多时候标注的质量和效率,就好像是模型评判的准确率、召回率一样,难以双高;这时候就要看业务的重点关注是什么了,是否对质量非常敏感,是否可以牺牲部分质量,来推进标注效率。
最后,标注系统也可以推陈出新,与业务紧密结合;标注属于典型的辅助型工具产品,在很多公司都属于一次开发,日后就基本不再迭代优化的产品;这样其实是非常浪费的,因为标注系统不仅有一个系统产品,还有海量的标注语料和人力;在某些场景下,可以充分利用这些语料、人力,去开辟一些与业务结合的方向出来。