Cos'è
I log delle chat reali sono disordinati. Accanto alle risposte che si desidera far copiare al modello, contengono messaggi di errore, rifiuti da parte di un livello di sicurezza, markup comprensibili solo all'interfaccia della chat, risposte che indicano semplicemente che un file è pronto e la stessa conversazione salvata due volte. La pulizia è il primo passaggio della preparazione dei dati: rimuove o corregge tali record prima che qualsiasi elemento venga convertito in un file di addestramento.
È importante perché il fine-tuning non ha alcuna nozione di “cattivo esempio”. Ogni risposta target che raggiunge il file di addestramento viene trattata come la risposta corretta e il modello viene spinto a renderla più probabile. Un messaggio di errore utilizzato come target dieci volte insegna al modello che i messaggi di errore sono una risposta normale.
Come funziona
Ogni passaggio ricerca un pattern specifico e ognuno ha una motivazione basata sul funzionamento dell'addestramento. Alcuni passaggi rimuovono una risposta target (rimane leggibile come contesto, semplicemente non viene valutata); altri rimuovono un intero record o ne riscrivono la struttura.
| Passaggio | Cosa rileva | Perché danneggerebbe l'addestramento |
|---|---|---|
| Markup dell'interfaccia utente | Tag utilizzati dall'interfaccia della chat per il rendering di pulsanti, pannelli comprimibili e simili | Un modello utilizzato al di fuori di tale interfaccia stamperebbe tag non formattati nelle sue risposte |
| Risposte di errore | “Errore durante l'elaborazione della query…” e simili guasti di sistema | Il modello imparerebbe a fallire di proposito |
| Blocchi di sicurezza | Rifiuti inseriti da un livello di sicurezza della piattaforma, non scritti dal modello | Insegna a rifiutare domande a cui era corretto rispondere |
| Annunci di file | Risposte brevi il cui vero output era un file generato, ad es. “La presentazione è pronta” | Il file non è nel testo, quindi il modello impara ad attribuirsi un lavoro che non ha svolto |
| Struttura | Una conversazione che si apre con l'assistente; due messaggi consecutivi dallo stesso ruolo | I formati di addestramento richiedono l'alternanza dei turni tra utente e assistente, iniziando dall'utente |
| Duplicati | La stessa conversazione con la stessa risposta, salvata o importata due volte | Conta un esempio due volte: maggior peso, maggiore memorizzazione, nessuna nuova informazione |
| Risposte ripetute | Una risposta identica utilizzata come target molte volte, come un saluto o un disclaimer predefinito | Poche frasi fatte dominerebbero e il modello vi ricorrerebbe ovunque |
I duplicati meritano un'attenzione particolare. Le ricerche su ampi set di addestramento hanno rilevato che il testo ripetuto è uno dei principali fattori di memorizzazione: Lee et al. (2021) hanno dimostrato che la deduplicazione dei dati di addestramento ha ridotto di dieci volte la frequenza con cui i modelli emettono testo memorizzato, e Carlini et al. (2022) hanno scoperto che la frequenza di duplicazione di una sequenza è uno dei più forti indicatori della probabilità che un modello la ripeta parola per parola. Un set di fine-tuning è molto più piccolo, pertanto una singola conversazione ripetuta cinque volte rappresenta un'ampia porzione di ciò che il modello osserva.
Il passaggio con limite per le risposte ripetute è meno drastico della deduplicazione. Una risposta breve e identica come “Lieto di aiutarla — le serve altro?” può essere perfettamente valida, quindi viene mantenuta fino a un certo limite e solo le copie in eccesso smettono di essere dei target. Il modello impara comunque la frase, senza imparare a usarla per qualsiasi cosa.
- Un team di supporto seleziona 1.000 conversazioni contenenti 1.850 risposte dell'assistente contrassegnate come target.
- 38 target sono risposte di errore dovute a una settimana di interruzione del servizio e 12 sono rifiuti dei guardrail. Tutti e 50 smettono di essere target.
- 27 target sono messaggi del tipo “Il Suo report è pronto” il cui vero output era un PDF. Rimossi: il solo testo non può insegnare al modello a produrre un PDF.
- 64 target si trovano in conversazioni importate due volte. Ne viene conservata una sola copia per ciascuno.
- La formula di chiusura “C'è altro in cui posso esserle utile?” compare come target 71 volte. Con un limite massimo, ad esempio, di 30, 41 copie smettono di essere target.
- Rimangono 1.668 target, circa il 90%. L'addestramento costa leggermente meno e il 10% rimosso era costituito dalle risposte che con maggiore probabilità avrebbero peggiorato il modello.
Quando è importante
- Sempre, per i log di un prodotto live. Interruzioni, livelli di sicurezza e funzionalità dell'interfaccia lasciano tutti tracce che sembrano risposte.
- Ancor di più per i set di dati di piccole dimensioni. Con 200 target, dieci target errati rappresentano il 5% del segnale; con 20.000 sono solo rumore.
- Chat importate. Le esportazioni da altri strumenti contengono spesso conversazioni ripetute o parzialmente sovrapposte.
- Quando il modello verrà eseguito al di fuori dell'interfaccia di chat. È in questo caso che il markup dell'interfaccia utente deve essere rimosso; conservatelo solo se il modello verrà utilizzato nella stessa interfaccia che lo renderizza.
Disattivato per impostazione predefinita. Attivarlo solo se il modello addestrato risponderà all'interno della stessa interfaccia di chat in grado di comprendere tali tag e se si desidera che continui a produrre pulsanti e sezioni comprimibili.
Errori comuni
- Presumere che un ampio set di dati renda superflua la pulizia: i duplicati e le risposte predefinite crescono insieme al set di dati.
- Addestrare il modello su risposte come “Il file è pronto” e poi chiedersi perché affermi di aver creato file che non ha mai prodotto.
- Mantenere il markup dell'interfaccia per un modello che verrà eseguito in un altro prodotto, dove i tag appariranno come testo non formattato.
- Correggere i sintomi a ogni preparazione invece della causa: se molte risposte sono errori o rifiuti, le chat sottostanti o il flusso del prodotto richiedono attenzione.
- Deduplicare per messaggio anziché per conversazione, il che può lasciare una risposta priva della domanda che la contestualizza.
Riferimenti e letture di approfondimento
Le fonti esterne si aprono in una nuova scheda.
- 01Deduplicating Training Data Makes Language Models BetterLee et al., 2021 · arXiv · arxiv.orgMostra quanto testo ripetuto sia presente nei set di dati reali e come la sua rimozione riduca la memorizzazione.
- 02Quantifying Memorization Across Neural Language ModelsCarlini et al., 2022 · arXiv · arxiv.orgLa memorizzazione cresce con le dimensioni del modello, con la frequenza di duplicazione di un esempio e con la lunghezza del prompt.
- 03LIMA: Less Is More for AlignmentZhou et al., 2023 · arXiv · arxiv.org1.000 esempi accuratamente curati sono stati sufficienti per ottenere risultati solidi: la qualità prevale sulla quantità.
- 04Supervised fine-tuningOpenAI API docs · developers.openai.comLa prospettiva di un provider su cosa dovrebbe contenere un esempio di addestramento.