Definire cosa rappresenta ogni esempio
Inizia con una frase di decisione: riconoscere la categoria di un nuovo ticket, estrarre tre campi da un documento o rispondere a una domanda con i suoi allegati. Descrivi l'input disponibile al momento della previsione, l'output atteso e i casi fuori ambito. Un'informazione aggiunta dopo la risoluzione del ticket non deve apparire in un input che dovrebbe rappresentare il suo arrivo.
Distingui poi riga e unità indipendente. Cinque messaggi di una conversazione condividono un contesto; dieci pagine di un dossier condividono la loro origine. Se il tuo obiettivo riguarda nuovi dossier, mantieni ogni dossier in una sola partizione. Una separazione per utente, documento, apparecchiatura o periodo risponde a domande diverse: scegli quella che assomiglia all'uso futuro, poi annota la sua giustificazione nel manifest.
Fonti tecniche: scikit-learn 1.9 — validazione con gruppi e dipendenze temporali
Attribuire un ruolo a ogni insieme
Il set di addestramento serve agli aggiustamenti del modello. Il set di validazione guida le decisioni di sviluppo: prompt, soglia, iperparametri o scelta di una variante. Il test finale risponde a una domanda già fissata. Consultarlo per trattenere il miglior parametro trasforma progressivamente questo test in uno strumento di sviluppo, anche se su di esso non viene calcolato alcun gradiente.
Separa anche i dati utilizzati per apprendere una trasformazione. Una normalizzazione, una selezione di variabili o un'imputazione calibrata su tutto il corpus può trasmettere informazione al modello. Apprendi queste trasformazioni sulla partizione autorizzata, poi applica la trasformazione conservata agli altri insiemi. Una pipeline facilita questo controllo; non corregge da sola gruppi separati male.
| Insieme | Uso autorizzato | Decisione da evitare |
|---|---|---|
| Addestramento | Aggiustare i parametri e le trasformazioni apprese | Importarvi le risposte del test finale |
| Validazione | Scegliere parametri, prompt e soglie | Presentare il miglior punteggio esplorativo come risultato finale indipendente |
| Test finale | Valutare la configurazione scelta secondo la regola fissata | Modificare i parametri dopo la lettura e riutilizzare lo stesso punteggio come conferma |
| Calibrazione eventuale | Preparare un metodo di quantizzazione che ne ha bisogno | Usare il test finale per costruire la variante valutata |
Fonti tecniche: scikit-learn 1.9 — fuga di dati e trasformazioni
Gestire i duplicati senza cancellare i casi difficili
Conserva il corpus grezzo, poi costruisci un inventario di lavoro con identificativo, origine e gruppo. Un'impronta del contenuto rileva le copie esatte in base alla rappresentazione scelta. Documenta questa rappresentazione: rimuovere tutta la punteggiatura o mettere un testo in minuscolo può unire voci la cui differenza conta per il task. Mantieni la corrispondenza tra copia scartata ed esemplare conservato.
I quasi-duplicati richiedono una revisione aggiuntiva: export modificato, risposta riformulata, passaggio comune o documento riedito. Un'elevata similarità è un segnale da esaminare, non la prova che due annotazioni siano intercambiabili. Raggruppa le varianti correlate prima di distribuire i dati. Se due copie riportano riferimenti contraddittori, apri una questione di annotazione; non scegliere automaticamente quella che il modello prevede meglio.
Esempio svolto: 1 200 righe non sono 1 200 osservazioni indipendenti
Questo esempio è interamente illustrativo: nessun corpus né modello è stato misurato. Supponiamo 240 conversazioni, ciascuna esportata su cinque righe. Una riga è una copia esatta in ogni conversazione; le altre quattro sono distinte. Rimuovere queste 240 copie lascia 960 esempi, sempre organizzati in 240 gruppi. La scelta pedagogica seguente riserva il 70% dei gruppi all'apprendimento, il 15% alla validazione e il 15% al test.
Si ottengono 168, 36 e 36 conversazioni, cioè 672, 144 e 144 esempi. L'uguaglianza delle proporzioni in righe e in gruppi deriva qui dai quattro esempi per conversazione. In un corpus reale di dimensioni variabili, non sarebbe automatica. Queste proporzioni non sono una regola universale: devono lasciare abbastanza gruppi e casi importanti in ogni insieme.
| Partizione | Conversazioni intere | Esempi | Ruolo |
|---|---|---|---|
| Addestramento | 168 | 672 | Addestrare |
| Validazione | 36 | 144 | Scegliere |
| Test finale | 36 | 144 | Confermare su un insieme tenuto a parte |
Fonti tecniche: scikit-learn 1.9 — GroupShuffleSplit conta i gruppi
Verificare classi, lunghezze e cronologia
Dopo la partizione, conta le classi e i gruppi che le portano. Una classe presente su molte righe ma in una sola conversazione non offre molti casi indipendenti. Esamina anche lunghezze, lingue realmente coperte, documenti incompleti e categorie importanti per la decisione. Una media rassicurante può mascherare una partizione senza alcun esempio di un caso critico.
Una stratificazione con gruppi cerca di preservare le proporzioni delle classi senza disperdere i gruppi. Non garantisce un equilibrio perfetto quando i gruppi sono pochi o molto disuguali. Se il task consiste nel prevedere osservazioni future, una separazione cronologica può essere più pertinente di un mescolamento casuale. Verifica anche che le variabili fossero disponibili alla data della previsione.
Fonti tecniche: scikit-learn 1.9 — StratifiedGroupKFold e i suoi limiti · scikit-learn 1.9 — validazione di dati temporali
Rendere il riferimento abbastanza preciso per giudicare un output
Scrivi una consegna di annotazione con esempi e casi limite. Per un'estrazione, precisa il significato di un campo assente, il formato delle date, la valuta e le equivalenze accettate. Per una classificazione, descrivi i confini tra categorie. Una risposta diversa dal riferimento non è sempre un errore del modello: il riferimento può essere ambiguo o errato.
Fai rileggere una selezione varia, in particolare i disaccordi e i casi importanti, poi annota l'arbitrato. Conserva le correzioni in una nuova versione del set. Se una correzione cambia il risultato di un confronto, ricalcola tutte le varianti interessate sullo stesso riferimento; non correggere solo la riga sfavorevole al tuo modello preferito.
Produrre il pacchetto di valutazione prima della campagna GPU
Il risultato di questa preparazione è un insieme identificabile, accompagnato dalle sue regole. Permette di riprodurre la selezione dei dati senza dipendere da un ricordo del notebook. Preparare questo pacchetto prima del noleggio evita di consumare il periodo di calcolo per risolvere differenze di file o di criteri.
- Fissa gli identificativi, i gruppi, le partizioni e la loro giustificazione; conserva lo script o la lista che li produce.
- Verifica le intersezioni di identificatori, gruppi e impronte tra le partizioni. Qualsiasi intersezione inattesa deve essere spiegata o corretta.
- Esporta gli effettivi per partizione, classe e sottogruppo utile, nonché l'elenco delle esclusioni e il loro motivo.
- Fissa il riferimento, le regole di normalizzazione, la metrica principale e le soglie prima del confronto.
- Conserva revisione, impronte, diritti d'uso e posizione dei dati. Un'impronta garantisce un'identificazione, non un anonimato.
- Riserva l'accesso al test finale fino alla decisione prevista; tieni un registro delle consultazioni e dei cambi di protocollo.
Sapere cosa dimostra il controllo
La preparazione è accettabile quando gli effettivi si riconciliano con l'inventario, le sovrapposizioni sono sotto controllo e ogni output può essere giudicato secondo una regola esplicita. Non prova che il modello avrà successo, né che tutti gli usi futuri siano rappresentati. Un piccolo set può descrivere un problema preciso pur restando insufficiente per concludere su una classe rara.
Se usi gli errori del test finale per migliorare il sistema, conserva quel test come storico e prepara una nuova conferma indipendente. Per un modello preaddestrato i cui dati originali sono sconosciuti, la tua partizione non può certificare l'assenza di esposizione precedente. Documenta questo limite invece di definire il set del tutto vergine.
Domande pratiche
Bisogna sempre riservare il 20% dei dati al test?
No. La quota utile dipende dal numero di unità indipendenti e dai casi da coprire. Verifica i gruppi, le categorie importanti e la precisione della conclusione attesa; una percentuale da sola non garantisce un test informativo.
Un identificatore diverso basta a escludere i duplicati?
No. Due esportazioni possono avere identificatori diversi pur contenendo lo stesso testo o varianti dello stesso dossier. Controlla il contenuto e la provenienza, poi tieni gli esempi legati nella partizione corrispondente alla tua regola di raggruppamento.
Posso riutilizzare il mio test dopo aver corretto il modello grazie ai suoi errori?
Puoi conservarlo per seguire lo storico, ma ha partecipato allo sviluppo. Per confermare un miglioramento su dati tenuti a parte, usa un nuovo insieme indipendente e annuncia chiaramente il ruolo di ciascuno.