

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
<a name="customizing-solution-config-hpo"></a>

**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](updating-solution.md) per disattivare la formazione automatica. Per informazioni sui costi di formazione, consulta i prezzi di [Amazon Personalize](https://aws.amazon.com/personalize/pricing/).

È 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](API_SolutionConfig.md) passato all'operazione [CreateSolution](API_CreateSolution.md).

Di seguito è riportata una versione ridotta della `CreateSolution` richiesta. L'esempio include l'`solutionConfig`oggetto. 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](working-with-predefined-recipes.md).

## Abilitare l'ottimizzazione degli iperparametri
<a name="hpo-tuning"></a>

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](native-recipe-user-personalization-v2.md) e [Personalized-Ranking-v2, se attivi la formazione automatica, Amazon](native-recipe-personalized-ranking-v2.md) 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 il`continousHyperParameterRange`, 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](native-recipe-new-item-USER_PERSONALIZATION.md) ricetta e ha HPO impostato su. `true` Il codice fornisce un valore per `hidden_dimension` e. `categoricalHyperParameterRanges` `integerHyperParameterRanges` `continousHyperParameterRange`è vuoto e `hpoResourceConfig` imposta `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"
          }
        }
    }
)
```

Per ulteriori informazioni su HPO, vedere [Ottimizzazione automatica del modello](https://docs.aws.amazon.com/sagemaker/latest/dg/automatic-model-tuning.html). 

## Visualizzazione degli iperparametri
<a name="viewing-hyperparameters"></a>

È possibile visualizzare gli iperparametri della soluzione chiamando l'[DescribeSolution](API_DescribeSolution.md)operazione. L'esempio seguente mostra un `DescribeSolution` output. Dopo aver creato una versione della soluzione (addestramento di un modello), è inoltre possibile visualizzare gli iperparametri [DescribeSolutionVersion](API_DescribeSolutionVersion.md) 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"
  }
}
```