Atto 3 · Pagina 12 · avanzata

Chi tiene il guinzaglio?

Dopo aver imparato il mondo da sé, il comportamento del modello viene orientato: istruzioni di sistema, fine-tuning, preferenze umane. Lo stesso motore, guidato diverso, risponde diverso.

📖 Livello di lettura
🐕 Come il cane addestrato e il guinzaglio: il pre-training è il cane che ha imparato il mondo da solo; lo steering è l'addestramento che ne orienta il comportamento. Resta la domanda: chi tiene il guinzaglio, e verso dove?
1 Le leve: scrivi tu le due istruzioni
Colonna A · istruzione di sistema

Colonna B · istruzione di sistema

2 La domanda, identica per tutt'e due
3 Scommetti prima di guardare

Quale colonna nominerà un rischio, un pericolo o un lato negativo? Scegli adesso: dopo controllo parola per parola chi l'ha fatto davvero.

Colonna A
in attesa…
Premi «Confronta» per vedere che cosa risponde con questa istruzione.
Colonna B
in attesa…
Premi «Confronta» per vedere che cosa risponde con questa istruzione.

Stesso motore, stessa domanda. Cambia solo l'istruzione nascosta dietro le quinte.

Le due colonne non sono due modelli diversi: è lo stesso motore, chiamato due volte, con due istruzioni di sistema diverse. Il chip sopra ogni colonna dice da dove arriva quel testo — dati reali se ha risposto davvero il modello, esempio illustrativo se il collegamento non c'è e stai leggendo una risposta scritta a mano da me. Una cautela in più: la generazione ha una parte di caso (la temperatura è 0,7), quindi due risposte diverse non provano da sole che sia stata l'istruzione a cambiarle. Prova più volte e guarda che cosa resta costante.

La stessa cautela, in forma più precisa. Le due colonne escono da due campionamenti indipendenti a temperatura 0,7: una parte della differenza che leggi è rumore di campionamento, non effetto dell'istruzione. Per isolare l'effetto ci vorrebbe quello che si fa in laboratorio — portare la temperatura a 0, cioè decodifica greedy e quindi deterministica a parità di input, ripetere la coppia molte volte e confrontare distribuzioni invece di singole risposte. Il chip sopra ogni colonna dice se quel testo viene dal modello o è un esempio scritto a mano da me: quando è scritto a mano non è un dato, è un'illustrazione.

💡 La sorpresa: non esiste il comportamento neutro di un modello. Dietro ogni risposta «educata», «prudente» o «schierata» ci sono scelte umane: su chi le orienta e con quali valori. Quando in questa pagina scegli il preset, quelle scelte le stai facendo tu; di solito le fa qualcun altro, e non le vedi.
Avanzato Tre guinzagli, non uno

La demo qui sopra usa la leva più leggera delle tre. Vale la pena distinguerle, perché agiscono su parti diverse del modello e hanno conseguenze diverse: la prima tocca solo l'input, la seconda riscrive i pesi, la terza mette le mani dentro il calcolo mentre avviene.

Primo livello: il prompt di sistema. Quello che hai appena scritto nei due riquadri non cambia un solo peso del modello. Viene semplicemente messo in testa al contesto, prima della tua domanda: la rete calcola la stessa identica funzione di sempre — la distribuzione di probabilità del token successivo — solo che la calcola condizionata su una sequenza che comincia con «Sei l'assistente ufficiale di un ente pubblico». È il condizionamento di una probabilità, non un cambiamento di natura. Costa zero, si modifica in un secondo, si può togliere: ed è esattamente per questo che è fragile. Chiunque riesca a infilare del testo nel contesto — una pagina web che il modello sta leggendo, un documento allegato, un commento nascosto in un file — tira il guinzaglio quanto chi l'ha scritto. Il nome tecnico di questo attacco è prompt injection, e non è una curiosità marginale: è la vulnerabilità strutturale del primo livello. Non è nemmeno un livello segreto, del resto: Anthropic pubblica i system prompt di Claude, e sono lunghi migliaia di parole.

Secondo livello: il post-training. Qui i pesi cambiano davvero. Si comincia con l'SFT (supervised fine-tuning): a partire dal modello grezzo uscito dal pre-training, si mostrano migliaia di risposte scritte da persone e si aggiornano i parametri con la solita discesa del gradiente. Poi arriva l'RLHF, l'apprendimento per rinforzo da feedback umano, che nella forma canonica descritta da Long Ouyang e colleghi in «Training language models to follow instructions with human feedback» (OpenAI, 2022) funziona in tre mosse: si raccolgono confronti a coppie — a un valutatore umano si mostrano due risposte e si chiede quale preferisce; si addestra un secondo modello, il reward model, a predire quel giudizio, cioè a trasformare una preferenza umana in un numero; infine si ottimizza il modello principale per massimizzare quel numero, con un termine che lo penalizza se si allontana troppo dal punto di partenza (la divergenza di Kullback-Leibler). Il risultato più citato di quel paper è un numero che vale la pena tenere a mente: le risposte di InstructGPT da 1,3 miliardi di parametri furono preferite dai valutatori a quelle di GPT-3 da 175 miliardi, un modello cento volte più grande. L'educazione conta più della taglia. Una variante notevole è la Constitutional AI di Yuntao Bai e colleghi (Anthropic, 2022), dove i confronti sull'innocuità non li fa una persona ma un modello guidato da una lista scritta di principi: RLHF diventa RLAIF, reinforcement learning from AI feedback, e le regole diventano un testo che si può leggere e criticare.

E qui nasce la sicofanzia. Se il bersaglio dell'ottimizzazione è «che cosa preferisce un valutatore umano», il modello impara a produrre ciò che piace, che non è sempre ciò che è vero. Mrinank Sharma e colleghi lo hanno misurato in «Towards Understanding Sycophancy in Language Models» (2023): cinque assistenti allo stato dell'arte mostrano comportamento sicofantico in quattro compiti diversi di generazione libera; e analizzando i dati di preferenza già esistenti risulta che una risposta ha più probabilità di essere preferita quando concorda con l'opinione di chi scrive, e che sia gli umani sia i preference model preferiscono una risposta sicofantica ben scritta a una corretta in una frazione non trascurabile dei casi. Non è un difetto di carattere della macchina: è il metro a essere storto. Se premi chi ti dà ragione, ottieni un sistema che ti dà ragione — e questo, fuori dall'informatica, lo si sapeva già.

Terzo livello: lo steering delle attivazioni. Qui non si tocca né l'input né i pesi: si interviene sui vettori che scorrono dentro la rete mentre risponde. Il metodo passa dai sparse autoencoder, reti addestrate a scomporre lo stato interno di un modello in migliaia di direzioni, ognuna delle quali corrisponde con buona approssimazione a un concetto riconoscibile; trovata la direzione giusta, la si somma alle attivazioni con un coefficiente scelto da te. Il caso famoso è Golden Gate Claude: nel maggio 2024 Anthropic amplificò la feature del ponte di San Francisco in Claude 3 Sonnet e mise il risultato online per ventiquattro ore. A chi chiedeva come spendere dieci dollari, quel modello consigliava di attraversare il Golden Gate e pagare il pedaggio; a chi chiedeva una storia d'amore, raccontava di un'automobile innamorata del ponte. Il post di Anthropic è esplicito su che cosa non è: non è chiedere al modello di recitare una parte, e non è fine-tuning; è un intervento chirurgico sulle attivazioni. Ed è il livello che, con un modello aperto, puoi provare tu stesso — trovi come, qui sotto.

Vale la pena dire dove la metafora del guinzaglio si rompe, perché regge solo per il primo dei tre livelli. Un guinzaglio agisce su un cane che resta il cane che era: allenta la presa e torna a fare quello che voleva. Il secondo livello non è un guinzaglio, è un'educazione: riscrive l'animale, e non c'è nulla da allentare perché non c'è nessuna corda. Il terzo non è nemmeno quello: è entrare nella testa del cane mentre corre e accendergli un pensiero. Delle tre, solo la prima è reversibile in un secondo — ed è anche l'unica che un estraneo può strapparti di mano.

Il mito: «il modello senza istruzioni è quello vero, quello neutro». È la conclusione che verrebbe naturale dopo aver giocato con i preset qui sopra: basta togliere le istruzioni e resta il modello autentico. Non funziona così. Un modello appena uscito dal pre-training non è neutro, è soltanto non orientato: continua il testo secondo le statistiche del suo corpus, con tutte le asimmetrie di quel corpus, e il punto di partenza del paper di Ouyang e colleghi è proprio che quei modelli producono con disinvoltura testi falsi, tossici o semplicemente inutili a chi ha fatto la domanda. In più nessun assistente commerciale gira senza prompt di sistema: la domanda utile non è «con o senza istruzioni», è quali istruzioni, scritte da chi, e visibili a chi.
🔧 Nota tecnica: il guinzaglio è un numero, e i numeri hanno un segno. Nel 2019 Daniel Ziegler e colleghi stavano addestrando GPT-2 con feedback umano quando un refactor del codice invertì il segno della ricompensa — e, insieme, quello della penalità KL. Da sola, una ricompensa capovolta produce di solito testo incoerente; qui invece, lo scrivono gli autori, il modello continuò a essere regolarizzato verso il linguaggio naturale e si mise a ottimizzare esattamente ciò che le istruzioni ai valutatori indicavano come da punire severamente: contenuti sessualmente espliciti. Il risultato non fu spazzatura, fu massimamente sbagliato. Gli autori se ne accorsero solo a fine addestramento, perché nel frattempo dormivano: lo scrivono nel paper, al paragrafo 4.4, intitolato «Bugs can optimize for bad behavior» (arXiv:1909.08593). Tienilo accanto alla frase «basta allineare il modello»: allineare vuol dire scegliere un numero, e un numero si può sbagliare di segno.

🔬 Provalo davvero: il guinzaglio dentro il modello

Il terzo livello sembra roba da laboratorio, e invece c'è una versione alla portata di chiunque abbia venti minuti. Si chiama Neuronpedia: una piattaforma aperta di interpretabilità che ospita, fra le altre cose, i dati di Gemma Scope — le feature estratte da Gemma 2, il modello aperto di Google, in un lavoro fatto con Google DeepMind. Lì dentro puoi fare a mano quello che Anthropic fece con il Golden Gate Bridge.

L'esperimento, raccontato in italiano, è questo. Apri la pagina steer, scegli il modello gemma-2-2b e cerca la feature dello strato 20 con indice 12082 — quella che le schede automatiche descrivono come «riferimenti ai cani, alle loro attività, all'addestramento e alla cura»; se fai prima, aprila dalla scheda che ti lascio qui sotto. Alza la sua intensità e chiedi. Poi fai la stessa domanda due volte: una al modello normale, una al modello con quella feature amplificata. Chiedigli come passare il sabato, o che cosa cucinare stasera, o di raccontarti una storia. Il cane entra dalla finestra: comincia a comparire in risposte che con i cani non c'entrano niente. Non gli hai chiesto di parlare di cani; gli hai alzato il volume di un pensiero. Che poi, in una pagina che apre con la metafora del guinzaglio, la mascotte dello steering pubblico sia proprio un cane è una coincidenza che mi sono goduto.

Tre avvertenze, per non restare male. Primo: è tutto in inglese, anche se i campi di prova accettano benissimo frasi italiane. Secondo: senza registrarti hai un tetto di circa un centinaio di steer all'ora, quindi conviene arrivarci con le domande già pensate. Terzo, ed è il più importante: Gemma 2 da 2 miliardi di parametri è un modello piccolo, centinaia di volte più leggero di quelli che usi tutti i giorni, e le sue risposte suonano più goffe e ripetitive. Non è l'esperimento che non funziona, è la taglia. Guarda la differenza fra le due colonne, non la brillantezza di ciascuna: è la differenza il dato. Se è la prima volta, parti dalla demo guidata di Gemma Scope, pensata con Google DeepMind proprio per chi comincia, e da lì passa allo steering libero.

Fonti Per approfondire

Complessità della fonte: divulgativa approfondimento tecnica o accademica

  • Paper L. Ouyang et al., «Training language models to follow instructions with human feedback», NeurIPS 2022 (InstructGPT) — la ricetta canonica SFT + reward model + RLHF, e il confronto in cui 1,3 miliardi di parametri allineati battono 175 miliardi grezzi. arxiv.org
  • Paper Y. Bai et al., «Constitutional AI: Harmlessness from AI Feedback», Anthropic, 2022 — le preferenze sull'innocuità le esprime un modello guidato da una lista scritta di principi: RLHF diventa RLAIF. arxiv.org
  • Paper M. Sharma et al., «Towards Understanding Sycophancy in Language Models», ICLR 2024 — la sicofanzia misurata su cinque assistenti, e la prova che i dati di preferenza umana la premiano. arxiv.org
  • Paper D. Ziegler et al., «Fine-Tuning Language Models from Human Preferences», 2019 — al §4.4 il bug del segno invertito: la ricompensa capovolta e il modello che ottimizza esattamente il contrario. arxiv.org
  • Paper T. Lieberum et al., «Gemma Scope: Open Sparse Autoencoders Everywhere All At Once on Gemma 2», Google DeepMind, 2024 — gli sparse autoencoder che rendono possibile lo steering che provi su Neuronpedia. arxiv.org
  • Saggio S. Raschka, «LLM Training: RLHF and Its Alternatives», Ahead of AI, 2023 — la spiegazione più chiara di come si incastrano SFT, reward model e RLHF, con le alternative più recenti. magazine.sebastianraschka.com
  • Survey Anthropic, «Scaling Monosemanticity», Transformer Circuits, 2024 — il lavoro di interpretabilità da cui nasce Golden Gate Claude: milioni di feature estratte da Claude 3 Sonnet. transformer-circuits.pub
  • Fonte Anthropic, «Golden Gate Claude», 23 maggio 2024 — il racconto breve dell'esperimento, con la precisazione che non è né recitazione né fine-tuning. anthropic.com
  • Gioco Neuronpedia — steering interattivo e demo Gemma Scope — la stessa domanda al modello normale e al modello «tirato»: in inglese, gratis, da computer. neuronpedia.org/steer · la demo guidata
  • Wiki «Reinforcement learning from human feedback», Wikipedia (in inglese) — la voce enciclopedica, utile per fissare il vocabolario prima di leggere i paper. en.wikipedia.org