追跡エンティティを手動で作成する - Amazon SageMaker

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

追跡エンティティを手動で作成する

任意のプロパティの追跡エンティティを手動で作成して、モデルガバナンスを確立し、ワークフローを再現し、作業履歴の記録を維持できます。Amazon SageMaker が自動的に作成する追跡エンティティの詳細については、「」を参照してくださいAmazon SageMaker– 作成された追跡エンティティ。次のチュートリアルでは、 SageMaker トレーニングジョブとエンドポイント間でアーティファクトを手動で作成して関連付け、ワークフローを追跡するために必要なステップを示します。

関連付けを除くすべてのエンティティにタグを追加できます。タグはカスタム情報を提供する任意のキーと値のペアです。タグを基準にしたリストのフィルターや並べ替え、検索クエリを実行できます。詳細については、「」のAWS 「リソースのタグ付け」を参照してくださいAWS 全般のリファレンス

系統エンティティを作成する方法を示すサンプルノートブックについては、Amazon SageMaker サンプルリポジトリの「Amazon Lineage ノートブック」を参照してください。 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) を考慮すると、次の手順では、エンドポイントにデプロイされたモデルのトレーニングに使用されるデータセットにワークフローを追跡する方法を示します。以下のステップを実行します。

エンドポイントからトレーニングデータソースまでのワークフローを追跡するには
  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

制限

関連付けは、エンティティ、実験、系統の間に作成できます。ただし、以下を除きます。

  • 2 つの実験エンティティ間には関連付けを作成できません。実験エンティティは、実験、トライアル、トライアルコンポーネントで構成されます。

  • 別の関連付けとの関連付けを作成できます。

既に存在するエンティティを作成しようとすると、エラーが発生します。

手動で作成される系統エンティティの最大数
  • アクション: 3,000

  • アーティファクト: 6,000

  • 関連付け: 6,000

  • コンテキスト: 500

Amazon によって自動的に作成された系統エンティティの数に制限はありません SageMaker。