在QCon SF上扩展大规模AI、ML和LLM工作负载的现代计算堆栈

主要内容总结

在QCon旧金山会议上,Anyscale的首席开发者倡导者Jules Damji讨论了数据科学家在扩展和管理机器学习模型基础设施时面临的困难。他强调了需要一个能够支持最新机器学习库、易于管理并能够扩展到处理大数据集和模型的框架。Damji介绍了Ray作为一个潜在的解决方案。

Ray框架介绍

Ray是一个通用框架,旨在帮助数据科学家应对当前机器学习模型中的挑战,包括扩展和管理基础设施的复杂性。Ray能够扩展任何Python应用程序,并包含用于数据摄取、训练、服务等的库。

Ray核心概念

Ray任务

Ray任务是可以在Ray框架中的独立Python工作线程上执行的异步函数。它们可以通过remote方法调用,并通过ray.get检索结果。Ray任务支持并行计算、多返回值、资源需求指定、容错和调度选项。

Ray Actors

Ray Actors是有状态的工作线程或服务,将Ray API从函数扩展到类。每个Actor在其自己的Python进程中运行,其方法被调度到该特定工作线程,允许它们访问和改变工作线程的状态。可以通过远程操作符调用其方法,并且同一Actor上的方法按顺序执行,共享状态。

Ray对象

Ray对象(也称为远程对象)由Ray集群中的任务和Actors计算和创建。它们通过对象引用(object refs)引用,这些引用是指向远程对象的指针或唯一ID。这些对象是不可变的,可以通过远程函数调用或ray.put()创建,并通过ray.get()方法获取。

Ray的使用

Ray目前已被多家公司用于生产,并拥有庞大的用户社区。Damji指出Ray与其他机器学习框架(如PyTorch和TensorFlow)的兼容性,以及其在微调大型语言模型中的潜在用途。

Ray 2.7版本更新

Ray 2.7版本带来了对Ray库和KubeRay的更新和改进,包括稳定性增强。新功能RayLLM允许使用Ray Serve提供开源LLM服务。其他更新包括Ray Train的简化API、Ray Serve和KubeRay的稳定性增强,以及对特定硬件配置的初始加速器支持。

演示与社区

Damji通过一个笔记本演示了Ray如何在多个GPU上训练模型,展示了Ray处理模型并行性的能力及其与其他机器学习框架的集成。他强调Ray并不旨在取代数据处理框架,而是作为数据摄取训练的工具。

有兴趣了解更多信息的人可以加入Ray社区或Ray #LLM Slack频道。

阅读 28
0 条评论