Aller au contenu
Kudos AI

Perplexité

L’exponentielle de l’entropie croisée moyenne d’un modèle, lue comme le nombre d’options équiprobables entre lesquelles il choisit effectivement à chaque pas.

Comprendre Perplexité

L’entropie croisée facture au modèle le logarithme négatif de la probabilité qu’il a attribuée à ce qui est arrivé, moyenné sur la séquence. Le nombre est en nats ou en bits et reste difficile à ressentir. L’exponentier produit un compte : un modèle dont l’entropie croisée égale celle d’un choix uniforme parmi 50 options a une perplexité de 50, quel que soit le vocabulaire réel. Plus bas vaut mieux, et 1 est la prédiction parfaite.

Le cas uniforme fixe l’échelle. Un modèle sans préférence attribue 1/V à chaque option, paie log V et a une perplexité exactement égale à V. La perte attendue d’un modèle non entraîné est donc calculable d’avance, et le nombre devient un diagnostic gratuit : un modèle neuf rapportant bien en dessous de log V a vu ce qu’il n’aurait pas dû voir, et un modèle rapportant bien au-dessus a un bogue dans sa perte ou sa tokenisation.

Les comparaisons demandent de la prudence. La perplexité dépend de la tokenisation autant que du modèle, car un vocabulaire qui découpe les mots en davantage de morceaux étale le même texte sur davantage de prédictions plus faciles. Deux modèles ne sont comparables en perplexité que sur le même texte avec le même tokeniseur, et c’est pourquoi les nombres publiés voyagent avec un nom de jeu de données.

Ce qu’elle ne mesure pas mérite d’être dit clairement. La perplexité récompense l’attribution de probabilité à la suite observée. Un modèle peut être fluide, sûr de lui et faux, et rien dans une perplexité basse ne distingue ce cas d’un modèle qui a raison.

Comment calculer

\mathrm{perplexity} = e^{L}, \qquad L = -\frac{1}{N}\sum_{t=1}^{N} \log p_\theta(x_t \mid x_{<t})

où

L
entropie croisée moyenne, en nats
p_\theta(x_t \mid x_{<t})
la probabilité que le modèle a donnée au token réellement venu ensuite
N
le nombre de tokens évalués

Exemple : Perplexité

Pour un vocabulaire de 50 257 tokens, le repère uniforme vaut log 50 257 = 10,8249 nats. Un modèle non entraîné mesuré à 10,7940 sur six tokens se situe 0,03 en dessous, soit une perplexité de 48 725,8, ou 96,95 pour cent du vocabulaire encore en jeu. Sur les chargeurs complets, le même modèle non entraîné annonce 10,9876, un peu au-dessus du repère, car des logits aléatoires ne sont pas exactement uniformes : log V est un point de repère, non une borne.

Cette part est la lecture à retenir. Elle dit que le modèle choisit presque uniformément, ce que doit faire un modèle non entraîné, et elle le dit sous une forme qui se transpose : la moitié du vocabulaire en jeu se lit pareil à mille tokens et à cinquante mille, là où les deux pertes brutes diffèrent de près de quatre nats et où aucune ne veut rien dire seule.

À l’autre bout, une perplexité de 1 correspond à une perte de 0 et signifie que le modèle a donné la probabilité 1 à chaque token survenu. Sur un texte de validation, c’est le signe d’une fuite plutôt que d’un bon modèle.

Questions fréquentes

Une perplexité de 20, est-ce bon ?

Impossible à dire sans le vocabulaire et le jeu de test. Vingt sur un vocabulaire de 50 257 est un modèle solide ; vingt sur un vocabulaire de 32 vaut à peine mieux que le hasard.

La perplexité peut-elle descendre sous un ?

Non. C’est l’exponentielle d’une moyenne de termes positifs ou nuls, donc elle vaut au moins 1, et elle vaut 1 seulement si chaque token observé a été prédit avec une probabilité de 1.

En résumé

La perplexité est l’entropie croisée sur une échelle dénombrable : combien d’options le modèle pèse effectivement. Lisez-la face à log V plutôt que seule, et rappelez-vous qu’elle note la probabilité attribuée au texte observé, non la justesse.