产品展示

  • 首页
  • 产品展示
  • 亚马逊 SageMaker 推出更快的自动扩展以支持生成式 AI 模型 机器学习博客

亚马逊 SageMaker 推出更快的自动扩展以支持生成式 AI 模型 机器学习博客

2026-01-27 12:23:28

Amazon SageMaker 推出更快速的自动扩展功能适用于生成式 AI 模型

关键要点

在 Amazon SageMaker 推出的新功能中,用户可以显著减少生成式人工智能 (AI) 模型的自动扩展时间。新推出的子分钟指标能够降低总体扩展延迟,改善生成式 AI 应用的响应能力,以便更好地应对需求波动。

今天,我们非常高兴地宣布在 Amazon SageMaker 推出的新功能,这能够帮助您减少生成式人工智能模型自动扩展所需的时间。您现在可以使用子分钟指标,显著降低生成式 AI 模型的扩展延迟。通过这一增强功能,您可以在需求波动时提高生成式 AI 应用的响应能力。

随着基础模型 (FMs) 和大型语言模型 (LLMs) 的崛起,生成式 AI 推理部署面临着新的挑战。这些先进模型通常需要几秒钟的处理时间,有时仅能处理有限数量的并发请求。因此,需要快速检测和自动扩展以保持业务连续性。实施生成式 AI 的组织希望获得全面解决方案,以解决多个问题:降低基础设施成本、最小化延迟、最大化吞吐量,以满足这些复杂模型的需求。然而,他们更希望集中精力解决业务问题,而不是从头构建复杂的推理平台。

SageMaker 提供行业领先的能力来解决这些推理挑战。它为生成式 AI 推理提供的端点平均可将基础模型部署成本降低 50,延迟减少 20,通过优化加速器的使用。SageMaker 推理优化工具包是 SageMaker 中一个完全托管的模型优化功能,能够实现高达 双倍吞吐量,并将生成式 AI 性能下的成本降低约 50。除了优化之外,SageMaker 推理还支持大型语言模型的流式支持,使您能够实时流式传输令牌,而无需等待完整的响应。这可以降低感知延迟并提供更具响应性的生成式 AI 体验,这对会话 AI 助手等用例至关重要。最后,SageMaker 推理还提供在同一端点上使用 SageMaker 推理组件 部署单个模型或多个模型的能力,利用 高级路由策略 有效实现负载均衡。

更快的自动扩展指标

为了优化实时推理工作负载,SageMaker 采用了 应用程序自动扩展。该功能动态调整使用中的实例数量和部署的模型副本数量,以应对实时需求变化。当活动请求超过预定义阈值时,自动扩展会增加可用实例并部署额外模型副本以满足需求。同样,当活动请求减少时,系统会自动移除不必要的实例和模型副本,从而有效降低成本。这种自适应扩展确保资源被最佳利用,以实时平衡性能需求与成本考虑。

借助今天的发布,SageMaker 实时端点现在会输出两个新的子分钟 Amazon CloudWatch 指标:ConcurrentRequestsPerModel 和 ConcurrentRequestsPerCopy。ConcurrentRequestsPerModel 是用于 SageMaker 实时端点的指标;ConcurrentRequestsPerCopy 则在使用 SageMaker 实时 推理组件 时使用。

这些指标通过跟踪容器处理的实际并发请求数量活动请求,包括排队在容器中的请求提供了系统负载的更直接、准确的表示。基于并发的目标追踪和步骤扩展策略专注于监测这些新指标。当并发水平增加时,自动扩展机制能够通过扩展部署、添加更多容器副本或实例来应对增加的工作负载。利用这些高分辨率指标,您现在可以实现显著更快的自动扩展,降低检测时间,并改善生成式 AI 模型的整体扩展时间。您可以使用这些新指标来监控使用加速器实例如 AWS Trainium、AWS Inferentia 和 NVIDIA GPU的端点。

此外,您可以在 SageMaker 上部署的模型上启用响应流式传递回客户端。许多当前解决方案仅在第一个令牌发送给客户端之前跟踪会话或并发指标,然后将目标实例标记为可用。SageMaker 可以跟踪请求,直到最后一个令牌被流式传输给客户端,而不是仅仅跟踪第一个令牌。通过这种方式,可以将客户端指向相对不忙的 GPU 实例,从而避免热点。并且,跟踪并发也有助于确保正在处理和排队的请求在需要自动扩展时能够受到同等对待。借助此功能,您可以确保模型部署能主动扩展,从而适应请求量的波动并通过最小化排队延迟来保持最佳性能。

在本篇文章中,我们详细说明了新的 ConcurrentRequestsPerModel 和 ConcurrentRequestsPerCopy CloudWatch 指标的工作原理,解释了为什么应使用它们,并指导您在工作负载中实施它们的过程。这些新指标使您能够更有效地扩展 LLM 部署,在模型需求波动时提供最佳性能和成本效率。

自动扩展的组成部分

以下图示说明了 SageMaker 实时推理端点如何扩展以处理并发请求增加的典型场景。这展示了 SageMaker 中扩展的自动化和响应特性。在这个示例中,当流入的推理流量开始增加、每个实例中部署的模型的并发请求增加时,我们将逐步展示所发生的关键步骤。我们展示了系统如何监控流量、调用自动扩展操作、配置新实例,最终在扩展的资源上进行请求负载均衡。理解这一扩展过程对于确保您的生成式 AI 模型可以应对需求波动并为客户提供无缝体验至关重要。在本次 walkthrough 的最后,您将清楚了解到 SageMaker 实时推理端点如何自动扩展以满足您的应用需求。

让我们深入探讨这个扩展场景的细节。

关键步骤如下:

推理流量增加 (t0) 在某个时刻,流量到达 SageMaker 实时推理端点开始增加,表明可能需要额外资源。流量的增加导致每个模型副本或实例所需的并发请求数量增加。CloudWatch 警报监控 (t0 t1) 自动扩展策略使用 CloudWatch 监控指标,在预定时间范围内对多条数据点进行采样。这确保了流量的增加是需求的持续变化,而不是暂时峰值。自动扩展触发 (t1) 如果指标超过预定义阈值,则 CloudWatch 警报进入 InAlarm 状态,触发自动扩展操作以扩大资源。新实例配置和容器启动 (t1 t2) 在扩展操作期间,将根据需要配置新实例。在新实例上启动模型服务器和容器。当实例配置完成后,模型容器初始化过程开始。在服务器成功启动并通过健康检查后,这些实例将注册到端点上,从而能够处理传入的流量请求。负载均衡 (t2) 在容器通过健康检查并报告健康后,新的实例已准备好处理推理请求。所有请求现在将在两个实例间自动负载均衡,使用 SageMaker 中预构建的路由策略。

这种方法使得 SageMaker 实时推理端点能够快速反应,并以对客户端影响最小的方式处理增大流量。

应用程序自动扩展支持 目标追踪 和 步骤扩展 策略。每种策略都有自己处理缩减和扩展的逻辑:

目标追踪通过增加容量来减少指标值ConcurrentRequestsPerModel/Copy与设定目标值之间的差距,从而实现扩展。当指标ConcurrentRequestsPerModel/Copy低于目标值时,应用程序自动扩展将通过减少容量来缩减。步骤扩展根据预设的调整集称为 步骤调整来扩展容量。调整的大小根据指标值ConcurrentRequestsPerModel/Copy/警报违规的程度而异。

通过使用这些新指标,自动扩展现在可以比旧的 SageMakerVariantInvocationsPerInstance 预定义度量类型更快速地调用和扩展。这种降低测量和调用扩展的时间能够让您在需求增加时大大加快反应速度少于 1 分钟。这对于通常受并发限制且每个推理请求可能需要多秒才能完成的生成式 AI 模型尤其有效。

使用新高分辨率指标可以显著减少使用应用程序自动扩展扩展端点所需的时间。这些高分辨率指标以 10 秒的间隔输出,从而实现更快的扩展程序调用。对于参数少于 100 亿的模型而言,这可能是端到端扩展事件所需时间的显著百分比。对于更大规模的模型部署,准备好服务流量的新副本的时间可以缩短至最多 5 分钟。

快速启动自动扩展

启动使用这些指标是相当简单的。您可以按照以下步骤创建新的扩展策略,以便受益于更快的自动扩展。在此示例中,我们将在使用 NVIDIA A10G GPU 的 G5 实例类型上部署一个包含 80 亿参数的 Meta Llama 3 模型。在这个例子中,模型可以完全适应单个 GPU,我们可以使用自动扩展根据流量扩展推理组件和 G5 实例的数量。完整的笔记本可以在 GitHub 的 SageMaker 单模型端点 和 带推理组件的 SageMaker 找到。

在您创建 SageMaker 端点后,为应用程序自动扩展定义新的自动扩展目标。在以下代码块中,您将 asmincapacity 和 asmaxcapacity 设置为您希望为端点设置的最小和最大实例数量。如果您正在使用推理组件稍后会展示,则可以直接使用实例自动扩展,而跳过此步骤。

pythonautoscalingclient = boto3client(applicationautoscaling regionname=region)

注册可扩展目标

scalabletarget = autoscalingclientregisterscalabletarget( ServiceNamespace=sagemaker ResourceId=resourceid ScalableDimension=sagemakervariantDesiredInstanceCount MinCapacity=asmincapacity MaxCapacity=asmaxcapacity # 替换为您的所需最大实例数)

创建新的可扩展目标后,您可以定义策略。您可以选择使用目标追踪策略或步骤扩展策略。在下面的目标追踪策略中,我们将 TargetValue 设置为 5。这意味着我们的自动扩展将在每个模型的并发请求数量达到或超过 5 时,应自动扩展。

python

创建目标追踪扩展策略

targettrackingpolicyresponse = autoscalingclientputscalingpolicy( PolicyName=SageMakerEndpointScalingPolicy ServiceNamespace=sagemaker ResourceId=resourceid ScalableDimension=sagemakervariantDesiredInstanceCount PolicyType=TargetTrackingScaling TargetTrackingScalingPolicyConfiguration={ TargetValue 50 # 当端点每个模型接收到 5 个并发请求时触发扩展 PredefinedMetricSpecification { PredefinedMetricType SageMakerVariantConcurrentRequestsPerModelHighResolution } ScaleInCooldown 180 # 缩减活动后的冷却时间 ScaleOutCooldown 180 # 扩展活动后的冷却时间 })

如果您希望配置一个步骤扩展策略,请参考以下 笔记本。

就这样!调用您端点的流量将被监控,并且并发请求将按照您指定的策略进行评估。您的端点将根据您提供的最低和最高值进行扩展和缩减。在上面的示例中,我们设置了 180 秒的冷却期来缩减和扩展,但您可以根据工作负载的最佳效果进行调整。

SageMaker 推理组件

如果您使用推理组件在 SageMaker 端点上部署多个生成式 AI 模型,您可以完成以下步骤:

创建 SageMaker 端点和推理组件后,您为应用程序自动扩展定义新的自动扩展目标:

pythonautoscalingclient = boto3client(applicationautoscaling regionname=region)

注册可扩展目标

scalabletarget = autoscalingclientregisterscalabletarget( ServiceNamespace=sagemaker ResourceId=resourceid ScalableDimension=sagemakerinferencecomponentDesiredCopyCount MinCapacity=asmincapacity MaxCapacity=asmaxcapacity # 替换为您想要的最大实例数)

亚马逊 SageMaker 推出更快的自动扩展以支持生成式 AI 模型 机器学习博客

创建新的可扩展目标后,您可以定义策略。在以下代码中,我们将 TargetValue 设置为 5。因此,当每个模型的并发请求数量达到或超过 5 时,我们将请求自动扩展。

加速器下载软件

python

创建目标追踪扩展策略

targettrackingpolicyresponse = autoscalingclientputscalingpolicy( PolicyName=SageMakerInferenceComponentScalingPolicy ServiceNamespace=sagemaker ResourceId=resourceid ScalableDimension=sagemakerinferencecomponentDesiredCopyCount PolicyType=TargetTrackingScaling TargetTrackingScalingPolicyConfiguration={ TargetValue 50 # 当端点每个副本接收到 5 个并发请求时触发扩展 PredefinedMetricSpecification { PredefinedMetricType SageMakerInferenceComponentConcurrentRequestsPerCopyHighResolution } ScaleInCooldown 180 # 缩减活动后的冷却时间 ScaleOutCooldown 180 # 扩展活动后的冷却时间 })

您可以将新的基于并发的目标追踪自动扩展策略与现有的基于调用的目标追踪策略并行使用。当某个容器发生崩溃或故障时,导致的请求通常是短暂的,可能会返回错误消息。在这种情况下,基于并发的自动扩展策略可以检测到并发请求的骤降,而可能导致容器队列的无意缩减。然而,基于调用的策略可以充当安全措施,避免缩减在仍有足够流量指向剩余容器的情况下发生。利用这种混合方式,容器应用程序能够实现更高效和适应性的扩展行为。基于并发和基于调用的策略之间的平衡使系统能够恰当地应对各种操作条件,比如容器故障、流量的突然激增或工作负载模式的逐步变化。这使得容器基础设施能够更有效地进行扩展和缩减,优化资源利用率,并提供可靠的应用性能。

示例运行和结果

利用新指标,我们观察到调用扩展事件所需时间的改进。为了测试此解决方案的有效性,我们对 Meta Llama 模型Llama 2 7B 和 L