

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

# Implantar o modelo do Amazon EC2
<a name="ex1-model-deployment"></a>

Para obter previsões, implante seu modelo no Amazon EC2 usando o Amazon SageMaker AI.

**Topics**
+ [Implante o modelo nos serviços de hospedagem de SageMaker IA](#ex1-deploy-model)
+ [(Opcional) Use o SageMaker AI Predictor para reutilizar o endpoint hospedado](#ex1-deploy-model-sdk-use-endpoint)
+ [(Opcional) Faça predições com o Transformador de Lotes](#ex1-batch-transform)

## Implante o modelo nos serviços de hospedagem de SageMaker IA
<a name="ex1-deploy-model"></a>

Para hospedar um modelo por meio do Amazon EC2 usando o Amazon SageMaker AI, implante o modelo no qual você treinou [Criar e executar um trabalho de treinamento](ex1-train-model.md#ex1-train-model-sdk) chamando o `deploy` método do `xgb_model` estimador. Ao chamar o método `deploy`, você deve especificar o número e o tipo de instâncias EC2 ML que você deseja usar para hospedar o endpoint.

```
import sagemaker
from sagemaker.serializers import CSVSerializer
xgb_predictor=xgb_model.deploy(
    initial_instance_count=1,
    instance_type='ml.t2.medium',
    serializer=CSVSerializer()
)
```
+ `initial_instance_count` (int): O número de instâncias para implantar o modelo.
+ `instance_type` (str): O tipo de instância em que você deseja operar seu modelo implantado.
+ `serializer`(int) — Serializa dados de entrada de vários formatos (uma NumPy matriz, lista, arquivo ou buffer) em uma string formatada em CSV. Usamos isso porque o XGBoost algoritmo aceita arquivos de entrada no formato CSV.

O `deploy` método cria um modelo implantável, configura o endpoint dos serviços de hospedagem de SageMaker IA e inicia o endpoint para hospedar o modelo. Para obter mais informações, consulte o [método de classe de implantação do Estimator genérico de SageMaker IA no SDK](https://sagemaker.readthedocs.io/en/stable/estimators.html#sagemaker.estimator.Estimator.deploy) do Amazon [Python SageMaker ](https://sagemaker.readthedocs.io/en/stable). Para recuperar o nome do endpoint gerado pelo método `deploy`, execute o seguinte código:

```
xgb_predictor.endpoint_name
```

Isso deve retornar o nome do endpoint do `xgb_predictor`. O formato do nome do endpoint é `"sagemaker-xgboost-YYYY-MM-DD-HH-MM-SS-SSS"`. Esse endpoint permanece ativo na instância de ML e você pode fazer predições instantâneas a qualquer momento, a menos que o desligue posteriormente. Copie o nome desse endpoint e salve-o para reutilizá-lo e fazer previsões em tempo real em outros lugares nas instâncias do SageMaker Studio ou do notebook SageMaker AI.

**dica**  
Para saber mais sobre como compilar e otimizar seu modelo para implantação em instâncias ou dispositivos de borda do Amazon EC2, consulte [Compilar e implantar modelos com o Neo](https://docs.aws.amazon.com/sagemaker/latest/dg/neo.html).

## (Opcional) Use o SageMaker AI Predictor para reutilizar o endpoint hospedado
<a name="ex1-deploy-model-sdk-use-endpoint"></a>

Depois de implantar o modelo em um endpoint, você pode configurar um novo preditor de SageMaker IA emparelhando o endpoint e fazendo previsões em tempo real continuamente em qualquer outro notebook. O código de exemplo a seguir mostra como usar a classe SageMaker AI Predictor para configurar um novo objeto preditor usando o mesmo endpoint. Reutilize o nome do endpoint que você usou para o `xgb_predictor`.

```
import sagemaker
xgb_predictor_reuse=sagemaker.predictor.Predictor(
    endpoint_name="{{sagemaker-xgboost-YYYY-MM-DD-HH-MM-SS-SSS}}",
    sagemaker_session=sagemaker.Session(),
    serializer=sagemaker.serializers.CSVSerializer()
)
```

O preditor `xgb_predictor_reuse` se comporta exatamente da mesma forma que o `xgb_predictor` original. Para obter mais informações, consulte a classe [SageMaker AI Predictor](https://sagemaker.readthedocs.io/en/stable/predictors.html#sagemaker.predictor.RealTimePredictor) no SDK do [Amazon SageMaker Python](https://sagemaker.readthedocs.io/en/stable).

## (Opcional) Faça predições com o Transformador de Lotes
<a name="ex1-batch-transform"></a>

Em vez de hospedar um endpoint em produção, você pode executar um trabalho único de inferência em lote para fazer previsões em um conjunto de dados de teste usando a transformação em lote da IA. SageMaker Depois que o treinamento do modelo for concluído, você poderá estender o estimador a um `transformer` objeto, que se baseia na classe [SageMaker AI Transformer](https://sagemaker.readthedocs.io/en/stable/api/inference/transformer.html). O transformador em lote lê os dados de entrada de um bucket do S3 especificado e faz predições.

**Para executar um trabalho de transformação em lote**

1. Execute o código a seguir para converter as colunas de atributos do conjunto de dados de teste em um arquivo CSV e fazer o upload para o bucket do S3:

   ```
   X_test.to_csv('test.csv', index=False, header=False)
   
   boto3.Session().resource('s3').Bucket(bucket).Object(
   os.path.join(prefix, 'test/test.csv')).upload_file('test.csv')
   ```

1. Especifique o bucket S3 URIs de entrada e saída para o trabalho de transformação em lote, conforme mostrado a seguir:

   ```
   # The location of the test dataset
   batch_input = 's3://{}/{}/test'.format(bucket, prefix)
   
   # The location to store the results of the batch transform job
   batch_output = 's3://{}/{}/batch-prediction'.format(bucket, prefix)
   ```

1. Crie um objeto transformador especificando o número mínimo de parâmetros: os parâmetros `instance_count` e `instance_type` para executar o trabalho de transformação em lote e `output_path` para salvar os dados de predição, conforme mostrado a seguir: 

   ```
   transformer = xgb_model.transformer(
       instance_count=1, 
       instance_type='ml.m4.xlarge', 
       output_path=batch_output
   )
   ```

1. Inicie o trabalho de transformação em lote executando o método `transform()` do objeto `transformer` conforme mostrado a seguir:

   ```
   transformer.transform(
       data=batch_input, 
       data_type='S3Prefix',
       content_type='text/csv', 
       split_type='Line'
   )
   transformer.wait()
   ```

1. Quando o trabalho de transformação em lote é concluído, a SageMaker IA cria os dados de `test.csv.out` previsão salvos no `batch_output` caminho, que devem estar no seguinte formato:`s3://sagemaker-<region>-111122223333/demo-sagemaker-xgboost-adult-income-prediction/batch-prediction`. Execute o seguinte AWS CLI para baixar os dados de saída do trabalho de transformação em lote:

   ```
   ! aws s3 cp {batch_output} ./ --recursive
   ```

   Isso deve criar o arquivo `test.csv.out` no diretório de trabalho atual. Você poderá ver os valores flutuantes que são previstos com base na regressão logística do trabalho de treinamento. XGBoost 