本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
手动创建跟踪实体
您可以为任何属性手动创建跟踪实体。有关亚马逊的追踪实体的信息 SageMaker 自动创建,请参阅亚马逊 SageMaker — 创建的追踪实体.
您可以将标签添加至除关联之外的所有实体。标签是提供自定义信息的任意键值对。您可以按标签对列表或搜索查询进行筛选或排序。有关更多信息,请参阅《Amazon 一般参考》中的标记Amazon资源。
有关演示如何创建世系实体的示例笔记本,请参阅Amazon SageMaker 世系
手动创建实体
以下步骤介绍了如何在 SageMaker 训练作业和终端节点之间创建和关联构件。请执行下列步骤:
导入跟踪实体和关联
-
导入世系追踪实体。
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") -
创建输入和输出项目。
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 -
训练模型并获取
trial_component_arn这代表培训作业。 -
将输入项目和输出工件与训练作业(试用组件)关联。
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) -
创建推理端点。
predictor = mnist_estimator.deploy(initial_instance_count=1, instance_type='ml.m4.xlarge') -
创建终端节点上下文。
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 -
将培训作业(试用组件)和终端上下文关联起来。
association.Association.create( source_arn=trial_component_arn, destination_arn=endpoint_context_arn )
手动跟踪工作流
您可以手动跟踪在上一部分中创建的工作流。
鉴于上一示例中的终端节点 Amazon Resource Name (ARN),以下过程向您展示了如何跟踪工作流程回到用于训练部署到终端节点的模型的数据集。请执行下列步骤:
跟踪从端点到培训数据源的工作流
-
导入跟踪实体。
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") -
从终端节点 ARN 获取终端节点上下文。
endpoint_context_arn = sagemaker_client.list_contexts( SourceUri=endpoint_arn)['ContextSummaries'][0]['ContextArn'] -
从试用组件和终端上下文之间的关联中获取试用组件。
trial_component_arn = sagemaker_client.list_associations( DestinationArn=endpoint_context_arn)['AssociationSummaries'][0]['SourceArn'] -
从试用组件和终端上下文之间的关联中获取训练数据位置工件。
train_data_location_artifact_arn = sagemaker_client.list_associations( DestinationArn=trial_component_arn, SourceType='Model')['AssociationSummaries'][0]['SourceArn'] -
从训练数据位置工件中获取训练数据位置。
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
限制
您可以在任何实体、实验和世系之间创建关联,但以下情况除外:
-
不能在两个实验实体之间创建关联。实验实体由实验、试验和试验组件组成。
-
你可以创建与另一个关联的关联。
如果您尝试创建已存在的实体,则会出错。
手动创建的世系实体的最大数量
操作: 3000
:Artifacts 6000
关联:6000
上下文:500
Amazon SageMaker 自动创建的世系实体的数量没有限制。