

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á.

# Pipelines de inferência na Amazon AI SageMaker
<a name="inference-pipelines"></a>

Um *pipeline de inferência* é um modelo de SageMaker IA da Amazon composto por uma sequência linear de dois a quinze contêineres que processam solicitações de inferências sobre dados. Você usa um pipeline de inferência para definir e implantar qualquer combinação de algoritmos integrados de SageMaker IA pré-treinados e seus próprios algoritmos personalizados empacotados em contêineres do Docker. Você pode usar um pipeline de inferência para combinar pré-processamento, predições e tarefas de ciência de dados de pós-processamento. Os pipelines de inferência são totalmente gerenciados.

Você pode adicionar contêineres SageMaker AI Spark ML Serving e scikit-learn que reutilizam os transformadores de dados desenvolvidos para modelos de treinamento. Todo o pipeline de inferência montado pode ser considerado como um modelo de SageMaker IA que você pode usar para fazer previsões em tempo real ou para processar transformações em lote diretamente, sem nenhum pré-processamento externo. 

Em um modelo de pipeline de inferência, a SageMaker IA trata as invocações como uma sequência de solicitações HTTP. O primeiro contêiner no pipeline processa a solicitação inicial e, em seguida, a resposta intermediária é enviada como uma solicitação para o segundo contêiner, e assim por diante, para cada contêiner no pipeline. SageMaker A IA retorna a resposta final para o cliente. 

Quando você implanta o modelo de pipeline, a SageMaker IA instala e executa todos os contêineres em cada instância do Amazon Elastic Compute Cloud (Amazon EC2) no endpoint ou na tarefa de transformação. O processamento de atributos e inferências são executados com baixa latência porque os contêineres estão localizados nas mesmas instâncias do EC2. Você define os contêineres de um modelo de pipeline usando a operação [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateModel.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateModel.html) ou no console. Em vez de definir um `PrimaryContainer`, você usa o parâmetro `Containers` para definir os contêineres que compõem o pipeline. Você também especifica a ordem em que os contêineres são executados. 

Um modelo de pipeline é imutável, mas você pode atualizar um pipeline de inferência com a implantação de um novo pipeline usando a operação [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateEndpoint.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_UpdateEndpoint.html). Essa modularidade permite maior flexibilidade durante a experimentação. 

Para obter informações sobre como criar um pipeline de inferência com o SageMaker Model Registry, consulte[Implantação do registro do modelo com o Model Registry](model-registry.md).

Não há custos adicionais pelo uso desse atributo. Você paga apenas pelas instâncias em execução em um endpoint.

**Topics**
+ [Cadernos de exemplo para pipelines de inferência](#inference-pipeline-sample-notebooks)
+ [Processamento de atributos com SparkML e Scikit-learn](inference-pipeline-mleap-scikit-learn-containers.md)
+ [Criar um modelo de pipeline](inference-pipeline-create-console.md)
+ [Executar predições em tempo real com um pipeline de inferência](inference-pipeline-real-time.md)
+ [Transformações em lotes com pipelines de inferência](inference-pipeline-batch.md)
+ [Logs e métricas de pipeline de inferência](inference-pipeline-logs-metrics.md)
+ [Solucionar problemas em pipelines de inferência](inference-pipeline-troubleshoot.md)

## Cadernos de exemplo para pipelines de inferência
<a name="inference-pipeline-sample-notebooks"></a>

Para ver um exemplo que mostra como criar e implantar pipelines de inferência, consulte o caderno de amostra [Inference Pipeline with Scikit-learn](https://github.com/aws/amazon-sagemaker-examples/tree/main/sagemaker-python-sdk/scikit_learn_inference_pipeline) and Linear Learner. Para obter instruções sobre como criar e acessar instâncias do notebook Jupyter que você pode usar para executar o exemplo em SageMaker IA, consulte. [Instâncias de SageMaker notebook da Amazon](nbi.md) 

Para ver uma lista de todas as amostras de SageMaker IA, depois de criar e abrir uma instância do notebook, escolha a guia **Exemplos de SageMaker IA**. Existem três cadernos de pipeline de inferência. Os dois primeiros cadernos do pipeline de inferência estão localizados na pasta `advanced_functionality`, e o terceiro caderno está na pasta `sagemaker-python-sdk`. Para abrir um caderno, escolha a guia **Uso** e depois escolha **Criar cópia**.

# Processamento de atributos com SparkML e Scikit-learn
<a name="inference-pipeline-mleap-scikit-learn-containers"></a>

Antes de treinar um modelo com algoritmos integrados de SageMaker IA da Amazon ou algoritmos personalizados, você pode usar os pré-processadores Spark e scikit-learn para transformar seus dados e recursos de engenharia. 

## Processamento de atributos com o SparkML
<a name="feature-processing-spark"></a>

Você pode executar trabalhos de ML do Spark com o [AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/what-is-glue.html), um serviço ETL (extrair, transformar, carregar) sem servidor, a partir do seu notebook de IA. SageMaker Você também pode se conectar a clusters do EMR existentes para executar tarefas do SparkML com o [Amazon EMR](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-what-is-emr.html). Para fazer isso, você precisa de uma função AWS Identity and Access Management (IAM) que conceda permissão para fazer chamadas do seu notebook de SageMaker IA para AWS Glue o. 

**nota**  
Para ver quais versões do Python e do Spark são AWS Glue compatíveis, consulte as notas de lançamento do [AWS Glue](/glue/latest/dg/release-notes.html).

Depois dos recursos de engenharia, você empacota e serializa os trabalhos de ML do Spark MLeap em MLeap contêineres que podem ser adicionados a um pipeline de inferência. Você não precisa usar clusters do Spark gerenciados externamente. Com essa abordagem, você pode dimensionar sem problemas de uma amostra de linhas a terabytes de dados. Como os mesmos transformadores funcionam tanto para treinamento quanto para inferência, você não precisa duplicar a lógica de pré-processamento e engenharia de atributos ou desenvolver uma solução única para fazer os modelos persistirem. Com os pipelines de inferência, você não precisa manter a infraestrutura externa e pode fazer predições diretamente das entradas de dados.

Quando você executa uma tarefa do Spark ML no AWS Glue, um pipeline do Spark ML é serializado em formato. [MLeap](https://github.com/combust/mleap) Em seguida, você pode usar o trabalho com o [SparkML Model Serving](https://github.com/aws/sagemaker-sparkml-serving-container) Container em SageMaker um pipeline de inferência de IA. *MLeap*é um formato de serialização e mecanismo de execução para pipelines de aprendizado de máquina. Ele é compatível com Spark, Scikit-learn e TensorFlow para treinar pipelines e exportá-los para um pipeline serializado chamado Bundle. MLeap Você pode desserializar os pacotes de volta ao Spark para pontuação em lote ou para o tempo de execução para alimentar serviços de API em tempo real. MLeap 

Para ver um exemplo que mostra como criar recursos de processo com o Spark ML, consulte [Treinar um modelo de ML usando o Apache Spark no Amazon EMR e implantar em](https://github.com/aws/amazon-sagemaker-examples/tree/main/sagemaker-python-sdk/sparkml_serving_emr_mleap_abalone) um notebook de amostra de IA. SageMaker 

## Processamento de atributos com Scikit-Learn
<a name="feature-processing-with-scikit"></a>

Você pode executar e empacotar trabalhos do scikit-learn em contêineres diretamente na Amazon AI. SageMaker Para um exemplo de código Python para a construção de um modelo de featurizer scikit-learn que é treinado no [conjunto de dados de íris de Fisher](http://archive.ics.uci.edu/ml/datasets/Iris) (em inglês) e prevê as espécies de íris com base em medições morfológicas, consulte o tópico sobre [Treinamento e predição IRIS com o Scikit-learn no Sagemaker](https://github.com/awslabs/amazon-sagemaker-examples/tree/master/sagemaker-python-sdk/scikit_learn_iris) (em inglês). 

# Criar um modelo de pipeline
<a name="inference-pipeline-create-console"></a>

Para criar um modelo de pipeline que possa ser implantado em um endpoint ou usado para um trabalho de transformação em lote, use o console Amazon SageMaker AI ou a `CreateModel` operação. 

**Para criar um pipeline de inferência (console)**

1. Abra o console do Amazon SageMaker AI em [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

1. Escolha **Modelos** e depois **Criar modelos** no grupo **Inferência**. 

1. Na página **Criar modelo**, forneça um nome de modelo, escolha um perfil do IAM e, se você deseja usar uma VPC privada, especifique os valores da VPC.   
![\[A página de criação de um modelo para um pipeline de inferência.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/create-pipeline-model.png)

1. Para adicionar informações sobre os contêineres no pipeline de inferência, escolha **Adicionar contêiner** e **Avançar**.

1. Preencha os campos para cada contêiner na ordem em que você deseja executá-los, até o máximo de quinze. Preencha os campos **Opções de entrada de contêiner**, **Local de imagem do código de inferência** e, opcionalmente, os campos **Local dos artefatos do modelo**, **Nome de host do contêiner** e **Variáveis de ambiente**.  
![\[Criação de um modelo de pipeline com contêineres.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/create-pipeline-model-containers.png)

   A **MyInferencePipelineModel**página resume as configurações dos contêineres que fornecem entrada para o modelo. Se você forneceu as variáveis de ambiente em uma definição de contêiner correspondente, o SageMaker AI as mostrará no campo **Variáveis de ambiente**.  
![\[O resumo das configurações de contêiner para o modelo de pipeline.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/pipeline-MyInferencePipelinesModel-recap.png)

# Executar predições em tempo real com um pipeline de inferência
<a name="inference-pipeline-real-time"></a>

Você pode usar modelos treinados em um pipeline de inferência para fazer predições em tempo real diretamente sem executar o pré-processamento externo. Ao configurar o pipeline, você pode optar por usar os transformadores de recursos integrados já disponíveis na Amazon SageMaker AI. Ou você pode implementar sua própria lógica de transformação usando apenas algumas linhas de código Spark ou scikit-learn. 

[MLeap](https://combust.github.io/mleap-docs/), um formato de serialização e mecanismo de execução para pipelines de aprendizado de máquina, é compatível com Spark, scikit-learn e TensorFlow para treinar pipelines e exportá-los para um pipeline serializado chamado Bundle. MLeap Você pode desserializar os pacotes de volta ao Spark para pontuação em lote ou para o tempo de execução para alimentar serviços de API em tempo real. MLeap 

Os contêineres em um pipeline escutam na porta especificada na variável de ambiente `SAGEMAKER_BIND_TO_PORT` (em vez da 8080). Ao ser executada em um pipeline de inferência, a SageMaker IA fornece automaticamente essa variável de ambiente aos contêineres. Se essa variável de ambiente não estiver presente, os contêineres padrão usam a porta 8080. Para indicar que o contêiner está em conformidade com esse requisito, use o seguinte comando para adicionar um rótulo ao Dockerfile:

```
LABEL com.amazonaws.sagemaker.capabilities.accept-bind-to-port=true
```

Se o seu contêiner precisar escutar em uma segunda porta, escolha uma porta no intervalo especificado pela variável de ambiente `SAGEMAKER_SAFE_PORT_RANGE`. Especifique o valor como um intervalo inclusivo no formato**"XXXX-YYYY"**, onde `XXXX` e `YYYY` são números inteiros de vários dígitos. SageMaker A IA fornece esse valor automaticamente quando você executa o contêiner em um pipeline de vários contêineres.

**nota**  
Para usar imagens personalizadas do Docker em um pipeline que inclui [algoritmos integrados de SageMaker IA](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-algo-docker-registry-paths.html), você precisa de uma política do [Amazon Elastic Container Registry (Amazon ECR)](https://docs.aws.amazon.com/AmazonECR/latest/userguide/what-is-ecr.html). Seu repositório Amazon ECR deve conceder permissão à SageMaker IA para extrair a imagem. Para obter mais informações, consulte [Solucionar problemas com permissões do Amazon ECR para pipelines de inferência](inference-pipeline-troubleshoot.md#inference-pipeline-troubleshoot-permissions).

## Criar e implantar um endpoint de pipeline de inferência
<a name="inference-pipeline-real-time-sdk"></a>

O código a seguir cria e implanta um modelo de pipeline de inferência em tempo real com o SparkML e XGBoost modelos em série usando o AI SDK. SageMaker 

```
from sagemaker.model import Model
from sagemaker.pipeline_model import PipelineModel
from sagemaker.sparkml.model import SparkMLModel

sparkml_data = 's3://{}/{}/{}'.format(s3_model_bucket, s3_model_key_prefix, 'model.tar.gz')
sparkml_model = SparkMLModel(model_data=sparkml_data)
xgb_model = Model(model_data=xgb_model.model_data, image=training_image)

model_name = 'serial-inference-' + timestamp_prefix
endpoint_name = 'serial-inference-ep-' + timestamp_prefix
sm_model = PipelineModel(name=model_name, role=role, models=[sparkml_model, xgb_model])
sm_model.deploy(initial_instance_count=1, instance_type='ml.c4.xlarge', endpoint_name=endpoint_name)
```

## Solicitar inferência em tempo real de um endpoint do pipeline de inferência
<a name="inference-pipeline-endpoint-request"></a>

O seguinte exemplo mostra como fazer predições em tempo real chamando um endpoint de inferência e transmitindo uma carga útil de solicitações no formato JSON:

```
import sagemaker
from sagemaker.predictor import json_serializer, json_deserializer, Predictor

payload = {
        "input": [
            {
                "name": "Pclass",
                "type": "float",
                "val": "1.0"
            },
            {
                "name": "Embarked",
                "type": "string",
                "val": "Q"
            },
            {
                "name": "Age",
                "type": "double",
                "val": "48.0"
            },
            {
                "name": "Fare",
                "type": "double",
                "val": "100.67"
            },
            {
                "name": "SibSp",
                "type": "double",
                "val": "1.0"
            },
            {
                "name": "Sex",
                "type": "string",
                "val": "male"
            }
        ],
        "output": {
            "name": "features",
            "type": "double",
            "struct": "vector"
        }
    }

predictor = Predictor(endpoint=endpoint_name, sagemaker_session=sagemaker.Session(), serializer=json_serializer,
                                content_type='text/csv', accept='application/json')

print(predictor.predict(payload))
```

A resposta que você obtém de `predictor.predict(payload)` é o resultado da inferência do modelo.

## Exemplo de pipeline de inferência do Realtime
<a name="inference-pipeline-example"></a>

Você pode executar esse [exemplo de notebook usando o SKLearn preditor](https://github.com/awslabs/amazon-sagemaker-examples/blob/master/sagemaker-python-sdk/scikit_learn_randomforest/Sklearn_on_SageMaker_end2end.ipynb) que mostra como implantar um endpoint, executar uma solicitação de inferência e, em seguida, desserializar a resposta. Encontre esse caderno e mais exemplos no [ GitHub repositório de SageMaker exemplos da Amazon](https://github.com/awslabs/amazon-sagemaker-examples).

# Transformações em lotes com pipelines de inferência
<a name="inference-pipeline-batch"></a>

Para obter inferências em um conjunto de dados inteiro, execute uma transformação em lote em um modelo treinado. Para executar inferências em um conjunto de dados inteiro, é possível usar o mesmo modelo de pipeline de inferência criado e implantado em um endpoint para o processamento em tempo real de um trabalho de transformação em lote. Para executar um trabalho de transformação em lote em um pipeline, faça download dos dados de entrada do Amazon S3 e envie-os em uma ou mais solicitações HTTP para o modelo de pipeline de inferência. Para ver um exemplo que mostra como preparar dados para uma transformação em lote, consulte “Seção 2 - Pré-processar os dados brutos de alojamento usando o Scikit Learn” do [Amazon SageMaker Multi-Model Endpoints usando o caderno de amostra Linear Learner](https://github.com/awslabs/amazon-sagemaker-examples/tree/master/advanced_functionality/multi_model_linear_learner_home_value). Para obter informações sobre as transformações em lote do Amazon SageMaker AI, consulte[Transformação em lote para inferência com a Amazon AI SageMaker](batch-transform.md). 

**nota**  
Para usar imagens personalizadas do Docker em um pipeline que inclui [algoritmos integrados do Amazon SageMaker AI](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-algo-docker-registry-paths.html), você precisa de uma política do [Amazon Elastic Container Registry (ECR).](https://docs.aws.amazon.com/AmazonECR/latest/userguide/what-is-ecr.html) Seu repositório Amazon ECR deve conceder permissão à SageMaker IA para extrair a imagem. Para obter mais informações, consulte [Solucionar problemas com permissões do Amazon ECR para pipelines de inferência](inference-pipeline-troubleshoot.md#inference-pipeline-troubleshoot-permissions).

O exemplo a seguir mostra como executar um trabalho de transformação usando o SDK do [Amazon SageMaker Python](https://sagemaker.readthedocs.io/en/stable). Neste exemplo, `model_name` está o pipeline de inferência que combina SparkML XGBoost e modelos (criados nos exemplos anteriores). O local do Amazon S3 especificado por `input_data_path` contém os dados de entrada, no formato CSV, a serem baixados e enviados ao modelo SparkML. Depois que o trabalho de transformação for concluído, a localização do Amazon S3 especificada por `output_data_path` contém os dados de saída retornados pelo XGBoost modelo no formato CSV.

```
import sagemaker
input_data_path = 's3://{}/{}/{}'.format(default_bucket, 'key', 'file_name')
output_data_path = 's3://{}/{}'.format(default_bucket, 'key')
transform_job = sagemaker.transformer.Transformer(
    model_name = model_name,
    instance_count = 1,
    instance_type = 'ml.m4.xlarge',
    strategy = 'SingleRecord',
    assemble_with = 'Line',
    output_path = output_data_path,
    base_transform_job_name='inference-pipelines-batch',
    sagemaker_session=sagemaker.Session(),
    accept = CONTENT_TYPE_CSV)
transform_job.transform(data = input_data_path, 
                        content_type = CONTENT_TYPE_CSV, 
                        split_type = 'Line')
```

# Logs e métricas de pipeline de inferência
<a name="inference-pipeline-logs-metrics"></a>

O monitoramento é importante para manter a confiabilidade, a disponibilidade e o desempenho dos recursos de SageMaker IA da Amazon. Para monitorar e solucionar problemas de desempenho do pipeline de inferência, use CloudWatch registros e mensagens de erro da Amazon. Para obter informações sobre as ferramentas de monitoramento que a SageMaker IA fornece, consulte[AWS Recursos de monitoramento na Amazon SageMaker AI](monitoring-overview.md).

## Usar métricas para monitorar modelos de vários contêineres
<a name="inference-pipeline-metrics"></a>

Para monitorar os modelos de vários contêineres em Inference Pipelines, use a Amazon. CloudWatch CloudWatchcoleta dados brutos e os processa em métricas legíveis, quase em tempo real. SageMaker Os trabalhos e endpoints de treinamento de IA CloudWatch gravam métricas e registros no `AWS/SageMaker` namespace. 

A tabela a seguir lista as métricas e as dimensões para o seguinte:
+ Invocações de endpoint
+ Tarefas de treinamento, tarefas de transformação em lote e instâncias de endpoint

Uma *dimensão* é um name/value par que identifica de forma exclusiva uma métrica. Você pode atribuir até 10 dimensões a uma métrica. Para obter mais informações sobre o monitoramento com CloudWatch, consulte[Métricas de SageMaker IA da Amazon na Amazon CloudWatch](monitoring-cloudwatch.md). 

**Métricas de invocação de endpoint**

O namespace `AWS/SageMaker` inclui as seguintes métricas de solicitação de chamadas para [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_InvokeEndpoint.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_InvokeEndpoint.html):

As métricas são relatadas em intervalos de 1 minuto.


| Métrica | Description | 
| --- | --- | 
| Invocation4XXErrors |  O número de solicitações `InvokeEndpoint` em que o modelo retornou um código de resposta HTTP `4xx`. Para cada `4xx` resposta, a SageMaker IA envia um`1`. Unidades: nenhuma Estatísticas válidas: `Average`, `Sum`  | 
| Invocation5XXErrors |  O número de solicitações `InvokeEndpoint` em que o modelo retornou um código de resposta HTTP `5xx`. Para cada `5xx` resposta, a SageMaker IA envia um`1`. Unidades: nenhuma Estatísticas válidas: `Average`, `Sum`  | 
| Invocations |  As solicitações `number of InvokeEndpoint` enviadas para um endpoint de modelo.  Para obter o número total de solicitações enviadas a um endpoint de modelo, use a estatística `Sum`. Unidades: nenhuma Estatísticas válidas: `Sum`, `Sample Count`  | 
| InvocationsPerInstance |  O número de invocações de endpoint enviadas para um modelo, normalizado por in each. `InstanceCount` `ProductionVariant` SageMaker A IA envia 1/ `numberOfInstances` como o valor de cada solicitação, onde `numberOfInstances` é o número de instâncias ativas do ProductionVariant no endpoint no momento da solicitação. Unidades: nenhuma Estatísticas válidas: `Sum`  | 
| ModelLatency | O tempo que o modelo ou modelos levaram para responder. Isso inclui o tempo necessário para enviar a solicitação, buscar a resposta do contêiner do modelo e concluir a inferência no contêiner. ModelLatency é o tempo total gasto por todos os contêineres em um pipeline de inferência.Unidade: microssegundosEstatísticas válidas: `Average`, `Sum`, `Min`, `Max`, contagem de amostras | 
| OverheadLatency |  O tempo adicionado ao tempo necessário para responder a uma solicitação de um cliente feita pela SageMaker IA para sobrecarga. `OverheadLatency`é medido a partir do momento em que a SageMaker IA recebe a solicitação até retornar uma resposta ao cliente, menos o. `ModelLatency` A latência de sobrecarga pode variar dependendo de tamanhos de carga útil de solicitações e respostas, frequência de solicitações e autenticação ou autorização da solicitação, entre outros fatores. Unidade: microssegundos Estatísticas válidas: `Average`, `Sum`, `Min`, `Max`, `Sample Count`  | 
| ContainerLatency | O tempo necessário para que um contêiner do Inference Pipelines respondesse conforme visualizado pela SageMaker IA. ContainerLatencyinclui o tempo necessário para enviar a solicitação, buscar a resposta do contêiner do modelo e concluir a inferência no contêiner.Unidade: microssegundosEstatísticas válidas: `Average`, `Sum`, `Min`, `Max`, `Sample Count` | 

**Dimensões para métricas de invocação de endpoint**


| Dimensão | Description | 
| --- | --- | 
| EndpointName, VariantName, ContainerName |  Filtra as métricas de invocação do endpoint para um `ProductionVariant` no endpoint especificado e para a variante especificada.  | 

**Para um endpoint de pipeline de inferência, CloudWatch lista as métricas de latência por contêiner em sua conta como **Endpoint Container Metrics e **Endpoint Variant Metrics**** no namespace AI, da SageMaker seguinte forma.** A métrica `ContainerLatency` aparece apenas para pipelines de inferências.

![\[O CloudWatch painel para um pipeline de inferência.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/pipeline-endpoint-metrics.png)


Para cada endpoint e cada contêiner, as métricas de latência exibem nomes para o contêiner, o endpoint, a variante e a métrica.

![\[As métricas de latência para um endpoint.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/pipeline-endpoint-metrics-details.png)


**Métricas de trabalho de treinamento, trabalho de transformação em lote e instância de endpoint**

Os namespaces `/aws/sagemaker/TrainingJobs`, `/aws/sagemaker/TransformJobs` e `/aws/sagemaker/Endpoints` incluem as seguintes métricas para trabalhos de treinamento e instâncias de endpoint:

As métricas são relatadas em intervalos de 1 minuto.


| Métrica | Description | 
| --- | --- | 
| CPUUtilization |  O percentual de unidades de CPU usadas pelos contêineres em execução em uma instância. O valor varia de 0% a 100% e é multiplicado pelo número de CPUs. Por exemplo, se houver quatro CPUs, `CPUUtilization` pode variar de 0% a 400%. Para trabalhos de treinamento, o `CPUUtilization` é a utilização de CPU do contêiner de algoritmo em execução na instância. Para trabalhos de transformação em lote, o `CPUUtilization` é a utilização da CPU do contêiner de transformação em execução na instância. Para modelos de vários contêineres, `CPUUtilization` é a soma da utilização da CPU por todos os contêineres em execução na instância. Para variantes de endpoint, `CPUUtilization` é a soma de utilização da CPU por todos os contêineres em execução na instância. Unidades: percentual  | 
| MemoryUtilization | O percentual de memória usada pelos contêineres em execução em uma instância. Esse valor varia de 0% a 100%.Para tarefas de treinamento, `MemoryUtilization` é a memória usada pelo contêiner de algoritmo em execução na instância.Para tarefas de transformação em lote, `MemoryUtilization` é a memória usada pelo contêiner de transformação em execução na instância.Para modelos com vários contêineres, MemoryUtilization é a soma da memória usada por todos os contêineres em execução na instância.Para variantes de endpoint, `MemoryUtilization` é a soma da memória usada por todos os contêineres em execução na instância.Unidades: percentual | 
| GPUUtilization |  A porcentagem de unidades de GPU usadas pelos contêineres em execução em uma instância. `GPUUtilization`varia de 0% a 100% e é multiplicado pelo número de GPUs. Por exemplo, se houver quatro GPUs, `GPUUtilization` pode variar de 0% a 400%. Para tarefas de treinamento, `GPUUtilization` é a GPU usada pelo contêiner de algoritmo em execução na instância. Para trabalhos de transformação em lote, `GPUUtilization` é a GPU usada pelo contêiner de transformação em execução na instância. Para modelos com vários contêineres, `GPUUtilization` é a soma da GPU usada por todos os contêineres em execução na instância. Para variantes de endpoint, `GPUUtilization` é a soma da GPU usada por todos os contêineres em execução na instância. Unidades: percentual  | 
| GPUMemoryUtilization |  A porcentagem da memória da GPU usada pelos contêineres em execução em uma instância. GPUMemoryA utilização varia de 0% a 100% e é multiplicada pelo número de. GPUs Por exemplo, se houver quatro GPUs, `GPUMemoryUtilization` pode variar de 0% a 400%. Para tarefas de treinamento, `GPUMemoryUtilization` é a memória da GPU usada pelo contêiner do algoritmo em execução na instância. Para tarefas de transformação em lote, `GPUMemoryUtilization` é a memória da GPU usada pelo contêiner de transformação em execução na instância. Para modelos com vários contêineres, `GPUMemoryUtilization` é a soma da GPU usada por todos os contêineres em execução na instância. Para variantes de endpoint, `GPUMemoryUtilization` é a soma da memória da GPU usada por todos os contêineres em execução na instância. Unidades: percentual  | 
| DiskUtilization |  A porcentagem do espaço em disco usado pelos contêineres em execução em uma instância. DiskUtilization varia de 0% a 100%. Essa métrica não oferece apoio para trabalhos de transformação em lote. Para tarefas de treinamento, `DiskUtilization` é o espaço em disco usado pelo contêiner de algoritmo em execução na instância. Para variantes de endpoint, `DiskUtilization` é a soma do espaço em disco usado por todos os contêineres fornecidos em execução na instância. Unidades: percentual  | 

**Dimensões para métricas de trabalho de treinamento, trabalho de transformação em lote e instância de endpoint**


| Dimensão | Description | 
| --- | --- | 
| Host |  Para tarefas de treinamento, `Host` tem o formato `[training-job-name]/algo-[instance-number-in-cluster]`. Use essa dimensão para filtrar as métricas de instância para o trabalho de treinamento e a instância especificados. Esse formato de dimensão está presente somente no namespace `/aws/sagemaker/TrainingJobs`. Para tarefas de transformação em lote, `Host` tem o formato `[transform-job-name]/[instance-id]`. Use essa dimensão para filtrar métricas de instância para o trabalho de transformação em lote e a instância especificados. Esse formato de dimensão está presente somente no namespace `/aws/sagemaker/TransformJobs`. Para endpoints, `Host` tem o formato `[endpoint-name]/[ production-variant-name ]/[instance-id]`. Use essa dimensão para filtrar as métricas de instância para o endpoint, a variante e a instância especificados. Esse formato de dimensão está presente somente no namespace `/aws/sagemaker/Endpoints`.  | 

Para ajudá-lo a depurar suas tarefas de treinamento, endpoints e configurações de ciclo de vida de instâncias de notebooks, a SageMaker IA também envia tudo o que um contêiner de algoritmo, um contêiner de modelo ou uma configuração de ciclo de vida de instância de notebook envia para ou para o Amazon Logs. `stdout` `stderr` CloudWatch Você pode usar essas informações para depuração e para analisar o progresso.

## Usar logs para monitorar um pipeline de inferência
<a name="inference-pipeline-logs"></a>

A tabela a seguir lista os grupos de log e os fluxos de log que a SageMaker IA envia para a Amazon CloudWatch 

*Fluxo de logs* é uma sequência de eventos de log que compartilham a mesma origem. Cada fonte separada de registros em CloudWatch forma um fluxo de registros separado. Um *grupo de logs* é um grupo de fluxos de log que compartilham as mesmas configurações de retenção, monitoramento e controle de acesso.

**Logs**

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/inference-pipeline-logs-metrics.html)

**nota**  
SageMaker A IA cria o grupo de `/aws/sagemaker/NotebookInstances` registros quando você cria uma instância de notebook com uma configuração de ciclo de vida. Para obter mais informações, consulte [Personalização de uma instância de SageMaker notebook usando um script LCC](notebook-lifecycle-config.md).

Para obter mais informações sobre o registro de SageMaker IA, consulte[CloudWatch Registros para Amazon SageMaker AI](logging-cloudwatch.md). 

# Solucionar problemas em pipelines de inferência
<a name="inference-pipeline-troubleshoot"></a>

Para solucionar problemas do pipeline de inferência, use CloudWatch registros e mensagens de erro. Se você estiver usando imagens personalizadas do Docker em um pipeline que inclui algoritmos integrados do Amazon SageMaker AI, você também poderá encontrar problemas de permissões. Para conceder as permissões necessárias, crie uma política do Amazon Elastic Container Registry (Amazon ECR).

**Topics**
+ [Solucionar problemas com permissões do Amazon ECR para pipelines de inferência](#inference-pipeline-troubleshoot-permissions)
+ [Use CloudWatch registros para solucionar problemas de pipelines de SageMaker inferência de IA](#inference-pipeline-troubleshoot-logs)
+ [Use mensagens de erro para solucionar problemas com pipelines de inferência.](#inference-pipeline-troubleshoot-errors)

## Solucionar problemas com permissões do Amazon ECR para pipelines de inferência
<a name="inference-pipeline-troubleshoot-permissions"></a>

Quando você usa imagens personalizadas do Docker em um pipeline que inclui [algoritmos integrados de SageMaker IA](https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-algo-docker-registry-paths.html), você precisa de uma política do [Amazon ECR.](https://docs.aws.amazon.com/AmazonECR/latest/userguide/what-is-ecr.html) A política permite que seu repositório Amazon ECR conceda permissão para que a SageMaker IA extraia a imagem. A política deve adicionar as seguintes permissões:

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "allowSageMakerToPull",
            "Effect": "Allow",
            "Principal": {
                "Service": "sagemaker.amazonaws.com"
            },
            "Action": [
                "ecr:GetDownloadUrlForLayer",
                "ecr:BatchGetImage",
                "ecr:BatchCheckLayerAvailability"
            ],
            "Resource": "*"
        }
    ]
}
```

------

## Use CloudWatch registros para solucionar problemas de pipelines de SageMaker inferência de IA
<a name="inference-pipeline-troubleshoot-logs"></a>

SageMaker A IA publica os registros do contêiner para endpoints que implantam um pipeline de inferência CloudWatch na Amazon no seguinte caminho para cada contêiner.

```
/aws/sagemaker/Endpoints/{EndpointName}/{Variant}/{InstanceId}/{ContainerHostname}
```

Por exemplo, os logs desse endpoint são publicados nos seguintes grupos de logs e streams:

```
EndpointName: MyInferencePipelinesEndpoint
Variant: MyInferencePipelinesVariant
InstanceId: i-0179208609ff7e488
ContainerHostname: MyContainerName1 and MyContainerName2
```

```
logGroup: /aws/sagemaker/Endpoints/MyInferencePipelinesEndpoint
logStream: MyInferencePipelinesVariant/i-0179208609ff7e488/MyContainerName1
logStream: MyInferencePipelinesVariant/i-0179208609ff7e488/MyContainerName2
```

*Fluxo de logs* é uma sequência de eventos de log que compartilham a mesma origem. Cada fonte separada de registros em CloudWatch forma um fluxo de registros separado. Um *grupo de logs* é um grupo de fluxos de log que compartilham as mesmas configurações de retenção, monitoramento e controle de acesso.

**Para ver os grupos de log e streams**

1. Abra o CloudWatch console em [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/).

1. Na página de navegação, escolha **Logs**.

1. In **Log Groups (Grupos de log)** filtre em **MyInferencePipelinesEndpoint**:   
![\[Os grupos de CloudWatch registros foram filtrados para o endpoint do pipeline de inferência.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/pipeline-log-group-filter.png)

1. Para ver os fluxos de registros, na página **Grupos de CloudWatch registros**, escolha e, em seguida**MyInferencePipelinesEndpoint**, **Pesquisar grupo de registros**.  
![\[O fluxo de CloudWatch log do pipeline de inferência.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/pipeline-log-streams-2.png)

Para obter uma lista dos registros que a SageMaker AI publica, consulte[Logs e métricas de pipeline de inferência](inference-pipeline-logs-metrics.md).

## Use mensagens de erro para solucionar problemas com pipelines de inferência.
<a name="inference-pipeline-troubleshoot-errors"></a>

As mensagens de erro do pipeline de inferência indicam quais contêineres falharam. 

Se ocorrer um erro enquanto a SageMaker IA invoca um endpoint, o serviço retornará um `ModelError` (código de erro 424), que indica qual contêiner falhou. Se a carga útil da solicitação (a resposta do contêiner anterior) exceder o limite de 5 MB, a SageMaker AI fornecerá uma mensagem de erro detalhada, como: 

Resposta recebida de MyContainerName 1 com o código de status 200. No entanto, a carga útil da solicitação de MyContainerName 1 a MyContainerName 2 é de 6000000 bytes, o que excedeu o limite máximo de 5 MB.

``

Se um contêiner falhar na verificação de integridade do ping enquanto a SageMaker IA estiver criando um endpoint, ele retornará a `ClientError` e indicará todos os contêineres que falharam na verificação de ping na última verificação de integridade.