Pinterest 使用 Ray 现代化其机器学习基础设施

Pinterest 使用 Ray 现代化机器学习基础设施的历程

Pinterest 是一个视觉发现平台,最近分享了其使用开源分布式计算框架 Ray 现代化机器学习基础设施的详细历程。该公司通过一篇博客文章,介绍了在将 Ray 集成到大规模生产环境中所面临的挑战及解决方案。

项目背景与驱动因素

该项目的主要驱动力是提升 Pinterest 解决关键业务问题的机器学习能力。通过现代化其机器学习基础设施,Pinterest 希望加快将机器学习想法投入生产的速度。

面临的挑战

Pinterest 在构建 Ray 基础设施时面临了几个独特的挑战:

  1. 运行环境的限制:Pinterest 选择在 PinCompute(其通用的联邦 Kubernetes 集群)上运行 Ray,这限制了像 KubeRay 及其自定义资源定义(CRD)等必要操作器的安装。
  2. 持久日志和指标的需求:需要与 Pinterest 专有的时间序列数据库和可视化工具集成,并遵守公司范围的 AAA(认证、授权和计费)指南。

解决方案

为了应对这些挑战,Pinterest 开发了一个自定义解决方案,包括:

  1. API 网关:提供用户与 Kubernetes 之间的抽象层,简化 Ray 集群的配置和管理。
  2. Ray 集群控制器和作业控制器:用于管理 Ray 集群和作业。
  3. MySQL 数据库:用于外部状态管理。
  4. 专用用户界面:用于持久日志和指标,允许在不激活 Ray 集群的情况下进行日志分析,减少闲置资源(如 GPU)的成本。
  5. 安全性措施:通过网络隔离和全面认证,确保安全性。Ray Dashboard 部署在 Envoy 后面,并在 gRPC 通信中使用 TLS 进行自定义修改。

成果与反馈

Pinterest 报告称,采用 Ray 后,将机器学习想法投入生产的速度显著提高,从几周缩短到几天。公司还强调了逐步改进、利用现有基础设施以及定期与内部客户会面以收集反馈的重要性。

Anyscale 的 Zhe Zhang 的补充观点

在 2023 年 QCon Plus 会议的演讲中,Anyscale 的 Zhe Zhang 进一步阐述了像 Pinterest 这样的公司如何使用 Ray 进行大规模机器学习任务。他提到 Ray 的灵活性和易用性使其特别适合希望现代化其机器学习基础设施的组织。Ray 能够无缝扩展数据加载和预处理,支持异构计算环境(结合 CPU 和 GPU 资源),并加速 ML 模型的快速原型设计和部署。

DoorDash 的类似经历

与 Pinterest 类似,DoorDash 也在现代化其机器学习基础设施方面进行了类似的努力。DoorDash 面临的挑战包括现有 ML 服务平台 Sibyl 的灵活性不足,以及 Kubernetes 环境中 GPU 可用性的问题。DoorDash 开发了 Argil,一个自服务平台,并为数据科学家和 ML 工程师开发了 Kotlin 客户端库。

不同之处

尽管 Pinterest 和 DoorDash 的解决方案有相似之处,但它们的部署策略有所不同:

  • Pinterest 从零开始构建了自定义解决方案。
  • DoorDash 利用了 Ray 团队提供的现有工具(如 Helm 图表)和 Argo CD 进行部署管理。

成果与性能提升

DoorDash 报告了与 Pinterest 类似的收益,包括开发速度的提高和性能的显著提升。DoorDash 将 ML 想法投入生产的时间从几周缩短到几天,并在某些用例中实现了 10-20 倍的性能提升。

总结

尽管 Pinterest 和 DoorDash 在采用 Ray 的过程中采取了略有不同的路径,但两家公司都报告了在机器学习基础设施的灵活性、开发速度和性能方面的显著改进。

阅读 22
0 条评论