

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Creazione manuale di entità di monitoraggio
<a name="lineage-tracking-manual-creation"></a>

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 tracciamento che Amazon SageMaker AI crea automaticamente, consulta[Entità di tracciamento SageMaker create da Amazon AI](lineage-tracking-auto-creation.md). Il seguente tutorial illustra i passaggi necessari per creare e associare manualmente gli artefatti tra un processo di SageMaker formazione e un endpoint, quindi monitora 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 [AWS Taggare](https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html) le risorse in. *Riferimenti generali di AWS*

Per un notebook di esempio che dimostra come creare entità di derivazione, consulta il notebook [Amazon SageMaker AI Lineage](https://github.com/aws/amazon-sagemaker-examples/tree/master/sagemaker-lineage) nel repository di esempio di [Amazon SageMaker ](https://github.com/awslabs/amazon-sagemaker-examples). GitHub 

**Topics**
+ [Creazione manuale di entità](#lineage-tracking-manual-create)
+ [Monitoraggio manuale di un flusso di lavoro](#lineage-tracking-manual-track)
+ [Limits](#lineage-tracking-manual-track-limits)

## Creazione manuale di entità
<a name="lineage-tracking-manual-create"></a>

La procedura seguente mostra come creare e associare artefatti tra un processo di formazione sull' SageMaker intelligenza artificiale e un endpoint. 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")
   ```

1. 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
   ```

1. Addestra il modello e ottieni `trial_component_arn` che rappresenta il processo di addestramento.

1. 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)
   ```

1. Crea l'endpoint di inferenza.

   ```
   predictor = mnist_estimator.deploy(initial_instance_count=1,
                                        instance_type='ml.m4.xlarge')
   ```

1. 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
   ```

1. 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
<a name="lineage-tracking-manual-track"></a>

È 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")
   ```

1. Ottieni il contesto dell'endpoint dall'ARN dell'endpoint.

   ```
   endpoint_context_arn = sagemaker_client.list_contexts(
       SourceUri=endpoint_arn)['ContextSummaries'][0]['ContextArn']
   ```

1. 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']
   ```

1. 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']
   ```

1. 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
   ```

## Limits
<a name="lineage-tracking-manual-track-limits"></a>

È 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 c'è limite al numero di entità di derivazione create automaticamente da Amazon SageMaker AI.