支持数据科学团队时,数据工程师的任务是建立一个平台,使广泛的利益相关者满意。bob体育客户端下载数据科学家想要快速迭代,基础设施工程师想要监测和安全控制,产品所有者希望他们的解决方案部署在季度报告的时间。这些利益相关者之间的合作是很困难的,因为每个数据科学管道都有一组独特的约束和系统需求(计算资源、网络连接等)。由于这些原因,工程师努力给他们数据科学家尽可能多的灵活性,同时保持一个可观察到的和有弹性的基础设施。近年来,Apache气流(开发的面向任务协调器Airbnb)已经得到普及,数据科学家之间的合作平台和基础设施工程师想把用户从详细和严格的YAML文件。bob体育客户端下载Apache气流暴露了一个灵活的神谕的界面,可以用作数据工程师和科学家之间的合作点。数据工程师可以建立自定义操作符抽象底层系统的细节和数据科学家们可以使用这些操作符(以及更多)来建立一个各种各样的数据管道。对于这次演讲,我们将一个想法从单机笔记本一款跨火花+ Tensorflow管道,金丝雀测试,hyper-parameter-tuned、生产就绪模式上谷歌云功能。我们将展示如何Apache气流可以连接所有层的数据团队提供快速的结果。
-大家好,我的名字是丹尼尔Imberman,谢谢你来我说话,这是思想与Apache气流模型Productionizing数据管道。开始,我只是想一下是谁。我的名字是丹尼尔,我是一个天文学家气流工程师。io我Apache气流项目的提交者。我还帮助建立科学数据平台在过去5到7年的公司像苹果和彭博社和其他几个这样bob体育客户端下载的经历,这就是今天我有点想去和你在一起。所以,让我们来谈谈生态系统的数据。
在大多数大型科技公司,有三个主要玩家在数据的生态系统,数据科学家,数据基础设施团队和分析师削减业务情报专家。这三个人有不同的生活必需品,最好将帮助他们完成他们的工作,但是他们都有相同的目标。所以当数据科学家,数据科学家想工作的事情。他们常常来自一个数学背景或统计背景,他们不一定是软件开发人员,所以他们不想真的,他们想控制CPU、GPU内存,但是他们不想要学习如何使用Kubernetes。
然后数据基础设施团队和数据基础设施团队,他们的主要重点是稳定和可伸缩性。
他们希望能够最好地支持数据科学家同时也确保一个人不能降低整个系统,他们还希望报警和监控,以确保尽可能多的正常运行时间。
最后你有商业智能数据分析师,这些可能是最技术团队,但他们,这些人实际上把这些模型,预测,见解,将它们转化为商业价值。通常数据分析师要容易进入后处理数据通过例如,一个SQL数据库,他们可以构建仪表盘和电子表格报告和那些交给业务决胜局,决策基于这些预测。
最好的促进能力数据科学家和业务分析师可能提供了最大的灵活性,但也让他们的范围内合理的系统,我们想要构建我称之为保险杠铁路模型。
和保险杠铁路的概念模型是给范围内尽可能多的灵活性,但也提醒很快当一个用户试图走出沙盒,这就是很多公司经常将开始构建自己的数据科学平台。bob体育客户端下载
但我在这里求求你不要!是的,你的公司会有很多它自己的业务逻辑,你甚至可能有自己的机器学习库,但是从头构建和管理科学数据平台是一个巨大的努力。bob体育客户端下载每一个特性请求,每一个bug票,你将自己弄出来,所以现在的问题是,如何管理一个灵活的数据科学平台无需构建它自己吗?bob体育客户端下载我今天来你的解决方案是Apache气流和Apache火花,即数据编配和数据处理。
现在,Apache气流是什么?Apache气流是一个工作流调度程序开发在2015年Airbnb的配置的表现即Python代码,Apache气流用户可以使用Python创建有向无环图或DAX指数。这些DAX指数,通过气流容易调度规模和监控系统。
Apache气流是一个非常受欢迎的,一个非常流行的项目与一个非常活跃的社区,我们有一个松弛,不断讨论由提交者和社区内我们有开发列表和GitHub上我们有一个相当活跃的社区。
现在,你的方式建立一个DAG和气流是你定义运营商和设置依赖项。现在这些,这些操作符是一个独特的任务,您可以构建一个接一个或在这种情况下,我们使用四个循环实际构建很多人只有少量的代码和定义这些操作符后,您可以设置依赖项,这样气流知道哪个任务依赖于其他任务,一旦你提交DAX气流,你将有一个指示板,你可以看到你的所有,你的所有工作流程,这是非常,这是伟大的监测和对得到的一个概述和它也有改编作品的案例很多像PagerDuty监测系统。
你还可以看到DAG实时运行,看看历史,所以你可以很容易地看到,哦,,没有完整的三天前,我需要回填,以确保尽可能纠正数据。
,和Apache气流最强大的特性是它的真正强大的社区图书馆创建操作符。气流社区创建的连接器系统像Kubernetes, Hadoop, AWS,火花,DAX指数和很多其他服务。这广泛的连接器允许列表数据科学家只有简单的Python代码说话很多外部数据存储和数据处理系统。
所以让我们去对每一个利益相关者的一个系统像Apache气流。所以我们一开始的数据工程师,因为这些人将建筑气流系统随着时间的推移和维护它。
所以对于数据工程师,气流为标准化监测提供了一个强大的工具和一致性。它基本上也给了他们能够创建一个数据科学平台,是独一无二的公司通过扩展现有的运营商。bob体育客户端下载你可以把社区运营商,然后添加在你的公司逻辑,以确保您的数据科学家工作范围内的安全工作。气流也提供容易集成到弹性搜索和普罗米修斯日志抓取和系统监控及其尺度。等公司Airbnb Lyft,每天数以百万计的任务使用Apache气流运行。
所以当谈到拿走复杂性,让我们提交一个火花工作的例子。这是规范化的火花提交命令,经典的SparkPi,但正如许多火花在生产中使用的人知道,还有什么你的用例变得越来越复杂,有很多配置在提交火花工作。有各种各样的环境变量可以设置不同的Java库,将Python库,可能要包括会变得非常大,这样可以得到,数据科学家会有很多问题,弄清楚他们可以编辑火花提交,他们不能。
这甚至可以更复杂,如果你开始使用HDFS使用Kerberos说,现在你也要做的主要标签管理,你必须知道这些系统是如何正确地工作,创造的火花与加密数据库的提交工作。
所以一种更简单的方法是扩展现有运营商有火花提交运营商作为上游开放源代码的一部分气流和我们能做的是,我们把现有的运营商,我们加入的所有配置要求以及任何自定义逻辑我们希望如此,如果我们处理Kubernetes,我们可以创建一个注意亲和力来确保这个运行在一个节点与Gbob下载地址PS或火花的情况下,我们可以确保它只使用某些关键自来水和通过创建这个包装器,我们实际上是让更少的参数数据科学家,保持我们所知道的范围内是安全的。
从这个意义上讲,Apache气流实际上简化了火花经验因为很多配置,进入提交火花工作可以在运行时被注入。
所以,因为这些自定义操作,因为这些基础运营商实际上是由社区的创建和维护,这就是类似使用气流而不是构建自己的数据科学平台开始偿还,与新版本的气流,会有bug修复这些运营商,将会有更新的新版本时你连接出来,所有这一切,你将会有一个更容易保持最新。bob体育客户端下载现在科学构建一个数据平台一样简单,写一些插件,写一些自定义运营商bob体育客户端下载和所有的底层基础设施都可以由气流管理社区,你可以接触到,无论何时你需要帮助。
现在让我们来谈谈什么是为了数据科学家,数据科学家,他们不仅得到了这个真正的好处,一个较低的层,只是定义的数据工程师,让他们更关注实际的机器学习问题正在研究,但是也很容易参数化管道和存储历史管道git。现在,很容易回滚,明白你一直在做历史和尝试管道具有不同的值。有很多运营商可以处理很多粗糙的ETL所需步骤过程数据和之前你有完整的Python语言的灵活性,而现在我要显示的一个例子。
在这个例子中,假设我们想要运行超参数优化,所以我们有这个线性DAG实际上我们要运行这三个任务并行,因为我们决定他们并不依赖彼此,所以我们改变了两行代码,现在所有的这些任务并行运行,但是我们想知道正确的损失率来使用,而不是仅仅拥有一个单一的损失率,我们可以创建一个四个循环的所有亏损率我们关心和本质上创建一个列表的损失率,然后一旦我们已经创建了一个完整的迭代的损失率,我们可以创建一个新的任务为每个值我们现在试图超周长。四行代码更改,现在你也能够运行在大规模并行计算和做你需要的调优,然后收敛最后找到最好的模型。
也是,所以这也是特别酷现在作为气流1点10点10,我们已经发布了能力实际上在运行时当您运行一个DAG,给它一个JSON对象覆盖缺省,现在,你可以作为一个数据科学家,当你有DAG的模板,你想要的,你就是,你可以填写变量,这样你就可以多次运行相同的DAG具有不同的值。
最后,让我们来谈谈什么是数据分析师。
所以数据分析师,可能最重要的事情是,当数据科学家和工程师有更多的数据,有更好的正常运行时间的ETL管道和更好的监控,以确保这些管道完成,他们有更好的保证数据显示业务是准确的。也是如此,随着气流API,工程师可以揭露端点的数据,允许分析师对数据库执行查询和数据来源计划的基础上。
所以,现在我想讨论什么去创建一个数据科学使用Apache气流管道。
对于这个数据科学管道系统,我要用科学本质上段由饼切数据,即每个数据科学,每一个数据模型需要三个主要步骤,实验中,参数化和productionize。
在实验时,没有更多
实验时,没有比jupyter普遍的工具我能想到的笔记本。管道的能力,像Python交互式显示,您可以很容易地把相同的数据帧和做许多迭代。
现在,气流可以领带与Jupyter笔记本是很好,如果你能提供Jupyter笔记本与你相同的环境气流的工人,你有这一个,你有这个让我们一对一的匹配,让我们来看例子你Jupyter与火花集群通信的笔记本,如果你设置很多的火花配置卷挂载到环境变量,你可以把它,你给他们一个Jupyter笔记本dev集群,那么您可以运行引发就业和DAG。然后当你想升级阶段或生产,所有你要做的就是,把这Jupyter笔记本,把它放在一个DAG然后运行,DAG分期或生产气流实例,允许在运行时气流注入必要的环境变量和引发配置那些单独引发集群。所以一旦你有你的任务和你想要的方式,你会想要参数化。你会想要尝试不同数据源的能力或尝试不同的超参数段。这是一个叫做造纸厂的项目是很有价值的地方。造纸厂Jupyter生态系统中是一个非常受欢迎的项目,它允许用户轻松地参数化Jupyter笔记本。
所以我想展示一个例子,现在,我们想把变量A和B和参数化。
所以我们要做的就是设置参数标记在细胞和笔记本你试验中的值不变,但在造纸厂,你可以给这些参数,以及造纸厂做的是将输入笔记本,取代这些变量与新值和输出一个新的笔记本,这关系到生态系统的气流随着气流造纸厂运营商,现在只要你标记的细胞要参数化,你可以在启动Jupyter笔记本通过气流时,您可以使用造纸厂运营商和修改任何你想要的变量。
当然,最后一步是productionization这就是诸如超参数调优来玩,但是我想谈论不同的机器学习模型测试系统也很常见的和非常有价值,是金丝雀测试。
现在,金丝雀测试方法,以确保你的新模型改进旧的模型相比,但也防止模型可能有错误的经历,举个例子,如果你的模型目前有83%的准确率,突然一个新的,下一个模型有97%,可能已经错的东西,你可能会适合数据,你可能有,可能已经改变了,你会想要提醒你把它投入生产之前。所以,与气流很容易建立一个系统,允许金丝雀测试。这是一个例子,我们构建了一个金丝雀测试系统,使用Python运营商,所谓的分支和分支Python运营商,是需要一个任意Python函数,根据该函数的返回值,可以选择任意数量的分支之间下降。所以在这种情况下,我们有一个模型,我们有一个新模型和新模型比旧的模式,它将部署模型。这第一次运行,它决定,所以它所有的计算值,比较他们在这种情况下,它将确定新模型更好,所以它部署新模型,但如果我们回去我们改变它,这样旧的模型现在价值高于新模型,我们可以再次运行这个DAG这次它将提醒你通过PagerDuty失败或松弛或任何你想要的集成。
因此,对于那些感兴趣的人参与Apache气流社区,很积极,很友好,我强烈建议你来我们(电子邮件保护),我们还有一个非常活跃的dev列表,所有的提交者和PMC成员非常(电子邮件保护)Apache气流和天文学家有很多非常有趣的文档在我们街区。
总结一下,如果你想建立一个数据科学平台,考虑使用Apache气流,它是广泛使用的战斗测试,它有那么多的你将不得不建立自己bob体育客户端下载的基础设施。数据工程师,如果你想使用自定义操作符作为一个简化的生活方式为数据科学家和简化你的生活,你不需要回答很多问题和处理尽可能多的文件。如果你有兴趣尝试气流,你想试试供应商批准分布,请联系,我们总是见面并讨论,创建一个演示。
非常感谢你再一次。
天文学家
丹尼尔Imberman是一个全职的Apache气流提交者,一个数字游牧,不断在寻找完美的碗拉面。丹尼尔收到加州大学圣芭芭拉他的BS /女士于2015年,为数据平台工作团队从早期的创业公司,大公司像苹果和彭博资讯。bob体育客户端下载