

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à.

# Creare un processo AutoML per eseguire il fine-tuning di modelli di generazione di testo utilizzando l’API
<a name="autopilot-create-experiment-finetune-llms"></a>

I Large Language Model (LLM) eccellono in molteplici attività generative, tra cui generazione di testo, riepilogo, completamento, risposta a domande e altro ancora. Le loro prestazioni possono essere attribuite alle loro dimensioni significative e al vasto addestramento su diversi set di dati e varie attività. Tuttavia, domini specifici, come l'assistenza sanitaria e i servizi finanziari, possono richiedere un'ottimizzazione personalizzata per adattarsi a dati e casi d'uso univoci. Adattando il loro addestramento al loro particolare dominio, gli LLM possono migliorare le loro prestazioni e fornire risultati più accurati per applicazioni mirate.

Autopilot offre la capacità di mettere a punto una selezione di modelli di testo generativi preaddestrati. In particolare, Autopilot supporta la messa a punto **basata su istruzioni di una selezione di modelli di linguaggio di** grandi dimensioni (LLM) generici basati su. JumpStart

**Nota**  
I modelli di generazione di testo che supportano la regolazione fine in Autopilot sono attualmente accessibili esclusivamente nelle regioni supportate da Canvas. SageMaker Consulta la documentazione di SageMaker Canvas per l'elenco [completo](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas.html) delle regioni supportate.

Fine-tuning un modello già addestrato richiede un set di dati specifico di istruzioni chiare che guidino il modello su come generare output o comportarsi per quell'attività. Il modello impara dal set di dati, regolandone i parametri per conformarsi alle istruzioni fornite. Instruction-based la messa a punto implica l'utilizzo di esempi etichettati formattati come coppie di pronta risposta e formulati come istruzioni. [Per ulteriori informazioni sulla messa a punto, consultate un modello di base. Fine-tune ](https://docs.aws.amazon.com/sagemaker/latest/dg/jumpstart-foundation-models-fine-tuning.html)

[Le seguenti linee guida descrivono il processo di creazione di un job Amazon SageMaker Autopilot come esperimento pilota per ottimizzare i LLM di generazione di testo utilizzando API Reference. SageMaker ](https://docs.aws.amazon.com/sagemaker/latest/dg/autopilot-reference.html)

**Nota**  
Attività come la classificazione di testo e immagini, la previsione di serie temporali e il fine-tuning di modelli linguistici di grandi dimensioni sono disponibili esclusivamente tramite la versione 2 della [REST API AutoML](autopilot-reference.md). Se il linguaggio che preferisci è Python, puoi fare riferimento [AWS SDK per Python (Boto3)](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sagemaker/client/create_auto_ml_job_v2.html)o direttamente all'oggetto [AutoMLV2 di](https://sagemaker.readthedocs.io/en/stable/api/training/automlv2.html#sagemaker.automl.automlv2.AutoMLV2) Amazon SageMaker Python SDK.  
Gli utenti che preferiscono la comodità di un'interfaccia utente possono utilizzare [Amazon SageMaker Canvas](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-getting-started.html) per accedere a modelli pre-addestrati e modelli di base di intelligenza artificiale generativa o creare modelli personalizzati su misura per testi specifici, classificazione delle immagini, esigenze di previsione o intelligenza artificiale generativa.

Per creare un esperimento Autopilot a livello di codice per la messa a punto di un LLM, puoi chiamare l'API [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJobV2.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJobV2.html)in qualsiasi lingua supportata da Amazon Autopilot o da. SageMaker AWS CLI

Per informazioni su come questa azione API si traduce in una funzione nella lingua preferita, consulta la sezione [Vedi anche](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJobV2.html#API_CreateAutoMLJobV2_SeeAlso) di `CreateAutoMLJobV2` e seleziona un SDK. Ad esempio, per gli utenti di Python, vedi la sintassi completa della richiesta di `[create\_auto\_ml\_job\_v2](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sagemaker.html#SageMaker.Client.create_auto_ml_job_v2)` in AWS SDK per Python (Boto3).

**Nota**  
Autopilot perfeziona modelli linguistici di grandi dimensioni senza richiedere l'addestramento e la valutazione di più candidati. Invece, utilizzando il tuo set di dati, Autopilot perfeziona direttamente il modello target per migliorare una metrica oggettiva predefinita, la perdita di entropia incrociata. Fine-tuning i modelli linguistici in Autopilot non richiedono l'impostazione del campo. `AutoMLJobObjective`

Una volta eseguito in fine-tuning dell’LLM, è possibile valutarne le prestazioni accedendo a vari punteggi ROUGE tramite `[BestCandidate](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CandidateProperties.html#sagemaker-Type-CandidateProperties-CandidateMetrics)` durante una chiamata API `[DescribeAutoMLJobV2](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeAutoMLJobV2.html)`. Il modello fornisce anche informazioni sul suo addestramento e la sua convalida, sulla perdita e perplessità. Per un elenco completo dei parametri di valutazione della qualità del testo generato dai modelli messi a punto, consulta [Parametri per l'ottimizzazione di modelli linguistici di grandi dimensioni in Autopilot](autopilot-llms-finetuning-metrics.md).

## Prerequisiti
<a name="autopilot-llms-finetuning-api-prerequisites"></a>

Prima di utilizzare Autopilot per creare un esperimento di ottimizzazione in SageMaker AI, assicurati di seguire i seguenti passaggi:
+ (Facoltativo) Scegli il modello preaddestrato che desideri perfezionare.

  Per l'elenco dei modelli preaddestrati disponibili per la messa a punto in SageMaker Amazon Autopilot, consulta. [Modelli linguistici di grandi dimensioni supportati per l'ottimizzazione](autopilot-llms-finetuning-models.md) La selezione di un modello non è obbligatoria; se non viene specificato alcun modello, Autopilot passa automaticamente al modello *Falcon7BInstruct*.
+ Creazione di un set di istruzioni. Consulta [Tipi di file del set di dati e formato dei dati di input](autopilot-llms-finetuning-data-format.md) per sapere di più sui requisiti di formato del tuo set di dati basato sulle istruzioni.
+ Inserisci il tuo set di dati in un bucket Amazon S3.
+ Concedi l'accesso completo al bucket Amazon S3 contenente i dati di input per il ruolo di esecuzione dell' SageMaker IA utilizzato per eseguire l'esperimento.
  + Per informazioni sul recupero del ruolo di esecuzione dell' SageMaker IA, consulta. [Acquisizione del ruolo di esecuzione](sagemaker-roles.md#sagemaker-roles-get-execution-role)
  + Per informazioni sulla concessione delle autorizzazioni del ruolo di esecuzione SageMaker AI per accedere a uno o più bucket specifici in Amazon S3, consulta Aggiungere ulteriori *autorizzazioni Amazon S3* a un ruolo di esecuzione AI in. SageMaker [Crea ruolo di esecuzione](sagemaker-roles.md#sagemaker-roles-create-execution-role)
+ Inoltre, dovresti fornire al tuo ruolo di esecuzione le autorizzazioni necessarie per accedere al bucket di storage predefinito utilizzato da Amazon S3. JumpStart Questo accesso è necessario per archiviare e recuperare gli artefatti del modello pre-addestrati in. JumpStart Per concedere l'accesso a questo bucket Amazon S3, devi creare una nuova policy personalizzata in linea sul tuo ruolo di esecuzione.

  Ecco un esempio di policy che è possibile utilizzare nell’editor JSON durante la configurazione di processi di fine-tuning di AutoML in `us-west-2`:

  *JumpStarti nomi dei bucket seguono uno schema predeterminato che dipende da. Regioni AWS Di conseguenza è necessario modificare il nome del bucket.* 

  ```
  {
      "Sid": "Statement1",
      "Effect": "Allow",
      "Action": [
          "s3:GetObject",
          "s3:PutObject",
          "s3:ListBucket"
      ],
      "Resource": [
          "arn:aws:s3:::jumpstart-cache-prod-{{us-west-2}}",
          "arn:aws:s3:::jumpstart-cache-prod-{{us-west-2/*}}"
      ]
  }
  ```

Fatto ciò, è possibile utilizzare l'ARN di questo ruolo di esecuzione nelle richieste API Autopilot.

## Parametri obbligatori
<a name="autopilot-llms-finetuning-api-required-params"></a>

Durante una chiamata a `[CreateAutoMLJobV2](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJobV2.html)` per creare un esperimento Autopilot per il fine-tuning degli LLM, è necessario fornire i seguenti valori:
+ Un `[AutoMLJobName](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJobV2.html#API_CreateAutoMLJobV2_RequestSyntax)` per specificare il nome del processo. Il nome deve essere di tipo `string` con una lunghezza minima di 1 carattere e una lunghezza massima di 32.
+ Almeno un `[AutoMLJobChannel](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLJobChannel.html)` del tipo `training` incluso in `[AutoMLJobInputDataConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJobV2.html#sagemaker-CreateAutoMLJobV2-request-AutoMLJobInputDataConfig)`. Questo canale specifica il nome del bucket Amazon S3 in cui è archiviato il set di dati per l'ottimizzazione dei processi. Hai la possibilità di definire un canale `validation`. Se non viene fornito alcun canale di convalida e un `ValidationFraction` è configurato in [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLDataSplitConfig.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLDataSplitConfig.html), questa frazione viene utilizzata per dividere casualmente il set di dati di addestramento in set di addestramento e convalida. Inoltre, per il set di dati è possibile specificare il tipo di contenuto (file CSV o Parquet).
+ Un `[AutoMLProblemTypeConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJobV2.html#sagemaker-CreateAutoMLJobV2-request-AutoMLProblemTypeConfig)` del tipo `[TextGenerationJobConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_TextGenerationJobConfig.html)` per configurare le impostazioni del job di addestramento.

  In particolare, è possibile specificare il nome del modello base da ottimizzare nel campo `BaseModelName`. Per l'elenco dei modelli preaddestrati disponibili per la messa a punto in SageMaker Amazon Autopilot, consulta. [Modelli linguistici di grandi dimensioni supportati per l'ottimizzazione](autopilot-llms-finetuning-models.md)
+ Un `[OutputDataConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLOutputDataConfig.html)` per specificare il percorso di output di Amazon S3 per archiviare gli artefatti del processo AutoML.
+ Un `[RoleArn](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJob.html#sagemaker-CreateAutoMLJob-request-RoleArn)` per specificare l'ARN del ruolo utilizzato per accedere ai dati.

Di seguito è riportato un esempio del formato di richiesta completo utilizzato quando si effettua una chiamata API a `CreateAutoMLJobV2` per il fine-tuning di un modello (`Falcon7BInstruct`).

```
{
   "AutoMLJobName": "<job_name>",
   "AutoMLJobInputDataConfig": [ 
      { 
         "ChannelType": "training",
         "CompressionType": "None",
         "ContentType": "text/csv", 
         "DataSource": { 
            "S3DataSource": { 
               "S3DataType": "S3Prefix",
               "S3Uri": "s3://<bucket_name>/<input_data>.csv"
            }
         }
      }
   ],
  "OutputDataConfig": {
      "S3OutputPath": "s3://<bucket_name>/output",
      "KmsKeyId": "arn:aws:kms:<region>:<account_id>:key/<key_value>"
   },
   "RoleArn":"arn:aws:iam::<account_id>:role/<sagemaker_execution_role_name>",
   "AutoMLProblemTypeConfig": {
        "TextGenerationJobConfig": {
            "BaseModelName": "Falcon7BInstruct"
       }
   }
}
```

Tutti gli altri parametri sono facoltativi.

## Parametri facoltativi
<a name="autopilot-llms-finetuning-api-optional-params"></a>

Le sezioni seguenti forniscono dettagli su alcuni parametri facoltativi che è possibile passare al processo AutoML di ottimizzazione.

### Come specificare i set di dati di addestramento e convalida di un processo AutoML
<a name="autopilot-llms-finetuning-data-training-or-validation"></a>

È possibile fornire il proprio set di dati di convalida e un rapporto di suddivisione dei dati personalizzato oppure lasciare che Autopilot suddivida automaticamente il set di dati.

Ogni [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLJobChannel.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLJobChannel.html)oggetto (vedi il parametro richiesto [AutoMLJobInputDataConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJobV2.html#sagemaker-CreateAutoMLJobV2-request-AutoMLJobInputDataConfig)) ha un valore`ChannelType`, che può essere impostato su uno `training` o più `validation` valori che specificano come utilizzare i dati durante la creazione di un modello di apprendimento automatico.

È necessario fornire almeno un'origine dati ed è consentito un massimo di due origine dati: una per i dati di addestramento e una per i dati di convalida. Il modo in cui suddividere i dati in set di dati di addestramento e convalida dipende dalla presenza di una o due origine dati. 
+ Se disponi di **una origine dati**, `ChannelType` è impostato su `training` come impostazione predefinita e deve avere questo valore.
  + Se il valore `ValidationFraction` in [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLDataSplitConfig.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLDataSplitConfig.html) non è impostato, per impostazione predefinita viene utilizzato per la convalida lo 0,2 (20%) dei dati di questa origine. 
  + Se `ValidationFraction` è impostato su un valore compreso tra 0 e 1, il set di dati viene suddiviso in base al valore specificato, dove il valore specifica la frazione del set di dati utilizzata per la convalida.
+ Se si dispone di **due origini dati**, per impostazione predefinita il `ChannelType` di uno degli oggetti `AutoMLJobChannel` deve essere impostato su `training`. Il `ChannelType` dell'altra origine dati deve essere impostato su `validation`. Le due origine dati devono avere lo stesso formato, CSV o Parquet, e lo stesso schema. In questo caso non è necessario impostare `ValidationFraction` perché tutti i dati di ciascuna origine vengono utilizzati per l'addestramento o la convalida. L'impostazione di questo valore causa un errore.

### Come abilitare l'implementazione automatica
<a name="autopilot-llms-finetuning-auto-model-deployment"></a>

Autopilot consente di implementare automaticamente un modello ottimizzato con fine-tuning su un endpoint. Per abilitare l'implementazione automatica sul tuo modello ottimizzato, includi un `[ModelDeployConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJobV2.html#sagemaker-CreateAutoMLJobV2-request-ModelDeployConfig)` nella richiesta di processo di AutoML. Ciò consente l'implementazione del modello ottimizzato su un SageMaker endpoint di intelligenza artificiale. Di seguito sono riportate le configurazioni disponibili per la personalizzazione.
+ Per consentire ad Autopilot di generare il nome dell'endpoint, imposta `[AutoGenerateEndpointName](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ModelDeployConfig.html#API_ModelDeployConfig_Contents)` su `True`.
+ Per fornire il tuo nome per l'endpoint, imposta `[AutoGenerateEndpointName](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ModelDeployConfig.html#API_ModelDeployConfig_Contents) to False and provide a name of your choice in [EndpointName](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ModelDeployConfig.html#API_ModelDeployConfig_Contents)`.

### Come impostare l’accettazione dell’EULA durante il fine-tuning di un modello utilizzando l’API AutoML
<a name="autopilot-llms-finetuning-set-eula"></a>

Per i modelli che richiedono l’accettazione di un contratto di licenza con l’utente finale prima del fine-tuning, è possibile accettare l’EULA impostando l’attributo `AcceptEula` di `[ModelAccessConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ModelAccessConfig.html)` su `True` in `[TextGenerationJobConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_TextGenerationJobConfig.html)` durante la configurazione di `[AutoMLProblemTypeConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJobV2.html#sagemaker-CreateAutoMLJobV2-request-AutoMLProblemTypeConfig)`.

### Come impostare gli iperparametri per ottimizzare il processo di apprendimento di un modello
<a name="autopilot-llms-finetuning-set-hyperparameters"></a>

È possibile ottimizzare il processo di apprendimento del modello di generazione del testo impostando i valori degli iperparametri nell’attributo `TextGenerationHyperParameters` di `[TextGenerationJobConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_TextGenerationJobConfig.html)` durante la configurazione di `[AutoMLProblemTypeConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJobV2.html#sagemaker-CreateAutoMLJobV2-request-AutoMLProblemTypeConfig)`.

Autopilot consente l’impostazione di quattro iperparametri comuni per tutti i modelli.
+ `epochCount`: il suo valore deve essere una stringa contenente un valore intero compreso nell’intervallo tra `1` e `10`.
+ `batchSize`: il suo valore deve essere una stringa contenente un valore intero compreso nell’intervallo tra `1` e `64`.
+ `learningRate`: il suo valore deve essere una stringa contenente un valore in virgola mobile compreso nell’intervallo tra `0` e `1`.
+ `learningRateWarmupSteps`: il suo valore deve essere una stringa contenente un valore intero compreso nell’intervallo tra `0` e `250`.

Per ulteriori dettagli su ciascun iperparametro, consulta [Iperparametri per ottimizzare il processo di apprendimento dei modelli di generazione di testo](autopilot-llms-finetuning-hyperparameters.md).

Il seguente esempio JSON mostra un `TextGenerationHyperParameters` campo passato al punto in TextGenerationJobConfig cui sono configurati tutti e quattro gli iperparametri.

```
"AutoMLProblemTypeConfig": {
  "TextGenerationJobConfig": {
    "BaseModelName": "Falcon7B",
    "TextGenerationHyperParameters": {"epochCount":"5", "learningRate":"0.000001", "batchSize": "32", "learningRateWarmupSteps": "10"}
  }
}
```