Maison  >  Article  >  Périphériques technologiques  >  Pourquoi ChatGPT est si puissant : une explication détaillée d'un article de 10 000 mots du père de WolframAlpha

Pourquoi ChatGPT est si puissant : une explication détaillée d'un article de 10 000 mots du père de WolframAlpha

PHPz
PHPzavant
2023-04-13 22:22:01641parcourir

Stephen Wolfram, le père de Wolfram Language, a de nouveau approuvé ChatGPT.

Le mois dernier, il a également écrit un article recommandant spécifiquement son propre moteur de recherche de connaissances informatiques WolframAlpha, dans l'espoir d'avoir une combinaison parfaite avec ChatGPT.

Le sens général est : « Si votre puissance de calcul n'est pas aux normes, vous pouvez y injecter ma « super puissance ».

Pourquoi ChatGPT est si puissant : une explication détaillée dun article de 10 000 mots du père de WolframAlpha

Après plus d'un mois, Stephen Wolfram a de nouveau publié un article de 10 000 mots pour donner une explication détaillée en termes simples autour des deux questions « Qu'est-ce que ChatGPT » et « Pourquoi est-il si efficace ? "

Pourquoi ChatGPT est si puissant : une explication détaillée dun article de 10 000 mots du père de WolframAlpha

(Pour garantir l'expérience de lecture, le contenu suivant sera narré à la première personne par Stephen Wolfram ; il y a des œufs de Pâques à la fin de l'article !)

Ajoutez un mot à la fois

ChatGPT peut générer automatiquement un texte similaire à l'écriture humaine, ce qui est très frappant et inattendu. Alors, comment y parvient-on ? Pourquoi fonctionne-t-il si bien pour générer un texte significatif ?

Dans cet article, je vais vous donner un aperçu du fonctionnement interne de ChatGPT et explorer pourquoi il réussit à générer un texte satisfaisant.

Il est à noter que je me concentrerai sur le mécanisme global de ChatGPT. Même si je mentionnerai quelques détails techniques, je n'entrerai pas dans une discussion approfondie. Dans le même temps, il convient de souligner que ce que j'ai dit s'applique également à d'autres « grands modèles de langage » (LLM) actuels, pas seulement à ChatGPT.

La première chose qui doit être expliquée est que la tâche principale de ChatGPT est toujours de générer une "suite raisonnable", c'est-à-dire, sur la base du texte existant, de générer le prochain contenu raisonnable et conforme aux habitudes d'écriture humaines. Le soi-disant « raisonnable » fait référence à la déduction du contenu qui pourrait apparaître ensuite sur la base des modèles statistiques de milliards de pages Web, de livres numériques et d'autres contenus écrits par des humains.

Par exemple, si nous saisissons le texte « La meilleure chose à propos de l'IA est sa puissance », ChatGPT trouvera un texte similaire dans des milliards de pages de texte humain, puis comptera la probabilité que le mot suivant apparaisse. Il convient de noter que ChatGPT ne compare pas directement le texte lui-même, mais repose sur un certain sens de « correspondance de sens ». En fin de compte, ChatGPT génère une liste de mots possibles et attribue à chaque mot un classement de probabilité :

Pourquoi ChatGPT est si puissant : une explication détaillée dun article de 10 000 mots du père de WolframAlpha

Il convient de noter que lorsque ChatGPT termine une tâche comme écrire un article, il le fait en fait, encore et encore, en demandant encore et encore. over: "Sur la base du texte existant, quel devrait être le mot suivant?" - et chaque fois qu'il ajoute un mot (plus précisément, comme je l'ai expliqué, il ajoute un "jeton", cela peut simplement être une partie du mot, qui c'est pourquoi il « crée parfois de nouveaux mots »).

A chaque étape, il obtient une liste de mots avec probabilités. Mais quel mot devrait-il choisir d’ajouter à l’article (ou à toute autre chose) qu’il écrit ?

On pourrait penser qu’il faut choisir le mot « le mieux classé » (c’est-à-dire le mot auquel est attribuée la « probabilité » la plus élevée). Mais c’est là que quelque chose de mystérieux commence à s’infiltrer. Parce que pour une raison quelconque - et peut-être qu'un jour nous aurons une compréhension scientifique - si nous choisissons toujours le mot le mieux classé, nous nous retrouvons généralement avec un article très "fade" qui ne montre jamais aucune créativité (parfois même répété textuellement). Si parfois (au hasard) nous choisissons un mot moins bien classé, nous pourrions obtenir un article « plus intéressant ».

La présence du hasard ici signifie que si nous utilisons la même invite plusieurs fois, nous nous retrouverons très probablement avec un article différent à chaque fois. Conformément au concept vaudou, il existe un paramètre spécifique appelé « température » dans le processus, qui détermine la fréquence à laquelle les mots de rang inférieur seront utilisés. Pour la génération d'articles, il est préférable de régler cette « température » à 0,8. Il convient de souligner que la « théorie » n’est pas utilisée ici ; ce sont simplement des faits dont l’efficacité a été prouvée dans la pratique. Par exemple, le concept de « température » existe parce que des distributions exponentielles (distributions familières de la physique statistique) sont utilisées, mais il n'y a aucun lien « physique » entre elles, du moins à notre connaissance.

Avant de continuer, je dois expliquer que par souci de présentation, je n'utilise pas la plupart du temps le système complet dans ChatGPT, j'utilise plutôt un système GPT-2 plus simple, qui possède d'excellentes fonctionnalités, c'est-à-dire qu'il est suffisamment petit pour fonctionner sur un ordinateur de bureau standard. Par conséquent, presque tout ce que je montre contiendra du code Wolfram Language explicite que vous pourrez exécuter immédiatement sur votre ordinateur.

Par exemple, l'image ci-dessous montre comment obtenir le tableau de probabilité ci-dessus. Tout d’abord, nous devons récupérer le réseau neuronal « Modèle de langage » sous-jacent :

Pourquoi ChatGPT est si puissant : une explication détaillée dun article de 10 000 mots du père de WolframAlpha

Plus tard, nous plongerons dans ce réseau neuronal et discuterons de son fonctionnement. Mais pour l'instant, nous pouvons appliquer ce « modèle de réseau » à notre texte sous forme de boîte noire et demander les 5 meilleurs mots en fonction des probabilités que le modèle pense qu'il devrait suivre :

Pourquoi ChatGPT est si puissant : une explication détaillée dun article de 10 000 mots du père de WolframAlpha

Après avoir obtenu les résultats, nous allons Convertissez cela en un "ensemble de données" explicitement formaté :

Pourquoi ChatGPT est si puissant : une explication détaillée dun article de 10 000 mots du père de WolframAlpha

Voici ce qui se passe lorsque vous "appliquez le modèle" de manière itérative - en ajoutant à chaque étape les mots avec la probabilité la plus élevée (spécifiés dans ce code comme dans le modèle "Décision ") :

Pourquoi ChatGPT est si puissant : une explication détaillée dun article de 10 000 mots du père de WolframAlpha

Que va-t-il se passer si nous continuons ? Dans cette situation (« degré zéro »), des situations assez confuses et répétitives peuvent rapidement se développer.

Pourquoi ChatGPT est si puissant : une explication détaillée dun article de 10 000 mots du père de WolframAlpha

Mais et si au lieu de toujours choisir des mots « top », vous choisissiez parfois au hasard des mots « non top » (« le hasard » correspond à une « température » de 0,8) ? Nous pouvons continuer à écrire à nouveau le texte :

Pourquoi ChatGPT est si puissant : une explication détaillée dun article de 10 000 mots du père de WolframAlpha

Et à chaque fois que nous ferons cela, il y aura une sélection aléatoire différente et le texte correspondant sera différent. Par exemple, les 5 exemples suivants :

Pourquoi ChatGPT est si puissant : une explication détaillée dun article de 10 000 mots du père de WolframAlpha

Il est à noter que même dans la première étape, il existe de nombreux "mots suivants" possibles parmi lesquels choisir en fonction du texte existant (dans le cas d'une température de 0,8 ci-dessous), bien que leurs probabilités diminuent rapidement (oui, la ligne droite sur ce tracé logarithmique correspond à une décroissance n–1 en « loi de puissance », qui est une caractéristique statistique générale des langues) :

Pourquoi ChatGPT est si puissant : une explication détaillée dun article de 10 000 mots du père de WolframAlpha

Donc que se passera-t-il si nous continuons à écrire ? Voici un exemple aléatoire. C'est un peu mieux que d'utiliser le mot le mieux classé (zéro degré), mais quand même un peu bizarre :

Pourquoi ChatGPT est si puissant : une explication détaillée dun article de 10 000 mots du père de WolframAlpha

Cela a été fait en utilisant le modèle GPT-2 le plus simple (de 2019). Les résultats sont meilleurs en utilisant le nouveau modèle GPT-3, plus grand. Voici le texte utilisant le mot le mieux classé (zéro degré) généré en utilisant le même « indice » mais en utilisant le plus grand modèle GPT-3 :

Pourquoi ChatGPT est si puissant : une explication détaillée dun article de 10 000 mots du père de WolframAlpha

Ensuite, un exemple aléatoire de « la température est de 0,8 » :

Pourquoi ChatGPT est si puissant : une explication détaillée dun article de 10 000 mots du père de WolframAlpha

D'où viennent ces probabilités ?

ChatGPT choisit toujours le mot suivant en fonction de la probabilité. Mais d’où viennent ces probabilités ?

Commençons par une question plus simple. Lorsque nous envisageons de générer du texte anglais lettre par lettre (plutôt que mot par mot), comment déterminer la probabilité de chaque lettre ?

Le moyen le plus simple est de prendre un échantillon de texte anglais et de compter la fréquence des différentes lettres qu'il contient. Par exemple, voici le nombre de lettres dans l'article Wikipédia pour "chat" (les résultats du comptage sont omis ici) :

Pourquoi ChatGPT est si puissant : une explication détaillée dun article de 10 000 mots du père de WolframAlpha

C'est le cas pour "chien" :

Pourquoi ChatGPT est si puissant : une explication détaillée dun article de 10 000 mots du père de WolframAlpha

Le les résultats sont similaires, mais pas exactement les mêmes (après tout, le « o » est plus courant dans les articles « chiens » car il apparaît dans le mot « chien » lui-même). Cependant, si nous prenons un échantillon suffisamment grand de texte anglais, nous pouvons éventuellement nous attendre à obtenir des résultats au moins assez cohérents :

Pourquoi ChatGPT est si puissant : une explication détaillée dun article de 10 000 mots du père de WolframAlpha

Voici un exemple dans lequel nous générons des séquences de lettres en utilisant uniquement ces probabilités :

Pourquoi ChatGPT est si puissant : une explication détaillée dun article de 10 000 mots du père de WolframAlpha

Nous pouvons mieux diviser les « mots » en forçant la répartition des « longueurs de mots » à être cohérente avec l'anglais » :

Pourquoi ChatGPT est si puissant : une explication détaillée dun article de 10 000 mots du père de WolframAlpha

Ici, nous n'avons pas généré de « vrais mots », mais le résultat. ça a l'air légèrement mieux. Cependant, pour aller plus loin, il nous faudra plus de travail que la simple sélection aléatoire de chaque lettre. Par exemple, nous savons que si un « q » apparaît, la lettre suivante doit être un « u ».

Il s'agit d'un diagramme de probabilité pour les lettres elles-mêmes :

Pourquoi ChatGPT est si puissant : une explication détaillée dun article de 10 000 mots du père de WolframAlpha

Il s'agit d'un diagramme de probabilité pour les paires de lettres ("2-grammes") dans un texte anglais typique. L'axe horizontal est la première lettre possible et l'axe vertical est la deuxième lettre (le tracé de probabilité est omis ici) :

Pourquoi ChatGPT est si puissant : une explication détaillée dun article de 10 000 mots du père de WolframAlpha

Ici, nous pouvons voir que la colonne "q" est à l'exception du "u" Sauf sur la ligne, tout le reste est vide (probabilité nulle). Eh bien, maintenant, au lieu de générer des « mots » lettre par lettre, nous les générons en utilisant ces probabilités de « 2 grammes », deux lettres à la fois. Voici un échantillon des résultats - qui incluent quelques "mots réels" :

Pourquoi ChatGPT est si puissant : une explication détaillée dun article de 10 000 mots du père de WolframAlpha

Avec suffisamment de texte en anglais, nous pouvons non seulement obtenir une bonne estimation de la probabilité d'une seule lettre ou d'une paire de lettres (2- gramme), la probabilité de combinaisons de lettres plus longues peut également être estimée. Si nous utilisons des probabilités n-grammes de plus en plus longues pour générer des « mots aléatoires », nous constaterons qu'ils deviennent progressivement « plus réalistes ».

Pourquoi ChatGPT est si puissant : une explication détaillée dun article de 10 000 mots du père de WolframAlpha

Mais supposons maintenant que – comme avec ChatGPT – nous avons affaire à des mots entiers, pas à des lettres. Il existe environ 40 000 mots courants en anglais. En examinant une grande quantité de textes anglais (par exemple des millions de livres contenant des dizaines de milliards de mots), nous pouvons estimer la fréquence de chaque mot. En utilisant cette estimation, nous pouvons commencer à générer des « phrases » où chaque mot est choisi indépendamment au hasard avec la même probabilité qu’il apparaisse dans le corpus. Voici un échantillon de ce que nous avons obtenu :

Pourquoi ChatGPT est si puissant : une explication détaillée dun article de 10 000 mots du père de WolframAlpha

Sans surprise, cela n'a aucun sens. Alors, que pouvons-nous faire pour générer de meilleures phrases ? Tout comme pour les lettres, nous pouvons commencer à réfléchir à la probabilité non seulement de mots, mais également de paires de mots ou de n-grammes plus longs. Pour les paires de mots, voici 5 exemples, tous commençant par le mot « chat » :

Pourquoi ChatGPT est si puissant : une explication détaillée dun article de 10 000 mots du père de WolframAlpha

semble un peu « plus significatif ». Si nous pouvions utiliser des n-grammes suffisamment longs, nous pourrions imaginer essentiellement "obtenir un ChatGPT" - c'est-à-dire que nous obtiendrions quelque chose qui génère de longues séquences de texte avec "la probabilité globale correcte de l'article". Mais voici le problème : il n’existe pas suffisamment de textes en anglais pour pouvoir déduire ces probabilités.

Il peut y avoir des dizaines de milliards de mots dans un robot d'exploration Web ; il peut y avoir des dizaines de milliards de mots supplémentaires dans un livre numérisé. Mais même avec 40 000 mots courants, le nombre de 2-uplets possibles est déjà de 1,6 milliard, et le nombre de 3-uplets possibles s'élève à 60 000 milliards. Par conséquent, nous ne pouvons pas estimer les probabilités de ces possibilités à partir du texte existant. Au moment où nous devons générer un « extrait de texte » de 20 mots, le nombre de possibilités dépasse déjà le nombre de particules dans l’univers, donc dans un sens, elles ne peuvent pas toutes être écrites.

Alors, que devons-nous faire ? L’idée clé est de construire un modèle qui nous permette d’estimer la probabilité que des séquences se produisent, même si nous n’avons jamais vu explicitement ces séquences dans le corpus textuel que nous étudions. Au cœur de ChatGPT se trouve ce que l'on appelle le « grand modèle de langage » (LLM), qui est conçu pour très bien estimer ces probabilités.

(Pour des raisons d'espace, la compilation de chapitres tels que "Qu'est-ce qu'un modèle", "Réseau de neurones", "Apprentissage automatique et formation aux réseaux de neurones", "Pratique et connaissance de la formation aux réseaux de neurones" et "Concepts d'intégration" sont omis ici. Les lecteurs intéressés peuvent lire le texte original par eux-mêmes)

La structure interne de ChatGPT

Il ne fait aucun doute qu'il s'agit en fin de compte d'un énorme réseau neuronal, et la version actuelle est un réseau GPT-3 avec 175 milliards de poids. . À bien des égards, ce réseau de neurones est très similaire aux autres réseaux de neurones dont nous avons parlé, mais il s'agit d'un réseau de neurones spécifiquement conçu pour traiter le langage. La caractéristique la plus remarquable est une architecture de réseau neuronal appelée « Transformer ».

Dans le premier type de réseau neuronal dont nous avons parlé ci-dessus, chaque neurone d'une couche donnée est essentiellement connecté (avec au moins un certain poids) à chaque neurone de la couche précédente. Cependant, un tel réseau entièrement connecté est (vraisemblablement) excessif si vous souhaitez traiter des données avec une structure connue spécifique. Par conséquent, dans les premières étapes du traitement des images, il est courant d'utiliser des réseaux de neurones dits convolutifs (« convnets »), dans lesquels les neurones sont en fait disposés sur une grille similaire aux pixels de l'image et n'interagissent qu'avec les neurones proches du réseau connecté.

L'idée de Transformer est de faire au moins quelque chose de similaire à la séquence de jetons qui composent le texte. Cependant, le Transformer ne définit pas seulement une zone fixe dans laquelle des connexions peuvent être établies, il introduit également le concept d'« attention » - le concept d'« attention » se concentrant davantage sur certaines parties de la séquence que sur d'autres. Peut-être qu'un jour, il sera logique de simplement lancer un réseau neuronal général avec toutes les personnalisations via la formation. Mais dans la pratique, du moins pour le moment, la modularisation des choses est cruciale, tout comme les Transformers, et probablement ce que fait notre cerveau aussi.

Alors, que fait réellement ChatGPT (ou, plus précisément, le réseau GPT-3 sur lequel il est basé) ? N'oubliez pas que son objectif global est de continuer « raisonnablement » à écrire du texte en fonction de ce qu'il voit lors de la formation (ce qui inclut la consultation de texte provenant de milliards de pages sur le Web). Ainsi, à tout moment, il contient une certaine quantité de texte et son objectif est de choisir un choix approprié pour le prochain jeton.

ChatGPT fonctionne selon trois étapes de base. Tout d’abord, il obtient la séquence de jetons correspondant au texte actuel et trouve l’intégration (c’est-à-dire un tableau de nombres) qui les représente. Il opère ensuite sur cette intégration à la « manière standard du réseau neuronal », faisant « fluctuer » les valeurs à travers les couches successives du réseau pour produire une nouvelle intégration (c'est-à-dire un nouveau tableau de nombres). Ensuite, il prend la dernière partie de ce tableau et génère un tableau contenant environ 50 000 valeurs qui se traduisent en probabilités de jetons suivants différents et possibles (oui, il se trouve qu'il y a le même nombre de jetons que les mots anglais courants, bien que seulement environ 3000 jetons sont des mots complets, le reste sont des fragments. )

Le point clé est que chaque partie de ce pipeline est implémentée par un réseau de neurones et que ses poids sont déterminés par la formation de bout en bout du réseau. En d’autres termes, rien n’est réellement « explicitement conçu », à l’exception de l’architecture globale, tout est « appris » à partir des données d’entraînement.

Cependant, la manière dont l'architecture est construite comporte de nombreux détails, reflétant une grande variété d'expériences et de connaissances en matière de réseaux neuronaux. Bien qu'il s'agisse définitivement d'une question de détail, j'ai pensé qu'il serait utile de discuter de certains de ces détails pour au moins comprendre ce qui est requis pour créer ChatGPT.

Le premier est le module d'intégration. Voici un diagramme schématique de GPT-2, exprimé en Wolfram Language :

Pourquoi ChatGPT est si puissant : une explication détaillée dun article de 10 000 mots du père de WolframAlpha

Ce texte présente un module appelé "module d'intégration", qui comporte trois étapes principales. Dans la première étape, le texte est converti en une séquence de jetons, et chaque jeton est converti en un vecteur d'intégration d'une longueur de 768 (pour GPT-2) ou 12 288 (pour GPT-3 de ChatGPT) à l'aide d'un réseau neuronal monocouche. . Dans le même temps, il existe également un « chemin secondaire » dans le module, qui est utilisé pour convertir la position entière du jeton en un vecteur d'intégration. Enfin, la valeur du jeton et le vecteur d'intégration de la position du jeton sont additionnés pour générer la séquence de vecteurs d'intégration finale.

Pourquoi devons-nous ajouter la valeur du jeton et le vecteur d'intégration de la position du jeton ? Il ne semble pas y avoir d’explication particulièrement scientifique. Je viens d'essayer un tas de choses différentes et celle-ci semble fonctionner. Et la tradition des réseaux neuronaux veut également que tant que les paramètres initiaux sont « à peu près corrects », avec suffisamment de formation, les détails peuvent généralement être automatiquement ajustés sans réellement « comprendre comment le réseau neuronal est conçu ».

La fonction de ce module "module d'intégration" est de convertir du texte en une séquence de vecteurs d'intégration. En prenant comme exemple la chaîne "bonjour bonjour bonjour bonjour bonjour bonjour bonjour bonjour bonjour bye bye bye bye bye bye bye bye bye", elle peut être convertie en une série de vecteurs d'intégration d'une longueur de 768, y compris à partir de chaque jeton. extraits des valeurs et des emplacements.

Pourquoi ChatGPT est si puissant : une explication détaillée dun article de 10 000 mots du père de WolframAlpha

Les éléments de chaque vecteur d'intégration de jetons sont affichés ici. Une série d'intégrations "bonjour" sont affichées horizontalement, suivies d'une série d'intégrations "au revoir". Le deuxième tableau ci-dessus est une intégration positionnelle, dont la structure apparemment aléatoire vient d'être apprise (dans ce cas dans GPT-2).

D'accord, après le module d'intégration vient la "partie principale" du Transformer : une série de "blocs d'attention" (12 pour GPT-2, 96 pour GPT-3 de ChatGPT). Ceci est complexe et rappelle les grands systèmes d’ingénierie ou les systèmes biologiques généralement incompréhensibles. Cependant, voici un schéma d'un seul "bloc d'attention" de GPT-2 :

Pourquoi ChatGPT est si puissant : une explication détaillée dun article de 10 000 mots du père de WolframAlpha

Dans chaque bloc d'attention, il y a un ensemble de "têtes d'attention" (GPT-2 en a 12, GPT -3 de ChatGPT en a 96), chaque tête d'attention agit indépendamment sur des blocs de valeurs différentes dans le vecteur d'intégration. (Oui, nous ne connaissons pas les avantages de diviser les vecteurs d'intégration en parties, ni ce que signifient leurs différentes parties ; ce n'est qu'une des techniques qui se sont avérées efficaces.)

Alors, quelle est la fonction de la tête d’attention ? Fondamentalement, ils constituent un moyen de « regarder en arrière » sur une séquence de jetons (c'est-à-dire un texte déjà généré) et de « regrouper » les informations historiques sous une forme utile pour trouver facilement le jeton suivant. Ci-dessus, nous avons mentionné l'utilisation de probabilités binaires pour sélectionner des mots en fonction de leur jeton précédent. Le mécanisme « attention » de Transformer permet « l'attention » sur les mots antérieurs, capturant potentiellement, par exemple, la façon dont les verbes font référence aux noms qui apparaissent plusieurs mots avant eux dans une phrase.

Plus précisément, le rôle de la tête d'attention est de recombiner les blocs de vecteurs d'intégration liés à différents jetons et d'attribuer certains poids. Ainsi, par exemple, les 12 têtes d'attention dans le premier bloc d'attention dans GPT-2 ont le modèle suivant ("regardez la séquence de jetons jusqu'au début") "regrouper les poids" pour la chaîne "bonjour, au revoir" ci-dessus :

Pourquoi ChatGPT est si puissant : une explication détaillée dun article de 10 000 mots du père de WolframAlpha

Après avoir été traité par le mécanisme d'attention, un "vecteur d'intégration repondéré" (longueur 768 pour GPT-2 et 12 288 pour GPT-3 de ChatGPT) est obtenu, puis transmis à travers un "vecteur d'intégration complet" standard Couches de réseau neuronal « Connecter ». Il est difficile de comprendre ce que fait cette couche. Mais voici un tracé de la matrice de poids 768×768 qu'il utilise (ici GPT-2) :

Pourquoi ChatGPT est si puissant : une explication détaillée dun article de 10 000 mots du père de WolframAlpha

Avec une moyenne mobile de 64×64, une structure (semblable à une marche aléatoire) commence à émerger :

Pourquoi ChatGPT est si puissant : une explication détaillée dun article de 10 000 mots du père de WolframAlpha

Qu'est-ce qui détermine cette structure ? Il peut s'agir d'un « codage par réseau neuronal » des caractéristiques du langage humain. Mais jusqu’à présent, ces caractéristiques étaient peut-être inconnues. En fait, nous « ouvrons le cerveau » de ChatGPT (ou du moins GPT-2) et découvrons que, oui, il y a là beaucoup de complexité que nous ne comprenons pas, même si en fin de compte, cela donne la capacité de reconnaître discours humain.

D'accord, après avoir passé un module d'attention, nous obtenons un nouveau vecteur d'intégration, qui est ensuite transmis successivement à d'autres modules d'attention (un total de 12 pour GPT-2 et 96 pour GPT-3). Chaque module d'attention a ses propres modèles de pondération « attention » et « entièrement connectés » spécifiques. Voici la séquence de poids d'attention pour la première tête d'attention pour l'entrée "bonjour, au revoir" (pour GPT-2) :

Pourquoi ChatGPT est si puissant : une explication détaillée dun article de 10 000 mots du père de WolframAlpha

Ce qui suit est la "matrice" de la couche entièrement connectée (après moyenne mobile ) :

Pourquoi ChatGPT est si puissant : une explication détaillée dun article de 10 000 mots du père de WolframAlpha

Fait intéressant, même si ces "matrices de poids" se ressemblent beaucoup dans différents blocs d'attention, la répartition des tailles de poids peut être différente (et pas toujours gaussienne) :

Pourquoi ChatGPT est si puissant : une explication détaillée dun article de 10 000 mots du père de WolframAlpha

Donc, quel est l'effet net du Transformateur après tous ces blocages d'attention ? Essentiellement, il convertit l’ensemble d’intégration original de séquences de jetons en l’ensemble final. La manière spécifique dont ChatGPT fonctionne est de sélectionner la dernière intégration dans l'ensemble et de la « décoder » pour produire une liste de probabilité du jeton suivant.

Voici donc un aperçu des composants internes de ChatGPT. Cela peut paraître complexe (beaucoup de ces choix sont des « choix d’ingénierie » inévitables, quelque peu arbitraires), mais en réalité, les éléments impliqués sont finalement assez simples. Parce qu'en fin de compte, nous avons affaire uniquement à des réseaux de neurones constitués de « neurones artificiels », dont chacun effectue l'opération simple consistant à combiner un ensemble d'entrées numériques avec certains poids.

L'entrée originale de ChatGPT est un tableau de nombres (le vecteur d'intégration du jeton jusqu'à présent), et lorsque ChatGPT "s'exécute" pour générer un nouveau jeton, ces nombres sont simplement "propagés" à travers les couches du réseau neuronal, chaque neurone "fait son propre truc" "chose" et transmet le résultat aux neurones de la couche suivante. Il n’y a pas de boucles ni de « retour en arrière ». Tout est simplement "feed forward" via le réseau.

Cela est complètement différent des systèmes informatiques typiques tels que les machines de Turing, qui « retraitent » à plusieurs reprises les résultats à travers les mêmes éléments informatiques. Ici - au moins en termes de génération d'un jeton de sortie donné - chaque élément informatique (c'est-à-dire neurone) n'est utilisé qu'une seule fois.

Mais il y a toujours une sensation de « boucle externe » dans ChatGPT, qui est réutilisée même dans les éléments calculés. Parce que lorsque ChatGPT veut générer un nouveau jeton, il « lit » toujours (c'est-à-dire l'utilise comme entrée) toute la séquence de jetons qui est apparue avant lui, y compris les jetons précédemment « écrits » par ChatGPT lui-même. Nous pouvons considérer cette configuration comme signifiant que ChatGPT implique au moins une « boucle de rétroaction » à son niveau le plus externe, bien que chaque itération soit explicitement visible comme un jeton apparaissant dans le texte qu'elle génère.

Revenons au cœur de ChatGPT : le réseau de neurones utilisé pour générer chaque token. À un certain niveau, c'est très simple : une collection de neurones artificiels identiques. Certaines parties du réseau sont constituées uniquement de couches de neurones (« entièrement connectées »), où chaque neurone de cette couche est connecté (avec un certain poids) à chaque neurone de la couche précédente. Mais surtout dans son architecture Transformer, ChatGPT possède une partie plus structurée où seuls des neurones spécifiques sur des couches spécifiques sont connectés. (Bien sûr, on peut toujours dire « tous les neurones sont connectés » – mais certains neurones ont un poids nul).

De plus, certains aspects du réseau neuronal dans ChatGPT ne constituent pas les couches les plus naturellement « homogènes ». Par exemple, au sein d'un bloc d'attention, il existe des endroits où sont réalisées des « copies multiples » des données entrantes, chacune d'entre elles passant ensuite par un « chemin de traitement » différent, impliquant éventuellement un nombre différent de couches, avant d'être réassemblées ultérieurement. Bien que cela puisse être un moyen de notation pratique, au moins en principe, il est toujours possible d'envisager de "remplir de manière dense" les couches et de faire en sorte que certains poids soient simplement nuls.

Si vous regardez le chemin le plus long dans ChatGPT, il y a environ 400 couches (couche principale) – ce qui n'est pas un nombre énorme à certains égards. Mais il existe des millions de neurones, soit au total 175 milliards de connexions, et donc 175 milliards de poids. Une chose à comprendre est que chaque fois que ChatGPT génère un nouveau jeton, il doit effectuer un calcul impliquant chaque poids. En termes de mise en œuvre, ces calculs peuvent être organisés en opérations de réseau hautement parallèles, qui peuvent être facilement réalisées sur le GPU. Mais cela nécessite tout de même 175 milliards de calculs pour chaque token produit (et un peu plus au final) – alors oui, il n'est pas surprenant que générer un long morceau de texte avec ChatGPT prenne un certain temps.

Mais en fin de compte, nous devons également noter que toutes ces opérations fonctionnent d'une manière ou d'une autre ensemble pour effectuer un travail de génération de texte aussi "humain". Il faut souligner à nouveau que (du moins à notre connaissance) il n’existe pas de « raison théorique ultime » pour laquelle une telle chose devrait fonctionner. En fait, comme nous en discuterons, je pense que nous devons considérer cela comme une découverte scientifique - potentiellement surprenante : dans un réseau neuronal comme ChatGPT, il est possible de capturer ce que fait le cerveau humain en générant le langage. capable de le faire.

(En raison de la longueur de l'article original, les amis intéressés peuvent cliquer sur le lien à la fin de l'article pour lire le texte intégral)

One More Thing

Peut-être qu'en ouvrant cet article, certains amis ont remarqué des subtilités changements :

Pourquoi ChatGPT est si puissant : une explication détaillée dun article de 10 000 mots du père de WolframAlpha

Oui, l'éditeur du contenu principal de cet article n'est autre que ChatGPT !

Il donne également son point de vue sur l'article de Stephen Wolfram :

Pourquoi ChatGPT est si puissant : une explication détaillée dun article de 10 000 mots du père de WolframAlpha

Lien de référence :

[1] ​​https://www.php.cn/link/e3670ce0c315396e4836d7024abcf3dd​ ​​
[2]​​​https://www.php.cn/link/b02f0c434ba1da7396aca257d0eb1e2f​​​
[3]​​​https://www.php.cn/link/76e9a17937b75b73a8a430acf210fe af​

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer