Che cos'è
Un dataset è una raccolta denominata di esempi di addestramento. In Scalata la maggior parte degli esempi sono chat: la conversazione, più la scelta di quali risposte dell'assistente siano i target. Un dataset può anche contenere documenti da cui apprendere fatti. Tutto ciò che avviene a valle fa riferimento ad esso: Lei prepara un dataset, esegue l'addestramento sui file preparati e valuta il modello risultante.
Snapshot, non collegamento
Quando una chat viene aggiunta a un dataset, i suoi messaggi vengono copiati al suo interno. Da quel momento in poi il dataset e la chat sono indipendenti: continuare la chat, modificarla o eliminarla non cambia nulla nel dataset.
Questo è intenzionale. Un'esecuzione di addestramento può richiedere ore, una valutazione viene letta giorni dopo e un modello può rimanere in uso per mesi. Se il dataset potesse cambiare a loro insaputa, non si potrebbe più dire su cosa sia stato addestrato un modello; due esecuzioni dallo “stesso” dataset potrebbero aver visto dati diversi; ed eliminare una chat potrebbe rimuovere silenziosamente esempi su cui Lei faceva affidamento.
Correzioni all'interno del dataset
Lei può correggere una risposta all'interno di un dataset. Il testo corretto è ciò che viene addestrato, e l'originale viene conservato accanto ad esso. Conservarli entrambi è utile non solo per la registrazione: l'originale e la correzione formano una coppia di preferenze già pronta, in cui la correzione è preferita. Una correzione è uno dei segnali più forti che Lei possa dare a un modello, perché è una persona che indica esattamente cosa fosse sbagliato.
- Risposta originale: “Andare alle impostazioni.”
- La Sua correzione: “Aprire Impostazioni → Notifiche e disattivare ‘Riepilogo settimanale’.”
- Il fine-tuning supervisionato apprende la correzione.
- Il preference tuning può utilizzare la coppia: correzione preferita, originale no.
Conversazioni importate
Anche le conversazioni esportate da altre app di chat possono essere importate. Importare nuovamente la stessa esportazione non aggiunge nulla due volte. I duplicati contano più di quanto sembri: una conversazione che appare due volte conta doppio nell'addestramento, e le sue copie potrebbero finire su entrambi i lati della suddivisione di validazione, il che sovrastimerebbe la valutazione.
Altre fonti di esempi
- Chat sintetiche. Il Dataset Builder fa in modo che un modello capace elabori un piano per vari scenari partendo da un brief e scriva conversazioni di esempio. È possibile esaminarle prima di aggiungerle, e vengono contrassegnate come Sintetiche in modo da poterle distinguere dalle chat reali.
- Dataset pubblici. Le righe di un dataset Hugging Face possono essere importate come chat una volta che Scalata ha stabilito quali colonne contengono la domanda e la risposta. Le importazioni di grandi dimensioni vengono eseguite in background.
- Feedback delle chat. I pollici in su e in giù assegnati nelle chat diventano esempi: una risposta apprezzata diventa una replica da cui imparare, mentre una risposta apprezzata e una non apprezzata alla stessa domanda diventano una coppia di preferenze.
- Documenti. File caricati, file già presenti in Scalata, pagine web pubbliche, le righe in testo normale di un dataset Hugging Face o file provenienti da un'origine dati connessa. Il loro testo viene letto una volta; un modello può quindi scriverne esempi di domande e risposte, oppure i modelli aperti possono addestrarsi direttamente sul testo (pre-addestramento continuo).
Ogni fonte ha la sua insidia. Le chat sintetiche sono più pulite di quelle reali, quindi le mescoli con dati reali dove possibile, e conservi le chat reali per i test. Le righe importate sono valide solo quanto la loro fonte. I documenti insegnano ciò che è vero, non come rispondere, quindi di solito precedono, o affiancano, l'addestramento sulle chat.
Nuove versioni anziché modifiche infinite
Per un cambiamento sostanziale — una nuova area di prodotto, un nuovo lotto di chat, uno stile diverso — di solito è più chiaro creare un nuovo dataset piuttosto che continuare a rimodellarne uno vecchio. Nomini le versioni in modo che la differenza sia ovvia (“Supporto v2 — aggiunta fatturazione”), e archivi quella vecchia invece di eliminarla, in modo che i modelli precedenti puntino ancora a ciò su cui sono stati addestrati.
Errori comuni
- Aspettarsi che una correzione apportata nella chat originale raggiunga un dataset creato in precedenza.
- Eliminare un vecchio dataset che ha addestrato un modello che Lei utilizza ancora, perdendo la registrazione di ciò che ha appreso.
- Mescolare attività non correlate in un unico dataset senza un numero sufficiente di esempi per ciascuna.
- Lasciare una risposta errata come target invece di correggerla nel dataset.
Riferimenti e letture di approfondimento
Le fonti esterne si aprono in una nuova scheda.
- 01Datasheets for DatasetsGebru et al., 2018 · arXiv · arxiv.orgI motivi per registrare come ogni dataset è stato raccolto e cosa contiene.
- 02DatasetsHugging Face docs · huggingface.coCome l'ecosistema open-source archivia, gestisce le versioni e condivide i dati di addestramento.
- 03Deduplicating Training Data Makes Language Models BetterLee et al., 2021 · arXiv · arxiv.orgPerché vale la pena rimuovere gli esempi duplicati.