Flyte简介:云原生机器学习和数据处理平台

  今天,Lyft很高兴宣布Flyte的开源,Flyte是一种结构化的编程和分布式处理平台,用于高度并发,可扩展和可维护的工作流。 Flyte在Lyft从事生产模型培训和数据处理已有三年多了,已成为价格,位置,预计到达时间(ETA),制图,自驾(L5)等团队的实际平台。 。 实际上,Flyte在Lyft管理着7,000多个独特的工作流,每个月总计执行超过100,000次,执行一百万个任务,并处理一千万个容器。 在本文中,我们将向您介绍Flyte,概述解决的问题类型,并提供示例说明如何利用它来满足您的机器学习和数据处理需求。

  

  > One of many Pricing workflows at Lyft, visualized in the Flyte UI. This workflow was created by Ti

  Flyte解决的问题

  由于数据现在已成为公司的主要资产,因此执行大规模计算作业对业务至关重要,但从操作角度来看却存在问题。 扩展,监视和管理计算集群成为每个产品团队的负担,减慢了迭代速度,进而减慢了产品创新的速度。 此外,这些工作流程通常具有复杂的数据依赖性。 没有平台抽象,依赖管理将变得站不住脚,并使团队之间的协作和重用变得不可能。

  Flyte的任务是通过抽象这些开销来提高机器学习和数据处理的开发速度。 我们通过可靠,可扩展,精心设计的计算解决了问题,使团队可以专注于业务逻辑而不是机器。 此外,我们支持跨租户共享和重用,因此问题只需解决一次。 随着数据和机器学习之间的界线融合在一起,包括从事这些工作的人员的角色,这一点变得越来越重要。

  为了让您更好地了解Flyte如何使所有这一切变得容易,这里概述了我们的一些主要功能:

  托管,多租户和无服务器

  Flyte使您摆脱了繁琐的基础架构,使您可以专注于业务问题而不是机器。 作为多租户服务,您可以自己进行隔离的回购工作,并进行部署和扩展而不会影响平台的其余部分。 您的代码已进行版本控制,并带有相关性进行容器化,并且每次执行都是可重复的。

  参数,数据沿袭和缓存

  所有Flyte任务和工作流都具有强类型的输入和输出。 这样就可以参数化您的工作流程,拥有丰富的数据沿袭以及使用预先计算的工件的缓存版本。 例如,如果您要进行超参数优化,则可以在每次运行时轻松调用不同的参数。 此外,如果运行调用了先前执行中已经计算出的任务,Flyte将巧妙地使用缓存的输出,从而节省了时间和金钱。

  机器学习管道是用Python构建的,包括以下四个任务,它们与典型的机器学习过程保持一致:

  · 数据准备和测试验证拆分

  · 模型训练

  · 模型验证和评分

  · 计算指标

  请注意如何对每个任务进行参数化和强类型化,从而轻松尝试不同的变体并与其他任务结合使用。 此外,这些任务中的每一个都可以任意复杂。 例如,对于大型数据集,Spark更适合进行数据准备和验证。 但是,可以使用Python编码的简单模型进行模型训练。 最后,请注意我们如何将任务标记为可缓存的,这可以大大加快运行速度并节省资金。

  下面,我们结合这些任务来创建工作流(或"管道")。 工作流将任务链接在一起,并使用基于Python的领域特定语言(DSL)在任务之间传递数据。

  

  > Example: Declaring a Workflow in FlyteKit

  版本化,可复制且可共享

  Flyte中的每个实体都是不可变的,每个更改都明确地捕获为新版本。 这使您可以轻松高效地迭代,试验和回滚工作流。 此外,Flyte使您能够在工作流之间共享这些版本化的任务,从而避免了个人和团队之间的重复工作,从而加快了开发周期。

  可扩展,模块化和灵活

  工作流通常由异构步骤组成。 例如,一个步骤可能使用Spark准备数据,而下一步骤可能使用此数据训练深度学习模型。 每个步骤都可以用不同的语言编写并使用不同的框架。 Flyte通过将容器映像绑定到任务来支持异构性。

  通过扩展,Flyte任务可以任意复杂。 它们可以是任何内容,从单个容器执行到配置单元群集中的远程查询,再到分布式Spark执行。 我们还认识到,最好的任务可能托管在其他地方,因此可以利用任务的可扩展性将单点解决方案与Flyte并进而与您的基础架构联系在一起。 具体来说,我们有两种扩展任务的方式:

  FlyteKit扩展:允许贡献者提供与新服务或系统的快速集成。

  后端插件:当需要对任务的执行语义进行细粒度控制时,Flyte提供了后端插件。 这些可用于创建和管理Kubernetes资源,包括CRD(如Spark-on-k8s)或任何远程系统(如Amazon Sagemaker,Qubole,BigQuery等)。

  

  > A high-level overview of Flyte's architecture

  结论

  Flyte旨在以现代产品,公司和应用程序所需的规模来推动并加速机器学习和数据编排。 Lyft和Flyte共同成长,看到了现代处理平台所提供的巨大优势,我们希望在开源Flyte中也能从中受益。 了解更多信息,参与其中,并通过访问flyte并在github/lyft/flyte上查看我们的Github进行尝试。

  西班牙语的西班牙语:eng-espanol.lyft

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值