使用Amazon SageMaker的路由策略来最小化实时推理延迟
使用Amazon SageMaker的路由策略来最小化实时推理延迟 提升性能的有效方法
Amazon SageMaker使实时推理的机器学习(ML)模型部署变得简单,并提供了涵盖CPU和加速器等多种ML实例的广泛选择,例如AWS Inferentia。作为一项完全托管的服务,您可以扩展您的模型部署,降低推理成本,并在生产中更有效地管理您的模型,减少运维负担。SageMaker实时推理端点由HTTPS端点和在多个可用区部署的ML实例组成,以实现高可用性。SageMaker应用自动缩放可以根据工作负载的变化动态调整为模型提供的ML实例数量。端点使用循环分发算法将传入请求均匀分配给ML实例。
当部署在实例上的ML模型接收大量客户端的API调用时,如果请求和响应之间没有太多变化的话,随机分配请求可以很好地工作。但在具有生成AI工作负载的系统中,请求和响应可能会非常不稳定。在这些情况下,根据实例的容量和使用情况进行负载平衡通常是更可取的,而不是随机负载平衡。
在本文中,我们将讨论SageMaker的最少未完成请求(LOR)路由策略,以及它如何通过考虑ML实例的容量和使用情况来最小化某些类型的实时推理工作负载的延迟。我们将讨论它相对于默认路由机制的优势,以及如何为您的模型部署启用LOR。最后,我们将对比分析了使用LOR相对于默认的随机路由策略的延迟改进情况。
SageMaker LOR策略
默认情况下,SageMaker端点采用随机路由策略。现在,SageMaker支持LOR策略,允许SageMaker将请求最优地路由到最适合处理该请求的实例上。SageMaker通过监视端点后面的实例的负载以及部署在每个实例上的模型或推理组件来实现这一点。
- 使用亚马逊SageMaker的最新功能,平均可以将模型部署成本降低50%
- 新推出的代码编辑器,基于Code-OSS VS Code开源,现在可在Amazon SageMaker Studio中使用
- 使用Amazon SageMaker轻松打包和部署经典ML和LLMs,第一部分:PySDK的改进
以下交互式图表显示了默认路由策略,其中向模型端点发出的请求以随机方式转发给ML实例。

以下交互式图表显示了路由策略,SageMaker将请求路由到具有最少未完成请求的实例。

一般来说,LOR路由对于基本模型或生成AI模型,当您的模型在几百毫秒到几分钟内响应时,效果很好。如果您的模型响应时间更低(最多几百毫秒),您可能会从随机路由中受益更多。无论如何,我们建议您测试和确定最适合您工作负载的路由算法。
如何设置SageMaker路由策略
现在,SageMaker允许您在创建用于端点的EndpointConfiguration时设置RoutingStrategy参数。SageMaker支持的不同RoutingStrategy值包括:
LEAST_OUTSTANDING_REQUESTSRANDOM
以下是在启用LOR的推理端点上部署模型的示例:
-
通过将
RoutingStrategy设置为LEAST_OUTSTANDING_REQUESTS创建端点配置:endpoint_config_response = sm_client.create_endpoint_config( EndpointConfigName=endpoint_config_name, ProductionVariants=[ { "VariantName": "variant1", "ModelName": model_name, "InstanceType": "instance_type", "InitialInstanceCount": initial_instance_count, ….. "RoutingConfig": { 'RoutingStrategy': 'LEAST_OUTSTANDING_REQUESTS'} }, ],) -
使用端点配置创建端点(无变化):
create_endpoint_response = sm_client.create_endpoint( EndpointName="endpoint_name", EndpointConfigName="endpoint_config_name")
性能结果
我们进行了性能基准测试,以衡量在 ml.g5.24xl 实例上托管的 codegen2-7B 模型的端到端推理延迟和吞吐量。CodeGen2 模型属于自回归语言模型家族,并且在给定英语提示时生成可执行代码。
在我们的分析中,随着并发用户数量的增加,我们增加了每个端点后面的 ml.g5.24xl 实例数量,如下表所示。
| 测试 | 并发用户数量 | 实例数量 |
| 1 | 4 | 1 |
| 2 | 20 | 5 |
| 3 | 40 | 10 |
| 4 | 60 | 15 |
| 5 | 80 | 20 |
我们测量了两个端点的端到端 P99 延迟,并观察到当实例数量从 5 增加到 20 时,延迟有 4-33% 的改善,如下图所示。

类似地,当实例数量从 5 增加到 20 时,吞吐量每分钟每实例改善了 15-16%。

这说明智能路由能够改善端点之间的流量分配,从而改善端到端延迟和整体吞吐量。
结论
在本文中,我们解释了 SageMaker 的路由策略和启用 LOR 路由的新选项。我们解释了如何启用 LOR,以及它如何为您的模型部署带来好处。我们的性能测试显示了在实时推断期间的延迟和吞吐量改善。要了解更多关于 SageMaker 路由功能的信息,请参阅文档。我们鼓励您评估推断工作负载,并确定您是否已经以最佳的路由策略进行配置。





