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
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
-
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") -
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 -
Addestra il modello e ottieni
trial_component_arnche rappresenta il processo di addestramento. -
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) -
Crea l'endpoint di inferenza.
predictor = mnist_estimator.deploy(initial_instance_count=1, instance_type='ml.m4.xlarge') -
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 -
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
-
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") -
Ottieni il contesto dell'endpoint dall'ARN dell'endpoint.
endpoint_context_arn = sagemaker_client.list_contexts( SourceUri=endpoint_arn)['ContextSummaries'][0]['ContextArn'] -
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'] -
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'] -
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.