

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

# Criar um modelo
<a name="async-inference-create-endpoint-create-model"></a>

O exemplo a seguir mostra como criar um usando o AWS SDK para Python (Boto3). As primeiras linhas definem:
+ `sagemaker_client`: um objeto cliente de SageMaker IA de baixo nível que facilita o envio e o recebimento de solicitações de AWS serviços.
+ `sagemaker_role`: uma variável de string com a função SageMaker AI IAM Amazon Resource Name (ARN).
+ `aws_region`: uma variável de string com o nome da sua AWS região.

```
import boto3

# Specify your AWS Region
aws_region={{'<aws_region>'}}

# Create a low-level SageMaker service client.
sagemaker_client = boto3.client('sagemaker', region_name=aws_region)

# Role to give SageMaker permission to access AWS services.
sagemaker_role= "arn:aws:iam::{{<account>:role/*}}"
```

Em seguida, especifique a localização do modelo pré-treinado armazenado no Amazon S3. Neste exemplo, usamos um XGBoost modelo pré-treinado chamado`demo-xgboost-model.tar.gz`. O URI completo do Amazon S3 é armazenado em uma variável de string `model_url`:

```
#Create a variable w/ the model S3 URI
s3_bucket = {{'<your-bucket-name>'}} # Provide the name of your S3 bucket
bucket_prefix='saved_models'
model_s3_key = f"{bucket_prefix}/demo-xgboost-model.tar.gz"

#Specify S3 bucket w/ model
model_url = f"s3://{s3_bucket}/{model_s3_key}"
```

Especifique um contêiner primário. Para o contêiner principal, você especifica a imagem do Docker que contém o código de inferência, os artefatos (do treinamento anterior) e um mapa do ambiente personalizado que o código de inferência usa quando você implanta o modelo para predições.

 Neste exemplo, especificamos uma imagem de contêiner de algoritmo XGBoost incorporada: 

```
from sagemaker import image_uris

# Specify an AWS container image. 
container = image_uris.retrieve(region=aws_region, framework='xgboost', version='0.90-1')
```

Crie um modelo na Amazon SageMaker AI com`CreateModel`. Especifique o seguinte:
+ `ModelName`: um nome para seu modelo (neste exemplo, ele é armazenado como uma variável de string chamada `model_name`).
+ `ExecutionRoleArn`: O Amazon Resource Name (ARN) da função do IAM que a Amazon SageMaker AI pode assumir para acessar artefatos de modelo e imagens do Docker para implantação em instâncias de computação de ML ou para trabalhos de transformação em lote.
+ `PrimaryContainer`: A localização da imagem do Docker primária que contém código de inferência, artefatos associados e mapas de ambiente personalizado usado pelo código de inferência quando o modelo é implantado para predições.

```
model_name = {{'<The_name_of_the_model>'}}

#Create model
create_model_response = sagemaker_client.create_model(
    ModelName = model_name,
    ExecutionRoleArn = sagemaker_role,
    PrimaryContainer = {
        'Image': container,
        'ModelDataUrl': model_url,
    })
```

Consulte a [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateModel.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateModel.html)descrição no Guia de referência SageMaker da API para obter uma lista completa dos parâmetros da API.

Se você estiver usando um contêiner fornecido por SageMaker IA, poderá aumentar o tempo limite do servidor modelo e os tamanhos da carga útil dos valores padrão para os máximos suportados pela estrutura definindo variáveis de ambiente nesta etapa. Talvez você não consiga aproveitar o tempo limite máximo e os tamanhos de carga útil que a inferência assíncrona é compatível com se não definir explicitamente essas variáveis. O exemplo a seguir mostra como você pode definir as variáveis de ambiente para um contêiner de PyTorch inferência com base em TorchServe.

```
model_name = {{'<The_name_of_the_model>'}}

#Create model
create_model_response = sagemaker_client.create_model(
    ModelName = model_name,
    ExecutionRoleArn = sagemaker_role,
    PrimaryContainer = {
        'Image': container,
        'ModelDataUrl': model_url,
        'Environment': {
            'TS_MAX_REQUEST_SIZE': '100000000',
            'TS_MAX_RESPONSE_SIZE': '100000000',
            'TS_DEFAULT_RESPONSE_TIMEOUT': '1000'
        },
    })
```

Quando terminar de criar seu endpoint, verifique se definiu as variáveis de ambiente corretamente imprimindo-as do seu script `inference.py`. A tabela a seguir lista as variáveis de ambiente de uma série de estruturas que você pode definir para alterar os valores padrão.


| Framework | Variáveis de ambiente | 
| --- | --- | 
| PyTorch 1.8 (baseado em TorchServe) | 'TS\_MAX\_REQUEST\_SIZE': '100000000'<br />'TS\_MAX\_RESPONSE\_SIZE': '100000000'<br />'TS\_DEFAULT\_RESPONSE\_TIMEOUT': '1000' | 
| PyTorch 1.4 (baseado em MMS) | 'MMS\_MAX\_REQUEST\_SIZE': '1000000000'<br />'MMS\_MAX\_RESPONSE\_SIZE': '1000000000'<br />'MMS\_DEFAULT\_RESPONSE\_TIMEOUT': '900' | 
| HuggingFace Contêiner de inferência (baseado em MMS) | 'MMS\_MAX\_REQUEST\_SIZE': '2000000000'<br />'MMS\_MAX\_RESPONSE\_SIZE': '2000000000'<br />'MMS\_DEFAULT\_RESPONSE\_TIMEOUT': '900' | 