1 points par GN⁺ 2024-06-09 | 1 commentaires | Partager sur WhatsApp
  • σ-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 0 est d’abord ajouté à l’entrée afin de conserver un nombre cohérent de tokens
    • Les tokens sont mélangés selon cet ordre
  • 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

 
GN⁺ 2024-06-09
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.

    • Ce cadre de problème existe depuis assez longtemps, et c’est un peu un Graal de la modélisation. Ce qui semble nouveau par rapport à la famille PixelCNN, c’est l’idée d’embedding positionnel.
    • Je ne comprends pas bien comment cette prédiction parallèle est possible. Par exemple, si l’entrée est I . . . . . . . . happily., le deuxième mot à prédire ne dépend-il pas du premier ?
    • Si ça marche, c’est vraiment énorme. Comme souvent avec les belles découvertes, une fois qu’on l’entend, on a ce côté « ah, dit comme ça, c’est évident ».
    • BERT ne faisait-il pas déjà à l’origine du masquage non causal, c’est-à-dire la prédiction de mots au milieu ?
    • Je sais que c’est destiné aux tokens/au texte, mais je me demande si le même concept pourrait s’appliquer aux images, à la manière des modèles de diffusion. Dans ce cas, pourrait-on agrandir une image à une taille arbitraire par remplissage ?
  • 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.

    • Le processus que tu décris s’appelle la diffusion.
  • 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

    • C’est étrange qu’ils aient choisi un exemple dont le résultat est assez peu cohérent.
  • 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.

    • « Fixer le token d’accolade au début » est déjà possible avec les LLM classiques. Il suffit de préremplir le début de la réponse de l’assistant.
      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.

    • Ce serait peut-être trop lent, mais on pourrait intégrer le linting ou la vérification syntaxique dans une partie du rejection sampling. Par exemple, échantillonner massivement en parallèle N fragments de code candidats, puis rejeter ceux qui sont syntaxiquement invalides.
  • 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’encodage positionnel est standard dans tous les types de Transformers. Ici, ils introduisent une méthode d’encodage positionnel redondante, qui semble nouvelle.
      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

    • LeCun a peut-être raison ou tort, mais je ne vois pas bien le rapport avec cette discussion.
      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.
    • Tout n’a pas besoin de mener à l’AGI. Si l’on a créé un LLM plus rapide et moins cher à exécuter, cela a déjà de la valeur en soi.
      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.
    • L’argument de LeCun ici est, pour le dire simplement, faux. Sa démonstration nécessite l’hypothèse que tous les tokens décodés sont conditionnellement indépendants, ou au moins que la probabilité de produire un mauvais token suivant est indépendante. En pratique, ce n’est pas le cas.
      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....
    • Cette méthode pourrait en fait ne pas bien s’inscrire dans l’argument de la divergence exponentielle.
      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.
    • LeCun est très intelligent, mais son historique de prédictions sur les limites des LLM autorégressifs est franchement mauvais.