Distillation

[distillèiscion]

Tecnica per trasferire conoscenza da un modello grande (teacher) a uno piccolo (student). Modello compatto, qualità simile.

La distillation (in italiano: distillazione) è una tecnica per trasferire la conoscenza da un modello grande e potente (teacher) a un modello piccolo e veloce (student). Si addestra lo student a imitare il teacher.

Idea proposta da Hinton et al. (2015): invece di addestrare lo student direttamente sui dati con etichette dure, lo addestri a riprodurre le distribuzioni di probabilità del teacher (le "soft labels"). Le soft labels contengono più informazione: il teacher dice "85% gatto, 10% lince, 5% cane" invece di solo "gatto".

Vantaggi:

  • Modelli compatti: lo student può essere 10x-100x più piccolo del teacher con qualità simile.
  • Inferenza veloce: meno parametri = meno calcolo.
  • Deploy edge: modelli che girano su mobile, IoT.

Esempi famosi:

  • DistilBERT: 40% più piccolo di BERT, 60% più veloce, 97% delle performance.
  • TinyBERT, MobileBERT: versioni ancora più compatte.
  • Whisper distil: versioni leggere di Whisper di OpenAI.
  • Llama 3 8B: distillata in parte dai modelli più grossi di Meta.

Tipi di distillation:

  • Response-based: lo student impara solo le distribuzioni finali del teacher.
  • Feature-based: imita anche le rappresentazioni intermedie.
  • Relation-based: imita relazioni tra esempi.
  • Self-distillation: il modello distilla da sé stesso (versione più piccola).

Variante hot del 2024: distillazione da modelli closed-source. Generi un dataset interrogando GPT-4 o Claude, addestri il tuo modello su quel dataset. Modelli come Vicuna, Alpaca sono nati così. Legalmente grigio: le ToS di OpenAI vietano di usare l'output per addestrare modelli concorrenti.

Distillation è uno dei principali strumenti per portare la qualità degli LLM grossi su dispositivi piccoli. Se vedi un modello "8B che va come uno 70B", probabilmente c'è di mezzo distillation.