Kiedy ktoś publikuje porównanie wariantów kwantyzowanych, niemal zawsze podaje jedną liczbę. Warto wiedzieć, co ona mierzy i czego nie mierzy.
Czym jest perplexity
Perplexity to miara jakości modelu językowego wyrażająca, jak bardzo model był zaskoczony obserwowanym tekstem. Formalnie jest wykładniczą postacią średniej entropii krzyżowej: jeśli model konsekwentnie przypisywał wysokie prawdopodobieństwo tokenom, które faktycznie wystąpiły, perplexity jest niska.
Intuicyjnie: perplexity równa dziesięciu oznacza, że model był średnio tak niepewny, jakby przy każdym tokenie wybierał losowo spośród dziesięciu równie prawdopodobnych możliwości.
Do czego się jej używa
Przede wszystkim do porównywania wariantów tego samego modelu — przed kwantyzacją i po niej, przy różnych rozmiarach grupy, przy różnych zbiorach kalibracyjnych. Kwantyzacja do czterech bitów podnosi tę wartość zwykle o kilka procent i to jest liczba, którą pokazują wszystkie tabele.
Dlaczego bywa myląca
Perplexity jest średnią po całym tekście. Uśrednia sytuacje, w których model jest obojętny, z tymi nielicznymi, w których podejmuje decyzję rozstrzygającą o poprawności wyniku. Użytkownik odczuwa wyłącznie te drugie.
Model wahający się raz na trzysta tokenów ma znakomitą perplexity i potrafi psuć jeden na pięć wygenerowanych fragmentów kodu. Średnia jest prawdziwa i bezużyteczna.
Ograniczenia porównywalności
Perplexity zależy od tokenizera i od korpusu, na którym ją zmierzono. Porównywanie tej wartości między modelami różnych rodzin nie ma sensu, bo dzielą tekst na tokeny inaczej. Porównywanie wyniku z korpusu angielskiego z zachowaniem modelu na polskiej treści nie ma sensu z tego samego powodu, wzmocnionego różnicą w reprezentacji języka w danych treningowych.
Sensowny test kwantyzacji to test na twoim zadaniu, twoim tekście i twoim języku.