雷锋网按,一直以来,uber 都没有公开谈过自家的自动驾驶平台架构。不久前,uber 终于通过一篇博文详细讲了 atg 部门在测试、验证和部署 ai 模型时用到的黑科技。
通过这篇文章,不但能进一步认识到自动驾驶汽车研发的复杂性,还能对 uber 的自动驾驶标准有更深的了解,毕竟后者是少有的经历过自动驾驶伤亡事故并进行了长时间深刻反思的公司。
据 uber 介绍,atg 部门工作流中最重要的部分是 vercd,这是一套专为 uber 旗下自动驾驶原型车研发的工具与微服务。它能追踪研发过程中不同代码库、数据集和 ai 模型的相关性,保证工作流从数据提取阶段开始,随后逐步过渡到数据验证,模型训练、评估与服务阶段。
“vercd 已经成了 uber atg 部门自动驾驶传感器训练数据的可靠来源。”uber 在博文中写道。“将工作流中的数据集转上 vercd 后,我们数据集刷新的频率已经提升了十倍有余,效率有了重大进步。对经常使用的数据集进行定期维护也加速了机器学习工程师产品迭代的速度,因为他们能实时利用数据集做实验,而非花几天时间等待数据集搭建完成。
“此外,我们还定下了目标探测与路径预测模型的日日训与周周练工作,这样密集的训练频率不但缩短了探测时间,还加快了 bug 的修复速度。”
uber 指出,vercd 背后的大部分工程都花在添加公司专属的整合工作上了,这是为了使现有系统能够与 atg 的完整端到端机器学习工作流程进行交互。为此,最新版 vercd 的 orchestrator 服务可以调用各种数据原语来构建自动驾驶汽车的运行时间以进行测试,或者在使用深度学习库创建图像并在数据中心之间来回复制数据集时与代码存储库进行交互。
vercd 管理的数据集们来自于 atg 自动驾驶汽车采集的日志。这里所说的日志数据包括摄像头拍到的图像,lidar 生成的点云,雷达采集到的信息,车辆状态(位置、速度、加速和指向),以及地图数据(比如车辆路线和行驶车道)。在工作中,日志数据还会被分为训练数据、测试数据和验证数据,其中 75% 的数据会用于训练,15% 用于测试,而剩下的 10% 会用在验证上。为了更好的对日志数据进行分类,uber 还专门开发了基于地理位置的专属工具 geosplit。
一般来说,vercd 用户可提供任何数据集,模型或度量标准构建的相关性,而数据库后端是 vercd 管理此类信息的“据点”。新数据集注册完成后,vercd 数据集服务会将相关元数据存储在补充数据库中。数据集会通过名称和版本号以及 vercd 跟踪的相关项进行唯一标识,从而可以准确地从自动驾驶汽车中复制传感器日志 id,描述数据集生命周期的元数据等。机器学习模型也会打上唯一标识,支持诸如版本化数据集和 ai 模型训练配置文件路径的复制。
在机器学习训练上,uber atg 用到了“双线作战”的混合方式,训练工作不但会在数据中心运行,还会在云端开展。在这里,uber 的开源统一资源调度程序 peloton 也非常有用。
一旦机器学习工程师在 vercd 的模型服务 api 中定义好了实验模型,atg 的系统就会开始对其进行训练。在验证中,vercd 还允许实验与生产模型间的平滑过渡,uber 认为这对复验性和可追溯性至关重要。
基于训练中的表现,vercd 会为各种模型标上“失误”、“故障”和“成功”等描述。如果一个模型确实出了故障或必须被抛弃,机器学习工程师可以选择用新的参数对模型进行重构。此外,vercd 还能主导模型的验证,即基于训练过的特殊模型对训练管道进行检查。uber 指出,只有在构建和验证上同时取得成功,一个模型才会被升级为生产模型。
在外界看来,这篇博文也是 uber 提高透明度的尝试。坦率来讲,uber 在自动驾驶汽车研发上的记录好坏参半。
去年 12 月,它们重启了在匹兹堡的自动驾驶测试测试,而此前因为亚利桑那的一场致命事故,uber 的自动驾驶车队禁足了 8 个月。国家运输安全委员会(ntsb)的调查结果显示,uber 禁用了车祸中沃尔沃 xc90 的自动刹车系统(该公司在内部文件中表示,这样做是为了“减少车辆不规律行为的可能性”)。
在 2018 年 6 月发布的一篇博文中,uber atg 负责人 eric meyhofer 详细介绍了公司新实施的保障措施,例如针对安全手动驾驶和监控系统的培训计划。如果驾驶员将视线移开道路,远程监控人员会收到警报。在向国家公路交通安全管理局(nhtsa)提交的安全评估中 uber 表示,凭借其新成立的系统工程测试团队,uber 现在有了更好的站位,“可以对许多可能的结果进行推理,最终做出安全响应。”
(雷锋网)
雷锋网