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

Une fois que vous avez créé une solution, vous ne pouvez pas modifier sa configuration. 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, veillez à supprimer la solution lorsque vous avez terminé. 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 d'hyperparamètres (HPO, Hyperparameter Optimization) ou leur 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 effectue automatiquement le HPO tous les 90 jours. Sans entraînement automatique, aucun HPO ne se produit. Pour toutes les autres recettes, vous devez activer HPO. Pour utiliser HPO, définissez performHPO sur true, et incluez l'objet hpoConfig.

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 avec HPO activé à l'aide du SDK pour Python (Boto3). La solution de l'exemple utilise la Recette de personnalisation par l'utilisateur recette et HPO est défini sur. true 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'informations sur le HPO, consultez la section 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" } }