用Amazon SageMaker训练和部署机器学习模型

译文
人工智能 机器学习
Amazon SageMaker在re:Invent 2017大会上宣布,这是AWS的一种托管机器学习服务。它在云端支持训练和托管机器学习模型。客户可以在英伟达Tesla K80和P100 GPU支持的集群上运行训练作业。训练作业的结果(准备用于推理的模型)可作为实现可扩展预测的REST API来呈现。

[[248715]]

【51CTO.com快译】Amazon SageMaker在re:Invent 2017大会上宣布,这是AWS的一种托管机器学习服务。它在云端支持训练和托管机器学习模型。客户可以在英伟达Tesla K80和P100 GPU支持的集群上运行训练作业。训练作业的结果(准备用于推理的模型)可作为实现可扩展预测的REST API来呈现。

该服务还支持超参数调优,数据科学家和开发人员可以借助该服务,找到最适合某一个算法和业务问题的***参数。比如说,为了解决典型的回归问题,超参数调优猜测哪些超参数组合可能获得***结果,并运行训练作业来测试这些猜测。测试完***组超参数值之后,超参数调优使用回归来选择要测试的下一组超参数值。

Amazon SageMaker的***设计决策之一是,使用Jupyter Notebooks作为开发工具。鉴于Notebooks在数据科学家当中的熟悉和普及程度,准入门槛很低。AWS开发了一个原生Python SDK,可以与NumPy、Pandas和Matplotlib等标准模块混合搭配。

Amazon SageMaker与相关的AWS服务紧密集成,因而轻松处理模型的生命周期。借助面向AWS的Python SDK:Boto3,用户可以存储数据集,并从Amazon S3存储桶中检索数据集。还可以从云端数据仓库Amazon Redshift导入数据。该服务与IAM集成以进行身份​​验证和授权。使用Amazon EMR运行的Spark集群可与SageMaker集成起来。AWS Glue是用于数据转换和准备的***服务。

Docker容器在SageMaker的架构中发挥着关键作用。AWS为常见算法提供了容器镜像,比如线性回归、逻辑回归、主成分分析、文本分类和对象检测。在开始训练作业之前,开发人员应将数据集的位置和一组参数传递给容器。然而,高级Python API对处理容器所涉及的步骤作了抽象处理。***,经过训练的模型也被打包成用于呈现预测API的容器镜像。SageMaker依赖用于存储镜像的Amazon EC2 Container Registry和托管模型的Amazon EC2。

Amazon SageMaker有三个基本组件:托管的Jupyter Notebooks、分布式训练作业以及呈现预测端点的模型部署。

不妨仔细看一下针对部署在Amazon SageMaker中的机器学习模型来训练和预测所涉及的步骤。

数据准备和探索

Amazon SageMaker要求数据集在S3 Bucket中可用。上传数据之前,客户可以选择在外部服务中执行ETL操作,比如AWS Glue、AWS Data Pipeline或Amazon Redshift等服务。

数据科学家可以使用包括Pandas和Matplotlib在内的熟悉工具来探索和可视化数据。

在准备和探索数据之后,数据集将转换成SageMaker模型要求的一种格式。由于该平台根源于Apache MXNet,它使用框架中定义的Tensor数据类型。数据集上传到S3存储桶之前,需要将NumPy数组和Pandas数据框序列化成MXNet Tensors。

模型选择和训练

Amazon SageMaker有内置算法可以对训练模型的低级细节进行抽象处理。每种算法都可作为将数据集和指标作为参数的API来使用。这消除了选择适合训练的那种框架带来的麻烦。一旦开发人员决定了使用什么算法,剩下来的就是调用映射到该特定算法的API。

在幕后,SageMaker使用Apache MXNet和Gluon框架,将API转换成创建作业所需的多个步骤。这些算法打包成存储在Amazon ECR中的容器镜像。

除了Apache MXNet外,SageMaker还将TensorFlow呈现为原生框架。开发人员可以编写用于创建自定义TensorFlow模型的代码。

还可以使用自定义框架,比如PyTorch和Scikit-learn。SageMaker要求这些框架封装在容器镜像中。Amazon发布的说明性指南包含Dockerfile和用于创建自定义镜像的帮助脚本。就在开始训练作业之前,使用低级Python API,就可以将Amazon SageMaker指向自定义镜像,而不是内置镜像。

模型训练

Amazon SageMaker的训练作业在基于Amazon EC2实例的分布式环境中运行。API需要实例数量与实例类型一起,才能运行训练作业。如果训练复杂的人工神经网络,SageMaker要求基于K80或P100 GPU的ml.p3.2xlarge或更好类型的实例。

从Jupyter Notebook开始时,训练作业同步运行,显示基本的进度日志,一直等到训练完成再返回。

模型部署

在Amazon SageMaker中部署模型是分两步走的过程。***步是创建端点配置,该配置指定了用于部署模型的机器学习计算实例。第二步是启动机器学习计算实例,部署模型,并呈现URI进行预测。

端点配置API接受机器学习实例类型和实例的初始计数。如果是推理神经网络,配置可能包括GPU支持的实例类型。端点API按照上一步定义的内容来配置基础设施。

Amazon SageMaker支持在线预测和批量预测。批量预测使用经过训练的模型来推断存储在Amazon S3中的数据集,并将推断结果保存在创建批量转换作业的过程中所指定的S3存储桶中。

与谷歌云机器学习引擎和Azure机器学习服务相比,Amazon SageMaker缺少使用本地计算资源来训练和测试模型的功能。即使是简单的机器学习项目,也需要开发人员创建托管的Notebooks以及用于训练和预测的实例,因而这项服务成本高昂。

预计Amazon会在今年的re:Invent大会上宣布SageMaker的多处改进。

原文标题:Train, Deploy Machine Learning Models with Amazon SageMaker,作者:Janakiram MSV

【51CTO译稿,合作站点转载请注明原文译者和出处为51CTO.com】

责任编辑:庞桂玉 来源: 51CTO
相关推荐

2018-08-22 12:35:01

Amazon Sage机器学习

2020-09-18 10:06:39

AWS机器学习SageMaker

2020-05-15 10:00:18

机器学习人工智能工具

2020-08-10 15:05:02

机器学习人工智能计算机

2022-09-07 08:00:00

机器学习MLFlow工具

2020-12-15 13:18:29

AWSSageMaker

2019-01-23 11:12:42

机器学习机器模型预测工资

2017-03-24 15:58:46

互联网

2022-03-28 09:00:00

SQL数据库机器学习

2020-05-21 14:05:17

TFserving深度学习架构

2021-11-26 08:00:00

机器学习数据库AWS

2022-08-09 13:44:37

机器学习PySpark M数据分析

2021-01-25 09:00:00

机器学习人工智能算法

2019-10-23 08:00:00

Flask机器学习人工智能

2024-02-20 15:17:35

机器学习模型部署

2023-09-05 10:41:28

人工智能机器学习

2022-03-25 11:11:50

机器学习TiDBSQL

2022-05-10 10:19:04

AI深度学习模型

2017-04-18 14:31:39

机器学习模型架构

2021-04-09 14:49:02

人工智能机器学习
点赞
收藏

51CTO技术栈公众号