当前位置: 首页 > 科技观察

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

时间:2023-03-18 11:41:32 科技观察

在re:Invent2017上宣布,AWS的托管机器学习服务AmazonSageMaker在re:Invent2017上宣布。它支持在云中训练和托管机器学习模型。客户可以在由NVIDIATeslaK80和P100GPU提供支持的集群上运行训练作业。训练作业(准备推理的模型)的结果以支持可扩展预测的RESTAPI的形式呈现。该服务还支持超参数调整,数据科学家和开发人员可以使用该服务为算法和业务问题找到最佳参数。例如,为了解决典型的回归问题,超参数调整会猜测哪些超参数组合可能产生最佳结果,并运行训练作业来测试这些猜测。在测试完第一组超参数值后,超参数调优使用回归来选择下一组超参数值进行测试。AmazonSageMaker最大的设计决策之一是使用JupyterNotebooks作为开发工具。鉴于Notebooks在数据科学家中的熟悉度和流行度,进入门槛很低。AWS开发了一个原生PythonSDK,可以与NumPy、Pandas和Matplotlib等标准模块混合搭配。AmazonSageMaker与相关AWS服务紧密集成,可以轻松处理模型生命周期。借助适用于AWS的Python开发工具包:Boto3,用户可以存储数据集并从AmazonS3存储桶中检索数据集。数据也可以从云数据仓库AmazonRedshift导入。该服务与IAM集成以进行身份??验证和授权。使用AmazonEMR运行的Spark集群可以与SageMaker集成。AWSGlue是用于数据转换和准备的首要服务。Docker容器在SageMaker的架构中发挥着关键作用。AWS为线性回归、逻辑回归、主成分分析、文本分类和对象检测等常用算法提供容器镜像。在开始训练工作之前,开发人员应该将数据集的位置和一组参数传递给容器。但是,高级PythonAPI抽象了使用容器所涉及的步骤。***,训练好的模型也被打包成容器镜像,用于渲染预测API。SageMaker依靠AmazonEC2ContainerRegistry来存储图像和AmazonEC2来托管模型。AmazonSageMaker具有三个基本组件:托管的Jupyter笔记本、分布式训练作业和用于呈现预测端点的模型部署。让我们仔细看看在AmazonSageMaker中部署的机器学习模型的训练和预测所涉及的步骤。数据准备和探索AmazonSageMaker要求数据集在S3存储桶中可用。在上传数据之前,客户可以选择在外部服务中进行ETL操作,例如AWSGlue、AWSDataPipeline或AmazonRedshift等服务。数据科学家可以使用熟悉的工具(包括Pandas和Matplotlib)探索和可视化数据。准备和探索数据后,数据集将转换为SageMaker模型所需的格式。由于该平台起源于ApacheMXNet,因此它使用框架中定义的Tensor数据类型。在将数据集上传到S3存储桶之前,需要将NumPy数组和Pandas数据帧序列化为MXNetTensors。模型选择和训练AmazonSageMaker具有内置算法,可以抽象出训练模型的低级细节。每种算法都可以作为API使用,以数据集和指标作为参数。这消除了选择正确类型的培训框架的麻烦。一旦开发人员决定使用哪种算法,剩下的就是调用映射到该特定算法的API。在幕后,SageMaker使用ApacheMXNet和Gluon框架将API转换为创建作业所需的多个步骤。这些算法被打包到存储在AmazonECR中的容器镜像中。除了ApacheMXNet之外,SageMaker还提供了TensorFlow作为原生框架。开发人员可以编写代码来创建自定义TensorFlow模型。您还可以使用自定义框架,例如PyTorch和Scikit-learn。SageMaker要求将这些框架打包到容器镜像中。Amazon发布的指导指南包括一个Dockerfile和用于创建自定义图像的帮助脚本。使用低级PythonAPI,可以在开始训练作业之前将AmazonSageMaker指向自定义图像而不是内置图像。模型训练AmazonSageMaker的训练作业在基于AmazonEC2实例的分布式环境中运行。API需要实例数和实例类型才能运行训练作业。如果训练复杂的人工神经网络,SageMaker需要一个基于K80或P100GPU的ml.p3.2xlarge或更好的实例。从JupyterNotebook启动时,训练作业会同步运行,显示基本进度日志,并等到训练完成后再返回。模型部署在AmazonSageMaker中部署模型是一个两步过程。第一步是创建端点配置,指定要在其上部署模型的机器学习计算实例。第二步,启动机器学习计算实例,部署模型,呈现预测URI。端点配置API接受机器学习实例类型和实例的初始计数。在推理神经网络的情况下,配置可能包括GPU支持的实例类型。端点API配置上一步中定义的基础结构。AmazonSageMaker支持在线预测和批量预测。批量预测使用经过训练的模型来推断存储在AmazonS3中的数据集,并将推断结果保存在创建批量转换作业期间指定的S3存储桶中。与GoogleCloudMachineLearningEngine和AzureMachineLearningService相比,AmazonSageMaker缺乏使用本地计算资源训练和测试模型的能力。即使是简单的机器学习项目也需要开发人员创建用于训练和预测的托管笔记本和实例,从而使服务成本高昂。预计亚马逊将在今年的re:Invent大会上宣布对SageMaker的几项改进。原标题:Train,DeployMachineLearningModelswithAmazonSageMaker,作者:JanakiramMSV