Perplexity-score

Perplexity-score er en metrik, der måler, hvor godt en sprogmodel forudsiger en sekvens af tokens, defineret som eksponentialet af gennemsnitlig krydsentropi.

Kort fortalt

Perplexity-score fortæller, hvor 'overrasket' en sprogmodel bliver over en tekst — lavere værdi betyder bedre forudsigelser.

Kategori
metrik
Niveau
øvet
Udtale
/pərˈpleksɪti skɔr/

Betydninger

1
  1. 1

    Mål for en sprogmodels usikkerhed ved forudsigelse af tokens; jo lavere perplexity, desto bedre passer modellen til data.

    • En veltrænet GPT-2 opnår en perplexity på omkring 35 på WikiText-2.
    • Perplexity bør ikke bruges alene til at vurdere kvaliteten af genererede tekster, da den kan være vildledende.

Hvornår bruges det

Bruges primært til at evaluere sprogmodeller under træning og sammenligning. Perplexity måles på en testkorpus og kan være vildledende for generative opgaver, da den ikke nødvendigvis korrelerer med menneskelig vurdering.

Formel

Perplexity = exp(-1/N * ∑ log P(w_i | context))

Kodeeksempel

import numpy as np
def perplexity(log_probs):
    # log_probs: array of log probabilities of each token
    return np.exp(-np.mean(log_probs))

Eksempel på beregning af perplexity i Python.

Oprindelse

Fra engelsk 'perplex' (forvirre) og 'score', indført i informationsteori af Claude Shannon i 1951.

Kilder

1
  • Prediction and Entropy of Printed English (Shannon, 1951)