Creazione manuale di entità di monitoraggio - Amazon SageMaker AI

Creazione manuale di entità di monitoraggio

Puoi creare manualmente entità di monitoraggio per qualsiasi proprietà per stabilire una governance dei modelli, riprodurre il flusso di lavoro e conservare un record della tua cronologia di lavoro. Per informazioni sulle entità di monitoraggio create automaticamente da Amazon SageMaker AI, consulta Entità di monitoraggio create da Amazon SageMaker AI. Il tutorial seguente mostra le fasi necessarie per creare e associare manualmente gli artefatti tra un job di addestramento e un endpoint di SageMaker, quindi per monitorarne il flusso di lavoro.

Puoi aggiungere tag a tutte le entità tranne le associazioni. I tag sono coppie chiave-valore arbitrarie che forniscono informazioni personalizzate. È possibile filtrare o ordinare un elenco o una query di ricerca per tag. Per ulteriori informazioni, consulta Assegnazione di tag alle risorse AWS in Riferimenti generali di AWS.

Per un notebook di esempio che mostra come creare entità di lineage, consulta il notebook Amazon SageMaker AI Lineage nel repository GitHub di esempi per Amazon SageMaker.

Creazione manuale di entità

La procedura seguente mostra come creare e associare gli artefatti tra un job di addestramento e un endpoint di SageMaker AI. Completa la seguente procedura:

Importazione di entità e associazioni di monitoraggio
  1. Importa le entità di monitoraggio del lineage.

    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. Crea gli artefatti di input e output.

    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. Addestra il modello e ottieni trial_component_arn che rappresenta il processo di addestramento.

  4. Associa gli artefatti di input e gli artefatti di output al processo di addestramento (componente di prova).

    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. Crea l'endpoint di inferenza.

    predictor = mnist_estimator.deploy(initial_instance_count=1, instance_type='ml.m4.xlarge')
  6. Crea il contesto dell'endpoint.

    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. Associa il processo di addestramento (componente di prova) e il contesto dell'endpoint.

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

Monitoraggio manuale di un flusso di lavoro

È possibile monitorare manualmente il flusso di lavoro creato nella sezione precedente.

Dato il nome della risorsa Amazon (ARN) dell'endpoint dell'esempio precedente, la procedura seguente mostra come monitorare il flusso di lavoro fino ai set di dati utilizzati per addestrare il modello implementato sull'endpoint. Completa la seguente procedura:

Monitorare un flusso di lavoro dall'endpoint all'origine dati di addestramento
  1. Importa le entità di monitoraggio.

    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. Ottieni il contesto dell'endpoint dall'ARN dell'endpoint.

    endpoint_context_arn = sagemaker_client.list_contexts( SourceUri=endpoint_arn)['ContextSummaries'][0]['ContextArn']
  3. Ottieni il componente di prova dall'associazione tra il componente di prova e il contesto dell'endpoint.

    trial_component_arn = sagemaker_client.list_associations( DestinationArn=endpoint_context_arn)['AssociationSummaries'][0]['SourceArn']
  4. Ottieni l'artefatto relativo alla posizione dei dati di addestramento dall'associazione tra il componente di prova e il contesto dell'endpoint.

    train_data_location_artifact_arn = sagemaker_client.list_associations( DestinationArn=trial_component_arn, SourceType='Model')['AssociationSummaries'][0]['SourceArn']
  5. Ottieni la posizione dei dati di addestramento dall'artefatto relativo alla posizione dei dati di addestramento.

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

    Risposta:

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

Limiti

È possibile creare un'associazione tra qualsiasi entità, esperimento e lineage, ad eccezione di quanto segue:

  • Non è possibile creare un'associazione tra due entità esperimento. Le entità esperimento sono costituite da esperimenti, prove e componenti di prova.

  • È possibile creare un'associazione con un'altra associazione.

Se si tenta di creare un'entità già esistente, si verifica un errore.

Numero massimo di entità di lineage create manualmente
  • Operazioni: 3000

  • Artefatti: 6000

  • Associazioni: 6000

  • Contesti: 500

Non è previsto alcun limite per il numero di entità di lineage create automaticamente da Amazon SageMaker AI.