

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

# Configurar o treinamento automático
<a name="solution-config-auto-training"></a>

**Importante**  
Por padrão, todas as novas soluções usam o treinamento automático. Com o treinamento automático, você acumula custos de treinamento enquanto sua solução está ativa. Ao terminar, você poderá [atualizar a solução](updating-solution.md) para desativar o treinamento automático e evitar custos desnecessários. Para obter mais informações sobre os custos dos treinamentos, consulte [Preços do Amazon Personalize](https://aws.amazon.com/personalize/pricing/).

Depois de criar uma solução, você pode determinar se ela usará o treinamento automático. Também é possível configurar a frequência de treinamento. Por exemplo, você pode configurar a solução para uma versão dela a cada cinco dias.

Por padrão, todas as novas soluções usam o treinamento automático para criar uma nova versão da solução a cada 7 dias. O treinamento automático ocorre somente se você importou dados de interação em massa ou em tempo real desde o último treinamento. Isso inclui interações com itens, ou com os dados de interações com ações para soluções que usam a fórmula Next-Best-Action. O treinamento automático continua ativo até você excluir a solução. 

Recomendamos o uso do treinamento automático. Isso facilita a manutenção da sua solução. Ele elimina o treinamento manual necessário para que a solução aprenda com seus dados mais recentes. Sem o treinamento automático, você deve criar manualmente novas versões da solução para que ela aprenda com seus dados mais recentes. Isso pode resultar em recomendações obsoletas e uma taxa de conversão mais baixa. Para obter mais informações sobre a manutenção das recomendações do Amazon Personalize, consulte [Manter a relevância da recomendação](maintaining-relevance.md). 

Você pode configurar o treinamento automático com o console do Amazon Personalize e os AWS Command Line Interface SDKs (AWS CLI) ou do AWS. Para conhecer as etapas de configuração do treinamento automático com o console, consulte [Criar uma solução (console)](create-solution.md#configure-solution-console). 

Depois que você criar a solução, registre o ARN dela para uso futuro. Com o treinamento automático, a criação da versão da solução começa dentro de uma hora após a solução se tornar ATIVA. Se você criar manualmente uma versão da solução dentro desse período, ela pulará o primeiro treinamento automático. Após o início do treinamento, você poderá obter o nome do recurso da Amazon (ARN) da versão da solução com a operação de API [ListSolutionVersions](https://docs.aws.amazon.com/personalize/latest/dg/API_ListSolutionVersions.html). Para saber o status dele, use a operação [DescribeSolutionVersion](https://docs.aws.amazon.com/personalize/latest/dg/API_DescribeSolutionVersion.html). 

**Topics**
+ [

## Diretrizes e requisitos
](#auto-training-guidelines)
+ [

## Configurar o treinamento automático (AWS CLI)
](#configure-solution-auto-training-cli)
+ [

## Configurar o treinamento automático (SDKs)
](#configure-solution-auto-training-sdk)

## Diretrizes e requisitos
<a name="auto-training-guidelines"></a>

Veja abaixo as diretrizes e os requisitos para treinamento automático:
+  O treinamento automático ocorre somente se você importou dados de interação em massa ou em tempo real desde o último treinamento. Isso inclui interações com itens, ou com os dados de interações com ações para soluções que usam a fórmula Next-Best-Action. 
+ Cada treinamento considera todos os dados do grupo de conjuntos de dados que você inclui no treinamento. Para informações sobre como configurar as colunas usadas por uma solução, consulte [Configurar colunas usadas durante o treinamento](custom-config-columns.md).
+ Você ainda pode criar versões da solução manualmente.
+ O treinamento automático começa dentro de uma hora após a ativação da solução. Se você criar manualmente uma versão da solução dentro desse período, ela pulará o primeiro treinamento automático. 
+ O agendamento do treinamento é baseado na data de início do treinamento. Por exemplo, se a primeira versão da solução começar o treinamento às 19h e você usar o treinamento semanal, a próxima versão começará o treinamento uma semana depois, às 19h. 
+ Para todas as fórmulas, recomendamos uma frequência de pelos menos um treinamento por semana. Você pode especificar uma frequência entre 1 e 30 dias. O padrão são 7 dias. 
  +  Se você usar o User-Personalization-v2, o User-Personalization ou o Next-Best-Action, a solução se atualizará automaticamente para considerar novos itens ou ações de recomendações. As atualizações automáticas não são o mesmo que treinamento automático. Uma atualização automática não cria uma versão completamente nova da solução, e o modelo não aprende com seus dados mais recentes. Para manter sua solução, a frequência de treinamento ainda deve ser pelo menos uma vez por semana. Para obter mais informações sobre atualizações automáticas, incluindo diretrizes e requisitos adicionais, consulte [Atualizações automáticas](use-case-recipe-features.md#automatic-updates).
  + Se você usa o Trending-Now, o Amazon Personalize identifica automaticamente os itens mais populares em seus dados de interações em um intervalo de tempo configurável. A fórmula Trending-Now pode recomendar itens adicionados desde o último treinamento por meio de dados de interações em massa ou de streaming. Sua frequência de treinamento ainda deve ser pelo menos semanal. Para obter mais informações, consulte [Fórmula Trending-Now](native-recipe-trending-now.md).
  + Se você não usa uma fórmula com atualizações automáticas ou a fórmula Trending-Now, o Amazon Personalize considerará novos itens somente após o próximo treinamento. Por exemplo, se você usa a fórmula Similar-Items e adicionar novos itens diariamente, precisará usar uma frequência diária de treinamento automático para que esses itens apareçam nas recomendações no mesmo dia.

## Configurar o treinamento automático (AWS CLI)
<a name="configure-solution-auto-training-cli"></a>

O código a seguir mostra como criar uma solução que produz uma versão de solução a cada cinco dias. Para desativar o treinamento automático, defina `perform-auto-training` como`false`. 

Para alterar a frequência do treinamento, você pode modificar a `schedulingExpression` na `autoTrainingConfig`. A expressão deve estar no formato `rate(value unit)`. Para o valor, especifique um número inteiro entre 1 e 30. Para a unidade, especifique `day` ou `days`. 

Para conferir uma explicação completa do comando `create-solution`, consulte [Criar uma solução (AWS CLI)](create-solution.md#configure-solution-cli).

```
aws personalize create-solution \
--name solution name \
--dataset-group-arn dataset group ARN \
--recipe-arn recipe ARN \
--perform-auto-training \
--solution-config "{\"autoTrainingConfig\": {\"schedulingExpression\": \"rate(5 days)\"}}"
```

## Configurar o treinamento automático (SDKs)
<a name="configure-solution-auto-training-sdk"></a>

O código a seguir mostra como criar uma solução com treinamento automático com os AWS SDKs. A solução cria automaticamente uma versão a cada cinco dias. Para desativar o treinamento automático, defina `performAutoTraining` como`false`. 

Para alterar a frequência do treinamento, você pode modificar a `schedulingExpression` na `autoTrainingConfig`. A expressão deve estar no formato `rate(value unit)`. Para o valor, especifique um número inteiro entre 1 e 30. Para a unidade, especifique `day` ou `days`. 

Para obter uma explicação completa sobre a operação da API CreateSolution, consulte [Criar uma solução (SDKs da AWS)](create-solution.md#configure-solution-sdk).

------
#### [ SDK for Python (Boto3) ]

```
import boto3

personalize = boto3.client('personalize')

create_solution_response = personalize.create_solution(
  name = 'solution name',
  recipeArn = 'recipe ARN',
  datasetGroupArn = 'dataset group ARN',
  performAutoTraining = True,
  solutionConfig = {
    "autoTrainingConfig": {
      "schedulingExpression": "rate(5 days)"
    }
  }
)
solution_arn = create_solution_response['solutionArn']
print('solution_arn: ', solution_arn)
```

------
#### [ SDK for JavaScript v3 ]

```
import {
  CreateSolutionCommand,
  PersonalizeClient,
} from "@aws-sdk/client-personalize";

// create client
const personalizeClient = new PersonalizeClient({ region: "REGION" });

// set the solution parameters
export const solutionParam = {
  datasetGroupArn: "DATASET_GROUP_ARN" /* required */,
  recipeArn: "RECIPE_ARN" /* required */,
  name: "SOLUTION_NAME" /* required */,
  performAutoTraining: true /* optional, default is true */,
  solutionConfig: {
    autoTrainingConfig: {
      schedulingExpression:
        "rate(5 days)" /* optional, default is every 7 days */,
    },
  },
};

export const run = async () => {
  try {
    const response = await personalizeClient.send(
      new CreateSolutionCommand(solutionParam)
    );
    console.log("Success", response);
    return response; // For unit tests.
  } catch (err) {
    console.log("Error", err);
  }
};
run();
```

------

Você pode usar o código Python a seguir para aguardar o início do treinamento automático. O método `wait_for_training_to_start` retorna o ARN da primeira versão da solução.

```
import time
import boto3

def wait_for_training_to_start(new_solution_arn):
    max_time = time.time() + 3 * 60 * 60    # 3 hours
    while time.time() < max_time:
        list_solution_versions_response = personalize.list_solution_versions(
            solutionArn=new_solution_arn
        )
        solution_versions = list_solution_versions_response.get('solutionVersions', [])
        if solution_versions:
            new_solution_version_arn = solution_versions[0]['solutionVersionArn']
            print(f"Solution version ARN: {new_solution_version_arn}")
            return new_solution_version_arn
        else:
            print(f"Training hasn't started yet. Training will start within the next hour.")
            time.sleep(60)


personalize = boto3.client('personalize')

solution_arn = "solution_arn"
solution_version_arn = wait_for_training_to_start(solution_arn)
```