Ottimizzare un modello - Amazon SageMaker AI

Ottimizzare un modello

L'ottimizzazione consente di addestrare un modello pre-addestrato su un nuovo set di dati senza eseguire l’addestramento da zero. Questo processo, noto anche come trasferimento dell'apprendimento, può produrre modelli accurati con set di dati più piccoli e tempi di addestramento ridotti. È possibile ottimizzare un modello se la relativa scheda mostra un attributo ottimizzabile impostato su .

JumpStart fine-tunable Image Classification - TensorFlow model

Importante

A partire dal 30 novembre 2023, la precedente esperienza Amazon SageMaker Studio ha cambiato nome in Amazon SageMaker Studio Classic. La sezione seguente è specifica per l’utilizzo dell’applicazione Studio Classic. Per informazioni sull’utilizzo dell’esperienza Studio aggiornata, consulta Amazon SageMaker Studio.

Nota

Per ulteriori informazioni sul fine-tuning dei modelli JumpStart in Studio, consulta Fine-tuning di un modello in Studio.

Ottimizzazione dell'origine dati

Quando si ottimizza un modello, è possibile utilizzare il set di dati predefinito o scegliere i propri dati, che si trovano in un bucket Amazon S3.

Per sfogliare i bucket disponibili, scegliere Trova bucket S3. Questi bucket sono limitati dalle autorizzazioni utilizzate per configurare l’account Studio Classic. È anche possibile specificare un URI Amazon S3 selezionando Inserisci posizione del bucket Amazon S3.

JumpStart data source settings with default dataset selected.

Suggerimento

Per scoprire come formattare i dati nel bucket, scegliere Ulteriori informazioni. La sezione descrittiva del modello contiene informazioni dettagliate su ingressi e uscite. 

Per i modelli di testo:

  • Il bucket deve avere un file data.csv.

  • La prima colonna deve essere un numero intero univoco per l'etichetta della classe. Ad esempio: 1, 2, 3, 4, n

  • La seconda colonna deve contenere una stringa.

  • La seconda colonna deve contenere il testo corrispondente al tipo e alla lingua del modello. 

Per i modelli di visione:

  • Il bucket deve avere tante sottodirectory quante sono le classi.

  • Ogni sottodirectory deve contenere immagini che appartengono a quella classe in formato.jpg.

Nota

Il bucket Amazon S3 deve trovarsi nella stessa Regione AWS in cui è in esecuzione SageMaker Studio Classic, poiché SageMaker AI non consente le richieste tra Regioni.

Ottimizzazione della configurazione di implementazione

La famiglia p3 è consigliata come la più veloce per l’addestramento sul deep learning e per l'ottimizzazione di un modello. La tabella seguente mostra il numero di GPU in ogni tipo di istanza. Sono disponibili altre opzioni tra cui scegliere, inclusi i tipi di istanze p2 e g4.

Tipo di istanza GPU
p3.2xlarge 1
p3.8xlarge 4
p3.16xlarge 8
p3dn.24xlarge 8

Iperparametri

È possibile personalizzare gli iperparametri del processo di addestramento utilizzati per ottimizzare il modello. Gli iperparametri disponibili per ogni modello ottimizzabile variano a seconda del modello. Per informazioni su ogni iperparametro disponibile, consultare la documentazione sugli iperparametri relativa al modello scelto. Algoritmi integrati o modelli preaddestrati in Amazon SageMaker Ad esempio, consultare Iperparametri di classificazione delle immagini - TensorFlow per i dettagli sugli iperparametri Image Classification - TensorFlow ottimizzabili.

Se si utilizza il set di dati predefinito per i modelli di testo senza modificare gli iperparametri, si ottiene come risultato un modello quasi identico. Per i modelli di visione, il set di dati predefinito è diverso dal set di dati utilizzato per addestrare i modelli pre-addestrati, quindi il modello è diverso di conseguenza.

I seguenti iperparametri sono comuni tra i modelli:

  • Epoche: un'epoca è un ciclo dell'intero set di dati. Intervalli multipli completano un batch e alla fine più batch completano un'epoca. Vengono eseguite più epoche finché la precisione del modello non raggiunge un livello accettabile o quando il tasso di errore scende al di sotto di un livello accettabile.

  • Tasso di apprendimento: la quantità di valori da modificare tra le epoche. Man mano che il modello viene perfezionato, i pesi interni vengono modificati e i tassi di errore vengono controllati per vedere se il modello migliora. Un tasso di apprendimento tipico è di 0,1 o 0,01, dove 0,01 rappresenta un aggiustamento molto inferiore e potrebbe far sì che l'addestramento richieda molto tempo per convergere, mentre 0,1 è molto più elevato e può causare un superamento dell’addestramento. È uno degli iperparametri principali che si possono modificare per addestrare il modello. Notare che, per i modelli testuali, un tasso di apprendimento molto più basso (5e-5 per BERT) può portare a un modello più accurato.

  • Dimensione batch: il numero di record del set di dati da selezionare per ogni intervallo da inviare alle GPU per l’addestramento.

    In un esempio di immagine, si potrebbero inviare 32 immagini per GPU, quindi le dimensioni del batch sarebbero pari a 32. Se si sceglie un tipo di istanza con più di una GPU, il batch viene diviso per il numero di GPU. Le dimensioni del batch consigliate variano a seconda dei dati e del modello in uso. Ad esempio, il modo in cui si ottimizzano i dati delle immagini differisce dal modo in cui si gestiscono i dati linguistici.

    Nella tabella dei tipi di istanza nella sezione relativa alla configurazione dell'implementazione, è possibile vedere il numero di GPU per tipo di istanza. Iniziare con una dimensione batch standard consigliata (ad esempio, 32 per un modello di visione). Dopodiché, moltiplicarla per il numero di GPU nel tipo di istanza selezionato. Ad esempio, se si utilizza p3.8xlarge, questo sarà pari a 32 (dimensione del batch) moltiplicato per 4 (GPU), per un totale di 128, poiché la dimensione del batch si adatta al numero di GPU. Per un modello di testo come BERT, provare a iniziare con una dimensione del batch di 64, quindi ridurla, se necessario.

Output di addestramento

Una volta completato il processo di ottimizzazione, JumpStart fornisce informazioni sul modello: modello principale, nome del processo di addestramento, ARN del processo di addestramento, tempo di addestramento e percorso di output. Il percorso di output è il percorso in cui è possibile trovare il nuovo modello in un bucket Amazon S3. La struttura delle cartelle utilizza il nome del modello che fornito dall'utente e il file del modello si trova in una sottocartella /output ed è sempre denominato model.tar.gz

Esempio: s3://bucket/model-name/output/model.tar.gz

Configurazione dei valori predefiniti per l’addestramento dei modelli

È possibile configurare i valori predefiniti per parametri come i ruoli IAM, i VPC e le chiavi KMS per precompilarli per l'implementazione e l’addestramento del modello JumpStart. Per ulteriori informazioni, consultare Configurare i valori predefiniti per i modelli JumpStart.