手动创建跟踪实体 - Amazon SageMaker
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

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

手动创建跟踪实体

您可以为任何属性手动创建跟踪实体。有关 Amazon SageMaker 自动创建的跟踪实体的信息,请参阅Amazon SageMaker 已创建跟踪实体

您可以将标签添加到除关联之外的所有实体。标签是提供自定义信息的任意键值对。您可以按标签对列表或搜索查询进行筛选或排序。有关更多信息,请参阅 中的AWS标记 资源。AWS General Reference

有关演示如何创建谱系实体的示例笔记本,请参阅 中的 Amazon SageMaker 谱系Amazon SageMaker 示例 GitHub 存储库笔记本。

手动创建实体

以下过程介绍了如何在 SageMaker 训练作业和终端节点之间创建和关联构件。请执行下列步骤:

  • 为源代码、训练数据和测试数据位置创建输入构件。

  • 为生成的模型位置创建输出构件。

  • 创建试用组件作为训练作业。

  • 将输入构件和输出构件与训练作业关联。

  • 训练模型并创建终端节点。

  • 为终端节点创建上下文。

  • 关联训练作业和终端节点上下文。

创建跟踪实体和关联

  1. 导入跟踪实体。

    import sys !{sys.executable} -m pip install -q sagemaker from sagemaker import get_execution_role from sagemaker.session import Session from sagemaker.lineage import context, artifact, association, action import boto3 boto_session = boto3.Session(region_name=region) sagemaker_client = boto_session.client("sagemaker")
  2. 创建输入和输出构件。

    code_location_arn = artifact.Artifact.create( artifact_name='source-code-location', source_uri='s3://...', artifact_type='code-location' ).artifact_arn # Similar constructs for train_data_location_arn and test_data_location_arn model_location_arn = artifact.Artifact.create( artifact_name='model-location', source_uri='s3://...', artifact_type='model-location' ).artifact_arn
  3. 训练模型并获取表示训练作业的 trial_component_arn

  4. 将输入构件和输出构件与训练作业(试验组件)关联。

    input_artifacts = [code_location_arn, train_data_location_arn, test_data_location_arn] for artifact_arn in input_artifacts: try: association.Association.create( source_arn=artifact_arn, destination_arn=trial_component_arn, association_type='ContributedTo' ) except: logging.info('association between {} and {} already exists', artifact_arn, trial_component_arn) output_artifacts = [model_location_arn] for artifact_arn in output_artifacts: try: association.Association.create( source_arn=trial_component_arn, destination_arn=artifact_arn, association_type='Produced' ) except: logging.info('association between {} and {} already exists', artifact_arn, trial_component_arn)
  5. 创建推理终端节点。

    predictor = mnist_estimator.deploy(initial_instance_count=1, instance_type='ml.m4.xlarge')
  6. 创建终端节点上下文。

    from sagemaker.lineage import context endpoint = sagemaker_client.describe_endpoint(EndpointName=predictor.endpoint_name) endpoint_arn = endpoint['EndpointArn'] endpoint_context_arn = context.Context.create( context_name=predictor.endpoint_name, context_type='Endpoint', source_uri=endpoint_arn ).context_arn
  7. 关联训练作业(试验组件)和终端节点上下文。

    association.Association.create( source_arn=trial_component_arn, destination_arn=endpoint_context_arn )

手动跟踪工作流程

您可以手动跟踪在上一部分中创建的工作流程。

给定上一示例中的终端节点 Amazon 资源名称 (ARN),以下过程向您演示如何将工作流程跟踪回用于训练部署到终端节点的模型的数据集。请执行下列步骤:

  • 给定终端节点 ARN,获取终端节点上下文。

  • 从试验组件与终端节点上下文之间的关联中获取试验组件。

  • 从试验组件和终端节点上下文之间的关联中获取训练数据位置构件。

  • 从训练数据位置构件获取训练数据位置。

跟踪从终端节点到训练数据源的工作流程

  1. 导入跟踪实体。

    import sys !{sys.executable} -m pip install -q sagemaker from sagemaker import get_execution_role from sagemaker.session import Session from sagemaker.lineage import context, artifact, association, action import boto3 boto_session = boto3.Session(region_name=region) sagemaker_client = boto_session.client("sagemaker")
  2. 从终端节点 ARN 获取终端节点上下文。

    endpoint_context_arn = sagemaker_client.list_contexts( SourceUri=endpoint_arn)['ContextSummaries'][0]['ContextArn']
  3. 从试验组件与终端节点上下文之间的关联中获取试验组件。

    trial_component_arn = sagemaker_client.list_associations( DestinationArn=endpoint_context_arn)['AssociationSummaries'][0]['SourceArn']
  4. 从试验组件和终端节点上下文之间的关联中获取训练数据位置构件。

    train_data_location_artifact_arn = sagemaker_client.list_associations( DestinationArn=trial_source_arn)['AssociationSummaries'][0]['SourceArn']
  5. 从训练数据位置构件获取训练数据位置。

    train_data_location = sagemaker_client.describe_artifact( ArtifactArn=train_data_location_artifact_arn)['Source']['SourceUri'] print(train_data_location)

    响应:

    s3://sagemaker-sample-data-us-east-2/mxnet/mnist/train

Limits

可在任何实体、试验和谱系之间创建关联,但以下情况除外:

  • 无法在两个实验实体之间创建关联。实验实体包括实验、试验和试验组件。

  • 不能与其他关联创建关联。

如果您尝试创建已存在的实体,则会出现错误。

手动创建的谱系实体的最大数量

  • 操作: 3000

  • 构件:6000

  • 关联:6000

  • 上下文:500

自动创建的谱系实体的数量没有限制。SageMaker