

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

# Hiperparâmetros e HPO
<a name="customizing-solution-config-hpo"></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/).

Especifique hiperparâmetros antes do treinamento para otimizar o modelo treinado para seu caso de uso específico. Isso é diferente dos parâmetros de modelos, em que os valores são determinados durante o processo de treinamento.

Os hiperparâmetros são especificados usando a chave `algorithmHyperParameters`, parte do objeto [SolutionConfig](API_SolutionConfig.md), que é passada para a operação [CreateSolution](API_CreateSolution.md).

Veja abaixo uma versão resumida da solicitação `CreateSolution`. O exemplo inclui o objeto `solutionConfig`. Use `solutionConfig` para substituir os parâmetros padrão de uma fórmula. 

```
{
  "name": "string",
  "recipeArn": "string",
  "eventType": "string",
  "solutionConfig": {
      "optimizationObjective": {
          "itemAttribute": "string",
          "objectiveSensitivity": "string"
      },
      "eventValueThreshold": "string",
      "featureTransformationParameters": {
          "string" : "string"
      },
      "algorithmHyperParameters": {
          "string" : "string"
      },
      "hpoConfig": {
          "algorithmHyperParameterRanges": {
              ...
          },
          "hpoResourceConfig": {
              "maxNumberOfTrainingJobs": "string",
              "maxParallelTrainingJobs": "string"
          }
      },
  },
}
```

Fórmulas diferentes usam hiperparâmetros diferentes. Para ver os hiperparâmetros disponíveis, consulte as fórmulas individuais em [Escolher uma fórmula](working-with-predefined-recipes.md).

## Habilitar otimização de hiperparâmetros
<a name="hpo-tuning"></a>

A otimização de hiperparâmetros (HPO), ou ajuste, é a tarefa de escolher hiperparâmetros ideais para um determinado objetivo de aprendizagem. Os hiperparâmetros ideais são determinados pela execução de vários trabalhos de treinamento, usando valores diferentes dos intervalos de possibilidades especificados. 

Com a fórmula [User-Personalization-v2](native-recipe-user-personalization-v2.md) e o [Personalized-Ranking-v2](native-recipe-personalized-ranking-v2.md), se você ativar o treinamento automático, o Amazon Personalize executará automaticamente o HPO a cada 90 dias. Sem treinamento automático, não ocorre nenhum HPO. Para todas as outras fórmulas, você deve habilitar o HPO. Para usar HPO, defina `performHPO` como `true`, e inclua o objeto `hpoConfig`.

Os hiperparâmetros podem ser categóricos, contínuos ou de valor inteiro. O objeto `hpoConfig` tem chaves que correspondem a cada um desses tipos, em que você especifica os hiperparâmetros e os intervalos deles. Você deve fornecer cada tipo em sua solicitação, mas se uma fórmula não tiver um parâmetro de um tipo, você pode deixá-la vazia. Por exemplo, User-Personalization não tem um hiperparâmetro ajustável do tipo contínuo. Então, para o `continousHyperParameterRange`, você passaria uma matriz vazia. 

O código a seguir mostra como criar uma solução com HPO ativada usando o SDK para Python (Boto3). A solução no exemplo usa a fórmula [Fórmula User-Personalization](native-recipe-new-item-USER_PERSONALIZATION.md) e tem a HPO definida como `true`. O código fornece um valor para `hidden_dimension`, `categoricalHyperParameterRanges` e `integerHyperParameterRanges`. O `continousHyperParameterRange` está vazio e `hpoResourceConfig` define o `maxNumberOfTrainingJobs` e `maxParallelTrainingJobs`. 

```
import boto3

personalize = boto3.client('personalize')

create_solution_response = personalize.create_solution(
    name = "solution name",
    datasetGroupArn = 'arn:aws:personalize:region:accountId:dataset-group/datasetGroupName',
    recipeArn = 'arn:aws:personalize:::recipe/aws-user-personalization',
    performHPO = True,
    solutionConfig = {
        "algorithmHyperParameters": {
          "hidden_dimension": "55"
        },
        "hpoConfig": {
          "algorithmHyperParameterRanges": {
              "categoricalHyperParameterRanges": [
                  {
                      "name": "recency_mask",
                      "values": [ "true", "false"]
                  }
              ],
              "integerHyperParameterRanges": [
                  {
                      "name": "bptt",
                      "minValue": 2,
                      "maxValue": 22
                  }
              ],
              "continuousHyperParameterRanges": [

              ]
          },
          "hpoResourceConfig": {
              "maxNumberOfTrainingJobs": "4",
              "maxParallelTrainingJobs": "2"
          }
        }
    }
)
```

Para obter mais informações sobre HPO, consulte [Ajuste automático de modelos](https://docs.aws.amazon.com/sagemaker/latest/dg/automatic-model-tuning.html). 

## Visualizar hiperparâmetros
<a name="viewing-hyperparameters"></a>

Você pode visualizar os hiperparâmetros da solução chamando a operação [DescribeSolution](API_DescribeSolution.md). O exemplo a seguir mostra uma saída `DescribeSolution`. Depois de criar uma versão da solução (treinar um modelo), você também pode visualizar hiperparâmetros com a operação [DescribeSolutionVersion](API_DescribeSolutionVersion.md).

```
{
  "solution": {
    "name": "hpo_coonfig_solution",
    "solutionArn": "arn:aws:personalize:region:accountId:solution/solutionName",
    "performHPO": true,
    "performAutoML": false,
    "recipeArn": "arn:aws:personalize:::recipe/aws-user-personalization",
    "datasetGroupArn": "arn:aws:personalize:region:accountId:dataset-group/datasetGroupName",
    "eventType": "click",
    "solutionConfig": {
      "hpoConfig": {
        "hpoResourceConfig": {
          "maxNumberOfTrainingJobs": "4",
          "maxParallelTrainingJobs": "2"
        },
        "algorithmHyperParameterRanges": {
          "integerHyperParameterRanges": [
            {
              "name": "training.bptt",
              "minValue": 2,
              "maxValue": 22
            }
          ],
          "continuousHyperParameterRanges": [],
          "categoricalHyperParameterRanges": [
            {
              "name": "data.recency_mask",
              "values": [
                "true",
                "false"
              ]
            }
          ]
        }
      },
      "algorithmHyperParameters": {
        "hidden_dimension": "55"
      }
    },
    "status": "ACTIVE",
    "creationDateTime": "2022-07-08T12:12:48.565000-07:00",
    "lastUpdatedDateTime": "2022-07-08T12:12:48.565000-07:00"
  }
}
```