Risorse/Addestramento del modello/Preparazione dei dati

Fase della pipeline

Split di validazione

Una quota di conversazioni viene esclusa dall'addestramento e utilizzata per osservare la loss su dati da cui il modello non apprende. La suddivisione avviene per intere conversazioni, in modo che nessuna parte di una chat riservata contamini l'addestramento — e non coincide con il set di test conservato per la valutazione.

Capitolo 5Lettura di 5 min3 riferimenti

Cos'è

Un validation split mette da parte una porzione dei dati prima dell'inizio dell'addestramento. Queste conversazioni vengono tenute da parte: il modello non si addestra mai su di esse. Il provider le utilizza per calcolare la validation loss durante l'esecuzione dell'addestramento. Non costituiscono il test set, un secondo gruppo separato di conversazioni conservato per la valutazione successiva.

Il motivo è semplice. Un modello sottoposto a fine-tuning può memorizzare. Se gli viene posta una domanda su cui è stato addestrato, potrebbe riprodurre la risposta di riferimento quasi parola per parola, il che non dice nulla su come gestirà le domande della prossima settimana. Solo i dati che non ha mai visto possono dimostrare se ha appreso il pattern o semplicemente gli esempi.

Come funziona

Addestramento · 90% delle conversazioniConvalida · 10%, mai usata per l'addestramento
Le intere conversazioni vanno da una parte o dall'altra. Dividere per messaggio metterebbe la prima metà di una chat nell'addestramento e la sua risposta nella convalida, e il punteggio sovrastimerebbe il modello.

Le conversazioni vengono assegnate casualmente a una parte o all'altra, come conversazioni intere. Suddividere per messaggio costituirebbe una forma di data leakage: la prima metà di una chat potrebbe addestrare il modello mentre la sua risposta si trova nella validazione, oppure la stessa risposta potrebbe apparire da entrambe le parti in due record vicini. Il punteggio di validazione misurerebbe quindi il richiamo, non la capacità. Il leakage è una trappola ben documentata ben oltre i modelli linguistici — Kapoor e Narayanan (2022) hanno riscontrato errori di leakage in 329 paper in 17 campi scientifici.

Durante l'addestramento, il provider esegue periodicamente il modello sui record di validazione e ne riporta la loss senza aggiornare alcun peso. Quando la training loss continua a diminuire ma la validation loss inizia ad aumentare, il modello ha iniziato ad andare in overfitting.

La validazione non è il test set

I record di validazione vengono inviati al provider con il file di addestramento e monitorati per tutta l'esecuzione; si scelgono anche le epoche e i learning rate osservandoli. Questo li rende un po' meno che mai visti, quindi non costituiscono un test finale pulito. Un test pulito richiede conversazioni che non tocchino né l'addestramento né la validazione e che non lascino mai le proprie mani: il test set. La valutazione lo utilizza per impostazione predefinita e ripiega sulle domande di validazione solo quando non è presente alcun test set.

SetVisto durante l'addestramento?Utilizzato per
AddestramentoSì, usato per l'apprendimentoModificare i pesi
ValidazioneVisto dal provider, non usato per l'apprendimentoLa loss di validazione; un secondo parere nella valutazione quando non è presente un set di test
TestNo, mai inviato al providerGiudicare se il modello è realmente migliorato

Quanto dovrebbe essere grande?

È un compromesso. Ogni conversazione tenuta da parte è una da cui il modello non apprende; ogni conversazione usata per l'addestramento è una con cui non è possibile effettuare test. La precisione di un punteggio dipende dal numero di esempi tenuti da parte, non dalla loro percentuale, motivo per cui i dataset di piccole dimensioni rappresentano il caso più difficile. Per un win rate, l'incertezza si riduce approssimativamente con la radice quadrata del numero di domande:

come la dimensione del campione determina la precisione
standard error of a win rate  ≈  √( p × (1 − p) ÷ n )
95% margin                    ≈  1.96 × standard error
at p = 0.5                    ≈  1 ÷ √n

n = 10   →  ± 31 points
n = 50   →  ± 14 points
n = 100  →  ± 10 points
n = 400  →  ±  5 points
Quota di validazioneTipico 10% (10–20%)#

La frazione di conversazioni riservate alla validazione. Con migliaia di conversazioni, anche il 5% fornisce una curva di validazione stabile; con poche centinaia, il 15–20% rende la curva meno rumorosa con un impatto modesto sull'addestramento.

Numero minimo di conversazioni riservateTipico 10#

Al di sotto di questo numero, la loss di validazione sarebbe per lo più rumore, pertanto non viene effettuato alcuno split di validazione e tutto ciò che non rientra nel set di test viene destinato all'addestramento.

Esempio pratico: tre dimensioni di dataset al 10%
  1. 2.000 conversazioni: 200 vengono inizialmente destinate al test set, poi il 10% delle rimanenti (180) alla validazione, lasciandone 1.620 per l'addestramento. Una valutazione sulle 200 conversazioni di test misura un win rate con un margine di circa ±7 punti — sufficiente per confrontare le esecuzioni.
  2. 300 conversazioni: 30 conversazioni di test e 27 di validazione. Una valutazione su 30 conversazioni di test ha un margine di circa ±18 punti e non può distinguere un modello al 55% da uno al 45%; solo una maggiore quantità di dati può ridurlo.
  3. 60 conversazioni: 6 vengono destinate al test set. Il 10% delle rimanenti 54 è 5, al di sotto del minimo di 10, quindi non c'è alcuna curva di validazione e tutte le 54 vengono usate per l'addestramento. La valutazione dispone comunque di 6 conversazioni di test mai viste: poche, quindi il risultato va interpretato come un'indicazione.
  4. 8 conversazioni: troppo poche per un test set, che richiede un dataset di almeno 10. Nessun dato viene tenuto da parte e una valutazione può solo ripiegare, con un avviso, sulle domande su cui il modello è stato addestrato.

Errori comuni

  • Suddividere per messaggio o per record, in modo che parti della stessa conversazione finiscano da entrambe le parti.
  • Tenere da parte una quota troppo piccola per misurare alcunché, per poi attribuire significato a un risultato di 6 contro 4.
  • Aggiungere quasi-duplicati delle conversazioni di validazione a un set di addestramento successivo, trasformandoli silenziosamente in dati di addestramento.
  • Confrontare due modelli valutati su set tenuti da parte diversi come se i punteggi fossero sulla stessa scala.
  • Saltare la suddivisione su un dataset reale per “usare tutti i dati”, perdendo l'unica misurazione onesta a disposizione.
  • Trattare i risultati della validazione come un test finale pulito, sebbene il provider abbia visto quei record durante tutto l'addestramento.

Riferimenti e letture di approfondimento

Le fonti esterne si aprono in una nuova scheda.

  1. 01Datasets: Dividing the original datasetGoogle Machine Learning Crash Course · developers.google.comUna chiara introduzione ai set di addestramento, validazione e test.
  2. 02Training, validation, and test data setsWikipedia · en.wikipedia.orgDefinizioni e ruolo di ciascun set.
  3. 03Leakage and the Reproducibility Crisis in ML-based ScienceKapoor & Narayanan, 2022 · arXiv · arxiv.orgUn'indagine su come la contaminazione tra i dati di addestramento e quelli di test gonfi i risultati riportati.

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