Aquarium华人CEO分享:机器学习在自动驾驶中落地,核心不是模型,是管道( 三 )

Aquarium华人CEO分享:机器学习在自动驾驶中落地,核心不是模型,是管道
文章图片
图注:大多数人的时间很容易从一个典型的再训练周期中移除 。 即使这样做的代价是降低机器时间的效率 , 它也消除了许多手工操作的痛苦 。 加快迭代的主要内容是减少完成一个迭代周期所需的工作量 。 然而 , 总是有办法让事情变得更简单 , 所以你必须优先考虑要改进什么 。 我喜欢用两种方式来思考努力:时钟时间和人类时间 。 时钟时间指的是运行某些计算任务所需的时间 , 如数据的ETL、训练模型、运行推理、计算指标等 。 人工时间指的是人工必须主动介入以通过管道运行的时间 , 比如手动检查结果、运行命令或在管道中间触发脚本 。 例如 , 多个脚本必须通过手动在步骤之间移动文件按顺序手动运行 , 这种情况非常常见 , 但是很浪费 。 一些纸巾背面的数学:如果一个机器学习工程师每小时花费90美元 , 手工运行脚本每周浪费2个小时 , 那么每个人每年加起来就是9360美元!将多个脚本和人工中断结合成一个全自动脚本 , 可以更快、更容易地运行一个模型管道循环 , 节省大量资金 , 并且使您的机器学习工程师不那么古怪 。 相比之下 , 时钟时间通常需要“合理”(例如 , 可在一夜之间完成) 。 唯一的例外是机器学习工程师正在进行大量的实验 , 或者存在极端的成本/缩放约束 。 这是因为时钟时间通常与数据规模和模型复杂性成正比 。 当从本地处理转移到分布式云处理时 , 时钟时间会显著减少 。 在此之后 , 云中的水平扩展往往可以解决大多数团队的大多数问题 , 直到问题的规模扩大 。 不幸的是 , 将某些任务完全自动化是不可能的 。 几乎所有的生产机器学习应用程序都是监督式学习任务 , 并且大部分依赖于一定数量的人机交互来告诉模型它应该做什么 。 在某些领域 , 人机交互是免费的(例如 , 社交媒体推荐用例或其他有大量直接用户反馈的应用程序) 。 在其他情况下 , 人类的时间更有限或更昂贵 , 例如训练有素的放射科医师为训练数据“标记”CT扫描 。 无论哪种方式 , 将改进模型所需的人工时间以及其他成本最小化都很重要 。 虽然早期的团队可能依赖机器学习工程师来管理数据集 , 但是让一个没有机器学习知识的操作用户或者领域专家来承担数据管理的繁重工作通常更经济(或者对于放射学家来说 , 是必要的) 。 在这一点上 , 使用良好的软件工具建立一个操作过程来标记、检查、改进和版本控制数据集就变得非常重要 。 5鼓励ML工程师健身Aquarium华人CEO分享:机器学习在自动驾驶中落地,核心不是模型,是管道
文章图片
图注:ML工程师在举重时 , 也在提升他们的模型学习的权重构建足够的工具来支持一个新的领域或一个新的用户组可能需要花费大量的时间和精力 , 但是如果做得好 , 结果将是非常值得的 。 在Cruise公司 , 我的一位工程师特别聪明(有人会说他很懒) 。 这个工程师建立了一个迭代循环 , 在这个循环中 , 操作反馈和元数据查询的组合将从模型性能较差的地方抽取数据进行标记 。 然后 , 一个离岸作业团队将标记数据 , 并将其添加到新版本的训练数据集中 。 此后 , 工程师建立基础设施 , 允许他们在电脑上运行一个脚本 , 并启动一系列云任务 , 自动对新添加的数据进行再训练和验证一个简单的模型 。 每周 , 他们都会运行retrain脚本 。 然后 , 在模型训练和验证自己的时候 , 他们去了健身房 。 经过几个小时的健身和晚餐后 , 他们会回来检查结果 。 无独有偶 , 新的和改进的数据将导致模型的改进 , 经过快速的双重检查确保一切都有意义 , 然后他们将新模型运送到生产中 , 汽车的驾驶性能将得到改善 。 然后 , 他们花了一周的时间来改进基础设施 , 实验新的模型架构 , 并建立新的模型管道 。 这名工程师不仅在本季度末获得了晋升 , 而且状态很好 。 6结语总结一下:在研究和原型开发阶段 , 重点是建立和发布一个模型 。 但是 , 随着一个系统进入生产阶段 , 核心任务是建立一个系统 , 这个系统能够以最小的努力定期发布改进的模型 。 这方面你做得越好 , 你可以建造的模型就越多!为此 , 我们需要关注以下方面:以规律的节奏运行模型管道 , 并专注于比以前更好的运输模型 。 每周或更短的时间内获得一个新的改进型号投入生产!建立一个良好的从模型输出到开发过程的反馈回路 。 找出模型在哪些示例上做得不好 , 并向您的培训数据集中添加更多的示例 。 自动化管道中特别繁重的任务 , 并建立一个团队结构 , 使您的团队成员能够专注于他们的专业领域 。 特斯拉的AndrejKarpathy称理想的最终状态为“假期行动” 。 我建议 , 建立一个工作流程 , 让你的机器学习工程师去健身房 , 让你的机器学习管道来完成繁重的工作!最后 , 需要强调一下 , 在我的经验中 , 绝大多数关于模型性能的问题可以用数据来解决 , 但是有些问题只能通过修改模型代码来解决 。 这些变化往往是非常特殊的模型架构在手头 , 例如 , 在图像对象检测器工作了若干年后 , 我花了太多的时间担心最佳先前的盒子分配为某些方位比和提高特征映射对小对象的分辨率 。 然而 , 随着Transformer显示出成为许多不同深度学习任务的万能模型架构类型的希望 , 我怀疑这些技巧中的更多将变得不那么相关 , 机器学习发展的重点将进一步转向改进数据集 。 参考链接:https://thegradient.pub/lessons-from-deploying-deep-learning-to-production/Kendall,A.&Gal,Y.(2017).WhatUncertaintiesDoWeNeedinBayesianDeepLearningforComputerVision?AdvancesinNeuralInformationProcessingSystems,5574-5584.