0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

深入探讨Uber机器学习平台当前的发展趋势和目标

电子工程师 来源:未知 作者:胡薇 2018-11-19 08:47 次阅读

2017年9月,Uber 在技术社区发表了一篇文章向大家介绍了 Uber 的机器学习平台 —— Michelangelo。随着平台的日渐成熟,Uber 的业务数量与能力也随之增长和提升,机器学习在整个公司的应用范围越来越广。在本篇文章中,我们将为大家总结 Michelangelo 在过去一年的时间里取得的成果,回顾Michelangelo的发展历程,并深入探讨 Uber 机器学习平台当前的发展方向和未来目标。

三年时间,从零到一百

2015年,机器学习在 Uber 的应用并不广。但随着公司的规模扩大,业务需要也越来越复杂,需要用到机器学习的地方越来越多。如何在公司范围内部署机器学习迅速成为 Uber 的战略重点。

Michelangelo 最初的重点是实现大规模批量训练,并进行批量预测。随着时间的推移,Uber加入了集中式特征存储、模型性能报告、低延迟实时预测服务、深度学习工作流以及许多其他的组件与集成环境。在短短三年内,Uber 已经拥有技术先进的机器学习工具和基础平台,以及上百个机器学习案例。

Uber 的机器学习用例

Uber 将机器学习用在了各种各样的业务中。在这一部分,我们将为大家介绍在过去三年的时间里几个 Michelangelo的典型用例,它们体现了机器学习在 Uber业务中的多样性和影响力:

▌Uber Eats

Uber Eats 使用基于 Michelangelo 的多个模型来做预测,以便食客每次打开 APP 都可以有更好的体验。基于机器学习的排名模型会根据历史数据和用户当前的进程信息,来推荐合适的餐馆和菜品。基于 Michelangelo,优食也会根据预测到达时间、历史数据以及餐馆的实时信息,来估算餐食的送达时间。

▌市场预测

Uber的市场团队利用了各种时空预测模型,这些模型能够预测未来各个地点和时间乘坐者的需求,以及司机是否有空。根据所预测的供需不平衡情况,Uber 系统可以提醒司机提前去往最有机会接客的地点。

▌客户支持

在 Uber平台,每天约有 1500 万次出行记录。人们经常把钱包或手机遗忘在车内,或通过Uber的帮助系统提交各种问题。这些问题单将被提交至客服代表。基于 Michelangelo 的机器学习模型被应用于此,使问题的解决过程更加自动化,并大大提升了速度。

▌乘车检查

自 2010 年的第一条 Uber 乘坐记录以来,每次出行时地图都会使用 GPS 数据。所以我们知道自己何时处于何地,以及是谁在驾驶。但Uber 希望可以做得更多。利用 GPS 的力量和司机的智能手机中的其他传感器,Uber的技术可以检测到可能发生的车祸。例如,如果在一次旅程中出现长时间的意外停车,乘客和司机都会收到一条提醒,可提供交通事件援助。

▌预计到达时间(ETAs)

对公司来说,最重要的指标之一就是各种预估时间。精确的预估时间对好的用户体验至关重要,这些指标被输入无数其他的内部系统中,来协助判定价格和路线。

Uber 的地图服务团队开发了一个复杂的分段路线系统,用来计算基本的预估时间值。这些基本的预估时间具有相同类型的错误。地图服务团队发现他们可以使用机器学习模型来预测这些错误,并用预测的错误来进行修正。由于这个模型正逐个应用在各个城市,Uber 团队发现预估到达时间的准确性大幅提升,在某些情况下,平均预估到达时间的误差减小了 50% 以上。

▌一键聊天

一键聊天的功能基于自然语言处理模型,模型可以预测并展示最有可能的回复,使乘客与司机之间的交流更加高效。司机只需按一下按钮,即可回复乘客的消息,从而避免分心。

自动驾驶车辆

Uber 的自动驾驶汽车系统使用深度学习模型来实现各种功能,包括物体检测和路线规划。建模人员用 Michelangelo 的 Horovod 在大量 GPU 机器上进行高效的分布式训练。

Uber如何一步步拓展机器学习的应用场景

作为一支平台团队,Uber 团队的使命是充分利用机器学习的价值,并加速其在公司各个方面的应用。对于数据科学家,Uber的工具简化了机器学习系统构建与部署过程中的生产和运行。对于工程师,Uber 的机器学习工具简化了这些系统背后的数据科学(如特征工程、建模、评估等),使他们无需数据科学家的帮助,就可以轻松训练出质量足够高的模型。最后,对于在建立机器学习系统方面经验丰富的工程团队,Uber还提供 Michelangelo 的机器学习基础组件,以实现自定义的配置和工作流。

能够在 Uber 这样的公司成功扩展机器学习,需要的不仅仅是技术实力,还有组织与设计流程方面的因素。接下来我们就为大家分析一下Uber 成功的三个关键因素:组织、流程和技术。

Michelangelo 机器学习平台的核心战略支柱

▌组织

对于构建高质量的解决方案并将其成功部署来说,让对的人解决对的问题显得尤为重要。例如,如果一个新项目需要计算机视觉方面的知识,那么什么样的组织结构有利于 Uber 高效地分配专家资源,从而保证合适的优先级呢?

经过几次迭代,Uber 目前具备以下几种主要角色和职责:

Uber 机器学习系统中的组织关联

1.产品团队

团队发现,如果产品工程团队具有自己在生产中构建和部署的模型,效果是最好的。例如,Uber的地图服务团队就拥有预测 Uber 预计到达时间(ETA)的模型。产品团队经常配备使用 Uber 机器学习平台来构建与部署模型的全套技能。当他们需要额外的技术时,可以从研究或专家团那队得到帮助。

2.专家团队

当产品工程团队遇到超出能力范围的机器学习问题时,他们可以向内部专家团队求助。Uber 有各个领域的专家,如自然语言处理、计算机视觉、推荐系统、预测,来与产品团队协同构建量身定制的解决方案。例如在COTA 项目中专家团队携手产品团队,为 Uber业务和用户创造了巨大的影响力。

3.研究团队

专家和产品工程团队经常与 Uber 的 AI 研究小组(AI Labs)合作,协同解决问题,并为未来的研究指明方向。一般来说,研究团队不用写用于生产的代码,但他们在实际问题上与其他团队的合作非常紧密。当研究员们开发了新的技术和工具时,平台工程团队就会将其集成到公司的平台上,以便新技术可以为全公司所使用。

4.机器学习平台团队

Michelangelo 平台团队创建并执行了通用的机器学习工作流和工具箱,产品工程团队可以直接用来构建、部署以及运用机器学习解决方案。

Uber 的系统越来越高端,需要解决的问题也越来越复杂,随着日渐增长的灵活性、可扩展性,以及特定领域的机器学习开发经验,需求也增长了起来。Uber 也正在开发一些其他的更面向特定领域的平台,来实现一些不适用于 Michelangelo 工作流的特定用例。

▌流程

Uber 的机器学习服务日渐成熟,许多流程对团队的生产力和效率都起到了作用。分享最佳的机器学习实践经验和建立更加结构化的流程,对指明团队方向和避免重复错误都是至关重要的。

▌技术

任何机器学习系统在技术方面都存在无数细节。在 Uber的系统中有以下几个尤为重要的高级领域:

端到端的工作流:机器学习不仅仅是训练模型,你需要支持整个机器学习工作流:管理数据、评估模型、部署模型、作出预测、以及监控预测。

把机器学习当作软件工程:团队把机器学习的开发与软件开发做类比,然后将软件开发的模式和方法用到机器学习中。

模型开发速度:机器学习模型的开发是一个迭代的过程,具有创新性且高质量的模型来自大量的重复试验。因此,模型的开发与迭代速度至关重要。

模块化与层次化的架构:在处理大多数普通的机器学习用例时,提供端到端的工作流非常重要,但在处理不太常见且更专业的用例时,有可以进行自定义组装的原始组件就变得尤为关键。

1.端到端的工作流程

早期 Uber 就认识到,要在公司内成功开展机器学习需要的不仅仅是训练好模型,更需要对整个工作流提供稳定且可扩展的支持。另外团队还发现,同样的工作流可以应用到多个场景中,包括传统机器学习和深度学习,有监督、无监督以及半监督学习,批量、在线和移动部署,时间序列预测。让一个工具做多种工作并不是重点,但拥有一套可以解决工作流中所有步骤的集成工具是非常重要的。

2.把机器学习看作软件工程

Michelangelo 团队的一个重要原则是,把机器学习看作软件工程。实际的开发和运行机器学习应该和软件工程一样,是一个迭代、严格、经过测试的、且有方法支持的过程。例如,一旦团队认识到一个模型就像编译的软件库,便会在一个严格且可控制版本的系统中,跟踪模型的训练配置,就像控制库源代码的版本一样。跟踪配置这一操作非常重要,因为之后可以将其重复利用,创建新的模型。

3.模型开发速度

创建可靠的机器学习系统是一门学问,需要进行多次迭代才能达到好的效果。迭代速度影响着机器学习在整个组织的扩展,以及一个团队面对问题的解决效率。Michelangelo 团队的首要任务是让数据科学团队提高速度。团队的速度越快,试验的次数越多,也就能测试更多的猜想,从而得到更好的结果。

下图展示了Uber 所考虑的标准机器学习开发流程的思路,以及不同的反馈循环。团队始终在考虑这一流程,并收缩这些循环,使数据科学中的迭代变得更加容易快捷。

机器学习项目的工作流程

4.模块化且层次化的产品

团队在开发 Michelangelo 时遇到的问题之一是:在为常见的机器学习工作流提供端到端支持的同时,还要使那些不常见的工作流保持灵活性。

最初,这个平台和基础组件组成了一个单独的系统。当系统变得更加复杂时,需要解决的问题也变得更加多样且复杂。一些团队希望将 Michelangelo 的部分组件与他们自己的组件相结合,构成新的工作流。其他团队需要专门的开发工具来处理他们的用例,但从头开始构建这些工具很显然是不合理的。因此,团队对 Michelangelo 的架构进行了一些重大修改,尽可能地利用现有系统。

现在,团队正在将 Michelangelo 的架构分解成明确的基础架构层,让团队可以利用它们来构建更复杂的平台,例如自然语言处理或视觉应用。一旦完成这些工作,就将拥有两个用户群:使用 Michelangelo 平台构建和部署模型的模型构建者,和使用 Michelangelo 基础组件构建定制解决方案或复杂平台的机器学习系统构建者。

主要经验教训

在过去的三年里,通过构建 Michelangelo 并将机器学习在整个 Uber 进行拓展,整个团队从成功与失败中获得了许多经验教训。在一些案例中,有时候第一次就把事情做对了,但更多的时候团队需要经过反复多次的尝试,才能找到最适合的方法。可以和企业、技术团队负责人,每一个开发人员分享的经验有以下几点:

让开发人员使用他们偏好的工具。

数据是机器学习中最难的部分,同时也是最重要的部分。

要使开源和商业组件实现大规模运行,需要付出很多努力。

考虑长期的愿景,根据用户的反馈进行多次开发。

实时的机器学习服务很难做到完美。

旅程才刚刚开始,仍有许多工作在等着Uber。这也是一个不断发展的领域,会有更多的东西需要大家学习。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 机器学习
    +关注

    关注

    66

    文章

    8375

    浏览量

    132398
  • Uber
    +关注

    关注

    0

    文章

    410

    浏览量

    36205

原文标题:如何高效推进ML模型开发和部署?Uber机器学习平台Michelangelo实践

文章出处:【微信号:rgznai100,微信公众号:rgznai100】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    激光雷达技术的发展趋势

    ,都有着广泛的应用。 激光雷达技术的发展趋势 引言 随着科技的不断进步,激光雷达技术已经成为现代遥感技术中不可或缺的一部分。它通过发射激光脉冲并接收其反射,能够精确地测量目标物体的距离、速度和形状。本文将探讨激光雷达技术的
    的头像 发表于 10-27 10:44 560次阅读

    机器人技术的发展趋势

    机器人技术的发展趋势呈现出多元化、智能化和广泛应用的特点。 一、智能化与自主化 人工智能(AI)与机器学习 : AI和机器
    的头像 发表于 10-25 09:27 459次阅读

    智能驾驶技术发展趋势

    智能驾驶技术是当前汽车行业的重要发展趋势之一,它融合了传感器技术、人工智能、大数据和云计算等多种先进技术,旨在实现车辆的自主驾驶和智能化管理。以下是对智能驾驶技术发展趋势的分析: 一、技术突破与进展
    的头像 发表于 10-23 15:41 496次阅读

    未来AI大模型的发展趋势

    未来AI大模型的发展趋势将呈现多元化和深入化的特点,以下是对其发展趋势的分析: 一、技术驱动与创新 算法与架构优化 : 随着Transformer架构的广泛应用,AI大模型在特征提取和并行计算效率
    的头像 发表于 10-23 15:06 427次阅读

    卡座连接器的发展趋势分析

    卡座连接器作为电子元件中的重要组成部分,其发展趋势与电子产品的技术进步密切相关。卡座连接器的使用范围不断扩大,其设计和性能也在不断优化。本文将深入探讨卡座连接器在未来发展中的趋势及其潜
    的头像 发表于 10-08 12:42 345次阅读
    卡座连接器的<b class='flag-5'>发展趋势</b>分析

    【「时间序列与机器学习」阅读体验】+ 简单建议

    这本书以其系统性的框架和深入浅出的讲解,为读者绘制了一幅时间序列分析与机器学习融合应用的宏伟蓝图。作者不仅扎实地构建了时间序列分析的基础知识,更巧妙地展示了机器
    发表于 08-12 11:21

    如何理解机器学习中的训练集、验证集和测试集

    理解机器学习中的训练集、验证集和测试集,是掌握机器学习核心概念和流程的重要一步。这三者不仅构成了模型学习与评估的基础框架,还直接关系到模型性
    的头像 发表于 07-10 15:45 3177次阅读

    人工神经网络与传统机器学习模型的区别

    在人工智能领域,机器学习和神经网络是两个核心概念,它们各自拥有独特的特性和应用场景。虽然它们都旨在使计算机系统能够自动从数据中学习和提升,但它们在多个方面存在显著的区别。本文将从多个维度深入探
    的头像 发表于 07-04 14:08 1021次阅读

    人工智能、机器学习和深度学习是什么

    推动社会进步和经济发展的重要力量。这些概念虽然紧密相关,但各自具有独特的定义和应用领域。本文旨在深入探讨这三者的本质、区别、联系以及它们在实际问题中的应用。
    的头像 发表于 07-03 18:22 1098次阅读

    深度学习与卷积神经网络的应用

    到自然语言处理,深度学习和CNN正逐步改变着我们的生活方式。本文将深入探讨深度学习与卷积神经网络的基本概念、工作原理及其在多个领域的应用,并展望其未来的发展趋势
    的头像 发表于 07-02 18:19 800次阅读

    机器学习在数据分析中的应用

    随着大数据时代的到来,数据量的爆炸性增长对数据分析提出了更高的要求。机器学习作为一种强大的工具,通过训练模型从数据中学习规律,为企业和组织提供了更高效、更准确的数据分析能力。本文将深入探讨
    的头像 发表于 07-02 11:22 543次阅读

    深入探讨机器学习的可视化技术

    机器学习可视化(简称ML可视化)一般是指通过图形或交互方式表示机器学习模型、数据及其关系的过程。目标是使理解模型的复杂算法和数据模式更容易,
    发表于 04-25 11:17 372次阅读
    <b class='flag-5'>深入探讨</b><b class='flag-5'>机器</b><b class='flag-5'>学习</b>的可视化技术

    深入探讨电源变压器在储能设备中的应用

    深入探讨电源变压器在储能设备中的应用  电源变压器在储能设备中的应用已经成为当代能源储备和利用的关键技术之一。随着可再生能源的不断发展和应用,储能设备的需求也越来越大。电源变压器作为储能设备中的关键
    的头像 发表于 02-02 09:44 1208次阅读

    在工业自动化发展中,立柱机器人的作用和发展趋势

    人码垛机进行深入探讨,介绍其工作原理、技述特点、应用场景及发展趋势。 二、立柱机器人码垛机的工作原理 立柱机器人码垛机通常采用关节式结构,通过伺服电机驱动实现各关节的转动。其主要由基座
    的头像 发表于 01-10 13:55 553次阅读

    浅析工业交换机与工业机器人之间的通信

    工业交换机与工业机器人的通信是现代工业自动化生产中一个重要的组成部分。随着工业领域的数字化和智能化趋势不断加速,工业交换机与工业机器人之间稳定、高效的通信变得愈发重要。本文将围绕这一主题展开,
    的头像 发表于 12-15 09:52 655次阅读