使用 Ray 扩展人工智能:一份全面指南

增长营销数据中台人工智能与算法

点击下方 卡片 ,关注“ 慢慢学AIGC ”

picture.image

引言

人工智能(AI)和机器学习(ML)领域的格局正在以惊人的速度演变,应用变得越来越复杂且数据密集。这种复杂性和规模的激增需要能够有效利用分布式计算环境的工具。于是,Ray 应运而生,这是一个统一的框架,为 AI 和 Python 应用程序带来了简单性和可扩展性。在本文中,我们深入探讨了 Ray 的复杂性,探索其核心特性、组件和现实世界的应用,以说明为什么它正在成为现代 AI 开发中不可或缺的工具。

理解 Ray:统一框架

Ray 被设计为一个多才多艺的平台,能够满足 AI 开发中的各种需求,从数据处理到模型部署。在其核心,Ray 提供了一个分布式执行环境,能够将 Python 应用程序从单台机器无缝扩展到大型集群。这种灵活性得到了一套旨在优化 ML 生命周期各个阶段的 AI 库的补充。

核心特性和能力

分布式运行时:Ray 的支柱是其有效管理跨分布式集群的无状态函数和有状态 actor 的能力,实现了并行计算,开销最小。

AI 库:它包括诸如 Ray Data(用于可伸缩数据集)、Ray Train(用于分布式训练)、Ray Tune(用于超参数调整)、Ray RLlib(用于强化学习)和 Ray Serve(用于模型服务)等库。每个库都旨在简化特定的 ML 任务,使开发过程既高效又可扩展。

picture.image

可扩展性和灵活性

Ray 的一个关键优势是其通用性,使开发人员能够在不需要对代码库进行重大更改的情况下,扩展各种工作负载,从简单脚本到复杂的 AI 应用。这种可扩展性跨越了各种计算环境,无论是本地集群、云平台,甚至是 Kubernetes,都提供了无与伦比的部署灵活性。

实际应用和见证

Ray 的实际好处已经在多个领域得到了证明,从金融和自动驾驶车辆到大规模互联网服务。 像 OpenAI、Uber、蚂蚁集团和 Samsara 这样的公司利用 Ray 来解决诸如提高模型训练效率、减少高交易量交易的延迟以及增强分布式系统的容错性等挑战 。

  • OpenAI 使用 Ray 来训练一些最大的模型,包括 ChatGPT,他们指出这个框架在成功中的关键因素是能够加速大规模迭代。

  • Uber 将 Ray 作为其机器学习和深度学习平台的统一计算后端,称赞其性能改进和降低的复杂性。

  • 蚂蚁集团在世界最大的在线购物日期间大规模部署了 Ray Serve 用于模型服务,实现了前所未有的交易吞吐量。

picture.image

开始使用 Ray

对于想要探索 Ray 的开发人员和组织,有大量的资源可供利用:

  • Ray 文档【1】提供了详细的指南、API 参考和教程。

  • Ray 的 GitHub 存储库【2】是贡献项目、了解其开发情况或简单探索代码的首选来源。

  • 研究论文和白皮书【3】深入探讨了 Ray 的架构和其为分布式计算挑战带来的创新解决方案。

利用远程 Actor 增强状态管理

在分布式计算领域,Ray 与众不同的一个关键特性是其对远程 Actor 的创新使用。这种机制将传统的 Python 类转换为可以在分布式系统中生存和运行的实体。Ray 中的远程 Actor 使得状态操作成为可能,可以轻松地在任务和节点之间维护和操作状态。对于需要状态持久性的复杂 AI 工作流程,如强化学习和在线学习模型,这一能力至关重要。

将类转换为远程 Actor

这个过程的核心是 Ray 将标准的 Python 类转换为远程 Actor 的能力。通过简单地使用 @ray.remote 装饰一个类,开发人员就可以在 Ray 生态系统中实例化他们的类作为 Actor。这些 Actor 然后作为集群中的单独进程执行,能够持有状态并执行并发操作。这不仅促进了更灵活和强大的设计,还显著降低了在分布式系统中管理状态的开销。

例如,考虑这样一个场景,您需要在多个任务之间管理一个全局计数器。通过利用 Ray actor,您可以确保计数器的状态以分布式方式保持一致更新,而无需传统上与此类任务相关的复杂性。

实际示例和资源

要实践远程 Actor,Ray 文档和社区提供了大量资源。Anyscale 的《如何使用 Ray 编写你的第一个分布式 Python 应用程序》【4】和官方的 Ray 入门课程等教程提供了很好的起点。这些资源提供了详细的示例,展示了如何定义 、实例化和与远程 Actor 交互,从而使读者能够了解利用 Ray 进行状态感知分布式计算的实际方面。

通过探索这些示例,开发人员可以深入了解远程 Actor 使用的最佳实践,从初始化和方法调用到处理 Actor 生命周期。这些知识对于任何希望充分利用 Ray 在扩展 AI 应用程序方面的全部潜力的人来说都是不可或缺的。

结论

Ray 站在分布式计算框架的前沿,为扩展 AI 和 Python 应用程序提供了一个功能强大且用户友好的平台。其全面的功能套件,加上能够解决整个 ML 生命周期的能力,使其成为开发人员和企业的游戏改变者。无论您是构建下一代 AI 系统、优化机器学习工作流程,还是只需要扩展您的 Python 应用程序,Ray 都提供了工具和能力来满足这些需求。

picture.image

参考资料

【1】 https://docs.ray.io/en/latest/

【2】https://github.com/ray-project/ray

【3】 Ray v2 Architecture, Ray Team, October 2022.

https://docs.google.com/document/d/1tBw9A4j62ruI5omIJbMxly-la5w4q\_TjyJgJL\_jN2fI/preview#heading=h.iyrm5j2gcdoq

【4】https://www.anyscale.com/blog/writing-your-first-distributed-python-application-with-ray


点击下方 卡片 ,关注“ 慢慢学AIGC ”

0
0
0
0
关于作者
关于作者

文章

0

获赞

0

收藏

0

相关资源
CV 技术在视频创作中的应用
本次演讲将介绍在拍摄、编辑等场景,我们如何利用 AI 技术赋能创作者;以及基于这些场景,字节跳动积累的领先技术能力。
相关产品
评论
未登录
看完啦,登录分享一下感受吧~
暂无评论