Cos'è
Un modello sottoposto a fine-tuning ha letto le risposte di addestramento molte volte. Ponendogli di nuovo una di quelle domande, è in grado di riprodurre la risposta quasi parola per parola. Sembra competenza, ma è memorizzazione: non fornisce alcuna indicazione su come il modello gestirà il cliente successivo, la cui domanda non è mai stata vista.
Il set di test è la soluzione, nonché una delle regole più antiche del machine learning: mantenere alcuni esempi completamente separati dall'addestramento e valutare il modello solo su di essi. I modelli linguistici di grandi dimensioni rendono questa regola ancora più importante. Studi sui benchmark pubblici hanno ripetutamente individuato modelli che avevano visto elementi di test durante l'addestramento, ottenendo per questo punteggi più alti — un problema noto come contaminazione dei dati o leakage.
Come funziona
dataset has ≥ 10 conversations? no → no test set
yes → test = 10% of conversations (at least 3)
random, but fixed for this prep
each assistant reply in a test conversation → one question
asked with the conversation up to that point
reference answer = the reply itself
reply identical to a training reply → dropped- Accantonato per primo. Prima che la validazione venga separata o che qualsiasi cosa venga scritta per l'addestramento, la preparazione dei dati seleziona il 10% delle conversazioni, almeno 3. I dataset con meno di 10 conversazioni non ottengono alcun set di test.
- Casuale, ma fisso per preparazione. La selezione è casuale, in modo da non essere sbilanciata verso conversazioni facili o difficili, e rimane invariata per quella preparazione, cosicché una nuova valutazione ponga le stesse domande.
- Una domanda per risposta. Ogni risposta dell'assistente in una conversazione di test diventa una domanda, posta includendo la conversazione fino a quel punto. La risposta stessa costituisce la risposta di riferimento.
- Nessuna copia nascosta. Una risposta di test identica parola per parola a una risposta di addestramento — la stessa risposta standard in un'altra conversazione — viene scartata, poiché il modello l'ha effettivamente già vista.
- Non esce mai. Le conversazioni di test non sono presenti nel file di addestramento né in quello di validazione, e non vengono mai inviate al provider.
- Utilizzato per l'apprendimento
- no
- Inviato al provider
- no
Il modello è davvero migliorato?
- Utilizzato per l'apprendimento
- no
- Inviato al provider
- sì
Una seconda opinione quando non c'è un set di test
- Utilizzato per l'apprendimento
- sì
- Inviato al provider
- sì
Solo una verifica di coerenza: i risultati sono ottimistici
Perché la validazione non è un test pulito
Le conversazioni di validazione non vengono utilizzate per l'apprendimento, quindi perché non usarle per la valutazione? Perché il provider riceve il file di validazione e lo utilizza durante l'addestramento per calcolare la validation loss e monitorare l'esecuzione. I dati non sono più sotto il vostro controllo, e ogni decisione presa osservando quei numeri — quale esecuzione mantenere, quante epoche — ottimizza leggermente il risultato verso quelle specifiche domande. La validazione è un buon secondo parere; non è un esame alla cieca.
Da dove la Valutazione ottiene le sue domande
| Fonte | Visto durante l'addestramento? | Da utilizzare per |
|---|---|---|
| Test accantonato | No | Giudicare se il modello è realmente migliorato |
| Validazione | Visto dal provider, non utilizzato per l'apprendimento | Un secondo parere quando non è presente un set di test |
| Campione di addestramento | Sì, appreso da | Solo una verifica di base; i risultati sono ottimistici |
La Valutazione prende la prima fonte disponibile, in quest'ordine. Un risultato su un campione di addestramento rappresenta un limite superiore: se il modello ottimizzato non ha la meglio nemmeno sulle domande che ha appreso, non lo farà su quelle nuove; se invece ha la meglio, non è comunque possibile sapere in che misura.
- Il dataset contiene 120 conversazioni, quindi la preparazione dei dati ne accantona il 10%: 12 conversazioni, scelte a caso e fisse per questa preparazione.
- Queste 12 conversazioni contengono 31 risposte dell'assistente. Ciascuna diventa una domanda, posta includendo la conversazione fino a quel punto e con la risposta come soluzione di riferimento.
- Due risposte sono identiche parola per parola a quelle presenti nelle conversazioni di addestramento — una risposta standard sul ripristino della password. Vengono scartate: rimangono 29 domande di test.
- Le restanti 108 conversazioni passano alla consueta suddivisione di validazione e all'addestramento. Nessuno dei due file contiene una conversazione di test e il provider non ne riceve mai alcuna.
- Dopo l'addestramento, la Valutazione pone le 29 domande di test. Per confronto: un dataset di 25 conversazioni ne accantonerebbe 3 (il minimo), e uno di 9 non avrebbe alcun set di test, quindi la Valutazione ripiegherebbe sulle domande di validazione.
Utilizzarlo al meglio
- Lasci spazio. Un test set di 29 domande è utile ma ridotto: a queste dimensioni, una percentuale di successo del 60% è ancora compatibile con l'assenza di miglioramenti. Più conversazioni nel dataset significano più domande di test e un verdetto più solido.
- Tenga le conversazioni di test fuori dagli addestramenti successivi. Se le copia in un altro dataset e lo utilizza per l'addestramento, il modello successivo le avrà già viste e la sua valutazione risulterà lusinghiera.
- Confronti elementi omogenei. Una nuova preparazione estrae il proprio test set. Quando confronta i modelli, utilizzi le domande di test di una singola preparazione per tutti.
- Prenda sul serio gli avvisi. Una valutazione su un campione di addestramento è contrassegnata come tale per un motivo: la consideri come una verifica di base, non come un risultato.
Fonti delle domande
Domande provenienti dalla preparazione dei dati delle conversazioni tenute da parte. Mai usate per l'addestramento, mai per la convalida, mai inviate al provider: il test pulito e l'impostazione predefinita.
Domande provenienti dalla suddivisione di convalida. Non utilizzate per l'apprendimento, ma viste dal provider durante il monitoraggio dell'addestramento. Utilizzate quando la preparazione non ha un test set.
Un campione di domande su cui il modello è stato addestrato. L'ultima risorsa, contrassegnata da un avviso: i risultati sono ottimistici e dimostrano solo che non ci sono gravi malfunzionamenti.
Errori comuni
- Valutare sulle domande di addestramento e interpretare il risultato come prestazioni nel mondo reale.
- Trattare i risultati di validazione come se fossero puliti quanto i risultati dei test accantonati.
- Copiare le conversazioni di test in un dataset di addestramento successivo, in modo che il modello seguente le abbia già viste.
- Considerare una manciata di domande di test come un verdetto: i set di test di piccole dimensioni necessitano di una grande differenza per essere significativi.
- Confrontare modelli che sono stati valutati ciascuno sul set di test di una preparazione diversa.
Riferimenti e letture di approfondimento
Le fonti esterne si aprono in una nuova scheda.
- 01Training, validation, and test data setsWikipedia · en.wikipedia.orgLa suddivisione in tre parti e il motivo per cui il test set viene utilizzato solo alla fine.
- 02Leakage (machine learning)Wikipedia · en.wikipedia.orgCome le informazioni dei dati di test si infiltrano nell'addestramento e gonfiano i punteggi.
- 03NLP Evaluation in trouble: On the Need to Measure LLM Data Contamination for each BenchmarkSainz et al., 2023 · arXiv · arxiv.orgPerché la contaminazione rende inaffidabili i risultati della valutazione e perché deve essere verificata.
- 04Time Travel in LLMs: Tracing Data Contamination in Large Language ModelsGolchin & Surdeanu, 2023 · arXiv · arxiv.orgRilevare quando un modello ha memorizzato gli esempi di test, chiedendogli di completarli.