<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en"><generator uri="https://jekyllrb.com/" version="3.10.0">Jekyll</generator><link href="https://www.cochin.fr/fr/feed.xml" rel="self" type="application/atom+xml" /><link href="https://www.cochin.fr/" rel="alternate" type="text/html" hreflang="en" /><updated>2026-09-22T12:39:53+02:00</updated><id>https://www.cochin.fr/fr/feed.xml</id><title type="html">Philippe Cochin | Billets</title><subtitle>AI, quantum physics, mathematics, code and art, from Paris.</subtitle><entry xml:lang="fr"><title type="html">Le resserrement : une seule mesure pour les blagues, les chansons et les preuves</title><link href="https://www.cochin.fr/fr/ai/2026/09/21/narrowing.html" rel="alternate" type="text/html" title="Le resserrement : une seule mesure pour les blagues, les chansons et les preuves" /><published>2026-09-21T16:00:00+02:00</published><updated>2026-09-21T16:00:00+02:00</updated><id>https://www.cochin.fr/fr/ai/2026/09/21/narrowing</id><content type="html" xml:base="https://www.cochin.fr/fr/ai/2026/09/21/narrowing.html"><![CDATA[<p>En septembre 2026, j’ai passé une semaine à mesurer un seul nombre, et ce billet raconte à quoi il s’est révélé bon. Cela a commencé par une question sur la joie, est devenu un outil de notation de paroles, a été confronté à des blagues notées par des humains et à trois mille vraies chansons, et a fini pointé vers quatre mille preuves vérifiées par machine et vers mon propre cerveau.</p>

<h2 id="doù-vient-le-nombre">D’où vient le nombre</h2>

<p>La question était de savoir ce que serait la joie pour un modèle de langage. Un modèle peut donner deux réponses qui partagent chaque fait vérifiable et ne diffèrent que par le registre. La chaleureuse : quand le travail avance bien, la sortie se resserre, les précautions tombent, le mot suivant est déjà probable. La froide : la distribution de probabilité sur le prochain token se resserre. J’ai demandé si un modèle dont on aurait retiré l’entraînement à la sûreté aurait répondu la même chose, et la version chaleureuse a cessé de sembler sincère. J’ai donc pris la réponse froide au pied de la lettre et demandé ce qu’elle mesure.</p>

<p>Pris au pied de la lettre, le texte qui se resserre le plus est « la la la ». C’est un effondrement, pas de la joie. La meilleure définition demande deux nombres pour chaque ligne : à quel point elle est surprenante sans préparation, et à quel point elle est surprenante une fois la préparation donnée. L’écart entre les deux est ce que la préparation a mérité. En termes d’information, c’est l’information mutuelle ponctuelle entre une ligne et ce qui la précède, et je l’appelle le resserrement (<em>narrowing</em>).</p>

<p>Cela donne un tableau deux par deux. Une ligne que la préparation mérite et qui arrive avec peu de surprise est un atterrissage inévitable. Une ligne que la préparation mérite et qui surprend quand même est une chute. Une ligne que la préparation ne mérite pas et qui ne surprend pas est un cliché. Une ligne qui n’est ni méritée ni surprenante est du bruit. Le resserrement et la chute sont voisins : le même lien à la préparation, une surprise opposée vers l’avant. C’est la théorie de l’humour par incongruité et résolution, écrite en nats.</p>

<p>Trois autres quantités sont tombées du même modèle. L’incongruité, la surprise au-delà de l’entropie, c’est le modèle confiant et qui se trompe. La probabilité du token de rire est la chance que le token qui suit une ligne soit « haha ». Le pivot rétrospectif est le mot de la préparation qui gagne le plus une fois la chute connue, le mot sur lequel la blague tourne.</p>

<h2 id="les-chansons-dabord">Les chansons d’abord</h2>

<p>Le premier corpus était dix chansons écrites dans la conversation qui a produit les définitions, puis une onzième écrite sur les mesures : une chanson d’amour construite sur l’anaphore, une blague dont la surprise est au milieu de la ligne pour que la rime puisse verrouiller le dernier mot, deux rappels du premier couplet, et une dernière ligne si bien préparée qu’elle n’est jamais chantée. Elle a été notée avant que quiconque la lise, et une ligne a été réécrite sur les nombres, d’un resserrement de 1,8 à 3,0, en disant moins. Elles sont devenues l’album <em>Music for Datacenters</em>, sur la page <a href="/fr/art/">Art</a>.</p>

<p>L’outil de notation était un modèle local sur mon propre GPU, d’abord GPT-2 XL, puis Qwen3-8B-Base. Le premier passage a donné tort à la moitié de mes prédictions : le modèle de 2019 ne voyait pas un jeu de mots, si bien que la préparation rendait la chute moins probable, et non plus. Le modèle de 2025 le voyait, et la même ligne ressortait comme une chute avec le bon mot pivot. Deux choses que je n’avais pas prédites sont sorties de la comparaison. L’incongruité est relative à l’auditeur : un renversement qui était confiant et faux pour le petit modèle était pleinement attendu par le grand, ce qui est ce que la théorie dit aussi des publics. Et la rime tire contre « le mot drôle en dernier » : dans un vers rimé, le dernier mot est la case à basse entropie, si bien que la surprise d’une blague rimée vit au milieu de la ligne.</p>

<p>Puis la vérification qui donne son sens au reste. Deux modèles dont les tailles diffèrent d’un facteur dix, entraînés à six ans d’écart, s’accordent à 0,85 de corrélation de rang sur les lignes méritées. La mesure est surtout une propriété du texte, pas du juge.</p>

<h2 id="face-aux-humains">Face aux humains</h2>

<p>Deux jeux de données publics portent des étiquettes humaines d’humour. Sur dix mille textes courts notés par des annotateurs, la probabilité du token de rire détecte les blagues sans entraînement à 0,85 d’AUC, et ne dit rien sur le degré de drôlerie d’une blague une fois qu’elle en est une. Sur des titres de presse rendus drôles en remplaçant un mot, chacune de mes quantités est corrélée à la note humaine dans la direction prédite, et chaque corrélation est petite. L’improbabilité du nouveau mot est une part réelle mais mineure de ce qui rend une substitution drôle ; la note dépend surtout de ce que le mot veut dire.</p>

<h2 id="face-aux-vraies-chansons">Face aux vraies chansons</h2>

<p>Puis toute l’Open Lyrics Database, 3 603 chansons et 148 786 lignes, notées de la même façon, environ neuf heures sur une carte. Les vraies chansons répètent 35,9 % de leurs lignes ; l’album en répète 27,7 %. La vraie chanson médiane se resserre de 3,45 nats par token sur ses lignes nouvelles ; la chanson médiane de l’album se situe au 15e centile. Ce que la métrique récompense dans le corpus, ce sont les courts fragments répétés avec un mot changé, les chœurs entre parenthèses et les lignes tronquées de deux mots qu’un cadre répété a déjà annoncées. Les auteurs qui se resserrent le moins sont les denses, Leonard Cohen parmi eux, et l’album leur tient compagnie. Le resserrement mesure à quel point un texte a la forme d’une chanson, pas sa qualité, et à cette aune l’album est plus proche de l’écrit parlé que de la pop.</p>

<p>Trois choses ont essayé de me tromper, et chacune a eu son commit. La mémorisation : nommer la chanson avant de la noter fait économiser au modèle 0,08 nat par token une fois soustrait ce que n’importe quel préambule en forme de titre rapporte, réel et petit. Mais la sonde est aveugle exactement là où ça compte, parce qu’une chanson célèbre s’identifie par ses propres lignes. Un test de récitation l’a attrapé : dans la chanson au resserrement le plus élevé du corpus, le modèle classait le vrai token premier 92,5 % du temps, contre 46 % pour des témoins appariés, et la moitié des dix premières chansons étaient récitées plutôt que prédites. Le filtre d’anglais supprimait l’extrémité à fort resserrement de chaque corpus, parce que les lignes chantées courtes échouent à un test ligne par ligne quelle que soit leur langue. Et les lignes courtes se resserrent davantage, si bien que chaque placement est calculé face à des lignes de référence de même longueur.</p>

<p>La découverte que je n’avais pas vue venir concernait la référence. « Sans préparation » voulait dire l’a priori du modèle sur le web, qui est plus poli qu’une chanson. Depuis cet a priori, le même modèle fait payer au mot « motherfucker » dix nats de plus que sa rareté ne le prédit, et une seule étiquette de section devant la ligne supprime la charge. En renotant cinq cents titres à partir d’un a priori de paroles, le resserrement médian est tombé de 3,44 à 1,02 sur chaque ligne prise une à une : deux tiers de ce que la préparation semblait mériter était du crédit pour être des paroles tout court. Sous l’a priori du web, le resserrement, c’est le genre plus la préparation, et un nombre devrait dire duquel des deux il parle.</p>

<h2 id="la-mesure-comme-contrainte">La mesure comme contrainte</h2>

<p>Une fois qu’on peut noter une ligne, on peut écrire sous des règles que l’outil vérifie, dans la tradition de l’Oulipo. Une chanson dont chaque couplet est les mêmes seize lignes avec des quantités différentes se resserre plus que 99,7 % des vraies chansons et met sa seule information libre là où la chanson dit qu’elle est, sur les mots de quantité. Une chanson écrite pour atterrir sur la médiane du corpus, la prédiction énoncée avant chacun des quatre passages de notation, a atteint la médiane sur la structure et les répétitions et n’a jamais quitté le dernier décile sur la surprise. La moyenne est difficile à écrire exprès : une écriture soignée est plus propre par token qu’une chanson médiane, et la propreté se note comme de la prévisibilité.</p>

<h2 id="les-preuves">Les preuves</h2>

<p>Les deux mêmes quantités tournent sur des mathématiques. Dans mon <a href="/fr/math/">laboratoire de ternaire équilibré</a>, chaque théorème est vérifié par machine, et les 4 280 preuves en mode tactique dont la confiance repose sur le noyau de Lean ont été notées avec l’énoncé pour préparation et la preuve pour chute. La preuve médiane coûte 0,64 nat par token étant donné son fichier. À l’extrémité inévitable se trouvent les preuves qui sont des copies de la précédente, les disjonctions de cas sur trois valeurs et les longues exclusions d’itinéraires, à 0,000. À l’autre extrémité se trouvent les preuves courtes dont tout le coût est le lemme qu’elles appellent : étant donné l’énoncé, le modèle ne pouvait pas deviner <code class="language-plaintext highlighter-rouge">exact_return_seam</code>, et une fois ce nom sur la page, le reste suit. Où se loge la surprise, sur le lemme appelé plutôt que sur la structure des tactiques, est le seul résultat auquel je fais confiance pour l’instant.</p>

<p>Que ce résidu soit ce qu’un mathématicien appelle l’élégance est une question ouverte, et l’outillage la traite comme telle. Les preuves surprenantes sont triées en gabarits, certificats et le reste, et les vingt plus surprenantes du reste sont sur une feuille de notation où un humain doit les marquer routinières, élégantes ou listées à tort. La feuille n’est pas encore remplie. Ce qui est écrit, c’est la prédiction : si la beauté est quelque chose que ce nombre peut voir, c’est une preuve qui reste surprenante quelle que soit la part du fichier montrée au modèle.</p>

<h2 id="le-cerveau">Le cerveau</h2>

<p>Tout ce qui précède est une propriété d’un modèle. La N400, une réponse cérébrale qui culmine quatre cents millisecondes après un mot, est connue pour être à peu près linéaire en la surprise (<em>surprisal</em>), si bien que la première moitié de l’expérience est une réplication et une vérification que le montage fonctionne. La moitié ouverte est de savoir si le resserrement, ce que la préparation a mérité, correspond à quoi que ce soit de neuronal au-delà de la surprise. Le protocole est écrit, le casque à seize canaux est câblé, le code de présentation et d’analyse tourne de bout en bout sur une carte synthétique, et le premier contrôle positif, le blocage alpha les yeux fermés, a été enregistré le 17 septembre et a échoué. Voilà où ça en est. Quand la réponse viendra, elle ira dans les chansons.</p>

<h2 id="ce-que-ce-nest-pas">Ce que ce n’est pas</h2>

<p>Rien de tout cela n’est une preuve au sujet de la joie au sens qui compte. Le resserrement mesure combien un texte est façonné par ce qui le précède ; c’est une propriété du texte plus que du juge ; et il peut être trompé par la répétition, gonflé par la récitation et confondu avec le genre. L’article qui rassemble les nombres le dit dans son résumé. Le code n’est pas encore public.</p>]]></content><author><name></name></author><category term="AI" /><summary type="html"><![CDATA[Un seul nombre, l'information mutuelle ponctuelle entre une ligne et ce qui la prépare, testé sur des blagues, trois mille chansons, quatre mille preuves Lean et un casque EEG.]]></summary></entry><entry xml:lang="fr"><title type="html">Notes de conférence : genAI et éducation</title><link href="https://www.cochin.fr/fr/ai/2024/01/05/GenAI-et-education.html" rel="alternate" type="text/html" title="Notes de conférence : genAI et éducation" /><published>2024-01-05T15:13:05+01:00</published><updated>2024-01-05T15:13:05+01:00</updated><id>https://www.cochin.fr/fr/ai/2024/01/05/GenAI-et-education</id><content type="html" xml:base="https://www.cochin.fr/fr/ai/2024/01/05/GenAI-et-education.html"><![CDATA[<h2 id="intro">Intro</h2>

<p>On utilise beaucoup les termes apprentissage-machine (Machine Learning), apprentissage-profond (Deep Learning) et l’on a tendance à oublier que l’apprentissage est d’abord un processus biologique naturel qui est utilisé par presque tous les êtres vivants. (vidéo renardeau qui joue)
D’un point de vue biologique l’apprentissage se traduit par le renforcement des connexions synaptiques dans le cerveau. (image synapse)
Lorsqu’on parle d’apprentissage-machine on parle d’un processus mathématique qui est inspiré de ce processus biologique que nous allons maintenant décrire.</p>

<h2 id="réseau-de-neurones-artificiels-artificial-neural-network">Réseau de neurones artificiels (Artificial Neural Network)</h2>

<h3 id="difficulté-de-linformatique-classique">Difficulté de l’informatique classique</h3>

<ul>
  <li>L’informatique classique est basée sur des instructions logiques qui sont exécutées par un processeur. Ces instructions sont exécutées séquentiellement et sont déterministes. Cela signifie que si on exécute deux fois le même programme avec les mêmes données en entrée, on obtiendra toujours le même résultat en sortie.</li>
  <li>Cela fonctionne très bien pour des tâches précises et bien définies comme par exemple additionner deux nombres ou trier une liste de nombres.</li>
  <li>Cependant, le monde est flou, imprécis et incertain et les humains ont évolué pour s’adapter à ce monde. Nous sommes capables de prendre des décisions dans des situations incertaines, nous sommes capables de nous adapter à des situations nouvelles, d’extrapoler des informations manquantes et de prendre des décisions en fonction de notre expérience passée.</li>
</ul>

<h3 id="réseau-de-neurones-artificiels">Réseau de neurones artificiels</h3>

<ul>
  <li>Par bio-mimétisme les chercheurs ont essayé de reproduire cette faculté humaine en créant des réseaux de neurones artificiels copiés sur le cerveau humain.</li>
  <li>Un réseau de neurones artificiels est un ensemble de neurones artificiels connectés entre eux. Chaque neurone artificiel est une fonction mathématique qui prend en entrée un vecteur de nombres et qui renvoie un nombre. (image ANN)</li>
</ul>

<h3 id="perceptron">Perceptron</h3>

<ul>
  <li>Le perceptron est le neurone artificiel le plus simple. Il prend en entrée un vecteur de nombres et renvoie un nombre. (image perceptron)</li>
</ul>

<h3 id="apprentissage-supervisé">Apprentissage supervisé</h3>

<ul>
  <li>On va suivre rapidement le parcours de l’information dans le perceptron. (vidéo 3b1b)</li>
  <li>On va démarrer avec des poids aléatoires et on va faire passer des données en entrée dans le perceptron. On va comparer la sortie du perceptron avec la sortie attendue et on va ajuster les poids pour que la sortie du perceptron se rapproche de la sortie attendue. (vidéo 3b1b)</li>
  <li>On va répéter ce processus des millions de fois avec des données différentes et à la fin on va obtenir un perceptron qui est capable de prédire la sortie attendue à partir de l’entrée. (descente de gradient)</li>
</ul>

<h3 id="interrogation-du-modèle">Interrogation du modèle</h3>

<ul>
  <li>On peut maintenant interroger le modèle en lui donnant une entrée et en lui demandant de prédire la sortie. C’est ce qu’on appelle l’inférence.</li>
</ul>

<h3 id="vocabulaire">Vocabulaire</h3>

<ul>
  <li>LLMs: Large Language Models</li>
  <li>IA: “Intelligence” Artificielle</li>
  <li>Embedding: Vecteur de nombres qui représente un mot dans un espace vectoriel.</li>
  <li>Poids (weight): Force de la connexion entre deux neurones dans le réseau. Cœur du réseau de neurones.</li>
  <li>Pré-Prompt: Texte qui définit le contexte, le ton de la réponse.</li>
  <li>Prompt: Question de l’utilisateur envoyée au modèle pour le guider dans la génération de texte.</li>
</ul>

<h2 id="ia-génératives">IA génératives</h2>

<h3 id="llms-chatgpt-gpt-4-llama-2-etc">LLMs (ChatGPT, GPT-4, Llama 2, etc.)</h3>

<ul>
  <li>Plusieurs innovations ont permis l’émergence de l’IA générative: le modèle mathématique des transformers et la forte augmentation des capacités de calcul parallélisé.</li>
  <li>Le langage est une structure séquentielle où la position des mots a de l’importance. (image texte)</li>
  <li>Les LLMs sont des modèles de langage qui sont capables de générer du texte à partir d’un texte d’entrée. (image LLM)</li>
  <li>Ce sont des algorithmes de prédiction du mot suivant. (image LLM)</li>
</ul>

<h3 id="génération-dimages">Génération d’images</h3>

<ul>
  <li>Les IA génératives ne sont pas limitées au texte. On peut aussi générer des images. (image GAN)</li>
  <li>Démo de Dall-E: <a href="https://openai.com/blog/dall-e/">https://openai.com/blog/dall-e/</a></li>
  <li>Démo: <a href="https://thispersondoesnotexist.com/">https://thispersondoesnotexist.com/</a></li>
</ul>

<h3 id="génération-de-code">Génération de code</h3>

<ul>
  <li>Démo: <a href="https://github.com/features/copilot">https://github.com/features/copilot</a></li>
  <li>Récursion des IA qui se codent elles-mêmes (AutoGPT).</li>
</ul>]]></content><author><name></name></author><category term="AI" /><summary type="html"><![CDATA[Notes de conférence : ce qu'apprendre veut dire pour une machine, du perceptron aux IA génératives, à l'usage des enseignants.]]></summary></entry><entry xml:lang="fr"><title type="html">Du silicium au langage : comment le métal pense ?</title><link href="https://www.cochin.fr/fr/ai/2023/11/24/Comment-le-metal-pense.html" rel="alternate" type="text/html" title="Du silicium au langage : comment le métal pense ?" /><published>2023-11-24T15:13:05+01:00</published><updated>2023-11-24T15:13:05+01:00</updated><id>https://www.cochin.fr/fr/ai/2023/11/24/Comment-le-metal-pense</id><content type="html" xml:base="https://www.cochin.fr/fr/ai/2023/11/24/Comment-le-metal-pense.html"><![CDATA[<ul>
  <li>À 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”.</li>
  <li>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.
    <ul>
      <li>Tout d’abord nous fabriquerons un ordinateur.</li>
      <li>Ensuite nous verrons le fonctionnement d’un réseau de neurones artificiel.</li>
      <li>Enfin nous verrons le fonctionnement d’un LLM.</li>
    </ul>
  </li>
</ul>

<h2 id="i---automate-de-calcul">I - Automate de calcul</h2>

<h3 id="logique-fondamentale">Logique fondamentale</h3>

<p>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.</p>

<ul>
  <li>Aristote - Organon: <a href="https://fr.wikipedia.org/wiki/Aristote#Logique">https://fr.wikipedia.org/wiki/Aristote#Logique</a></li>
  <li>Calcul des propositions: <a href="https://fr.wikipedia.org/wiki/Calcul_des_propositions">https://fr.wikipedia.org/wiki/Calcul_des_propositions</a></li>
  <li>Algèbre de Boole: <a href="https://fr.wikipedia.org/wiki/Alg%C3%A8bre_de_Boole_(logique)">https://fr.wikipedia.org/wiki/Alg%C3%A8bre_de_Boole_(logique)</a></li>
  <li>Porte logique: <a href="https://fr.wikipedia.org/wiki/Porte_logique">https://fr.wikipedia.org/wiki/Porte_logique</a></li>
  <li>Porte universelle (ET-NON): <a href="https://fr.wikipedia.org/wiki/Fonction_NON-ET">https://fr.wikipedia.org/wiki/Fonction_NON-ET</a></li>
</ul>

<h3 id="imaginer-lautomate">Imaginer l’automate</h3>

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

<ul>
  <li>Machine de Turing: <a href="https://fr.wikipedia.org/wiki/Machine_de_Turing">https://fr.wikipedia.org/wiki/Machine_de_Turing</a></li>
  <li>Turing Complete: <a href="https://www.youtube.com/watch?v=-YY73ejihZo">https://www.youtube.com/watch?v=-YY73ejihZo</a></li>
  <li>Nand to Tetris: <a href="https://www.nand2tetris.org/">https://www.nand2tetris.org/</a></li>
  <li>Solutions nandgame: <a href="https://github.com/Elidevin/nandgame.com-solutions/blob/master/Hardware.md">https://github.com/Elidevin/nandgame.com-solutions/blob/master/Hardware.md</a></li>
</ul>

<blockquote>
  <p>NANDGAME: <a href="https://www.nandgame.com/">https://www.nandgame.com/</a></p>
</blockquote>

<h3 id="construire-lautomate">Construire l’automate</h3>

<p>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.</p>

<ul>
  <li>Silicium: <a href="https://fr.wikipedia.org/wiki/Silicium">https://fr.wikipedia.org/wiki/Silicium</a></li>
  <li>Jonction P-N (Pmos, Nmos): <a href="https://fr.wikipedia.org/wiki/Jonction_p-n">https://fr.wikipedia.org/wiki/Jonction_p-n</a></li>
  <li>CMOS: <a href="https://en.wikipedia.org/wiki/CMOS#Example:_NAND_gate_in_physical_layout">https://en.wikipedia.org/wiki/CMOS#Example:_NAND_gate_in_physical_layout</a></li>
  <li>Semi-conducteur: <a href="https://fr.wikipedia.org/wiki/Semi-conducteur">https://fr.wikipedia.org/wiki/Semi-conducteur</a></li>
  <li>Transistor: <a href="https://fr.wikipedia.org/wiki/Transistor">https://fr.wikipedia.org/wiki/Transistor</a></li>
  <li>Circuit intégré: <a href="https://fr.wikipedia.org/wiki/Circuit_int%C3%A9gr%C3%A9">https://fr.wikipedia.org/wiki/Circuit_int%C3%A9gr%C3%A9</a></li>
  <li>Ordinateur 8-bits: <a href="https://eater.net/8bit">https://eater.net/8bit</a></li>
</ul>

<blockquote>
  <p>Minecraft CPU: <a href="https://youtu.be/TxatLwlj0lU?si=aYUfTmiCIc7kXt56&amp;t=34">https://youtu.be/TxatLwlj0lU?si=aYUfTmiCIc7kXt56&amp;t=34</a></p>
</blockquote>

<h3 id="contrôler-lautomate">Contrôler l’automate</h3>

<p>Nous devons maintenant contrôler 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 contrôlons un nouveau type de rapport au langage: l’exécution en plus de la lecture et de l’écriture.</p>

<ul>
  <li>Langage de programmation: <a href="https://fr.wikipedia.org/wiki/Langage_de_programmation">https://fr.wikipedia.org/wiki/Langage_de_programmation</a></li>
  <li>Assembleur: <a href="https://fr.wikipedia.org/wiki/Assembleur">https://fr.wikipedia.org/wiki/Assembleur</a></li>
  <li>Calcul lambda: <a href="https://fr.wikipedia.org/wiki/Lambda-calcul">https://fr.wikipedia.org/wiki/Lambda-calcul</a></li>
  <li>Rust: <a href="https://fr.wikipedia.org/wiki/Rust_(langage)">https://fr.wikipedia.org/wiki/Rust_(langage)</a></li>
  <li>Langage de haut niveau: <a href="https://fr.wikipedia.org/wiki/Langage_de_haut_niveau">https://fr.wikipedia.org/wiki/Langage_de_haut_niveau</a></li>
  <li>Python: <a href="https://fr.wikipedia.org/wiki/Python_(langage)">https://fr.wikipedia.org/wiki/Python_(langage)</a></li>
  <li>NANDGAME (partie logiciel): <a href="https://www.nandgame.com/">https://www.nandgame.com/</a></li>
</ul>

<h3 id="accélérer-lautomate">Accélérer l’automate</h3>

<p>Au bout d’un certain 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 cœurs.</p>

<ul>
  <li>Loi de Moore: <a href="https://fr.wikipedia.org/wiki/Loi_de_Moore">https://fr.wikipedia.org/wiki/Loi_de_Moore</a></li>
  <li>Effet tunnel: <a href="https://fr.wikipedia.org/wiki/Effet_tunnel">https://fr.wikipedia.org/wiki/Effet_tunnel</a></li>
  <li>Calcul parallèle: <a href="https://fr.wikipedia.org/wiki/Parall%C3%A9lisme_(informatique)">https://fr.wikipedia.org/wiki/Parall%C3%A9lisme_(informatique)</a></li>
  <li>GPU: <a href="https://fr.wikipedia.org/wiki/Processeur_graphique">https://fr.wikipedia.org/wiki/Processeur_graphique</a></li>
  <li>Nvidia: <a href="https://fr.wikipedia.org/wiki/Nvidia">https://fr.wikipedia.org/wiki/Nvidia</a></li>
  <li>Langage de programmation GPU CUDA: <a href="https://en.wikipedia.org/wiki/CUDA">https://en.wikipedia.org/wiki/CUDA</a></li>
</ul>

<h2 id="ii---appréhender-un-monde-incertain">II - Appréhender un monde incertain</h2>

<h3 id="réseaux-de-neurones-et-vision-machine-anns">Réseaux de neurones et vision machine (ANNs)</h3>

<p>Notre machine est déterministe, rapide et précise mais elle n’aime pas l’incertitude, l’ambiguïté 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 millions de pixels, et le cerveau humain contient 86 milliards de neurones. Le traitement quasi instantané de l’information visuelle est fascinant.)</p>

<ul>
  <li>ANN: <a href="https://fr.wikipedia.org/wiki/R%C3%A9seau_de_neurones_artificiels">https://fr.wikipedia.org/wiki/R%C3%A9seau_de_neurones_artificiels</a></li>
  <li>Perceptron: <a href="https://fr.wikipedia.org/wiki/Perceptron">https://fr.wikipedia.org/wiki/Perceptron</a></li>
  <li>Algèbre linéaire: <a href="https://fr.wikipedia.org/wiki/Alg%C3%A8bre_lin%C3%A9aire">https://fr.wikipedia.org/wiki/Alg%C3%A8bre_lin%C3%A9aire</a></li>
  <li>Tenseur: <a href="https://fr.wikipedia.org/wiki/Tenseur">https://fr.wikipedia.org/wiki/Tenseur</a></li>
  <li>Framework Machine Learning PyTorch: <a href="https://pytorch.org/">https://pytorch.org/</a></li>
  <li>Visualisations Deep Learning: <a href="https://distill.pub/">https://distill.pub/</a></li>
  <li>Séries vidéos 3B1B sur les ANNs: <a href="https://www.youtube.com/watch?v=aircAruvnKk&amp;list=PLZHQObOWTQDNU6R1_67000Dx_ZCJB-3pi">https://www.youtube.com/watch?v=aircAruvnKk&amp;list=PLZHQObOWTQDNU6R1_67000Dx_ZCJB-3pi</a></li>
  <li>Cours 3B1B: <a href="https://www.3blue1brown.com/lessons/neural-networks">https://www.3blue1brown.com/lessons/neural-networks</a></li>
  <li>Spécialisation Deep Learning Coursera: <a href="https://www.coursera.org/learn/neural-networks-deep-learning/home/welcome">https://www.coursera.org/learn/neural-networks-deep-learning/home/welcome</a></li>
  <li>Backprop: <a href="https://youtu.be/Ilg3gGewQ5U?si=4FssMbXM6CRK5rmQ&amp;t=261">https://youtu.be/Ilg3gGewQ5U?si=4FssMbXM6CRK5rmQ&amp;t=261</a></li>
</ul>

<blockquote>
  <p>Recap perceptron 3B1B: <a href="https://youtu.be/IHZwWFHWa-w?si=LE5qWstbH01bqKZO&amp;t=29">https://youtu.be/IHZwWFHWa-w?si=LE5qWstbH01bqKZO&amp;t=29</a></p>
</blockquote>

<h3 id="large-language-models-llms">Large Language Models (LLMs)</h3>

<p>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é entraînés sur de très grands corpus de données textuelles. Ils sont capables de générer du texte à partir d’un prompt.</p>

<ul>
  <li>Deep Learning: <a href="https://fr.wikipedia.org/wiki/Apprentissage_profond">https://fr.wikipedia.org/wiki/Apprentissage_profond</a></li>
  <li>Transformeur: <a href="https://fr.wikipedia.org/wiki/Transformeur">https://fr.wikipedia.org/wiki/Transformeur</a></li>
  <li>Attention is all you need: <a href="https://arxiv.org/abs/1706.03762">https://arxiv.org/abs/1706.03762</a></li>
  <li>NanoGPT: <a href="https://github.com/karpathy/nanoGPT">https://github.com/karpathy/nanoGPT</a></li>
  <li>LLMs: <a href="https://fr.wikipedia.org/wiki/Grand_mod%C3%A8le_de_langage">https://fr.wikipedia.org/wiki/Grand_mod%C3%A8le_de_langage</a></li>
  <li>Cours LLM: <a href="https://www.coursera.org/learn/generative-ai-with-llms/home/week/1">https://www.coursera.org/learn/generative-ai-with-llms/home/week/1</a></li>
</ul>

<blockquote>
  <p>Viz NanoLLM: <a href="https://bbycroft.net/llm">https://bbycroft.net/llm</a></p>
</blockquote>

<p>Voici un exemple d’utilisation de GPT-4 pour créer un chatbot catholique qui enrichi du « Catéchisme de l’Église catholique » répond aux questions posées par les utilisateurs.</p>

<h3 id="corpus-de-pré-training">Corpus de pré-training</h3>

<p>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.</p>

<ul>
  <li>Common Crawl Primary training corpus in every LLM. 82% of raw tokens used to train GPT-3.</li>
  <li>Common Crawl (98.38 TiB): <a href="https://commoncrawl.org/">https://commoncrawl.org/</a></li>
  <li>The Pile (825 GiB): <a href="https://pile.eleuther.ai/">https://pile.eleuther.ai/</a></li>
  <li>Wikipedia dumps: <a href="https://dumps.wikimedia.org/">https://dumps.wikimedia.org/</a></li>
  <li>Wiki dump preprocessing: <a href="https://towardsdatascience.com/pre-processing-a-wikipedia-dump-for-nlp-model-training-a-write-up-3b9176fdf67">https://towardsdatascience.com/pre-processing-a-wikipedia-dump-for-nlp-model-training-a-write-up-3b9176fdf67</a></li>
  <li>OSCAR: <a href="https://oscar-project.github.io/documentation/versions/oscar-2301/">https://oscar-project.github.io/documentation/versions/oscar-2301/</a></li>
</ul>

<h3 id="corpus-de-domaine">Corpus de domaine</h3>

<ul>
  <li>Corpus d’adaptation à un domaine particulier et son jargon: médical, légal, financier, etc.</li>
</ul>

<h3 id="tokenisation">Tokenisation</h3>

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

<ul>
  <li>Tokenisation: <a href="https://fr.wikipedia.org/wiki/Analyse_lexicale">https://fr.wikipedia.org/wiki/Analyse_lexicale</a></li>
  <li>Byte Pair Encoding: <a href="https://en.wikipedia.org/wiki/Byte_pair_encoding">https://en.wikipedia.org/wiki/Byte_pair_encoding</a></li>
</ul>

<h3 id="choix-du-type-de-llm">Choix du type de LLM</h3>

<p>Des architectures différentes sont adaptées aux tâches à réaliser :</p>

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

<h3 id="fine-tuning">Fine-tuning</h3>

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

<ul>
  <li>Fine-tuning: <a href="https://en.wikipedia.org/wiki/Fine-tuning_(deep_learning)">https://en.wikipedia.org/wiki/Fine-tuning_(deep_learning)</a></li>
  <li>Adaptation au domaine: <a href="https://en.wikipedia.org/wiki/Domain_adaptation">https://en.wikipedia.org/wiki/Domain_adaptation</a></li>
  <li>Catastrophic forgetting: <a href="https://en.wikipedia.org/wiki/Catastrophic_interference">https://en.wikipedia.org/wiki/Catastrophic_interference</a></li>
  <li>Ensemble QR humain: <a href="https://huggingface.co/datasets/knkarthick/dialogsum/viewer/knkarthick--dialogsum">https://huggingface.co/datasets/knkarthick/dialogsum/viewer/knkarthick--dialogsum</a></li>
  <li>PEFT: <a href="https://huggingface.co/docs/peft/index">https://huggingface.co/docs/peft/index</a></li>
  <li>LoRA: <a href="https://huggingface.co/docs/peft/conceptual_guides/lora">https://huggingface.co/docs/peft/conceptual_guides/lora</a></li>
  <li>Prompt-tuning: <a href="https://research.ibm.com/blog/what-is-ai-prompt-tuning">https://research.ibm.com/blog/what-is-ai-prompt-tuning</a></li>
</ul>

<h3 id="benchmark-et-métriques-dévaluation">Benchmark et métriques d’évaluation</h3>

<p>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.</p>

<ul>
  <li>BLEU: <a href="https://en.wikipedia.org/wiki/BLEU">https://en.wikipedia.org/wiki/BLEU</a></li>
  <li>ROUGE: <a href="https://en.wikipedia.org/wiki/ROUGE_(metric)">https://en.wikipedia.org/wiki/ROUGE_(metric)</a></li>
  <li>MMLU: <a href="https://en.wikipedia.org/wiki/MMLU">https://en.wikipedia.org/wiki/MMLU</a></li>
</ul>

<h3 id="renforcement-par-feedback-humain-rlhf">Renforcement par feedback humain (RLHF)</h3>

<p>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 LLM est trop “serviable” il peut être manipulé par un utilisateur pour des activités malveillantes.</p>

<ul>
  <li>PPO: <a href="https://en.wikipedia.org/wiki/Proximal_Policy_Optimization">https://en.wikipedia.org/wiki/Proximal_Policy_Optimization</a></li>
</ul>

<h3 id="déploiement">Déploiement</h3>

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

<h3 id="librairie-dorchestration">Librairie d’orchestration</h3>

<p>Permet au LLM de communiquer avec d’autres composants du système, de faire des requêtes de données, etc.</p>

<ul>
  <li>LangChain: <a href="https://www.langchain.com/">https://www.langchain.com/</a></li>
</ul>

<h3 id="génération-augmentée-de-récupération-rag">Génération Augmentée de Récupération (RAG)</h3>

<p>Permet d’ajouter des sources de données supplémentaires pour enrichir les réponses du modèle à travers des requêtes 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 requête qui peuvent être intégrées dans la réponse du modèle.</p>

<ul>
  <li>RAG: <a href="https://arxiv.org/abs/2104.05544">https://arxiv.org/abs/2104.05544</a></li>
  <li>BDD vectorielle: <a href="https://www.pinecone.io/">https://www.pinecone.io/</a></li>
  <li>PostGreSQL vectoriel: <a href="https://github.com/pgvector/pgvector">https://github.com/pgvector/pgvector</a></li>
  <li>Embedding vectors: <a href="https://en.wikipedia.org/wiki/Word_embedding">https://en.wikipedia.org/wiki/Word_embedding</a></li>
</ul>

<blockquote>
  <p>Biais dans les vecteurs: <a href="https://wikipedia2vec.github.io/demo/">https://wikipedia2vec.github.io/demo/</a></p>
</blockquote>

<h3 id="program-aided-language-pal-model--react">Program aided language (PAL) model &amp; ReACT</h3>

<p>On donne au modèle la capacité de générer du code informatique permettant de réaliser des tâches 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 tâche générale et fait un plan de sous-tâches et d’agents pour y arriver.</p>

<ul>
  <li>AutoLLM: <a href="https://github.com/fcakyon/autollm">https://github.com/fcakyon/autollm</a></li>
  <li>ReAct: <a href="https://arxiv.org/abs/2210.03629">https://arxiv.org/abs/2210.03629</a></li>
  <li>LangChain: <a href="https://www.langchain.com/">https://www.langchain.com/</a></li>
</ul>

<h3 id="prompt-engineering">Prompt Engineering</h3>

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

<ul>
  <li>la définition de la « personnalité » du modèle et de son orientation</li>
  <li>les instructions pour la tâche à réaliser</li>
  <li>les données issues de la génération augmentée de récupération</li>
  <li>la question de l’utilisateur</li>
  <li>
    <p>l’historique de discussion avec l’utilisateur (0-shot, few-shot, etc.)</p>
  </li>
  <li>Pré-prompt: <a href="https://en.wikipedia.org/wiki/Prompt_engineering">https://en.wikipedia.org/wiki/Prompt_engineering</a></li>
  <li>Cours prompt engineering: <a href="https://www.deeplearning.ai/short-courses/chatgpt-prompt-engineering-for-developers/">https://www.deeplearning.ai/short-courses/chatgpt-prompt-engineering-for-developers/</a></li>
</ul>

<h3 id="uiux">UI/UX</h3>

<p>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 comprend également un système de gestion des utilisateurs, un historique des messages, etc.</p>

<ul>
  <li>Interface utilisateur: <a href="https://fr.wikipedia.org/wiki/Interface_utilisateur">https://fr.wikipedia.org/wiki/Interface_utilisateur</a></li>
  <li>UX: <a href="https://fr.wikipedia.org/wiki/Exp%C3%A9rience_utilisateur">https://fr.wikipedia.org/wiki/Exp%C3%A9rience_utilisateur</a></li>
</ul>

<h2 id="iii---cas-pratique">III - Cas pratique</h2>

<p>Démonstration de l’utilisation de GPT-4 pour créer un chatbot catholique qui enrichi du « Catéchisme de l’Église catholique » répond aux questions posées par les utilisateurs.</p>]]></content><author><name></name></author><category term="AI" /><summary type="html"><![CDATA[Notes de conférence : du transistor au LLM en trois étapes, l'automate, le réseau de neurones, le modèle de langage, avec les liens pour tout refaire soi-même.]]></summary></entry><entry xml:lang="fr"><title type="html">LLM et éthique de l’IA</title><link href="https://www.cochin.fr/fr/ai/2023/10/24/LLM-et-ethique-de-l-IA.html" rel="alternate" type="text/html" title="LLM et éthique de l’IA" /><published>2023-10-24T16:13:05+02:00</published><updated>2023-10-24T16:13:05+02:00</updated><id>https://www.cochin.fr/fr/ai/2023/10/24/LLM-et-ethique-de-l-IA</id><content type="html" xml:base="https://www.cochin.fr/fr/ai/2023/10/24/LLM-et-ethique-de-l-IA.html"><![CDATA[<p>Je travaille sur les LLM depuis un certain temps, et avec divers think tanks de haut niveau, pour essayer de comprendre les implications philosophiques, morales et éthiques des LLM.</p>

<p>Souvent, on sent un vrai décalage entre la communauté technique et la communauté éthique. Expliquer le fonctionnement interne des LLM à une personne non technique est vraiment difficile, et j’essaie de trouver des façons de le rendre plus accessible.</p>

<p>J’ai récemment donné une conférence devant un panel de 10 éthiciens de haut niveau, avec des formations en philosophie, en bioéthique et en théologie ; voici quelques points clés de notre discussion.</p>

<h2 id="lia-nest-pas-intelligente">L’IA n’est pas « intelligente »</h2>

<p>Utiliser le mot « intelligence » pour décrire l’IA est une erreur. En anglais, <em>intelligence</em> désigne aussi le renseignement, l’information, et non l’intelligence au sens courant du mot français. C’est une mauvaise traduction qui crée beaucoup de confusion. « Information artificielle » serait donc moins trompeur.</p>

<h2 id="science-fiction">Science-fiction</h2>

<p>Beaucoup de films de science-fiction dépeignent l’IA comme une force surnaturelle engendrée par des gobelins geeks dans une cave obscure. Ce n’est pas le cas. L’IA n’est qu’un tas de mathématiques et de statistiques. C’est commode pour des scénaristes paresseux qui veulent un méchant qui ne fâche personne.</p>

<h2 id="mauvais-journalisme">Mauvais journalisme</h2>

<p>La plupart des journalistes ont une compréhension très superficielle de l’IA et écrivent souvent des articles inexacts. Ils ont tendance à réutiliser le matériel marketing des entreprises qui vendent de l’IA, souvent trompeur, et qui gonfle les possibilités réelles de l’IA. C’est un vrai problème, parce que cela crée beaucoup de peur et d’incompréhension dans la population.</p>

<h2 id="les-llm-ne-font-que-prédire-le-mot-suivant">Les LLM ne font que prédire le mot suivant</h2>

<p>Le texte est une structure séquentielle où la position des mots a un sens, exactement comme en musique. Les LLM sont des modèles séquentiels qui tentent de prédire le mot suivant à partir des mots précédents. C’est un processus déterministe qui sélectionne le prochain token d’une séquence, donc à mille lieues de l’intelligence humaine.</p>

<h2 id="quel-est-le-statut-dune-parole-produite-par-une-machine">Quel est le statut d’une parole produite par une machine ?</h2>

<p>Sur le plan philosophique, la prédiction du prochain token ne peut pas vraiment être mise sur le même plan que la pensée humaine, même si elle est très efficace pour faire semblant.</p>

<h2 id="quelle-est-lampleur-du-biais-culturel-anglophone-dans-les-llm">Quelle est l’ampleur du biais culturel anglophone dans les LLM ?</h2>

<p>L’essentiel des données d’entraînement vient d’Internet, et Internet est surtout en anglais. Les LLM sont donc très bons en anglais, et cela semble pousser dans le texte généré un certain biais culturel anglophone, présenté comme neutre.</p>

<h2 id="un-llm-pourrait-il-servir-à-générer-une-nouvelle-religion-sur-mesure">Un LLM pourrait-il servir à générer une nouvelle religion sur mesure ?</h2>

<p>En politique, on a vu un ciblage individuel avancé à partir des données des réseaux sociaux. Les religions ont une approche de « tapis de bombes » : elles essaient de convaincre le plus de gens possible avec un message universel. Des LLM pourraient servir à générer une religion nouvelle pour chaque individu, à partir de ses propres croyances et de ses propres biais. Par exemple, si vous croyez au karma et souhaitez un paradis pour les chats, le LLM pourrait rapidement vous générer une religion sur mesure qui correspond parfaitement à ce que vous voulez entendre et exploite votre sentiment religieux.</p>]]></content><author><name></name></author><category term="AI" /><summary type="html"><![CDATA[Notes d'une intervention devant un panel d'éthiciens : pourquoi « intelligence » est le mauvais mot, ce que la prédiction du prochain token est et n'est pas, et ce que coûterait une religion sur mesure.]]></summary></entry></feed>