- σ-GPT sépare l’ordre d’entrée des données et l’ordre de génération autorégressif, permettant à un Transformer d’apprendre et de générer des séquences même dans un ordre mélangé arbitrairement
- Les modèles autorégressifs classiques suivent souvent un agencement naturel, comme l’ordre du texte de gauche à droite ou l’ordre de balayage raster pour les images, mais ces deux ordres ne doivent pas nécessairement être identiques
- Pour chaque échantillon, un ordre de mélange aléatoire σ est choisi à la volée, et deux encodages positionnels correspondant aux ordres d’entrée et de sortie sont ajoutés afin de conserver la cohérence du processus autorégressif
- Le modèle peut estimer la distribution conditionnelle des tokens restants à n’importe quel moment de la génération, ce qui l’étend à l’échantillonnage à position arbitraire, à la génération conditionnelle arbitraire, à l’infilling et au burst sampling
- En l’associant à un apprentissage par curriculum, il peut atteindre des performances comparables à celles des modèles autorégressifs de gauche à droite, et générer plusieurs tokens par rafales grâce à un rejet d’échantillonnage basé sur les tokens
Séparation entre ordre d’entrée et ordre de génération
- Les Transformer ont montré de solides performances autorégressives sur plusieurs modalités
- L’approche autorégressive traditionnelle suit l’ordre naturel des données
- Le texte est généralement traité de gauche à droite
- En vision, on modélise avec un Transformer la séquence obtenue en déroulant l’image selon un ordre de balayage raster
- σ-GPT distingue l’ordre d’entrée des données de l’ordre autorégressif
- Dans la plupart des applications, ces deux ordres sont alignés, mais ils n’ont pas besoin d’être identiques
- Le travail explore l’apprentissage et la génération de séquences dans un ordre arbitrairement mélangé
- Modifier l’ordre de la séquence rend l’apprentissage plus difficile, mais donne au modèle de nouvelles propriétés, comme la génération conditionnelle à une position arbitraire
Architecture et fonctionnement de σ-GPT
- σ-GPT peut choisir à la volée un ordre de mélange aléatoire σ pour chaque échantillon
- Le σ sélectionné produit l’ordre d’entrée
0, σ(1), σ(2), ...et l’ordre de sortieσ(1), σ(2), σ(3), ...- Un padding
0est d’abord ajouté à l’entrée afin de conserver un nombre cohérent de tokens - Les tokens sont mélangés selon cet ordre
- Un padding
- Deux encodages positionnels sont concaténés à l’entrée du modèle
- L’un correspond à l’ordre d’entrée
- L’autre correspond à l’ordre de sortie
- La sortie est finalement remise dans l’ordre réel
- Code source disponible : https://github.com/idiap/sigma-gpt
Comparaison avec GPT standard et les modèles de diffusion
- σ-GPT est comparé à GPT, un causal transformer encoder standard, ainsi qu’aux modèles de diffusion
- Les fonctionnalités prises en charge sont les suivantes
- Échantillonnage de tokens à une position arbitraire dans la séquence
- Modélisation de la densité restante conditionnée par une séquence partiellement échantillonnée
- Génération conditionnelle arbitraire
- Infilling
- Burst sampling, c’est-à-dire la génération de plusieurs tokens en une seule fois
- Apprentissage de la log-vraisemblance basé sur l’entropie croisée
- En comparaison, GPT standard permet la génération conditionnelle arbitraire et l’apprentissage de la log-vraisemblance, mais ne prend pas en charge l’échantillonnage à position arbitraire, l’estimation de densité conditionnelle, l’infilling ni le burst sampling
- Les modèles de diffusion, eux, prennent en charge le burst sampling, mais pas l’apprentissage de la log-vraisemblance
Distribution conditionnelle pendant la génération et rejet d’échantillonnage
- En s’écartant de l’ordre autorégressif standard, le modèle peut prédire des tokens selon un ordre donné
- Dans cette approche, il peut prédire la distribution conditionnelle des tokens restants à n’importe quel moment de la génération
- L’estimation de la distribution conditionnelle sert à quantifier les résultats de génération possibles à un instant donné
- En l’appliquant au rejet d’échantillonnage, il devient possible de générer la séquence par rafales avec un nombre d’étapes dynamique
Tâches d’évaluation et contributions
- σ-GPT introduit l’autorégression mélangée et évalue si, combinée à une méthode de curriculum, elle peut améliorer les performances du modèle de base
- L’évaluation porte sur trois tâches principales
- Génération de texte ouverte
- Résolution de chemin
- Prédiction de la vitesse verticale d’avion
- Les contributions sont résumées en quatre points
- Introduction de l’architecture σ-GPT avec deux encodages positionnels correspondant respectivement aux ordres d’entrée et de sortie
- Démonstration qu’un apprentissage par curriculum permet d’atteindre des performances comparables à celles d’un modèle autorégressif de gauche à droite
- Démonstration que la génération d’échantillons dans un ordre arbitraire permet une génération conditionnelle sur n’importe quelle partie de la séquence
- Introduction d’une méthode de rejet d’échantillonnage basée sur les tokens pour la génération par rafales
1 commentaires
Avis sur Hacker News
Ça a l’air prometteur. À l’entraînement, les tokens d’entrée sont mélangés aléatoirement, et chaque token reçoit deux types d’encodage positionnel : l’un pour la position du token lui-même, l’autre pour la position du token à prédire.
Pour le reste, c’est un GPT autorégressif standard, mais cette modification apparemment simple a de grands effets. Si l’on donne au modèle entraîné une partie de la séquence en prompt, il peut décoder en parallèle les tokens manquants d’un coup, indépendamment de l’ordre, et calculer aussi en parallèle les densités de probabilité conditionnelles de tous les tokens manquants.
Les auteurs proposent aussi une méthode de génération par remplissage parallèle fondée sur le rejection sampling, et elle semble bien fonctionner en pratique.
I . . . . . . . . happily., le deuxième mot à prédire ne dépend-il pas du premier ?Du vieux[1] redevient du neuf, mais sans citation des travaux antérieurs. Ce n’est pas une recherche inconnue : elle a été publiée à ICML et compte environ 250 citations.
[1]: https://arxiv.org/abs/1902.03249
Concept vraiment excellent. Je me demande si l’on commence à voir apparaître une dynamique similaire à celle des modèles de génération d’images : une structure et des détails apparaissent dans une zone de l’image, puis les zones voisines s’ajustent progressivement jusqu’à se résoudre.
Ce comportement semble particulièrement utile pour le raisonnement/la logique/la planification longs, parce que les grandes idées peuvent apparaître d’abord, puis les détails et le texte entre elles se remplir naturellement.
Il y a une vidéo sur Twitter montrant la génération de texte. Ça ressemble un peu à de la diffusion d’images.
https://x.com/ArnaudPannatier/status/1799055129829839166
J’ai continué à penser à cet article aujourd’hui, et j’aime vraiment ses capacités. Des choses relativement difficiles avec des LLM séquentiels deviennent faciles ici.
Si l’on veut du JSON, il suffit de fixer les tokens d’accolade au début et à la fin. Si l’on veut une explication de réponse d’une certaine longueur en tokens, on peut placer une réponse courte à la fin et remplir le milieu.
Si l’on veut une réponse à plus forte densité d’information, on peut ajouter au texte généré une section d’évaluation de la densité et un espace où le LLM note cette densité d’information, puis générer en cherchant un score élevé. Il semble y avoir beaucoup de choses à expérimenter ; d’après l’article, il faut environ 3 fois plus de tokens, ce qui est dommage, mais ce serait intéressant d’essayer aussi avec un modèle 8B paramètres consommant un nombre raisonnable de tokens.
Mais il existe aussi de meilleures méthodes. En contraignant la sortie du LLM à une grammaire spécifique comme JSON, on peut le forcer à ne répondre qu’avec du JSON syntaxiquement valide.
Je me demande si cela serait particulièrement utile pour générer du code informatique, car ce qui est produit à une étape peut réellement dépendre de ce qui sera écrit à une étape ultérieure.
Recherche intéressante. Une approche par permutation similaire apparaît déjà dans l’article Taylorformer (https://arxiv.org/pdf/2305.19141v1).
Les auteurs utilisent un décodeur Transformer pour des processus continus comme les séries temporelles, et mélangent aléatoirement chaque séquence pendant l’entraînement. Chaque élément de séquence possède un encodage positionnel, et ils utilisent la log-vraisemblance sur la séquence mélangée.
Là-bas, la permutation aide pour prédire l’interpolation, l’extrapolation et les données échantillonnées de façon irrégulière. Elle semble aussi favoriser une forme de « cohérence », où l’erreur quadratique moyenne reste globalement la même quel que soit l’ordre de génération.
Je me demande ce que cet article ajoute à la compréhension ou aux applications de ces idées. L’idée de mélanger l’ordre des séquences apparaît aussi dans l’article Transformer Neural Process : https://arxiv.org/pdf/2207.04179
J’ai l’impression que cela applique aux Transformers de langage ce qu’on a appris des Vision Transformers.
D’après ce que j’ai compris, les modèles de vision divisent l’image en tuiles, puis ajoutent à chaque tuile un encodage positionnel pour que le modèle comprenne la position relative des tuiles.
Honnêtement, je n’ai lu que le résumé et beaucoup de choses me dépassent, mais cet article semble proposer une idée similaire en 1D plutôt qu’en 2D.
L’entraînement est plus difficile, mais cela semble permettre de générer plusieurs tokens à la fois. Autrement dit, on peut obtenir une réponse de N tokens en N/x étapes, et non en N étapes.
Je me demande s’il y a du code. Je ne comprends pas encore complètement le double positionnement et le mélange. Le fait qu’ils concatènent les valeurs de position au lieu de les additionner est aussi intéressant.
Yann LeCun dirait que l’autorégression elle-même est le problème, et qu’avec ce type de machine learning on n’approchera même pas de l’AGI[0].
Au minimum, tant qu’on reste dans le paradigme autorégressif, on ne peut pas résoudre le problème des hallucinations.
[0] https://twitter.com/ylecun/status/1640122342570336267
Les auteurs de l’article original ne prétendent pas que ce travail aide à se rapprocher de l’AGI. Ils ont simplement permis à des LLM autorégressifs de faire de nouvelles choses qu’ils ne pouvaient pas faire auparavant.
Je ne pense pas non plus que la plupart des tâches nécessitent une AGI. D’autant moins si l’objectif n’est pas de faire souffrir des êtres conscients.
Intuitivement, certains tokens sont plus difficiles que d’autres. Il peut y avoir des tokens clés dans la sortie, après lesquels les tokens restants deviennent beaucoup plus faciles. De plus, même en autorégressif, on peut se rétablir après un mauvais token en produisant des tokens comme
actually no....Selon la manière d’échantillonner les tokens, il semble possible de considérer la génération proposée comme un tout et de la corriger. Je ne sais pas si la méthode d’échantillonnage proposée dans l’article le fait déjà aujourd’hui, mais les informations issues des probabilités semblent le permettre.