使用亚马逊搜索 SageMaker 控制台和 API - Amazon SageMaker
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

使用亚马逊搜索 SageMaker 控制台和 API

开发机器学习模型通常需要广泛地试验不同数据集、算法和超参数值。要管理多达数千个机器学习模型实验,请使用 SageMaker 中的搜索功能。

您可以使用 SageMaker 搜索到:

  • 使用属性、超参数、性能指标或任何元数据整理、查找和评估训练作业。

  • 通过查看训练作业和模型指标(例如,训练损失或验证准确性)来找出性能最佳的模型。

  • 跟踪模型的谱系,直到训练作业及其相关资源,例如训练数据集。

本主题介绍从 SageMaker 控制台和 SageMaker API。有关在亚马逊中搜索的信息 SageMaker 工作室,请参阅使用 Studio 搜索实验.

用于管理 ML 实验的示例笔记本

对于使用亚马逊的示例笔记本 SageMaker 管理 ML 实验的模型跟踪功能,请参阅使用亚马逊管理机器学习实验 SageMaker 模型跟踪功能.

有关如何创建和访问可用于在 SageMaker 中运行示例的 Jupyter 笔记本实例的说明,请参阅使用 Amazon SageMaker 笔记本实例. 在您创建笔记本实例并将其打开后,选择SageMaker 示例选项卡以查看所有 SageMaker 示例。用于管理机器学习实验的笔记本位于高级功能部分。要打开笔记本,请选择其 Use (使用) 选项卡,然后选择 Create copy (创建副本)。如果您有任何疑问,请将其发布到 Amazon Machine Learning 开发人员论坛

组织、查找、和评估训练任务(console)

要组织训练作业,请为其分配一个或多个标签。

要查找特定训练作业、模型或资源,请使用模型跟踪功能以搜索分配给任意可搜索项的关键字。可搜索项目包括训练作业、模型、超参数、元数据、元数据、标签和网址. 要优化搜索结果,您可以使用多个条件进行搜索。

要选择最佳模型以进行部署,您需要针对一个或多个指标评估所有模型的性能。您可以使用模型跟踪结果来列出、排序和评估实验中模型的性能。

使用标签来跟踪训练作业(控制台)

要对训练作业进行分组,请创建标记以及描述性的密钥和值。例如,为以下各项创建标签键:项目、拥有者、客户和行业。

将标签添加至训练作业(控制台)

  1. 打开亚马逊 SageMaker 控制台.

  2. 在导航窗格中,选择 Training jobs (训练作业),然后选择 Create training job (创建训练作业)

  3. 滚动到页面底部,并输入标签的键和值。

  4. 要添加其他标签,请选择添加标签,然后添加另一个键值对。

查找训练作业(控制台)

您可以使用各种作业属性搜索训练作业。请注意,仅当您创建了具有该属性的训练作业时,某些搜索参数才会显示。例如,仅当您为训练作业添加了标记时,才会显示 Tags (标记)

查找训练作业(控制台)

  1. 打开亚马逊 SageMaker 控制台.

  2. 在导航窗格中,选择 Search

  3. 添加 Parameters (参数)

    1. 在搜索框中,输入参数并选择参数类型,例如 TrainingJobName

    2. 选择条件操作。对于数字值,使用运算符,例如 is equals to (等于)lesser than (小于)greater than (大于)。对于基于文本的值,使用运算符,例如 equals to (等于)contains (包含)

    3. 为参数输入值。

  4. (可选)要细化您的搜索,请添加额外的搜索条件。选择添加行并输入参数值。

  5. 选择搜索

评估模型(console)

要评估模型的性能,请查看其元数据、超参数和指标。要突出显示指标,调整视图以仅显示指标和重要的超参数。

评估模型(console)

  1. 打开亚马逊 SageMaker 控制台.

  2. 在导航窗格中,选择搜索和搜索用于训练作业 通过指定相关参数。结果将显示在表中。

  3. 打开首选项窗口通过选择设置图标在搜索结果表中。

  4. 要显示或隐藏超参数或指标,请通过以下方式将其打开或关闭:选择超参数要么指标.

  5. 进行必要的更改,然后选择更新视图

  6. 在查看指标和重要的超参数后,您可以比较和对比结果。然后,您可以选择最佳模型来托管或调查性能较差的模型。

查找和评估训练作业 (API)

寻找和评估培训工作或获取在实验中使用的可搜索项的建议,您可以使用SearchAPI。

查找训练作业 (API)

要查找训练作业,请使用 search_params 参数创建搜索参数。然后,您可以使用smclient 子进程中的AmazonSDK for Python (Boto3)。

以下示例说明了如何使用SearchAPI t找训练作业.

import boto3 search_params={ "MaxResults": 10, "Resource": "TrainingJob", "SearchExpression": { "Filters": [{ "Name": "Tags.Project", "Operator": "Equals", "Value": "Project_Binary_Classifier" }]}, "SortBy": "Metrics.train:binary_classification_accuracy", "SortOrder": "Descending" } smclient = boto3.client(service_name='sagemaker') results = smclient.search(**search_params)

评估模型 (API)

要评估模型,请按照中所述运行搜索查找训练作业 (API),然后查看模型指标,使用Amazon适用于 Python (Boto3) 的 SDK要创建一个表并绘制图形。

以下示例显示如何评估模型并在表中显示结果。

import pandas headers=["Training Job Name", "Training Job Status", "Batch Size", "Binary Classification Accuracy"] rows=[] for result in results['Results']: trainingJob = result['TrainingJob'] metrics = trainingJob['FinalMetricDataList'] rows.append([trainingJob['TrainingJobName'], trainingJob['TrainingJobStatus'], trainingJob['HyperParameters']['mini_batch_size'], metrics[[x['MetricName'] for x in metrics].index('train:binary_classification_accuracy')]['Value'] ]) df = pandas.DataFrame(data=rows,columns=headers) from IPython.display import display, HTMLdisplay(HTML(df.to_html()))

获取搜索建议 (API)

要获取搜索建议,使用GetSearchSuggestionsAPI。

以下示例为了Amazon适用于 Python (Boto3) 的 SDK是get_search_suggestions请求物品包含了 linear.

search_suggestion_params={ "Resource": "TrainingJob", "SuggestionQuery": { "PropertyNameQuery": { "PropertyNameHint": "linear" } } }

以下是 get_search_suggestions 请求的示例响应。

{ 'PropertyNameSuggestions': [{'PropertyName': 'hyperparameters.linear_init_method'}, {'PropertyName': 'hyperparameters.linear_init_value'}, {'PropertyName': 'hyperparameters.linear_init_sigma'}, {'PropertyName': 'hyperparameters.linear_lr'}, {'PropertyName': 'hyperparameters.linear_wd'}] }

获得搜索建议后,您可以在搜索中使用其中一个属性名称。

验证您的训练作业使用的数据集

您可以使用模型跟踪功能来验证训练中使用了哪些数据集,holdout 数据集用于哪些地方,以及其他有关训练作业的详细信息。例如,使用模型跟踪功能验证在训练作业中使用了某个特定数据集进行审计或验证合规性。

要检查训练作业中是否使用了特定的数据集,请在 Amazon Simple Storage Service (Amazon S3) 中搜索指向其位置的 URL。模型跟踪功能将返回使用您指定的数据集的训练作业。如果搜索未返回数据集(结果为空),则数据集未用于训练作业中。例如,空结果可确认未使用保留数据集。

跟踪模型谱系

您可以使用模型跟踪功能来获取有关训练作业的谱系以及用于它们的模型资源的信息,包括数据集、算法、超参数和指标。例如,如果您发现托管模型的性能已下降,您可以查看其训练作业和所用资源来确定导致此问题的原因。

跟踪模型谱系(控制台)

跟踪模型的谱系(控制台)

  1. 打开亚马逊 SageMaker 控制台.

  2. 在导航窗格中,选择终端节点,然后选择相关的终端节点。

  3. 滚动到 Endpoint configuration settings (终端节点配置设置) 部分。本节列出了在终端节点上部署的所有模型版本,以及指向创建每个模型版本的训练作业的超链接。

跟踪模型谱系 (API)

要追踪模型的谱系,获取模特的名字,然后用它来搜索用于训练作业.

以下示例显示如何使用跟踪模型的谱系:API.

# Get the name of model deployed at endpoint endpoint_config = smclient.describe_endpoint_config(EndpointConfigName=endpointName) model_name = endpoint_config['ProductionVariants'][0]['ModelName'] # Get the model's name model = smclient.describe_model(ModelName=model_name) # Search the training job by the location of model artifacts in Amazon S3 search_params={ "MaxResults": 1, "Resource": "TrainingJob", "SearchExpression": { "Filters": [ { "Name": "ModelArtifacts.S3ModelArtifacts", "Operator": "Equals", "Value": model['PrimaryContainer']['ModelDataUrl'] }]}, } results = smclient.search(**search_params)

找到培训工作之后,您可以查看用于训练模型的资源。