胡佛:如何使数据科学家停止管理ETL管道,回到做数据科学

2020年2月11日

Peter b . Golbus

概要

商业发展迅速,数据科学的跑道很长。我们能做些什么来尽可能快地消除数据科学模型上的摩擦和迭代?在这篇博客文章中,我们描述了Wayfair是如何构建的Jupyter支持数据科学家专注于核心数据科学任务,而不是花时间管理样板ETL管道的基于工具。具体来说,我们将讨论如何构建数据科学用户能够在最少的支持下维护和扩展的工具。

介绍

数据科学项目,其核心是一个机器学习和建模任务,需要一个数据科学家的专业知识。188金宝慱亚洲体育是赌博的嘛理想情况下,数据科学家将花费他们所有的时间对这些核心数据的科学任务。但在此之前,你甚至可以开始做EDA,你首先需要得到你的数据到您的环境。不幸的是,数据科学家们花费了大量的时间管理的ETL管道。虽然管道的“变换”部分往往确实需要数据的科学专业知识来实施,该“提取”和“加载”的步骤没有。这些步骤是相当样板,但他们建设,特别是学习如何构建他们,可以是劳动密集的。另一种方法是昂贵的技术支持和多轮的来回定义和验证数据的科学要求安排。而这一切,然后才可以开始做真正的数据科学工作和开始你的项目认真。

我们可以做些什么来释放我们的数据科学家关注数据科学吗?我们可以做些什么,以尽量减少工作的,你需要花之前,你得到的实际数据的科学的金额是多少?

在这篇文章中,我们将讨论如何Wayfair开发重量轻,Jupyter友好的工具,这些管道的自动化建设。这些工具不仅可以让第一天的新数据科学家板载到现有的项目,它们也允许通过实施功能的极少数有一点力气也只是偶尔工程支持数据科学家自助服务新项目。我们将演示如何使用模型 - 视图 - 控制器(MVC)架构设计模式(比喻)。

在第1节,我们开始实际的计算机视觉项目为例。在第2节中,我们介绍了MVC框架。在第3节中,我们通过展示我们如何利用这个框架来创建一个自动化的,可配置的管道建设者,帮助科学家数据板载新项目在几天而不是几周结束我们的案例研究。

第一节

案例研究:玫瑰厅和风格估算

在Wayfair我们相信,每个人都应该生活在他们热爱家庭。其中一部分是找到符合您的个人装饰“的风格。”你本世纪中叶现代,华丽的暗示?如何传统的乡村?我们在Wayfair使用玫瑰房和风格评估,我们的计算机视觉数据科学家团队开发,量化基于图像的房间的“风格”,所以我们可以更好地了解我们的客户正在寻找,更重要的是,帮她找到它。

如果你是一个Wayfair客户,你可能已经注意到,我们对我们的网站不同的主风格的标签,如现代,质朴,和山寨/国家。这些风格上都是松散定义和高度主观客户的解释。而且,往往是很难为客户语言表达自己的风格喜好,但一旦他们看到的图像,他们可以很容易地指出他们的喜欢/不喜欢。在此基础上的动机,上涨的目标是学习基于图像的特征并估计从风格给定的图像,其中多个项目被视为在一间环境。我们代表与玫瑰提取的文体特征的图像。这些特征之间的距离,帮助我们建议房和产品图片给我们的客户提供量身定制自己的风格偏好。当我们第一次推出了这一新功能,我们在特别观察到的客户互动显著上升登陆体验竞猜

玫瑰是VGG网络[1]训练时间超过800k房间的图片,每一个都由10位不同的专家用一个风格标签标记。当你开始开发一个像这样的项目,你必须首先:

  1. 整理所有这些图像和标签的到一个位置(单个主机或分布式),和
  2. 创建培训批次的队列,从它填补比你的GPU更快(S)消耗。

这些任务变化很小计算机视觉项目之间,并且不需要数据的科学专业知识,因为他们是死记硬背,可以实现自动化。然而,当你训练你的模型中,开始为要作出的决定。你怎么想品尝你的作品?你想怎么训练(缩放,填充,扰动等)之前对其进行处理?你需要构建训练实例,例如对一个连体的网络?这些是数据科学家的核心任务。

图1:将计算机视觉ETL管道划分为4个步骤。

我们将管道分解为四个步骤:

  1. 获取图像资源位置和其他元数据:
    • 在这种情况下,这需要查询的形式。
  2. 前处理的图像和本地复制:
    • 我们首先将图像复制到主机上,在那里我们将进行训练。我们还在这里对图像进行预处理,例如缩放、填充、扰动等。
  3. 构建训练实例和标签:
    • 在上涨的情况下,我们探讨了两种方法
      1. 试图预测哪种风格赢得了多数选票,从我们的专家。
      2. 试图预测这两个图像的赢得了更多的选票对于一个给定的风格。
    • 这些每一个需要我们构建独立的数据集。对于后者,必须小心,以不允许图像泄漏到列车和测试分割两者。
  4. 执行推理/培训:
    • 我们提供的速度比他们在后台进程中被消耗创建图像批量Keras发电机。

步骤二和三是需要专业领域知识的核心数据的科学任务。我们希望使我们的数据科学家通过配置文件,并通过他们的造型代码实现的附加功能的极少数掌握这一进程的这一中心阶段。步骤一和四是从项目到项目相同。数据科学家需要编写查询,但除此之外,这可以而且应该处理“自动地”。

第二节

模型 - 视图 - 控制器(MVC)框架

在本节中,我们停下我们的案例研究来描述MVC框架以及我们将如何使用它。

Jupyter是大多数数据科学家赖以生存的生产力平台。因此,如果我们的目标是增强数据科学家的能力,我们的首要要求是我们开发的工具在笔记本上有用。这意味着无论我们构建什么,都需要能够导入并交互式地使用。

图2:胡佛被设计成在Jupyter笔记本功率实验。

我们的解决方案是由模型 - 视图 - 控制器(MVC)框架的启发。要了解MVC模式,让我们来看一个例子。由于MVC是常用的网络应用程序,我们考虑把上的电子商务网站购买。我们的使命是满足我们的客户提供无缝的结账体验。我希望我的客户点击一个按钮,并自信地认为,她已下订单,而且将很快交付。

图3:MVC框架的分解图。

在内部,MVC框架将其分为三个组件:

  • 控制器:这是用户告诉应用程序做什么的方式。在我们的例子中,这是checkout按钮。
  • 模型:是知道如何处理订单处理平台做到这一点,即后端集成应用程序的一部分
  • 视图:这是应用程序告诉用户已经做了什么,例如加载确认页面/模态和触发一个确认电子邮件发送。

请注意,并非所有控制器的“行动”要求的意见和/或模型来完成。例如,考虑一个动作,简单地发出一个选择查询和持续的结果为csv。首先,我们创建了一个数据访问对象(DAO)数据库应用程序,其为用户提供了,而不必管理连接和游标防止任意数据库(行和柱状数据库,键值存储等)运行他们的查询一单一的,精简过程。由于发出的选择查询并写入CSV既不操纵数据也呈现出它的用户,我们并不需要创建一个模型或视图。相反,控制器直接使用DAO。

比较的MVC框架的ETL管道。在每一种情况下,有三个组成部分:一个负责输入,一个负责输出,并作用于数据本身[2]的中心组件。

图4:我们使用MVC架构的数据科学的科学数据部分隔离开来。

如同数据科学家和他们的模型中,MVC“模式”懂得如何操纵数据。此外,由于是数据科学家,在这些数据的来源和发生了什么事后它是不是一个问题了MVC的情况下“的模式。”

第三节

案例研究(第2部分):Hoover-Image摄取管道客户机

现在,我们有MVC框架的理解,让我们继续我们的案例研究。在本节中,我们将介绍如何使用MVC框架作比喻来构建我们的代码。

回想一下,我们的目标是为RoSE构建一个映像摄取管道构建工具,数据科学家将能够在最少的支持下维护并扩展到新项目。创建这样一个工具的工作流程如下:

  1. 分离过程分成配置组件,
  2. 确定需要数据的科学专业知识的成分,
  3. 将这些组件映射到MVC框架中。
图5:映射在ETL管道步骤到(隐喻)控制器的操作。

案例研究的第一部分讨论了第一步和第二步。这里我们将重点放在第三步。

我们首先为管道流程中的每个步骤创建一个“controller action”。为了创建一个数据集,数据科学家将把控制器导入他们的笔记本并按顺序执行这些操作。

图6:Hoover可以通过几个简单的命令完成所有的管道构建任务。

注意:

  1. 所有的行动都是配置类控制,
  2. 模型[3]配置文件存储在特定于项目的repos中,而不是胡佛包或存储库中。

这些流程确保数据科学家可以利用现有的车型没有做任何事情超过进口包和创建和/或修改现有CONFIGS和查询进行实验。

那么胡佛是如何让数据科学家为新项目的启动服务的呢?

Hoover的第一个和最后一个组成部分都是严格的工程操作,而中间的步骤需要数据科学专家来直接操作数据。但实际上只有确定的方面这些步骤需要数据的科学决策。虽然每个项目都需要数据科学家,例如,决定什么样的转换应用到图像,居然四处移动网络的图像,并进行转换是样板的发电机。这意味着,而不是要求数据科学家创造全新的车型,我们实际上可以继续抽象掉更多的技术细节。最终的结果是,数据科学家只需要扩展基本模型和实现的功能了一把。在我们的胡佛例如,所有的数据科学家需要提供有以下功能:

图像处理

  • 输入输出格式化
  • 转换图像资源描述符到网络和文件路径
  • 要应用的转换

数据集构建

  • 数据构造(例如为连体网络构造图像对/三组)和采样
  • 标签构造(例如一个热点编码)

虽然Hoover包附带一些简单的模型,例如一个热编码器,但这些功能是特定于每个项目的,并与项目回购中的建模代码共存。这在正确的数据科学建模代码和样板管道维护之间保持了关注点的适当封装。

结论

数据科学家花了太多时间死记硬背地重新创建样板ETL管道。在这篇博客文章中,我们展示了我们如何在Wayfair上使用模型 - 视图 - 控制器(MVC)架构设计模式开发轻量级的、对木星友好的数据管道抽象工具。Hoover允许数据科学家在第一天就进入现有的项目,并在最少的工程支持下为新的ETL管道的创建提供自助服务,使数据科学家可以把更多的时间花在数据科学上,而不是软件工程上。最重要的是,这缩短了几周(有时是几个月)新数据科学家和开始新数据科学项目的时间。

欢迎联络蔡振宇(jchoi@wayfair.com)有关这篇文章/项目的任何问题。

尾注和引用

[1] K.西蒙尼扬和A. Zisserman。非常深的卷积网络的大规模图像识别。预印本的arXiv的arXiv:1409.1556 2014。

[2]事实上,考虑到一个可能实行在MVC框架的ETL管道提供的“控制器”的事情列表“提取”,实现“改造”使用“模型”,并将“加载”实现为“视图”。

[3]这里我们指的是机器学习模型188金宝慱亚洲体育是赌博的嘛(推理和训练代码,学习的权重,等等),而不是MVC模型。

提交评论

注意:您的电子邮件地址是必须添加评论,但不会公布。