

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

# Como empacotar o modelo
<a name="edge-packaging-job"></a>

SageMaker As tarefas de empacotamento do Edge Manager usam modelos SageMaker compilados pelo Amazon Neo e fazem as alterações necessárias para implantar o modelo com o mecanismo de inferência, o agente do Edge Manager.

**Topics**
+ [Concluir os pré-requisitos](edge-packaging-job-prerequisites.md)
+ [Package um modelo (Amazon SageMaker AI Console)](edge-packaging-job-console.md)
+ [Empacote um modelo (Boto3)](edge-packaging-job-boto3.md)

# Concluir os pré-requisitos
<a name="edge-packaging-job-prerequisites"></a>

Para empacotar um modelo, você deve fazer o seguinte:

1. **Compile seu modelo de aprendizado de máquina com o SageMaker AI Neo.**

   Se você ainda não fez isso, compile seu modelo com o SageMaker Neo. Para obter mais informações sobre como compilar seu modelo, consulte [Compilar e implantar modelos com o Neo](https://docs.aws.amazon.com/sagemaker/latest/dg/neo.html). Se você é usuário do SageMaker Neo pela primeira vez, consulte [Introdução aos dispositivos Neo Edge](https://docs.aws.amazon.com/sagemaker/latest/dg/neo-getting-started-edge.html).

1. **Obtenha o nome do seu trabalho de compilação.**

   Forneça o nome do trabalho de compilação que você usou ao compilar seu modelo com SageMaker o Neo. Abra o console de SageMaker IA em [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/)e escolha **Trabalhos de compilação** para encontrar uma lista das compilações que foram enviadas para sua AWS conta. Os nomes dos trabalhos de compilação enviados estão na coluna **Nome**.

1. **Obtenha seu ARN do IAM.**

   Você precisa de um Amazon Resource Name (ARN) de uma função do IAM que você possa usar para baixar e carregar o modelo e entrar em contato com SageMaker a Neo.

   Use um dos seguintes métodos para obter um ARN do IAM:
   + **Programaticamente com o SDK AI SageMaker Python**

     ```
     import sagemaker
     
     # Initialize SageMaker Session object so you can interact with AWS resources
     sess = sagemaker.Session()
     
     # Get the role ARN 
     role = sagemaker.get_execution_role()
     
     print(role)
     >> arn:aws:iam::<your-aws-account-id>:role/<your-role-name>
     ```

     Para obter mais informações sobre como usar o SDK para SageMaker Python, consulte a API AI [SageMaker Python](https://sagemaker.readthedocs.io/en/stable/index.html) SDK.
   + **Usando o console AWS Identity and Access Management (IAM)**

     Navegue até o console do IAM em [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/). Na seção **Recursos** do IAM, escolha **Funções** para ver uma lista de funções em sua conta AWS . Selecione ou crie uma função que tenha `AmazonSageMakerFullAccess`, `AWSIoTFullAccess` e `AmazonS3FullAccess`.

     Para obter mais informações sobre IAM, consulte [O que é IAM?](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html)

1. **Tenha um URI de bucket do S3.**

   Você precisa ter pelo menos um URI de bucket do Amazon Simple Storage Service (Amazon S3) para armazenar seu modelo compilado pelo NEO, a saída do trabalho de empacotamento do Edge Manager e dados de amostra da sua frota de dispositivos.

   Use um dos métodos a seguir para criar um bucket do Amazon S3:
   + **Programaticamente com o SDK AI SageMaker Python**

     Você pode usar o bucket padrão do Amazon S3 durante uma sessão. Um bucket padrão é criado com base no seguinte formato: `sagemaker-{region}-{aws-account-id}`. Para criar um bucket padrão com o SDK do SageMaker Python, use o seguinte:

     ```
     import sagemaker
     
     session=sagemaker.create_session()
     
     bucket=session.default_bucket()
     ```
   + **Usar o console do Amazon S3**

     Abra o console do Amazon S3 em [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)e veja [Como faço para criar um bucket S3](https://docs.aws.amazon.com/AmazonS3/latest/user-guide/create-bucket.html)? para step-by-step obter instruções.

# Package um modelo (Amazon SageMaker AI Console)
<a name="edge-packaging-job-console"></a>

Você pode criar um trabalho de empacotamento do SageMaker Edge Manager usando o console SageMaker AI em [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/). Antes de continuar, certifique-se de ter satisfeito com o [Concluir os pré-requisitos](edge-packaging-job-prerequisites.md).

1. No console de SageMaker IA, escolha **Edge Inference** e, em seguida, escolha **Create edge packaging jobs**, conforme mostrado na imagem a seguir.  
![\[Localização de Criar trabalhos de empacotamento do Edge no console.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/smith/pre-edge-packaging-button-edited.png)

1. Na página **Propriedades do trabalho**, insira um nome para seu trabalho de empacotamento em **Nome do trabalho de empacotamento do Edge**. Observe que os nomes de tarefas de empacotamento do Edge Manager diferenciam maiúsculas e minúsculas. Nomeie seu modelo e forneça uma versão: insira isso em **Nome do modelo** e **Versão do modelo**, respectivamente.

1. Em seguida, selecione uma **perfil do IAM**. Você pode escolher uma função ou deixar AWS criar uma função para você. Opcionalmente, você pode especificar um **ARN da chave de recurso** e **Tags de trabalho**.

1. Escolha **Próximo**.   
![\[Exemplo da seção Prioridades do trabalho no console.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/smith/create-edge-packaging-job-filled.png)

1. Especifique o nome do trabalho de compilação que você usou ao compilar seu modelo com SageMaker o Neo no campo Nome do **trabalho de compilação**. Escolha **Próximo**.  
![\[Exemplo da seção Origem do modelo no console.\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/smith/create-edge-packaging-job-model-source-filled.png)

1. Na página de **Configuração de saída**, insira o URI do bucket do Amazon S3 no qual você deseja armazenar a saída do trabalho de empacotamento.  
![\[Exemplo da página Configuração de saída no console:\]](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/smith/create-device-fleet-output-filled.png)

   A coluna **Status** na página de trabalhos de **empacotamento do Edge** deve ser **EM ANDAMENTO**. Quando o trabalho de empacotamento for concluído, o status será atualizado para **CONCLUÍDO**.

   Selecionar um trabalho de empacotamento direciona você para as configurações desse trabalho. A seção **Configurações do trabalho** exibe o nome do trabalho, o ARN, o status, o horário de criação, o horário da última modificação, a duração do trabalho de empacotamento e o ARN do perfil.

   A seção **Configuração da entrada** exibe a localização dos artefatos do modelo, a configuração de entrada de dados e a estrutura de machine learning do modelo.

   A seção **Configuração de saída** exibe o local de saída do trabalho de empacotamento, o dispositivo de destino para o qual o modelo foi compilado e todas as tags que você criou.

1. Escolha o nome da sua frota de dispositivos para ser redirecionado aos detalhes da frota de dispositivos. Esta página exibe o nome da frota de dispositivos, ARN, descrição (se você forneceu uma), data em que a frota foi criada, última vez que a frota foi modificada, URI do bucket do Amazon S3, AWS KMS ID da chave (se fornecido), AWS IoT alias (se fornecido) e perfil do IAM. Se você adicionou etiquetas, elas aparecem na seção **Tags de frota de dispositivos**.

# Empacote um modelo (Boto3)
<a name="edge-packaging-job-boto3"></a>

Você pode criar um trabalho de empacotamento do SageMaker Edge Manager com AWS SDK para Python (Boto3) o. Antes de continuar, certifique-se de ter satisfeito com o [Concluir os pré-requisitos](edge-packaging-job-prerequisites.md).

Para solicitar um trabalho de empacotamento do Edge, use `CreateEdgePackagingJob`. Você precisa fornecer um nome para seu trabalho de empacotamento de borda, o nome do seu trabalho de compilação SageMaker Neo, seu nome de recurso da Amazon (ARN) da sua função, um nome para seu modelo, uma versão para seu modelo e o URI do bucket do Amazon S3 onde você deseja armazenar a saída do seu trabalho de empacotamento. Observe que os nomes dos trabalhos de empacotamento do Edge Manager e os nomes dos trabalhos de compilação do SageMaker Neo diferenciam maiúsculas de minúsculas.

```
# Import AWS SDK for Python (Boto3)
import boto3

# Create Edge client so you can submit a packaging job
sagemaker_client = boto3.client("sagemaker", region_name='aws-region')

sagemaker_client.create_edge_packaging_job(
    EdgePackagingJobName="edge-packaging-name",
    CompilationJobName="neo-compilation-name",
    RoleArn="arn:aws:iam::99999999999:role/rolename",
    ModelName="sample-model-name",
    ModelVersion="model-version",
    OutputConfig={
        "S3OutputLocation": "s3://your-bucket/",
    }
)
```

Você pode verificar o status de um trabalho de empacotamento de borda usando `DescribeEdgePackagingJob` e fornecendo o nome do trabalho de empacotamento de borda que diferencia maiúsculas de minúsculas:

```
response = sagemaker_client.describe_edge_packaging_job(
                                    EdgePackagingJobName="edge-packaging-name")
```

Isso retorna um dicionário que pode ser usado para pesquisar o status do trabalho de empacotamento:

```
# Optional - Poll every 30 sec to check completion status
import time

while True:
    response = sagemaker_client.describe_edge_packaging_job(
                                         EdgePackagingJobName="edge-packaging-name")
    
    if response['EdgePackagingJobStatus'] == 'Completed':
        break
    elif response['EdgePackagingJobStatus'] == 'Failed':
        raise RuntimeError('Packaging job failed')
    print('Packaging model...')
    time.sleep(30)
print('Done!')
```

Para obter uma lista de trabalhos de empacotamento, use `ListEdgePackagingJobs`. Você pode usar essa API para pesquisar um trabalho de empacotamento específico. Forneça um nome parcial para filtrar os nomes dos trabalhos de empacotamento para `NameContains`, um nome parcial de `ModelNameContains` para filtrar os trabalhos nos quais o nome do modelo contém o nome fornecido. Especifique também com qual coluna classificar `SortBy` e por qual direção classificar `SortOrder` (`Ascending` ou `Descending`).

```
sagemaker_client.list_edge_packaging_jobs(
    "NameContains": "sample",
    "ModelNameContains": "sample",
    "SortBy": "column-name",
    "SortOrder": "Descending"
)
```

Para interromper um trabalho de empacotamento, use `StopEdgePackagingJob` e forneça o nome do seu trabalho de empacotamento do Edge.

```
sagemaker_client.stop_edge_packaging_job(
        EdgePackagingJobName="edge-packaging-name"
)
```

Para obter uma lista completa do Edge Manager APIs, consulte a documentação do [Boto3](https://boto3.amazonaws.com/v1/documentation/api/latest/index.html).