Risorse/Addestramento del modello/Cosa accade durante l'addestramento

Impostazione

Iperparametri

Gli iperparametri sono le impostazioni di addestramento da Lei scelte, come le epoche, il tasso di apprendimento, la dimensione del batch e il rango dell'adattatore, in contrapposizione ai pesi che il modello apprende. Auto li seleziona dai Suoi dati ed effettua una prima esecuzione ottimale; questa pagina illustra ciascun iperparametro per consentirLe di perfezionarli successivamente.

Capitolo 6Lettura di 6 min4 riferimenti

Parametri e iperparametri

I parametri di un modello, i suoi pesi, vengono appresi: è l'addestramento a definirli. Gli iperparametri vengono impostati dall'utente prima dell'inizio dell'addestramento e controllano come avviene tale apprendimento: quante volte i dati vengono esaminati, quanto è grande ogni aggiornamento, quanti esempi sono inclusi in ogni aggiornamento, quanto è grande un adattatore. L'addestramento non può trovare buoni iperparametri da solo. È l'utente a trovarli eseguendo, misurando e regolando; ecco perché un valore predefinito sensato e un modo chiaro di leggere i risultati contano più di una prima ipotesi perfetta.

Le impostazioni

EpocheTipico 1–3 (preference tuning 1–2)#

Quanti passaggi completi compie l'addestramento sui dati. Troppo pochi e il modello cambia a malapena; troppi e inizia a riprodurre gli esempi parola per parola (overfitting), il che si manifesta con un aumento della loss di validazione mentre la loss di addestramento continua a diminuire. I dataset di piccole dimensioni possono sopportare qualche epoca in più; quelli grandi spesso ne richiedono solo una. Il preference tuning di solito necessita di meno epoche rispetto all'addestramento supervisionato. Inoltre, ogni epoca si aggiunge al costo.

Tasso di apprendimento / moltiplicatoreTipico Predefinito del provider (× 0,5–2)#

L'entità di ogni aggiornamento dei pesi. È l'impostazione più sensibile: se è troppo alta, gli aggiornamenti vanno oltre il limite, la perdita diventa irregolare e il modello può perdere le competenze acquisite; se è troppo bassa, l'esecuzione termina prima che il modello abbia imparato a sufficienza. I modelli in hosting spesso espongono un moltiplicatore invece di un tasso assoluto: il tasso predefinito del provider per quel modello e per i Suoi dati viene moltiplicato per il valore inserito, quindi 1 mantiene il valore predefinito, 2 lo raddoppia e 0,5 lo dimezza. I modelli aperti accettano un tasso assoluto, come circa 1e-4 per un adattatore LoRA o 1e-5 per un fine-tuning completo.

Dimensione del batchTipico Auto#

Quanti esempi vengono mediati in ogni aggiornamento dei pesi. I batch più grandi offrono aggiornamenti più fluidi e affidabili, ma in numero minore per epoca, e richiedono più memoria; i batch più piccoli si aggiornano più spesso ma con maggiore rumore. Quando si modifica la dimensione del batch, è opportuno riconsiderare anche il tasso di apprendimento: un batch più grande di solito tollera, e necessita di, un tasso maggiore. Su un dataset di piccole dimensioni, un batch molto grande lascia troppi pochi passaggi da cui apprendere.

Rango LoRA / dimensione dell'adattatoreTipico 4–16#

Per l'addestramento degli adattatori su modelli aperti. Il rango delle due piccole matrici che LoRA addestra accanto a ogni livello, il quale stabilisce quanto l'adattatore può apprendere. Un rango di 4–16 è sufficiente per tono, stile e formato; dataset più ampi e ricchi di conoscenze possono richiederne uno maggiore. Ranghi più elevati costano di più in termini di memoria e tempo, e smettono di essere utili una volta che l'adattatore ha capacità sufficiente. La pagina LoRA tratta alfa, moduli di destinazione e dropout.

Step di warm-upTipico 0–10% degli step#

Per i primi step di addestramento, il tasso di apprendimento aumenta da quasi zero al suo valore massimo invece di iniziare a piena potenza. Nelle fasi iniziali, le statistiche in esecuzione dell'ottimizzatore si basano su pochissimi gradienti, quindi step di dimensioni massime rischiano di causare una prima mossa errata; un breve warm-up evita un avvio instabile. Viene indicato come numero di step o come percentuale di tutti gli step. Dopo il warm-up, il tasso di solito decade verso lo zero per il resto dell'esecuzione.

WARM-UPpicco del tasso di apprendimentodecadimento cosinusoidaledecadimento linearetasso di apprendimentostep di addestramento →010%100%
Una tipica pianificazione del tasso di apprendimento. Il warm-up incrementa il tasso da quasi zero al suo picco durante i primissimi step, in modo che i primi aggiornamenti, più rumorosi, siano di piccola entità. Il tasso diminuisce poi verso lo zero, seguendo una curva cosinusoidale o una linea retta, in modo che gli ultimi aggiornamenti apportino regolazioni di precisione anziché grandi salti.

Come interagiscono le impostazioni

Se si modificaConsiderare anchePerché
Più epocheUn tasso di apprendimento più basso; osservare la perdita di validazionePiù passaggi e step ampi combinati aggravano l'overfitting
Un batch più grandeUn tasso di apprendimento più altoCi sono meno step, ma più affidabili, per epoca
Un dataset più piccoloUn batch più piccolo; possibilmente qualche epoca in piùAltrimenti ci sono troppi pochi step da cui apprendere
LoRA invece del fine-tuning completoUn tasso di apprendimento più alto, circa 10×L'adattatore parte da zero e il suo output viene scalato per alfa ÷ r
Tuning delle preferenze dopo quello supervisionatoMeno epoche e un tasso di apprendimento più bassoPerfeziona un modello funzionante; step ampi lo fanno deviare

Un ordine pratico per il tuning

  1. Eseguire una volta su Auto. È una base di partenza ragionevole e mostra cosa seleziona il provider per i Suoi dati.
  2. Leggere le curve di perdita. La perdita di validazione aumenta presto: meno epoche o un tasso di apprendimento più basso. Entrambe le perdite continuano a scendere alla fine: più epoche. Nessuna delle due si muove: controllare prima i dati, poi provare un tasso di apprendimento più alto.
  3. Valutare rispetto al modello di base, non solo la perdita. Una perdita inferiore non garantisce risposte migliori.
  4. Modificare un'impostazione alla volta, mantenendo fisse le altre, in modo da sapere cosa ha fatto la differenza. Prima il tasso di apprendimento e le epoche; la dimensione del batch e il warm-up raramente necessitano di modifiche.
  5. Conservare le esecuzioni perdenti. Archiviate con le relative valutazioni, risponderanno alla domanda 'abbiamo provato un tasso di apprendimento più alto?' a mesi di distanza.
Una singola regolazione, dedotta dalle curve
  1. Esecuzione 1, su Auto: 3 epoche, moltiplicatore 1. La loss di addestramento diminuisce costantemente; la loss di validazione raggiunge il minimo all'inizio dell'epoca 2 e poi aumenta.
  2. Diagnosi: overfitting da circa metà dell'esecuzione. Il tasso di apprendimento sembra adeguato: la curva è fluida, non frastagliata.
  3. Esecuzione 2: 2 epoche, tutto il resto invariato. La loss di validazione ora termina vicino al suo punto più basso e l'esecuzione costa un terzo in meno.
  4. Prima di confermarla: valutare l'esecuzione 2 rispetto al modello di base e all'esecuzione 1.

Errori comuni

  • Modificare più impostazioni contemporaneamente, rendendo impossibile spiegare un risultato migliore o peggiore.
  • Ottimizzare in base alla loss di addestramento. Migliora quasi sempre con più epoche o un tasso più alto; la loss di validazione e la valutazione sono i veri giudici.
  • Trattare un moltiplicatore come un tasso di apprendimento assoluto. Un moltiplicatore pari a 2 raddoppia il valore predefinito del provider; non equivale a un tasso di 2.
  • Copiare le impostazioni da un'esecuzione con dimensioni dei dati molto diverse. I passaggi, il warm-up e il giusto numero di epoche scalano in base ai dati.
  • Inseguire piccole differenze su un set di validazione minuscolo. Con poche decine di conversazioni held-out, un piccolo divario è solo rumore.

Riferimenti e letture di approfondimento

Le fonti esterne si aprono in una nuova scheda.

  1. 01TrainerHugging Face Transformers docs · huggingface.coL'elenco completo degli argomenti di addestramento e dei relativi valori predefiniti, dal tasso di apprendimento e le epoche fino al warm-up e al weight decay.
  2. 02Linear regression: HyperparametersGoogle Machine Learning Crash Course · developers.google.comTasso di apprendimento, dimensione del batch ed epoche spiegati con esempi interattivi.
  3. 03Accurate, Large Minibatch SGD: Training ImageNet in 1 HourGoyal et al., 2017 · arXiv · arxiv.orgLa regola di ridimensionamento lineare che collega la dimensione del batch e il tasso di apprendimento, e il warm-up graduale.
  4. 04Hyperparameter (machine learning)Wikipedia · en.wikipedia.org

Trasformate settimane di lavoro esperto in pochi minuti

Scoprite come Scalata si adatta al vostro team, ai vostri dati e ai vostri Controlli.

Contatta il team vendite