Hyperparamètres et HPO - Amazon Personalize

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Hyperparamètres et HPO

Important

Par défaut, toutes les nouvelles solutions utilisent l'entraînement automatique. Avec la formation automatique, vous encourez des frais de formation pendant que votre solution est active. Pour éviter des coûts inutiles, lorsque vous avez terminé, vous pouvez mettre à jour la solution pour désactiver l'entraînement automatique. Pour plus d'informations sur les coûts de formation, consultez la tarification d'Amazon Personalize.

Vous spécifiez les hyperparamètres avant l'entraînement afin d'optimiser le modèle entraîné pour votre cas d'utilisation particulier. Ils sont différents des paramètres de modèle, dont la valeur est déterminée au cours du processus de formation.

Les hyperparamètres sont spécifiés en utilisant la clé algorithmHyperParameters qui fait partie de l'objet SolutionConfig qui est transmis à l'opération CreateSolution.

Une version condensée de la CreateSolution demande se trouve ci-dessous. L'exemple inclut l'solutionConfigobjet. Vous pouvez l'solutionConfigutiliser pour remplacer les paramètres par défaut d'une recette.

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

Différentes recettes utilisent différents hyperparamètres. Pour les hyperparamètres disponibles, consultez les recettes individuelles dans Choisir une recette.

Activation de l'optimisation des hyperparamètres

L'optimisation des hyperparamètres (HPO), ou réglage, consiste à choisir les hyperparamètres optimaux pour un objectif d'apprentissage spécifique. Les hyperparamètres optimaux sont déterminés en exécutant de nombreuses tâches de formation à l'aide des valeurs différentes depuis les plages de possibilités spécifiées.

Avec User-Personalization-v2 et Personalized-Ranking-v2, si vous activez la formation automatique, Amazon Personalize s'exécute automatiquement tous les 90 jours. HPO Sans entraînement automatique, rien ne HPO se produit. Pour toutes les autres recettes, vous devez activerHPO. Pour utiliserHPO, définissez performHPO et incluez l'hpoConfigobjet. true

Les hyperparamètres peuvent être catégoriques, continus ou à valeurs entières. L'objet hpoConfig comporte les clés qui correspondent à chacun de ces types, où vous spécifiez les hyperparamètres et leurs plages. Vous devez fournir chaque type dans votre demande, mais si une recette n'a pas de paramètre de type, vous pouvez le laisser vide. Par exemple, User-Personalization ne possède pas d'hyperparamètre réglable de type continu. Donc, pour lecontinousHyperParameterRange, vous devez transmettre un tableau vide.

Le code suivant montre comment créer une solution HPO activée à l'aide de SDK for Python (Boto3). La solution de l'exemple utilise la Recette de personnalisation par l'utilisateur recette et est HPO définie surtrue. Le code fournit une valeur pour hidden_dimension et le categoricalHyperParameterRanges etintegerHyperParameterRanges. Le continousHyperParameterRange est vide et hpoResourceConfig définit le maxNumberOfTrainingJobs etmaxParallelTrainingJobs.

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

Pour plus d'informationsHPO, voir Réglage automatique du modèle.

Affichage des hyperparamètres

Vous pouvez afficher les hyperparamètres de la solution en appelant l'DescribeSolutionopération. L'exemple suivant montre une DescribeSolution sortie. Après avoir créé une version de solution (entraînement d'un modèle), vous pouvez également afficher les hyperparamètres associés à l'DescribeSolutionVersionopération.

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