【生成人工智能】Ray如何解决生成人工智能基础设施的常见生产挑战

news2025/4/18 9:23:56

这是我们生成人工智能博客系列的第一部分。在这篇文章中,我们讨论了如何使用Ray来生产常见的生成模型工作负载。即将发布的一篇博客将深入探讨Alpa等项目为什么要使用Ray来扩展大型模型。

生成的图像和语言模型有望改变企业的设计、支持、开发等方式。本博客重点关注围绕基础模型支持工作负载生产部署的基础设施挑战,以及Ray,一个用于扩展ML工作负载的领先解决方案,如何应对这些挑战。最后,我们制定了一个改进路线图,以使事情变得更容易。

如今,领先的人工智能组织使用Ray大规模训练大型语言模型(LLM)(例如,OpenAI训练ChatGPT,Cohere训练其模型,EleutherAI训练GPT-J,Alpa训练多节点训练和服务)。然而,这些模型之所以如此令人兴奋,其中一个原因是可以对开源版本进行微调和部署,以解决特定问题,而无需从头开始训练。事实上,社区中的用户越来越多地询问如何使用Ray来协调他们自己的生成人工智能工作负载,建立由大型玩家训练的基础模型。

在下表中,我们用绿色突出显示了常见的“生产规模”需求(通常从1-100个节点开始)。这包括以下问题:

  • 如何将批量推理扩展到数TB的非结构化数据?
  • 我如何创建一个微调服务,可以根据需要创造新的工作岗位?
  • 如何在多个节点上部署跨多个GPU的模型?

在这篇博客文章中,我们将主要关注这些绿色突出显示的工作负载。

Different scale workloads for generative AI.

Different scale workloads for generative AI.

如果您有兴趣了解使用Ray进行生成人工智能工作负载的代码示例,请查看我们的示例页面。

生成模型:ML工作负载的最新发展

MLOps for GAI

Fig. Based on the latest deep learning models, the compute requirements of generative AI mirror those of traditional ML platforms, only greater.

我们认为生成模型工作负载放大了ML工作负载背后固有的计算挑战。这是沿着两个轴来的:

  • 成本:生成模型更大,训练和服务的计算成本更高。例如,XGBoost/scikit学习模型每个记录可能需要1-10ms,而对这些生成模型的最基本推断将需要1000ms或更多——这是>100x的因子。这种成本的变化使得分布式成为那些希望在生产中使用生成模型的公司的默认要求。
  • 复杂性:部分由于成本的原因,文本生成和图像扩散等用例中出现了新的计算需求,如模型并行服务或增量状态更新(即报告部分结果)。

让我们更具体地按工作量来细分这一趋势。下表总结了常见的人工智能工作负载,以及这些不同用例的基础设施需求是如何随着时间的推移而演变的:

MLOps

如表所示,这些工作负载的成本和复杂性随着时间的推移而增长——尽管该行业的GPU硬件得到了快速改进。接下来,让我们深入探讨从业者在使用生成人工智能处理这些工作负载时可能面临的挑战。

生成型人工智能基础设施面临的挑战

生成型人工智能基础设施为分布式培训、在线服务和离线推理工作负载带来了新的挑战。

1.分布式培训

目前,Ray正在进行一些规模最大的生成模型训练:

  • OpenAI使用Ray来协调ChatGPT和其他模型的训练。
  •  Alpa project 项目使用Ray来协调数据、模型和管道并行计算的训练和服务,并将JAX作为底层框架。
  • Cohere和 EleutherAI 使用Ray与PyTorch和JAX一起大规模训练他们的大型语言模型。

Alpa uses Ray

Fig. Alpa uses Ray as the underlying substrate to schedule GPUs for distributed training of large models, including generative AI models.

生成模型分布式训练的常见挑战包括:

  • 如何在多个加速器之间有效地划分模型?
  • 如何设置您的培训以容忍可抢占实例上的失败?

在即将发布的博客中,我们将介绍项目如何利用Ray来解决分布式培训的挑战。

2.在线服务和微调

我们还看到,人们越来越感兴趣地将Ray用于中等规模(例如1-100个节点)的生成人工智能工作负载。通常,这种规模的用户有兴趣使用Ray来扩展他们已经可以在一个节点上运行的现有训练或推理工作负载(例如,使用DeepSpeed、Accelerate或各种其他常见的单节点框架)。换句话说,为了部署在线推理、微调或培训服务,他们希望运行工作负载的许多副本。

gpu-cost

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等框架处理模型运算符的分片,但不处理调用这些模型的高级应用程序的执行。

Layered stack diagram for deployments of generative model workloads.

Fig. Layered stack diagram for deployments of generative model workloads.

即使对于单节点工作负载,用户也经常可以从分发中受益,因为部署小型GPU集群比部署单个高端设备(例如A100 GPU)用于托管模型要便宜得多。这是因为低端GPU通常每GB内存的成本更低。然而,要扩展涉及多台机器的部署是很有挑战性的。如果没有像Ray Serve和Ray Data这样的库,也很难实现开箱即用的高利用率。

3.离线批量推理

在离线方面,这些模型的批量推理也面临着需要数据密集型预处理和GPU密集型模型评估的挑战。Meta和谷歌等公司构建自定义服务(DPP,tf.data服务),以在异构CPU/GPU集群中大规模执行此功能。虽然在过去,这样的服务很少见,但我们越来越多地看到用户询问如何在生成人工智能推理的背景下做到这一点。这些用户现在还需要解决分布式系统在调度、可观察性和容错方面的挑战。

Ray如何应对这些挑战

现有Ray功能

  • Ray Core调度:为了协调从头开始训练生成模型所需的大规模分布式计算,Ray Core灵活地支持在CPU和GPU上调度任务和参与者。对于那些使用Ray进行大规模模型训练的人来说,这一功能尤其有用。放置组允许用户保留GPU或CPU资源组,以放置大型模型的副本,用于多节点微调、推理或训练。
  • Ray Train:Ray的Train库提供了开箱即用的Trainer类,这些类可以运行流行的框架,如分布式TensorFlow、Torch、XGBoost、Horovod等。为了更容易开始使用生成模型,我们添加了与流行框架的集成,如HuggingFace Accelerate、DeepSpeed和Alpa To Train,以及RLHF支持。
  • Ray Serve:Ray Serve为缩放模型部署图提供了一流的API。因为Serve在Ray中运行,所以它在运行特别或辅助计算方面也有很大的灵活性。例如,用户从Serve启动Ray子任务来微调模型,并通过同样在Ray中运行的命名参与者来协调增量结果的返回。

即将推出的功能

  • Ray Data流后端:为了使混合CPU和GPU节点集群上的大规模批量推理更容易大规模运行,我们正在努力为Ray Data添加一流的流媒体推理支持:https://github.com/ray-project/enhancements/pull/18
  • Ray Serve中的异步请求:我们希望增强Ray Serve,以本地处理长时间运行的异步作业,如微调请求。这些请求通常需要几分钟的时间才能运行,比<10秒的正常ML推理作业要长得多,这通常意味着用户必须转向使用外部作业队列:https://github.com/ray-project/ray/issues/32292

我们正在发布的新示例

当然,在理论上可行和在实践中可行之间存在很大的区别。为了弥补这一差距,我们还宣布了几个生成性人工智能示例的初步发布,随着新模型和框架的出现,我们将随着时间的推移进行扩展。

链接的示例可能需要您使用Ray的夜间版本——链接和示例将在Ray 2.4的稳定版本上提供。

  • Stable Diffusion

    • Fine-Tuning

    • Serving

    • Batch Prediction

    • Streaming Batch Prediction: coming in Ray 2.5

  • GPT-J

    • Fine-Tuning

    • Serving

    • Batch Prediction

    • 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,如果可能也想学习法律,备战律考。
  • 欢迎爱学习的同学朋友关注,也欢迎大家交流。全网同号【架构师研究会】

欢迎收藏  【全球IT瞭望】,【架构师酒馆】和【开发者开聊】.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1356187.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Spring——Spring IOC(2)

1.Spring中的工厂类 1.1 ApplicationContext ApplicationContext的实现类,如下图: ClassPathXmlApplicationContext:加载类路径下 Spring 的配置文件FileSystemXmlApplicationContext:加载本地磁盘下 Spring 的配置文件 1.2 B…

基于Segformer实现PCB缺陷检测(步骤 + 代码)

导 读 本文主要介绍基于Segformer实现PCB缺陷检测 ,并给出步骤和代码。 背景介绍 PCB缺陷检测是电子制造的一个重要方面。利用Segformer等先进模型不仅可以提高准确性,还可以大大减少检测时间。传统方法涉及手动检查,无法扩展且容易出错…

体元法--体积计算

文章目录 环境:1.1 体元法介绍:2.1 python代码3.1 可视化 环境: Open3D 1.1 体元法介绍: 用一个个体素去占据点云,然后对所有体素求和 2.1 python代码 conda activete deeplabv3plus(环境名称–安装好open3D的) py…

python django 生鲜商城管理系统

python django 生鲜商城管理系统,包含用户端和管理端 功能: 用户端:商城主页展示,登录,注册,用户中心,购物车,我的订单,购物车结算 管理端:登录,商品&…

QT的坐标系统,回收机制、菜单栏,工具栏,状态栏,对话框及资源文件

QT的坐标系统,回收机制、菜单栏,工具栏,状态栏,对话框及资源文件 文章目录 QT的坐标系统,回收机制、菜单栏,工具栏,状态栏,对话框及资源文件1、QT的坐标系统?2、对象模型…

顶帽运算在OpenCv中的应用

项目背景 假如我们拍了一张自拍,想为自己的照片添加一个酷炫的火星飞舞的效果,素材库中正好有一张火焰的照片,如果想去除图中的火焰,只保留火星效果,可以使用顶帽子算法 图片中的火星部分正好属于比周围亮一些的斑块…

知虾皮Shopee:东南亚最受欢迎的电子商务平台

在如今数字化时代,电子商务平台成为人们购物的首选方式。Shopee作为东南亚地区最受欢迎的电子商务平台,通过其多样化的商品、便捷的购物体验和创新的商业模式,迅速在该地区占据了重要地位。本文将详细介绍Shopee的特点和优势,以及…

《作家天地》期刊投稿邮箱投稿方式

《作家天地》是国家新闻出版总署批准的正规文学刊物。对各种流派的作品兼收并蓄,力求题材、形式、风格多样化,适用于发表高品质文学学术作品,科研机构的专家学者以及高等院校的师生等。具有原创性的学术理论、工作实践、科研成果和科研课题及…

spug发布问题汇总记录

问题导览 1. [vite]: Rollup failed to resolve import "element-plus" from "src/main.js". 项目框架简介 vue3viteelement-plus 解决方案 - 1. 配置淘宝镜像源:npm config set registry https://registry.npm.taobao.org/ - 2. npm inst…

20240104确认AIO-3399J的开发板适配ov13850摄像头不支持4K分辨率录像

20240104确认AIO-3399J的开发板适配ov13850摄像头不支持4K分辨率录像 2024/1/4 13:23 开发板:Firefly的AIO-3399J【RK3399】 SDK:rk3399-android-11-r20211216.tar.xz【Android11】 Android11.0.tar.bz2.aa【ToyBrick】 Android11.0.tar.bz2.ab Android1…

Android kotlin build.gradle.kts配置

1. 添加 maven 仓库 1. 1. settings配置 1. 1.1. settings.gradle repositories {maven {url https://maven.aliyun.com/repository/public/}mavenCentral() }1. 1.2. settings.gradle.kts repositories {maven {setUrl("https://maven.aliyun.com/repository/public/…

Ubuntu 22.04/20.04 安装 SSH

OpenSSH 是安全远程通信的重要工具,提供了一种安全的方式来访问和管理服务器。对于那些计划在 Ubuntu 22.04 Jammy Jellyfish 或其较旧的稳定版本的 Ubuntu 20.04 Focal Fossa 上安装 SSH 并启用它的人来说,了解其功能和优势至关重要。 OpenSSH的主要特…

技术阅读周刊第十二期

年前最后一篇推送,提前祝大家新年快乐。 技术阅读周刊,每周更新。 历史更新 20231201:第八期20231215:第十期20231122:第十一期 Deno vs Go: Native hello world performance | Tech Tonic URL: https://medium.com/de…

TSINGSEE青犀智能分析网关V4视频智能分析在智慧幼儿园中的应用

一、背景需求 在科技浪潮的推动下,智慧化监管已然成为幼儿园管理发展的必然趋势。通过引入尖端技术手段,智慧幼儿园监管解决方案不仅显著提升了管理效率,更为孩子们的安全与健康筑起一道坚实的屏障。为了全方位守护幼儿的平安,幼…

java设计模式学习之【策略模式】

文章目录 引言策略模式简介定义与用途实现方式 使用场景优势与劣势在Spring框架中的应用计算示例代码地址 引言 设想你正在玩一个策略游戏,每一个决策都会导致不同的游戏结局。同样地,在软件开发中,我们常常需要根据不同的场景或条件选择不同…

【c++————————构造函数和析构函数】

【c————————构造函数和析构函数】 欢迎阅读新一期的c模块————构造函数和析构函数 ✒️个人主页:-Joker- 🏷️专栏:C 📜代码仓库:c_code 🌹🌹欢迎大佬们的阅读和三连关注&#xff0c…

如何配置Zabbix告警邮件通知并基于GPT提供解决方案?

一、概述 时间来到2023年末,距离Open AI发布GPT-3.5,首次向公众推出ChatGPT已经整整过去了一年。如今,以ChatGPT为代表的人工智能模型已然被应用众多领域,当然也包括IT运维。在IT运维中,通过对接运维监控平台&#xff…

人生重开模拟器

前言: 人生重开模拟器是前段时间非常火的一个小游戏,接下来我们将一起学习使用c语言写一个简易版的人生重开模拟器。 网页版游戏: 人生重开模拟器 (ytecn.com) 1.实现一个简化版的人生重开模拟器 (1) 游戏开始的时…

【JAVA】深入了解 Java 中的 DelayQueue

🍎个人博客:个人主页 🏆个人专栏: JAVA ⛳️ 功不唐捐,玉汝于成 目录 前言 Java中的DelayQueue是一个强大的工具,常用于处理需要延迟执行的任务或具有过期时间的元素。通过实现Delayed接口&#x…

MySQL慢查询日志分析(慢查询日志)

一、背景   MySQL的慢查询日志是MySQL提供的一种日志记录,他用来记录在MySQL中响应的时间超过阈值的语句,具体指运行时间超过long_query_time(默认是10秒)值的SQL,会被记录到慢查询日志中。 &em…