

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 modelli linguistici di grandi dimensioni (LLMs) eccellono in molteplici attività generative, tra cui la generazione di testo, il riepilogo, il completamento, la risposta alle 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 la loro formazione al loro settore specifico, LLMs 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** per uso generico () basati su. LLMs 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.

L'ottimizzazione di un modello già addestrato richiede un set di dati specifico di istruzioni chiare che guidino il modello su come generare risultati o comportarsi per quell'attività. Il modello impara dal set di dati, regolandone i parametri in base alle istruzioni fornite. Il fine-tuning basato su istruzioni implica l’utilizzo di esempi etichettati formattati come prompt, coppie di risposta e formulati come istruzioni. Per ulteriori informazioni sul fine-tuning, consulta la pagina relativa al [fine-tuning di un modello di fondazione](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 la generazione di testo utilizzando l'API Reference. LLMs 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'[MLV2 oggetto Auto dell'SDK](https://sagemaker.readthedocs.io/en/stable/api/training/automlv2.html#sagemaker.automl.automlv2.AutoMLV2) Amazon SageMaker Python.  
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 i tuoi set di dati, Autopilot perfeziona direttamente il modello di destinazione per migliorare un parametro oggettivo predefinito, la perdita di entropia incrociata. L'ottimizzazione dei modelli linguistici in Autopilot non richiede 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 dell'intelligenza artificiale, assicurati di eseguire i seguenti passaggi: SageMaker 
+ (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 Falcon7. BInstruct*
+ 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 per il 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 obbligatorio [Auto MLJob InputDataConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJobV2.html#sagemaker-CreateAutoMLJobV2-request-AutoMLJobInputDataConfig)) ha un`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"}
  }
}
```