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.

Télécharger GPT4All...

 

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).

 Sur course.fast.ai, il existe un bon cours en ligne pour rafraîchir vos connaissances sur le Deep Learning.

Les sujets proposés sont la façon dont la rétropropagation est implémentée dans PyTorch à l'aide de gradients en ligne, le filtrage collaboratif à l'aide de techniques embarquées, le fonctionnement des couches de réseaux de neurones convolutifs, l'analyse tabulaire avec des forêts aléatoires et l'accumulation de gradients pour réduire l'empreinte mémoire des GPU.

Pour de nombreux sujets, il existe un exemple dans Excel qui explique vraiment ce qui se passe sous le capot d'un modèle complexe d'apprentissage en profondeur.

La dernière leçon porte sur l'éthique des données et explique comment, grâce aux boucles de rétroaction mises en place dans les médias sociaux, notre société est devenue plus polarisée dans les discussions importantes.

Il y a un livre pour le cours, que nous recommandons également:

 

Nous avons construit le kit Prusa du modèle i3 MK3S en environ 12 heures, qui est actuellement la meilleure imprimante 3D du marché.

Le kit est idéal pour apprendre le fonctionnement d'une imprimante 3D. Josef Prusa a modifié la conception originale du projet RepRap (Replicating Rapid Prototyper) qui est Open Source et où les pièces en plastique de l'imprimante 3D à construire sont imprimées par une autre imprimante 3D. Au moment de la rédaction du présent rapport, Prusa Research a fourni 130 000 imprimantes partout dans le monde et possède une ferme d'impression de 1 000 imprimantes 3D.

Deep Space a créé le nouveau site Web de la société de scouts locaux, APE Poschiavo. Il a également récupéré le contenu existant de l'ancien site Web qui avait été incorrectement migré depuis le fournisseur Internet précédent. Vous pouvez visiter le nouveau site ici.

Depuis ce matin, les meilleures ressources de notre cluster informatique sont dédiées aux projets Folding@home et Gene@home (par TN-Grid in BOINC), qui examinent directement comment COVID19 interagit avec le récepteur humain ACE2. Rosetta@home et GPUGRID examinent également partiellement COVID19 et nous avons déjà là une contribution pluriannuelle. Deep Space soutient également plusieurs autres projets de lutte contre les maladies courantes avec ses Supercalculateurs CUDA. Notre cluster informatique a été principalement construit avec des ordinateurs recyclés et suralimentés par des cartes graphiques achetées d'occasion.