Cos'è la distillazione di modelli IA e come imparano i modelli piccoli da quelli grandi?

Di 쉬었음.com

La distillazione di modelli IA è una tecnica di addestramento in cui un modello studente più piccolo e leggero apprende parte del comportamento predittivo di un modello insegnante più grande, più capace ma anche più pesante e costoso. Il suo nome formale è in genere knowledge distillation (KD). L'idea centrale non è semplicemente ridurre o copiare i parametri del modello grande. Lo studente viene invece addestrato ex novo per assomigliare alla distribuzione delle risposte dell'insegnante per gli stessi input e, in alcuni casi, anche alle sue rappresentazioni interne.arxiv.org

Il motivo di questa tecnica è abbastanza chiaro. I modelli grandi possono funzionare bene su problemi complessi, ma in produzione sono soggetti a vincoli quali latenza di risposta, memoria, energia, costi dei server e capacità del dispositivo. La distillazione consente di usare la capacità computazionale del grande insegnante durante l'addestramento, distribuendo poi uno studente più piccolo in fase operativa. Il modo migliore per comprendere la distillazione, quindi, non è considerarla una magia che concentra l'intelligenza in una forma più piccola, bensì una strategia per allocare i costi di addestramento e i costi operativi a modelli diversi.arxiv.org

Perché creare un modello studente invece di usare direttamente il modello grande?

I requisiti dello sviluppo e dell'operatività di un modello sono diversi. Durante l'addestramento può essere possibile investire molto tempo e risorse computazionali considerevoli, mentre i servizi in produzione richiedono spesso tempi di risposta brevi e costi prevedibili. In ambienti come dispositivi mobili, apparecchiature embedded, API che gestiscono grandi volumi di richieste o deployment che devono eseguire inferenza sul dispositivo per ragioni di privacy, dimensione del modello e latenza diventano requisiti di prodotto.arxiv.orgarxiv.org

Si consideri un servizio di classificazione dei documenti. Per un'attività di revisione interna, in cui è accettabile analizzare un documento per alcuni secondi, può esserci margine per usare un modello grande. Ma se gli utenti devono vedere subito un risultato di classificazione quando premono un pulsante, oppure se milioni di documenti devono essere elaborati continuamente, la memoria e il tempo richiesti per ogni inferenza si accumulano. Se un modello studente mantiene prestazioni sul compito vicine a quelle dell'insegnante, può essere un'opzione che soddisfa i requisiti operativi anche a costo di sacrificare in parte la qualità.

Tuttavia, non è sicuro concludere che un modello più piccolo sia sempre più economico. Il numero di parametri è un indicatore importante dell'uso di archiviazione e memoria, ma la velocità effettiva dipende anche dalla lunghezza dell'input, dalla dimensione del batch, dalle librerie di calcolo, dall'hardware e dai costi di trasferimento della memoria. Per questo, le cifre di accelerazione riportate in un articolo non dovrebbero essere applicate invariate ad altro hardware e ad altri carichi di lavoro.arxiv.orgarxiv.org

Cosa si scambiano i modelli insegnante e studente nella knowledge distillation?

Nell'apprendimento supervisionato ordinario, la risposta corretta viene fornita come singola etichetta, ad esempio “questa immagine è un gatto” o “questa frase è positiva”. Questo può essere chiamato hard target. Un modello insegnante, tuttavia, non produce una sola risposta; calcola punteggi o probabilità differenti per ogni possibile risposta. Per un'immagine, per esempio, può prevedere gatto 0,70, volpe 0,20 e cane 0,08.

La distillazione usa questa distribuzione come materiale di addestramento aggiuntivo per lo studente. Oltre al fatto che gatto è la risposta corretta, trasmette il segnale che l'insegnante ha considerato l'input in qualche misura simile a una volpe e meno simile a un cane. Hinton e coautori hanno spiegato che questi soft target possono trasmettere informazioni utili che non possono essere contenute in una singola hard label.arxiv.org

In questo contesto, “conoscenza” non indica un elenco di regole scritto in linguaggio umano. Più precisamente, indica la funzione appresa e i pattern comportamentali dell'insegnante, che mappano input specifici in output. Lo studente può non conservare direttamente i parametri dell'insegnante e può avere un numero diverso di layer o un'architettura differente. Ciò che conta è che, per un dato input, l'output o la rappresentazione dello studente si avvicini a quella dell'insegnante secondo l'obiettivo scelto.arxiv.orgarxiv.org

Come funzionano soft target e temperatura?

Il layer finale di un modello di classificazione produce comunemente punteggi chiamati logits e li converte poi in una distribuzione di probabilità tramite la funzione softmax. Nella distillazione si può usare una softmax che divide i logits dell'insegnante e dello studente per una temperatura (T), rendendo la distribuzione più uniforme.

[ p_i^{(T)}=\frac{\exp(z_i/T)}{\sum_j\exp(z_j/T)} ]

Qui (z_i) è il logit della classe (i). Quando (T=1), si tratta della softmax ordinaria. Aumentare la temperatura appiattisce una distribuzione concentrata solo sulla classe con la probabilità più alta. Ciò può rendere disponibili come segnali di apprendimento le differenze relative tra le classi di rango inferiore. Per questo è incompleto descrivere la temperatura semplicemente come un modo per “sfocare la risposta dell'insegnante”. La temperatura non è un interruttore che aumenta automaticamente la quantità di informazioni; è un controllo che modifica la forma della distribuzione dalla quale lo studente apprende.arxiv.orgproceedings.mlr.press

Nella pratica, l'addestramento combina di solito due obiettivi. Una loss incoraggia lo studente a prevedere le etichette vere, mentre l'altra, la loss di distillazione, lo incoraggia ad avvicinarsi agli output soft dell'insegnante. Questo si può scrivere semplicemente come segue.

[ L=\alpha L_{\text{ground truth}}+(1-\alpha)L_{\text{distillation}} ]

(\alpha), la temperatura (T) e il tipo di loss di distillazione sono tutti valori da ottimizzare. Una temperatura più alta o un peso maggiore attribuito al segnale dell'insegnante non sono sempre migliori. La ricerca suggerisce inoltre che l'effetto della scelta della temperatura può variare in base alle caratteristiche della distribuzione dell'insegnante, come nel caso in cui l'insegnante sia stato addestrato con label smoothing.proceedings.mlr.pressproceedings.mlr.press

È sufficiente far corrispondere solo gli output?

La forma più basilare di distillazione fa corrispondere solo gli output finali. Può essere chiamata distillazione basata sulla risposta. Nei modelli di classificazione, probabilità o logits sono i target principali; nei modelli linguistici, il target principale è la distribuzione sul token successivo. È relativamente semplice da implementare e può essere considerata quando l'architettura interna dell'insegnante non è nota, purché i suoi output siano accessibili.arxiv.orgproceedings.mlr.press

Tuttavia, alcuni approcci sostengono che le sole risposte finali non possano trasmettere adeguatamente il processo computazionale dell'insegnante. Nelle architetture in cui sono importanti rappresentazioni multistrato e attenzione, come i Transformer, lo studente può essere addestrato a imitare segnali intermedi che includono embedding, hidden state e matrici di attenzione dell'insegnante. Questo è chiamato distillazione basata sulle feature o distillazione dei layer intermedi.arxiv.org

TinyBERT ha proposto di usare segnali dal layer di embedding, dai layer Transformer e dal layer di predizione, eseguendo la distillazione sia durante il pretraining generale sia durante il fine-tuning specifico per il compito. Negli esperimenti di ablazione descritti nell'articolo, la rimozione della distillazione dei layer Transformer ha portato a un sostanziale calo delle prestazioni. Non è una regola generale secondo cui la distillazione dei layer intermedi è sempre essenziale; è piuttosto un esempio che mostra come segnali oltre gli output finali possano risultare utili in base all'architettura e al compito.arxiv.org

Un'altra distinzione è quella tra distillazione offline e distillazione online. La distillazione offline fissa un insegnante già addestrato e addestra uno studente. La distillazione online usa più modelli che si insegnano reciprocamente durante l'addestramento, oppure segnali dell'insegnante che emergono contemporaneamente. La possibilità di mantenere un insegnante separato, il costo di addestramento sostenibile e la necessità di addestrare insieme i modelli sono criteri per scegliere tra le due.arxiv.org

In cosa differisce la distillazione da pruning e quantizzazione?

Sebbene tutte siano discusse nell'ambito dell'obiettivo condiviso della compressione dei modelli, riducono elementi diversi. La distillazione riguarda i segnali di apprendimento e il comportamento del modello studente. Il pruning, al contrario, riduce la struttura rimuovendo connessioni, canali, head o layer di scarsa importanza. La quantizzazione riduce i costi di archiviazione e calcolo diminuendo la larghezza in bit o cambiando il formato numerico usato per rappresentare pesi e attivazioni.arxiv.orgarxiv.orgarxiv.org

MetodoCosa modifica principalmentePunto di forza tipicoCondizione da verificare
Knowledge distillationObiettivi di apprendimento e architettura dello studenteUn modello piccolo apprende il comportamento dell'insegnanteQualità dell'insegnante, dati, divario di capacità
PruningConnessioni, canali, head, layerRimuove la ridondanza da una struttura esistenteSe l'hardware di destinazione elabora davvero più velocemente strutture sparse
QuantizzazionePrecisione numericaRiduce l'uso della memoria e i costi delle operazioni interePerdita di accuratezza, supporto di hardware e runtime
Uso combinatoAddestramento e rappresentazionePotenziale per una compressione maggioreDegrado della qualità a ogni fase e complessità operativa

Per esempio, convertire pesi in virgola mobile a 32 bit in interi a 8 bit è quantizzazione. Addestrare uno studente Transformer a sei layer usando come target la distribuzione degli output di un grande insegnante è distillazione. Le due tecniche possono anche essere applicate in sequenza. Tuttavia, il fatto che un articolo abbia ottenuto un elevato rapporto di compressione non significa che la latenza di un servizio reale diminuirà della stessa proporzione. Per la quantizzazione in particolare, l'effetto dipende dal grado di supporto delle relative operazioni intere da parte della CPU, GPU o NPU di destinazione.arxiv.orgarxiv.org

Cosa mostrano gli esempi della famiglia BERT?

La distillazione dei modelli linguistici è un esempio utile per comprendere il concetto. BERT-base è un Transformer preaddestrato ampiamente usato per compiti di comprensione del linguaggio, ma il suo deployment può essere oneroso in ambienti con risorse limitate. Lo studio su DistilBERT ha presentato un metodo di distillazione in pretraining che inizializza un modello più piccolo a partire da alcuni layer di BERT e combina loss di language modeling, loss di distillazione e loss di distanza coseno.arxiv.org

Lo studio ha riportato il mantenimento di circa il 97% delle prestazioni di BERT sul set di sviluppo GLUE, riducendo al contempo il numero di parametri di circa il 40%. Ha inoltre mostrato un tempo di inferenza minore nelle condizioni di misurazione su CPU definite nell'articolo. Queste cifre, tuttavia, sono state ottenute con benchmark in inglese, una configurazione BERT specifica, hardware particolare e condizioni di input specificate. Non dovrebbero essere citate come dati universali che garantiscono gli stessi risultati per l'italiano, documenti lunghi, sistemi con retrieval augmentation, conversazioni generative o altri acceleratori.arxiv.org

TinyBERT ha riportato che un modello più piccolo a quattro layer manteneva prestazioni solide rispetto a BERT-base, riducendo sostanzialmente dimensioni e tempo di inferenza nelle condizioni dell'articolo. Ha inoltre presentato esperimenti di ablazione che mostrano come distillazione generale, distillazione specifica per il compito, data augmentation e segnali dei layer intermedi influenzassero tutti il risultato. La lezione pratica di questo esempio è semplice: non basta collegare un insegnante e uno studente; il momento della distillazione, i dati, l'architettura dello studente e il progetto della loss determinano congiuntamente il risultato.arxiv.org

Quando la distillazione è particolarmente efficace?

Vale particolarmente la pena considerare la distillazione non quando la qualità del modello grande deve essere preservata perfettamente, ma quando coesistono una soglia prestazionale chiara e forti vincoli operativi. Esempi includono i seguenti.

  • Inferenza sul dispositivo: ambienti in cui la connettività di rete è inaffidabile o gli input sono difficili da inviare a server esterni per requisiti di privacy.
  • Inferenza ripetuta ad alto volume: compiti di classificazione, ranking e rilevamento che elaborano moltissimi input brevi, rendendo importanti costo e latenza cumulativi.
  • Compiti specifici di dominio: casi in cui le prestazioni su un tipo di documento o un sistema di etichette definito contano più delle ampie capacità generiche di un modello.
  • Sostituzione di un ensemble di modelli: casi in cui la media delle previsioni di più modelli migliora la qualità ma è troppo onerosa da gestire, quindi si usa un singolo studente per approssimarne il comportamento.arxiv.org

Al contrario, quando lo studente non deve mai mancare casi rari, oppure deve riprodurre fedelmente il lungo processo di ragionamento, l'uso di strumenti o complesse policy di sicurezza di un insegnante, i criteri di valutazione devono essere più ampi. Anche con un'accuratezza media elevata, le prestazioni possono peggiorare per gruppi specifici, classi rare o input rischiosi. La ricerca ha rilevato che la relazione tra prestazioni della classe peggiore e accuratezza media può variare in base alla progettazione dell'obiettivo di distillazione.proceedings.mlr.press

Quali sono i limiti della distillazione?

In primo luogo, lo studente non apprende l'insegnante in sé, ma il suo comportamento osservabile. Se l'insegnante effettua previsioni errate o riflette bias nei dati, anche lo studente può apprendere tali segnali. Usare una loss su hard label insieme alla distillazione non risolve automaticamente i problemi di bias, fattualità, sicurezza o protezione. La qualità dovrebbe comunque essere controllata dopo la distillazione con un set di valutazione indipendente dall'insegnante originale.arxiv.orgproceedings.mlr.press

In secondo luogo, se lo studente è troppo piccolo, non può imitare a sufficienza l'insegnante. Questo viene chiamato capacity gap insegnante-studente. Ricerche correlate riferiscono che le prestazioni possono deteriorarsi quando uno studente piccolo tenta di seguire i segnali di un insegnante eccessivamente grande e che un insegnante più accurato non è sempre un insegnante migliore per la distillazione. La selezione dell'insegnante non è semplicemente una gara di classifiche; è anche una questione di compatibilità con l'architettura dello studente.arxiv.orgarxiv.org

In terzo luogo, la distillazione può spostare i costi operativi nei costi iniziali di addestramento. L'insegnante deve prima essere addestrato o acquisito, gli output dell'insegnante per i dati di distillazione devono essere calcolati e archiviati, e potrebbe essere necessario esplorare temperatura, pesi della loss e mappature tra layer. Perciò, per un'analisi eseguita una sola volta, usare direttamente l'insegnante può essere più semplice; per un servizio ripetuto e di lunga durata, vi è maggiore possibilità di recuperare il costo di sviluppo di uno studente.arxiv.orgarxiv.org

In quarto luogo, la distillazione non garantisce una “compressione spiegabile”. Anche se uno studente produce previsioni simili a quelle dell'insegnante, sono questioni distinte stabilire se prende decisioni tramite gli stessi meccanismi interni e se preserva tutte le informazioni dell'insegnante. Ricerche recenti sottolineano inoltre che non è ancora chiaro se uno studente piccolo riceva tutte le informazioni di un insegnante tramite la distillazione.proceedings.mlr.pressproceedings.mlr.press

Quali sono le idee sbagliate più comuni?

L'idea sbagliata che “la distillazione non comporti perdite di prestazioni”

La ricerca sulla distillazione mostra che i modelli piccoli possono mantenere prestazioni elevate, ma si tratta di un'osservazione in condizioni di valutazione specificate. Se la distribuzione degli input cambia, gli input lunghi diventano più comuni o i casi rari acquistano importanza, il divario tra insegnante e studente può crescere. Pertanto, anziché affidarsi a una singola cifra come “una percentuale delle prestazioni dell'insegnante”, occorre valutare insieme accuratezza, recall, latenza, memoria e metriche di sicurezza richieste dal servizio.arxiv.orgarxiv.org

L'idea sbagliata che “copi tutta la conoscenza del modello insegnante”

Entro limiti di parametri e architettura, lo studente approssima gli output dell'insegnante o alcune delle sue rappresentazioni. È difficile considerare tutte le informazioni interne dell'insegnante come trasferite senza modifiche. I risultati della distillazione dipendono dai dati, dalla funzione obiettivo, dalla capacità dello studente e dal metodo di ottimizzazione.proceedings.mlr.pressproceedings.mlr.press

L'idea sbagliata che “meno parametri significhi necessariamente inferenza più veloce”

Ridurre i parametri aiuta generalmente a ridurre il fabbisogno di memoria, ma la latenza effettiva dipende dal grafo computazionale, dalla lunghezza della sequenza, dalla dimensione del batch e dai colli di bottiglia dell'hardware. In particolare, il carico di calcolo dell'attenzione dei Transformer può variare sostanzialmente con la lunghezza dell'input, quindi è necessaria una misurazione end-to-end sul dispositivo di destinazione.arxiv.orgarxiv.org

L'idea sbagliata che “gli output dell'insegnante rendano superflui i dati originali”

Esiste ricerca sulla distillazione data-free o zero-shot, che tenta di distillare usando un insegnante senza i dati di addestramento originali. Tuttavia, questa è un'impostazione speciale che richiede una generazione separata di dati sintetici o un metodo per approssimare la distribuzione degli input. La distillazione ordinaria usa dati di input rappresentativi insieme ai segnali dell'insegnante e sono diffusi gli approcci che usano anche le etichette vere.proceedings.mlr.pressproceedings.mlr.press

Cosa verificare prima di distribuire la distillazione nella pratica?

È più sicuro ragionare a ritroso dagli obiettivi di deployment anziché decidere in base al nome di un modello. Per prima cosa, quantificate non “quanto piccolo deve essere il modello”, ma “quali requisiti di qualità e operatività devono essere soddisfatti”. Di seguito una checklist minima.

  1. Separate i criteri del compito. Oltre all'accuratezza media, definite recall, costi dei falsi positivi e dei falsi negativi, prestazioni del gruppo peggiore, tempo di risposta e limiti di memoria.
  2. Convalidate l'insegnante. Verificate non solo i punteggi di benchmark dell'insegnante, ma anche dati del dominio reale, tipi di errore, bias e requisiti di sicurezza. Un insegnante non convalidato non è garantito che fornisca buoni segnali di apprendimento.
  3. Definite prima il budget dello studente. Stabilite chiaramente il numero di parametri, la memoria massima, la latenza consentita, la lunghezza dell'input e l'hardware di deployment. Se lo studente è troppo piccolo, il capacity gap può aumentare.arxiv.org
  4. Scegliete l'obiettivo di distillazione. Per una classificazione semplice, la distillazione degli output può essere un punto di partenza; quando la qualità delle rappresentazioni è importante, come nella compressione dei Transformer, si possono testare la distillazione dei layer intermedi e dell'attenzione.arxiv.org
  5. Confrontate insegnante e studente con gli stessi test. Includete non solo l'accuratezza generale, ma anche lunghezze di input simili al traffico reale, casi rari e gruppi con tassi di errore elevati.
  6. Misurate sull'hardware di destinazione. Distinguete dimensione del file del modello, memoria, caricamento iniziale, latenza inclusa tokenizzazione e preprocessing, throughput e consumo energetico.arxiv.orgarxiv.org
  7. Convalidate separatamente la compressione successiva. Se dopo la distillazione vengono applicati quantizzazione o pruning, registrate separatamente il degrado di qualità e i guadagni di velocità dopo ogni fase.

Conclusione: la distillazione crea il giusto equilibrio operativo, non soltanto un “modello piccolo”

La distillazione di modelli IA trasferisce a uno studente le distribuzioni predittive e le rappresentazioni apprese da un grande insegnante, creando un modello utilizzabile con risorse limitate. L'elemento chiave è aggiungere i soft target dell'insegnante a uno studente che apprende dalle sole hard label e, quando necessario, usare anche segnali dai layer intermedi.arxiv.orgarxiv.org

Tuttavia, la distillazione non è una tecnica di compressione di file che preserva gratuitamente le prestazioni. Errori e bias dell'insegnante, capacità dello studente, rappresentatività dei dati di distillazione, progettazione di temperatura e loss, nonché caratteristiche dell'hardware effettivo determinano tutti il risultato. Il passo successivo più sensato, quindi, non è puntare a un rapporto di compressione riportato in un particolare articolo, ma definire qualità minima e latenza e costo massimi richiesti per il proprio compito, quindi confrontare insegnante e studenti candidati nelle stesse condizioni.

Domande frequenti

La distillazione di modelli IA consiste semplicemente nel comprimere un file di modello?

No. La knowledge distillation è un metodo per addestrare da zero un modello studente più piccolo usando la distribuzione degli output o le rappresentazioni intermedie di un modello insegnante più grande come segnali di apprendimento. Il suo meccanismo principale è diverso dalla quantizzazione, che riduce la dimensione del file, e dal pruning, che rimuove connessioni non necessarie.

Un modello insegnante più grande produce sempre un modello studente migliore?

Non necessariamente. Se la differenza di capacità tra insegnante e studente è eccessiva, un problema di capacity gap può impedire allo studente di apprendere a sufficienza i segnali dell'insegnante. Un insegnante più accurato e più grande non garantisce di produrre uno studente migliore rispetto a un insegnante più piccolo.

Un modello distillato garantisce la stessa accuratezza del modello originale?

No. Studi come DistilBERT e TinyBERT mostrano che modelli più piccoli possono mantenere prestazioni elevate in specifiche condizioni di dataset e hardware, ma il divario prestazionale nel mondo reale dipende dal compito, dai dati, dalla lunghezza dell'input, dall'architettura dello studente e dagli iperparametri.

Knowledge distillation e quantizzazione possono essere usate insieme?

Sì. La distillazione riguarda il modo in cui viene addestrato il modello studente, mentre la quantizzazione riguarda la rappresentazione numerica dei pesi e delle operazioni, quindi affrontano problemi diversi. Tuttavia, quando sono combinate, accuratezza, latenza e utilizzo della memoria devono essere convalidati separatamente sull'hardware di destinazione.

La distillazione può essere applicata all'IA generativa?

Il principio può essere applicato. Tuttavia, i modelli generativi coinvolgono distribuzioni di token, processi di generazione lunghi, regole di sicurezza, uso di strumenti e altri comportamenti, anziché una singola probabilità di classificazione. La corrispondenza dei soli output finali non dimostra che le capacità e il comportamento di sicurezza del modello originale siano stati riprodotti in modo identico.