内容来源:Pony.ai & DataFun AI Talk

出品社区:DataFun

注:欢迎转载,转载请注明出处

本次分享内容提纲

  • 数据标注

  • 数据驱动开发

  • 数据驱动决策

前言

640.png

上图这是我加入小马智行之前的一个小故事。这不断的提醒我,人工智能需要有足够的数据量,并且充分发挥这些数据的潜能,是我们作为人工智能公司的一个非常重要的核心竞争力。

数据的作用

1. 数据驱动开发:提到数据的作用我们首先会想到,数据驱动开发,包括感知领域、行为预测领域、决策领域,需要有数据(标注好的数据)来作为我们模型训练的粮食和作为系统准确度评测的依据。

2. 数据驱动决策:尤其是优先级的决策,作为创业公司我们现在想做的事情,远远多于我们的人力,如何把人力用在我们需要优先解决的问题上,不管在行车安全性、乘坐舒适性、车辆的运营等等,每个方面都有更重要的问题,或者次要一点的问题,需要做优先级的决策,通过对于数据的分析和处理,拿出一些有效的决策。

3. 展现公司实力:通过对数据的分析,展示出来的结果是可以展示公司实力的。

4. 满足监管要求:数据的保存、处理、分析也是为了满足监管的要求。

数据标注

在讲数据驱动开发和决策前,先分享下关于数据标注的一些体会。

1. 评价指标

640.png

对于数据标注来说,它的评价指标有:

① 团队规模:只有你有足够大的团队,你才能在单位时间内标注出你所需要的数量的数据。

② 效率和成本:二者间的关系像是硬币的正反两面,效率是指单个人单位时间的产出量,成本是指单位产出的人力、设备、场地开销。

③ 质量:标注的准确度,比如标注一个激光点云里障碍物的尺寸、位置、朝向的准确度,又比如预测下一步行为的准确度。

这是大家通常所关注的三个方面,下面再讲下另外两个很重要的点:

① 能力多样性:能够处理各种不同种类的标注任务的能力,对地图来说我们需要标注车道线,对于感知来说我们需要标交通灯、障碍物,还有行为预测所需要的标注等。

② 标准灵活性:各种长尾场景(如雨点,汽车尾气等)的处理方式在不断的探索和迭代,随之标注的方式也在不断的探索和迭代,如何保证在这些快速探索和迭代过程中标注团队直接的高效沟通,不至于出现混乱,这需要花很多精力去做。

2. 团队构成

如下图所示:

640.png

3. 效率提升与成本控制

技术手段:

① 默认障碍物大小:第一帧可以通过一些人机交互的方式默认障碍物大小。

640.png

② 自动追踪外推:接下来,比如说标注员跳了一帧到第3帧,然后把车新的位置手工找到了,当再跳到第5帧的时候,系统就可以通过智能算法做到自动的追踪外推来找到车在第5帧中的新位置。

640.png

③ 自动插值:当车在第1帧、第2帧、第5帧的位置都标出来之后,系统可以做自动插值,自动找到车在第2帧,第4帧中的位置。

640.png

这里大概看下车的整个标注过程,以及人机交互方面的技巧,通过人工智能的方法提高标注员的效率。

相比于车载系统,智能标注系统所受的限制更少:

① 更多的可用信息:比如在尝试智能标注某一帧数据的时候,可以参考其后的数据帧里的信息;

② 更宽松的计算资源和时间限制。

需要注意的问题:

  • 对自动化结果的依赖,可能导致标注结果中产生系统性偏差

  • 如何发现和识别这些系统性偏差

  • 不同的自动化功能,产生系统性偏差的几率和程度各不相同

非技术手段:

① 薪酬激励

② 组织结构设计:这里最主要的是信息流动的结构,比如:具体的某些场景的某个细节如何通过标注平台的某些技巧去标注,如何促进这些技巧在标注团队内部被高效地总结、传播。

③ 各工段之间成本平衡:系统化的思考,我们标准的流程分为标注、质检、复检等多个工段,通过各工段的配合达到整体的优化,而不是单纯的只优化某个工段。

当然所有的非技术手段依赖于标注平台对于标注任务生命周期与标注团队架构、绩效的管理。

4. 系统能力

640.png

这里的一个核心目标是何如保证系统在大规模标注团队持续高频使用的条件下能保持稳定运行。这里举一个因为平台不稳定性产生的焦虑感,进而导致恶性循环的例子:

  • 保存失败:比如标注了5分钟,尝试保存的时候失败了。

  • 工作成果丢失的焦虑感

  • 更加频繁地尝试保存

  • 系统负载进一步提高

  • 系统稳定性和响应速度进一步下降

而且有些时候牵扯到外部合作商时,会进步一加剧一种情况:信任成本升高,降低长期合作意愿。

这对我们提出的要求是:

① 不断优化、提升效率

② 保持稳定、保障效率:最细微的稳定性问题都可能导致效率下降

③ 良好的工程实践:

  • 与线上系统隔离的完整测试环境,要求能较为准确地重现线上数据规模和数据分布

  • 分级发布流程

  • 线上系统监控及应急处理预案

关于提升效率的 Tips:

  • 开发:实现效率优化方案

  • 测量:在实现方案后,对标注员的操作流程和节奏进行记录和准确复现

  • 提升:在测量和观察中,发现可能的效率提升点,然后再循环到第一点。

数据驱动开发

640.png

上图是我们的一个愿景:先是利用机器智能,提高人工标注效率,然后利用人工标注结果,提升机器智能,最后再反过来利用机器智能,提高人工标注效率,达到一个交互促进的过程。

1. 充分利用海量标注数据

① 分布式训练和评测系统

② 人工标注的质量是有极限的,这需要我们:

  • 对标注数据的进一步处理与修正

  • 在设计评测指标时,要考虑到标注数据常见的质量问题。避免设计出的评测指标对于这些常见质量问题过于敏感。

2. 数据索引平台

数据在各个维度上的分布,例如:

  • 时段和天气

  • 道路等级

  • 障碍物种类

  • 住宅、商业区、工业区

当我有了索引平台,可以做的事情有:

① 标注任务筛选:基于分布上不平衡的维度,对路测原始数据的自动化初筛

② 训练数据选取:按照指定的维度检索访问标注数据

③ 评测数据集维护:难度和规模分级

数据驱动决策

1. 路测事件分析

640.png

  • 问题路段

  • 问题模块

  • 问题车辆

  • 问题时间段

  • 深入分析的工具

2. 数据展现方式

这里我们主要面临的挑战:

  • 准确性:给的数据要靠谱,有说服力

  • 实时性:每次采集的数据都可以实时更新

  • 易用性:从界面上可以直观的看到关键数据

这需要我们:

① 以用户为中心,依据关键决策流程,不断迭代与优化

② 根据不同受众和使用场景,提供差异化的视图

  • 运营团队周会

  • 公司高管 C-level

  • 团队 tech lead

③ 在每个视图中,提供最简洁实用的图表

  • 在默认视图中,提供刚刚好用户想要的信息,不多不少

  • 对于每一个数据点,提供进一步深入分析的工具

品略图书馆 http://www.pinlue.com/