

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Hiperparámetros y HPO
<a name="customizing-solution-config-hpo"></a>

**importante**  
De forma predeterminada, todas las soluciones nuevas utilizan el entrenamiento automático. Con el entrenamiento automático, incurrirá en costos de entrenamiento mientras la solución esté activa. Para evitar costos innecesarios, cuando haya terminado, puede [actualizar la solución](updating-solution.md) para desactivar el entrenamiento automático. Para obtener información sobre los costos de entrenamiento, consulte [Precios de Amazon Personalize](https://aws.amazon.com/personalize/pricing/).

Debe especificar hiperparámetros antes del entrenamiento para optimizar el modelo entrenado para su caso de uso concreto. Esto contrasta con los parámetros del modelo cuyos valores se determinan durante el proceso de entrenamiento.

Los hiperparámetros se especifican con la clave `algorithmHyperParameters` que forma parte del objeto [SolutionConfig](API_SolutionConfig.md) que se pasa a la operación [CreateSolution](API_CreateSolution.md).

A continuación se muestra una versión condensada de la solicitud `CreateSolution`. El ejemplo incluye el objeto `solutionConfig`. Puede utilizar `solutionConfig` para anular los parámetros predeterminados de una receta. 

```
{
  "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"
          }
      },
  },
}
```

Las distintas recetas usan diferentes hiperparámetros. Para los hiperparámetros disponibles, consulte las recetas individuales en [Elección de una receta](working-with-predefined-recipes.md).

## Habilitación de optimización de hiperparámetros
<a name="hpo-tuning"></a>

La optimización de hiperparámetros (HPO), o su ajuste, es la tarea de elegir los hiperparámetros óptimos para alcanzar un objetivo de aprendizaje determinado. Los hiperparámetros óptimos se determinan mediante la ejecución de muchos trabajos de entrenamiento con diferentes valores de los rangos de posibilidades especificados. 

Con [User-Personalization-v2](native-recipe-user-personalization-v2.md) y [Personalized-Ranking-v2](native-recipe-personalized-ranking-v2.md), si activa el entrenamiento automático, Amazon Personalize realiza automáticamente la optimización de hiperparámetros cada 90 días. Sin un entrenamiento automático, no se produce dicha optimización. Para todas las demás recetas, debe habilitar la optimización de hiperparámetros. Para usar HPO, establezca `performHPO` en `true` e incluya el objeto `hpoConfig`.

Los hiperparámetros pueden ser categóricos o continuos o tener valores enteros. El objeto `hpoConfig` tiene claves que corresponden a cada uno de estos tipos, donde se especifican los hiperparámetros y sus rangos. Debe proporcionar cada tipo en su solicitud, pero si una receta no tiene un parámetro de un tipo, puede dejarla vacía. Por ejemplo, User-Personalization no tiene un hiperparámetro ajustable de tipo continuo. Por tanto, para el `continousHyperParameterRange`, pasaría una matriz vacía. 

El siguiente código muestran cómo crear una solución con HPO habilitado mediante el SDK para Python (Boto3). La solución del ejemplo usa la receta [Receta User-Personalization](native-recipe-new-item-USER_PERSONALIZATION.md) y tiene el HPO establecido en `true`. El código proporciona un valor para `hidden_dimension` y `categoricalHyperParameterRanges` y `integerHyperParameterRanges`. El `continousHyperParameterRange` está vacío y el `hpoResourceConfig` establece el `maxNumberOfTrainingJobs` y `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 obtener más información acerca de HPO, consulte [Ajuste de modelo automático](https://docs.aws.amazon.com/sagemaker/latest/dg/automatic-model-tuning.html). 

## Visualización de hiperparámetros
<a name="viewing-hyperparameters"></a>

Puede ver los hiperparámetros de la solución llamando a la operación [DescribeSolution](API_DescribeSolution.md). El siguiente ejemplo muestra un resultado `DescribeSolution`. Tras crear una versión de la solución (entrenando un modelo), también puede ver los hiperparámetros con la operación [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"
  }
}
```