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

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

手动创建跟踪实体

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

您可以将标签添加到除关联以外的所有实体。标签是提供自定义信息的任意键值对。您可以按标签过滤列表或对列表进行排序或搜索查询。有关更多信息,请参阅 。标记Amazonresources中的Amazon一般参考.

有关演示如何创建世系实体的示例笔记本,请参阅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_component_arn, SourceType='Model')['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 自动创建的世系实体数量没有限制。