Hiperparámetros y HPO - Amazon Personalize

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

importante

Después de crear una solución, no puede cambiar su configuración. De forma predeterminada, todas las soluciones nuevas utilizan el entrenamiento automático. Con la formación automática, incurrirá en costes de formación mientras la solución esté activa. Para evitar costes innecesarios, asegúrese de eliminar la solución cuando haya terminado. Para obtener información sobre los costes de formación, consulta los precios de Amazon Personalize.

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 que se pasa a la operación CreateSolution.

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.

Habilitación de optimización de hiperparámetros

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 y Personalized-Ranking-v2, si activa la formación automática, Amazon Personalize realiza automáticamente la HPO cada 90 días. Sin un entrenamiento automático, no se produce ningún HPO. Para todas las demás recetas, debe habilitar el HPO. 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 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.

Visualización de hiperparámetros

Puede ver los hiperparámetros de la solución llamando a la operación DescribeSolution. 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.

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