2 points par GN⁺ 2024-02-05 | 1 commentaires | Partager sur WhatsApp
  • Après avoir entraîné un Transformer decoder-only d’environ 10 millions de paramètres sur TinyShakespeare, l’auteur retrace, à l’aide d’états internes et d’expériences, comment les calculs effectués après l’auto-attention se transforment en probabilités du token suivant
  • L’hypothèse centrale est que chaque bloc Transformer relie le prompt à un ensemble précis de chaînes du corpus d’entraînement, et que la distribution de fréquence des tokens réellement apparus après ces chaînes est proche de la prédiction du bloc pour le token suivant
  • La procédure d’approximation implémentée cherche, pour chaque bloc, des chaînes d’entraînement proches de la sortie du feed-forward network, additionne la distribution des caractères qui les suivent, puis reconstruit la sortie du modèle par somme pondérée bloc par bloc
  • Sur 20 000 prompts de longueur 10, la distance de Hellinger moyenne entre la sortie approximée et la sortie réelle du Transformer est d’environ 0,17 ; la distance entre le modèle d’origine et des modèles alternatifs entraînés avec la même architecture mais des seeds différents est d’environ 0,11 ± 0,08
  • L’analyse étaye l’idée que la sortie du feed-forward joue un rôle majeur dans la transformation opérée par les blocs et que l’attention mappe le prompt vers la bonne classe de chaînes d’entraînement, mais on ne sait pas si cela se généralise au-delà de ce petit modèle

Le modèle étudié et la question posée

  • Un Transformer d’environ 10 millions de paramètres a été implémenté et entraîné en suivant la vidéo d’Andrej Karpathy Let’s build GPT: from scratch, in code, spelled out
    • Le code principal du modèle de langage vient du travail de Karpathy ; l’analyse interne et le code auxiliaire sont des contributions séparées
    • Le code associé se trouve dans transformer-experiments
  • Le modèle est un Transformer decoder-only composé de 6 blocs
    • Les données d’entraînement sont TinyShakespeare, qui contient 40 000 lignes de pièces de Shakespeare
    • Après environ une heure d’entraînement sur un GPU RTX 4000, il génère un faux texte « shakespearien » structurellement crédible
  • Les tokens sont des caractères, pas des mots
    • Le vocabulaire comporte 65 éléments, et le modèle prédit la distribution de probabilité du caractère suivant après un prompt donné
    • Par exemple, après 'my most gr', il prédit a à 0,819, e à 0,081 et i à 0,059
  • La question centrale ne porte pas sur l’auto-attention elle-même, mais sur la manière dont le résultat obtenu après l’attention devient finalement une probabilité du token suivant

Structure des blocs et poids du feed-forward network

  • Chaque bloc Transformer contient une multi-head self-attention et un feed-forward network
    • Dans la structure PyTorch, la sortie du bloc prend la forme x + self.sa(self.ln1(x)), puis x + self.ffwd(self.ln2(x))
    • En introduisant une variable intermédiaire, on peut voir la sortie du bloc comme x + sa_out + ffwd_out
  • Dans le modèle analysé, le feed-forward network représente 65,71 % de l’ensemble des paramètres entraînables
    • Paramètres du feed-forward : 7 089 408
    • Total des paramètres entraînables : 10 788 929
  • La sortie du feed-forward network semble être le facteur principal qui transforme l’entrée du bloc en sa sortie
    • Dans les expériences suivantes aussi, la sortie du feed-forward influence davantage la distribution de probabilité finale que la seule sortie du self-attention

Retrouver des chaînes à partir de sorties feed-forward similaires

  • La procédure d’approximation exploite la similarité des sorties feed-forward entre le prompt et des chaînes du corpus d’entraînement
    1. Injecter le prompt dans le modèle et enregistrer la sortie du feed-forward network à chaque bloc
    2. Pour chaque bloc, rechercher dans le corpus d’entraînement des chaînes dont la sortie feed-forward est similaire
    3. Additionner la distribution de fréquence des tokens qui suivent ces chaînes
    4. Combiner ces distributions par somme pondérée selon les blocs, puis normaliser pour obtenir une distribution de probabilité
  • Sur le prompt de démonstration 'And only l', 94 chaînes de longueur 10 dont la similarité cosinus avec la sortie du feed-forward du bloc 1 était d’au moins 0,95 ont été trouvées
    • Les chaînes trouvées incluaient hat only l, \nMy only l, I dearly l, ng Henry l, And only l et se terminaient généralement par y l ou ly l
    • La distribution de fréquence normalisée des caractères qui suivaient ces chaînes ressemblait fortement à la prédiction réelle du modèle pour le caractère suivant
  • Dans l’exemple 'And only l', l’approximation et la prédiction réelle du modèle sont proches
    • Modèle : i 0,437, o 0,204, a 0,195, e 0,160
    • Approximation : i 0,389, o 0,250, a 0,222, e 0,139
    • La distance de Hellinger est de 0,0711
  • Un seul bloc peut toutefois échouer
    • Sur le prompt 'hing tremb', si l’on n’utilise que le bloc 1, le modèle prédit l à 0,999, mais l’approximation donne e 0,543 et l 0,343, soit une distance de Hellinger de 0,6305
    • En tenant compte de l’ensemble des blocs, l’approximation prédit l à 0,997 sur le même exemple, et la distance de Hellinger tombe à 0,0233

Échelle de calcul et réglage manuel

  • Pour des raisons d’efficacité, toute l’analyse a été menée principalement sur des chaînes de longueur 10
    • Le corpus d’entraînement contient 1 115 394 caractères, dont 858 923 sous-chaînes uniques de longueur 10
    • Les sorties feed-forward sont des vecteurs float32 de dimension 384, un par bloc parmi les 6 blocs
  • 20 000 chaînes de longueur 10 ont été tirées au hasard et utilisées comme prompts d’expérience
    • La similarité cosinus, bloc par bloc, entre chaque prompt et les 858 923 sous-chaînes uniques a été précalculée et stockée sur disque
    • Comme aucun appariement d’intérêt n’apparaissait sous une similarité cosinus de 0,7, un préfiltrage à 0,7 ou plus a été appliqué
  • Le seuil de similarité pour chaque bloc a été défini par réglage manuel
    • Bloc 0 : 0,95
    • Bloc 1 : 0,94
    • Bloc 2 : 0,85
    • Bloc 3 : 0,76
    • Bloc 4 : 0,81
    • Bloc 5 : 0,89
  • Des poids manuels ont aussi été utilisés pour combiner les distributions de fréquence bloc par bloc
    • Les poids utilisés étaient [0.01, 0.01, 0.1, 1.5, 6, 0.01]
    • Une recherche de poids par approche deep learning a aussi été tentée, sans faire mieux que le réglage manuel

Évaluation sur 20 000 prompts

  • Pour l’ensemble des 20 000 prompts, la distance de Hellinger entre la distribution approximée et la distribution de sortie du modèle a été calculée
    • Moyenne : 0,1677
    • Écart-type : 0,1215
    • Minimum : 0,0013
    • Maximum : 0,9994
  • La distance de Hellinger mesure le recouvrement entre distributions de probabilité : 0 signifie identiques, 1 signifie aucun recouvrement
  • Pour comparer la qualité de l’approximation, la même architecture a été réentraînée 3 fois avec des random seeds différents
    • Seed du modèle d’origine : 1337, training loss estimée 0,9334, validation loss 1,5063
    • Alternate 1 seed : 1442, training loss 0,9293, validation loss 1,5038
    • Alternate 2 seed : 88, training loss 0,9294, validation loss 1,4991
    • Alternate 3 seed : 99999, training loss 0,9339, validation loss 1,4941
  • La distance de Hellinger moyenne entre le modèle d’origine et les modèles alternatifs est d’environ 0,11 ± 0,08
    • Original vs Alternate 1 : 0,1064 ± 0,0823
    • Original vs Alternate 2 : 0,1057 ± 0,0817
    • Original vs Alternate 3 : 0,1053 ± 0,0828
  • La distance moyenne de 0,17 entre l’approximation et le modèle est plus élevée que les 0,11 observés entre modèles alternatifs, mais elle reste dans la plage de l’écart-type, ce qui soutient l’idée que l’approximation est assez bonne

Interprétation du fonctionnement interne du Transformer

  • Le modèle peut être vu, après l’embedding, comme une série de transformations spatiales
    • Les 6 blocs Transformer transforment l’embedding d’entrée en embedding de sortie dans un espace d’embedding de dimension 384
    • Le LayerNorm final et la couche linéaire transforment cet espace d’embedding en un espace de logits de dimension 65, puis le softmax produit les probabilités du token suivant
  • La transformation interne à chaque bloc peut être vue comme une addition de vecteurs
    • La sortie du bloc est la somme de l’entrée x, de la sortie du self-attention sa_out et de la sortie du feed-forward ffwd_out
    • L’analyse observe que les vecteurs de sortie du feed-forward ont en général une norme plus grande que ceux du self-attention, et que les deux sorties pointent souvent dans des directions similaires selon les blocs
  • Même en n’ajoutant que les sorties feed-forward, le vecteur de sortie final reste globalement orienté dans une direction proche de la sortie complète
    • La sortie fondée uniquement sur le feed-forward a une norme plus faible, mais une direction proche de la sortie originale
    • En raison du LayerNorm final, les différences de norme importent peu pour l’entrée de la couche linéaire finale
  • Cela ne signifie pas qu’on pourrait supprimer le self-attention
    • Le feed-forward network prend en entrée la sortie de l’attention via ffwd_out = self.ffwd(self.ln2(x + sa_out)) ; si l’on retire le self-attention, la sortie du feed-forward elle-même change

Hypothèse des subspaces de tokens

  • Certains embeddings peuvent amener le modèle à prédire un token précis avec une quasi-certitude
    • Par exemple, on peut apprendre un embedding à injecter après le LayerNorm et la couche linéaire du dernier bloc afin que la probabilité du token a devienne presque 1
    • Les poids du Transformer restent figés, et seul le tenseur d’embedding est optimisé
  • Chaque token ne correspond pas à un embedding unique, mais à plusieurs embeddings
    • Cela est interprété comme un subspace d’embedding non linéaire et complexe correspondant à chaque token
    • Il a été possible d’apprendre facilement des milliers d’embeddings uniques pour chaque token
  • Même sans calculer exactement le subspace d’un point de vue mathématique, une approximation linéaire fonctionne bien à l’étape finale
    • Pour chaque token, les embeddings appris ont été empilés puis soumis à une SVD
    • Le premier vecteur singulier à droite fonctionne bien comme approximation linéaire unidimensionnelle du subspace de ce token
  • En combinant linéairement les vecteurs d’approximation de plusieurs tokens, on peut créer des embeddings qui répartissent la probabilité sur plusieurs tokens
    • Si l’on additionne les vecteurs d’approximation de a et b, on obtient une distribution répartissant la probabilité entre ces deux tokens
    • Cela ne donne toutefois pas une distribution parfaitement 50:50, en raison de l’erreur d’approximation, de la non-orthogonalité des vecteurs de subspace et des différences d’amplitude des logits selon les tokens

Correspondance entre sorties feed-forward et subspaces de tokens

  • La sortie du feed-forward est interprétée comme un ajustement de la sortie du bloc vers le subspace de certains tokens
    • Ces tokens correspondent à ceux prédits par la procédure d’approximation, c’est-à-dire ceux apparus après les chaînes d’entraînement produisant des sorties feed-forward similaires
  • Dans l’exemple med me Aut, si l’on ne regarde que le dernier bloc, l’approximation prédit o comme token suivant le plus probable, puis h
    • En projetant le même vecteur de sortie feed-forward sur l’approximation des subspaces de tokens, les tokens les plus similaires étaient aussi o, h, i, u, y dans cet ordre
  • Une correspondance similaire apparaît aussi dans l’exemple if and thy
    • L’approximation retient comme principales prédictions un espace, s et un saut de ligne
    • Les subspaces les plus alignés avec la sortie feed-forward étaient également proches de l’espace, de s et du saut de ligne
  • Un critère arbitraire a été défini puis agrégé sur l’ensemble des 20 000 prompts
    • Le critère est le suivant : « les subspaces des tokens qui représentent 90 % de la masse de probabilité dans la prédiction approximée se situent-ils dans la moitié supérieure du classement par similarité cosinus avec la sortie feed-forward ? »
    • Pour le dernier bloc, 16 357 cas, soit 81,78 %, satisfont ce critère

Résultats agrégés par bloc et comparaison avec le hasard

  • En utilisant les approximations de subspace apprises à chaque position de bloc, le taux de satisfaction du critère augmente à mesure qu’on avance dans les blocs
    • Bloc 6 : 16 357 cas, 81,78 %
    • Bloc 5 : 10 142 cas, 50,71 %
    • Bloc 4 : 7 760 cas, 38,80 %
  • L’application de l’approximation de subspace de l’étape finale à tous les blocs donne de meilleurs résultats
    • Bloc 6 : 81,78 %
    • Bloc 5 : 68,26 %
    • Bloc 4 : 58,15 %
    • Bloc 3 : 57,34 %
    • Bloc 2 : 52,02 %
    • Bloc 1 : 49,71 %
  • La probabilité que ce critère soit satisfait par simple hasard avec des similarités cosinus aléatoires a aussi été simulée
    • Bloc 6 : 20,76 % ± 0,25 %
    • Bloc 5 : 20,55 % ± 0,26 %
    • Bloc 4 : 18,37 % ± 0,24 %
    • Bloc 3 : 18,20 % ± 0,24 %
    • Bloc 2 : 17,04 % ± 0,23 %
    • Bloc 1 : 16,31 % ± 0,23 %
  • Les résultats sont très supérieurs au hasard, mais, compte tenu du bruit de mesure et des limites de l’approximation des subspaces, il est difficile d’y voir une preuve décisive

Rôle du self-attention

  • Dans cette interprétation, une bonne prédiction dépend de la capacité à mapper le prompt vers la bonne classe de chaînes du corpus d’entraînement
  • L’axe chargé de ce mapping est le self-attention
    • La couche d’attention identifie des motifs entre les tokens du prompt
    • Ces motifs peuvent être de simples motifs de chaîne, comme y l en fin de séquence, ou des catégories de tokens plus générales, comme les voyelles ou les majuscules à certaines positions
  • Les poids appris par les attention heads déterminent à quels motifs ils réagissent
    • Une fois la sortie des attention heads passée dans le feed-forward network, elle devient une représentation dans l’espace d’embedding contenant de l’information sur la distribution des tokens apparus après des chaînes d’entraînement similaires
  • Le modèle analysé comporte 6 blocs et 6 attention heads par bloc, ce qui lui permet d’évaluer un même prompt selon plusieurs motifs latents

Conclusion et limites

  • Les éléments montrant que la procédure d’approximation et la sortie réelle du Transformer se ressemblent sont solides
  • Les preuves que cette procédure correspond aux calculs internes réels du Transformer sont moins nettes, mais suggèrent qu’elle pourrait au moins être partiellement correcte
  • On ignore si les résultats obtenus sur un seul petit Transformer se généralisent à des modèles plus grands ou à d’autres jeux de données
  • Ce projet consiste à poser des questions au modèle et à concevoir des expériences sur son fonctionnement interne ; plutôt que de réduire la « magie » des modèles de langage à un mécanisme simple, il aide à mieux voir leur complexité

1 commentaires

 
GN⁺ 2024-02-05
Commentaires sur Hacker News
  • Certains thèmes du billet parent ne devraient pas être très surprenants pour quiconque a lu https://people.math.harvard.edu/~ctm/home/text/others/shanno...
    Si l’on ne lit pas la littérature fondamentale de son domaine, même des phénomènes qui découlent naturellement de travaux déjà établis peuvent sembler être des mystères inexplicables
    Cela dit, l’expérience paraît assez rigoureuse au premier abord, et j’apprécie l’ampleur du travail de détail fourni
    Il existe un compromis difficile entre apprendre la théorie existante et tout redériver depuis le début. Sans cadre traditionnel, on peut faire de nouvelles découvertes, mais avec ce cadre, on peut comprendre certains phénomènes plus en profondeur
    Dans les commentaires ici, on voit plusieurs personnes s’étonner qu’un modèle qui maximise la log-vraisemblance d’une séquence étant donné des données ne s’écarte pas magiquement de ce comportement à l’inférence. C’est un modèle d’estimation de densité, vous vous attendiez à ce qu’il récite Shakespeare sorti de nulle part ?
    Revenir aux bases permettrait de bien mieux comprendre ce type d’expériences. Il existe déjà un fondement mathématique très clair qui explique cela, ainsi que ce qu’on appelle les phénomènes émergents
    Plus concrètement, il y a plusieurs niveaux d’analyse, et le traitement des systèmes ergodiques par Shannon est un bon point de départ. Il y a ici un léger décalage, mais la correspondance semble assez proche pour comprendre la dynamique d’ensemble

    • Des chercheurs très brillants en théorie de l’information examinent les réseaux de neurones sous l’angle de la théorie de l’information depuis quelques années déjà, et ont publié des articles connus, sans pour autant expliquer une grande partie de ce qui se passe dans les réseaux de neurones. C’était néanmoins intéressant
      Il n’est pas rare que des gens très intelligents disent « cette structure mathématique ressemble à cette idée, et si l’on ajoute ou retire quelques structures, tout s’explique ». Mais en réalité, nous ignorons encore beaucoup de choses
      Je n’ai jamais vu les théoriciens de ce domaine arriver avec une théorie, construire quelque chose de nouveau ou produire des prédictions utiles. En général, on essaie un peu tout ; si ça marche, on ajoute après coup une explication plausible du pourquoi, et si ça ne marche pas, on enterre ça
      Il y a aussi eu récemment un billet présentant les transformers comme un lissage par noyau : https://arxiv.org/abs/1908.11775
    • Je vois ce que vous voulez dire, mais le fait même que cela converge via des chemins alternatifs de profondeurs différentes est aussi un signal
      Les redécouvertes répétées ne sont pas forcément du gaspillage ; elles peuvent faire partie d’un processus de confirmation et de validation d’une vérité profonde à laquelle on peut accéder par plusieurs voies
    • Dans un autre fil voisin, on discute de ce que le fait que les réseaux de neurones s’ajustent aux données d’entraînement avec une certaine marge d’erreur implique pour le droit d’auteur
      De nombreux manuels de théorie de l’information soulignent déjà la nature adressable par le contenu (content-addressable) de ces réseaux[1], et ils sont aussi utilisés pour des applications comme la compression précisément pour cette raison[2][3]
      Il n’est donc pas surprenant que, lorsque le NYT a fourni à un modèle d’OpenAI quelques paragraphes de ses articles dans un prompt, celui-ci les ait reproduits presque à l’identique
      [1] https://www.inference.org.uk/itprnn/book.pdf
      [2] https://bellard.org/nncp/
      [3] https://pub.towardsai.net/stable-diffusion-based-image-compr...
    • Du coup, on peut se demander pourquoi Shannon n’a pas construit GPT
  • En voyant que Google avait signalé qu’on pouvait faire recracher ses données d’entraînement à ChatGPT en lui demandant de répéter le même mot encore et encore[0][1], j’ai eu exactement la même idée. Ravi que quelqu’un l’ait réellement mise en œuvre
    Cela soulève deux questions supplémentaires

    1. Cette approche « IA, attrape l’IA » est-elle plus efficace énergétiquement que de compresser les données d’entraînement dans le modèle via la rétropropagation de la descente de gradient, puis de le faire tourner sur un processeur auxiliaire IA dédié ?
    2. Ce résultat pourrait-il servir de preuve dans les procès en cours contre OpenAI et Stability AI ?
      [0] C’était possible auparavant. OpenAI bloque désormais la génération si l’on remplit la fenêtre de contexte avec un seul mot
      [1] https://arxiv.org/abs/2311.17035
    • Cette approche ne peut pas être plus efficace que l’exécution du modèle d’origine. Il faut faire tourner le modèle d’origine pour obtenir les activations, puis chercher dans le corpus des chaînes similaires à ces activations afin de calculer les statistiques du token suivant
      Il n’y a pas tant d’étapes que cela à supprimer, et au contraire cela ajoute beaucoup de travail
      Même si l’on séparait complètement le corpus d’entraînement du modèle et le corpus servant à rechercher des chaînes d’activations similaires, on obtiendrait probablement presque le même résultat. La partie difficile est justement de faire en sorte que des chaînes ayant des statistiques de token suivant similaires produisent des activations similaires
      Avec des poids par couche [0.01, 0.01, 0.1, 1.5, 6, 0.01], la plus importante est l’avant-dernière couche, et à ce stade l’entrée a déjà été fortement transformée. Il ne faut donc pas s’attendre à pouvoir remplacer un transformer par un simple grep sur les données d’entraînement
      Si les poids de l’avant-dernière couche sont bien plus élevés que ceux de la couche finale, c’est probablement à cause des induction heads. Comme dans https://transformer-circuits.pub/2021/framework/index.html, il pourrait s’agir d’une structure où l’on implémente la capacité à copier des chaînes répétées de l’entrée, où l’avant-dernière couche décide quoi rechercher et où la couche finale effectue la copie
    • Si l’idée est que la sortie d’un LLM suit les probabilités du token suivant fondées sur les données d’entraînement, c’est un fait de base bien connu, donc il semble peu probable que ce résultat constitue une preuve
      La contribution de ce texte, comme l’auteur le dit, est de montrer ce point à un lectorat technique qui construit directement des GPT, contrairement aux articles centrés sur le transformer lui-même et sur la question « comment est-ce implémenté ? »
    • D’après mon expérience avant que cela ne soit bloqué, il hallucinait des choses qui ressemblaient à de vraies données d’entraînement
      En regardant de près, c’était par exemple des README GitHub inexistants et incohérents, des brochures d’information sans contenu, ou des conversations aléatoires
    • J’ai trouvé intéressant que l’article arXiv lié traite cela comme une attaque, en parlant d’éthique et de divulgation responsable
      Pourtant, aspirer l’ensemble d’Internet pour entraîner de tels modèles n’est absolument jamais qualifié d’attaque
    • Si une œuvre est protégée par le droit d’auteur, on possède évidemment aussi des droits sur le fichier zip de cette œuvre
      Alors, pourquoi ne pas considérer qu’on a aussi des droits sur la distribution de probabilité des caractères à l’intérieur de cette œuvre ?
  • Dès que j’ai découvert NanoGPT d’Andrej Karpathy, j’ai essayé de l’entraîner sur la version russe de War and Peace, et j’ai trouvé fascinant que, malgré un modèle de seulement 3 Mo, il ait presque saisi la grammaire russe
    Le russe a une structure synthétique et flexionnelle complexe. Par exemple, après la préposition « na » (« sur »), il faut un nom à l’accusatif, ce qui se manifeste par -a pour les noms masculins animés, l’absence de terminaison pour les noms inanimés, -ia pour les noms se terminant par une « consonne douce », -u pour les noms féminins, etc.
    De plus, le verbe « utiliser » exige l’instrumental lorsque le nom qui suit désigne l’instrument employé
    Ce n’était pas parfait et il faisait des erreurs, mais il était fascinant que NanoGPT ait inféré certaines règles complexes en seulement 3 minutes d’entraînement. J’ai cherché les phrases exactes qu’il avait générées dans le texte d’origine, mais je n’ai trouvé aucune correspondance exacte
    En revanche, même s’il comprenait dans une certaine mesure la grammaire, sur le plan sémantique c’était un non-sens total

    • Les variations de désinence font probablement partie des tokens les plus fréquents du texte d’entraînement, donc ce n’est pas si surprenant
  • Il existait une bonne visualisation 3D montrant le même système, et je pense qu’elle se marierait bien avec cette lecture
    LLM Visualization (https://bbycroft.net/llm)
    https://news.ycombinator.com/item?id=38505211

    • Je suis reconnaissant pour l’effort mis dans cette visualisation, mais après 9 ans à travailler sur les réseaux neuronaux, je l’ai trouvée bien plus déroutante qu’utile
      C’est sans doute parce qu’elle essaie de tout montrer d’un coup et ne renvoie pas assez à des concepts abstraits, mais je n’en suis pas certain
  • Bon projet, mais le modèle analysé est en pratique un modèle jouet, tant par sa taille que par la quantité de données d’entraînement
    Ce modèle pourrait donc sans doute être approximé par un modèle plus simple, probablement un modèle de langue n-gram, mais il est difficile de le considérer comme représentatif du fonctionnement de modèles de langue plus grands

    • C’est probablement vrai. Si l’on fabriquait un modèle plus petit encore, on pourrait sûrement produire une explication bien plus simple de son fonctionnement
  • Je me demande si l’auteur affirme que le LLM est un générateur de texte par chaîne de Markov.
    Autrement dit, cela veut-il dire que la distribution de probabilité du token suivant généré est identique à la probabilité de cette séquence de tokens dans les données d’entraînement ?
    Si oui, cela voudrait-il dire qu’en construisant « simplement » une chaîne de Markov à partir des données d’entraînement d’origine, on pourrait obtenir des performances similaires à celles d’un LLM ?

    • Un LLM est une chaîne de Markov au sens suivant.
      L’état est un vecteur de tokens de la longueur du contexte, et le modèle décrit une matrice de transition. Pour un vecteur de tokens d’une taille égale à celle du contexte donné, il produit la probabilité du vecteur de tokens suivant, de même taille
    • Non. Un LLM ne se contente pas de recopier le même texte ; il est plus proche d’un système qui « classe » le texte via l’auto-attention, puis applique une chaîne de Markov simple.
      La partie difficile est cette classification qui consiste à savoir quels textes des données d’entraînement sont « similaires » au texte du prompt.
      L’exemple donné dans le billet de blog est le suivant :
      Original string: 'And only l'
      Similar strings: 'hat only l' 's sickly l' ' as\nthey l' 'r kingly l'
    • Le billet dit : « nous avons implémenté en code impératif ce qu’un transformer est censé faire, et cela produit une sortie très proche de celle d’un transformer »
      Cela semble vouloir dire qu’il pourrait exister un moyen de contourner le transformer tout en obtenant le même résultat. Je me demande si ce serait plus efficace.
      Par exemple, étant donné un modèle de base, il serait peut-être possible d’entraîner autre chose qui tournerait sur un appareil bien plus petit
  • Il est assez difficile de comprendre exactement ce que l’auteur prétend avoir montré.
    J’ai relu plusieurs fois la section « Interpretation: Why Does the Approximation Work? », mais j’ai l’impression d’y voir surtout une explication mécanique des étapes du transformer. Je ne vois pas quelle est la thèse centrale

  • Je me demande s’il est connu que l’attention et le déplacement FF pointent globalement dans la même direction.
    Le simple fait qu’ils soient dans le même espace latent à travers les couches me surprend déjà un peu. Le réseau FF ne pourrait-il pas effectuer une rotation arbitraire ? J’ai l’impression de mal comprendre quelque chose

    • Il s’agit d’une représentation en 2D de vecteurs de très grande dimension.
      Forcément, certaines choses disparaissent, et la description exacte d’une rotation arbitraire dans un espace de grande dimension fait partie de ce qui disparaît
    • Ce serait bien de vérifier en remplaçant l’addition de l’attention par une mise à l’échelle