[SEO 副标题]
本指南提供最佳实践,协助您优化机器学习(ML)操作(MLOps)以实现环境可持续发展。尽管各行各业的客户都致力于减少碳足迹,但机器学习工作负载变得越来越复杂,消耗的能源和资源也越来越多。 本指南可帮助您审查和完善工作负载,以最大限度地提高利用率并最大限度地减少浪费,以及为支持机器学习生命周期各个方面(包括数据收集、数据存储、特征工程、训练、推理和部署)的工作负载而部署和支持的总资源。
请注意:[免责声明]
架构图
-
数据准备
-
模型训练和调优
-
模型部署和管理
-
数据准备
-
此架构图重点关注数据准备。有关机器学习生命周期其他方面的更多详细信息,请打开其他选项卡。
第 1 步
根据业务需求和可持续发展目标选择区域。在法规和法律允许的情况下,使用电力消耗可归因于 100% 可再生能源的 AWS 区域或电网公布的碳强度低于其他地点(或区域)的区域。选择区域时,应尽量减少网络间的数据移动,将数据存储在靠近生产者的地方,并在靠近数据的地方训练模型。
第 2 步
为您的管道采用无服务器架构,这样仅在需要完成工作时才预置资源。使用 Amazon SageMaker 管道可以避免一直维护计算基础设施。您可以扩展 Amazon SageMaker Projects 提供的模板,例如用于模型构建、训练、部署和 Amazon SageMaker Model Monitor 的 MLOps 模板。第 3 步
使用 Amazon SageMaker Feature Store 减少特征工程代码在团队和项目间的重复和重新运行。第 4 步
减少要存储的数据量,并采用可持续存储选项来限制工作负载的碳影响。对不经常访问的数据(例如原始数据)使用节能的存档级存储。如果您能轻松地重新创建不经常访问的数据集,例如训练、验证和测试数据,请使用 Amazon Simple Storage Service(Amazon S3)One Zone-Infrequent Access 类来最大限度地减少存储的数据总量。使用 Amazon S3 Lifecycle 策略,管理所有数据的生命周期并自动强制执行删除时间表,从而最大限度地降低工作负载的总存储需求。当访问模式发生变化时,Amazon S3 Intelligent-Tiering 会自动将您的数据移至最节能的访问层。定义数据留存期限,以支持您的可持续发展目标,同时满足您的业务需求(但不要超出这些需求)。
-
模型训练和调优
-
此架构图重点关注模型训练和调优。有关机器学习生命周期其他方面的更多详细信息,请打开其他选项卡。
第 5 步
要对大型深度学习模型进行分布式训练,请在训练代码中使用 Amazon SageMaker Model Parallelism Library,以最大限度地利用图形处理单元(GPU)。第 6 步
使用 Amazon SageMaker Training Compiler 将您的深度学习模型从高级语言表示形式编译为硬件优化指令,从而缩短训练时间。这可以将深度学习模型训练速度提高多达 50%。第 7 步
使用贝叶斯优化搜索,而不是随机搜索或网格搜索。在寻找最佳超参数方面,贝叶斯搜索所需的工作通常比随机搜索少 10 倍。第 8 步
使用 Amazon SageMaker Debugger 来检测系统资源未充分利用的情况并确定训练问题。SageMaker Debugger 内置规则可以监控您的训练作业,并在检测到错误时自动停止训练。第 9 步
定义可接受的性能标准:使用 Amazon SageMaker Processing 作业评估模型的准确性,并在模型的准确性与其碳足迹之间进行权衡。制定绩效标准,以支持您的可持续发展目标,同时满足您的业务需求(但不要超出这些需求)。第 10 步
使用 AWS Trainium 训练深度学习模型,能耗比同类 Amazon Elastic Compute Cloud(Amazon EC2)实例减少多达 52%。考虑利用未使用的 Amazon EC2 容量的托管型 Spot 训练,提高您的整体资源效率并减少云资源的闲置容量。第 11 步
使用 Amazon CloudWatch 指标来调整训练作业的规模。第 12 步
减少您保留的 CloudWatch 日志的数量。通过为笔记本和训练日志设置有限的保留时间,可以避免不必要的日志存储。第 13 步
使用 Amazon SageMaker 模型卡记录模型对环境的影响。 -
模型部署和管理
-
此架构图重点关注模型部署和管理。有关机器学习生命周期其他方面的更多详细信息,请打开其他选项卡。
第 14 步
自动部署模型。使用 Amazon SageMaker 模型注册表和 AWS CodePipeline 来运行您的部署代码。第 15 步
如果您的用户可以容忍延迟,请使用自动扩缩组将您的模型部署在 Amazon SageMaker 异步端点上,以减少任务之间的空闲资源并最大限度地减少负载峰值的影响。第 16 步
当您不需要实时推理时,可以使用 Amazon SageMaker Batch Transform。与永久端点不同,批量转换作业完成后,集群将停用。第 17 步
在单个 Amazon SageMaker 端点后部署多个模型,并使用具备自动扩缩功能的推理端点,这比在每个端点后只部署一个模型更具可持续性。第 18 步
如果您的工作负载有间歇性或不可预测的流量,请使用 Amazon SageMaker 无服务器推理功能端点,它会自动启动计算资源并根据流量进行扩展。第 19 步
使用 AWS Inferentia 部署您的深度学习模型,与同类的 EC2 实例相比,每瓦特性能最多可提高 50%。第 20 步
对于大型模型推理(LMI),使用适用于 LMI 的深度学习容器中提供的张量并行化来降低延迟。第 21 步
借助 Amazon Elastic Inference,向任意 Amazon EC2 或 SageMaker 实例类型连接适当量级的 GPU 推理加速。第 22 步
使用 Amazon SageMaker Neo 将模型编译成优化的表单,从而提高模型的效率。第 23 步
使用来自 CloudWatch 或 Amazon SageMaker Inference Recommender 的指标来调整您的端点的大小,Amazon SageMaker Inference Recommender 会推荐合适的实例类型来托管您的模型。第 24 步
使用 SageMaker Model Monitor 监控生产环境中的机器学习模型,自动进行模型偏差检测,并且仅在预测性能降至定义的关键性能指标(KPI)以下时才进行再训练。
Well-Architected 支柱
当您在云中构建系统时,AWS Well-Architected Framework 可以帮助您了解所做决策的利弊。框架的六大支柱使您能够学习设计和操作可靠、安全、高效、经济高效且可持续的系统的架构最佳实践。使用 AWS 管理控制台中免费提供的 AWS Well-Architected Tool,您可以通过回答每个支柱的一组问题,根据这些最佳实践来检查您的工作负载。
上面的架构图是按照 Well-Architected 最佳实践创建的解决方案示例。要做到完全的良好架构,您应该遵循尽可能多的 Well-Architected 最佳实践。
-
卓越运营
CloudWatch 指标和警报可监控部署在 SageMaker 托管选项上的模型端点的运行状况,允许您记录与性能相关的指标,在事件或事故发生时分析指标,建立 KPI 以衡量工作负载性能,并主动监控和发出警报。此外,使用 CloudWatch 收集和分析训练作业和推理环境的指标允许您分析工作负载运行状况趋势,并定期对组织进行工作负载指标审查。
-
安全性
AWS Identity and Access Management(IAM)可控制对资源和托管服务的访问权限,以帮助确保最低权限访问、保护机器学习环境并防范对抗和恶意活动。在 Amazon Simple Storage Service(Amazon S3)和 SageMaker Feature Store 中对静态数据进行加密,两者都使用 AWS Key Management Service(AWS KMS)来保护敏感数据。
-
可靠性
SageMaker 允许自动扩缩模型端点,以可靠地处理预测并满足不断变化的工作负载需求。如果发生中断或实例故障,它还会跨可用区分配实例。 SageMaker 管道允许版本化管道输入和构件,而 SageMaker Projects 允许版本化数据处理代码。此版本控制可帮助您创建可重复的方法并保留数据,以防需要回滚到以前的状态。
-
性能效率
我们在本指南中选择的服务是为了在不影响训练结果准确性的前提下提高性能。例如,托管机器学习服务(如 SageMaker)通过预先优化的机器学习组件提供更好的性能。SageMaker Inference Recommender 可提高性能,同时缩短推理时间。高计算实例(例如 Trainium 和 Inferentia)可以加快推理速度。
-
成本优化
SageMaker 服务具有内置功能,可帮助您优化与模型训练相关的成本。例如,SageMaker Feature Store 有助于避免存储和处理重复数据集的成本。SageMaker Debugger 允许您在检测到错误后立即停止训练作业,从而节省与不必要的训练作业执行相关的成本。 SageMaker Training Compiler 减少了 GPU 实例的训练时间和成本。无服务器管道、SageMaker 异步端点和 SageMaker Batch Transform 避免了全天候维护计算基础设施的成本。
-
可持续性
SageMaker 无服务器推理功能端点和 SageMaker 异步端点使用自动缩放组来扩展资源以响应需求。当没有请求时,SageMaker 无服务器推理功能端点将端点数量缩减到零。这最大限度地减少了不必要的预置资源并减少了碳排放。此外,诸如 SageMaker 无服务器推理功能端点和 SageMaker 管道之类的无服务器技术无需启动服务器,即可帮助消除空闲资源。
实施资源
提供了在 AWS 账户中进行实验和使用的详细指南。构建指南的每个阶段(包括部署、使用和清理)都将被检查,以便为部署做好准备。
示例代码为起点。它经过行业验证,是规范性但不是决定性的,可以帮助您开始。
相关内容
免责声明
示例代码;软件库;命令行工具;概念验证;模板;或其他相关技术(包括由我方人员提供的任何前述项)作为 AWS 内容按照《AWS 客户协议》或您与 AWS 之间的相关书面协议(以适用者为准)向您提供。您不应将这些 AWS 内容用在您的生产账户中,或用于生产或其他关键数据。您负责根据特定质量控制规程和标准测试、保护和优化 AWS 内容,例如示例代码,以使其适合生产级应用。部署 AWS 内容可能会因创建或使用 AWS 可收费资源(例如,运行 Amazon EC2 实例或使用 Amazon S3 存储)而产生 AWS 费用。
本指南中提及第三方服务或组织并不意味着 Amazon 或 AWS 与第三方之间存在认可、赞助或从属关系。AWS 的指导是一个技术起点,您可以在部署架构时自定义与第三方服务的集成。