Cos'è
Un set di addestramento è un campione delle situazioni che un modello incontrerà. Contiene uno schema che si desidera venga appreso, come il modo in cui il Suo assistente risponde e con quale tono e formato, e del rumore che non si desidera: la formulazione esatta di una risposta, un errore di battitura, le peculiarità della domanda di un cliente. Un modello generalizza quando assimila lo schema. Va in overfitting quando si adatta anche al rumore, e in underfitting quando non ha assimilato lo schema.
Come individuarlo
Il segnale più chiaro si trova nelle curve di loss. La loss di addestramento può continuare a diminuire finché il modello è in grado di memorizzare ulteriori dati. La loss di validazione, misurata su conversazioni su cui il modello non è mai stato addestrato, smette di diminuire quando il modello ha appreso ciò che generalizza, e aumenta non appena inizia a memorizzare.
In un modello linguistico sottoposto a fine-tuning, l'overfitting si manifesta anche nelle risposte stesse.
- Copia testuale: frasi, intere proposizioni, persino nomi e numeri tratti dalle risposte di addestramento compaiono nelle risposte a domande non correlate.
- Risposte preconfezionate: una risposta ben rappresentata viene fornita a domande che somigliano solo in parte alla domanda originale.
- Perdita di flessibilità: le domande formulate come i dati di addestramento funzionano bene, quelle formulate diversamente incontrano difficoltà, e le attività generali che il modello di base gestiva sono peggiorate.
- Invenzione sicura: il modello imita lo stile di risposte specifiche e dettagliate, come menu nominati e passaggi numerati, senza possedere la conoscenza sottostante, e ne inventa i dettagli.
Perché si verifica
| Causa | Perché porta alla memorizzazione |
|---|---|
| Troppi pochi esempi | Con pochi dati, memorizzare ogni risposta è il modo più semplice per ridurre la perdita |
| Troppe epoche | Ogni passaggio mostra nuovamente le stesse risposte, finché il modello non le riconosce |
| Tasso di apprendimento troppo alto | Aggiornamenti ampi si adattano rapidamente ai singoli esempi |
| Duplicati e risposte ripetute | Una risposta che appare molte volte viene appresa come risposta fissa |
| Dati limitati | Il modello non vede mai come variano le domande reali, quindi non può apprendere cosa varia |
| Troppa capacità per i dati | Il fine-tuning completo o un adattatore di grandi dimensioni su un set ridotto ha spazio per memorizzare gli esempi |
Come prevenirlo
- Interrompere al punto ottimale. Utilizzi il numero di epoche in cui la loss di validazione era al minimo, oppure un checkpoint corrispondente a quel punto. Questo è l'early stopping, la misura di sicurezza più semplice ed efficace.
- Meno epoche o un learning rate più basso. Entrambi limitano l'allontanamento dei pesi dal modello base.
- Dati maggiori e più vari. Copra i diversi modi in cui le persone pongono realmente le domande, incluse quelle brevi e vaghe. Poche centinaia di esempi vari insegnano più di un migliaio di quasi-duplicati.
- Rimuovere i duplicati e le risposte eccessivamente ripetute prima dell'addestramento.
- Regolarizzazione: dropout LoRA, weight decay, o semplicemente un rango dell'adattatore più piccolo, che limita la quantità di informazioni memorizzabili.
- Esecuzione A: 6 epoche, moltiplicatore 2. La loss di addestramento raggiunge 0,15. La loss di validazione è al minimo dopo l'epoca 2 e termina ben al di sopra di tale minimo. Nella chat di test, le risposte riutilizzano intere frasi dalle risposte di addestramento.
- Esecuzione B: 2 epoche, moltiplicatore 1. La loss di addestramento termina a 0,6 e la loss di validazione termina vicino al suo minimo. Le risposte mantengono lo stile aziendale ma sono formulate in modo nuovo per ogni domanda.
- Conclusione: La loss di addestramento inferiore dell'Esecuzione A è il problema, non il traguardo. L'Esecuzione B generalizza ed è costata un terzo per l'addestramento.
Underfitting
L'underfitting è il fallimento opposto: né la loss di addestramento né quella di validazione diminuiscono in modo significativo, e il modello ottimizzato risponde in modo molto simile al modello base. Le cause sono un addestramento insufficiente (troppo poche epoche o passaggi, o un learning rate troppo basso) oppure dati privi di uno schema coerente, come risposte che affrontano domande simili in modi contraddittori. Verifichi prima i dati. Aumentare le epoche o il learning rate su dati incoerenti insegna principalmente l'incoerenza.
Errori comuni
- Giudicare un'esecuzione dalla sua loss di addestramento. La loss di addestramento più bassa di solito appartiene all'esecuzione con il maggior overfitting.
- Cercare di correggere un modello debole con più epoche sullo stesso piccolo dataset.
- Saltare la suddivisione di validazione per mantenere ogni esempio per l'addestramento, perdendo così l'unico modo per individuare l'overfitting.
- Lasciare che i duplicati o una singola risposta preconfezionata dominino i dati.
- Eseguire la validazione su conversazioni che compaiono anche nell'addestramento, il che nasconde completamente l'overfitting.
Riferimenti e letture di approfondimento
Le fonti esterne si aprono in una nuova scheda.
- 01OverfittingGoogle Machine Learning Crash Course · developers.google.comGeneralizzazione, overfitting e il ruolo di un set escluso, con esempi interattivi.
- 02OverfittingWikipedia · en.wikipedia.org
- 03Early stoppingWikipedia · en.wikipedia.orgInterrompere al punto di minimo errore di validazione, la misura di sicurezza più comune contro l'overfitting.
- 04Regularization for Deep LearningGoodfellow, Bengio & Courville · Deep Learning, chapter 7 · deeplearningbook.orgLa trattazione da manuale di weight decay, dropout, early stopping e data augmentation.