Perplexity (metric) (IT)
Perplexity (in italiano perplexità, PPL) nella teoria dell'informazione e nel Machine Learning è una misura dell'incertezza o della «sorpresa» di un modello linguistico nel predire un campione di testo. Una perplexity bassa indica che la distribuzione di probabilità del modello corrisponde bene ai dati di test, mentre una perplexity alta significa che il modello predice male la sequenza[1].
Formalmente, la perplexity di una distribuzione di probabilità è definita come l'esponenziale della sua entropia. Per una distribuzione discreta essa è uguale a , dove è l'entropia[2]. Intuitivamente, la perplexity può essere interpretata come il numero «effettivo» di alternative tra cui il modello sceglie a ogni passo. Se la perplexity è pari a 100, significa che l'incertezza del modello è equivalente alla scelta di uno tra 100 esiti equiprobabili[3].
Il termine fu introdotto per la prima volta nel 1977 da un gruppo di ricercatori IBM guidato da Frederick Jelinek nel contesto del riconoscimento statistico del parlato, per quantificare la «difficoltà» del compito[4].
Perplexity nei modelli linguistici
Nell'ambito dell'elaborazione del linguaggio naturale (NLP), la perplexity è diventata la metrica interna (intrinsic) standard per valutare la qualità dei modelli linguistici. Misura quanto bene un modello predice una sequenza di parole o token in un insieme di dati di test.
Definizione formale
Per un corpus di test e un modello linguistico , la perplexity viene calcolata come la media geometrica inversa della probabilità del corpus di test, normalizzata per il numero di parole:
Questa formula è equivalente all'esponenziale dell'entropia incrociata, ovvero della perdita logaritmica media (negative log-likelihood):
Minimizzare la perplexity equivale a massimizzare la verosimiglianza del modello sui dati di test. Pertanto, un modello con perplexity inferiore è considerato statisticamente più accurato[5].
Applicazione storica e LLM moderni
Storicamente, la perplexity è stata ampiamente utilizzata per valutare i modelli statistici a n-grammi. Ad esempio, per il corpus Wall Street Journal, il modello unigram (che considera solo le frequenze delle parole) ha una perplexity di circa 962, mentre il modello trigram (che considera il contesto delle due parole precedenti) raggiunge circa 109[6]. Questa drastica riduzione mostra quanto meglio il modello catturi le regolarità linguistiche.
Con lo sviluppo dei grandi modelli linguistici (LLM), la perplexity ha mantenuto il suo ruolo di riferimento di base. I ricercatori riportano la perplexity su insiemi di test standard (ad esempio WikiText) come indicatore della «fluidità» del modello. Ad esempio, nell'articolo di OpenAI su GPT-2 si indica che il modello con circa 117 milioni di parametri raggiunge una perplexity di circa 37 sul corpus WikiText-103[7]. La riduzione della perplexity di solito correla con il miglioramento della qualità del modello, pertanto la metrica costituisce un indicatore conveniente del progresso durante l'addestramento e l'ottimizzazione.
Limitazioni e interpretazione della metrica
Sebbene una perplexity bassa testimoni un'elevata verosimiglianza dei dati secondo il modello, questo indicatore presenta alcune limitazioni significative e non sempre correla con la qualità reale del testo generato.
- Perplexity bassa ≠ alta qualità. La perplexity misura la fiducia del modello nelle proprie previsioni, ma non la loro correttezza. Un modello può essere sicuro ma errato, generando testo privo di senso ma statisticamente probabile (ad esempio, ripetendo parole e frasi molto frequenti)[3].
- Sensibilità ai dati e alla tokenizzazione. La perplexity non è adatta al confronto diretto tra modelli con architettura, vocabolario o metodo di tokenizzazione diversi. Ad esempio, un modello a livello di carattere può avere una perplexity numericamente inferiore rispetto a uno a livello di parola, ma ciò non significa che risolva meglio i compiti linguistici[3].
- Incapacità di valutare la semantica e il contesto lungo. La perplexity è una metrica locale, che valuta la previsione del token successivo. Correla poco con la capacità del modello di cogliere dipendenze a lungo termine e il contesto semantico su grandi distanze. Uno studio del 2023 (Hu et al.) ha mostrato che la capacità degli LLM di comprendere testi lunghi (fino a 100.000 token) non si riflette praticamente nella metrica della perplexity[8].
- Possibilità di manipolazione. La metrica può essere «ingannata». Un modello sovra-addestrato mostrerà una perplexity artificialmente bassa sui dati che ha «memorizzato». Ricerche (Wang et al., 2022) hanno anche dimostrato che la duplicazione di frammenti di testo o persino l'assenza del punto alla fine di una frase può abbassare o alzare ingiustificatamente la perplexity, senza influire sulla qualità reale del testo[9].
Conclusione: il ruolo della perplexity oggi
Tenendo conto delle limitazioni elencate, nella pratica moderna la perplexity è considerata un indicatore ausiliario e preliminare della qualità di un modello linguistico. Rimane uno strumento prezioso per la valutazione rapida e il debug dei modelli, poiché non dipende dal compito applicativo specifico ed è semplice da calcolare[3].
Tuttavia, per una valutazione completa degli LLM la sola perplexity non è sufficiente. Oggi viene necessariamente integrata da metriche esterne (extrinsic) legate a compiti specifici, quali:
- Accuratezza nelle risposte alle domande;
- Valutazione umana (human evaluation);
- BLEU/ROUGE per la traduzione automatica e la sintesi.
Insieme a questi metodi, la perplexity continua a svolgere un ruolo importante — fungere da misura oggettiva della «sorpresa» del modello — ma i suoi risultati vengono sempre interpretati tenendo conto delle limitazioni menzionate[3].
Riferimenti
- Articolo «Perplexity nei modelli linguistici» su Habr
- Documentazione di Hugging Face sul calcolo della perplexity
Bibliografia
- Jelinek, F., Bahl, L. R., & Mercer, R. L. (1977). Perplexity — a Measure of the Difficulty of Speech Recognition Tasks. JASA:62(S1):S63.
- Jurafsky, D., & Martin, J. H. (2021). Speech and Language Processing (3ª ed., cap. 3: N-gram Language Models). PDF.
- Radford, A. et al. (2019). Language Models are Unsupervised Multitask Learners. OpenAI white paper.
- Brown, T. B. et al. (2020). Language Models are Few-Shot Learners. arXiv:2005.14165.
- Kaplan, J. et al. (2020). Scaling Laws for Neural Language Models. arXiv:2001.08361.
- Wang, C. et al. (2022). Perplexity by PLM Is Unreliable for Evaluating Text Quality. arXiv:2210.05892.
- Meister, C., & Cotterell, R. (2021). Language Model Evaluation Beyond Perplexity. arXiv:2106.00085.
- Hu, Y. et al. (2024). Can Perplexity Reflect Large Language Model's Ability in Long Text Understanding?. arXiv:2405.06105.
- Lazaridou, A. et al. (2021). Mind the Gap: Assessing Temporal Generalization in Neural Language Models. NeurIPS 2021.
Note
- ↑ «Перплексия». Википедия. [1]
- ↑ «Perplexity». Wikipedia. [2]
- ↑ 3.0 3.1 3.2 3.3 3.4 Morgan, Abby. «Perplexity for LLM Evaluation». Comet AI Blog, 21 Nov 2024. [3]
- ↑ «README.md · evaluate-measurement/perplexity». Hugging Face. [4]
- ↑ Jurafsky, Dan, and James H. Martin. Speech and Language Processing, 3rd ed., Chapter 3: N-gram Language Models, draft (2021). [5]
- ↑ Jurafsky, Dan, and James H. Martin. Speech and Language Processing, 3rd ed., Chapter 3: N-gram Language Models, draft (2021). [6]
- ↑ «Perplexity number of wikitext-103 on gpt-2 don't match the paper». GitHub, huggingface/transformers, Issue #483. [7]
- ↑ Hu, H., et al. «Can Perplexity Reflect Large Language Model's Ability in Long Text Understanding?». arXiv:2405.06105 [cs.CL], 10 мая 2024 г. [8]
- ↑ Wang, C., et al. «Perplexity by PLM Is Unreliable for Evaluating Text Quality». arXiv:2210.05892 [cs.CL], 12 окт. 2022 г. [9]