通过使用 Amazon SageMaker 路由策略来最小化实时推理延迟 机器学习博客
使用 Amazon SageMaker 路由策略最小化实时推理延迟
作者:James Park Alan Tan Dylan Chow Dhawalkumar Patel Deepti Ragha David Nigenda Venugopal Pai,发布于 2023 年 11 月 30 日,文章来源为 Amazon SageMaker
关键要点
Amazon SageMaker 允许通过路由策略确保更低的实时推理延迟。介绍了“最少未处理请求LOR”路由策略,该策略能够根据容器的负载和利用率,优化请求的路由。通过性能测试证明了 LOR 路由相对于默认随机路由在延迟和吞吐量上的显著提升。在处理机器学习ML模型进行实时推理时,Amazon SageMaker 提供了使用 CPU 和加速器如 AWS Inferentia的广泛 ML 实例,简化了部署流程。作为一项完全托管的服务,SageMaker 可实现模型部署的扩展,降低推理成本,并有效管理生产中的模型。同时,SageMaker 实时推理端点由 HTTPS 端点和部署在多个可用区的 ML 实例组成,以保证高可用性。SageMaker 应用程序自动扩展 可根据工作负载动态调整模型的 ML 实例数量。端点使用轮询算法均匀分配传入请求。
然而,当实例上的 ML 模型接收来自大量客户的 API 调用时,随机请求分布可能在请求和响应变化较小的情况下表现较好。但在生成性 AI 工作负载的系统中,请求和响应的变化非常大。这种情况下,通常会希望通过考虑实例的容量和利用率来进行负载均衡,而不是依靠随机负载均衡。

本文将讨论 SageMaker 的最少未处理请求LOR路由策略,说明如何通过考虑 ML 实例的容量和利用率来最小化某些实时推理工作负载的延迟。我们将介绍与默认路由机制相比,LOR 的优点以及如何为模型部署启用 LOR,最后呈现 LOR 相较于默认随机路由策略的延迟改进对比分析。
SageMaker LOR 策略
默认情况下,SageMaker 端点采用随机路由策略。现在 SageMaker 支持 LOR 策略,允许根据最适合服务请求的实例来优化请求路由。SageMaker 通过监控端点后面实例的负载和每个实例上部署的模型或推理组件,使得此项功能成为可能。
以下互动图展示了请求到达模型端点时采用随机方式转发到 ML 实例的默认路由策略。
接下来是 LOR 路由策略,SageMaker 会将请求路由至未处理请求最少的实例。
通常,LOR 路由对于基础模型或生成性 AI 模型效果良好,尤其是当模型响应时间在几百毫秒到几分钟之间时。如果模型响应时间较低数百毫秒以内,随机路由可能更为有效。无论如何,我们建议您测试并识别最适合您工作负载的路由算法。
如何设置 SageMaker 路由策略
SageMaker 现允许在创建端点配置时设置 RoutingStrategy 参数。支持的 RoutingStrategy 值如下:
LEASTOUTSTANDINGREQUESTSRANDOM以下是启用 LOR 的推理端点模型部署示例:
创建端点配置,使 RoutingStrategy 设置为 LEASTOUTSTANDINGREQUESTS:pythonendpointconfigresponse = smclientcreateendpointconfig( EndpointConfigName=endpointconfigname ProductionVariants=[ { VariantName variant1 ModelName modelname InstanceType instancetype InitialInstanceCount initialinstancecount RoutingConfig { RoutingStrategy LEASTOUTSTANDINGREQUESTS} } ])
使用端点配置创建端点无需更改:pythoncreateendpointresponse = smclientcreateendpoint( EndpointName=endpointname EndpointConfigName=endpointconfigname)
性能结果
我们进行了性能基准测试,以衡量使用默认路由和智能路由端点的 codegen27B 模型的端到端推理延迟和吞吐量。CodeGen2 模型属于自回归语言模型的一部分,提供可执行代码生成。
在我们的分析中,随着并发用户数量的增加,我们在每个测试中增加了 mlg524xl 实例的数量,如下表所示。
测试并发用户数量实例数量1412205340104601558020我们测量了两个端点的端到端 P99 延迟,并观察到当实例数量从 5 增加到 20 时,延迟提升显著,提高幅度在 4 到 33 之间,如下图所示。
加速器签到免费15分钟同样的,我们还发现每分钟每个实例的吞吐量在实例数量从 5 增加到 20 时提高了 15 到 16。
这说明智能路由能够在端点之间改善流量分配,从而提高端到端延迟和整体吞吐量。
结论
本文解释了 SageMaker 路由策略及启用 LOR 路由的新选项。我们详细介绍了如何启用 LOR 以及它对模型部署的潜在好处。我们的性能测试表明实时推理过程中的延迟和吞吐量均有改善。如需了解更多 SageMaker 路由功能,请参考 文档。我们鼓励您评估推理工作负载,以确定您是否已针对最佳路由策略进行配置。
关于作者
James Park 是亚马逊网络服务的解决方案架构师,与 Amazoncom 合作设计、构建和部署 AWS 上的技术解决方案,特别关注 AI 和机器学习。在业余时间,他喜欢探索新文化、新体验以及跟进最新技术趋势。您可以在 LinkedIn 找到他。
Venugopal Pai 是 AWS 的解决方案架构师,居住在印度班加罗尔,帮助数字原生客户在 AWS 上扩展和优化应用程序。
David Nigenda 是亚马逊 SageMaker 团队的高级软件开发工程师,目前致力于改善生产机器学习工作流以及推出新的推理功能。在业余时间,他努力跟上孩子们的步伐。
Deepti Ragha 是亚马逊 SageMaker 团队的软件开发工程师。她目前专注于构建能够高效托管机器学习模型的功能。在业余时间,她喜欢旅行、徒步以及养植物。
Alan Tan 是 SageMaker 的高级产品经理,负责大型模型推理的工作。他热衷于在分析领域应用机器学习。在工作之外,他喜欢户外活动。
Dhawalkumar Patel 是 AWS 的首席机器学习架构师,曾与多家从大型企业到中型初创公司的组织合作,解决与分布式计算和人工智能相关的问题,专注于深度学习,包括 NLP 和计算机视觉领域,帮助客户在 SageMaker 上实现高性能模型推理。
Dylan Chow 是亚马逊 SageMaker 团队的软件开发工程师,目前正在开发使客户能够在 AWS 上运行生成性 AI 工作负载的功能。在业余时间,他喜欢户外活动、艺术和音乐。