推理成本优化最佳实践
以下内容提供了优化端点成本的技巧和注意事项。您可以使用这些建议来优化新端点和现有端点的成本。
最佳实践
要优化 SageMaker Inference 成本,请遵循以下最佳实践。
SageMaker 提供 4 个不同的推理选项,可为作业提供最佳的推理选项。您可以通过选择最适合您的工作负载的推理选项来节省成本。
对采用可预测流量模式的低延迟工作负载使用实时推理,这些工作负载需要具有一致的延迟特征并且始终可用。使用此实例需要付费。
对于具有尖峰流量模式且可以接受 p99 延迟变化的同步工作负载,请使用无服务器推理。无服务器推理会自动扩展以满足您工作负载的流量需求,因此您无需为任何闲置资源付费。您仅需支付推理请求持续期间的费用。相同的模型和容器可用于实时和无服务器推理,因此,如果需求发生变化,您可以在这两种模式之间切换。
对于可处理多达 1 GB 的数据(例如文本语料库、图像、视频和音频)、对延迟不敏感但对成本敏感的异步工作负载,请使用异步推理。通过异步推理,您可以通过指定可获得最佳处理速率的固定数量的实例来控制成本,而不是为峰值预置。您也可以缩减到零以节省额外成本。
对于需要为离线进程的大量数据进行推理的工作负载(也就是说,您不需要永久端点),请使用批量推理。您需要支付实例在批量推理作业持续期间的费用。
-
如果您在所有 SageMaker 服务的使用水平上保持一致,则可以选择加入 SageMaker 节省计划,这有助于将成本降低多达 64%。
-
Amazon SageMaker 节省计划
为 Amazon SageMaker 提供灵活的定价模式,可换取一年或三年期的持续使用量承诺(以美元/小时为单位衡量)。无论实例系列、大小或区域为何,这些计划都会自动应用于符合条件的 SageMaker ML 实例用途,包括 SageMaker Studio 笔记本、SageMaker 按需笔记本、SageMaker Processing、SageMaker Data Wrangler、SageMaker 训练、SageMaker 实时推理和 SageMaker 批量转换。例如,您可以随时将推理工作负载的使用量从在美国东部(俄亥俄州)运行的 CPU ml.c5.xlarge 实例改为美国西部(俄勒冈州)的 ml.Inf1 实例,并自动继续支付节省计划的价格。
未优化的模型可能导致运行时间更长,并消耗更多资源。您可以选择使用更多或更大的实例来提高性能;但这会导致成本增加。
通过优化模型来提高性能,您可以使用更少或更小的实例来降低成本,同时保持相同或更好的性能特征。您可以使用 SageMaker Neo
和 SageMaker Inference 来自动优化模型。有关更多详细信息和示例,请参阅使用 Neo 优化模型性能。
SageMaker Inference 有 70 多种实例类型和大小,可用于部署 ML 模型,包括针对 ML 进行优化的 Amazon Inferentia 和 Graviton 芯片组。为您的模型选择合适的实例有助于确保您的模型以最低的成本获得性能最高的实例。
通过使用 Inference Recommender,您可以快速比较不同的实例,以了解模型的性能和成本。根据这些结果,您可以选择投资回报率最高的实例进行部署。
-
当您部署多个端点时,成本可能会迅速增加,尤其是在端点没有充分利用底层实例的情况下。要了解实例是否未得到充分利用,请在 Amazon CloudWatch 中查看您的实例的利用率指标(CPU、GPU 等)。如果您有多个此类端点,则可将这多个端点上的模型或容器合并到一个端点中。
-
使用多模型端点 (MME) 或多容器端点 (MCE),您可以在单个端点中部署多个 ML 模型或容器,以便在多个模型或容器之间共享实例,从而提高投资回报率。要了解更多信息,请参阅 Amazon 机器学习博客上的使用 Amazon SageMaker 多模型端点节省推理成本
或使用 Amazon SageMaker 多容器端点在单个实例上部署多个服务容器 。
-
如果没有自动扩缩,您需要为峰值流量或风险模型不可用进行预置。除非您模型的流量全天保持稳定,否则就会有多余的未使用容量。这会导致利用率低和资源浪费。
-
自动扩缩是一项开箱即用的功能,可监控您的工作负载并动态调整容量,以尽可能低的成本保持稳定且可预测的性能。当工作负载增加时,自动扩缩会让更多实例联机。当工作负载减少时,自动扩缩会删除不必要的实例,从而帮助您降低计算成本。要了解更多信息,请参阅 Amazon 机器学习博客上的在 Amazon SageMaker 中配置自动扩缩推理端点
。