Iperparametri e HPO - Amazon Personalize

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Iperparametri e HPO

Importante

Per impostazione predefinita, tutte le nuove soluzioni utilizzano la formazione automatica. Con la formazione automatica, si sostengono costi di formazione mentre la soluzione è attiva. Per evitare costi inutili, al termine è possibile aggiornare la soluzione per disattivare la formazione automatica. Per informazioni sui costi di formazione, consulta i prezzi di Amazon Personalize.

È necessario specificare gli iperparametri prima dell'addestramento per ottimizzare il modello addestrato per il caso d'uso specifico. Questo è in contrasti con i parametri del modello i cui valori sono determinati durante il processo di addestramento.

Gli iperparametri vengono specificati utilizzando la chiave algorithmHyperParameters che fa parte dell'oggetto SolutionConfig passato all'operazione CreateSolution.

Di seguito è riportata una versione ridotta della CreateSolution richiesta. L'esempio include l'solutionConfigoggetto. Si usa solutionConfig per sovrascrivere i parametri predefiniti di una ricetta.

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

Diverse ricette utilizzano iperparametri diversi. Per gli iperparametri disponibili, consulta le singole ricette Scegliere una ricetta.

Abilitare l'ottimizzazione degli iperparametri

L'ottimizzazione degli iperparametri (HPO), o ottimizzazione, è il compito di scegliere gli iperparametri ottimali per uno specifico obiettivo di apprendimento. Gli iperparametri ottimali vengono determinati eseguendo vari processi di addestramento utilizzando valori diversi degli intervalli di possibilità specificati.

Con User-Personalization-v2 e Personalized-Ranking-v2, se attivi la formazione automatica, Amazon Personalize viene eseguito automaticamente ogni 90 giorni. HPO Senza formazione automatica, HPO non si verifica nulla. Per tutte le altre ricette, è necessario abilitareHPO. Per utilizzare HPOtrue, performHPO impostare e includere l'hpoConfigoggetto.

Gli iperparametri possono essere di tipo categorico, continuo o a valori interi. L'oggetto hpoConfig ha chiavi che corrispondono a ciascuno di questi tipi, dove vengono specificati gli iperparametri e i relativi intervalli. Devi fornire ogni tipo nella tua richiesta, ma se una ricetta non ha un parametro di un tipo, puoi lasciarla vuota. Ad esempio, User-Personalization non dispone di un iperparametro regolabile di tipo continuo. Quindi, per ilcontinousHyperParameterRange, dovresti passare un array vuoto.

Il codice seguente mostra come creare una soluzione con HPO enabled usando SDK for Python (Boto3). La soluzione nell'esempio utilizza la Ricetta di personalizzazione dell'utente ricetta ed è impostata HPO su. true Il codice fornisce un valore per hidden_dimension categoricalHyperParameterRanges eintegerHyperParameterRanges. continousHyperParameterRangeè vuoto e hpoResourceConfig imposta maxNumberOfTrainingJobs emaxParallelTrainingJobs.

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

Per ulteriori informazioni suHPO, vedere Ottimizzazione automatica del modello.

Visualizzazione degli iperparametri

È possibile visualizzare gli iperparametri della soluzione chiamando l'DescribeSolutionoperazione. L'esempio seguente mostra un DescribeSolution output. Dopo aver creato una versione della soluzione (addestramento di un modello), è inoltre possibile visualizzare gli iperparametri DescribeSolutionVersion durante l'operazione.

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