L'échantillonnage top-p, également connu sous le nom d'échantillonnage par noyau, est une stratégie de décodage stochastique utilisée pour générer des séquences à partir de modèles probabilistes autorégressifs, tels que les grands modèles de langage. Il a été initialement proposé par Ari Holtzman, Yejin Choi et leurs collègues en 2019 pour la génération de langage naturel afin de résoudre le problème des textes répétitifs et absurdes produits par d'autres méthodes de décodage courantes comme la recherche en faisceau. La technique a depuis été appliquée dans d'autres domaines scientifiques, notamment l'ingénierie des protéines et la géophysique.
Dans l'échantillonnage top-p, un seuil de probabilité p est défini, et l'élément suivant d'une séquence n'est échantillonné que parmi le plus petit ensemble possible de candidats à haute probabilité dont la probabilité cumulée dépasse p. Cette méthode adapte la taille du pool de candidats en fonction de la certitude du modèle, ce qui la rend plus flexible que l'échantillonnage top-k, qui échantillonne parmi un nombre fixe de candidats. En raison de son efficacité, l'échantillonnage top-p est largement utilisé dans de nombreuses applications de grands modèles de langage.
Technique
À chaque étape du processus de génération de texte, un modèle de langage calcule une distribution de probabilité sur l'ensemble de son vocabulaire pour le jeton suivant. Bien qu'il soit possible de simplement choisir le jeton avec la probabilité la plus élevée (recherche gloutonne) ou un ensemble limité de séquences à haute probabilité (recherche en faisceau), ces méthodes déterministes produisent souvent des textes ternes, répétitifs ou absurdes. L'échantillonnage top-p introduit du hasard pour éviter ces problèmes tout en maintenant la qualité.
L'idée centrale est d'échantillonner à partir d'un ensemble plus petit et plus crédible de jetons à chaque étape, appelé le noyau. Ce noyau contient les jetons suivants les plus probables dont la probabilité combinée, ou cumulée, dépasse juste le seuil p. En échantillonnant uniquement à partir de ce groupe de taille dynamique, le modèle peut s'adapter à différentes situations. Lorsque le modèle est confiant quant au jeton suivant (par exemple, un jeton a une probabilité très élevée), le noyau sera petit. Lorsque le modèle est incertain (les probabilités sont plus uniformément réparties), le noyau sera plus grand, permettant une plus grande diversité.
Le processus à chaque étape est le suivant :
- Le modèle calcule les probabilités pour tous les jetons suivants possibles.
- Les jetons sont triés par leur probabilité en ordre décroissant.
- Le noyau est formé en sélectionnant les jetons du haut de la liste jusqu'à ce que leur probabilité cumulée dépasse le seuil prédéfini, p.
- Les probabilités des jetons au sein de ce noyau sont ensuite redimensionnées pour qu'elles totalisent 1. Tous les jetons en dehors du noyau sont écartés (probabilité de 0).
- Le jeton suivant final est échantillonné aléatoirement à partir de cette nouvelle distribution plus restreinte.
Formellement, le noyau, V^(p) ⊆ V, est défini comme le plus petit ensemble de jetons satisfaisant :
∑_{x ∈ V^(p)} P(x | x_1, …, x_{t-1}) ≥ p
Dans cette formule, P(x | x_1, …, x_{t-1}) représente la probabilité d'un jeton x étant donné les jetons précédents x_1, …, x_{t-1}.
Exemple
Imaginez qu'à une certaine étape, un modèle de langage ait un vocabulaire de cinq mots : [the, a, cat, dog, eats] et produise les probabilités suivantes :
- the : 0,5
- a : 0,2
- cat : 0,1
- dog : 0,1
- eats : 0,1
Si nous définissons p = 0,8 :
- Les jetons sont triés par probabilité : [the, a, cat, dog, eats].
- La probabilité cumulée est calculée :
- the : 0,5
- the + a : 0,5 + 0,2 = 0,7
- the + a + cat : 0,7 + 0,1 = 0,8
- Le noyau est le plus petit ensemble avec une probabilité cumulée ≥ 0,8, soit V^(0,8) = {the, a, cat}.
- Les probabilités pour cet ensemble sont redimensionnées pour totaliser 1 :
- P(the) = 0,5 / 0,8 = 0,625
- P(a) = 0,2 / 0,8 = 0,25
- P(cat) = 0,1 / 0,8 = 0,125
- Le jeton suivant est ensuite échantillonné à partir de cette nouvelle distribution, ce qui signifie que dog et eats ont une chance de 0 % d'être choisis.
Échantillonnage top-k
L'échantillonnage top-k est une technique similaire où le pool de jetons candidats est restreint aux k jetons les plus probables. Le principal avantage du top-p est son adaptabilité. Lorsque le modèle est très confiant quant au jeton suivant (une distribution pointue), le noyau V^(p) peut être très petit. Lorsque le modèle est incertain (une distribution plate), le noyau peut être beaucoup plus grand, permettant une plus grande diversité. En revanche, le top-k échantillonne toujours parmi un nombre fixe de jetons, ce qui peut être trop restrictif ou trop large selon le contexte.
Applications
Bien que l'échantillonnage top-p soit surtout connu comme stratégie de décodage pour les grands modèles de langage, la technique a également été adaptée pour d'autres domaines scientifiques impliquant la génération ou l'analyse de données séquentielles à partir de modèles probabilistes.
Génération de langage naturel
Dans son domaine d'origine, la génération de langage naturel, l'échantillonnage top-p est apprécié pour sa capacité à produire des textes plus diversifiés et cohérents par rapport aux méthodes déterministes. Il s'est avéré bénéfique dans des tâches comme la génération automatique de questions, où la diversité des échantillons est importante pour créer des données d'entraînement efficaces pour les modèles de réponse aux questions.
Conception de médicaments et de protéines
L'échantillonnage top-p est utilisé en biologie computationnelle pour générer de nouvelles séquences moléculaires et protéiques à partir de modèles de langage spécialisés. Dans la conception de médicaments de novo, les modèles de langage chimique entraînés sur des structures moléculaires utilisent l'échantillonnage par noyau pour générer des bibliothèques ciblées de nouveaux candidats médicaments valides. De même, en ingénierie des protéines, l'échantillonnage top-p aide à explorer l'espace des séquences tout en maintenant la probabilité de produire des protéines fonctionnelles.
Géophysique
En géophysique, l'échantillonnage top-p a été appliqué pour générer des formes d'ondes sismiques ou d'autres données séquentielles à partir de modèles probabilistes, aidant à des tâches telles que la simulation de tremblements de terre ou l'imagerie du sous-sol. La nature adaptative du noyau permet une variabilité réaliste dans les données générées, ce qui est crucial pour modéliser des phénomènes naturels complexes.
Relation avec d'autres stratégies de décodage
L'échantillonnage top-p est l'une des plusieurs méthodes de décodage stochastique utilisées dans les modèles génératifs. Il est souvent combiné avec la mise à l'échelle de température pour contrôler davantage le caractère aléatoire de la sortie. Alors que la mise à l'échelle de température ajuste la netteté de la distribution de probabilité avant l'échantillonnage, l'échantillonnage top-p tronque la distribution à un sous-ensemble de jetons. Ces techniques peuvent être utilisées ensemble pour atteindre un équilibre entre diversité et cohérence.
Comparé aux méthodes déterministes comme la recherche gloutonne ou la recherche en faisceau, l'échantillonnage top-p introduit de la stochasticité, ce qui peut prévenir les boucles répétitives et produire des sorties plus variées. Cependant, ce hasard peut également conduire à une incohérence occasionnelle, et le choix de p est critique. Une valeur de p faible (par exemple, 0,5) rend la sortie plus ciblée et déterministe, tandis qu'une valeur de p élevée (par exemple, 0,95) augmente la diversité mais peut réduire la qualité.
Considérations d'implémentation
En pratique, l'échantillonnage top-p est implémenté dans la plupart des frameworks d'apprentissage profond modernes et est un paramètre standard dans les API pour les grands modèles de langage, comme celles de OpenAI, Anthropic et Google DeepMind. Le seuil p est généralement défini entre 0,9 et 0,95 pour les tâches générales de génération de texte, mais la valeur optimale dépend de l'application spécifique et du compromis souhaité entre créativité et précision.
Un défi d'implémentation est de garantir que le calcul de la probabilité cumulée soit efficace, surtout pour de grands vocabulaires. Cependant, comme le noyau est généralement petit, le surcoût computationnel est minime. De plus, l'échantillonnage top-p peut être combiné avec d'autres techniques comme le RLHF (apprentissage par renforcement à partir de retours humains) pour aligner le texte généré avec les préférences humaines.
Limites et extensions
Malgré ses avantages, l'échantillonnage top-p a des limites. Le seuil p est statique et ne s'adapte pas au contexte, ce qui peut conduire à des performances sous-optimales dans certains scénarios. Les chercheurs ont exploré des extensions telles que des valeurs de p dynamiques basées sur l'entropie de la distribution, mais celles-ci ne sont pas encore largement adoptées. De plus, l'échantillonnage top-p ne garantit pas une cohérence globale, car il ne considère que les probabilités locales à chaque étape.
Une autre limite est que l'échantillonnage top-p peut encore produire des textes répétitifs si la distribution du modèle est fortement pointue sur quelques jetons. Dans de tels cas, combiner le top-p avec d'autres stratégies comme le top-k ou des ajustements de température peut être nécessaire. Malgré ces défis, l'échantillonnage top-p reste un outil fondamental dans la boîte à outils de l'IA générative, largement utilisé dans les systèmes de recherche et de production.