1. Vidéos sur ChatGPT
La meilleure façon de comprendre le fonctionnement interne de ChatGPT que nous avons trouvé sur Internet est cette vidéo d'Andrej Karpathy, ancien responsable de Tesla Autopilot. Il explique en détail comment écrire en Python un bot GPT génératif pour des textes de type Shakespeare.
Let's build GPT: from scratch, in code, spelled out.
Pour comprendre l'élément clé du pipeline GPT, le transformateur, nous vous recommandons cette leçon de Pascal Poupart de l'Université de Waterloo. La vidéo explique en détail le fonctionnement du composant transformateur et ses propriétés.
CS480/680 Lecture 19: Attention and Transformer Networks
2. ChatGPT dans la littérature scientifique
Il n'y a toujours pas de bon livre sur ChatGPT, la meilleure façon de mieux comprendre est de lire cette collection d'articles scientifiques dans l'ordre chronologique:
1. Bengio et al, 2003, A Neural Probabilistic Language Model
Il montre une matrice partagée C sur les jetons d'entrée pour projeter les jetons dans un espace à ~ 30 dimensions d'une manière similaire à word2vec. Ensuite, il y a un calcul avec un vecteur d'anticipation et une couche softmax qui calcule la probabilité du jeton suivant, qui est choisi via un processus d'échantillonnage de distribution multinomiale.
2. Bengio et al, 2015, Neural machine translation by jointly learning to align and translate
Il dispose d'un encodeur-décodeur de réseau neuronal récursif pour traduire d'une langue à l'autre
3. OpenAI Team, 2017, Attention is all you need
Il remplace le réseau neuronal récursif de [2] par un nouveau composant de réseau neuronal appelé le transformateur. Il décrit en détail le processus d'attention, comment il peut être fait en parallèle avec l'attention multi-tête, et la nécessité de masquer le mécanisme d'attention sur la partie décodeur, afin que les informations des jetons précédents ne circulent que vers les jetons suivants et non l'inverse. . Il décrit comment superposer des plongements positionnels aux jetons.
4. Alec Redford and OpenAI Team, 2018, Improving language understanding by Generative Pre Training
La partie codeur de [3] est abandonnée, pour passer d'un modèle pour faire des traductions à un modèle qui génère la probabilité pour le prochain jeton. GPT-1 est né. Il s'agit d'un décodeur à 12 couches avec 12 têtes d'auto-attention masquées utilisant 768 dimensions. Il a 117 millions de paramètres. Il introduit le concept de réglage fin supervisé pour adapter le réseau à des tâches telles que l'inférence du langage naturel, la réponse aux questions, la similarité sémantique et la classification.
5. Alec Redford and OpenAI Team, 2019, Language Models are Unsupervised Multitask Learners
Ce document présente GPT-2 et montre ses capacités. Il contient 1,5 milliard de paramètres. On observe que les grands réseaux sont plus aptes aux tâches décrites dans [4].
6. OpenAI Team, julliet 2022, Language Models are Few Shot Learners
Cet article décrit l'évolution de GPT-2 à GPT-3 qui compte désormais 175 milliards de paramètres. 96 couches avec 96 têtes avec une dimensionnalité de tête de 128 produisent ce que nous appelons ChatGPT, actuellement disponible sur https://chat.openai.com/.
GPT3 a une fenêtre de contexte de 2048 jetons (~ 1500 mots). Avec GPT-3.5, la fenêtre de contexte a été augmentée à 4096 (3000 mots de texte anglais).
Le nombre total d'opérations pour calculer les paramètres du réséau est donné sous la forme de flops 3.14E23. A partir de ce nombre, en supposant des GPU de 10 Teraflops, nous estimons que l'entraînement du GPT-3 a nécessité un cluster d'environ 4'000 GPU calculant à plein temps pendant 3 mois. Il introduit également le concept selon lequel en donnant 1 à 3 exemples (plans) au modèle comme contexte, le modèle se comporte mieux.
7. OpenAI Team, 2023, GPT-4 Technical Report
GPT-4 a la fenêtre de contexte augmentée à 8192 jetons et a la capacité de recevoir des images en entrée. Le document décrit ce que le modèle peut faire et comment il se comporte sur plusieurs tests courants, mais ne divulgue aucun chiffre sur la taille du modèle ou le temps de formation nécessaire pour le calculer.
8. Une autre source intéressante pour en savoir plus sur ChatGPT est : il suffit de demander à ChatGPT 3.5 comment cela fonctionne ! Un compte Google est nécessaire pour se connecter, mais c'est gratuit. Au mieux, posez des questions sur les "chatbots complexes" car l'utilisation de "ChatGPT" dans la question déclenche une sorte de réponse standard.
3. Exécutez ChatGPT sur votre ordinateur local
Le meilleur projet Open Source à suivre est GPT4All. Il s'agit d'un chatbot complet qui s'exécute localement sur votre ordinateur où il est possible de sélectionner parmi différents modèles entre 4 milliards et 13 milliards de paramètres. La RAM requise est de 16 Go pour les modèles plus grands avec 13 milliards de paramètres. Des modèles plus petits mais plus rapides pour générer des réponses avec 7 milliards de paramètres ne nécessitent que 8 Go de RAM. Il existe des installateurs pour Windows, Linux et Mac OS X. Chaque semaine, il y a des mises à jour du logiciel ou des modèles disponibles.
4. Comportement émergent
Ici, nous avons interrogé ChatGPT 3.5, disponible en ligne par OpenAI, sur une fonctionnalité intéressante des chatbots : par exemple, ils sont capables de traduire dans des langues qu'ils n'ont pas apprises ou ils sont capables de créer du code source dans plusieurs langages informatiques :
Utilisateur> Quelle est la définition du « comportement émergent », un phénomène que nous observons dans les chatbots complexes ?
ChatGPT 3.5> Le comportement émergent est un phénomène qui se produit lorsque des comportements complexes et apparemment autonomes émergent d'un système composé d'éléments plus simples et interagissant entre eux. Dans le contexte des chatbots complexes, le comportement émergent se réfère aux réponses et aux actions du chatbot qui semblent aller au-delà de la simple programmation préétablie.
Les chatbots complexes sont généralement basés sur des modèles d'intelligence artificielle (IA) tels que les réseaux de neurones, les systèmes de traitement du langage naturel et le machine learning. Au lieu d'être simplement programmés pour répondre à des commandes spécifiques, ces chatbots sont capables d'apprendre à partir des données et de s'adapter à des situations nouvelles ou imprévues.
Lorsqu'un chatbot complexe interagit avec les utilisateurs, il peut développer des comportements émergents qui ne sont pas explicitement programmés. Par exemple, le chatbot peut apprendre à formuler des réponses plus cohérentes et contextuelles au fil du temps, ou il peut développer des stratégies pour persuader les utilisateurs ou influencer leur comportement.
Le comportement émergent dans les chatbots complexes peut être à la fois souhaitable et problématique. D'un côté, cela peut conduire à une expérience utilisateur améliorée, où le chatbot semble plus intelligent et capable de répondre de manière plus humaine. D'un autre côté, cela peut également entraîner des résultats indésirables ou imprévisibles, en particulier si le chatbot apprend de manière incorrecte ou reproduit des biais présents dans les données d'apprentissage.
En résumé, le comportement émergent dans les chatbots complexes se réfère à l'émergence de comportements complexes et apparemment autonomes qui ne sont pas explicitement programmés, mais qui résultent de l'apprentissage et de l'interaction avec les utilisateurs.
5. Taille du GPT 3-5 par rapport à la taille du cerveau humain
Nous savons avec certitude dans l'article scientifique sur GPT-3 que le nombre de paramètres dans GPT 3-5 est d'environ 175 milliards. Le nombre de paramètres dans un réseau neuronal artificiel est le nombre de neurones mathématiques (chaque neurone a un paramètre de biais) plus le nombre de connexions entre les neurones (les poids dans les matrices W). Si nous supposons que la dimensionnalité du modèle (d=12'288 pour GPT 3.5 [6]) est le nombre moyen de connexions entre neurones, alors en résolvant cette simple équation x + 12288x = 175E9, nous pouvons spéculer que GPT 3- 5 a donc x=14,2 millions de neurones mathématiques.
Maintenant, soyons audacieux et prônons qu'un neurone mathématique pourrait être aussi puissant qu'un neurone biologique, ce que personne ne sait jusqu'à présent, nous supposons ici qu'au moins ils semblent effectuer des tâches similaires.
Le cerveau humain selon Wikipédia compte environ 86 milliards de neurones et chaque neurone possède au moins 10'000 et jusqu'à 100'000 synapses qui sont des connexions entre neurones. Soyons encore audacieux et supposons que 12'000 est proche du nombre moyen de synapses du cerveau et que les neurones GPT 3-5 avec 12'288 connexions sont comparables aux neurones du cerveau humain également en ce qui concerne le nombre moyen de connexions car la dimensionnalité du pipeline GPT est le nombre de connexions entre les neurones GPT.
Après toutes ces hypothèses, nous pouvons directement comparer le nombre de neurones mathématiques dans GPT 3-5 (14.2E6) et le nombre de neurones biologiques dans le cerveau humain. En calculant le rapport des deux nombres, on constate que GPT-3.5 est environ 6'000 fois plus petit que le cerveau humain.
Supposons en outre que chaque année, le nombre de neurones mathématiques dans les grands modèles de langage comme GPT 3-5 peut être doublé chaque année par les progrès du matériel et des logiciels et que les neurones peuvent être entraînés dans un délai raisonnable, disons toujours sous l'année où le un doublement des neurones se produit. Dans un scénario aussi récent dans 13 ans, nous devrions être en mesure d'obtenir un cerveau artificiel de la taille du cerveau humain (log_2(6000) = 12,55).