导读
恒星标注平台是58为助力算法模型孵化以及各业务线数据标注需求,自研的数据标注SaaS平台,平台包含任务中心、数据管理、配置中心、标注中心等产品功能模块。平台建设目标聚焦于GUI工作台易用性、标注质量以及标注提效。目前平台已支持24种标注方式,支撑集团各业务产生500余万标注样本数据。本文从标注视角出发,根据58恒星标注平台从零到一的建设经历,试图对数据标注的平台化建设提供一些见解。
背景
随着当今互联网数据化、智能化的大环境下,众多企业为高效的沉淀业务能力、实现产品目标,均逐步加速企业智能化的机器学习平台型产品建设。
机器学习从算法能力的生产到应用,通常会经历数据标注、模型训练、模型部署的阶段,随着模型的验证、升级,逐渐形成一个闭环的生产迭代过程。正所谓“巧妇难为无米之炊”,对于有监督、半监督学习训练需要伴随大量样本数据支撑,并且样本数据的数量、质量将直接影响算法模型的准确性。因此如何高效的获得高质量样本成为机器学习领域的一个命题。
在上述背景下,当今AI领域相继涌现出数据标注平台、标注工具来解决样本数据问题,并形成相关产业,使算法领域更专注于算法本身的研究,极大降低的该行业的工程化研发成本。当然随着数据标注的平台化发展,标注不仅赋能于机器学习领域,还应用于3D建模,业务标注等场景。
机器学习模型迭代过程
演进
早期的标注工作一般由人工线下完成,这种方式需要标注人员去查找相关的标注工具,如:excel、labelMe、labelImage等,且协议不统一,还需要大量人力去整理素材、样本,并自己实现交付协议兼容,同时对标注质量也无法保证;无论从人工成本、团队运营、交付质量和效率都存在很多弊端,在此背景下,我们开始考虑数据标注平台的建设。
建设思路
一个数据标注平台从核心建模来说,实际上就是通过数据标注的“加工”,完成素材到样本的转换。
■素材:待标注的原始数据;
■样本:经过打标后产生的数据;
■数据标注:由人工对素材识别、判断并打上标签的过程。
数据标注建模
从业务流程来说,行业内基本已经形成一套标准化的流程规范,以这个流程作为内核,不同的产品依据自身业务需要以及平台的迭代优化形成自身的special功能扩展。恒星标注平台的业务流程抽象如下图所示:
数据标注流程
这个过程其实并不难,但对于一个的标注系统而言,我们更应该从它的标注能力、易用性、低成本、高质量角度做设计和建设,即“如何尽可能的降低标注人力?”和“如何保证标注的准确?”这才是标注平台本身的难点和痛点。
平台建设
恒星数据标注平台整体的技术设计思路从数据标注平台的业务定位出发,依据素材库、数据标注、样本库为核心建模,构建出一套基础高效、低成本、通用且具有强扩展性的标注平台。
恒星标注平台技术架构
架构设计仍以素材、样本以及数据标注为三大核心概念,由任务工作流引擎支撑整个业务流程。
数据标注是实现多种标注能力以及易用性、低人力成本的核心模块;对于素材库和样本库,其负责平台核心数据存储、对接、交付;管理模块和数据统计负责平台基础配置、质量管理和标注统计。
5.1 数据标注
5.1.1 标注能力建设数据标注
评价标注平台的功能性是否完备,标注能力是一项很重要的标准,即标注方式的丰富度。一般来说对于标注方式不会在平台设计阶段就考虑的大而全,这是不现实的,它一定是随着标注业务形态的增长,不断的拓展丰富。因此,对于系统架构设计重要的考量点之一就是标注方式的可扩展性,扩展性架构设计依赖于设计初期对标注方式的调研归纳和抽象。
标注方式决定着生成样本的数据协议,而数据协议直接决定着样本的使用。在设计阶段我们调研了行业内各标注平台、以及标注团队的工作中所涉及到的标注方式,我们这些标注方式归纳为分类、描述、比对、目标检测、实体检测、目标追踪几大类型,并依据文本、图像、音频、视频进行划分。
下面对一些常见的标注方式进行说明:
文本:文本类标注常用于自然语言处理(NLP)方向,例如语义理解、分词模型、知识图谱等。
●实体标注:对文中的实体或特征进行标注;也可用于对关键词、词性、情感等训练方向采用实体标注方式。
●实体关系:实体关系用于标记并构建文中实体之间的关系网络,常用于知识图谱;实体关系标注需要预先定义实体、关系和属性,标注过程一般需要进行实体识别、关系抽取、实体统一、指代消解。
图像:图像标注主要作用于计算机视觉,应用为广泛。
●图像分类:对图像定性并打上标签,一般包括二分类标注和多分类标注,二分类标注一般表现为对标注目标进行是或否的二分类判断。
●目标检测:标记图像中目标的坐标位置并打标签。
●图像分割:一般包含语义分割、实例分割和全景分割,对图像中的目标位置、数量、实体名称打标,常用于分割类算法。
●点云标注:对激光雷达采集的三维图像数据进行标注,服务于计算机视觉与无人驾驶等模型使用,常用的标记方法包括点云目标检测、点云分割、3D点云标注、2D3D融合标注。
音频:音频类标注常用于人工智能语音、聊天机器人、ASR等方向
●语音转写:音频转文本(ASR)。
●语音切分:对音频对话切分,并标记出对应角色和内容。
视频:视频类标注目前也越来越广泛,如信息安全、自动驾驶能领域。
●目标追踪:对视频逐帧进行目标检测或图像分割标注,常用于模型对连续帧内容的实体和行为识别。
不同标注方式,在标注工作中,使用的工具和对素材处理的方式可能各不相同,这就需要在工作台搭建时要针对不同的标注方式,配置不同的工具组合,因此,需要构建易用、可配置化的工作台以满足不同的标注要求。
5.1.2 工作台易用性设计
数据标注平台的易用性主要体现在标注工作台,人性化的工作台布局加上丰富的标注工具,无疑是提升标注效率和标注质量的助力。
标注工作台即要支持丰富的标注方式,又想实现人性化、灵活性,直观设计方案就是配置化,配置化的一大优势在于无需系统升级,即可利用组件库、工具库、标签库配置出满足不同标注目标的工作台。
恒星标注平台可由人工自定义其工作台布局,并从工具库中挑选所需的标注工具,从而构建出当下所需的工作台布局,且对于工作台每个工具、按钮、标签都可以自定义快捷键。
5.1.3 AI助力的智能标注
(1)全自动标注
(2)半自动标注
半自动标注则是对“小部分”素材先进行人工标注,产生模型训练集并使用有监督学习模型或半监督学习模型训练,然后将剩余素材由模型完成标注。
AI标注的核心在于标注模型的预测效果,而其决定因素是训练集的提取,即人工标注部分,一般来说有两种提取方式,随机抽取和“有策略的找出特征丰富、鲜明的素材”作为训练集,显然后者更符合标注场景要求。因此,在半自动标注过中,如何找出所谓“高价值”、“难区分”的素材给予人工标注是这一个命题的核心。主动学习(Active Learning)则是业界来解决这一问题业研究方向。
5.1.4 业务助力的数据标注
从技术角度,标注数据一般又是结构化或半结构化数据,同时又由人去“加工”,对于存储的选型和读写性能要求比较严格,恒星标注平台的存储设计如下:
●对象存储:标注平台主流媒体类型包括文本、图片、音频、视频,当前对于媒体类型的存储必然会依赖于对象存储。在选型过程中需要关注的点包括存储上限、性能(CDN)、内外网隔离(内网公有读私有写,外网私有读私有写)等,恒星使用58自研的WOS作为对象存储。
●大数据存储:包括素材和样本基本信息、资源url、Schema信息(尺寸、大小、名称、分辨率),对于数据存储要求数据库具备较好的读写性能,即意味着GUI页面的响应速度。对于样本,除原始数据外还包括标签数据,复杂的标注方式或复杂的素材,其标签数据也是很大的。因此,对于素材和样本的存储,采用列式数据库是比较合适的方案,如HBase,此类数据库没有Schema信息,无需预分配空间,存储利用率更高。
●消息队列:恒星标注平台使用消息队列,一般用来做异步化、非阻塞型业务逻辑的处理,例如系统级数据对接、异步资源下载等等。
数据导入导出形式除依托于产品功能的人工上传、下载外,还包括依托于系统级的数据对接形式;数据可对接的能力,会极大的降低系统间的“沟通”成本,尤其对于集团内不同业务与标注平台的数据采集、交付和本地化标注与数据中心对接等场景,这就要求平台支持“多租户”的对接能力和数据权限隔离。
系统级对接要求由标注平台向使用方授权,数据传输的安全性是系统级对接的注意点,对于应用于内容安全类模型训练的样本数据要避免外泄。系统对接的形式包括技术手段很多典型的包括消息队列、API接口等。
样本交付:
对于样本数据,应具备一套规范化存储协议,可以帮助平台更好的沉淀标准化样本,产生平台衍生价值,这一点我们可以借鉴一些行业数据集,例如MicroSoft的COCO数据集、Object365等。而对于多租户系统来说,各租户往往对样本协议的要求并不是统一的,这时要求标注平台在交付时承担各组户的协议兼容,但平台自身应该有一套核心的标准化协议。
一般来说,一套完整的样本协议需由:样本基本信息、元数据、标注方式、标签、坐标、绘制形状等部分构成,当然不同的标注方式会存在差异,下面是以目标检测为例的协议案例:
{
"pattern":"标注方式",
"basicinfo":{
"name":"样本文件名称",
"url":"样本下载地址",
"mediatype":"文本/图像/音频/视频/行为/点云",
"audittype":"机器标注/人工标注"
},
"metadata":{
"format":"png",
"width":600,
"height":450,
"depth":24,
"resolution":"600*450",
"size":97616
},
"result":[
{
"ptype":"rectangle",
"postion":[[45,97],[136,26]],
"contenttype":1,
"audittype":"机器标注/人工标注",
"label":"car",,
"rate":.89,
"evidence":{
"content":"选中内容"
}
},
{
"ptype":"rectangle",
"postion":[[45,97],[136,26]],
"contenttype":1,
"audittype":"机器标注/人工标注",
"label":123,
"rate":.89,
"evidence":{
"content":"选中内容"
}
}
],
"version":"v1"
}
5.3 质量和人效管理
5.3.1 标注质检
标注质量是标注平台另一个重要的命题,对于机器学习来说样本输出质量直接决定着算法模型的准确率和召回率。通常标注质量管理是标注平台相对独立的一个模块,该模块主要实时评估标注产生的数据效果和对产生的样本数据“回捞”修正。
针对标注结果的质检一般需要多轮,原因在于其一是多次检查以保证样本的准确性;其二是可以实时感知标注人员的标注水平和质量。对于不合格的标注结果予修改或驳回,对于不合格的标注人员及时终止其任务并重新培训上岗。
恒星标注平台质量管理支持实时质检和抽检两种方式。
●实时质检:标注完成后依据质检比例将命中数据推送到实时质检任务池,质检通过的允许数据产生样本;实时质检的优势在于能力实时监控标注人员的当前标注准确率,以便于管理人员及时终止并培训。
●非实时质检(抽检):目的在于对已经产生且还未交付的样本数据进行抽取复检并修改,进一步保证样本的质量。
质检范围(条件):
●全量质检:将标注完成数据全部进行质检审核。
●抽量质检:按照一定条件和比例抽取“样本”进行质检
人员:按照标注人员配置抽检比例。
时间范围:按照时间范围筛选样本配置抽检比例。
标签:按照标签配置抽检比例。
质检方法:
●一次质检:进行一次质检后,推送样本。
●二次质检:提供两轮质检,对标注和一轮质检修改不一致情况进行复查。
5.3.2 人效管理
相较于线下标注,人效管理也是平台化建设的一大优势,管理员可以直观的依据数据大盘评估标注人效。人效管理统计维度和统计指标需要在设计初期就考虑完整,并形成相关业务数据埋点,常见的统计指标包括:标注任务量,任务框选量、标注时长、准确率、驳回率的等。
数据统计的核心在于数仓建设和BI指标,因不同的标注团队对于人效管理的方式、工作量统计、计费方式各有不同,本模块设计仅供参考。
数据标注平台除上述建设以外,还会依托用户账户体系、用户权限、数据权限以及风控、数据安全性等功能的建设,这部分完全可以独立于数据标注本身去设计,这样既能保证标注平台核心设计的低耦合和可扩展性,又能更容易的实现本地化部署改造。
本地化&私有化建设
通过Java虚拟机工具接口(JVMTI),用C++生成动态链接库(DLL)的方式,给你指定的二进制的class文件进行加密。在jar启动时,同样地,加载解密DLL完成解密并启动。
平台化建设总结
想要用户能端到端的使用平台,并完成他们的业务需求,还是需要一个漫长的过程。相对来说,至上而下的推动实则更为有效,总有一批人要先来体验、先来淌坑,给出建议和反馈,这样这个平台才会越来越好,朝好的地方发展;而不是一开始上来就堆功能,什么炫酷搞什么、大而全。但是在用户使用上,易用性和稳定性并不好,或者是并不能解决用户的需求和难点,那这种平台是活不下去的。