Tracking-Entitäten manuell erstellen - Amazon SageMaker

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Tracking-Entitäten manuell erstellen

Sie können manuell Tracking-Entitäten für jedes Objekt erstellen, um die Modellverwaltung einzurichten, Ihren Arbeitsablauf zu reproduzieren und Ihre Arbeitshistorie aufzuzeichnen. Informationen zu den Sendungsverfolgungseinheiten, die Amazon SageMaker automatisch erstellt, finden Sie unterAmazon SageMaker — Erstellte Tracking-Entitäten. Das folgende Tutorial zeigt die Schritte, die erforderlich sind, um Artefakte manuell zu erstellen und zwischen einem SageMaker Trainingsjob und einem Endpunkt zu verknüpfen und anschließend den Arbeitsablauf 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 AWS Ressourcen taggen in der Allgemeine AWS-Referenz.

Ein Beispielnotizbuch, das zeigt, wie Lineage-Entitäten erstellt werden, finden Sie im Amazon SageMaker Lineage-Notizbuch im SageMaker GitHub Amazon-Beispiel-Repository.

Manuell Entitäten erstellen

Das folgende Verfahren zeigt Ihnen, wie Sie Artefakte erstellen und 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 Trainingsauftrag represäntiert.

  4. Ordnen Sie die Eingabeartefakte und Ausgabeartefakte dem Trainingsauftrag 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 Trainingsauftrag (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.

Angesichts des Endpunkts Amazon Resource Name (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 auf dem 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 ARN Endpunkt 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 erstellten Lineage-Entitäten ist unbegrenzt.