Cos'è la pipeline
Il fine-tuning è raramente un'azione singola. Un risultato utile richiede gli esempi giusti, preparati nel formato corretto, addestrati con impostazioni sensate e poi verificati rispetto al modello di partenza. Scalata suddivide questo processo in fasi, ognuna delle quali utilizza l'output della precedente e produce qualcosa che è possibile aprire e ispezionare.
- 01Sessioniselezionare le chat
- 02Datasetraccogliere esempi
- 03Providerdove viene addestrato
- 04Preparazione datipulire + convertire
- 05Addestramentoeseguire il job
- 06Valutazionedimostrare il miglioramento
- 07Chat di testprovare direttamente
- 08Utilizzomettere in funzione
Le fasi, una per una
| Fase | Cosa entra | Cosa esce |
|---|---|---|
| Sessioni | Le Sue chat in Scalata, o le chat importate da altre app | Le conversazioni da cui apprendere |
| Dataset | Chat selezionate, esempi sintetici o importati, documenti opzionali e le risposte scelte come target | Un'istantanea congelata di esempi |
| Provider | Dove il modello verrà addestrato ed erogato | Una piattaforma e i modelli che offre |
| Preparazione dei dati | Un dataset e le impostazioni di pulizia | File JSONL puliti, oscurati e suddivisi nel formato del provider |
| Addestramento | File preparati, un modello di base, un metodo e delle impostazioni | Un modello addestrato, le sue curve di perdita e il suo costo |
| Valutazione | Il modello addestrato, il suo modello di partenza e le domande escluse dall'addestramento | Risposte affiancate, punteggi dei giudici e una percentuale di successo |
| Chat di test | Un modello addestrato | Un deployment temporaneo con cui è possibile interagire |
| Utilizzo | Un modello che ha superato la valutazione | Il modello in funzione in Scalata (prossimamente) |
Perché ogni fase è un record separato
Ogni fase scrive un record che i lavori successivi non modificano. Un dataset è una copia delle chat, non un link ad esse. Una preparazione dei dati conserva i file esatti che ha prodotto. Un'esecuzione di addestramento conserva la preparazione utilizzata, le sue impostazioni e il prezzo preventivato al momento dell'avvio. Questo rende i risultati riproducibili — a distanza di mesi è ancora possibile stabilire quali chat, quali impostazioni di pulizia e quali iperparametri hanno prodotto un determinato modello — e rende i confronti equi, poiché due esecuzioni addestrate dalla stessa preparazione hanno effettivamente visto gli stessi dati.
Inoltre, consente di creare ramificazioni. Un dataset può essere preparato due volte con impostazioni diverse, una preparazione può addestrare più modelli e un modello addestrato può essere il punto di partenza per un'altra esecuzione.
Da dove derivano solitamente i problemi
I risultati deludenti sono solitamente riconducibili alle fasi iniziali piuttosto che alle impostazioni di addestramento:
- Target errati o incoerenti nel dataset — il modello li apprende fedelmente.
- Nessun dato escluso nella preparazione dei dati, quindi la valutazione misura la memoria invece della competenza.
- Una discrepanza tra addestramento e utilizzo — un prompt di sistema diverso, o domande reali che non assomigliano per nulla alle chat di addestramento.
- Diverse modifiche simultanee tra un'esecuzione e l'altra, per cui non è possibile stabilire quale sia stata utile.
- Sessioni → Dataset: Vengono esaminate 400 chat di supporto; 320 contengono risposte sufficientemente valide da essere utilizzate come target.
- Provider → Preparazione dei dati: la pulizia rimuove le risposte di errore e i duplicati, i dati personali vengono oscurati, il 10% delle conversazioni viene tenuto da parte come set di test per la valutazione e il 10% del resto viene escluso per la convalida.
- Addestramento: fine-tuning supervisionato con impostazioni Auto, come baseline.
- Valutazione: il modello addestrato e il modello di base rispondono alle domande di test escluse in precedenza. Un giudice preferisce il modello addestrato per la maggior parte di esse e le sue motivazioni indicano una debolezza nelle domande relative alla fatturazione.
- Ciclo successivo: ulteriori chat sulla fatturazione vengono inserite in un nuovo dataset e il ciclo si ripete. È cambiata solo una cosa, quindi la valutazione successiva mostrerà se è stata utile.
Errori comuni
- Ottimizzare le impostazioni di addestramento prima di controllare il dataset.
- Modificare il dataset, le impostazioni di preparazione e gli iperparametri nella stessa esecuzione.
- Saltare la valutazione perché la perdita di addestramento è diminuita.
- Eliminare le vecchie esecuzioni invece di archiviarle, perdendo così lo storico di ciò che è stato testato e del motivo per cui ha fallito.
Riferimenti e letture di approfondimento
Le fonti esterne si aprono in una nuova scheda.
- 01Datasheets for DatasetsGebru et al., 2018 · arXiv · arxiv.orgPerché ogni dataset dovrebbe essere accompagnato da un record della sua provenienza e di come è stato creato.
- 02Model Cards for Model ReportingMitchell et al., 2018 · arXiv · arxiv.orgLa stessa idea per i modelli addestrati: documentare su cosa sono stati addestrati e valutati.
- 03Supervised fine-tuningOpenAI API docs · developers.openai.comLa versione di un provider in hosting della stessa pipeline: preparazione dei dati, addestramento, valutazione.
- 04Customize your model to improve its performance for your use caseAmazon Bedrock User Guide · docs.aws.amazon.comCome un altro provider struttura i processi di personalizzazione.