Instruction tuning: da completatore ad assistente

Un modello linguistico appena addestrato non risponde alle domande: le continua. L'instruction tuning è il passaggio che trasforma un completatore di testo in un assistente che capisce cosa gli stai chiedendo.

Provate a chiedere a un modello linguistico «grezzo» — uno appena uscito dal pre-training, senza alcuna rifinitura — di scrivere una ricetta della carbonara. È probabile che non la scriva. Potrebbe rispondere con altre dieci richieste simili: «Scrivi una ricetta dell’amatriciana. Scrivi una ricetta della gricia. Scrivi una ricetta della cacio e pepe.» Non è impazzito, e non vi sta prendendo in giro. Sta facendo esattamente ciò per cui è stato addestrato: prevedere come continua un testo. E su internet, una frase come «scrivi una ricetta della carbonara» compare spesso dentro liste di esercizi, tracce di compiti, raccolte di prompt. Il modello completa il pattern più probabile, non esegue l’ordine.

Instruction tuning, LoRA, RLHF e DPO: tutto quello che succede dopo il pre-addestramento è nel libro.

Leggi «Dopo il pre-addestramento: istruzioni, preferenze, allineamento» nel libro →

Il salto da questo comportamento — tecnicamente corretto, praticamente inutile — a quello di un assistente che risponde davvero è merito di una fase di addestramento chiamata instruction tuning. È una delle idee più semplici e più decisive nella storia recente degli LLM, ed è il motivo per cui oggi possiamo «parlare» con questi sistemi invece di doverli ingannare con prompt costruiti ad arte.

Il problema: un motore senza volante

Il pre-training produce un oggetto straordinario e scomodo. Straordinario perché, macinando trilioni di token, il modello ha assorbito grammatica, fatti, stili, strutture argomentative, persino rudimenti di ragionamento. Scomodo perché tutta questa conoscenza è accessibile solo attraverso un’interfaccia primitiva: la continuazione di testo.

Un’analogia utile è quella del motore su un banco di prova. Il pre-training costruisce un motore potentissimo, ma senza volante, pedali o cambio: gira, consuma, produce energia, ma non puoi guidarlo da nessuna parte. Nei primi anni degli LLM, gli utenti esperti aggiravano il problema con il prompt engineering più artigianale: invece di chiedere «traduci questa frase in inglese», scrivevano «Italiano: il gatto dorme. Inglese:» e lasciavano che il modello completasse. Funzionava, ma era fragile e controintuitivo. L’utente doveva pensare come il modello, invece del contrario.

La ricetta: esempi di istruzioni eseguite bene

L’instruction tuning ribalta la prospettiva con una mossa quasi banale: un secondo addestramento, molto più breve del primo, su un dataset di coppie istruzione → risposta ideale. Decine o centinaia di migliaia di esempi in cui qualcuno chiede qualcosa e qualcuno risponde bene: «Riassumi questo articolo» seguito da un buon riassunto, «Spiega la fotosintesi a un bambino» seguito da una spiegazione semplice e corretta, e così via, su compiti il più possibile vari.

Tecnicamente è un fine-tuning supervisionato (SFT, supervised fine-tuning): stessa funzione di perdita del pre-training, la solita previsione del token successivo, ma su dati con una forma precisa. Il modello non impara nuova conoscenza in senso stretto — quella l’ha già assorbita — impara un formato di comportamento: quando il testo ha la forma di una richiesta, ciò che segue è l’esecuzione della richiesta, non la sua continuazione statistica.

L’instruction tuning non insegna al modello cose nuove: gli insegna che una domanda va trattata come una domanda, non come l’inizio di una lista di domande.

Per riprendere l’analogia: non stiamo potenziando il motore, stiamo montando il volante. Ed è per questo che bastano relativamente pochi dati. Il pre-training richiede trilioni di token; un instruction tuning efficace può funzionare con qualche decina di migliaia di esempi di alta qualità, come ha mostrato la linea di ricerca inaugurata dal paper LIMA di Meta («Less Is More for Alignment», 2023), che ottenne risultati notevoli con circa mille esempi curati a mano.

Prima e dopo, sullo stesso prompt

La differenza si vede meglio con un confronto diretto. Stesso identico prompt, due modelli: uno base, uno instruction-tuned.

Prompt (identico) «Scrivi una ricetta della carbonara» Modello base solo pre-training Modello instruction-tuned pre-training + SFT su istruzioni «Scrivi una ricetta dell’amatriciana. Scrivi una ricetta della gricia. Scrivi una ricetta della cacio e pepe. Esercizio 4: descrivi il pesto…» Continua il pattern del testo «Ingredienti per 4 persone: 320 g di spaghetti, 150 g di guanciale, 4 tuorli, pecorino romano, pepe. 1. Rosolare il guanciale…» Esegue l’istruzione Stessa conoscenza, comportamento diverso: cambia il formato appreso, non i fatti.

Lo stesso prompt dato a un modello base e a uno instruction-tuned: il primo continua il testo come se fosse una lista di esercizi, il secondo esegue la richiesta.

Il punto cruciale è che entrambi i modelli «sanno» fare la carbonara: la ricetta è nei dati di pre-training di tutti e due. La differenza è che solo il secondo ha imparato a interpretare la frase come un compito da svolgere. La conoscenza era già lì; l’instruction tuning ha costruito il canale per tirarla fuori.

Da dove vengono gli esempi

La qualità di un modello instruction-tuned dipende in larga parte dal suo dataset di istruzioni, e costruirlo è meno banale di quanto sembri. Le fonti principali sono tre.

  • Annotatori umani: persone pagate per scrivere richieste realistiche e risposte esemplari. È la via più costosa e quella con la qualità più controllabile; è il cuore dell’approccio descritto da OpenAI nel paper su InstructGPT (2022), il diretto antenato di ChatGPT.
  • Dataset accademici riconvertiti: compiti NLP esistenti (traduzione, riassunto, domande e risposte) riformulati come istruzioni in linguaggio naturale. È la strada di lavori come FLAN di Google, che ha mostrato come l’addestramento su migliaia di compiti diversi migliori la capacità di generalizzare a compiti mai visti.
  • Dati sintetici: istruzioni e risposte generate da un altro modello già capace, poi filtrate. Approccio reso popolare da Self-Instruct e dai modelli tipo Alpaca; economico, ma con il rischio di ereditare i difetti e lo stile del modello «insegnante».

Una lezione emersa con chiarezza negli ultimi anni: la varietà e la qualità contano più della quantità. Diecimila esempi eterogenei e ben scritti battono un milione di esempi ripetitivi. È come imparare le buone maniere: non servono centomila cene di gala, ne bastano poche decine, purché fatte bene e in contesti diversi.

Cosa l’instruction tuning non risolve

Onestà intellettuale imposta una precisazione: l’instruction tuning rende il modello ubbidiente, non affidabile né innocuo. Un modello instruction-tuned esegue le richieste, incluse quelle a cui non dovrebbe rispondere, e le esegue con sicurezza anche quando non sa la risposta — le allucinazioni non spariscono, anzi diventano più insidiose perché arrivano confezionate in un tono da assistente competente.

Per questo, nella pipeline di addestramento dei modelli moderni, l’SFT su istruzioni è solo il secondo di tre passi: dopo viene l’allineamento alle preferenze umane (RLHF, o alternative come DPO, di cui abbiamo scritto in altri articoli di questa serie), che insegna al modello a preferire risposte utili, oneste e non dannose. Se il pre-training costruisce il motore e l’instruction tuning monta il volante, l’RLHF è la scuola guida: impari non solo a sterzare, ma quando frenare.

Perché riguarda anche chi non addestra modelli

Capire l’instruction tuning cambia il modo in cui si usano gli LLM tutti i giorni. Primo: spiega perché i modelli rispondono meglio a istruzioni esplicite e strutturate — è letteralmente il formato su cui sono stati rifiniti, e un prompt che assomiglia agli esempi di addestramento ottiene risposte migliori. Secondo: spiega la differenza tra i modelli «base» e «instruct» che trovate su Hugging Face — se scaricate un base model aspettandovi un chatbot, resterete delusi, ma per certi usi (completamento di codice, generazione libera) il base model è la scelta giusta. Terzo: se fate fine-tuning per la vostra azienda, sapere che il comportamento si plasma con poche migliaia di esempi ben curati vi dice dove investire: nella qualità dei dati, non nella loro mole.

La prossima volta che un assistente AI risponde alla vostra domanda invece di elencarne altre dieci simili, saprete che quel comportamento non è nato con il modello. È stato insegnato, esempio dopo esempio — ed è la parte dell’addestramento che assomiglia di più all’educazione.

I commenti sono riservati agli iscritti.

Accedi per commentare