Hiperparâmetros e HPO - Amazon Personalize

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

Importante

Por padrão, todas as novas soluções usam treinamento automático. Com o treinamento automático, você incorre em custos de treinamento enquanto sua solução está ativa. Para evitar custos desnecessários, ao terminar, você poderá atualizar a solução para desativar o treinamento automático. Para obter informações sobre custos de treinamento, consulte os preços do Amazon Personalize.

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, que é passada para a operação CreateSolution.

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.

Habilitar otimização de hiperparâmetros

A otimização de hiperparâmetros (HPO), ou ajuste, é a tarefa de escolher hiperparâmetros ideais para um objetivo de aprendizado específico. 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 o User-Personalization-V2 e o Personalized-Ranking-V2, se você ativar o treinamento automático, o Amazon Personalize funciona automaticamente a cada 90 dias. HPO Sem treinamento automático, nada HPO ocorre. Para todas as outras receitas, você deve habilitarHPO. Para usar HPOtrue, performHPO definir e incluir o hpoConfig objeto.

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 HPO habilitada usando o SDK for Python (Boto3). A solução no exemplo usa a Fórmula User-Personalization receita e foi HPO definida comotrue. 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 sobreHPO, consulte Ajuste automático do modelo.

Visualizar hiperparâmetros

Você pode visualizar os hiperparâmetros da solução chamando a operação DescribeSolution. 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.

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