

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Crie entidades de monitoramento manualmente
<a name="lineage-tracking-manual-creation"></a>

Você pode criar entidades de rastreamento manualmente para qualquer propriedade a fim de estabelecer a governança do modelo, reproduzir seu fluxo de trabalho e manter um registro do seu histórico de trabalho. Para obter informações sobre as entidades de rastreamento que a Amazon SageMaker AI cria automaticamente, consulte[Entidades de rastreamento SageMaker criadas pela Amazon AI](lineage-tracking-auto-creation.md). O tutorial a seguir demonstra as etapas necessárias para criar e associar manualmente artefatos entre um trabalho de SageMaker treinamento e um endpoint e, em seguida, acompanhar o fluxo de trabalho. 

É possível adicionar tags a todas as entidades, exceto às associações. As tags são pares de valores-chave arbitrários que fornecem informações personalizadas. Você pode filtrar ou classificar uma lista ou consulta de pesquisa por tags. Para obter mais informações, consulte [Marcar AWS recursos](https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html) no *Referência geral da AWS*.

Para ver um exemplo de caderno que demonstra como criar entidades de linhagem, consulte o caderno [Amazon SageMaker AI Lineage no repositório](https://github.com/aws/amazon-sagemaker-examples/tree/master/sagemaker-lineage) de exemplos da [Amazon SageMaker ](https://github.com/awslabs/amazon-sagemaker-examples). GitHub 

**Topics**
+ [Crie entidades manualmente](#lineage-tracking-manual-create)
+ [Monitorar manualmente um fluxo de trabalho](#lineage-tracking-manual-track)
+ [Limites](#lineage-tracking-manual-track-limits)

## Crie entidades manualmente
<a name="lineage-tracking-manual-create"></a>

O procedimento a seguir mostra como criar e associar artefatos entre um trabalho de treinamento de SageMaker IA e um endpoint. Execute as seguintes etapas:

**Importar entidades e associações de monitoramento**

1. Importe as entidades de monitoramento de linhagem.

   ```
   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. Criar os artefatos de entrada e saída.

   ```
   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. Treine o modelo e obtenha o `trial_component_arn` que representa o trabalho de treinamento.

1. Associe os artefatos de entrada e os artefatos de saída ao trabalho de treinamento (componente experimental).

   ```
   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. Crie o endpoint de inferência.

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

1. Criar o contexto do 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. Associe o trabalho de treinamento (componente experimental) e o contexto do endpoint.

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

## Monitorar manualmente um fluxo de trabalho
<a name="lineage-tracking-manual-track"></a>

Você pode acompanhar manualmente o fluxo de trabalho criado na seção anterior.

Considerando o nome do recurso da Amazon (ARN) do endpoint do exemplo anterior, o procedimento a seguir mostra como rastrear o fluxo de trabalho até os conjuntos de dados usados para treinar o modelo que foi implantado no endpoint. Execute as seguintes etapas:

**Para monitorar um fluxo de trabalho do endpoint à fonte de dados de treinamento**

1. Importe as entidades de monitoramento.

   ```
   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. Obtenha o contexto do endpoint a partir do ARN do endpoint.

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

1. Obtenha o componente de teste a partir da associação entre o componente de teste e o contexto do endpoint.

   ```
   trial_component_arn = sagemaker_client.list_associations(
       DestinationArn=endpoint_context_arn)['AssociationSummaries'][0]['SourceArn']
   ```

1. Obtenha o artefato de localização dos dados de treinamento a partir da associação entre o componente de teste e o contexto do endpoint.

   ```
   train_data_location_artifact_arn = sagemaker_client.list_associations(
       DestinationArn=trial_component_arn, SourceType='Model')['AssociationSummaries'][0]['SourceArn']
   ```

1. Obtenha a localização dos dados de treinamento a partir do artefato de localização dos dados de treinamento.

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

   Resposta:

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

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

Você pode criar uma associação entre qualquer entidade, experimento e linhagem, exceto o seguinte:
+ Você não pode criar uma associação entre duas entidades do experimento. As entidades do experimento consistem em experimentos, ensaios e componentes do teste.
+ Você pode criar uma associação com outra associação.

Ocorrerá um erro se você tentar criar uma entidade que já existe.

**Número máximo de entidades de linhagem criadas manualmente**
+ Ações: 3.000
+ 6.000 artefatos
+ Associações: 6000
+ Contextos: 500

Não há limite para o número de entidades de linhagem criadas automaticamente pela Amazon SageMaker AI.