MLOps虚拟事件
可按需
组织继续发展他们的机器学习(ML)实践中,有一个越来越需要健壮和可靠的平台能够处理整个毫升生命周期。bob体育客户端下载MLOps的出现是有前途的,但许多挑战仍然存在。
现在注册看砖的最新发展面向自动化MLOps——包括新的Git和CI / CD集成,自动记录实验中,模型explainability和模型。
我们还将讨论:
- 最佳实践从领域专家到大规模实施毫升,从实验到生产
- 你需要一个清单的功能,常见的陷阱,以及技术和组织的挑战和如何克服它们
组织继续发展他们的机器学习(ML)实践中,有一个越来越需要健壮和可靠的平台能够处理整个毫升生命周期。bob体育客户端下载MLOps的出现是有前途的,但许多挑战仍然存在。
现在注册看砖的最新发展面向自动化MLOps——包括新的Git和CI / CD集成,自动记录实验中,模型explainability和模型。
我们还将讨论:
演示将增强演示,以及成功案例和经验等专家的真实示例部署管道进行预测分析。现场问答和讨论将此事件数据科学从业人员和领导人的参与。
议程
开幕式主题
产品演示
客户的故事
现场问答
活动信息:
可按需
演讲者:
演讲者1:
数据大,但它的潜力更大。结合人工智能数据时持有的承诺治疗疾病,拯救生命,扭转气候变化和改变我们的生活方式。我们相信未来取决于数据和释放其无限的潜力。我们来实现它。
演讲者1:
砖是数据和AI公司。我们帮助数据团队、工程师、分析师和科学家共同努力,找到价值内部数据和解决世界难题。因为我们所面临的挑战的企业,人,作为一个星球,不容易。他们在筒仓无法解决。不能由一个人来解决。我们需要的所有数据,所有的科学,所有的脑力。我们需要甲板上所有的手,在一个地方。只有开放统一的数据管理平台,业务分析和机器学习,改bob体育客户端下载变了一切。扩大我们的理解是可能的。它会让事情简单。 It turns weeks into minutes. So data teams can innovate faster, because that’s how innovation should happen. Collaborative and fast.
演讲者1:
所以让我们藐视的假设。打破模具。地图每一个基因组。治愈癌症。暴观察宇宙。洞穴研究黑洞。让每一个声音。黑客攻击。(听不清00:01:33)。承担更大的月球探测器和土地。
发言人2:
天空已经变成了一个男人的世界的一部分。
演讲者1:
从现在开始没有站在你和你的数据,你的力量和答案,因为数据是知道的力量。现在你知道了。
西尔维娅Simion:
欢迎每一个人。和谢谢你加入我们MLOps虚拟事件。我的名字叫西尔维娅西蒙。我做产品营销数据砖,我很兴奋来到这里与你今天为您的主机,以及与我们的演讲者,因为我们有一个非常激动人心的阵容,他们为你准备了一些很棒的演讲和演示讨论和展示的最佳实践和技术如何更好地实施和自动化大规模机器学习。所以我真的希望你会喜欢听到他们,了解更多关于机器学习实践一套不同的设置。BOB低频彩
西尔维娅Simion:
不久我们将踢东西与我们的开幕主题演讲和演示,将随后从H&M扬声器,JB狩猎和阿提斯动物园咨询。然后我们将与现场问答结束战斗结束时的事件,但首先一些家务和物流。
西尔维娅Simion:
你的音频连接将成为整个网络研讨会,柔和的我们听不到你。这个事件的记录将是可用的。确保访问砖博客的细节。会谈和提供最好的经验已经预先录制好的。说了这么多,我们设计了这是一个高度交互的事件。我们的扬声器和几个工程师从砖领域的问题。如果你有问题在任何时候使用聊天框在这个事件,它是平台的一部分。bob体育客户端下载我们也会有一个问答会话结束时的事件。为特定的主持人,如果你有问题请指出它在你的问题,我们会直接给适当的人。
西尔维娅Simion:
对于那些不熟悉砖是谁,我们公司成立了最初的创造者Apache火花七年前。我们的使命是帮助团队解决世界难题的数据。和我们的业务重点是帮助企业加速创新通过结合数据工程师、科学家和数据分析师整个组织。很多人意识到我们的创造者和创始人的一些最好的开源技术,从火花,而且三角洲湖,MLflow,最近我们也收购了Redash。bob下载地址
西尔维娅Simion:
所以让我们开始吧。让我们跳。我们的日程排得很满。我们的开幕式主题MLOps和ML平台状态的行业将由马泰Zaharia和克bob体育客户端下载莱门斯Mewald砖。马泰,克莱门斯将随后肖恩·欧文,谁将给我们一个演示为端到端MLOps Pytorch使用MLflow砖。
马泰Zaharia:
大家好,欢迎来到我们的MLOps虚拟事件自动化大规模机器学习。所以我认为每个人都在这个网络研讨会意识到机器学习正在改变所有主要行业在许多从医疗保健到物流,工业物联网。旅游公司已经部署成千上万,在某些情况下的模型管理日常运作。但与此同时,机器学习是非常不同于传统软件和开发和操作机器学习应用程序很复杂。让我们看看一些的方法是不同的。首先,目标。传统软件的目的通常是为了满足某种功能规范。例如,当你按下这个按钮,你创建一个帐号。基本上这是一个布尔的目标,或者你见过目标,或者你没有。一旦你做到了,你就是这样工作的软件。 It’s going to keep working.
马泰Zaharia:
另一方面在机器学习中,目标通常是优化预测精度等指标。所以这是你从未完全完成。总有办法让他们更好。而且它也可能随时间变化,成为世界你的变化。我们的第二个重要的区别是什么影响了质量。在传统的软件,你的软件的质量只取决于你所写的代码。所以你可以检查该代码,您可以调试它,在某种程度上你可以说,好吧,就完成了,然后应用程序将继续工作很好。
马泰Zaharia:
相比之下,在机器学习,机器学习的定义是项目推广从数据集可以给培训他们。所以质量在很大程度上依赖于训练数据,这些数据必须改变随着时间的推移改变你周围的世界,所以您的应用程序的质量也会改变。此外,当你改变数据,现在你可能也有调优参数的变化对你的算法,这是一个额外的复杂性。困难得多说,好了,一旦我写的代码我完成应用程序,你必须保持培训新数据和调优优化,以获得最佳性能。
马泰Zaharia:
最后,让我们看看你使用什么样的软件来构建应用程序和如何管理。在传统的软件,通常只选择一个软件栈。例如,您选择一个数据库,你选择一个web服务器框架,你选择一个UI框架等等,然后构建应用程序就是这样。
马泰Zaharia:
相反,在机器学习,因为你的目标是优化某种度量你总是希望能够尝试新的库,新算法,各个部分的管道,或者把它们以一种新的方式来做同样的测试,因为如果你能提高预测精度百分之一,百分之一,使潜在的一个很大的影响你的生意。所以你需要基础设施很容易切换的机器学习和尝试不同的库和算法,与传统的软件。所以由于这些差异操作机器学习应用程序是非常复杂的,这就是为什么它引发了整个MLOps领域。
马泰Zaharia:
首先有很多团队和系统涉及,因为应用程序不仅包括一些代码写的ML工程师,也是一个数据管道喂食,还有一些工作在应用程序中集成模型,然后监视的行为并提供反馈来改善它。所以它涉及至少这三个不同的团队,有时也许更需要合作。
马泰Zaharia:
其次应用程序需要不断更新的数据,你需要不断地计算和验算指标看到它是如何做的。所以你不仅需要一个应用程序,该应用程序的运行一整套数据背后管道保持喂养它,再培训并确保它工作在最高效率。
马泰Zaharia:
最后,与机器学习,很难从开发到生产环境,因为在开发中,你尝试很多不同的库和方法,你需要以某种方式捕获通过创新的方式和运行它在生产或运行应用程序,确保它产生相同的结果。
马泰Zaharia:
因为这些复杂性的一个我们发现与业内很多机器学习团队,他们常常要花一半的时间只是维持现有的模型,他们已经投入生产。他们没有很多时间花在开发新的模型。所以想出一个真正重要的MLOps过程自动化尽可能多的这些团队可以创新,不仅花时间照顾这些模型以及确保他们工作至少今天像昨天。
马泰Zaharia:
所以他们应对这些挑战是一个全新的类的软件称为机器学习平台、软件管理毫升开发和操作流程,从数据实验和投入生产。bob体育客户端下载和很多公司建立了内部毫升平台。bob体育客户端下载一些例子包括最大的网络公司如Google, Facebook和乳房,但许多其他企业建设。还有很多工作在开源社区设计,特别是砖,我们开始MLflow这是使用最广泛的开源bob下载地址项目的空间。通常这些毫升平台提供一系列bob体育客户端下载功能。他们可能包括数据管理、实验管理、降低指标加班、模型管理,让你分享模型,还可以使它很容易部署模型推理或复制一个或测试监控和应用程序。他们做这一切通过一个一致的接口,以便您的团队可以采纳和使用不同的模型以同样的方式,不断的寻找,不断的提高最好的模型为一个特定的测试。
马泰Zaharia:
毫升平台有很多不同的组件,但有一件事我想谈谈是什么特性,可以使一个毫升顶部平台成功或失败,真bob体育客户端下载正使他们更成功。基于我们的经验与成千上万的组织合作,使用毫升,我们发现三个非常重要的功能,你应该想到的。第一个是易于采用ML平台由数据科学家,工程师和用户模型。bob体育客户端下载基本上每个人都会参与这个过程。所以你需要问他们做多少功使用平台,特别是如果他们有现有的代码或现有的数据管道或现有的应用程序,你想采用这个平台。bob体育客户端下载还需要问什么机器学习库,部署环境等等所支持。
马泰Zaharia:
和大多数的这些事情会带来巨大的不同。如果平台很容易bob体育客户端下载采用,那么数据科学家、工程师、数据等将开始使用它,你就会开始所有这些好处的主要方法来管理和运营数据的应用程序。如果很难接受,这将是一场艰苦的战斗,人们可能会认为这是太多的麻烦真正开始使用这个。这是一个主要的事情我们试图优化,例如MLflow。
马泰Zaharia:
第二个重要的因素是与您的数据集成的基础设施。就像我说的,机器学习应用程序所有提要数据非常常见的机器学习团队想去改变一个数据管道,收集一种新的数据等等或管理自己的数据集,例如,创建版本,这样他们就可以有一个可再生的模型训练和实验。
马泰Zaharia:
所以它是非常重要的对你MLOps基础设施与数据集成基础设施,新功能,如数据示意、监测、治理和API集和用户接口,方便人们和机器学习数据工程师合作。这是我们花了很多精力,当然。
马泰Zaharia:
最后我们发现非常有用的东西是协作功能,允许团队共享代码,数据、特性,实验和模型在一个中心位置在一个公司。当然,这样做安全,这样你可以控制谁可以访问。这是因为很多机器学习项目可以受益于建立在以前的项目中。也因为有那么多不同类型的密钥和用户参与,这是非常重要的人能够找到一个模型的最新版本,或最新版本的数据集等,建立可靠而不仅仅是电子邮件之间自己周围的具体文件等等。
马泰Zaharia:
这些教训激励的方式,我们也支持MLOps和数据库,然后在我们的团队开发的开源项目。bob下载地址基本上我们的哲学在MLOps是双重的。首先,我们认为每一个组织的内部的需求将略有不同,因为他们的业务,他们的数据,或专业知识等等,它会随时间变化,因此,我们可能会提供一个通用平台,很容易融入不同的工具你可能会在你的公司。bob体育客户端下载,允许您更改的细节你做机器学习随着时间的推移,还有一个主要的方法来管理和团队消费的主要方式和运行你的应用程序使用毫升。我们可以通过使用三大支柱。
马泰Zaharia:
第一个是砖的工作区,这基本上是一个统一的开发环境,数据科学家,毫升工程师,工程师,数据分析师都可以合作工作相同的数据和相同的代码,以便帮助我保持在一起。然后两个开源项目,三角洲湖bob下载地址是一个数据管理层云存储的文档,这是Amazon S3提供交易版本控制,和一大堆的丰富的管理功能,让您轻松处理这些团队的大型数据集。和MLflow机器学习是一个开源的平台,您bob下载地址可以与许多流行的编程语言,集成库,部署工具等bob体育客户端下载等的很多功能我谈论如实验管理、监控、集中共享模式等等。
马泰Zaharia:
在这个网络研讨会中,我们将讨论的要求详细MLOps和其中的一些技术。我们要谈谈我们如何和其他组织执行MLOps规模。我们会有一些演示展示以及从我们的两个大型毫升客户的经验,在这个过程中他们学到什么。最后我们会有一个问答活动的主持人。我希望你享受网络研讨会。
克莱门斯Mewald:
好吧。谢谢你,马泰概述。我将带您亲历在砖我们如何解决其中的一些问题。所以砖提供了很多不同的功能,但是在这个演讲,我想从的角度对砖一个毫升平台。bob体育客户端下载所以在这个演讲,我要通过每一个盒子和描述数据砖地址很多这些挑战。我们将开始与数据科学的工作区。数据科学工作区是工程师的环境数据,数据科学家,ML工程师和数据分析师可以一起和协作在世界上竞争最激烈的问题。内的核心用户面数据科学工作区使用笔记本。和砖有相当独特的笔记本。
克莱门斯Mewald:
首先,它实际上有多语言支持。这意味着每个笔记本都有一个默认的语言。你可以看到这是一个Python的笔记本。这意味着每个季度的笔记本,它将默认情况下解释为Python,然后每个细胞可以声明自己的语言。所以你可以阅读Scala、SQL、Python或R都在相同的笔记本。这不仅给你一个很大的灵活性,但也促进了合作。所以数据工程师可以使用Scala在同一个笔记本和数据科学家可以使用Python。然后这些笔记本也有原生云协作功能,你使用其他产品,如评论在一个笔记本上。也当你分享一个笔记本,我们有一个功能叫做Co-Presence有Co-Presence指标也显示你,别人的笔记本。如果人有编辑的权利,你可以看到他们的游标和实时编辑。 So you can really in real time collaborate on the same notebook and on the same code.
克莱门斯Mewald:
现在,笔记本电脑非常适合探索和实验,但我们也要确保我们方便将其投入生产。所以我们引入了一个新功能叫做Git-based项目允许你(听不清00:17:58)数据成砖,然后检查你的笔记本电脑,到你最喜欢的Git的供应商的选择,通过代码评审过程,运行一些测试,任何你能想到的CSV自动化运行,然后带他们回砖生产运行工作。所以这真的结合了笔记本的灵活性和CSV和软件部署系统的严密性。
克莱门斯Mewald:
现在,一旦你有了两个数据科学的工作区,接下来你真正关心的是确保你可以访问所有数据。所以砖提供了一个非常独特的产品称为三角洲湖,这也是一个开源产品,但也集成到平台。bob下载地址bob体育客户端下载三角洲湖之上提供了事务层的三角洲湖所以你保持在你的数据的选择和三角洲湖湖上为您提供额外的好处。
克莱门斯Mewald:
首先,你可以在任何规模摄取任何格式的数据从任何来源。所以不管这是一个CSV文件或像情文件或一个CSV文件,你可以摄取所有和使用三角洲湖的格式。和三角洲湖提供资产交易来保证数据的有效性。所以任何摄入和任何改变你在δ表,实际上创建了一个新的事务,也促进功能将被称为时间旅行。所以每次交易发生时,我们增加版本,数量写日志。然后你可以回到过去,因此,名称,和看看你的数据在一个特定的版本,因为我们只是忽略版本的交易发生后,这实际上是一个非常独特的功能和促进再现性。和整合这个MLflow我们实际上创建了一个自动日志数据的使用和版本信息。我将更详细地告诉你,后面的幻灯片。
克莱门斯Mewald:
所以在砖我们真的想把重点放在训练的机器学习模型。所以机器学习运行时提供了一个环境的DevOps-free机器运行的配置和优化。我们提供一些不同口味的截图。你看,我选择了GPU运行时,所有的司机和配置设置为你,所以你可以走了。当你选择,你只需要选择一个[听不清00:20:24]类型的云,你的选择。然后你可以训练你的GPU模型。
克莱门斯Mewald:
现在,我们在这些运行时包什么?我们最受欢迎的ML打包库。从TensorFlow, Keras, Pytorch, Scikit-learn当然MLflow。预配置和预装机器学习在运行时。我们释放机器学习运行时经常以确保这些都是最新的。我们严格测试,以确保所有这一切其实很好地协同工作。你不必担心自己设置这些环境。我们还包括库更容易分发你的机器学习,深入学习库。和我有一个幻灯片后这一个。当然,我们也建在图书馆的超参数调优和autoML我会回到一个或两个幻灯片。
克莱门斯Mewald:
所以对于分布式训练,我们实际上支持内置机器学习在运行时分配Keras, TensorFlow和PyTorch模型。当然,你总是可以训练他们和评估模型的分布式火花,但Horovod运行一个特定的用户库,帮助您分发Keras, TensorFlow和PyTorch模型。然后我们还介绍了支持TensorFlow原生分布策略,这是在TensorFlow 2.0中引入的。
克莱门斯Mewald:
然后超参数调优,我们整合叫做Hyperopt的一个图书馆,有一个非常简单的接口。我们配置了搜索空间,然后你调用这个函数管理,然后我们还用这个API称为SparkTrials扩展它。如果你使用Hyperopt开源库,它将运行所有这些试验序列。bob下载地址但SparkTrials,我们使用一个集群并行化试验,在这里你可以看到6个试验并行总共96次试验。再一次,这并不需要一个火花模型,所以你可以训练一个Scikit-learn模型指导你通过它。然后我们基本上把Scikit-learn模型和训练六个不同版本的模型超参数在同一时间不同。你会看到在后面的幻灯片,但这与MLflow自动集成。得到所有的跟踪你的免费培训运行在MLflow超参数。
克莱门斯Mewald:
现在,你的模型是训练有素的部署选项是什么?和MLflow真的提供了一个非常灵活和丰富的开箱即用的部署选项。所以这张幻灯片上,你可以看到只是一个示意图的一些支持毫升框架,它是如何被记录为一个MLflow模型,在MLflow追踪服务器,然后部署被MLflow注册管理。然后你有很多不同的选择的部署这些模型,无论是一个码头工人容器,火花UDF rest端点或使用一些开源库。bob下载地址我双击其中一个选项来强调对模型的一个重要组成部分与MLflow部署。
克莱门斯Mewald:
这是您将使用的核心方法部署毫升模型记录作为MLflow模型引发UDF。所以你可以看到,这里只是装载它,你会引用模型在模型中注册的名称和生产阶段,然后把它应用到一个数据帧。这适用于火花MLLib模型。现在让我们看看这对Scikit-learn看起来像。这是一行代码,您将使用Scikit-learn模型,这是一行代码,您将使用TensorFlow模型。所以为了戏剧性的效果,让我回去,引发MLLib, Scikit-learn TensorFlow。所以我认为你注意到,是的,他们都是一样的。这就是MLflow格式的好处之一是,它叫做Pyfunc这种抽象,使任何毫升Pyfunc函数模型。
克莱门斯Mewald:
所以所有的部署选项看起来一样。所以不管模型是在火花MLLib受训,Scikit-learn, TensorFlow,它的运作是一样的。和相同的声明适用于所有的部署选项。所以建立一个码头工人容器MLflow模型,同样的事情,不论什么一个MLflow框架,我们使用。这是非常方便,特别是因为我没有看到一个企业只使用一种类型的框架。
克莱门斯Mewald:
现在我们讨论了完整的整个流程,让我们看看所有这一切的基础就是MLflow和给你提供的端到端MLOps和治理能力。所以在MLflow我们介绍这个功能,我们称之为汽车日志记录。所以我们自动跟踪尽可能多的信息关于你的工作,堆满了我前面所说的,这是跟踪的数据来源和版本控制。如果你使用一个数据表
克莱门斯Mewald:
支持的数据源和版本控制。如果你使用一个数据表,我们跟踪表本身的使用和版本号如前所述。所以,你可以回去后说,我想看看我的数据用于训练确切的版本,我用。这信息是自动登录的。顺便说一下,我们做钩到火花数据源API。这适用于任何火花数据源如果你读一个CSV文件,它的工作原理。不过,当然,如果你读一个CSV文件,我们不需要版本控制的时间旅行特性。现在我们也开始捕捉这些模型的模式。
克莱门斯Mewald:
所以你可以看到,我们必须输入模式的一个例子,然后预测列的类型为模型,以许多不同的方式帮助我们。其中一个是在模式部署。我们可以检查是否兼容模式的部署时间模型。这就显示了基本的自动跟踪的所有Mlflow框架。对于所有这些Mlflow框架,如果你训练模型,并使用自动登录Mlflow,你得到的所有参数,指标在百分之一的基础上,我们可以跟踪所有的工件自动为您记录。正如你所看到的,这适用于所有流行的Mlflow框架。
克莱门斯Mewald:
这也是我之前显示,自动记录hyperparameter调优搜索,然后我们可以在所谓的平行坐标可视化情节。阅读的方式这是每一个这些线监测试验。颜色编码的优化指标,这是损失。所以你可以看到所有的蓝线有一个损失,然后你可以直观地看到这实际上每个参数的值会导致一个高质量的模型。再一次,这是自动登录如果您有参数调优砖使用机器学习一次。
克莱门斯Mewald:
我们也开始实现自动跟踪模型的可解释性。所以使用一个非常受欢迎的图书馆给世鹏科技电子罩,我们在路上为模型计算功能的重要性你训练它。然后如果你做类似的训练图像模型,我们可以想象未来的基于区域的图像重要性有助于预测。这是强大的,它给你一个了解你的模型在训练时间行为。
克莱门斯Mewald:
当然,除了所有男性的具体特性,我们还跟踪代码本身。在临时版本的代码当你训练它,经典配置时使用你的电脑运行模型和环境配置库的使用。
克莱门斯Mewald:
一旦准备好部署模型,我前面提到的,您可以使用该模型注册在砖。的模型,所以这是一个截图在砖注册的管理模式,在那里你可以找到模型,他们的版本,这些版本的部署阶段。和我们有多余的控制上实现每个阶段水平,促进不同阶段之间的切换,我们稍后会看到下一张幻灯片。
克莱门斯Mewald:
所以你可以看到我们有治理的要求条件具体阶段模型。如果有人没有访问控制过渡,他们只看到请求的选项。然后我们当然保持审计日志模型发生了的一切。我们最近的评论在这里实现,基本上,你可以发表评论,与同事协作管理这些模型的部署过程。
克莱门斯Mewald:
这张截图是来自某些产品和砖。这是最简单的方法你可以部署一个Mlflow模型作为终点。单击一个按钮,表示启用服务,我们提出一个集群和终点暴露模型作为休息,它还会自动知道他们所有的版本和部署阶段。如果你调用模型名称减产终点你将永远得到你的要求总是被路由到的版本将会标志着生产。这是截图实际使用火花的一个输出流实时监测模型。这是计算流AMSE告诉你新预测模型的质量和标签。
克莱门斯Mewald:
所以你可以猜,当我们走过所有这些信息,我们跟踪,我们基本上是检查了他们所有的评论在这再现性清单。我们有使用的代码所使用的数据,您使用集群配置,环境规范。如果你真的实施了再现性特性,允许您在事后我们生产使用的代码,如果您使用的数据表,我们知道你使用的数据版本,我们可以为您重新创建集群或具体的配置。我们还可以创建相同的环境和库配置,你这是非常独特的,并由这一事实使他们实际上跟踪所有这些信息端到端从数据模型部署。这是一个快速概述砖一个毫升平台。bob体育客户端下载这个,我要把它传递给肖恩,我们会给你一个实际产品的演示。
肖恩·欧文:
好,大家好。这是肖恩·欧文。我是主要的解决方案架构师在砖,今天,我在这里向你们展示一些新特性的MLflow砖。这些人则和服务从注册表和新汽车Pytorch和世鹏科技电子日志记录功能。但是在这个过程中,我也想向您展示如何使用一些有趣的方式我认为可以应用这些工具如Pytorch和世鹏科技电子甚至三角洲湖来解决这个问题。和这里的问题具体分类图片,胸部x光检查。这是国立卫生研究所提供的这个数据集Kaggle实际上成为比赛的一部分。所以随着图像,我们有标签,他们的一个或多个14种不同诊断x射线所示表明也许是什么,什么是错误的与胸部在这些情况下。这里的任务是学习,把这些图片,也许解释了为什么他们这样的标签。当然,在这个过程中,我们将使用MLflow来帮助我们。
肖恩·欧文:
所以谨慎的话,我不是医生,你可能不是一个医生,这里的模型我们将构建一个简单的一个。它可能不够好供临床使用。这不一定是不够准确的。所以请不要诊断。不要在家里尝试这些,但我希望它表明,这种学习和解释是完全可能的。和所有的事情一样,我们从数据开始,我不会花太多时间在这里的数据,但是我想告诉你如何三角洲湖这样的技术可以帮助处理所谓的非结构化数据如图片。所以δ正如你可能知道,支撑Lakehouse架构和砖,这意味着你可以做这样一个数据仓库业务规模,但你也可以分析非尖端表格数据图像在同一个地方和δ可以帮助。
肖恩·欧文:
所以我们要先阅读了火花,火花就可以轻松阅读的图像目录完整的图像,得到不错的缩略图在当我们装载这些线在砖。然而,我们可能不希望刚读火花的图像,但继续ETL三角洲表。所以为什么?δ是事务。这意味着我们不需要担心谁写的表的图片为我们阅读它。它还提供了时间旅行。这让我们也许回去查询这个图像数据集的状态之前的时间点。也许当我们构建模型三个星期前,我们可以查询,表的时间。
肖恩·欧文:
但也许更重要的是,深度学习通常涉及某种程度的前处理。我们必须规范化图片、大小和深度和渠道,也许我们想做的,只有一次,而不是一遍又一遍,我们通过数据建立一个模型。在云中,也可以缓慢的反复阅读一堆小文件保持清单那些存储桶。也许有速度优势etl一旦进入一个表和阅读这些气泡从一个压缩像三角洲高效的数据存储,如果我们必须读一遍又一遍。
肖恩·欧文:
为此,我们将从一点开始。我们同意的图像,但也很快ETL成blob和我们还需要加载元数据与这些图像,标签,和解析他们一点得到各种标签的图片,然后简单地加入他们的行列。加入了图像数据和标签,我们可以简单地写出来作为三角洲表,并将它注册到元商店。我们应该能够看到的例子,如果我们想要的。好吧,我们好。我们有图片、列和14种不同的可能的诊断。回笔记本。
肖恩·欧文:
现在让我们看一下建模问题。最终,在这个例子中,我们将使用MLflow因为我想向您展示如何与Pytorch MLflow集成。实际上MLflow集成了所谓Pytorch闪电。所以对于Pytorch用户使用Pytorch通常意味着你就会知道,写了不少样板代码来描述培训循环和手动运行它。Pytorch闪电抽象一些。所以你不必写的一些样板你可以写这里的关键部分。所以我们会在一分钟内。
肖恩·欧文:
所以要从这里开始,我们将阅读此表的图片。既然不是很大,大约是2.2 gb。我们要把它降低到一个熊猫。DataFrame这里做一个简单的训练测试分裂之前我们开始训练。现在,我会说,你可以同样的方式适应更大的数据集。你可以分发培训的火花称为Horovod Pytorch和工具。但是为了简单起见,我们没有这样做。我们要培养这个相对较小的数据集在一台机器上。
肖恩·欧文:
我们将定义一些辅助函数。Torchvision同伴包Pytorch,允许您定义一些额外的转换所需的输入。例如,在这里我们需要转换图像的通道顺序有点和规范化的方式纠正pre-trained层我们会应用到模型中。所以一点细节,但Torchvision有助于将帮助我们。又Pytorch用户会知道你访问数据通常定义一个数据集的类定义的数据集有多大,你如何得到单个元素。这里我们使用这些变形金刚等等,我们说它是如何定义的相对增量表中的原始数据准备的东西在Pytorch这个特殊的模型。这是一个真的,只是阅读的图像,把它和返回转换后的版本。
肖恩·欧文:
现在,我们进入Pytorch建模之前,我们要让MLflow的这个新特性。MFflow已经支持自动登录的流行包像Scikit-learn Keras TensorFlow,现在支持Pytorch。为Pytorch启用自动登录,我们甚至不需要编写MLflow代码为了得到一些好处为了记录我们做什么当我们火车Pytorch模型。
肖恩·欧文:
所以让我们构建模型。现在这里是我们要用Pytorch闪电,我希望这是有趣的Pytorch用户可能还没有见过它。与Pytorch一样,我们需要定义一个模块,定义了网络我们要培训和定义我们如何训练它。但是而不是直接写训练循环,我们只是填补一些空白。例如,我们必须定义如何,网络是什么样子,这里其实主要是密集的网一个21。所以我们加载这个pre-trained模型。这是转移学习,我们不会试图再培训,并添加一些辍学顶端,并添加一个完全连接致密层之上,为了最终建立一个分类器的预测从这些图像的一个或多个这些14可能的诊断。
肖恩·欧文:
所以很简单的东西Pytorch用户。好处是必须找到所有的关键部分。前是通过数据,优化器是什么,如何验证,如何训练。我们只是让Pytorch闪电,做下面的工作。它可以做一些不错的东西例如,自动调整,我们的批量大小自动调整,我们的学习速率,处理早期停止之类的东西。这是一个很好的框架和Pytorch闪电因为它有所有这些钩子是MLflow可以钩到自动日志。
肖恩·欧文:
所以我不打算运行以来这里的实时模型训练需要17或18分钟GPU。但如果你运行这个,你会发现奇迹般地没有MLflow代码,你会得到模型记录如果你跑细胞MLflow砖MLflow集成到这个实验侧栏可以看到。如果我们流行出来,你会看到这个模型是我们从Pytorch汽车日志记录。它有一个相当丰富的信息的模型?我做到了。花了多长时间,是什么笔记本的具体修改的代码,使模型?当然,所有的关键参数为Pytorch模型定义关键指标,史诗是最好的,最后验证的损失是什么?当然我们得到模型得到最后一个检查点。我们得到一个总结的网络架构,很有用的信息,甚至一些有用的提示我们如何可能会从MLflow装载这个模型后。
肖恩·欧文:
现在我还想告诉你…好吧,首先,我应该说,这个模型,我不打算给你太多关于它的准确性,但放心它实际上很类似结果的准确性达到你可能会看到在报纸上介绍这个数据集。因此pre-train层和现代工具我们可以做的好。开箱即用的。我相信你可以做得更好一些,一些时间GPU和独创性。
肖恩·欧文:
现在,下一件事是有趣的。我想向你们展示与MLflow服务模型。一个关键MLflow手你回你的模型也许一个更有用的形式。有时这可能是一个引发UTF,然后可以应用函数引发一系列的数据,但它也可以创建一个模型,一个microservice, REST API。你总是能够部署到Azure服务毫升或亚马逊SageMaker。MLflow但最近,最新版本,你可以为模型的模型注册在砖。这就是我要告诉你。这是我为这个笔记本注册模型。和我目前的工作在三个版本,如果我喜欢我可以启用服务注册模型和可用的我突然有一个终点即使在砖,我可以发送图片给你分类。
肖恩·欧文:
但我想说的更多。那么这些REST API是公开一个服务,可以接受输入,并返回的JSON格式化描述分类作为输出。唯一的问题是输入在这里真的是一个形象。这是一个张量和没有一个很好的方法来描述,在JSON,至少不是形式,MLflow可以自动转换成JSON。为了使这项工作,我们要定制一点。这在某些方面我认为说明了MLflow的力量,如果你需要你可以改变它是如何工作的。所以我们要定义一个自定义MLflow模型,将包装我们Pytorch模型和使我们接受形象base 64编码字符串的字节将解析图像,应用转换,应用Pytorch模型,然后返回结果。
肖恩·欧文:
所以这真的不是太难。如果你需要,你可以这样做。这现在使我们能够把这变成一个服务,我们可以接受图片通过JSON并返回他们的分类。所以在定义这个类,我们需要做的是我们实际Pytorch负荷模型,在这个包装器和日志包起来。这个模型我们部署MLflow注册为现在的砖。所以你可以看到我已经注册,但仅供参考,你会发现,你可以在这里注册模型通过点击注册模型和选择模型你感兴趣。但我已经注册了一个我感兴趣的。
肖恩·欧文:
只是为了证明它的作品,让我们尝试一下代码装载图像并将其发送到终点。所以我要加载一个图像从存储。再一次,一个三角洲湖的房子建筑的优点是你可以处理数据表。你可以处理数据文件和图像。没问题。所以我从数据集加载一个图像。这就是它看起来的样子。放射科医生也许可以理解。我没有看到什么有趣的东西,但让我们看看模型认为。为了使用这项服务,我们只需要编码,编码一个适当的JSON请求,将其发送到API和呈现结果。 And we get that back here as a pandas.DataFrame.
肖恩·欧文:
这里我们可以看到的是它看起来像模型认为这可能是肺不张的一个例子,这是一种肺崩溃或渗透,但可能不是疝气。这是概率。嘿,这是有用的。我的意思是,如果这是一个更好的模型和审查由专业人士,你可以想象这将是一个有用的助理也许放射科医生,想要一些正面向下的他们可能会寻找什么。也许一个模型可以帮助他们找出甚至可能。
肖恩·欧文:
之前我去更深层次的在这一点上,我想介绍一个新的和其他功能的MLflow最新版本的人。所以模型注册,您可能已经看到,其作用是管理的一部分的状态版本的模型。所以你可能有一个当前的生产版本,您将创建一个新版本的模型和分段的候选人,你测试它。和你在某种程度上促进生产如果你测试通过许可。
肖恩·欧文:
这些都是重要的事件,这些事件可能创建一个新的模型,创建一个新的测试候选人需要触发类似测试工作,CICT工作。这就是为什么MFflow现在支持人则触发操作以响应这些事件。很容易注册。你需要直接访问REST API,但可以像这样,倾听有效地对这些事件。现在,简单的例子,我要建立一个Webhook触发消息松弛通道只是一个简单的演示,但你可以想象比这做得更多,引发λ,引发CICT工作。所以我注册这Webhook引发萍我松弛的频道,每当发生注册模式,我们应该看看这个作品。例如,如果我进入一个模型和评论。我应该发现它注册一个新消息在我们松弛的通道。在这里。好吧。 Pretty good.
肖恩·欧文:
好吧。现在我想进入另一个新特性,即模型解释。有时,我们想知道为什么模型做的做的事情。有一个流行的开源工具,称为世鹏科技电子,可以bob下载地址为你这样做。这可以解释在个体预测水平,那么输入导致模型做出预测。使用世鹏科技电子不是一件难事,但在MFflow 12,它可以自动做漂亮。一行或两行代码,你可以得到MLflow为您创建模型的解释,甚至日志的情节。这是一个真正的总结情节说整体模型的重要特征是什么。一长边你可能看到的是实际的世鹏科技电子值,模型的解释,这是可用的。你可以到任何模型。 For this particular model though, I want to take the opportunity to show you something else you can do with SHAP, not through auto logging, but through a little more manual usage of SHAP that may be more interesting for this dataset.
肖恩·欧文:
所以事实证明,世鹏科技电子可以解释图像分类在一个有趣的方式。用一点代码,你可以尝试覆盖图像热图显示的图像模型分类方式引起的吗?所以在这种情况下,我实际上加载图像数据集,绝对是属于渗透,我从世鹏科技电子创建一个讲解员,这个模型可以解释,问解释。其实解释的共振的中间层。真的对不起,密集的网。这是你得到的。所以你可以看到也许在这些x射线有黑点左边的肩膀,一个黑点在这里对肺的底部附近。不管出于什么原因,认为这些都是特别重要的分类模型。及其分类。好的,很好。 92% chance it’s infiltration, maybe edema, maybe atelectasis.
肖恩·欧文:
所以我认为这个扩展,这些模型不仅可以预测黑箱预测,但讲解员。也许如果我们建立一个更好的模型,这样的事情可以让它更有用的专业人士正在寻找因此,也许你正在寻找去哪里看整体。也许模型可以更容易地看到一些人眼并不明显。这些预测,这些解释可以创建与火花,写入三角洲表,他们甚至还可以登录。有的MLflow之内,这都是完整的圆。
肖恩·欧文:
最后我想向大家展示的是一个新特性在砖称为项目。所以你们知道砖在工作区中知道你的工作的,我们通常使用个人笔记本电脑,但往往我们真正想要的工作的笔记本电脑在一起因为我们需要版本。虽然你总是能够得到一个修订历史的个人笔记本电脑,直到项目过来,你真的不能版本和提交修改组的笔记本。这就是为什么这就是项目存在的原因。
肖恩·欧文:
所以它不会改变你如何处理事情。我工作在一个笔记本,里面是一个项目,在工作区中不仅仅是一个浮动的笔记本。但这基本上意味着这里得到更深层次的整合。一个,我看看能分支,对不起回购这笔记本,这些支持的几个笔记本,我可以编辑和提交多个笔记本设置提交消息如果我喜欢。所以这使得人们也许更自然,用于版本控制更大的项目,由多个笔记本使用这些支持的回购,而不是简单地建在版本控制。随着时间的推移,我们希望扩大这一特性让你版本与笔记本电脑,也许小配置文件或小数据文件之类的东西,因为有时那只是更自然的事情。
肖恩·欧文:
所以我希望你听说过MLflow在这里看到了一些新特性,人与Pytorch集成和世鹏科技电子自动记录。一些三角洲的方法可以用于特定的机器学习问题,模型与服务注册中心和一个图像分类器可能是如何工作的。最后,一个快速的注意项目和他们可能意味着您的工作流。
西尔维娅Simion:
谢谢你,马泰,克莱门斯和肖恩。快速提醒,如果你想尝试一些你之前看到的股票和演示去www.neidfyre.com/trial,这些工具是可用的。您还可以继续通过问答小组提交你的问题,我们进行演讲。
西尔维娅Simion:
现在让我们听到直接从我们的客户如何处理日益增长的重要性机器学习在他们的产品和系统。更重要的是,他们如何管理他们的ML计划相关资产和整个生命周期内的组织吗?
西尔维娅Simion:
下一位演讲者是凯文H&M的王。凯文将H&M参考体系结构的概述和杰出的堆栈旨在解决一些常见的问题在人工智能和机器学习等产品开发效率,和互操作性,生产速度,等等。凯文也会给生产工作流程的演示。请欢迎凯文。
凯文王:
大家好。我的名字叫凯文。我公司——工作
凯文王:
大家好。我的名字叫凯文。我的工作能力在心房。今天,我将谈论MLOps如何在大规模应用它。我工作在一个组织叫人工智能的基础,心房。在人工智能的基础,我们工作在不同的用例不同的业务问题从设计采购物流,销售管理,以及如何参与我们与我们的客户。几乎覆盖了整个心房价值链。每一个用例是由一个多学科的敏捷产品团队。他们开发和部署的产品。在开发不同的机器学习产品他们共同的挑战,例如,如何自动化大规模机器学习培训管道,如果我们谈论的只有单一的模型,但它可以解决数以百计的南部模型以及如何提供您的机器模型的再现性吗?
凯文王:
比方说半年后你希望能够采取相同的代码相同的数据,再教育相同的模型,你的模型如何审批程序的样子,这样你就可以打开新的模型转换为生产有足够的能力的信心。我们试图解决这些不同的挑战整体通过利用我们的参考体系结构或策划。即使他们是解决不同的业务问题,他们共享一个共同的过程。例如,对于模型的训练,它是关于数据,应用一些变换,训练模型,最后将模型到模型库。模型部署,大概也把数据,应用相同的变换,作出预测,然后保存结果,提供给终端用户。在中间,你有一些共同的关键问题。例如,如何加快成和反馈循环,如何监控你的模型性能,数据漂移,同时你的基础设施。
凯文王:
同时,如何做版本控制不仅您的模型,甚至你的数据,这样你就可以管理他们在软件构件一样。在此基础上,我们提出了一系列的技术组件,例如,模型训练、模型管理,以及模型部署。这里有一些障碍是很重要的所以我们可以接不同的工具和发展他们的独立,因为机器学习是新兴的领域。他们新工具出来每一天,每个星期、每个月。我们希望利用最好的简化我们的工作。
凯文王:
经过一年的勘探和也偷懒,我们聚集许多工具。例如,对于模型的训练,我们有三个栈为新用例开始。我们倾向于利用数据打破世纪架构。然后更成熟的用例,我们扩展,也自动化是关键。我们倾向于使用气流或Kubeflow机器学习为主要协调器。模型管理,和其他许多公司一样,我们喜欢MLflow作为模型的部署,明确网络模型。对不起,我们爱Kubernetes。同时,开源工具像很少带来大量的机器使特定的功能。
凯文王:
除此之外,系统可观测性是相当重要的。我们爱Azure堆栈。所以我们倾向于使用默认的工具像Azure监控和电力BI大多数情况下,和Kubernetes空间应用,Grafana,前提是一个很好的选择。机器学习产品(听不清00:53:33)软件产品,所以我们可以利用的最佳实践持续集成和持续交付自动化学习过程。最后,看着这些复杂的堆栈,结果我们不能做一个合适的基础设施自动化。
凯文王:
让我们来谈谈模型训练。新开始用例我们爱互动模型开发或笔记本。然而,笔记本不是一个可伸缩的产品开发,你的代码库的生长方式,还有你的团队的规模增长。你倾向于智慧很多如果做notebook-only开发技术债务。我们现在都处理,基本上在笔记本上提取复杂的逻辑,把它们放在单独的隔离模型,我们可以在本地开发,然后使用持续集成一起把所有的任务和培训数据库。
凯文王:
让我们来看看它是如何工作的。这是一个项目,我将从互联网下载一些数据和修剪随机模型,然后保存模型被迫MLflow。让我们来看看这个项目结构。证监会文件夹,我有许多python模型和捕获所有不同的使用功能。例如,配置管理评价方法可以解释许多策划和评估方法。准备数据的方法,其中包括一个模型,其中包括许多与聪明的数据(听不清00:55:11)。
凯文王:
在测试文件夹,我py python测试用例来评估这些模型。在笔记本上文件夹,我有我的笔记本,你会得到一个顶级py文件的数量。而且,你甚至可以看到它的笔记本,我可以利用ID来评估这里的语法。
凯文王:
现在假设我们所做的所有的地方发展,也像编码和py测试,我们想上传这个笔记本砖和写作。
凯文王:
所以我将调用这个脚本。什么这个脚本就像过期刊物包我所有的传递模型和上传数据砖,然后也把我的笔记本上传到砖。现在,让我们看一看。这是我databriks工作区。在这里我的笔记本一直放在一个特定的文件夹结构。这是我的项目名称和分支的名字,我的用户ID,我的笔记本。所以在第一个说的笔记本,它会尝试安装这个蛋文件,上传的这个脚本。鸡蛋文件被放置在一个特定的结构对分支我正在和我的用户ID,因此我不会覆盖我的同事的工作。
凯文王:
现在让我们运行这个笔记本。这里来初始化随机种子。现在,准备训练数据集是一个方法调用。之后我们开始训练模型。这里假设我想改变从100年到150年我选择而不是随机森林模型。和业务培训模型,它还将使用MLflow跟踪以及其他指标的重要参数。这是正确的。
凯文王:
好吧。我们已经看到一些关键错误指标,最后,它还将评估模型和情节,一些不错的图表。看起来像漂亮的图表。假设我们很满意这个模型中,参数的变化。现在我们想提交代码。所以回到ID。在这里,我将同样的变化从100年到150年,然后我就把我的代码。
凯文王:
现在我的代码。让我们看看CI管道。CI管道,这是我我的模型,新管道行被触发。让我们来详细看看。这个管道包括两份工作。的第一份工作,它将研究称为质量检查。基本上,它将运行所有py联系测试单元测试,发布测试结果并发布测试覆盖率报告。与此同时,我们也包我的笔记本和鸡蛋一起上传我的笔记本文件成砖,砖上运行笔记本。它将监测笔记本运行,直到完成。
凯文王:
现在完成了。让我们看一看。这是笔记本电脑上运行的结果。让我们看看所有的打印。而且,MLflow模型注册表。我们应该看到一个新的模型。好的,12版本。这是一个新的模型,我们只是训练和在舞台上仍没有。
凯文王:
好吧。是第一个演示我们可以看到,作为本地动态与笔记本可以很好地集成开发与砖。同时,通过利用持续集成,我们可以自动化的过程,因此提供了一个很好的方式来跟踪模型元数据和管理模型一样LS软件工件。除了新启动产品团队。我们也有许多的产品团队更加成熟也作为他们的主要担忧是自动化和可伸缩性,因为你需要训练许多模型。而不是训练单一模型,这些产品团队倾向于特定模型训练等特定地理区域的国家,特定类型的产品,像一个男人的t恤,以及具体的时间。
凯文王:
然后这些思考我们的规模是一个场景。我们很容易可以设置在不同的场景。这是一些他们每天需要训练模型。对于这种类型的用例我们倾向于利用气流或Kubeflow Kubernetes之上的基础架构,我们可以上下东西集群规模,并利用外部计算能力像砖集群,并运行本地计算集装箱码头工人在同一集群内。
凯文王:
让我们继续谈论管理模型,模型服务。在高水平,您可以将整个生命周期划分为五个阶段,模型开发,val,批准,模型部署到暂存,然后部署到生产活动。我们已经讨论了如何做模型开发自动和结果在MLflow生成一个新的模型。val即将模型部署到开发环境,运行所有的val,然后在模型中批准你的团队可以批准他们的模型。它将打开模型版本进入开发阶段,也将这个新模型部署到登台环境。后来一些系统可以测试,然后又有人可以改善你的模型。提高阶段的版本在MLflow刺激,然后模型部署到生产环境中。
凯文王:
让我们来看看它是如何工作的,你的第二个演示。但是在我们开始演示之前,我还想说几句关于塞尔登或塞尔登的核心。塞尔登核心是开源库构建Kubebob下载地址rnetes之上。这是引入机器学习功能的一部分特定的任务。例如,它使您能够轻松地打包microservice模型。你可以让它像gRPC或Rest API。同时,塞尔登介绍一些核心概念称为[infrasca 01:02:25]。思考你的不仅仅是单步预测模型,包括异常检测、功能转换。同时,也许你想要发送一个模型我们坛,选择你的一个模型。最相关的对这个特定的请求,然后作出预测。
凯文王:
这些步骤可以运行在一个舱或容器,你可以独立皮肤和使用它。现在回到MLflow,我们可以看到,该模型的版本11。我的模型、版本11日,现在在生产。假设我们是满意的版本12,想将它部署到生产环境中。所以我们回去打开另一个组件库,我的模型,在这里,我有一个元数据文件。我的模型信息雅美族人,我指定我的砖工作区,这就是我MLflow实例,同时我的数据模型的名称。现在我想改变版本从11到12。
凯文王:
部署它,我只需要做一个简单的工具。现在完成了。它会自动触发模型部署到管道。但在我们调查管道之前,让我们看一看是一个Rest API。
凯文王:
这是一个邮递员。我经常用它来运行一些rest调用。这是我的端点模型在开发环境中,我可以打个电话。然后我可以获得一些反应模型。看起来不错。而且,塞尔登想出这个模型元数据API,它应该调查来获得你的模型的元数据信息。这里你可以看到模型是我的名字,昨天和11版本的创建。而且,在这里你可以看到一些输入模式,也在这里你可以看到输出。
凯文王:
所以模型部署之后,我们应该看到这个模型版本提高审判。让我们回头去CI管道。这是另一个持续集成管道模型的部署。当我得到推动,管道被触发,这个包括四个阶段。在第一阶段,它将加快模型的模型,从模型MLflow注册表根据我们给的版本,它也将文档图像然后推在容器注册表。
凯文王:
之后将其模型部署到开发环境就准备测试。这里我使用开源工具像执掌学期利用我部署。所以将其部署在开发阶段和生产线,我可以使用相同的设置脚本。现在是部署在开发环境中。后来也被部署到最终阶段如果我批准它,然后去生产,也需要人工批准。现在让我们回到邮递员让另一个rest调用是否准备好了。我应该植入滚动升级,但现在还没有。这就是为什么有一些停机时间。好了,现在你得到答案,因为我们检查元数据。现在是12版本。 Looks good. And let’s say we have done some tests in dev environment and decide to approve it to the production environment.
凯文王:
审查。批准。现在是部署到一个临时的环境。假设在舞台环境。我们想要一些系统测试运行,推动负载系统是否执行尽可能好。我要用这个工具称为Jmeter。在Jmeter,我可以模拟100个客户,发送请求并返回一个滑。这一个客户我在两分钟内增加。这些客户将发送相同的rest调用通过我的模型预测服务。是一样的,然后它将评估结果。 I also deploy some cool feature like auto-scaling in this model. This is my set under current file. Here I specify my [infants scrub 01:08:40] in this caseI only have a single container with a single microservice. And also I specify as a horizontal Potter scaling policy, basically it will monitor my CPU usage. If it’s about 40% is just start to create more replica of my model prediction service up to 500 instances. Let’s watch how many instances there are today.
凯文王:
现在我们有两个副本。让我们开始性能测试。现在我们开始,我们可以看到,在延迟是很好的开始,50岁,60岁,70毫秒,但开始加大而的客户数量开始增加。我还添加了一些很酷的功能,如超时。基本上,我们不想让客户端和…我们不希望我们的最终用户永远等待。在情况下,模型不能预测它会返回一秒内HB 500。然后我们可以在客户端输入一些缺省逻辑显示一些默认的结果,例如。同时,在这里,我们可以看到,添加了一个新副本,因为有很多开始增加。好了,添加了实例。同时,我们可以看到超过运行一些毫秒后,我们开始看到一些红旗和一些箭头从模型回来。 Also, now we can see there are more replica has been added. I will not wait until it finish. Let’s assume we are happy with this result.
凯文王:
现在最后一步。我回到我们的DevOps和批准这个模型并将其部署到生产中。在第二个演示,我们看到,通过利用Azure DevOps等工具,我们可以很容易的自动化部署过程的模型。而涉及到人类是一个循环,太像塞尔登真的让模型暴露在预测服务非常容易的。
凯文王:
最终的外卖和MLOps很复杂。之前开始寻求技术堆栈,后退一步是很重要的,思考你想解决什么样的问题。如何设计过程的样子,然后定义体系结构,最终与你的工具。其次,如果你有一个数量的产品团队所有工作在机器学习产品的生产,也许是时候考虑平台的方法。bob体育客户端下载有一个中心团队发展中一些关键组件并提供服务的专业团队。最后但同样重要的是,通过利用云服务,你可以使用它。你可以发展得很快。非常感谢。非常感谢。
发言人3:
谢谢你,凯文。我们的下一个演讲者是韦斯·克拉克J.B.亨特和卡拉菲利普王子”咨询。他们将讨论如何实现一个自助服务框架试验和部署在其他价格规模J.B.亨特。这个文档将包括核心价值观、概念和惯例的框架,其次是技术演示如何实现自助服务的自动化数据砖资源,代码,和工作部署到Azure DevOps, CI / CD管道。请欢迎韦斯利和卡拉。
韦斯·克拉克:
谢谢你加入我们。我们感谢你的时间,我希望你会发现我们的工作有趣,信息,这将帮助你建立你自己的自动化CI / CD管道。我的名字是韦斯·克拉克,我的首席架构师在象J.B.亨特企业分析和人工智能。卡拉菲利普王子”咨询,我的同事和我在这里提出的技术演示。象J.B.亨特成立于1961年,已经成为最大的运输和物流公司在北美。我们目前346号财富500强,和我们的数字经纪市场,360年j·b·亨特,创新技术获得了广泛的认可。我们认为机器学习在高级分析我们未来成功的关键,我也很荣幸参与建立在象J.B.亨特这些学科。阿提斯动物园咨询成立于2002年,专注于四个支柱,数据和分析,人工智能,机器学习,物联网和智能应用程序。他们一直帮助我们的愿景变成我们的一个关键伙伴buzz生产过程。
韦斯·克拉克:
我想首先你角色定位分析在创造商业价值,强调这部分MLOps生命周期框架关注和讨论的指导原则时,我们坚持实现我们的解决方案。然后我们会到你真的是一部分技术演示和实际步骤可以创建您自己的解决方案。
韦斯·克拉克:
我们想要强调的是,我们所做的一切都在分析,数据科学和机器学习应注重创造商业价值和实现组织的目标。作为科学家,我们很容易迷失自己的数字。所以我们有意重新调整自己的人,我们试图让我们的解决方案的过程将嵌入。
韦斯·克拉克:
我看过不少神奇的谈到数据工程,保湿的数据创建特色商店。
韦斯·克拉克:
是关于数据工程,保湿三角洲湖和创建特色商店。同样地,有很多演讲,专注于集装箱化,服务和生产性能监视。今天,我想重点放在一个安全的自助服务计算环境的创建和部署自动化框架与具体项目的产品的代码库。之前我给你的框架体系结构和实现,我想简短地说我们的解决方案的指导原则。
韦斯·克拉克:
我们的目标可预测性。我们选择约定优于配置。我们希望它是自动的,因为这些约定的真正力量是意识到当用户不必记住规则在诉讼或来实现它。我们想罢工之间的平衡安全、自助服务。我们试图让用户同时提供边界,以保证孩子的安全。我们想让这个框架强调重复性通过创建配置工件按照代码通过整个毫升生命周期,我们确保在环境创建可重复的部署。
韦斯·克拉克:
我们想介绍清晰定义的环境。我们不只是寻求自动化工作流已经有了,但是通过工具创建新的可能性我们给我们的团队。我们介绍了我们的分析师、工程师和科学家。一些最强大的概念从企业规模软件工程开发生命周期。我们想成为平台和云不可知论者。bob体育客户端下载我们不是多重云当我们开始这个,但是砖。我们选择很重要,可以随处运行的解决方案。我没有时间详细涵盖所有我们做出的决定,但我想给你一个高水平的理解框架。
韦斯·克拉克:
我想吸引你的注意的第一件事是一组配置文件存储在用户的代码。环境配置文件是存储值会改变根据环境中运行的代码。接下来,在图书馆集群配置允许您定义所需的依赖关系和计算资源运行您的代码。它还允许您指定谁应该获得您的项目。最后,工作配置就是将存储的指令代码应该如何部署走向生产过程。接下来,我想明确地定义意味着什么为您的代码部署到一个特定的环境。
韦斯·克拉克:
这意味着我们的最新副本代码一直拉到砖项目文件夹的同步和存储库桥。这也意味着你的代码运行在一个专用集群会议配置文件中定义的特定需求你的分支。最后,它意味着集群操作在一个服务主体的权威,只有获得适当的资源在相应的基础设施环境,本地的,开发,测试和刺激。这种权利意味着你使用不同的秘密,将您的数据文件存储在不同的容器和访问web服务的不同版本这取决于环境中运行。
韦斯·克拉克:
现在,让我们谈谈更多关于CI / CD管道是如何工作和你的产品代码。我们会走过一个自助服务集群管理场景。假设一个用户为他们的产品与现有的库代码开始首次使用CI / CD框架。值得庆幸的是,CI / CD存储库设置管道帮助让他们开始。第一步说明的第一阶段设置管道将把配置文件前面的图上我们谈论到用户的产品回购。
韦斯·克拉克:
第二步说明的第二阶段设置管道将转移几个YAML文件和创建子管道产品回购。其中一个孩子管道是用于启动工作部署到新环境和其他管道,这是有关这个场景中,监听提交更改配置文件。一旦完成初始设置管道传送文件和创建子管道在产品库中,假设在第三步图修改集群和图书馆的用户配置改变节点的最大数量的集群中,添加一个第三方库的依赖关系列表,修改访问控制列表添加一个队友,他们的项目。
韦斯·克拉克:
在第四步中,用户提交他们更改后集群和库配置文件,侦听器管道将触发和发起一个回调到CI / CD存储库。第五步强调生活的绝大多数功能在YAML管道的CI / CD存储库将执行一系列PowerShell脚本验证配置文件更改并将其转换成三个独立的JSON文件,然后分别发送到砖集群,图书馆和权限api。
韦斯·克拉克:
最后,在步骤6中,可以看到,几分钟后,这些变化将会完成砖api,用户会看到更新后的集群与新砖UI库加载到它只能由团队成员访问控制列表中指定。好了,最后一个图之前的技术演示。我想要强调这种使工作流。不断创造增强你的产品没有环境冲突。在这张图片可以看到两个不同的分支机构从事同一产品的两个不同的用户在本地环境。
韦斯·克拉克:
每个用户都有一个单独的副本产品笔记本和配置文件存储在本地项目文件夹下的用户名。每个运行在一个专用集群设置根据用户的配置,每个集群可能具有完全不同的性质和不同版本的运行库没有冲突。一旦你过了当地的发展,只有一个产品的一个分支可以部署在任何给定的时间。在开发环境的一个旧版本产品已经致力于大师正在被productionalized。
韦斯·克拉克:
已经过去的第一质量检验关实施CI / CD工作部署管道,它也有一个单独的笔记本,可以点击图文件的副本存储在开发项目文件夹中。使用旧的库和运行在一个专用集群工作会议的规格配置文件的旧版本。不幸的是,这段代码没有通过严格质量检验关进入更严密保护的测试环境。测试和刺激仍再培训使用代码从先前的主版本标记。这两种环境中有一个单独的笔记本和配置文件的副本存储在测试和督促项目文件夹和运行在专用工作集群仍然使用旧版本的库。
韦斯·克拉克:
在所有环境中,地方、开发、测试和督促每个集群行为的权威下一个适当的环境服务主体。与环境互动的具体实例表、文件存储、外部web钩和表面集成和发布工作事件。这些环境特定的服务原则也被授予权限调用这些部署工作,这样就可以开始从外部砖使用这项服务的原则的凭证。我知道这是一个很多概念材料覆盖。谢谢你的轴承与我的背后的抽象和理论框架。现在我要把它交给我的朋友,卡拉,向您展示如何实现这样的一步一个脚印。
西尔维娅Simion:
谢谢韦斯利。大家好!我的名字叫卡拉菲利普斯和我是一个数据科学和阿提斯动物园MLOps顾问咨询。韦斯利就说过,我要给你这些管道在行动。让我们先看看文件结构在CI / CD回购。首先要注意的是这些YAML文件的模板,其中包含的步骤,我们的管道将执行。对以上这些文件我们有一个脚本文件夹。这些都是要运行的脚本在每一步的管道。我们决定使用PowerShell脚本,但是您可以使用任何语言,可以解析JSON文件并将数据发送给数据砖API。
西尔维娅Simion:
在这里我们有两个文件夹,一个用于数据科学与数据工程之一。数据科学与数据工程团队都使用这些管道和这些文件夹包含配置默认值可以设置在团队层面。例如,数据科学团队可以使用这些文件来设置默认值的集群或工作配置,设置默认权限或设置库总是安装在他们的集群。最后一个文件夹看这是远程存储库文件夹的文件。
西尔维娅Simion:
这个文件夹包含了我们需要的所有文件复制到产品回购。一旦这些文件被复制在管道可以构建产品回购。复制这些文件和创建管道的过程可以做手动或卫斯理回顾之前另一个管道我们称为安装管道。让我们去产品回购,仔细看看,文件结构。第一个文件夹是笔记本电脑文件夹。这个文件夹包含所有的笔记本与砖工作区。其余的文件的复制从CI / CD回购。
西尔维娅Simion:
首先,我们有管道定义文件夹,这个文件夹包含YAML文件,将引发管道步骤的执行存储在CI / CD回购。最后一个文件我们将看看在图书馆集群,配置JSON文件,以及工作配置JSON文件。用户将使用这两个文件来创建和管理他们的集群的配置和工作。后用户需要做的第一步是创建一个新的设置回购用户从主分支。让我们仔细看看集群和库配置JSON文件的第一个用户配置。
西尔维娅Simion:
一旦他们已经创建了用户分支可以开始编辑配置文件。让我们仔细看看图书馆集群配置文件。他们会第一个参数配置是工作区名称。这个值将确定哪些文件夹CI / CD回购我们的默认配置值将来自以及砖工作空间的管道将被验证。集群参数包含一个子集的参数,用户可以设置集群配置。大多数这些值直接相当于结构所需的API的JSON结构,除了火花的版本。
西尔维娅Simion:
在这里,我们创建了一个结构,用户只需要指定版本号,他们是否想要一个毫升运行时包含许多机器学习包默认情况下,他们是否需要GPU计算集群。管道将这些值映射到正确的键,所需的API。最后设置的参数在这一节中我想唤起注意的是自定义标签。这些标签是很重要的跟踪和管理你的砖花。除了J。搜寻特定标记你看到,管道自动设置标签对环境是开发测试或刺激以及回购引发了集群的创建的分支。
西尔维娅Simion:
下一节是访问控制列表。这里的用户列表的电子邮件每个人都工作在他们的代码分支。管道我们将使用这个列表的电子邮件在集群上设置权限。这将确保创建的集群只有团队成员工作分支。最后一部分在这个配置文件的库。为每个库类型库的用户指定了一个列表他们想要安装在集群或Python和凹口包如果所需的包回购是不同于默认回购他们可以指定使用的包和回购结构。
西尔维娅Simion:
现在让我们做一些更改,保存文件并观看集群创建。我们要改变马克斯工人7和保存文件。现在让我们去看一下管道运行。你在这里看到的管道,我保存的文件,它会自动运行。虽然我们等待完成让我们讲讲在幕后发生了什么。产品回购,有一个文件叫做管道集群。监听这个文件更改集群和库配置JSON并调用回CI / CD回购存储执行管道步骤。
西尔维娅Simion:
让我们去CI / CD回购现在看看这些步骤。回购我们的底部有一个YAML文件称为管道集群配置。这个文件包含所有的步骤将创建和管理数据砖集群。前两个步骤在这里做一些行政工作设置管道环境。然后我们去这产生集群配置的步骤。这一步解析配置文件的用户提供的值,结合集群配置默认模板和创建JSON发送到集群API在下一步。
西尔维娅Simion:
造物主编辑集群一步使用解析JSON文件要么创建一个新的集群如果不存在或编辑现有集群。一旦我们创建集群时,我们所要做的就是添加或更新权限。设置集群步骤需要许可的用户列表配置文件,解析成适当的JSON结构,并设置使用权限的权限在集群上的API。权限设置后,我们现在有安装库。解析请求库步骤需要的库配置文件,解析和下一步需要解析JSON和安装任何新的库和卸载任何库,从配置文件中删除。
西尔维娅Simion:
现在让我们看一下管道完成。一旦我们进入运行您可以看到,所有的步骤成功完成。这意味着我们应该看到一个新的集群运行在砖与配置中指定的配置文件。让我们去砖,看那集群。正如你可以看到,我们现在有一个集群中运行数据砖。这个集群的名称被组织在管道中定义命名约定。你可以看到这里的配置正是我们中指定的配置文件。
西尔维娅Simion:
同样,我们的访问控制列表中指定的用户权限下列在这里。最后,当我们进入图书馆,我们看到库要求安装了除了几个库中指定的默认库文件。包装起来,第一步是将管道的配置文件复制到产品回购和创建管道。一旦用户填写完整的集群和库配置文件并保存它。然后管道自动运行,用户有自己的集群使用几分钟后。
西尔维娅Simion:
接下来的管道我们要看的是管道的工作部署。这个管道提供自动化和安全工作部署和编辑。让我们开始我们的产品回购与用户的工作流。当用户准备他们的代码和工作部署在开发环境中他们会来工作配置JSON文件。在这里,他们将指定将会创造多少就业岗位和配置。第一个参数他们必须填写的名字是笔记本。接下来,他们将指定如果他们想要使用一个高并发性集群或就业集群执行他们的工作。
西尔维娅Simion:
使用一个高并发性集群而不是工作集群时我们会减少集群启动延迟工作的部署和允许工作并行地运行。接下来,他们将指定集群配置和一组库。如果他们使用高并发集群作为第一个例子,集群配置设置和库基于集群中配置和库配置JSON。工作配置这些参数的值将为空。如果工作是运行在集群工作像在第二个和第三个例子,为这两个参数有几个选项。
西尔维娅Simion:
如果用户指定了默认为新的集群或库参数,相应的配置参数将从集群和库配置JSON。此外,用户可以指定库没有参数如果不需要库。在第二个工作,你可以看到默认的投诉是指定集群配置和图书馆周边设置为none表示不需要图书馆集群这个工作。最后选择这两个参数是指定一个新的集群配置或一组库第三工作如下所示。使用指定的配置是相同的结构用于集群和库配置。
西尔维娅Simion:
我们这里有集群配置和以下库配置。一旦我们救了我们改变回到我们的分支和承诺我们所有教练和主人,我们可以运行工作部署管道。我要做的,现在我要运行开发阶段。虽然这跑,让我们仔细看看管道在做什么。产品回购,管道工作YAML文件调用管道管道工作的步骤配置YAML文件存储在CI / CD回购我们现在就得到。我们有三种不同的环境,工作部署,开发,测试和刺激。
西尔维娅Simion:
相同的一般步骤是重复的这些环境所以我们要使用一个构建步骤参数允许我们只需要编写的代码步骤一次然后将在每个环境重复这些步骤。你会发现很多你看到的这些步骤都是一样的集群中的管道因为大部分代码之间共享这两个管道。让我们仔细看看这些步骤。像集群管道这些前几个步骤只是做一些行政工作设置管道环境。然后我们去产生集群配置步骤。
西尔维娅Simion:
这个脚本会做两件事。首先,它生成默认集群配置的用于当用户选择使用高并发性集群或集群定义时指定默认为他们工作。它的第二件事是解析集群配置当用户提供的新工作。一旦无花果解析集群创建或编辑高并发的步骤要检查一个高并发性集群所需的工作部署,如果需要创建或更新集群。如果需要一个高并发性集群下一步是将集群设置适当的权限。
西尔维娅Simion:
这包括添加权限开发、测试或促使服务原则要允许集群由其他应用程序如Azure数据工厂或气流。下一步是解析库,将安装在集群。像集群配置解析这一步一步是要解析的缺省设置库和任何自定义设置由用户指定。当我们准备好所有这些配置我们可以部署新的工作或编辑现有的下一步工作。
西尔维娅Simion:
最后,一旦我们的工作部署,我们需要设置或更新的权限。您可以定义一个自定义权限的用户或组的默认值存储在工作团队文件夹在CI / CD回购。除了这些权限,开发、测试或促使服务原则将从外部应用程序访问,这样他们就可以安排这些工作。一旦我们找到的所有步骤,我们可以执行他们在每一个阶段包括以下每个环境部署之间的安全与质量检验关。让我们看一下管道的工作。
西尔维娅Simion:
我们进入运行,我们看到所有的步骤开发阶段成功完成这意味着我们会有三个新的就业机会在我们的砖工作区。让我们看一看这些。你会看到我们有三个工作为我们的开发环境中创建以来我们在我们的工作配置文件配置三份工作。注意这里的集群定义为每个任务。首要工作是使用高并发集群和第二个工作是使用我们的默认集群配置一到八个工人,第三是使用自定义集群配置4名工人。
西尔维娅Simion:
让我们进入第二份工作在这里,看一看配置。在configuration选项卡,你将看到工作的规范创建集群运行。然后下面提前部分中我们可以看到管道给正确的权限两个服务原则,管理和开发以及三个ACL组我们默认的访问控制模板中指定团队文件夹。总结工作,第一步是为用户填写自己的工作配置用户分支JSON。
西尔维娅Simion:
接下来,他们合并所有的代码和主代码一旦准备好了,管道运行的工作,这项工作将创建并运行。今天,我们创建了两个管道自动创建和管理我们的数据库集群与一个简单的工作为用户自助服务的工作流。谢谢大家听我的技术演示。我希望你学到了一些有趣的和有用的东西,我要把它回到韦斯利包装。
韦斯·克拉克:
谢谢你卡拉给这样一个深思熟虑的技术演示和所有你投入的努力将这个框架的设想变成现实。现在我想简要总结一下我们今天讨论。我们告诉你怎么象J.B.亨特试图完成作为一个组织,我们的团队是如何集中工作,以确保我们的贡献这一使命的实现。我们吸引了你的注意力的部分MLOps生命周期运作我们的框架,而我们觉得最进步的迭代改进。
韦斯·克拉克:
我们描述了激励原则,引导我们,我们实现了我们的解决方案。我们直观地表示与一系列建筑图的框架,帮助你看到大局。然后卡拉给你仔细看看通过循序渐进的技术演示。最后,只剩下说谢谢你投资你的时间和我们在一起。我希望这是有帮助的和额外的资源和细节将提供给下载演示后帮助你开始。谢谢你!
发言人3:
谢谢你,卡拉和韦斯利,由于之前我们所有的扬声器。我们现在有几分钟问答与扬声器以及我们马上回来。