手動建立追蹤實體 - 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 Resource Name (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

限制

您可以在任何實體、實驗和歷程之間建立關聯,但下列項目除外:

  • 您無法在兩個實驗實體之間建立關聯。實驗實體由實驗、試用和試用元件組成。

  • 您可以建立與其他關聯之間的關聯。

如果您嘗試建立已存在的實體,就會發生錯誤。

手動建立之歷程實體數量的上限
  • 動作:3000

  • 成品:6000

  • 關聯:6000

  • 內容:500

Amazon 自動建立的譜系實體數目沒有限制 SageMaker。