Rubriques tendance
#
Bonk Eco continues to show strength amid $USELESS rally
#
Pump.fun to raise $1B token sale, traders speculating on airdrop
#
Boop.Fun leading the way with a new launchpad on Solana.
Pourquoi l'entropie croisée est-elle une bonne fonction de perte pour le pré-entraînement linguistique ?
Avertissement : tout cela est connu, d'ailleurs ; il est intéressant de noter que, même s'il existe de nombreux points de vue et intuitions sur "pourquoi l'entropie croisée", ils peuvent tous être dérivés d'un point de départ unique.
Voici une simple dérivation des premiers principes qui n'assume rien sur la distribution des données. Elle découle d'une exigence opérationnelle très raisonnable :)
"Je veux que mon modèle ait l'air intelligent"
mais nous ne pouvons pas mesurer cela, alors nous demandons
"Je veux que mon modèle ait l'air humain"
Bien que nous ayons accès à tous les textes jamais écrits, nous ne pouvons pas vraiment mesurer cela non plus, alors nous demandons plutôt
"Je veux que mon modèle soit aussi susceptible que possible de générer l'un des textes jamais écrits"
Ou plus brutalement :
"Je veux que mon modèle mémorise les données d'entraînement."
Considérons cette expérience de pensée :
Étant donné un ensemble de données S de tous les textes jamais écrits par des humains, nous effectuons des essais indépendants pour chaque "texte" dans S :
Échantillon : "texte d'échantillon" de notre modèle Pr( ;W)
Vérifiez : le "texte d'échantillon" correspond-il exactement à l'original ? Remarque : nous ne conditionnons rien ! nous demandons simplement, parmi toutes les choses que le modèle pourrait générer, avons-nous obtenu "texte".
Définissons le succès comme l'événement
E = "tous les contrôles par échantillon réussissent"
La probabilité de E est, le produit des probabilités attribuées à la vérité de terrain correcte par votre modèle W
Pr(E) = Π_{texte dans S} Pr(texte; W)
Maximiser log Pr(E) par rapport à W vous donne l'objectif d'entropie croisée.
Comment optimisez-vous cela avec SGD ?
texte d'échantillon du corpus
calculer grad log Pr(token|prefix) pour chaque préfixe de texte
mettre à jour le modèle
Ce qui est élégant, c'est que cela fait simultanément :
1) Minimiser la longueur de description des données sous le modèle P( ;W) (vue de compression)
2) Minimiser la divergence KL par rapport à la vraie distribution—s'il en existe une (bien que nous n'ayons jamais supposé qu'il y en ait une)
3) Implémenter l'estimation du maximum de vraisemblance
La dérivation est simple et bien connue, mais elle met en évidence quelque chose d'important :
l'entropie croisée émerge naturellement du désir de reproduction exacte des données d'entraînement.
P.S. vous auriez pu plutôt demander de maximiser
Pr(le texte généré par le modèle est dans la vérité de terrain)
Il est intéressant de noter que l'optimisation de cela peut conduire à un effondrement de mode, car une solution optimale est de toujours prédire un seul morceau de texte du corpus. Pourtant, les gradients ressemblent encore à l'entropie croisée mais avec un facteur multiplicatif
i.e., Pr(texte;W) grad log Pr(texte;W)
61,42K
Meilleurs
Classement
Favoris