

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 recurso de algoritmo
<a name="sagemaker-mkt-create-algo"></a>

Você pode criar um recurso de algoritmo para usar com trabalhos de treinamento na Amazon SageMaker AI e publicá-lo no AWS Marketplace. As seções a seguir explicam como fazer isso usando a Console de gerenciamento da AWS e a SageMaker API.

Para criar um recurso de algoritmo, você especifica as seguintes informações:
+ Os contêineres do Docker que contêm o código de treinamento e, opcionalmente, o código de inferência.
+ A configuração dos dados de entrada que seu algoritmo espera obter para treinamento.
+ Os hiperparâmetros compatíveis com seu algoritmo.
+ Métricas que seu algoritmo envia para a Amazon CloudWatch durante trabalhos de treinamento.
+ Os tipos de instância compatíveis com seu algoritmo para treinamento e inferência, e se ele oferece apoio para treinamento distribuído entre várias instâncias.
+ Perfis de validação, que são trabalhos de treinamento que a SageMaker IA usa para testar o código de treinamento do seu algoritmo e trabalhos de transformação em lote que a SageMaker IA executa para testar o código de inferência do seu algoritmo.

  Para garantir que compradores e vendedores tenham certeza de que os produtos funcionam em SageMaker IA, exigimos que você valide seus algoritmos antes de listá-los. AWS Marketplace Você pode listar produtos no AWS Marketplace somente se a validação for bem-sucedida. Para validar seus algoritmos, a SageMaker IA usa seu perfil de validação e dados de amostra para executar as seguintes tarefas de validação:

  1. Crie um trabalho de treinamento em sua conta para verificar se sua imagem de treinamento funciona com SageMaker IA.

  1. Se você tiver incluído o código de inferência no seu algoritmo, crie um modelo na sua conta usando a imagem de inferência desse algoritmo e os artefatos de modelo produzidos pelo trabalho de treinamento.

  1. Se você incluiu código de inferência em seu algoritmo, crie um trabalho de transformação em sua conta usando o modelo para verificar se sua imagem de inferência funciona com SageMaker IA.

  Quando você lista seu produto AWS Marketplace, as entradas e saídas desse processo de validação persistem como parte do seu produto e são disponibilizadas para seus compradores. Isso ajuda os compradores a compreender e avaliar o produto antes de comprá-lo. Por exemplo, os compradores podem inspecionar os dados de entrada que você usou, as saídas geradas e os logs e as métricas emitidos pelo seu código. Quanto mais abrangente for a sua especificação de validação, mais fácil será para os clientes avaliarem o seu produto.
**nota**  
No seu perfil de validação, forneça apenas os dados que você deseja expor publicamente.

  A validação pode demorar algumas horas. Para ver o status dos trabalhos em sua conta, no console de SageMaker IA, consulte as páginas **Trabalhos de treinamento** e **Transformar trabalhos**. Se a validação falhar, você poderá acessar os relatórios de verificação e validação no console de SageMaker IA. Se algum problema for encontrado, você terá que criar o algoritmo novamente.
**nota**  
Para publicar seu algoritmo AWS Marketplace, é necessário pelo menos um perfil de validação.

Você pode criar um algoritmo usando o console de SageMaker IA ou a API de SageMaker IA.

**Topics**
+ [Criar um recurso de algoritmo (console)](#sagemaker-mkt-create-algo-console)
+ [Criar um recurso de algoritmo (API)](#sagemaker-mkt-create-algo-api)

## Criar um recurso de algoritmo (console)
<a name="sagemaker-mkt-create-algo-console"></a>

**Para criar um recurso de algoritmo (console)**

1. Abra o console de SageMaker IA em [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/).

1. No menu à esquerda, escolha **Treinamento**.

1. Na lista suspensa, escolha **Algoritmos** e, em seguida, escolha **Criar algoritmo**.

1. Na página **Especificações do treinamento**, forneça as seguintes informações:

   1. Para **Nome do algoritmo**, digite um nome para o seu algoritmo. O nome do algoritmo deve ser exclusivo na sua conta e na AWS região. Esse nome deve ter de 1 a 64 caracteres. Os caracteres válidos são a-z, A-Z, 0-9 e hífen (-).

   1. Digite uma descrição para o seu algoritmo. Essa descrição aparece no console do SageMaker AI e no AWS Marketplace.

   1. Para a **Imagem de treinamento, digite o caminho no Amazon ECR onde seu contêiner de treinamento está armazenado.**

   1. Para **Oferece apoio para treinamento distribuído**, escolha **Sim** se o seu algoritmo for compatível com treinamentos em várias instâncias. Caso contrário, escolha **Não**.

   1. Para **Oferecer compatibilidade com os tipos de instâncias para treinamento**, escolha os tipos de instância compatíveis com o seu algoritmo.

   1. Para **Especificação do canal**, especifique até 8 canais de dados de entrada para o seu algoritmo. Por exemplo, você pode especificar três canais de entrada chamados `train`, `validation` e `test`. Para cada canal, especifique as seguintes informações:

      1. Para **Nome do canal**, digite um nome para o canal. Esse nome deve ter de 1 a 64 caracteres. Os caracteres válidos são a-z, A-Z, 0-9 e hífen (-).

      1. Para exigir o canal para o seu algoritmo, escolha **Canal necessário**.

      1. Digite uma descrição para o canal.

      1. Para **Modos de entrada compatíveis**, escolha **Modo de pipe**, se o seu algoritmo oferecer compatibilidade com o streaming dos dados de entrada, e **Modo de arquivo**, se o seu algoritmo oferecer compatibilidade com o download dos dados de entrada como um arquivo. Você pode escolher os dois.

      1. Para **Tipos de conteúdo compatíveis**, digite o tipo MIME esperado pelo seu algoritmo para os dados de entrada.

      1. Em **Tipo de compactação compatível**, escolha **Gzip** se o seu algoritmo for compatível com a compactação Gzip. Caso contrário, escolha **Nenhum**.

      1. Escolha **Adicionar canal** para adicionar outro canal de entrada de dados ou escolha **Avançar** se tiver terminado de adicionar canais.

1. Na página **Especificações do ajuste**, forneça as seguintes informações:

   1. Para **Especificação dos hiperparâmetros**, especifique os hiperparâmetros aceitos pelo seu algoritmo, editando o objeto JSON. Para cada hiperparâmetro compatível com seu algoritmo, construa um bloco JSON semelhante ao seguinte:

      ```
      {
      "DefaultValue": "5",
      "Description": "The first hyperparameter",
      "IsRequired": true,
      "IsTunable": false,
      "Name": "intRange",
      "Range": {
      "IntegerParameterRangeSpecification": {
      "MaxValue": "10",
      "MinValue": "1"
      },
      "Type": "Integer"
      }
      ```

      No JSON, forneça o seguinte:

      1. Para `DefaultValue`, especifique um valor padrão para o hiperparâmetro, se houver um.

      1. Para `Description`, especifique uma descrição para o hiperparâmetro.

      1. Para `IsRequired` especifique se o hiperparâmetro é necessário.

      1. Para `IsTunable`, especifique `true` se esse hiperparâmetro puder ser ajustado quando um usuário executar um trabalho de ajuste de hiperparâmetro que use esse algoritmo. Para mais informações, consulte [Ajuste automático do modelo com SageMaker IA](automatic-model-tuning.md).

      1. Para `Name`, especifique um nome para o hiperparâmetro.

      1. Para `Range`, especifique um dos seguintes:
         + `IntegerParameterRangeSpecification` - os valores do hiperparâmetro são números inteiros. Especifique os valores mínimo e máximo para o hiperparâmetro.
         + 
         + `ContinuousParameterRangeSpecification` - os valores do hiperparâmetro são valores de ponto flutuante. Especifique os valores mínimo e máximo para o hiperparâmetro.
         + `CategoricalParameterRangeSpecification` - os valores do hiperparâmetro são valores categóricos. Especifique uma lista de todos os valores possíveis.

      1. Para `Type`, especifique `Integer`, `Continuous` ou `Categorical`. O valor deve corresponder ao tipo de `Range` que você especificou.

   1. Para **definições de métricas**, especifique qualquer métrica de treinamento que você deseja que seu algoritmo emita. SageMaker A IA usa a expressão regular que você especifica para encontrar as métricas analisando os registros do seu contêiner de treinamento durante o treinamento. Os usuários podem visualizar essas métricas ao executar trabalhos de treinamento com seu algoritmo e podem monitorar e traçar as métricas na Amazon CloudWatch. Para mais informações, consulte [CloudWatch Métricas da Amazon para monitorar e analisar trabalhos de treinamento](training-metrics.md). Para cada métrica, forneça as seguintes informações:

      1. Para **Nome da métrica**, digite um nome para a métrica.

      1. Para`Regex`, digite a expressão regular que a SageMaker IA usa para analisar os registros de treinamento para que ela possa encontrar o valor da métrica.

      1. Para **Ajuda para métrica objetiva**, escolha **Sim** se essa métrica puder ser usada como métrica objetiva para um trabalho de ajuste de hiperparâmetros. Para mais informações, consulte [Ajuste automático do modelo com SageMaker IA](automatic-model-tuning.md).

      1. Escolha **Adicionar métrica** para adicionar outra métrica ou escolha **Avançar** se tiver acabado de adicionar métricas.

1. Na página **Especificações da inferência**, forneça as seguintes informações caso o seu algoritmo seja compatível com inferência:

   1. Em **Local da imagem de inferência**, digite o caminho no Amazon ECR em que seu contêiner de inferência está armazenado.

   1. Para **Nome do host DNS do contêiner**, digite o nome de um host DNS para sua imagem.

   1. Em **Tipos de instância compatíveis para inferência em tempo real**, escolha os tipos de instância compatíveis com seu algoritmo para modelos implantados como endpoints hospedados na IA. SageMaker Para mais informações, consulte [Implantar modelos para inferência](deploy-model.md).

   1. Para **Tipos de instâncias compatíveis com trabalhos de transformação em lote**, escolha os tipos de instância aos quais seu algoritmo oferece apoio para trabalhos de transformação em lote. Para mais informações, consulte [Transformação em lote para inferência com a Amazon AI SageMaker](batch-transform.md).

   1. Para **Tipos de conteúdo compatíveis**, digite o tipo de dados de entrada esperado pelo seu algoritmo para solicitações de inferência.

   1. Para **Tipos de respostas de MIME compatíveis**, digite os tipos MIME compatíveis pelo seu algoritmo para respostas de inferência.

   1. Escolha **Próximo**.

1. Na página **Especificações da validação**, forneça as seguintes informações:

   1. Em **Publicar este algoritmo em AWS Marketplace**, escolha **Sim** para publicar o algoritmo AWS Marketplace.

   1. Para **validar esse recurso**, escolha **Sim** se quiser que a SageMaker IA execute o código de and/or batch transform jobs that you specify to test the training and/or inferência de trabalhos de treinamento do seu algoritmo.
**nota**  
Para publicar seu algoritmo em AWS Marketplace, seu algoritmo deve ser validado.

   1. Para a **função IAM**, escolha uma função do IAM que tenha as permissões necessárias para executar trabalhos de treinamento e trabalhos de transformação em lote na SageMaker IA, ou escolha **Criar uma nova função** para permitir que a SageMaker IA crie uma função que tenha a política `AmazonSageMakerFullAccess` gerenciada anexada. Para mais informações, consulte [Como usar funções de execução de SageMaker IA](sagemaker-roles.md).

   1. Para **Perfil de validação**, especifique o seguinte:
      + Um nome para o perfil de validação.
      + Uma **definição de trabalho de treinamento**. Este é um bloco JSON que descreve um trabalho de treinamento. Ele está no mesmo formato que o parâmetro de entrada [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_TrainingJobDefinition.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_TrainingJobDefinition.html) da API [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAlgorithm.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAlgorithm.html).
      + Uma **definição de trabalho de transformação**. Este é um bloco JSON que descreve um trabalho de transformação em lote. Ele está no mesmo formato que o parâmetro de entrada [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_TransformJobDefinition.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_TransformJobDefinition.html) da API [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAlgorithm.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAlgorithm.html).

   1. Escolha **Criar algoritmo**.

## Criar um recurso de algoritmo (API)
<a name="sagemaker-mkt-create-algo-api"></a>

Para criar um recurso de algoritmo usando a SageMaker API, chame a [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAlgorithm.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAlgorithm.html)API. 