Pour une IA open source

Posté le

Intro

Pourquoi l'IA génératif (un LLM) a besoin d'être open de A à Z et pas que de nom (https://openfatigue.ai) ? Peux être pour apporter quelque chose à l'Humanité ? L'Humanité = ensemble des humains. L'Humanité !== d'une minorité d'humains avec une vision court termiste.

Préambule

Avant de rentrer dans le vif du sujet, je vais partir d'un postulat :

  • Une machine n'a par nature aucune intelligence. L'IA tourne sur une machine donc elle n'en a aucune. Je vais le détaillé plus loin mais si vous êtes convaincu du contraire, passez votre chemin.
  • Je ne vais parler que de LLM et pas des autres algos que le commun des mortelles classe dans le mot valise IA.
  • Un gros LLM ne fonctionne que :
    • Si il y a un Internet libre et décentralisé. (il suffit de voir le traffic délirant des bots d'IA actuels pour s'en convaincre)
    • Si des cathédrales de savoir comme Wikipédia sont à porté de clic, gratuitement.
    • Si on occulte toutes les histoires de droit d'auteur.
    • Si des sommes collossales sont accordés à des data-center dimensionnés pour.
  • Mon exercice est de vulgariser donc de choisir délibérément de faire des raccourcis car il est impossible de tout aborder en profondeur. Il est possible de refuter, surtout si vous avez une connaissance fine du sujet pas mal de points car ils sont imprécis. Merci de faire l'effort intellectuel de ne pas vous formaliser sur les détails mais sur l'axe générale.
  • Je suis humain et faïble : je n'ai pas la prétention de tout comprendre à la perfection. Néanmoins, je pense avoir potassé le sujet et amélioré ma compréhension au fil du temps.
  • L'exercice d'écriture me permet aussi de formaliser mes connaissances. C'est un exhutoire en quelque sorte.

Postulat simple : Il n'y a aucune intelligence dans l'inférence d'un LLM

Je rappel ce que c'est que l'inférence. C'est quand un utilisateur prompt une LLM et que celle-ci réfléchit calcule et lui donne un résultat.

Je vais déjà parler de l'intelligence humaine. L'intelligence humaine, c'est une intelligence biologique. On part du postulat un peu naif que celle humaine est la plus remarquable. (ce qui est foncièrement discutable mais soit) On le sait depuis un moment, elle a des biais cognitifs tenaces. Plusieurs biais (rétrospectif, résultat, survie, confirmation, illusion de corrélation etc.) font qu'on pense avoir le lien entre cause et conséquence.

Et pour l'IA, on y échappe pas : si une réponse semble très intelligente, si on arrive pas à comprendre comment elle a été construite, c'est qu'elle provient forcément d'une entité intelligente. L'IA est donc le nouveau dieu qui sait tout parce que le résultat est tellement brillant qu'il ne peut pas naitre d'un algoritme totalement imbécile qui ne prédit que le mot suivant, n'est-ce pas ?

Maintenant, faisons ensemble l'exercice de pensée inverse. Les machines, aussi complexes soient-elles sont dépourvus de raisonnement.

Un LLM, à la base, c'est quoi ? C'est 2 algos très simples de quelques milliers de lignes de codes : 1 algo d'entrainement pour transformer du texte en une liste de valeurs décimales. (des poids en virgule flottante, si vous préférez) 1 algo d'inférence pour prédire le mot suivant d'un texte n fois. (à chaque opération, il reprend le mot trouvé dans sa sortie et il le rajoute dans son entrée)

Alors, oui, les puristes me diront qu'il y a du fine tuning, du renforcement, du MoE etc. Ce n'est pas faux mais la base c'est ça. Le reste c'est juste des moyens d'améliorer (sans réentrainement très couteux par exemple).

Une fois qu'on a compris ça, on se rend compte que toute la "valeur" ne se trouve pas dans l'algorithme mais dans la donnée structurée. La donnée d'entrainement, on appele ça communément un data set. Le data set d'un très gros modèle d'IA, c'est quoi ? C'est stricto sinsu, toute la donnée textuelle produite par l'Humanité (qui a nécessité beaucoup d'intelligence, en effet) qu'on a pu récolté (piller ?), et qu'on a mis en forme (affinage, tri etc). Bien évidemment, dans toute cette matière, on a beaucoup de données à faible valeur. (la discussion de Paulette avec Bernard sur le temps qu'il fera demain sur le forum tartancoin par ex). On est donc obligé de faire des réglage fin soit en amont (fine tuning) de l'entrainement soit en aval (renforcement). C'est fait par qui ? Des humains qualifiés et surtout pas des LLM ! Donc l'intelligence produite pour cet exercice est encore humaine.

Qu'est-ce que l'entrainement va produire ? Un modèle composé de paramètres et d'un vocabulaire.

Le vocabulaire, c'est l'ensemble des tokens. Un token, c'est un morceau de texte atomique : mot courant entier, fragment de mot, élément de ponctuation etc. Donc le vocabulaire c'est la liste exhaustive et sans doublons des tokens possibles. Si on supprimes volontairement le token "con" du vocabulaire du modèle, alors on n'auras plus aucun "con" dans le texte inféré. On n'aura plus non plus les mots "construit", "constitution" etc. C'est con ?

Puis, on a les paramètres. Les paramètres c'est une liste de corrélations entre des tokens avec un poids. Imaginons la phrase "c'est con." composé de plusieurs tokens. C'est un association assez forte qu'on retrouvera souvent donc avec un poids élevés. La phrase "Macron est loin d'être con." existera sans doute dans le data set mais sera beaucoup moins présent donc poid faible.

Pour les puristes, je sais qu'il y a des vecteurs, leur dimension, des potentiels biais etc. mais est-ce que c'est vraiment utile, ici, de le mentionner ?

Donc l'algo d'entrainement va donc parcourir une quantité incroyable de texte n fois et en déduire des paramètres. Plus il aura de paramètres et plus il sera gros. On peut donc facilement en déduire que plus on aura de paramètres à la sortie pour le même data set et plus on aura de finesse dans l'inférence. Le revers de la médaille : plus c'est gros et plus c'est gourmand à produire pendant la phase d'entrainement et pendant la phase d'inférence. Ce ratio ne sera pas linéaire mais plutôt quadratique. C'est bien pour ça qu'il y a des grandes batailles entre les petits modèles et les plus gros. 2 modèles (toujours avec le même data set) dont leur taille ont un rapport de 2, auront un impact de consommation avec un rapport de 4... mais leur différence de résultats seront beaucoup plus diffus. On pourra pas vraiment dire : c'est 2 fois meilleur. Sur certaines questions, ça aura exactement le même résultat. Sur d'autres, le modèle le plus petit halucinera (réponse dénué de sens) alors que le modèle plus gros donnera une réponse acceptable. La seule chose qu'on peut garantir c'est que, en moyenne, ça sera meilleur. Mais donner un ratio sera quasiment impossible.

Qu'est-ce qu'on peut en déduire ?

  1. Un modèle est tout aussi statique et prédictible qu'un logiciel composé d'une suite de if/else. La différence : le champ des possibles est tellement étendues qu'il est impossible pour l'esprit humain de l'anticiper dans une échelle de temps raisonnable.
  2. On est incapable de faire de la rétro-ingénierie sur un modèle. On ne sera pas en capacité de connaitre le data set à partir du modèle (comme on le ferait potentiellement avec un binaire pour connaitre son code source). Trop de choses ont été perdus.
  3. On peut néanmoins retoucher le modèle en ajustant des paramètres. C'est ce qu'on appelle le renforcement. Ca marche très bien et ça évite de retoucher au data set et refaire une séance d'entrainement très couteux. (des mois)
  4. La seule intelligence dans un LLM est humaine. L'intelligence humaine se retrouve dans la construction du modèle et dans le prompt (la personne qui l'interroge). On en déduis donc que si la personne qui prompt est intelligente, elle saura formaliser sa pensée de tel manière à obtenir plus facilement des informations interessantes. De même, si elle a une compréhension de la réponse, elle saura en tirer mieux avantage.

Mais si c'est aussi simple, pourquoi ça fait des choses aussi impressionnantes ?

Repartons d'un postulat simple : on utilise des calculatrices depuis longtemps. Personne n'attribut de l'intelligence à une calculatrice. Pourtant, calculer une racine carré de tête par un humain nécessite de grandes capacités intellectuelles. A contrario, peu de personnes savent comment fonctionnent une calculatrice. Nous avons néanmoins admis collectivement que c'est un objet inerte qui est capable d'inférer des réponses à des problèmes mathématiques. Ce qui fait que la calculatrice apporte un gain c'est bien la raison pour laquel elle est employé et l'usage de son résultat, non ?

Autre postulat : beaucoup de découvertes ne sont pas que le fruit de l'intelligence mais de sa corrélation avec un facteur chance. La tarte tatin n'aurait pas été inventé sans oubli. Newton n'aurait peut-être pas découvert certaines lois si il n'avait pas été percuté par une pomme etc. Il est communément admis que tout le savoir humain ne peut plus reposer dans un esprit. Donc 2 cerveaux brillants ont potentiellement trouvés chacun 2 pièces d'un puzzle (problème mathématique par exemple) plus grand mais pour pouvoir le réaliser, ils ont besoin de confronter leurs savoirs respectifs.

Mais, je ne comprend pas : si je pose des questions à mon IA, elle va me faire une réponse personnalisé ? C'est qu'elle s'adapte et est donc intelligente, non ? Eh non, toujours.

  1. D'une part, elle s'appuie sur une notion qu'on appelle le "contexte window". En réalité, la réponse qu'elle va vous apportez dépendra de vos questions précédentes. (dans une limite physique propre à l'IA employé) En fait, à chaque question de votre contexte, elle ne va pas prendre votre dernière question mais l'ensemble du texte (question/réponse) comme entrée pour pouvoir inférer la nouvelle réponse.

  2. Elle va tricher. Pour certaines questions, elle va interroger le web en sous-marins. Les résultats qu'elle aura trouvé seront directement injecté dans son prompt interne (non visible par l'utilisateur). Et donc, elle va faire des rapprochements entre des données dans son modèle (qui a été entrainé à telle date) et d'autres récentes qu'elle a collecté et injecté dans son entrée. C'est donc encore un moyen de collecter de l'intelligence (des données sur des sites sérieux écrit par des neuronnes biologiques) hors de son périmètre en faisant croire que ça vient d'elle.

  3. Elle va utiliser des agents.

Un modèle fermé

Actuellement, les

On peut donc

Conclusion

PS : ce texte a été écrit entièrement à la main, sans LLM. Même pas pour la relecture. Les fôtes seront en quelque sorte une valeur de preuve (même si, il est factuellement impossible de prouver qu'un texte a été écrit par une IA, on peut raisonnablement en déduire que la probabilité est faible).