Perplexity

[perplèxiti]

Metrica che misura quanto un modello linguistico è "sorpreso" dal testo. Più bassa, meglio il modello prevede.

La perplexity è la metrica classica per valutare un modello linguistico. Risponde alla domanda: dato un testo, quanto è sorpreso il modello dalle parole che incontra? Più bassa = meno sorpresa = modello migliore.

Tecnicamente: perplexity = exp(loss media per token). Se la loss è la cross-entropy, la perplexity è la sua esponenziale.

Interpretazione intuitiva: una perplexity di 20 significa che, in media, il modello sceglie il prossimo token come se avesse 20 alternative ugualmente probabili. Una perplexity di 5 significa che ha quasi capito quale parola viene, è dubbioso solo tra 5.

Valori tipici (su benchmark inglesi tipo WikiText-103):

  • Modelli antichi (n-gram): 100+.
  • LSTM (2014-2016): 50-70.
  • GPT-2: 25-30.
  • GPT-3: 20.
  • Modelli moderni grossi: sotto 10.

Limiti seri della perplexity:

  • Non misura utilità: un modello con bassa perplexity può comunque fare risposte stupide o pericolose. La perplexity dice quanto bene predici i token, non se le risposte aiutano l'utente.
  • Non comparabile tra tokenizer diversi: due modelli con perplexity 10 ma tokenizer diversi sono inconfrontabili.
  • Saturata sui modelli moderni: la differenza tra perplexity 5 e 4 dice poco sull'utilità reale.

Per questo per gli LLM moderni si usano benchmark di compito (MMLU, HumanEval, GSM8K) invece che perplexity. La perplexity sopravvive solo nel pretraining come segnale che il training va bene.

Curiosità: la stessa parola "perplexity" la usa anche t-SNE come iperparametro, ma in tutt'altro senso. Confondibile, attento.