一般性问题
全部打开 Amazon SageMaker 是一项完全托管的服务,可为每位开发人员和数据科学家提供快速构建、训练和部署机器学习(ML)模型的能力。SageMaker 消除了机器学习过程中的每个步骤的繁重工作,让您能够更轻松地开发高质量模型。
有关支持的亚马逊 SageMaker 亚马逊网络服务区域列表,请访问所有亚马逊云科技全球基础设施的亚马逊网络服务区域表。另外,有关更多信息,请参阅“亚马逊云科技一般参考”中的区域和终端节点。
Amazon SageMaker 专为高可用性而设计。没有维护窗口期或计划停机时间。SageMaker APIs 在 Amazon 经过验证的高可用性数据中心中运行,在每个亚马逊云科技区域的三个设施上配置了服务堆栈副本,可以在服务器故障或可用区中断时提供容错。
Amazon SageMaker 确保 ML 模型构件和其他系统构件在传输和静态时均被加密。对 SageMaker API 和控制台的请求均通过安全 (SSL) 连接发出。您将 Amazon Identity and Access Management 角色传递给 SageMaker,代表您为训练和部署提供访问资源的权限。您可以将加密的 S3 存储桶用于模型构件和数据,并且将 KMS 密钥传递给 SageMaker 笔记本、训练作业和终端节点,从而对已连接的 ML 存储卷加密。
Amazon SageMaker 将代码存储在 ML 存储卷中,由安全组保护,并且可以选择静态加密。
您需要为托管笔记本、训练模型、执行预测和记录输出所使用的 ML 计算、存储和数据处理资源付费。Amazon SageMaker 允许选择用于托管笔记本、训练和模型托管的实例数量和类型。您只需在使用时按实际使用量付费;既没有最低费用,也无需预付费。有关详细信息,请参阅 Amazon SageMaker 定价页面。
Amazon SageMaker 提供了完整的端到端工作流程,但是您可以继续将现有工具与 SageMaker 一起使用。您可以根据业务需求,轻松地将每个阶段的结果传入和传出 SageMaker。
Amazon SageMaker Studio 提供了一个基于 Web 的单一视觉界面,您可以在其中执行所有 ML 开发步骤。对于构建、训练和部署模型所需的每个步骤,SageMaker Studio 为您提供了完整的访问、控制权和可见性。您可以快速上传数据、新建笔记本、训练和调试模型、在各个步骤之间来回移动,从而实现在一处调整实验、比较结果,并将模型部署到生产环境中,使您的生产效率大大提高。可以在统一的 SageMaker Studio 可视界面中执行所有的 ML 开发活动,包括笔记本、实验管理、自动模型创建、调试和描述,以及模型偏差检测。
Amazon SageMaker Autopilot 是业界首个自动机器学习工具,实现了 ML 模型的完全控制和可见性。SageMaker Autopilot 会自动检查原始数据、应用特色处理器、选择最佳算法集、训练和调试多个模型、跟踪其性能,并在随后根据性能对模型进行排名,所有这些仅需几次单击。结果就是,最佳性能模型的部署时间只相当于该模型通常所需训练时间的一小部分。模型的创建方式以及内容对您来说完全可视,并且 SageMaker Autopilot 与 Amazon SageMaker Studio 是集成在一起的。在 SageMaker Studio 中,您可以探索最多 50 种由 SageMaker Autopilot 生成的不同模型,因此很容易为您的应用场景选择最佳模型。没有机器学习经验的人们也可以使用 SageMaker Autopilot 轻松生成模型,或者经验丰富的开发人员使用它快速开发出基础模型,然后各团队可以据此进一步迭代。
尽管 Amazon Personalize 和 Amazon Forecast 特别针对个性化推荐和预测使用案例,但 Amazon SageMaker Autopilot 是用于分类和回归问题(例如欺诈检测,客户流失分析和定向营销)的通用自动机器学习解决方案。Personalize 和 Forecast 专注于通过在一个捆绑包中提供训练和模型托管来简化端到端体验。您可以使用 Amazon SageMaker Autopilot 训练模型,并获得对模型以及生成模型的管道的完全访问权限。然后,他们可以将这些模型部署到他们选择的托管环境中,或者进一步迭代提高模型质量。
Amazon SageMaker Autopilot 在启动时支持 2 种内置算法:XGBoost 和 Linear Learner。
可以。所有 Amazon SageMaker Autopilot 内置算法都支持开箱即用的分布式训练。
可以。您可以随时停止作业。当一个 Amazon SageMaker Autopilot 作业停止后,所有正在进行的试用都将停止,并且不会启动新的试用。
构建模型
全部打开目前支持 Jupyter 笔记本。
Amazon SageMaker Notebooks 提供了一键式 Jupyter 笔记本,使您能够在几秒钟之内立即开始工作。底层的计算资源具有充分的弹性,因此您可以轻松地调高或调低可用资源,并且后台会自动进行更改,而不会中断您的工作。SageMaker 还支持一键分享笔记本。所有代码依赖关系都是自动捕获的,因此您可以与他人轻松协作。他们会得到完全相同的笔记本,保存在同一位置。
借助 SageMaker Notebook,您可以使用具有 SSO 的公司凭据登录,并在几秒钟内开始使用笔记本。可以在团队内部和团队之间轻松共享笔记本,因为在共享笔记本时,与笔记本封装在一起的环境会自动跟踪运行笔记本所需的依赖关系。
Amazon SageMaker Notebooks 允许您访问所有 SageMaker 功能,如分布式训练、批量转换、托管和实验管理。您可以从 SageMaker Notebooks 访问其他服务,如 Amazon S3 中的数据集、Amazon Redshift、Amazon Glue 或 Amazon EMR。
Amazon SageMaker Ground Truth 使用机器学习提供自动数据标记。SageMaker Ground Truth 将首先选择一个随机数据样本,并将其发送给 Amazon Mechanical Turk 进行标记。然后,将结果用于训练一个贴标模型,该模型尝试自动标记新的原始数据样本。当模型可以使用满足或超过您设置的阈值的置信度标记数据时,将提交该标签。当置信度低于您的阈值时,该数据将发送给人工贴标程序。人工标记的一些数据用于为贴标模型生成新的训练数据集,并且自动对该模型进行重新训练,提高其准确性。每个要标记的原始数据样本都要重复此过程。随着每次迭代,贴标模型对原始数据的自动标记能力将变得更强,同时路由给人工的数据越来越少。
训练模型
全部打开Amazon SageMaker Experiments 可帮助您组织和跟踪机器学习模型的迭代。SageMaker Experiments 帮助您管理迭代的方式是,自动捕获输入参数、配置和结果,并将它们另存为“实验”。您可以在 SageMaker Studio 的可视化界面中工作,在其中浏览活动的实验、按特征搜索以前的实验、使用结果查看以前的实验,以及直观地比较实验结果。
Amazon SageMaker Debugger 可以使训练过程更加透明,它通过在训练期间自动捕获实时指标(例如训练和验证、混淆矩阵和学习梯度)来帮助提高模型准确性。
SageMaker Debugger 中的指标可以在 Amazon SageMaker Studio 中实现可视化,更加便于理解。当检测到常见的训练问题时,SageMaker Debugger 还可以生成警告和修正建议。使用 SageMaker Debugger,您可以阐述模型的工作方式,这是迈向模型可解释性的第一步。
Managed Spot Training 与 Amazon SageMaker 一起使用,可让您使用 Amazon EC2 Spot 实例训练机器学习模型,同时减少高达 90% 的训练模型的成本。
提交训练作业时,启用 Managed Spot Training 选项,同时还指定等待 Spot 容量的时间。然后,Amazon SageMaker 将使用 Amazon EC2 Spot 实例运行您的作业,并管理 Spot 容量。您对训练作业的状态具有完全可视的能力,无论它们是在运行还是在等待容量。
当您可以灵活地运行训练,并希望最大程度地减少训练作业的成本时,Managed Spot Training 是理想的选择。借助 Managed Spot Training,您可以将训练机器学习模型的成本减少多达 90%。
Managed Spot Training 使用 Amazon EC2 Spot 实例进行训练,并且在亚马逊云科技需要容量时可以抢占这些实例。因此,由于并且当容量可用时,Managed Spot Training 作业可以按小增量运行。发生中断时,无须从头开始重新启动训练作业,因为 Amazon SageMaker 可以使用最新的模型检查点恢复训练作业。带有 SageMaker 的内置框架和内置计算机视觉算法支持定期检查点,并且您可以将检查点用于自定义模型。
我们建议将定期检查点作为长期训练作业的通用最佳实践。这样可以防止在容量被抢占时 Managed Spot Training 作业重新启动。启用检查点后,Amazon SageMaker 将从上一个检查点开始恢复您的 Managed Spot Training 作业。
Managed Spot Training 作业完成时,您就可以在亚马逊云科技管理控制台中看到节省的费用,还可以将节省的费用计算为训练作业的运行时长与向您收费的时长之间的百分比差。
无论您的 Managed Spot Training 作业中断多少次,都只为数据下载时长付费一次。
Managed Spot Training 可与 Amazon SageMaker 支持的所有实例一起使用。
Amazon SageMaker 当前可用的所有亚马逊云科技区域均支持 Managed Spot Training。
可用于 Amazon SageMaker 训练模型的数据集的大小没有固定的限制。
您可以在创建训练作业的过程中指定训练数据的 Amazon S3 位置。
Amazon SageMaker 包括用于线性回归、逻辑回归、k 均值聚类、主成分分析、因子分解机、神经主题建模、潜在 dirichlet 分配、梯度增强树、sequence2sequence、时间序列预测、word2vec 和映像分类的内置算法。SageMaker 还提供优化的 Apache MXNet、Tensorflow、Chainer、PyTorch、glion、Keras、Horovod、Scikit learn 和 Deep Graph Library 容器。此外,Amazon SageMaker 还支持通过 Docker 映像(遵循已记录的规范)提供的自定义训练算法。
大多数机器学习算法都会公开各种参数,这些参数控制了底层算法的运行方式。我们通常将它们称为超参数,它们的值会影响已训练模型的质量。为可以产生最佳模型的算法寻找一组超参数的过程,称之为自动模型调整。
只要在科学上可行,您可以基于任何算法在 Amazon SageMaker 中运行自动模型调整,包括内置的 SageMaker 算法、深层神经网络,或以 Docker 映像的形式引入 SageMaker 的任意算法。
目前不提供。在 Amazon SageMaker 中获得最佳的模型调整性能和体验。
目前,我们的超参数调整算法是贝叶斯优化的定制实现。它的目标是在整个调整过程中优化客户指定的目标指标。具体而言,它检查已完成训练作业的目标指标,并利用该知识来推断进行下一个训练作业的超参数组合。
不会。某些超参数如何影响模型性能取决于多种因素,很难确切地说一个超参数比其他更重要,从而需要进行调整。对于 Amazon SageMaker 中的内置算法,我们会指出某个超参数是否可调。
超参数调整作业的时间长度取决于多个因素,包括数据大小、底层算法和超参数的值。此外,客户还可以选择同时进行的训练作业数量,以及训练作业的总数。所有这些选择都会影响超参数调整作业的持续时间。
目前不提供。现在,您需要指定单个目标指标来优化或更改算法代码,从而释放出新指标,该指标是两个或多个有用指标之间的加权平均值,并使调整过程针对该目标指标进行优化。
超参数调整作业本身不收费。根据模型训练定价,您将为超参数调整作业启动的训练作业付费。
Amazon SageMaker Autopilot 实现了典型机器学习工作流中所有操作的自动化,包括特征预处理、算法选择和超参数调整,同时明确关注分类和回归用例。另一方面,自动模型优化设计用于优化任何模型,无论其基于内置算法、深度学习框架还是自定义容器都是如此。作为灵活性的交换,您必须手动选取特定算法,确定要优化的超级参数以及相应的搜索范围。
强化学习是一种机器学习技术,允许代理在交互式环境中,借助其自身操作和经验的反馈,通过试错进行学习。
可以,除受监督和无人监督学习模型之外,还可以在 Amazon SageMaker 中训练强化学习模型。
尽管受监督和强化学习都使用输入和输出之间的映射,但与受监督学习(其中,提供给代理的反馈就是用于执行任务的一组正确操作)不同的是,强化学习使用延迟反馈,其中奖励信号已通过一系列操作进行优化,以确保实现长期目标。
受监督学习技术的目标是基于训练数据的模式找到正确的答案,无人监督学习技术的目标是找到数据点之间的相似之处和不同之处。相反,强化学习技术的目标是学习如何达到所需的结果,即使并不清楚如何实现该结果。因此,RL 更适合启用代理可以做出自动决策的智能应用,例如机器人、自动驾驶汽车、HVAC、工业控制等。
Amazon SageMaker RL 支持使用多种不同的环境训练强化学习模型。可以使用 Amazon RoboMaker 等亚马逊云科技服务、使用 Open AI Gym 界面开发的开源环境或自定义环境或 MATLAB 和 SimuLink 等商业模拟环境。
不需要,Amazon SageMaker RL 包含的 RL 工具包(例如 Coach 和 Ray RLLib)可以提供 RL 代理算法(例如 DQN、PPO、A3C 等)的实现。
是的,可以在 Docker 容器中自带 RL 库和算法实现,并在 Amazon SageMaker RL 中运行这些内容。
可以。您甚至还能选择训练可在 GPU 实例上运行且模拟可在多个 CPU 实例上运行的异构集群。
部署模型
全部打开Amazon SageMaker Model Monitor 允许开发人员检测并修正概念偏差。SageMaker Model Monitor 将自动检测已部署模型中的概念偏差,并提供详细的警报,帮助识别问题的来源。在 SageMaker 中训练的所有模型都会自动发布关键指标,这些指标可以在 SageMaker Studio 中收集和查看。在 SageMaker Studio 内部,您可以配置要收集的数据、它的查看方式,以及接收提醒的时间。
不可以。Amazon SageMaker 会代您运行计算基础设施,从而执行运行状况检查、应用安全补丁和执行其他例行维护。还可以在自己的托管环境中使用自定义推理代码从训练部署模型构件。
Amazon SageMaker 托管使用 Application Auto Scaling 自动扩展到应用程序所需的性能。此外,还可以通过修改终端节点配置,手动更改实例数量和类型,而无需导致停机。
Amazon SageMaker 将性能指标发送到 Amazon CloudWatch 指标,以便您可以跟踪指标、设置提醒,并自动应对生产流量更改。此外,Amazon SageMaker 将日志写入 Amazon Cloudwatch Logs,以使您可以监控生产环境并对生产环境进行故障排除。
Amazon SageMaker 可以托管遵循推理 Docker 映像的已编档规范的任何模型。这包含从 Amazon SageMaker 模型构件和推理代码创建的模型。
Amazon SageMaker 设计用于扩展到每秒大量事务数。精确的数量因部署的模型、部署模型的实例数量和类型而异。
Batch Transform 使您可以对大批量或小批量数据运行预测。无需将数据集分解为多个数据块或管理实时终端节点。通过简单 API,可以为大量数据记录请求预测,并快速轻松地转换数据。
Amazon SageMaker Neo 允许机器学习模型训练一次,并在云中和边缘的任何位置运行。SageMaker Neo 将自动优化使用常用的深度学习框架构建的模型,这些模型可用于在多个硬件平台上部署。经过优化的模型运行速度可以提高两倍,使用的资源还不到典型机器学习模型所用资源的十分之一。
要开始使用 Amazon SageMaker Neo,您需要登录到 Amazon SageMaker 控制台,选择经训练的模型,按照示例编译模型,然后将生成的模型部署到目标硬件平台。
Amazon SageMaker Neo 包含两个主要组件:编译器和运行时。首先,Neo 编译器读取不同框架导出的模型。然后将框架特定的功能和参数转换为与框架无关的中间表示。接下来,执行一系列优化。然后,编译器为优化的操作生成二进制代码,并将其写入共享对象库。编译器还将模型定义和参数保存到单独的文件中。在执行期间,Neo 运行时会加载编译器生成的构件(模型定义、参数以及运行模型的共享对象库)。
不需要。可以在其他位置训练模型,并使用 Neo 针对 Amazon SageMaker ML 实例或 Amazon IoT Greengrass 支持的设备对其进行优化。
当前,SageMaker Neo 支持用于增强计算机视觉应用程序的最常用的深度学习模型,以及当前 Amazon SageMaker 中使用的最常用的决策树模型。Neo 优化了在 MXNet 和 TensorFlow 中训练的 AlexNet、ResNet、VGG、Inception、MobileNet、SqueezeNet 和 DenseNet 模型的性能,以及在 XGBoost 中训练的分类和任意裁切森林模型。
当前,Neo 支持 SageMaker ML.C5、ML.C4、ML.M5、ML.M4、ML.P3 和 ML.P2 实例,以及 Amazon DeepLens、Raspberry Pi 和 Jetson TX1 和 TX2 设备,以及基于 Greengrass 设备的 Intel® Atom 和 Intel® Xeon CPU、ARM Cortex-A CPU 以及 Nvidia Maxwell 和 Pascal GPU。
不需要。开发人员可以使用 Amazon SageMaker Neo 容器运行模型,无需对框架有任何依赖关系。
您需按使用 Amazon SageMaker Neo 运行推理的 Amazon SageMaker ML 实例的实际使用量付费。
要查看支持区域列表,请查看亚马逊云科技区域表。