Back to archive
#ai#llm#glossary#aigen

Perplexity

Perplexity, w skrócie PPL, opisuje, jakie prawdopodobieństwa model językowy przypisuje tokenom ocenianego tekstu. W Autoregressive Language Modeling jest wykładnikiem średniego ujemnego logarytmu prawdopodobieństwa kolejnego tokena:

PPL=exp(1Nt=1Nlnp(xtx<t))\mathrm{PPL}=\exp\left(-\frac{1}{N}\sum_{t=1}^{N}\ln p(x_t\mid x_{<t})\right)

NN to liczba ocenianych tokenów, a x<tx_{<t} ich wcześniejszy kontekst. Przy logarytmie naturalnym jest to exp(H)\exp(H), gdzie HH oznacza średnią Cross-entropy dla pojedynczych poprawnych tokenów, bez dodatkowych składników straty. Równoważnie można policzyć średnią geometryczną odwrotności tych prawdopodobieństw. Taką definicję podają Bengio et al., §2.

Jak czytać wynik

Własny przykład: model przypisuje każdemu ocenianemu tokenowi prawdopodobieństwo 0,25. PPL wynosi wtedy 4. Gdy każde z tych prawdopodobieństw rośnie do 0,5, PPL spada do 2. Nie oznacza to, że model zawsze wybiera spośród dokładnie czterech albo dwóch tokenów; wynik podsumowuje cały oceniany tekst.

Porównanie wymaga tych samych danych i zgodnych zasad obliczeń, w tym tokenizacji, np. Byte Pair Encoding. Znaczenie ma też dostępny kontekst. Podział tekstu na rozłączne fragmenty odbiera modelowi wcześniejsze tokeny przy początku każdego fragmentu i może pogorszyć wynik. Dokumentacja Hugging Face opisuje ocenę z przesuwanym oknem i wyjaśnia, dlaczego zwykłej PPL nie stosuje się wprost do BERT.

Niższa PPL oznacza lepsze przewidywanie ocenianego tekstu w danej procedurze, ale nie gwarantuje lepszej odpowiedzi w konkretnym zadaniu. W Attention Is All You Need, §5.4 label smoothing pogarszało PPL, a jednocześnie poprawiało accuracy i BLEU.

Wykorzystuję treści generowane przez AI jako część mojego codziennego procesu nauki.