客户案例

Cash App 通过 Prefect 增强了机器学习工作流程的灵活性

Wendy Tang
Wendy Tang
机器学习工程师

“欺诈是一个高风险的博弈,需要不断努力才能领先于不法分子。在 Cash App 从事相关工作意味着必须始终致力于保持在该领域的最前沿。” - Isaac Tamblyn, Cash App

Cash App 拥有多个金融专家团队,他们不断搜寻不法分子的新型交易模式,但识别这种行为仅仅是防止欺诈的第一步。这些专家与机器学习工程师合作,利用最先进的基础设施部署新模型,以在新型欺诈模式出现时迅速予以反制。

Wendy Tang 是 Cash App 机器学习工具与培训团队的一员,负责构建和维护这一基础设施。几年前,她的团队开始使用 Airflow 构建 ETL 管道,开启了他们的编排之旅。他们发现 Airflow 在运行 SQL 查询(用于移动数据或执行转换)方面表现出色,但很快意识到它存在一些局限性,导致他们无法获得快速启动新型欺诈预防模型所需的灵活性和可扩展性。正如 Wendy 在 Prefect 峰会上的演讲中所述:

“Airflow 已不再是机器学习工作流程的可行方案。”

从 ETL 进阶到编排机器学习工作流程

无论你的数据团队是否负责降低欺诈风险,数据团队的需求都在不断增加。我们 Prefect 对数据基础设施不断变化的格局有着独特的见解。仅仅在几年前,数据仓库还是数据团队宇宙的中心,但现在我们发现许多人认为该领域正在变得平民化;随着 ETL 管道不再作为差异化竞争力和价值来源,编排工具需要做更多工作来解决新的价值领域。Cash App 平台团队需要的不仅仅是 Airflow 所能提供的功能,并且开始在以下领域遇到限制:

Cash App 的机器学习工作流平台需求

☁️ 异构计算

机器学习模型之间以及模型生命周期的不同阶段,其计算需求差异巨大。一种“一刀切”的单工作节点编排方案,会导致非常大和非常小的任务占用相同的计算资源。Prefect 的部署可以在多种可配置的工作池(work pools)中运行,涵盖多种容器、AI 以及 Prefect 管理的基础设施选项。

🎨 自定义 Python

私有和自定义 Python 包对机器学习模型开发至关重要。它们提供了一种简洁、易用的方式来部署和重用模块化、组织严密且可投入生产的代码。对于某些编排器而言,特定任务的包管理非常困难,因为它们可能与编排器的默认包集冲突。Prefect 的依赖项和环境与其管理的所有流程(flow)及其依赖项完全隔离,每个流程都可以部署到独特的环境中。Wendy 在 Cash App 的团队通过访问控制列表(ACL)实现了流程特定的环境,从而使用户能够在跨云环境下使用自定义包。

🤝 任务间的数据交换

机器学习工作流程通常会重用资产。例如,Cash App 的开发人员可能希望创建多种候选模型,每个模型作为一个独立的工作流,并将每个模型的性能数据传递给另一个工作流,以便将最优模型提升到生产环境。Cash App 发现 Airflow 在 DAG 之间交换数据方面表现不佳。而 Prefect 流程提供了一种简单且符合 Python 习惯的方式来在流程之间共享数据

Cash App 制定了三项需求清单,促使他们采用 Prefect。他们需要一个能够支持机器学习工作流程灵活需求的平台。团队还希望该平台能被机器学习从业者轻松采用。得益于 Prefect 广泛的部署选项和轻量级、符合 Python 习惯的开发者体验,他们此后一直使用 Prefect。然而,第三个也是最重要的需求,是一个具备高水平数据安全性的编排平台。

Cash App 的安全数据装配线

在 Cash App,机器学习工具与平台团队支持各团队在不同的开发和生产环境中处理敏感数据。Wendy 倾向于将他们的机器学习工作流比作一条装配线,Prefect 提供了一种快速构建并逐个迭代组件的方法,最后通过“部署”(Deployments)将其投入生产。

作为管理员,她根据工作流程在本地、Google Cloud、AWS 和 Databricks 环境中的具体数据隐私和计算需求,为用户提供部署选项。通过管理每个部署的访问控制列表(Access Control Lists),她可以轻松隔离每个用户对 Cash App 机器学习平台的视图,从而提高数据安全性和计算效率。

Cash App 与 Prefect 的未来

Cash App 的工作流程正在不断演进。随着团队寻求超越树模型、转向更新且更大的模型,他们正在试验 ControlFlow——这是一个基于 Prefect 构建的开源框架,用于构建具有弹性的代理式 AI 工作流。团队还希望升级其计算实例,以满足复杂模型类型的横向和纵向扩展需求。我们认为,我们与 RayDask 等分布式计算框架的集成,对于保持用户在 Prefect 中熟悉的 Python 体验至关重要。

自从转向 Prefect 后,Cash App 注意到其新编排平台的灵活性增加了,“由于平台为工作流程提供了更大的灵活性,这在内部客户中产生了更高的兴趣。”我们很高兴能与 Cash App 合作,继续推广他们的这一新编排平台,特别是在 Prefect 峰会宣布相关消息之后!

在 Prefect 峰会探索数据的未来

像 Cash App 这样的组织正在寻求构建下一代数据工具,以便在不损害用户信任的前提下利用创新。如需了解关于 Prefect 如何通过事务性、灵活性和可移植性编排实现这种信任的更多信息(包括 Wendy 关于 Cash App 转向 Prefect 之旅的演讲),请访问我们的 Prefect 峰会回顾页面