随着可以创建类似人类的文本、图像、代码和音频的生成式 AI 模型的兴起,人工智能 (AI) 和机器学习 (ML) 的世界一直在见证范式转变。 与经典 ML 模型相比,生成式 AI 模型明显更大、更复杂。 然而,它们日益增加的复杂性也伴随着高昂的推理成本和对强大计算资源的日益增长的需求。 生成人工智能模型的高昂推理成本可能成为资源有限的企业和研究人员进入的障碍,因此需要更高效和更具成本效益的解决方案。 此外,大多数生成式 AI 用例都涉及人机交互或真实场景,因此需要能够提供低延迟性能的硬件。 AWS 一直在通过专用芯片进行创新,以满足对强大、高效且具有成本效益的计算硬件日益增长的需求。
今天,我们很高兴地宣布 亚马逊SageMaker 支持 AWS Inferentia2 (ml.inf2) 和 AWS 培训 (ml.trn1) 基于 SageMaker 实例来托管用于实时和异步推理的生成 AI 模型。 ml.inf2 实例可用于美国东部(俄亥俄)的 SageMaker 模型部署和美国东部(弗吉尼亚北部)的 ml.trn1 实例。
您可以在 SageMaker 上使用这些实例以低成本为生成式 AI 模型实现高性能,包括大型语言模型 (LLM)、Stable Diffusion 和视觉转换器。 此外,您可以使用 Amazon SageMaker 推理推荐器 帮助您运行负载测试并评估在这些实例上部署模型的性价比优势。
您可以使用 ml.inf2 和 ml.trn1 实例在 SageMaker 上运行您的 ML 应用程序,以进行文本摘要、代码生成、视频和图像生成、语音识别、个性化、欺诈检测等。 在配置 SageMaker 端点时,您可以通过指定 ml.trn1 或 ml.inf2 实例轻松开始。 您可以将 ml.trn1 和 ml.inf2 兼容的 AWS 深度学习容器 (DLC) 用于 PyTorch、TensorFlow、Hugging Face 和大型模型推理 (LMI),以轻松上手。 有关版本的完整列表,请参阅 可用的深度学习容器镜像.
在这篇文章中,我们展示了使用 SageMaker 在 AWS Inferentia2 上部署大型语言模型的过程,无需任何额外编码,即可利用 LMI 容器。 我们使用 GPT4ALL-J,一个微调的 GPT-J 7B 模型,提供聊天机器人风格的交互。
ml.trn1 和 ml.inf2 实例概述
ml.trn1 实例由 Trainium 加速器提供支持,该加速器主要用于生成 AI 模型(包括 LLM)的高性能深度学习训练。 但是,这些实例还支持比适合 Inf2 的模型更大的模型的推理工作负载。 最大的实例大小,trn1.32xlarge instances,features 16 火车加速器 在单个实例中具有 512 GB 的加速器内存,可提供高达 3.4 petaflops 的 FP16/BF16 计算能力。 16 个 Trainium 加速器与超高速 NeuronLinkv2 相连,以实现简化的集体通信。
ml.Inf2 实例由 AWS Inferentia2 加速器,一个专门为推理而构建的加速器。 与第一代 AWS Inferentia 相比,它的计算性能提高了三倍,吞吐量提高了四倍,延迟降低了多达 10 倍。 最大的实例大小 Inf2.48xlarge 在单个实例中具有 12 个 AWS Inferentia2 加速器和 384 GB 的加速器内存,用于 BF2.3/FP16 的组合计算能力为 16 petaflops。 它使您能够在单个实例中部署多达 175 亿个参数的模型。 Inf2 是唯一提供此互连的推理优化实例,该功能仅在更昂贵的训练实例中可用。 对于不适合单个加速器的超大型模型,数据直接在具有 NeuronLink 的加速器之间流动,完全绕过 CPU。 借助 NeuronLink,Inf2 支持更快的分布式推理并提高吞吐量和延迟。
AWS Inferentia2 和 Trainium 加速器都有两个 NeuronCores-v2、32 GB HBM 内存堆栈和专用的集体计算引擎,可在进行多加速器推理时通过重叠计算和通信自动优化运行时间。 有关架构的更多详细信息,请参阅 Trainium 和 Inferentia 设备.
下图显示了使用 AWS Inferentia2 的示例架构。
AWS 神经元开发工具包
AWS 神经元 是用于在基于 AWS Inferentia 和 Trainium 的实例上运行深度学习工作负载的 SDK。 AWS Neuron 包括一个深度学习编译器、运行时和原生集成到 TensorFlow 和 PyTorch 中的工具。 借助 Neuron,您可以在 ml.trn1 和 ml.inf2 上开发、分析和部署高性能 ML 工作负载。
神经元编译器 接受各种格式(TensorFlow、PyTorch、XLA HLO)的 ML 模型,并优化它们以在 Neuron 设备上运行。 Neuron 编译器在 ML 框架内调用,其中 ML 模型由 Neuron 框架插件发送到编译器。 生成的编译器工件称为 NEFF 文件(Neuron 可执行文件格式),该文件又由 Neuron 运行时加载到 Neuron 设备。
神经元运行时 由内核驱动程序和 C/C++ 库组成,它们提供 API 来访问 AWS Inferentia 和 Trainium Neuron 设备。 TensorFlow 和 PyTorch 的 Neuron ML 框架插件使用 Neuron 运行时在 NeuronCores 上加载和运行模型。 Neuron 运行时将编译的深度学习模型 (NEFF) 加载到 Neuron 设备,并针对高吞吐量和低延迟进行了优化。
使用 SageMaker ml.inf2 实例托管 NLP 模型
在我们深入研究为法学硕士提供服务之前 变形金刚-neuronx,这是一个将模型的大权重矩阵分片到多个 NeuronCore 上的开源库,让我们简要介绍一下适合单个 NeuronCore 的模型的典型部署流程。
访问 支持型号列表 以确保该模型在 AWS Inferentia2 上受支持。 接下来,需要使用 Neuron Compiler 对模型进行预编译。 您可以使用 SageMaker 笔记本或 亚马逊弹性计算云 (Amazon EC2) 实例来编译模型。 您可以使用 SageMaker Python SDK 通过流行的深度学习框架(例如 PyTorch)部署模型,如以下代码所示。 您可以将模型部署到 SageMaker 托管服务并获取可用于推理的端点。 这些端点是完全托管的并支持自动缩放。
请参阅 开发人员流程 有关带有示例脚本的 SageMaker 上 Inf2 典型开发流程的更多详细信息。
使用 SageMaker ml.inf2 实例托管 LLM
具有数十亿参数的大型语言模型通常太大而无法安装在单个加速器上。 这需要使用模型并行技术来跨多个加速器托管 LLM。 托管 LLM 的另一个关键要求是实施高性能模型服务解决方案。 该解决方案应该可以有效地加载模型、管理分区并通过 HTTP 端点无缝地处理请求。
SageMaker 包括专门的深度学习容器 (DLC)、库和用于模型并行性和大型模型推理的工具。 有关在 SageMaker 上开始使用 LMI 的资源,请参阅 模型并行性和大模型推理. SageMaker 使用流行的开源库维护 DLC,用于在 AWS 基础设施上托管大型模型,例如 GPT、T5、OPT、BLOOM 和 Stable Diffusion。 这些专门的 DLC 称为 SageMaker LMI 容器。
SageMaker LMI 容器 使用 DJLServing,这是一个与 transformers-neuronx 库集成的模型服务器,可支持跨 NeuronCore 的张量并行性。 要了解有关 DJLServing 如何工作的更多信息,请参阅 使用 DJLServing 和 DeepSpeed 模型并行推理在 Amazon SageMaker 上部署大型模型. DJL 模型服务器和 transformers-neuronx 库作为容器的核心组件,其中还包括 Neuron SDK。 此设置有助于将模型加载到 AWS Inferentia2 加速器上,跨多个 NeuronCore 并行化模型,并支持通过 HTTP 端点提供服务。
LMI 容器支持从 亚马逊简单存储服务 (Amazon S3) bucket 或 Hugging Face Hub。 默认处理程序脚本加载模型,编译并将其转换为神经元优化格式,然后加载它。 要使用 LMI 容器来托管 LLM,我们有两种选择:
- 无代码(首选) – 这是使用 LMI 容器部署 LLM 的最简单方法。 在此方法中,您可以使用提供的 默认处理程序 只需传递模型名称和所需的参数
serving.properties
文件加载和托管模型。 要使用默认处理程序,我们提供entryPoint
参数为djl_python.transformers-neuronx
. - 带上你自己的剧本 – 在这种方法中,您可以选择创建自己的 model.py 文件,其中包含加载和服务模型所需的代码。 该文件充当
DJLServing
API 和transformers-neuronx
蜜蜂。 要自定义模型加载过程,您可以提供serving.properties
具有可配置的参数。 有关可用的可配置参数的完整列表,请参阅 所有 DJL 配置选项. 这是一个例子 模型.py 文件中。
运行时架构
tensor_parallel_degree
属性值决定张量并行模块在多个 NeuronCore 上的分布。 例如,inf2.24xlarge 有六个 AWS Inferentia2 加速器。 每个 AWS Inferentia2 加速器都有两个 NeuronCore。 每个 NeuronCore 都有一个 16 GB 的专用高带宽内存 (HBM),用于存储张量并行模块。 当张量并行度为 4 时,LMI 将分配同一模型的三个模型副本,每个副本使用四个 NeuronCore。 如下图所示,当 LMI 容器启动时,模型将首先加载并跟踪到 CPU 可寻址内存中。 跟踪完成后,模型将根据张量并行度跨 NeuronCore 进行分区。
LMI 使用 DJLServing 作为其模型服务堆栈。 容器的健康检查在 SageMaker 中通过后,容器就可以为推理请求提供服务了。 DJLServing 启动多个 Python 进程,等同于 TOTAL NUMBER OF NEURON CORES/TENSOR_PARALLEL_DEGREE
. 每个 Python 进程都包含 C++ 中的线程,相当于 TENSOR_PARALLEL_DEGREE
. 每个 C++ 线程在一个 NeuronCore 上持有一个模型碎片。
许多从业者(Python 进程)倾向于在使用多个独立请求调用服务器时按顺序运行推理。 尽管设置起来更容易,但利用加速器的计算能力通常不是最佳做法。 为了解决这个问题,DJLServing 提供了动态批处理的内置优化,以在服务器端组合这些独立的推理请求以动态形成更大的批处理以提高吞吐量。 所有请求在进入实际作业队列等待推理之前首先到达动态批处理程序。 您可以使用 batch_size
设置 serving.properties
. 您还可以配置 max_batch_delay
根据您的延迟要求,在批处理程序中指定等待其他请求加入批处理的最大延迟时间。 吞吐量还取决于模型副本的数量和在容器中启动的 Python 进程组。 如下图所示,张量并行度设置为 4,LMI 容器启动三个 Python 进程组,每个进程组都持有模型的完整副本。 这允许您增加批处理大小并获得更高的吞吐量。
用于部署 LLM 的 SageMaker 笔记本
在本节中,我们提供了部署 GPT4All-J 的分步演练,GPT6All-J 是一个 24 亿参数模型,在 FP32 中为 4 GB。 GPT4All-J 是一款流行的聊天机器人,它接受过各种交互内容的训练,例如文字问题、对话、代码、诗歌、歌曲和故事。 GPTXNUMXall-J 是一种经过微调的 GPT-J 模型,可生成类似于人类交互的响应。
此示例的完整笔记本在 GitHub上. 我们可以使用 SageMaker Python SDK 将模型部署到 Inf2 实例。 我们使用提供的 默认处理程序 加载模型。 有了这个,我们只需要提供一个 服务.properties 文件。 此文件包含 DJL 模型服务器下载和托管模型所需的配置。 我们可以使用 model_id
参数直接从 Hugging Face repo 下载模型。 或者,您可以通过提供以下内容从 Amazon S3 下载模型 s3url
参数。 的 entryPoint
参数配置为指向库以加载模型。 有关更多详细信息 djl_python.fastertransformer
,参考 GitHub代码.
tensor_parallel_degree
属性值决定张量并行模块在多个设备上的分布。 例如,对于 12 个 NeuronCore 和张量并行度 4,LMI 将分配三个模型副本,每个副本使用四个 NeuronCore。 您还可以使用属性定义精度类型 dtype
. n_position
参数定义模型的最大输入和输出序列长度之和。 请参见以下代码:
构造 tarball
包含 serving.properties
并将其上传到 S3 存储桶。 尽管此示例中使用了默认处理程序,但您可以开发一个 model.py
用于自定义加载和服务过程的文件。 如果有任何需要安装的包,请将它们包含在 requirements.txt
文件。 请参见以下代码:
检索 DJL 容器映像并创建 SageMaker 模型:
接下来,我们使用之前定义的模型配置创建 SageMaker 端点。 容器将模型下载到 /tmp
空间,因为 SageMaker 映射 /tmp
至 Amazon Elastic Block商店 (亚马逊 EBS)。 我们需要添加一个 volume_size
参数,以确保 /tmp
目录有足够的空间来下载和编译模型。 我们设置 container_startup_health_check_timeout
到 3,600 秒,以确保在模型准备好后开始运行状况检查。 我们使用 ml.inf2.8xlarge 实例。 请参见以下代码:
创建 SageMaker 端点后,我们可以使用 Predictor
宾语:
清理
完成测试后删除端点以节省成本:
结论
在本文中,我们展示了 SageMaker 新推出的功能,它现在支持 ml.inf2 和 ml.trn1 实例来托管生成式 AI 模型。 我们演示了如何使用 SageMaker 和 LMI 容器在 AWS Inferentia4 上部署生成式 AI 模型 GPT2ALL-J,而无需编写任何代码。 我们还展示了如何使用 DJLServing 和 transformers-neuronx
加载模型,对其进行分区并提供服务。
Inf2 实例提供了在 AWS 上运行生成式 AI 模型的最具成本效益的方式。 有关性能的详细信息,请参阅 Inf2性能.
查询 GitHub上 示例笔记本的回购协议。 试试看,如果您有任何问题,请告诉我们!
作者简介
维韦克甘加萨尼 是 Amazon Web Services 的高级机器学习解决方案架构师。 他与机器学习初创公司合作,在 AWS 上构建和部署 AI/ML 应用程序。 他目前专注于为 MLOps、ML 推理和低代码 ML 提供解决方案。 他从事过不同领域的项目,包括自然语言处理和计算机视觉。
常代宏 是 AWS Annapurna Labs 的解决方案架构师。 他居住在日本,甚至在被 AWS 收购之前就加入了 Annapurna Labs,并始终如一地帮助客户使用 Annapurna Labs 技术。 他最近的重点是基于专用硅、AWS Inferentia 和 Trainium 的机器学习解决方案。
达瓦尔·帕特尔 是 AWS 的首席机器学习架构师。 他曾与从大型企业到中型初创公司的组织合作,解决与分布式计算和人工智能相关的问题。 他专注于深度学习,包括 NLP 和计算机视觉领域。 他帮助客户在 SageMaker 上实现高性能模型推理。
青岚 是 AWS 的一名软件开发工程师。 他一直在亚马逊开发几个具有挑战性的产品,包括高性能 ML 推理解决方案和高性能日志记录系统。 清的团队以极低的延迟成功推出了亚马逊广告中的第一个十亿参数模型。 青对基础设施优化和深度学习加速有深入的了解。
李庆伟 是Amazon Web Services的机器学习专家。 他获得了博士学位。 在他打破了顾问的研究补助金帐户并未能兑现他所承诺的诺贝尔奖之后,他便在运筹学获得博士学位。 目前,他帮助金融服务和保险行业的客户在AWS上构建机器学习解决方案。 在业余时间,他喜欢阅读和教学。
艾伦谭 是 SageMaker 的高级产品经理,负责大型模型推理方面的工作。 他热衷于将机器学习应用于分析领域。 工作之余,他喜欢户外活动。
瓦伦沙尔 是 AWS Sagemaker 的一名软件开发工程师,致力于为 ML 推理平台开发面向客户的关键功能。 他热衷于在分布式系统和人工智能领域工作。 在业余时间,他喜欢阅读和园艺。
- SEO 支持的内容和 PR 分发。 今天得到放大。
- 柏拉图爱流。 Web3 数据智能。 知识放大。 访问这里。
- 与 Adryenn Ashley 一起铸造未来。 访问这里。
- 使用 PREIPO® 买卖 PRE-IPO 公司的股票。 访问这里。
- Sumber: https://aws.amazon.com/blogs/machine-learning/achieve-high-performance-with-lowest-cost-for-generative-ai-inference-using-aws-inferentia2-and-aws-trainium-on-amazon-sagemaker/
- :具有
- :是
- :不是
- :在哪里
- $UP
- 10
- 100
- 12
- 13
- 14
- 15%
- 22
- 24
- 7
- 8
- 9
- a
- 关于
- 加速器
- 加速器
- 接受
- ACCESS
- 账号管理
- 获得
- 横过
- 行为
- 加
- 增加
- 地址
- 寻址
- 优点
- 广告
- 后
- 驳
- AI
- 人工智能用例
- AI / ML
- 所有类型
- 允许
- 还
- 尽管
- Amazon
- Amazon EC2
- 亚马逊SageMaker
- 亚马逊网络服务
- an
- 分析
- 和
- 宣布
- 另一个
- 任何
- APIs
- 应用领域
- 应用
- 的途径
- 架构
- 保健
- 国家 / 地区
- 人造的
- 人工智能
- 人工智能(AI)
- AS
- At
- 音频
- 汽车
- 自动
- 可使用
- AWS
- AWS 推理
- 球
- 带宽
- 屏障
- 基于
- BE
- 因为
- 很
- before
- 好处
- 最佳
- 之间
- 大
- 大
- 十亿美元
- 阻止
- 博客
- Bloom
- 简要地
- 布罗克
- 建立
- 建
- 内建的
- 企业
- by
- C + +中
- 被称为
- CAN
- 例
- 挑战
- 聊天机器人
- 查
- 碎屑
- 码
- 编码
- 集体
- 结合
- 结合
- 购买的订单均
- 沟通
- 通信
- 相比
- 兼容
- 完成
- 完全
- 复杂
- 复杂
- 组件
- 全面
- 计算
- 计算
- 一台
- 计算机视觉
- 计算
- 配置
- 已联繫
- 容器
- 集装箱
- 包含
- 内容
- 核心
- 价格
- 经济有效
- 成本
- 创建信息图
- 创建
- 危急
- 关键
- 目前
- 顾客
- 合作伙伴
- 定制
- data
- 专用
- 深
- 深入学习
- 默认
- 定义
- 定义
- 学位
- 延迟
- 交付
- 交付
- 提供
- 证明
- 依靠
- 部署
- 部署
- 部署
- 详情
- 检测
- 确定
- 开发
- 研发支持
- 设备
- 设备
- 不同
- 扩散
- 直接
- 分布
- 分布式计算
- 分布式系统
- 分配
- 做
- 域名
- 别
- 下载
- 下载
- 司机
- 动态
- 动态
- 每
- 此前
- 更容易
- 最简单的
- 容易
- 东部
- 高效
- 有效
- 工作的影响。
- 使
- 结束
- 端点
- 工程师
- 引擎
- 更多
- 确保
- 进入
- 企业
- 条目
- 评估
- 甚至
- 例子
- 兴奋
- 昂贵
- 额外
- 面部彩妆
- 功能有助于
- 面对
- 失败
- 快
- 专栏
- 特征
- 文件
- 金融
- 金融服务
- 完
- 姓氏:
- 适合
- 流
- 流动
- 专注焦点
- 重点
- 重点
- 以下
- 针对
- 申请
- 格式
- 四
- 骨架
- 框架
- 骗局
- 欺诈检测
- 止
- ,
- 充分
- 此外
- 产生
- 代
- 生成的
- 生成式人工智能
- 得到
- Go
- 授予
- 组的
- 成长
- 硬件
- 有
- he
- 健康管理
- 帮助
- 帮助
- 帮助
- 相关信息
- 高
- 高性能
- 更高
- 他的
- 保持
- 持有
- 主持人
- 托管
- 托管服务
- 别墅
- 创新中心
- How To
- 但是
- HTML
- HTTP
- HTTPS
- 中心
- 人
- if
- 图片
- 图片
- 履行
- 进口
- in
- 深入
- 包括
- 包括
- 包含
- 增加
- 增加
- 独立
- 行业中的应用:
- 基础设施
- 创新
- 输入
- 输入
- 安装
- 例
- 保险
- 集成
- 房源搜索
- 相互作用
- 互动
- 中介
- 成
- 调用
- 涉及
- IT
- 它的
- 日本
- 工作
- 加入
- 加盟
- JPG
- JSON
- 只是
- 知道
- 知识
- 实验室
- 语言
- 大
- 大企业
- 大
- 最大
- 潜伏
- 推出
- 启动
- 领导
- 学习用品
- 学习
- 长度
- 让
- 库
- 自学资料库
- 喜欢
- 喜欢
- 有限
- 清单
- LLM
- 加载
- 装载
- 负载
- 记录
- 低
- 降低
- 最低
- 机
- 机器学习
- 主要
- 维护
- 多数
- 使
- 管理
- 管理
- 经理
- 地图
- 最大
- 最多
- 内存
- 方法
- ML
- 多播
- 模型
- 模型
- 模块
- 更多
- 更高效
- 最先进的
- 多
- 姓名
- 自然
- 自然语言处理
- 必要
- 需求
- 需要
- 全新
- 纽约
- 下页
- NLP
- 诺贝尔奖
- 笔记本
- 现在
- 数
- 对象
- of
- 提供
- 优惠精选
- 经常
- 俄亥俄州
- on
- 一
- 仅由
- 开放源码
- 运营
- 优化
- 优化
- 优化
- 优化
- 附加选项
- 附加选项
- or
- 组织
- 其他名称
- 我们的
- 输出
- 户外活动
- 产量
- 学校以外
- 己
- 包
- 范例
- 并行
- 参数
- 参数
- 通过
- 通行证
- 多情
- 性能
- 个性化
- 平台
- 柏拉图
- 柏拉图数据智能
- 柏拉图数据
- 插入
- 插件
- 点
- 热门
- 帖子
- 功率
- 供电
- 强大
- 在练习上
- 平台精度
- 预测
- 预报器
- 首选
- 校长
- 奖金
- 问题
- 过程
- 过程
- 处理
- 产品
- 产品经理
- 核心产品
- 本人简介
- 项目
- 许诺
- 财产
- 提供
- 提供
- 提供
- 优
- 目的
- 蟒蛇
- pytorch
- 范围
- 达到
- 阅读
- 准备
- 真实的世界
- 实时的
- 收到
- 最近
- 承认
- 简称
- 有关
- 请求
- 要求
- 必须
- 需求
- 岗位要求
- 研究
- 研究人员
- 资源
- 回复
- 导致
- 上升
- 运行
- sagemaker
- SageMaker 推理
- 同
- 保存
- 缩放
- 情景
- 脚本
- SDK
- 无缝
- 秒
- 部分
- 看到
- 前辈
- 序列
- 服务
- 服务
- 特色服务
- 服务
- 集
- 设置
- 格局
- 几个
- 转移
- 应该
- 显示
- 展出
- 如图
- 作品
- 侧
- 显著
- 硅
- 类似
- 简易
- 单
- SIX
- 尺寸
- 尺寸
- So
- 软件
- 软件开发
- 方案,
- 解决方案
- 太空
- 专家
- 专门
- 言语
- 语音识别
- 稳定
- 堆
- 堆栈
- 开始
- 开始
- 启动
- 初创企业
- 存储
- 故事
- 存储
- 精简
- 样式
- 顺利
- 这样
- SUPPORT
- 支持
- 支持
- 系统
- 产品
- 服用
- 教诲
- 团队
- 技术
- 专业技术
- tensorflow
- 测试
- 比
- 这
- 区域
- 其
- 他们
- 那里。
- 博曼
- Free Introduction
- 三
- 通过
- 吞吐量
- 次
- 时
- 至
- 也有
- 工具
- 追踪
- 熟练
- 产品培训
- 变形金刚
- 转
- 二
- 类型
- 普遍
- 上传
- us
- 使用
- 用过的
- 运用
- 平时
- 利用
- 利用
- 折扣值
- 各种
- 各个
- 广阔
- 非常
- 通过
- 视频
- 弗吉尼亚州
- 愿景
- 等待
- 演练
- 方法..
- we
- 卷筒纸
- Web服务
- 重量
- 什么是
- ,尤其是
- 这
- 将
- 中
- 也完全不需要
- 见证
- Word
- 工作
- 工作
- 加工
- 合作
- 世界
- 写
- 写作
- 纽约
- 完全
- 您一站式解决方案
- 和风网