涡轮增压分析与我们的数据科学工作台

0
涡轮增压分析与我们的数据科学工作台

数百万优步旅行每天遍及近80个国家,产生有关交通的信息,首选路线,抵达/交付估计/交付,下降地点,以及我们的速度,使我们能够为用户提供更好的经验。

为了使我们的数据探索和分析更加精简和高效,我们建立了优步的数据科学工作台(DSW),一个用于交互分析和机器学习的一体化工具箱,利用汇总数据。DSW集中了数据科学家在单一窗格、基于web的图形用户界面(GUI)中执行数据探索、数据准备、特别分析、模型探索、工作流调度、仪表板和协作所需的一切。

通过对公司的数据科学,工程和运营团队杠杆,DSW已迅速扩大,成为优步的转移数据分析解决方案。目前的DSW用例包括旅行经验的其他基础元素的定价,安全,欺诈检测和导航。在这篇文章中,我们讨论了两个主要主题:1)我们建设的挑战,特别是鼓励大规模采用DSW,以及2)工作台如何使Uber更精简和可扩展的数据科学。

找到可扩展,灵活的解决方案

Before deciding to build our data science workbench, we evaluated multiple third-party solutions and determined that they could not easily scale to number of users or volume of data we anticipated on the platform, nor would they integrate well with Uber’s internal data tools and platforms. We also realized that building our own platform would enable us to target specific use cases, such as geospatial analytics, custom visualization, integration with米开朗基罗(我们的机器学习框架)和深度学习。我们的结论是,最好的选择是建立一个内部解决方案。然而,在我们开始开发之前,我们需要更好地理解用户的需求。

标准化复杂的学科

我们开始为DSW建立DSW,了解我们的最终设计需要在全球多个办事处支持数千个用户。首先,我们需要用令人难以置信的各种技能和偏好来缩小用户群的用例和偏好。

指甲,然后缩放它

鉴于我们的数据科学团队的多样性,一定规模的适合所有方法都会失败。与此同时,我们没有工程时间或资源来构建无穷无尽的功能套件。为了成功,我们需要在频谱的两侧之间取得平衡。

为了确保产品符合市场需求,在编写一行代码之前,我们花了数周时间通过调查、访谈和焦点小组进行用户研究。雷竞技是骗人的我们的研雷竞技是骗人的究为我们的新解决方案列出了一长串的需求:

  • 支持不同的生产力工具(例如rstudio.,jupyter笔记本,Zeppelin笔记本, 和闪亮的仪表盘),编码语言(包括r,py和scala)和分布式计算系统(例如,蜂巢,vertica,火花, 和Elasticsearch.)。
  • 完全托管的环境,没有手动设置。
  • 专用计算和存储,确保多个用户可以“共享”平台而不窃取彼此的资源。
  • 预先配置的RStudio服务器和Jupyter笔记本与所有必要的内部和外部库,加上额外的定制选项。
  • 从工作流管理和可视化工具与Uber的基础架构集成到数据源和分析引擎。
  • 方便同事之间轻松协作和知识共享的UI。

通过DSW,我们能够建立满足所有这些要求的产品 - 以及更多。由于发展过程在很大程度上是一项整合努力,让我们直接潜入DSW堆栈的看起来今天。

DSW堆栈

DSW建于高度可扩展的集装箱化基础设施之上,该基础设施能够支持成千上万的用户。在后端,DSW由我们的Hadoop和仓储堆栈提供动力,包括成千上万的节点,用于大规模分布式处理。DSW的管理服务是写入的基于网络的前端是写在反应回来的

图1:如上所述,优步数据科学工作台的用户在Web浏览器中实例化会话。在单个会话中创建的所有文件/元数据由DSW的管理服务维护,并通过Docker容器返回,该码头将连接到Uber的各种数据存储器和库进行批处理分析,实时查询和机器学习应用程序。

要利用DSW,用户首先创建会话(换句话说,独立计算单元 - 或码头工人容器)执行数据分析。在优步,通过内部资源管理和调度框架配置容器微部署每个会话都预先准备好了启动所需的内部和OSS库,包括熊猫,scikit-learn,scipy,NumPy,matplotlib.,海运,Forium.,散景, 和更多。在这些预先烘焙的软件包之上,DSW允许其用户使用手动安装的包自定义他们的会话。

在一个会话中,用户可以构建Shiny和Python指示板(散景)直接来自DSW。每个用户都会获得一个专用的仪表板服务器,可以发布仪表板。促进了文件存储和共享功能CephFS和安装保险丝。每个用户的Docker容器都有一个挂载的Ceph目录,它保存所有生成的内容。文件存储在高可用性的文件系统中,允许它们在会话的生命周期之后继续存在。DSW通过Zookeeper.客户端避免在创建会话和刷新文件赛车问题。

DSW还支持作业调度。通过一个轻量级的图形界面,数据使用者可以自动化许多日常活动(如报告生成、数据质量检查、再培训模型和发布仪表板等),并将这些任务列入日程。DSW按照定义的节奏自动运行这些作业,并在出现故障时通知用户。

DSW中的每个会话都会定期从作业数据定期分配作业并运行它们。如果会话出于任何原因发生或崩溃,则会话重新启动时会自动拾取作业。

用户还可以访问机器学习框架,比如scikit-learn,TensorFlow,Theano, 和Keras从他们的会议中,让他们快速尝试,培训和测试各种监督和无监督的算法,以及我们的米开朗基罗机器学习和服务系统。从单个工具访问各种框架的能力帮助了Uber的机器学习。

图2:DSW的会话管理页面让用户使用单击按钮旋转Rstudio和Jupyter会话。右侧面板显示与每个会话相关联的性能指标。

图3:DSW文件浏览器的右边面板允许用户向单个文件添加注释和标签。

图4:DSW的Job Scheduler允许用户在单个会话上安排作业,配置电子邮件通知,以及切换哪些作业被启用。

图5:用户可以创建闪亮的应用程序,并从DSW的dashboard选项卡查看其他人创建的应用程序。

DSW的采用和影响

在短短三个月内,数据科学工作台的Beta版已准备好发射。但建造DSW只是等式的一半。下一步是说服优步的数据科学团队使用和信任这个看似只是另一个工具的工具。如果只有一小部分数据科学家在积极地使用工作台,像文件和仪表板共享这样的协作特性是无用的。

我们采用了两种策略来确保公司支持DSW优步数据科学平台。首先,我们开始了内部营销活动,包括视觉品牌(即徽标和图形),促销电子邮件和通讯等常规策略。其次,我们花时间达到团队和个人建立关系,并通过在团队和部门会议上展示了对新项目的技术谈判,并简单地与我们的用户进行了谈判,保持反馈渠道。

图6:自工具箱2017年3月推出以来,本公司的用户已采用DSW以赋予数据驱动的决策。

优步的数据科学工作流程不再是分裂和资源紧张的,这意味着各种工程和数据科学背景的用户可以快速地滚动。事实上,DSW降低了开发环境设置时间从一个小时减少到几分钟内。

如今,数据科学家使用DSW进行文本挖掘和处理、机器学习、生存建模、消费者档案建模、数据可视化准备等等。下面,我们将列举几个例子来说明这个强大的分析工具箱是如何在整个公司使用的:

Ubereats激励措施

Ubereats团队的数据科学家罗比使用DSW来优化Ubereats交付合作伙伴的激励。他在DSW中使用Python建立了机器学习模型,以估计供应曲线,预测需求和测量整体市场效率。输出培训数据,模型参数和最佳激励措施发布到闪亮的仪表板,该仪表板也在DSW中托管。这个仪表板与全球的城市运营分析师共享,使他们能够评估自己的城市的市场效率。

司机满意度

基于巴西的拉丁式分析经理Ana,适用于驾驶员满意度和福祉。为了使城市能够更好地了解他们的驱动程序合作伙伴,她建立了一种复杂但易于消耗的DSW所谓的Dràuzio。数以万计的优步司机合作伙伴表达了他们的乐趣,担忧,并在CSAT调查中提供反馈。Dràuzio解析,清洁,矿山和模型文本字段以曲面到每个城市的感知情绪。巴西的分析师现在可以通过使用闪亮的浏览器的仪表板在自己的城市中查看社情。仪表板使用热映射可视化以显示每个情绪的强度。

有了这些信息,世界各地的运营团队可以更深入地了解所在城市的乘客和司机合作伙伴,并就如何改善优步体验做出更明智的决定。

下一步

我们的长期愿景是让数据科学工作台成为Uber的一站式商店数据科学家以及为我们的民主化机器学习的目标做出贡献。更具体地说,我们计划通过将DSW与优步机的机器学习 - AS-Service平台集成,为深度学习建立额外的支持,米开朗基罗

如果你想为数据科学提供更便捷、更高效的解决方案,那就申请加入优步数据平台团队吧!

Nikhil Joshi为优步数据平台和基础设施团队提供了产品管理。Isabel Geracioti是优步的技术作家,专注于数据平台和基础设施。

注释