Distillation e Deep Seek: la tecnica con cui un modello piccolo eredita le capacità di uno grande

Distillation e Deep Seek: la tecnica con cui un modello piccolo eredita le capacità di uno grande

Il 14 marzo 2026 ho avviato nella mia sandbox di sperimentazione AI un workload batch notturno: tremila classificazioni di documenti tecnici italiani, categoria editoriale e rischio di compliance, da eseguire su ciascun file caricato il giorno prima. Con Claude Opus 4.7 il costo stimato era circa 11 euro a run; con il modello locale Llama 3.3 70B quantizzato su una VPS CCX53 di Hetzner (16 vCPU AMD EPYC, 64 GB RAM) la latenza mediana saliva a 3,2 secondi per chiamata e la precisione crollava dal 94% al 71%. Il divario era troppo grande per essere accettabile ma il costo API a regime sarebbe arrivato a 300 euro al mese. La via d'uscita è stata la distillation: prendere le risposte di Claude su un set di mille esempi curati, usare quei dati per allenare un modello più piccolo, ottenere qualcosa a metà strada. Qui racconto cosa è la distillation davvero, perché OpenAI ha accusato DeepSeek di averla usata illecitamente e quando ha senso in una pipeline PMI italiana.

Cosa fa esattamente la distillation e cosa non fa?

La distillation è una tecnica di compressione in cui un modello piccolo (student) viene allenato sulle risposte di un modello grande (teacher) per ereditarne le capacità su un task specifico. Il paper fondazionale è Distilling the Knowledge in a Neural Network di Hinton, Vinyals e Dean del 2015, e nel decennio successivo è diventato uno degli strumenti principali per portare modelli frontier su hardware modesto.

Il meccanismo operativo ha tre passaggi. Primo: generi un dataset di input rappresentativi del task che ti interessa. Secondo: per ciascun input chiedi la risposta al modello teacher (tipicamente il più capace disponibile: GPT-5, Claude Opus, Gemini Pro, un grande modello open-weight). Terzo: alleni il modello student (molto più piccolo) a predire la stessa risposta su quello stesso input, cambiando i suoi pesi tramite supervised fine-tuning.

Il risultato non è un modello magico: è un modello piccolo che sa fare bene quella cosa specifica perché ha imparato da uno che la fa bene in generale. La generalità va persa: un Llama 3.3 8B distillato sulle risposte di Claude Opus 4.7 limitate al dominio della classificazione documentale italiana sarà ottimo su quel dominio e potenzialmente peggio del base Llama su altri task. Chi presenta la distillation come "ti regalo il modello grande in versione piccola" semplifica in modo ingannevole.

Perché DeepSeek è stata accusata di averla usata contro i termini di servizio di OpenAI?

Il 28 gennaio 2025 Bloomberg e il Financial Times hanno riportato che OpenAI e Microsoft stavano indagando sulla possibilità che DeepSeek avesse utilizzato tecniche di distillation contro output di GPT-4 per costruire DeepSeek V3, base del successivo R1. Riferimento diretto: OpenAI says it has evidence China's DeepSeek used its model su Financial Times, 28 gennaio 2025. La distillation in sé è lecita quando fatta sui propri modelli o su modelli autorizzati; diventa violazione di termini di servizio quando il teacher è un'API commerciale il cui uso esplicitamente la vieta.

OpenAI aveva previsto questa clausola nei Terms of Service proprio per impedire che i propri modelli venissero usati per addestrare concorrenti. DeepSeek ha negato, e la questione tecnica non è mai stata dimostrata pubblicamente (i fingerprint stilistici di un modello distillato sono sottili e contestabili). Ma il punto per una PMI italiana è diverso: se pianifichi di distillare un modello per usarlo in produzione, leggi i terms of service del teacher. Anthropic, OpenAI, Google hanno clausole esplicite contro la distillation verso competitor; i modelli open-weight (Llama, Mistral, DeepSeek stesso, Qwen) sono in genere ammessi come teacher dalle loro license, ma le condizioni Apache 2.0 o Llama Community License vanno verificate a monte del progetto.

Come ha reagito Anthropic? Il caso anti-distillation emerso dal codice di Claude Code

Il 31 marzo 2026 Anthropic ha accidentalmente pubblicato per breve tempo su un repository pubblico GitHub parte del sorgente di Claude Code, prontamente archiviato dalla comunità. L'analisi del codice ha rivelato, fra le varie feature, un modulo anti-distillation: quando il modello rileva pattern di chiamate sistematiche compatibili con una estrazione massiva (query ripetitive da uno stesso account, output molto formattato, assenza di conversational drift), inserisce nelle risposte delle tool call fittizie che contengono parametri o comportamenti incongruenti. Chi sta distillando ingenuamente cattura quelle risposte come gold standard e finisce per insegnare allo student un comportamento corrotto.

Questa è una mossa elegante: non blocca la distillation (che sarebbe facilmente aggirabile via API scrubbing) ma ne avvelena l'output in modo difficile da rilevare senza review manuale. Per una PMI che vuole distillare, la morale è: non fidarti mai ciecamente delle risposte del teacher. Campiona manualmente, confronta con soluzioni alternative, scarta gli outlier. La mia pipeline personale ha un passaggio di human-in-the-loop su almeno il 5% del dataset generato dal teacher prima di iniziare il training dello student.

Se vuoi vedere come costruisco pipeline di distillation con governance dei costi e validazione output strutturata, nel mio hub dedicato all'automazione AI per aziende trovi articoli tecnici con metodologia applicata e perimetro dichiarato.

Quando la distillation conviene davvero su un progetto PMI?

Quattro criteri operativi che applico prima di proporre una soluzione basata su distillation.

Volume di inferenze stabile e alto. Se fai meno di mille chiamate al giorno, i costi API di un modello frontier sono marginali e la distillation è una complessità inutile. Sopra le diecimila chiamate giornaliere costanti, l'economia comincia a cambiare.

Task ristretto e ben definito. Classificazione di documenti in un dominio specifico, estrazione di entità da fatture italiane, generazione di riassunti in uno stile fissato. Se il perimetro è sfumato (assistente generalista, chatbot cliente con conversazioni aperte), la distillation distrugge capacità che nascondono la loro utilità finché non servono.

Tolleranza agli errori misurabile. Devi poter definire una metrica di qualità numerica (precision/recall, F1, BLEU, accuracy) e un thresholds di accettabilità. Distillare senza poter misurare vuol dire navigare a vista.

Data sovereignty come vincolo vero. Se hai un requisito normativo che ti impedisce di mandare i dati a un'API americana, la distillation verso un modello self-hosted è una soluzione elegante. Per il contesto italiano su dati personali o sanitari, il parere del Garante Privacy sul ricorso a servizi AI esteri è ormai una variabile di progetto concreta.

Anatomia dei costi di una distillation reale

Un esempio numerico basato su un esercizio della mia sandbox. Obiettivo: portare la classificazione di documenti tecnici italiani da Claude Opus 4.7 a un Llama 3.3 8B distillato self-hosted.

  • Generazione dataset: 3.000 documenti, prompt medio 2.500 token, output medio 400 token, Claude Opus 4.7. Costo: circa 45 euro una tantum.
  • Annotazione human-in-the-loop: 150 esempi campionati (5% del dataset) revisionati manualmente, 4 ore di lavoro. Questo passaggio non è opzionale se il modello teacher è esposto a anti-distillation poisoning.
  • Training: 3 epoche di supervised fine-tuning su cloud GPU (una H100 per 6 ore tramite Lambda o Scaleway), costo circa 22 euro.
  • Validation: held-out set di 300 documenti mai visti dal modello, confronto con Claude Opus 4.7 come baseline.
  • Deploy: VPS Hetzner CCX53, costo fisso 75 euro al mese.

Break-even con l'uso diretto di Claude Opus 4.7 a regime di 10.000 classificazioni/giorno si raggiunge in circa 4 mesi, tenendo conto anche del costo di monitoraggio e retraining trimestrale. Se il volume è inferiore, meglio restare sull'API managed con prompt caching aggressivo, come descritto nel mio articolo su Anthropic prompt caching workspace.

Quando NON conviene distillare e un altro approccio è preferibile

RAG al posto di fine-tuning. Se il problema è "il modello non conosce i miei documenti aziendali", non serve distillation ma retrieval-augmented generation. I dati restano sotto il tuo controllo, si aggiornano in tempo reale, non ti legano a un training costoso.

Prompt caching al posto di distillation. Se il costo per chiamata è spinto in alto da un system prompt o da un contesto ricorrente, la distillation è eccessiva: basta cachare il contesto condiviso. Con Anthropic prompt caching al 10% del prezzo input standard, molte pipeline scendono del 70-90% senza toccare il modello.

Modello più piccolo disponibile dal vendor. Haiku 4.5, Gemini 3.1 Flash, GPT-5.1 Mini sono sufficienti per un'ampia fetta di task che non richiedono davvero Opus o Pro. Testare il tier più basso prima di mettere in campo distillation è igiene progettuale.

Quantization da sola. Se hai già un modello base open-weight che risolve il tuo task ma non sta nella VRAM disponibile, una quantization INT8 o Q4_K_M di solito è più veloce da mettere in piedi e ha rischio di regressione molto più basso della distillation.

Cosa ha fatto DeepSeek apertamente nel paper R1: distillation dichiarata

Parallelamente alle accuse di OpenAI sul presunto uso di GPT-4 come teacher per V3, DeepSeek ha pubblicato in modo trasparente nel paper DeepSeek-R1: Incentivizing Reasoning Capability in LLMs via Reinforcement Learning, gennaio 2025, una serie di sei modelli distill: DeepSeek-R1-Distill-Qwen-1.5B, 7B, 14B, 32B e DeepSeek-R1-Distill-Llama-8B, 70B. Il teacher dichiarato è R1 stesso, modello reasoning MoE 671B. Gli studenti sono base Qwen 2.5 e Llama 3.1 ri-allenati su 800.000 sample generati dal reasoning trace di R1.

Il risultato tecnico riportato nel paper è significativo: il 7B distillato batte GPT-4o su AIME 2024 (55,5% vs 9,3%) e su MATH-500 (92,8% vs 74,6%). Il 32B distillato è vicino a o1-mini. Questi numeri vanno letti con la consapevolezza dei limiti di cui ho parlato nei draft precedenti (data contamination, shot settings, benchmark maxing), ma il messaggio architetturale regge: la distillation può trasferire capacità di reasoning, non solo di surface knowledge, a condizione che il dataset di training catturi le reasoning trace del teacher e non solo le risposte finali. Questo è un dettaglio spesso sottovalutato: distillare una risposta secca è semplice ma limitato; distillare il processo di ragionamento richiede che il teacher esponga la sua chain-of-thought in modo strutturato.

Per una PMI che vuole replicare in piccolo questa logica, la lezione operativa è: se il tuo task richiede reasoning (e non solo classificazione o estrazione), il dataset di training deve includere i passaggi intermedi, non solo l'output finale. I modelli che espongono le reasoning trace (DeepSeek R1, Claude thinking mode, OpenAI o-series) sono teacher adatti; quelli che mostrano solo la risposta finale sono teacher mutili.

Distillation, LoRA e adapter: non sono la stessa cosa

Capita di vedere "distillation" usata come sinonimo di Low-Rank Adaptation o di adapter tuning. Non lo sono, e la distinzione ha impatto operativo.

Distillation cambia tutti i pesi del modello student, ripartendo da un modello base open-weight. Il risultato è un modello nuovo, pesante quanto lo student originale, portabile ovunque.

LoRA (paper originale 2021) addestra solo matrici a basso rango aggiunte agli strati attention del modello base, lasciando i pesi originali congelati. Il risultato è un file di adapter molto leggero (decine di megabyte) che si innesta sopra il modello base. Veloce, economico, ma hai bisogno sempre del base model in produzione.

Adapter tuning è una famiglia più ampia che include LoRA, prefix tuning, prompt tuning. Tutti lasciano il base model intatto e addestrano componenti aggiuntive.

Quando scegliere cosa? Distillation per portare capacità da un modello API a un modello locale diverso; LoRA per specializzare un modello open-weight che userai in full-size in produzione. Mescolarli è possibile (distilli per ottenere lo student, poi fai LoRA sullo student per adattamenti successivi) ma aggiunge complessità operativa.

Come trattare la distillation in un contratto con un system integrator

Queste sono le clausole che chiedo ogni volta che un fornitore propone una componente "modello proprietario distillato".

  • Teacher model dichiarato esplicitamente, con versione e data del dataset di generazione.
  • Licenza del teacher dichiarata, con estratto esplicito delle condizioni rilevanti per distillation.
  • Dataset di training (almeno la sua composizione ad alto livello) documentato, con evidenza di review umana su un campione minimo del 5%.
  • Test set separato con metrica numerica dichiarata e threshold di accettabilità.
  • Diritto di retrigger del training su nuovo dataset in caso di drift di performance, senza costi aggiuntivi oltre a quelli GPU.
  • Portabilità del modello allenato (pesi, tokenizer, script di inference) in mano al cliente, senza lock-in sul cloud del fornitore.

Senza queste sei voci un "modello distillato proprietario" è una black box commercialmente rischiosa: nessuno in azienda può auditarla, retrigger-arla o migrarla, e il fornitore diventa insostituibile. Ho visto PMI pagare mensilmente una tassa per un modello distillato su un dataset di tremila documenti di cui il fornitore aveva perso traccia in due anni. Se stai valutando un progetto in cui la distillation è sul tavolo e vuoi capire se l'economia regge, se la pipeline è verificabile e se il vendor sta proponendo un'architettura ragionevole o una scorciatoia commerciale, il modulo di preventivo gratuito ti risponde in due minuti se il caso rientra nel mio ambito. Distillazione fatta bene è uno strumento potente; distillazione fatta male è debito tecnico che non si estingue.

Ultima modifica: