• A la façon de la “Somme contre les gentils” de St Thomas, nous allons partir de fondements communs rationnels pour construire un automate logique “pensant”.
  • Je vais tenter de démystifier le fonctionnement des LLMs (Large Language Models) en vous faisant revivre l’aventure intellectuelle qui va de la matière à l’IA.
    • Tout d’abord nous fabriquerons un ordinateur.
    • Ensuite nous verrons le fonctionnement d’un réseau de neurones artificiel.
    • Enfin nous le fonctionnement d’un LLM.

I - Automate de calcul

Logique fondamentale

La logique est une science qui étudie les principes du raisonnement valide. Elle est fondamentale pour la philosophie, les mathématiques et l’informatique. Elle est fondée sur le principe de non-contradiction. La porte logique NAND est une porte universelle qui permet de construire toutes les autres portes logiques par combinaison.

Imaginer l’automate

En informatique théorique, une machine de Turing est un modèle abstrait du fonctionnement des appareils mécaniques de calcul, tel un ordinateur.

NANDGAME: https://www.nandgame.com/

Construire l’automate

La découverte des jonctions P-N permet de construire de minuscules transistors en silicium. Ces transistors peuvent être assemblés en circuits intégrés qui permettent de construire un ordinateur.

Minecraft CPU: https://youtu.be/TxatLwlj0lU?si=aYUfTmiCIc7kXt56&t=34

Controler l’automate

Nous devons maintenant controler notre automate et lui faire faire des calculs. Nous créons des langages avec des niveaux d’abstraction de plus en plus élevés et de plus en plus élégants. Nous controlons un nouveau type de rapport au langage: l’exécution en plus de la lecture et de l’écriture.

Accélerer l’automate

Au bout d’un certains temps, la miniaturisation des transistors et la fréquence de calcul atteignent des limites physiques. Il faut donc trouver d’autres moyens d’augmenter la puissance de calcul: on duplique et on parallèlise en répartissant la charge de travail sur les différents coeurs.

II - Appréhender un monde incertain

Réseaux de neurones et vision machine (ANNs)

Notre machine est déterministe, rapide et précise mais elle n’aime pas l’incertitude, l’ambiguité et l’approximation. On explore alors comment le cerveau humain arrive à appréhender le monde incertain qui nous entoure avec ses réseaux de neurones. On s’inspire de la nature pour créer des réseaux de neurones artificiels. (La vision humaine serait de 576 million pixels, et le cerveau humain contient 86 milliards. Le traitement quasi-instantanée de l’information visuelle est fascinant.)

Recap perceptron 3B1B: https://youtu.be/IHZwWFHWa-w?si=LE5qWstbH01bqKZO&t=29

Large Language Models (LLMs)

Une des théories de l’apparition des facultés humaines est le détournement d’une partie de notre puissance de calcul visuelle vers la méta-cognition et les concepts abstraits. Les LLMs sont des réseaux de neurones qui ont été entrainés sur de très grands corpus de données textuelles. Ils sont capables de générer du texte à partir d’un prompt.

Viz NanoLLM: https://bbycroft.net/llm

Voici un exemple d’utilisation de GPT-4 pour créer un chatbot catholique qui enrichi du “Cathéchisme de l’Eglise Catholique” réponds aux questions posées par les utilisateurs.

Corpus de pré-training

Donner au modèle un corpus de texte suffisamment grand et varié pour qu’il puisse apprendre la structure du langage. Il faut éviter les données redondantes, les biais, nettoyer les balises, etc.

Corpus de domaine

  • Corpus d’adaptation à un domaine particulier et son jargon: médical, légal, financier, etc.

Tokenisation

Conversion d’un texte en une séquence de tokens (mots, caractères, sous-mots, etc.) qui seront utilisés par le modèle.

Choix du type de LLM

Des architectures différentes sont adaptées aux taches à réaliser:

  • “Auto-encoding” RoBERTa: textes à trous, analyse de sentiments, NER, etc.
  • “Auto-regressive” GPT: génération de texte
  • “Sequence-to-sequence” BART: traduction, résumé, etc.

Fine-tuning

On change les poids du modèle pour qu’il soit adapté à une tache particulière en lui donnant des exemples de la tache à réaliser et des réponses attendues. On peut segmenter le modèle en plusieurs parties fine-tuner une partie et géler les poids du reste. (PEFT) Le mode INSTRUCT réponds aux instructions données par l’utilisateur.

Benchmark et métriques d’évaluation

On mesure la similarité entre le texte généré et le texte humain attendu avec des métriques de correspondances comme BLEU ou ROUGE. D’autres tests sont plus généralistes comme MMLU.

Renforcement par feedback humain (RLHF)

Un LLM doit suivre les HHH: Helpful, Honest and Harmless On génère plusieurs réponses, on demande à un humain de les classer et on fine-tune le modèle vis à vis de ce feedback. Si un LLMs est trop “serviable” il peut être manipulé par un utilisateur pour des activités malveillantes.

Déploiement

Compression, optimisation et déploiement du modèle sur un serveur pour qu’il puisse être répondre aux utilisateurs.

Librairie d’orchestration

Permet au LLM de communiquer avec d’autres composants du système, de faire des requetes de données, etc.

Génération Augmentée de Récupération (RAG)

Permet d’ajouter des sources de données supplémentaires pour enrichir les réponses du modèle à travers des requetes dans des bases de données, des interrogations de moteurs de recherche, de la recherche sémantique, des appels API, etc. La recherche par similarité vectorielle (embedding vectors) permet de trouver des réponses des textes similaires à la requete qui peuvent être intégrées dans la réponse du modèle.

Biais dans les vecteurs: https://wikipedia2vec.github.io/demo/

Program aided language (PAL) model & ReACT

On donne au modèle la capacité de générer du code informatique permettant de réaliser des taches complexes. Par exemple un calcul complexe est hors de portée d’un LLM alors qu’il peut écrire un code informatique simple pouvant le résoudre. Le modèle a juste une tache générale et fais un plan de sous taches et d’agents pour y arriver.

Prompt Engineering

Nous disposons suivant les modèles d’un espace limité pour donner des instructions au modèle, la fenetre de contexte. C’est dans cette fenetre que nous allons indiquer:

UI/UX

L’interface utilisateur est un élément essentiel pour que le modèle puisse être utilisé par des humains. Elle est généralement proche d’une interface de messagerie instantanée avec des bulles de conversation. Elle comprends également un système de gestion des utilisateurs, un historique des messages, etc.

III - Cas pratique

Démonstration de l’utilisation de GPT-4 pour créer un chatbot catholique qui enrichi du “Cathéchisme de l’Eglise Catholique” réponds aux questions posées par les utilisateurs.