Échantillonnage de température

Récemment, je suis tombé sur une question dans le chat ODS : pourquoi l'algorithme lettre par lettre génère-t-il le texte de la lettre non pas à partir de p (le vecteur de probabilités de la lettre suivante prédite par le modèle de langage ), mais à partir de p'=softmax(log(p)/t) ( où est un autre scalaire positif étrange)?


Une réponse rapide et incompréhensible: t est la "température", et elle vous permet de contrôler la variété des textes générés. Et pour une réponse longue et détaillée, en fait, ce post a été écrit.


Un peu de maths


Tout d'abord, softmax(x)=exp(x)/sum(exp(x)) vous rappeler que softmax(x)=exp(x)/sum(exp(x)) (exp, log et la division des vecteurs est composante). Il s'avère que si t=1 , alors le logarithme et l'exposant sont mutuellement annihilés, et nous obtenons p'=p . Autrement dit, avec une température unitaire, cette transformation ne change rien.


Que se passe-t-il si vous augmentez la température? Softmax obtient (presque) des zéros, et en sortie, nous obtenons (presque) les mêmes nombres, environ 1/n , où n est la dimension p (le nombre de lettres de l'alphabet). Autrement dit, à des températures très élevées, nous martelons ce que le modèle de langage a prédit, et un échantillon de toutes les lettres est également probable.


Et si nous fixons la température près de zéro, alors chaque composant p' sera un très grand exposant divisé par la somme des très grands exposants. A la limite, cette lettre, qui correspondait à la plus grande valeur de p , dominera toutes les autres, et p' tendra à l'unité pour elle et à zéro pour toutes les autres lettres. C'est-à-dire qu'à des températures très basses, nous choisissons toujours la lettre la plus probable (même si sa probabilité absolue n'est pas si élevée - disons seulement 5%).


Conclusion principale


Autrement dit, l'échantillonnage de la température est une vue générale des différents types d'échantillonnage, en tenant compte des prévisions du modèle à des degrés divers. Cela est nécessaire pour manœuvrer entre la confiance du modèle et la diversité. Vous pouvez augmenter la température pour générer des textes plus diversifiés, ou la baisser pour générer des textes dans lesquels le modèle est plus sûr en moyenne. Et, bien sûr, tout cela s'applique non seulement à la génération de textes, mais en général à tous les modèles probabilistes.


L'image ci-dessus montre des exemples d'échantillonnage à différentes températures du modèle GPT-2, à travers cette merveilleuse page soutenue par le groupe Hugging Face. GPT-2 génère des textes non pas par des lettres ou des mots, mais par des jetons BPE (séquences de lettres spécialement sélectionnées), mais l'essence de cela ne change pas vraiment.


Un peu de physique


Et qu'est-ce que la température a à voir avec ça, demandez-vous. La réponse est une référence à la distribution de Boltzmann utilisée en thermodynamique. Cette distribution décrit la probabilité des états dans lesquels se trouve le système (par exemple, plusieurs molécules de gaz enfermées dans une bouteille), en fonction de la température du système et du niveau d'énergie potentielle correspondant à ces états. Lors du passage d'un état à haute énergie à un état à faible énergie, il est libéré (converti en chaleur), mais au contraire, il est dépensé. Par conséquent, le système se retrouvera plus souvent dans des états à faible énergie (il est plus facile d'y entrer, plus difficile de quitter, et impossible d'oublier ), mais plus la température est élevée, plus le système passera aussi souvent à des états de haute énergie. Boltzmann, en fait, a décrit ces régularités par la formule, et a obtenu exactement le même p=softmax(-energy/t) .


J'ai déjà écrit dans mon essai sur l'entropie ( 1 , 2 , 3 ), mais je n'ai pas vraiment expliqué comment l'entropie statistique est liée au concept d'entropie en physique. Mais en réalité, à travers la distribution Boltzmann, ils semblent être connectés. Mais ici, je ferais mieux de vous envoyer pour lire des travaux de physique, et j'irai moi-même plus loin avec la PNL. Bas à vous, perplexions!


PS Ce texte a été écrit à une température d'environ 38 °, alors ne soyez pas surpris s'il est légèrement plus aléatoire que vous ne le pensez ¯\_(ツ)_/¯

Source: https://habr.com/ru/post/fr467189/


All Articles