Crie entidades de monitoramento manualmente - Amazon SageMaker

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

Você pode criar manualmente entidades de rastreamento para qualquer propriedade para 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 cria SageMaker automaticamente, consulteAmazon SageMaker — Entidades de rastreamento criadas. 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 no Referência geral da AWS.

Para ver um exemplo de caderno que demonstra como criar entidades de linhagem, consulte o caderno Amazon SageMaker Lineage no repositório de exemplos da Amazon SageMaker . GitHub

Crie entidades manualmente

O procedimento a seguir mostra como criar e associar artefatos entre um trabalho de SageMaker treinamento 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")
  2. 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
  3. Treine o modelo e obtenha o trial_component_arn que representa o trabalho de treinamento.

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

    predictor = mnist_estimator.deploy(initial_instance_count=1, instance_type='ml.m4.xlarge')
  6. 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
  7. 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

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

Considerando o endpoint Amazon Resource Name (ARN) 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")
  2. Obtenha o contexto do endpoint a partir do endpointARN.

    endpoint_context_arn = sagemaker_client.list_contexts( SourceUri=endpoint_arn)['ContextSummaries'][0]['ContextArn']
  3. 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']
  4. 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']
  5. 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

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.