Tracking-Entitäten manuell erstellen - Amazon SageMaker AI

Tracking-Entitäten manuell erstellen

Sie können manuell Tracking-Entitäten für jede Eigenschaft erstellen, um die Modellverwaltung einzurichten, Ihren Workflow zu reproduzieren und eine Aufzeichnung Ihrer Arbeitshistorie zu führen. Informationen zu den Tracking-Entitäten, die Amazon SageMaker AI automatisch erstellt, finden Sie unter Amazon SageMaker AI – erstellte Tracking-Entitäten. Das folgende Tutorial zeigt die Schritte, die erforderlich sind, um Artefakte zwischen einem SageMaker-Trainingsjob und einem Endpunkt manuell zu erstellen und zu verknüpfen und anschließend den Workflow nachzuverfolgen.

Sie können allen Entitäten außer Assoziationen Tags hinzufügen. Tags sind beliebige Schlüssel-Wert-Paare, die benutzerdefinierte Informationen bereitstellen. Sie können eine Liste oder eine Suchabfrage nach Stichwörtern filtern oder sortieren. Weitere Informationen finden Sie unter Kennzeichnen Ihrer AWS-Ressourcen im Allgemeine AWS-Referenz.

Ein Beispiel-Notebook, das demonstriert, wie Lineage-Entitäten erstellt werden, finden Sie im Notebook von Amazon SageMaker Lineage AI im GitHub-Repository für Amazon-SageMaker-Beispiele.

Manuell Entitäten erstellen

Das folgende Verfahren zeigt Ihnen, wie Sie Artefakte zwischen einem SageMaker-Trainingsjob und einem Endpunkt verknüpfen. Führen Sie die folgenden Schritte aus:

Importieren Sie Tracking-Entitäten und -Verknüpfungen
  1. Importieren Sie die Entitäten zur Herkunftsverfolgung.

    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. Erstellen Sie die Eingabe- und Ausgabe-Artefakte.

    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. Schjulen Sie das Modell und holen Sie sich trial_component_arn, der den Trainingsjob represäntiert.

  4. Ordnen Sie die Eingabeartefakte und Ausgabeartefakte dem Trainingsjob zu (Testkomponente).

    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. Erstellen Sie den Inferenzendpunkt.

    predictor = mnist_estimator.deploy(initial_instance_count=1, instance_type='ml.m4.xlarge')
  6. Erstellen Sie den Endpunktkontext.

    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. Ordnen Sie den Trainingsjob (Testkomponente) und den Endpunktkontext zu.

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

Manuelles Verfolgen eines Workflows

Sie können den im vorherigen Abschnitt erstellten Workflow manuell verfolgen.

Ausgehend vom Endpunkt Amazon-Ressourcenname (ARN) aus dem vorherigen Beispiel zeigt Ihnen das folgende Verfahren, wie Sie den Workflow bis zu den Datensätzen zurückverfolgen können, die zum Trainieren des Modells verwendet wurden, das für den Endpunkt bereitgestellt wurde. Führen Sie die folgenden Schritte aus:

Um einen Workflow vom Endpunkt bis zur Trainingsdatenquelle zu verfolgen
  1. Importieren Sie die Tracking-Entitäten.

    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. Ruft den Endpunktkontext vom Endpunkt-ARN ab.

    endpoint_context_arn = sagemaker_client.list_contexts( SourceUri=endpoint_arn)['ContextSummaries'][0]['ContextArn']
  3. Ruft die Testkomponente aus der Zuordnung zwischen der Testkomponente und dem Endpunktkontext ab.

    trial_component_arn = sagemaker_client.list_associations( DestinationArn=endpoint_context_arn)['AssociationSummaries'][0]['SourceArn']
  4. Ruft das Artefakt zum Standort der Trainingsdaten aus der Assoziation zwischen der Testkomponente und dem Endpunktkontext ab.

    train_data_location_artifact_arn = sagemaker_client.list_associations( DestinationArn=trial_component_arn, SourceType='Model')['AssociationSummaries'][0]['SourceArn']
  5. Ruft den Standort der Trainingsdaten aus dem Artefakt für den Standort der Trainingsdaten ab.

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

    Antwort:

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

Einschränkungen

Sie können eine Assoziation zwischen beliebigen Entitäten, Experimenten und Abstammungen erstellen, mit Ausnahme der folgenden:

  • Sie können keine Assoziation zwischen zwei Experimententitäten erstellen. Experimententitäten bestehen aus Experimenten, Versuchen und Versuchskomponenten.

  • Sie können eine Assoziation mit einer anderen Assoziation erstellen.

Wenn Sie versuchen, eine Entität zu erstellen, die bereits vorhanden ist, tritt ein Fehler auf.

Maximale Anzahl manuell erstellter Lineage-Entitäten
  • Aktionen: 3000

  • Artefakte: 6000

  • Zuordnungen: 6000

  • Kontexte: 500

Die Anzahl der automatisch von Amazon SageMaker AI erstellten Lineage-Entitäten ist unbegrenzt.