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

Dopo aver creato una soluzione, non è possibile modificarne la configurazione. 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, assicuratevi di eliminare la soluzione quando avete finito. 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 dell'iperparametro (Hyperparameter optimization, HPO), o regolazione, è l'attività di scelta degli 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 esegue automaticamente HPO ogni 90 giorni. Senza l'addestramento automatico, non si verifica alcun HPO. Per tutte le altre ricette, è necessario abilitare HPO. Per usare HPO, impostare performHPO su true e includere l'oggetto hpoConfig.

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. È necessario fornire ogni tipo nella richiesta, ma se una ricetta non ha un parametro di un tipo, è possibile 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 abilitato utilizzando l'SDK for Python (Boto3). La soluzione nell'esempio utilizza la Ricetta per la personalizzazione dell'utente ricetta e ha HPO impostato su. true Il codice fornisce un valore per hidden_dimension e. categoricalHyperParameterRanges integerHyperParameterRanges 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 su HPO, 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" } }