这是我们生成人工智能博客系列的第一部分。在这篇文章中,我们讨论了如何使用Ray来生产常见的生成模型工作负载。即将发布的一篇博客将深入探讨Alpa等项目为什么要使用Ray来扩展大型模型。
生成的图像和语言模型有望改变企业的设计、支持、开发等方式。本博客重点关注围绕基础模型支持工作负载生产部署的基础设施挑战,以及Ray,一个用于扩展ML工作负载的领先解决方案,如何应对这些挑战。最后,我们制定了一个改进路线图,以使事情变得更容易。
如今,领先的人工智能组织使用Ray大规模训练大型语言模型(LLM)(例如,OpenAI训练ChatGPT,Cohere训练其模型,EleutherAI训练GPT-J,Alpa训练多节点训练和服务)。然而,这些模型之所以如此令人兴奋,其中一个原因是可以对开源版本进行微调和部署,以解决特定问题,而无需从头开始训练。事实上,社区中的用户越来越多地询问如何使用Ray来协调他们自己的生成人工智能工作负载,建立由大型玩家训练的基础模型。
在下表中,我们用绿色突出显示了常见的“生产规模”需求(通常从1-100个节点开始)。这包括以下问题:
在这篇博客文章中,我们将主要关注这些绿色突出显示的工作负载。
Different scale workloads for generative AI.
如果您有兴趣了解使用Ray进行生成人工智能工作负载的代码示例,请查看我们的示例页面。
Fig. Based on the latest deep learning models, the compute requirements of generative AI mirror those of traditional ML platforms, only greater.
我们认为生成模型工作负载放大了ML工作负载背后固有的计算挑战。这是沿着两个轴来的:
让我们更具体地按工作量来细分这一趋势。下表总结了常见的人工智能工作负载,以及这些不同用例的基础设施需求是如何随着时间的推移而演变的:
如表所示,这些工作负载的成本和复杂性随着时间的推移而增长——尽管该行业的GPU硬件得到了快速改进。接下来,让我们深入探讨从业者在使用生成人工智能处理这些工作负载时可能面临的挑战。
生成型人工智能基础设施为分布式培训、在线服务和离线推理工作负载带来了新的挑战。
目前,Ray正在进行一些规模最大的生成模型训练:
Fig.?Alpa?uses Ray as the underlying substrate to schedule GPUs for distributed training of large models, including generative AI models.
生成模型分布式训练的常见挑战包括:
在即将发布的博客中,我们将介绍项目如何利用Ray来解决分布式培训的挑战。
我们还看到,人们越来越感兴趣地将Ray用于中等规模(例如1-100个节点)的生成人工智能工作负载。通常,这种规模的用户有兴趣使用Ray来扩展他们已经可以在一个节点上运行的现有训练或推理工作负载(例如,使用DeepSpeed、Accelerate或各种其他常见的单节点框架)。换句话说,为了部署在线推理、微调或培训服务,他们希望运行工作负载的许多副本。
Fig. A100 GPUs, while providing much more GRAM per GPU, cost much more per gigabyte of GPU memory than A10 or T4 GPUs. Multi-node Ray clusters can hence serve generative workloads at a significantly lower cost when GRAM is the bottleneck.
这种形式的扩展本身可能非常棘手,而且实施起来成本高昂。例如,考虑为多节点语言模型扩展微调或在线推理服务的任务。有许多细节需要解决,例如优化数据移动、容错和自动缩放模型副本。DeepSpeed和Accelerate等框架处理模型运算符的分片,但不处理调用这些模型的高级应用程序的执行。
Fig. Layered stack diagram for deployments of generative model workloads.
即使对于单节点工作负载,用户也经常可以从分发中受益,因为部署小型GPU集群比部署单个高端设备(例如A100 GPU)用于托管模型要便宜得多。这是因为低端GPU通常每GB内存的成本更低。然而,要扩展涉及多台机器的部署是很有挑战性的。如果没有像Ray Serve和Ray Data这样的库,也很难实现开箱即用的高利用率。
在离线方面,这些模型的批量推理也面临着需要数据密集型预处理和GPU密集型模型评估的挑战。Meta和谷歌等公司构建自定义服务(DPP,tf.data服务),以在异构CPU/GPU集群中大规模执行此功能。虽然在过去,这样的服务很少见,但我们越来越多地看到用户询问如何在生成人工智能推理的背景下做到这一点。这些用户现在还需要解决分布式系统在调度、可观察性和容错方面的挑战。
当然,在理论上可行和在实践中可行之间存在很大的区别。为了弥补这一差距,我们还宣布了几个生成性人工智能示例的初步发布,随着新模型和框架的出现,我们将随着时间的推移进行扩展。
链接的示例可能需要您使用Ray的夜间版本——链接和示例将在Ray 2.4的稳定版本上提供。
Stable Diffusion
Streaming Batch Prediction:?coming in Ray 2.5
GPT-J
Streaming Batch Prediction:?coming in Ray 2.5
OPT-66B
Fine-Tuning:?coming in Ray 2.5
Serving:?coming in Ray 2.5
Batch Prediction:?coming in Ray 2.5
Streaming Batch Prediction:?coming in Ray 2.5
总之,我们认为生成模型正在加速对灵活、统一的框架(如Ray)的需求,以运行ML计算。Ray团队计划添加增强的API,用于大规模处理这些类型的昂贵模型和示例,以及与流行模型和社区框架的集成,使其易于入门。在这里开始学习Ray ML用例,并在我们的示例页面上查看我们使用Ray进行生成人工智能工作负载的代码示例。
文章链接:【生成人工智能】Ray如何解决生成人工智能基础设施的常见生产挑战 | 开发者开聊
- 做一个简单介绍,酒研年近48 ,有20多年IT工作经历,目前在一家500强做企业架构.因为工作需要,另外也因为兴趣涉猎比较广,为了自己学习建立了三个博客,分别是【全球IT瞭望】,【架构师研究会】和【开发者开聊】,有更多的内容分享,谢谢大家收藏。
- 企业架构师需要比较广泛的知识面,了解一个企业的整体的业务,应用,技术,数据,治理和合规。之前4年主要负责企业整体的技术规划,标准的建立和项目治理。最近一年主要负责数据,涉及到数据平台,数据战略,数据分析,数据建模,数据治理,还涉及到数据主权,隐私保护和数据经济。 因为需要,比如数据资源入财务报表,另外数据如何估值和货币化需要财务和金融方面的知识,最近在学习财务,金融和法律。打算先备考CPA,然后CFA,如果可能也想学习法律,备战律考。
- 欢迎爱学习的同学朋友关注,也欢迎大家交流。全网同号【架构师研究会】