Ces derniers temps, on a beaucoup parlé d’intelligence artificielle sur LinuxFr.org. D’IA propriétaires, et d’IA libres. Mais peut-on vraiment faire une IA libre ? La notion n’est pas sans poser quelques difficultés. Une (pas si) courte discussion du problème.
Sommaire
- On appellera IA un réseau de neurones artificiels
- Pour comprendre le réseau de neurones, il est nécessaire de disposer de bases statistiques
- Le réseau de neurones
- Le but du logiciel libre est de rendre le pouvoir à l’utilisateur
-
Le réseau de neurones est difficilement compatible avec le libre
- Personne ne sait vraiment ce que fait un réseau de neurones
- Disposer de la description complète d’un réseau de neurones ne permet pas de l’améliorer
- La définition du code source d’un réseau de neurones est ambiguë
- Cette ambiguïté fait courir un risque juridique sous certaines licences libres
- La définition d’une IA open source ressemble furieusement à un constat d’échec
- Conclusion : qu’attendre d’une IA libre ?
On appellera IA un réseau de neurones artificiels
Commençons par définir notre objet d’étude : qu’est-ce qu’une IA ? Par « intelligence artificielle », on pourrait entendre tout dispositif capable de faire réaliser par un ordinateur une opération réputée requérir une tâche cognitive. Dans cette acception, un système expert qui prend des décisions médicales en implémentant les recommandations d’une société savante est une IA. Le pilote automatique d’un avion de ligne est une IA.
Cependant, ce n’est pas la définition la plus couramment employée ces derniers temps. Une IA a battu Lee Sedol au go, mais ça fait des années que des ordinateurs battent les humains aux échecs et personne ne prétend que c’est une IA. Des IA sont employées pour reconnaître des images alors que reconnaître un chien nous semble absolument élémentaire, mais l’algorithme de Youtube qui te suggère des vidéos pouvant te plaire parmi les milliards hébergées fait preuve d’une certaine intelligence et personne ne l’appelle IA. Il semble donc que le terme « IA » s’applique donc à une technique pour effectuer une tâche plus qu’à la tâche en elle-même, ou plutôt à un ensemble de techniques partageant un point commun : le réseau de neurones artificiels.
Dans la suite de cette dépêche, j’utiliserai donc indifféremment les termes d’IA et de réseau de neurones1.
Pour comprendre le réseau de neurones, il est nécessaire de disposer de bases statistiques
Les statistiques (ou la statistique, on peut dire les deux, comme en Alexandrie), c’est la branche des mathématiques qui s’intéresse aux moyens, à partir de données observées et fondamentalement probabilistes, d’en tirer des conclusions généralisables (et idéalement, de prédire l’avenir à partir du passé).
La data science, c’est la branche de l’informatique qui s’intéresse aux moyens, à partir de données emmagasinées sur lesquelles on ne fait pas d’hypothèse de mode de génération, d’en tirer des conclusions généralisables (et idéalement, de prédire les données futures).
Ça vous semble similaire ? Ça l’est. Les deux champs vont avoir des divergences de vocabulaire, de langages (les stateux préfèreront R, les data scientists Python), de formation (les stateux sont plutôt des universitaires, les data scientists plutôt des informaticiens au niveau licence, mais ils ont les mêmes masters et doctorats), mais fondamentalement, et surtout mathématiquement, c’est la même chose. Les connaissances en inférence statistique (notamment bayésienne, pour ceux à qui ça parle) se généralisent très bien à la data science.
Pour faire court, un statisticien est un data scientist qui se la pète, alors qu’un data scientist est un informaticien qui, n’étant pas assez bon pour survivre à la rude concurrence universitaire, a multiplié son salaire par 10 ou 20 en allant vendre ses compétences statistiques à Facebook.
Les statistiques reposent sur la modélisation
En statistique, la manière la plus courante de répondre à une question est de construire un modèle. Prenons une question simple : je dispose d’un jeu de données où j’ai enregistré, pour 1000 personnes, leur IMC et leur taux de cholestérol. Je souhaite savoir s’il y a un lien entre les deux. On souhaiterait, dans ce cas simple, rechercher une relation monotone, sans faire d’hypothèse sur le type de relation.
Un exemple : la régression linéaire
Une manière de répondre à ma question est d’écrire et de trouver les meilleurs A et B pour que la droite « colle » le mieux possible au nuage de points. On démontre que la meilleure droite est celle qui minimise un certain critère, la somme des carrés des erreurs. Une fois qu’on a la meilleure droite possible, on peut faire plein de choses avec :
- On peut rétro-prédire le taux de cholestérol des personnes déjà observées et voir de combien la prédiction s’écarte du réel, ce qui fournit une erreur moyenne de prédiction ;
- On peut faire de même en prédisant juste le taux de cholestérol moyen pour tous les individus et comparer les erreurs moyennes de prédiction, ce qui permet de voir de combien le modèle améliore la prédiction (et donc de quantifier la quantité d’info apportée par la donnée IMC sur la variable cholestérol) ;
- On peut étudier le signe de A : si A est négatif, prendre du poids fait baisser le cholestérol : si A est positif, prendre du poids augmente le cholestérol : si A est nul, le poids n’apporte pas d’info sur le cholestérol.
- Par contre, on ne peut rien dire de la causalité. Tout ce qu’on a observé, ce sont des personnes qui, au même moment, avaient un IMC et un taux de cholestérol donnés. Impossible de dire s’ils ont ce cholestérol parce qu’ils ont cet IMC, s’ils ont cet IMC parce qu’ils ont ce cholestérol, ou s’ils ont ce cholestérol et cet IMC parce qu’ils ont une troisième exposition.
- On peut enfin faire effectuer de la prédiction à notre modèle : en lui passant une personne dont on ne connaît que l’IMC, on peut estimer son taux de cholestérol et assortir cette prédiction d’un niveau de certitude (ça demande un peu plus de maths, mais c’est l’idée).
On peut vouloir ajouter une troisième variable, mettons le tabagisme. On écrira alors :
Avec la variable tabac codée à 0 (non fumeur) ou 1 (fumeur). Noter que notre modèle est alors passé en dimension 3 : on ne cherche plus à faire passer la meilleure droite par rapport au nuage de points en 2D, mais à faire passer le meilleur plan par rapport au nuage de points en 3D. Noter aussi qu’on peut facilement inclure des variables qualitatives : il suffit de les coder 0 ou 1. On peut d’ailleurs inclure des variables à n modalités : il suffit de les recoder en n-1 sous-variables en 0-1 (la modalité de référence étant celle pour laquelle toutes les sous-variables sont à 0).
Les sont appelés des paramètres : c’est en les faisant varier qu’on ajuste le modèle aux données.
On peut ainsi ajouter un nombre quelconque de variables… Ou peut-être pas. En effet, on va finir par atteindre un seuil où le meilleur hyperplan est tout simplement celui qui passe par tous les points ! Si j’ai 50 individus et 50 paramètres, il est facile de choisir un plan qui passe par tous les individus. C’est ce qu’on appelle le surapprentissage : le modèle a tout simplement appris le jeu de données par cœur ! Le surapprentissage est un écueil des modèles trop complexes et un réseau de neurones est tout à fait capable de surapprendre.
Le réseau de neurones
Le neurone naturel
Les neurones sont les cellules du système nerveux. Elles sont spécialisées dans la transmission d’information.
Comme tu peux le voir sur cette image issue de Wikimedia (source), un neurone comprend un nombre quelconque de dendrites, un corps cellulaire, et un axone. Point crucial : l’axone est unique. Il peut lui-même transmettre de l’information à différents neurones en aval, mais il transmet la même information. Or l’information, dans un neurone, peut entrer par les dendrites et par le corps cellulaire, mais elle ne peut ressortir que par l’axone (on peut faire abstraction de la gaine de myéline et des nœuds de Ranvier, qui ont un rôle central dans la vitesse de conduction de l’information mais qui ne changent rien aux calculs effectués). Autrement dit, un neurone transmet la même information à tous les neurones d’aval, et si ceux-ci en font un usage différent, c’est uniquement lié à leurs propres calculs en interne.
Le neurone formel
On peut modéliser un neurone, par analogie avec le neurone naturel. Notre neurone formel pourra donc prendre un nombre quelconque d’entrées, mais comme un neurone naturel, il ne produira qu’une seule sortie. Notre neurone est donc une fonction de ses entrées :
En pratique (mais ça n’a rien d’obligatoire), on prend souvent une fonction d’une combinaison linéaire des entrées :
Avec une contrainte : la fonction (qu’on appelle fonction d’activation) doit être monotone (idéalement strictement monotone), dérivable presque partout (c’est nécessaire à l’optimisation du réseau, qu’on verra plus tard), définie sur un intervalle suffisamment large pour qu’on soit toujours dedans, et non linéaire (sinon mettre les neurones en réseau n’a aucun intérêt, autant faire directement une unique régression linéaire).
En pratique, on prend donc quelques fonctions classiques :
- La fonction binaire :
si
,
sinon
- La fonction logistique, une amélioration de la fonction binaire :
. Avantage : elle est strictement monotone, dérivable partout, et elle prend quand même ses valeurs entre 0 et 1.
- La fonction Rectified Linear Unit (ReLU, qu’on peut prononcer « relou ») :
si
,
sinon. Avantage : elle est très facile (donc rapide) à calculer et à dériver. On peut la rendre strictement monotone en la modifiant à la marge :
si
,
sinon, avec
.
La mise en réseau
Tout l’intérêt du neurone formel réside dans sa mise en réseau. Un unique neurone ne fait pas mieux qu’une régression linéaire. On construit donc un réseau de neurones. Pour ce faire, on va donc générer plusieurs neurones, chacun prenant en entrée la sortie de plusieurs neurones et produisant une sortie unique, qui sera à son tour utilisée en entrée par d’autres neurones. On ajoute un ensemble de neurones qu’on pourrait qualifier de « sensitifs », au sens où ils prennent en entrée non pas la sortie d’un neurone antérieur, mais directement l’input de l’utilisateur, ou plutôt une partie de l’input : un pixel, un mot… Enfin, une sortie est ajoutée : elle produit le résultat final.
Étant donné que les neurones sont virtuels et n’ont pas d’emplacement géographique, il est assez logique de les représenter en couches : la couche 0 est constituée des neurones sensitifs, la couche 1 prend en entrée les résultats de la couche 0, et ainsi de suite. Classiquement, tous les neurones de la couche n+1 prennent en entrée les sorties de tous les neurones de la couche n.
Se pose alors la question : combien de neurones par couche, et combien de couches au total ?
On peut considérer deux types de topologies : soit il y a plus de neurones par couche que de couches : le réseau est plus large que long, on parlera de réseau large. Soit il y a plus de couches que de neurones par couche, auquel cas le réseau est plus long que large, mais on ne va pas parler de réseau long parce que ça pourrait se comprendre « réseau lent ». On parlera de réseau profond. C’est de là que viennent les Deep et les Large qu’on voit un peu partout dans le marketing des IA. Un Large Language Model, c’est un modèle, au sens statistique, de langage large, autrement dit un réseau de neurones avec plus de neurones par couche que de couches, entraîné à traiter du langage naturel. On constate empiriquement que certaines topologies de réseau sont plus efficaces pour certaines tâches. Par exemple, à nombre de neurones constant, un modèle large fera mieux pour du langage. À l’inverse, un modèle profond fera mieux pour de la reconnaissance d’images.
Le réseau de neurones est Turing-complet
Un résultat théorique important est que les réseaux de neurones sont Turing-complets. C’est-à-dire que, pour tout programme que l’on peut coder et qui sorte une réponse algorithmique, il existe un réseau de neurones qui donne le même résultat. La réciproque est vraie aussi : ce qui est faisable avec un réseau de neurones est faisable en C ou dans un autre langage, au pire en recodant le réseau dans ce langage.
Le réseau de neurones présente un effet boîte noire important
Prenons maintenant un élément d’information et essayons de suivre son trajet dans le modèle jusqu’à la sortie. Dans une régression linéaire, c’est assez facile : le poids de l’IMC va peser pour dans le résultat final. Dans une forêt aléatoire, on peut toujours isoler les arbres où apparaît une donnée et essayer de regarder combien elle pèse. C’est fastidieux mais ça reste faisable. Dans un réseau de neurones, c’est impossible. Chaque neurone de la couche 1 va passer un résultat agrégé à la couche 2, où chaque donnée de la couche 0 ne compte plus que comme partie d’un tout. De même, chaque neurone de la couche 2 va agréger tous les résultats de la couche 1. Il devient impossible d’individualiser l’effet d’une donnée ou même celui d’un neurone.
Ainsi, même si je connais l’intégralité du contenu du modèle, il m’est impossible de donner du sens à une partie du modèle, prise isolément. Le modèle se comporte comme un bloc monolithique, et la seule manière d’étudier un nouvel exemple est de lui appliquer tout le modèle et de voir ce qui sort. C’est ce qu’on nomme l’effet boîte noire.
Attention : l’effet boîte noire n’est pas lié au nombre de paramètres du modèle. Si je fais de la génétique, et que j’étudie 2000 mutations génétiques individuelles (des SNP, pour single nucleotide polymorphism), je peux assez facilement ajuster un modèle de régression logistique (qui est une variante de la régression linéaire où on fait prédire non pas une variable quantitative, mais une probabilité) à 2000 paramètres (un pour chaque SNP). Chaque paramètre sera parfaitement compréhensible et il n’y aura pas d’effet boîte noire.
Il n’est pas non plus lié à ta méconnaissance des mathématiques, cher lectorat. Des statisticiens chevronnés se cassent les dents sur l’effet boîte noire. Il est intégralement lié à la structure du modèle. Certains types de modèles en ont, d’autres n’en ont pas. Les réseaux de neurones en ont.
Cet effet a une conséquence perturbante : même si on sait ce que fait un réseau de neurones, il est impossible de savoir comment il le fait ! On pourrait argumenter que ce n’est pas forcément différent de ce que nous faisons : si on montre à un enfant de 3 ans une photo de chien, il saura dire que c’est un chien, mais il ne saura pas dire pourquoi c’est un chien. Cependant, on demande rarement à un programme d’être réflexif, mais on demande toujours à son auteur de savoir comment il tourne. C’est un peu la base de la programmation.
Le réseau de neurones est un modèle statistique
Reprenons : on a un paradigme (le réseau de neurones) capable d’effectuer n’importe quelle tâche pour laquelle il existe une solution algorithmique, à condition de le programmer correctement… Mais on ne sait pas le programmer ! Heureusement, il existe un contournement : on ne va pas le programmer, on va l’ajuster, comme un modèle statistique. Ou l’entraîner, si on préfère le terme de « machine learning ».
Tu t’en souviens, cher lecteur, un réseau de neurones est un ensemble de fonctions dont chacune prend en entrée différentes données avec des coefficients (les fameux ). On va commencer par initialiser l’apprentissage en donnant des valeurs aléatoires à ces coefficients. Ensuite, on va soumettre à notre réseau de neurones des tas et des tas de données correctes, et qu’on va comparer ce qu’il prédit à ce qu’on attend. La différence s’appelle l’erreur. Et à chaque itération, on va identifier les neurones les plus générateurs d’erreur et les pénaliser (réduire leur poids, ou plutôt réduire leur poids dans les neurones où c’est nécessaire), tout en favorisant les meilleurs neurones. Les détails de la technique (qui s’appelle la rétropropagation de l’erreur) dépassent largement le cadre de cette courte introduction, mais l’essentiel est qu’à la fin, on obtient un réseau capable de donner des réponses proches de ce qui existait dans l’ensemble des données correctes qu’on lui a passé et de généraliser quand la demande est différente d’une donnée de l’ensemble d’apprentissage. Avantage : en pratique, un réseau de neurones est capable de prendre en entrée n’importe quel type de structure de données : image, texte, son… Tant que les neurones d’entrée sont adaptés et qu’il existe un ensemble d’apprentissage suffisamment grand, c’est bon.
Tous les modèles sont faux, certains sont utiles, et c’est vrai aussi pour le réseau de neurones
Bien sûr, il y a des limites. La première est la complexité algorithmique. Un réseau de neurones nécessite de réaliser un nombre astronomique d’opérations simples : pour chaque couche, il faut, pour chaque neurone, calculer la somme des produits des coefficients avec toutes les sorties de la couche antérieure, soit multiplications, où n est le nombre de neurones par couche et c le nombre de couches. Par exemple, pour un petit réseau de 10 couches de 20 neurones, plus une couche d’entrée, on réaliserait à chaque itération
multiplications en virgule flottante, et encore, c’est ici un tout petit réseau : un réseau comme ChatGPT a des neurones qui se comptent par millions, voire dizaines de millions !
Une autre limite est la précision des réponses. Le réseau de neurones étant un modèle statistique, il n’est capable que d’interpoler, c’est-à-dire trouver une réponse à partir de cas similaires. Cette interpolation est rarement aussi précise que celle que donnerait une réponse formelle si elle existait : si Newton avait eu accès à des réseaux de neurones, nous aurions une prédiction du mouvement des planètes qui ne baserait sur aucune théorie, qui serait à peu près exacte mais insuffisamment précise pour envoyer des sondes sur Mars. Quant à s’interroger sur la précession du périhélie de Mercure, on oublie.
De manière générale, on peut s’interroger sur ce qui amène un réseau de neurones à se planter. On peut diviser les erreurs en plusieurs catégories :
- La question posée n’a aucun rapport avec les données passées en entrée. Par exemple : « Sachant que la dernière personne que j’ai croisée dans la rue avait 42 ans, indique-moi son genre ». Le modèle n’a pas assez d’information pour répondre.
- La question posée n’a aucun rapport avec l’ensemble d’apprentissage. Par exemple, demander à un modèle entraîné à reconnaître des photos de chien de reconnaître une voiture. En général, ce problème est résolu en contraignant le format des questions ; dans cet exemple, il suffirait de ne pas permettre à l’utilisateur de poser une question, juste de poster une photo et de recevoir une réponse. D’ailleurs, on ne voit pas très bien pourquoi entraîner un tel modèle à traiter du langage.
- L’ensemble d’apprentissage est trop restreint/biaisé. L’exemple typique est le modèle qui prétendait reconnaître les délinquants à une simple photo et identifiait en fait tous les noirs : ben oui, ils étaient majoritaires dans les délinquants de l’ensemble d’apprentissage. Noter qu’il existe des problèmes où l’ensemble d’apprentissage sera toujours trop restreint pour un certain niveau de précision exigé. Si on demande à un réseau de dire si un point donné est à l’intérieur ou à l’extérieur d’un flocon de Koch, il va falloir lui passer une infinité de données d’apprentissage pour qu’il apprenne les cas limites juste par interpolation (alors qu’avec un modèle formel, ça serait assez facile).
- Le modèle est parasité par une donnée annexe : c’est une problématique assez spécifique du réseau de neurones. L’exemple le plus classique est celui des images de mains : après tout, le voisin le plus probable d’un doigt, c’est un autre doigt. L’amusant, c’est que ce problème serait résolu assez facilement en demandant au modèle de compter 4 doigts et un pouce. Mais comme on ne peut pas programmer directement un réseau de neurones…
- Enfin, si les motifs précédents ont été écartés, je dois me demander si mon modèle n’est pas inadapté : soit qu’il n’a pas assez de neurones, soit que la topologie n’est pas bonne. Plus de neurones permettent de traiter des données plus complexes et leur disposition permet d’augmenter leur efficacité.
En définitive, on peut voir le réseau de neurones comme un outil qui résout approximativement un problème mal posé. S’il existe une solution formelle, et qu’on sait la coder en un temps acceptable, il faut le faire. Sinon, le réseau de neurones fera un taf acceptable.
Le but du logiciel libre est de rendre le pouvoir à l’utilisateur
On a beaucoup glosé, et on continuera de le faire longtemps, sur la philosophie du Libre. Free Software Foundation d’un côté, Open Source Initiative de l’autre, les sujets de discorde ne manquent pas. Mais il faut au moins créditer l’OSI sur un point : avoir clarifié le fait que le Libre est avant tout un mouvement politique, au sens noble du terme : il vise à peser sur la vie de la cité, alors que l’Open Source vise avant tout à disposer de logiciels de qualité.
La première des libertés est celle de savoir ce que je fais
Ça paraît évident dans la vie de tous les jours : je sais ce que je fais. Si je décide de prendre une pelle et de planter un arbre dans mon jardin, je sais que je suis en train de prendre une pelle et de planter un arbre dans mon jardin. Si je décide de prendre un couteau et de le planter dans le thorax de mon voisin, je sais ce que je fais. C’est une liberté fondamentale, au sens où elle fonde toutes les autres. Si je ne sais pas ce que je fais, je ne peux signer un contrat, par exemple (c’est d’ailleurs le principe qui sous-tend le régime de la tutelle en droit). D’ailleurs, comme toute liberté, elle fonde une responsabilité. Si je ne savais pas ce que je faisais (et que je peux le prouver), je peux plaider l’abolition du discernement et échapper à ma responsabilité pénale, quelle que soit l’infraction commise, même les plus graves2
Dans la vie de tous les jours, donc, il est évident que je sais ce que je fais. Mais avec un ordinateur, c’est beaucoup moins évident. Quand j’exécute Windows, je ne sais pas ce que je fais. Pas seulement parce que je ne connais pas la séquence de boot, mais de façon beaucoup plus fondamentale : parce que n’ayant pas accès au code source, je ne sais pas ce que fait le programme que j’exécute. Ce qui pose un problème majeur de confiance dans le logiciel exécuté :
- Confiance dans le fait que le programme fait bien ce que son programmeur a voulu qu’il fasse (absence de bugs)
- Confiance dans le fait que le programmeur avait bien mon intérêt en tête et pas seulement le sien (sincérité du programmeur, fréquemment prise en défaut dans le logiciel non libre)
Dans le système des 4 libertés du logiciel libre, cette liberté est la liberté 1. Elle passe après la liberté 0 (liberté d’exécuter le programme) et avant la liberté 2 (liberté de redistribuer le programme). On pourrait légitimement discuter de sa priorité par rapport à la liberté 0 (est-il raisonnable d’exécuter un programme dont on ne sait pas ce qu’il fait ?) mais ça dépasserait l’objet de cette dépêche.
Si je sais ce que je fais, je dois pouvoir modifier ce que je fais
Conséquence logique de la liberté précédente : si je n’aime pas ce que fait un programme, je dois pouvoir l’améliorer. Si je ne sais pas le faire moi-même, je dois pouvoir payer quelqu’un pour l’améliorer. Là encore, ça suppose l’accès au code source, ne serait-ce que pour savoir ce que fait le programme. Il s’agit de la liberté 3 du logiciel libre.
Le réseau de neurones est difficilement compatible avec le libre
Personne ne sait vraiment ce que fait un réseau de neurones
On l’a vu, les réseaux de neurones présentent un effet boîte noire important. Déjà, la plupart des IA commerciales ne sont accessibles qu’au travers d’une interface ou une API. Elles n’exposent que rarement les neurones. Mais même pour une personne disposant de tous les neurones, autrement dit de la description complète du réseau, l’effet boîte noire est tel que le fonctionnement du réseau de neurones est inintelligible. D’ailleurs, s’il était intelligible, il serait très vite simplifié !
En effet, on peut recoder tout réseau de neurones dans un langage plus rapide, dès lors qu’on comprend ce qu’il fait (puisqu’il est Turing-complet). Vu la consommation astronomique d’énergie des réseaux de neurones, s’il existait un moyen de comprendre ce que fait un réseau de neurones et de le traduire dans un autre langage, on le ferait très vite. Ce qui fournirait d’ailleurs des réponses à des questions théoriques ouvertes comme : qu’est-ce que comprendre une phrase ? Comment reconnaît-on un chien, un visage, un avion ?
Disposer de la description complète d’un réseau de neurones ne permet pas de l’améliorer
On l’a vu : si je dispose de la totalité des neurones, je dispose de la totalité de la description du réseau de neurones. Mais comme je suis incapable de savoir ce qu’il fait, je ne suis pas plus avancé pour l’améliorer, qu’il s’agisse de retirer un défaut ou d’ajouter une fonctionnalité. Noter d’ailleurs que ceci n’est pas forcément impactant de la même manière pour tous les aspects du réseau de neurones : si je n’ai aucun moyen d’être sûr de l’absence de bugs (c’est même le contraire ! Il y a forcément des bugs, c’est juste que je ne les ai pas trouvés ou qu’ils ne sont pas corrigeables), j’ai en revanche peu d’inquiétude à avoir concernant la sincérité du programmeur : comme lui non plus ne maîtrise pas sa bestiole, pas de risque qu’il soit insincère3.
La définition du code source d’un réseau de neurones est ambiguë
Posons-nous un instant la question : qu’est-ce que le code source d’un réseau de neurones ? Est-ce la liste des neurones ? Comme on l’a vu, ils ne permettent ni de comprendre ce que fait le réseau, ni de le modifier. Ce sont donc de mauvais candidats. La GPL fournit une définition : le code source est la forme de l’œuvre privilégiée pour effectuer des modifications. Dans cette acception, le code source d’un réseau de neurones serait l’algorithme d’entraînement, le réseau de neurones de départ et le corpus sur lequel le réseau a été entraîné.
Cette ambiguïté fait courir un risque juridique sous certaines licences libres
Tu devines alors, cher lecteur, là où je veux en venir… Si le corpus comprend des œuvres non libres, tu n’as tout simplement pas le droit de le diffuser sous une licence libre ! Et si tu t’es limité à des œuvres libres pour entraîner ton modèle, tu risques fort d’avoir un ensemble d’apprentissage trop restreint, donc un réseau de neurones sans intérêt.
Alors il y a quatre moyens de tricher.
Le premier, c’est de t’asseoir sur la GPL et de considérer qu’en distribuant les neurones, tu as fait le taf. La ficelle est grossière. Je viens de passer une dépêche à te démontrer que c’est faux, tu pourrais au moins me montrer un peu plus de respect.
Le deuxième, c’est de distribuer sous une licence non copyleft, genre BSD ou WTFPL. Une licence qui ne nécessite pas de distribuer le code source. Certes, mais en fait tu ne fais pas du Libre.
Le troisième, c’est de considérer le réseau de neurones comme une donnée, pas un exécutable. Donc pas de code source. La partie sous GPL serait alors l’interface graphique, et le réseau, une donnée. C’est assez limite. Une donnée exécutable, ça s’approche dangereusement d’un blob binaire.
Le quatrième, c’est de repenser complètement le paradigme du logiciel libre et de considérer qu’il vise avant tout à rééquilibrer les rapports de pouvoir entre programmeur et utilisateur, et qu’en redistribuant les neurones, tu as fait le job. Sur les rapports de pouvoir, tu n’as pas tort ! Mais d’une part, ça ne tiendra pas la route devant un tribunal. D’autre part, il persiste une asymétrie de pouvoir : tu as accès au corpus, pas l’utilisateur.
Quand bien même on admettrait que le code source est l’ensemble corpus + algorithme d’optimisation + réseau de neurones de départ, l’optimisation d’un réseau de neurones consomme autrement plus de ressources que la compilation d’un programme plus classique, des ressources qui sont loin d’être à la portée du quidam classique. À quoi servirait un code source impossible à compiler ?
Enfin, même cette définition du code source pose problème : elle n’est en fait pas beaucoup plus lisible que le réseau lui-même. Ce n’est pas parce que j’ai accès aux centaines (de milliers) de textes sur lesquels un réseau a été entraîné que je peux prédire comment il va se comporter face à une nouvelle question.
Comment les boîtes qui font de l’IA non libre résolvent-elles ce dilemme ? Elles ne le résolvent pas
C’est presque enfoncer une porte ouverte que dire que l’IA pose de nombreuses questions de droit d’auteur, y compris dans le petit microcosme du non-libre. Cependant, les IA non-libres ont un avantage sur ce point : si le réseau de neurones ne permet pas de remonter au corpus initial (donc en l’absence de surapprentissage), alors elles peuvent tranquillement nier avoir plagié une œuvre donnée. Tu ne me verras pas défendre les pauvres auteurs spoliés, car j’ai toujours considéré que la nature même de l’information est de circuler sans barrières (Information wants to be free, tout ça) et que le droit d’auteur en est une, et particulièrement perverse.
La définition d’une IA open source ressemble furieusement à un constat d’échec
L’OSI a publié une définition d’IA open source. Cette définition mérite qu’on s’y attarde.
Premier point intéressant : après des années à tenter de se démarquer du Libre, notamment via la définition de l’Open Source qui tente de reformuler les 4 libertés sans recopier les 4 libertérs, l’OSI baisse les bras : est open source une IA qui respecte les 4 libertés.
Deuxième point intéressant : est open source une IA qui publie la liste des neurones, le corpus d’entraînement et la méthode d’entraînement. En fait, ça revient à ne pas choisir entre les neurones et leur méthode d’entraînement. Soit, mais ça ne résout pas le problème de l’effet boîte noire. Au mieux, ça revient à admettre qu’il est le même pour le programmeur et l’utilisateur.
Conclusion : qu’attendre d’une IA libre ?
Il ne fait aucun doute que développer des IA libres exigera de nouvelles licences. La GPL, on l’a vu, expose à un risque juridique du fait de l’ambiguïté de la définition du code source.
Il est à noter, d’ailleurs, qu’une IA repose rarement exclusivement sur son réseau de neurones : il y a systématiquement au moins un logiciel classique pour recueillir les inputs de l’utilisateur et les passer au réseau de neurones, et un second en sortie pour présenter les outputs. Ces briques logicielles, elles, peuvent tout à fait suivre le paradigme classique du logiciel libre.
En définitive, cher lecteur qui ne développes pas d’IA, je t’invite surtout à te demander : qu’attends-tu d’une IA ? Qu’entends-tu quand on te parle d’IA libre ? Plus fondamentalement, l’IA serait-elle un des rares domaines où il existe une distinction pratique entre libre et Open Source ?
Il n’y a pas de façon simple de faire une IA libre, il n’y a peut-être pas de façon du tout. Mais le principe du libre, c’est que c’est à l’utilisateur in fine de prendre ses décisions, et les responsabilités qui vont avec. Je n’espère pas t’avoir fait changer d’avis : j’espère modestement t’avoir fourni quelques clés pour enrichir ta réflexion sur le sens à donner au vocable IA open source qu’on voit fleurir ici et là.
-
Et je mettrai « artificiel » à la poubelle parce que Implicit is better than explicit, rien que pour embêter Guido). ↩
-
Bon, certaines infractions complexes à exécuter, comme le trafic de drogue ou le génocide, requièrent une certaine implication intellectuelle et sont donc peu compatibles avec l’altération du discernement, mais c’est lié au fait que l’infraction elle-même requiert un certain discernement. ↩
-
Du moins au niveau du réseau de neurones lui-même. Les entrées et les sorties peuvent tout à fait passer par une moulinette insincère et codée dans un langage tout à fait classique. ↩
# IA = code + données
Posté par Thomas (site web personnel) . Évalué à 6 (+5/-0).
L'apprentissage automatique, c'est simple en réalité. Un programme d'entraînement avec un modèle interne (neural nets, SVM, random forests etc) et des données. Il y a une obstination actuelle sur les neural nets car … ils fonctionnent bien !
Les données sont fournies au programme, qui adapte les poids / paramètres internes du modèle. À la fin, on a un modèle entraîné.
De mon point de vue très pragmatique et limité de data scientist, un modèle sera donc libre si le code du programme d'entraînement et du modèle est libre, et si les données d'entraînement le sont aussi. Le modèle entraîné seul ne suffit pas, et de loin car on comprend souvent mal comment l'information y est encodée.
[^] # Re: IA = code + données
Posté par abriotde (site web personnel, Mastodon) . Évalué à 5 (+4/-0).
Un réseau de neurone sans les données d'entraînement ni les soft, c'est comme un binaire… on peut parfois faire un peu de reverse ingénierie mais concernant l'IA c'est encore plus limité.
C'est comme disposer du processeur sans les fichiers de conceptions… Mais c'est déjà mieux que ne disposer que d'une API à qui envoyer le programme et attendre le retour.
Sous licence Creative common. Lisez, copiez, modifiez faites en ce que vous voulez.
[^] # Re: IA = code + données
Posté par Thomas (site web personnel) . Évalué à 1 (+0/-0).
Tres exactement mon avis.
C'est pour cette raison que les modeles fournis par (cocorico) Mistral ne sont pas vraiment ouverts. Il faut fournir l'ensemble : modele, procédure d'entrainement, procédure de validation, données. Sans ça, on ne peut pas reproduire.
[^] # Re: IA = code + données
Posté par arnaudus . Évalué à 5 (+2/-0). Dernière modification le 27 février 2025 à 12:21.
Bof, est-ce que ça ne serait pas plutôt un jeu avec le moteur de jeu distribué sous GPL et les données distribuées dans un format exploitable (png, jpg, etc) mais pas dans le format natif (svg…)? Ou est-ce que toute analogie est incomplète et qu'il ne faut pas raisonner comme ça?
J'ai l'impression que l'application de la définition d'un logiciel libre suppose que tu doives disposer de toutes les informations nécessaires pour recréer l'exécutable sur ta machine, donc techniquement, le code source du réseau et les poids. Les poids ont été déterminés à partir d'une procédure d'entrainement, qui est quelque chose qui s'est déroulée en amont, qui a nécessité des données et d'autres logiciels, mais qui ne sont pas nécessaire à l'exécution du logiciel.
D'une manière générale, la GPL n'est pas transitive quand on parle de données. Tu peux par exemple créer des images avec Photoshop et d'inclure les png dans un jeu libre, ça ne contrevient pas à la GPL. Tu peux même ne rien dire sur la manière dont les png ont été générés, tu n'as pas à fournir ni le nom, ni les sources du logiciel que tu as utilisé.
Du coup, pour les poids d'un réseau de neurones, le respect de la GPL ne nécessite probablement pas d'expliquer d'où ils sortent: quel algorithme, quelles données d'entrainement, quelle procédure d'entrainement… Tout ça ne semble pas faire partie des informations requises par la GPL, parce qu'on parle de données d'entrée du programme, et pas du programme en lui-même.
Bien sûr, un tel réseau de neurones, distribué sous licence libre avec les poids mais sans information sur la procédure d'entrainement, ne serait pas transparent. Mais transparent et libre, ça n'est pas la même chose: tu peux être transparent et non-libre (par exemple si tu distribues les sources sous une licence qui ne permet pas la redistribution des versions modifiées), et tu peux être libre et non-transparent, par exemple des trucs dans l'esprit de
double expexpx(double x) { 11956.81*x-22295.44; } // This does the job
dans ton code (c'est l'extension linéaire de la fonction autour de x=2, mais si tu ne le sais pas tu ne peux pas deviner d'où viennent les coefficients).
Demander les données d'entrainement et l'algo sous licence libre, en prétendant qu'autrement c'est du faux libre, c'est aller plus loin que la définition du libre. On a le droit, bien sûr, de dire que les définitions actuelles du libre ne sont plus adaptées et qu'il faudrait une GPLv4 par exemple (y compris pour essayer de définir une licence pour ce qui sort des IA entrainées par des données libres), mais ça n'est pas la même chose.
Je me suis toujours méfié des discussions sur l'"esprit du libre". L'esprit du libre, c'est d'avoir un bugtracker, c'est d'avoir une communauté ouverte, c'est seulement le copyleft, c'est d'accepter les pull request… Rien dans le libre n'impose une quelconque "pureté", et cette course à la pureté finit toujours mal, parce qu'on trouve toujours des trucs qui ne sont pas assez purs (un logo ou une marque déposés, l'autorisation de plug-ins propriétaires, des blobs binaires dans les drivers…). Je n'ai rien contre un club des purs qui s'entre-écharpent pour savoir qui est le plus à même de représenter l'esprit de l'essence du libre, mais personne n'a la légitimité de prétendre qu'un truc qui respecte les quatre libertés et/ou une licence considérée comme libre n'est "pas libre".
[^] # Re: IA = code + données
Posté par arnaudus . Évalué à 5 (+2/-0).
Trop tard pour modifier, j'ai fais une erreur évidente : pour les "média" (style images), la GPL impose le format "préféré" pour la modification, donc mon exemple est confus, toutes mes excuses. J'aurais dû vouloir dire 1) le libre permet de distribuer des images sous format png (pas la GPL, mais la GPL est clairement une exception), et 2) ça ne s'applique au'aux média, et pas aux données de manière générale, même sous GPL.
Du coup, si les poids d'un réseau de neurones sont données dans un format natif (je ne sais pas en fait comment ces poids sont stockés en général, bases de données, fichiers texte, xml?), c'est clairement le format qui peut être importé ou exporté par l'algorithme d'entrainement, et j'ai l'impression que c'est exactement ce qui est demandé par la GPL.
[^] # Re: IA = code + données
Posté par Voltairine . Évalué à 1 (+0/-0).
Existe-t-il des IA dont les paramètres n'ont pas été ajustés ou pondérés par intervention humaine ?
[^] # Re: IA = code + données
Posté par Moonz . Évalué à 1 (+1/-2). Dernière modification le 27 février 2025 à 08:21.
Rien dans les LLM évidemment, bonne chance pour apprendre un language humain sans données produites par des humains :)
Mais dans l’IA plus largement, tu as AlphaZero.
[^] # Re: IA = code + données
Posté par Thomas (site web personnel) . Évalué à 1 (+0/-0).
AlphaZero a été entraîné.
[^] # Re: IA = code + données
Posté par arnaudus . Évalué à 5 (+2/-0).
Mais pas sur des parties jouées par des humains, si je me rappelle bien. Donc il s'est "auto-entrainé".
[^] # Re: IA = code + données
Posté par Thomas (site web personnel) . Évalué à 1 (+0/-0).
Il s'est entraîné en jouant contre lui-même.
Le processus d'entrainement est un peu différent, c'est de l'apprentissage par renforcement. Reste que les humains ont conçu le processus.
[^] # Re: IA = code + données
Posté par arnaudus . Évalué à 4 (+1/-0).
Les humains ont conçu l'algorithme, ils ont aussi conçu le jeu d'échecs, ils ont conçu les ordinateurs sur lesquels le programme tourne… Je ne comprends pas trop où tu veux en venir.
Je ne pense pas qu'une extension de la liberté des logiciels aux données et aux procédés qui ont permis de calculer les données d'entrée du programme soit cohérente et souhaitable. Ça semble n'avoir aucune fin. Un programme informatique, c'est un truc exécutable qui prend des données en entrée et qui te sort d'autres données; il est très fréquent d'avoir besoin de plusieurs programmes informatiques pour effectuer une tâche (gimp pour créer une image, libre office pour la mettre en page sur une dispositive, la visionneuse pour la projeter, etc), et certains programmes de cette chaine peuvent être libre et d'autres non. Quand on parle de réseaux de neurones, on parle de deux programmes, P1 qui entraine le réseau qui qui détermine des poids P en partant d'un jeu de données d'entrainement D, et un programme P2 qui prend une requête R, et qui utilise P pour donner une réponse Q. Tu as donc D -> P1 -> P, et P + R -> P2 -> Q. Si tu distribues le programme P2, tu refiles P2 et P, l'utilisateur procure la requête R, et voila, c'est un programme tout comme n'importe quelle programme informatique. P2 ne devient pas "non libre" si tu ne fournis pas toute la chaine logicielle et humaine qui a servi à déterminer P. Comme je l'ai écris plus haut, refiler P sans permettre de reproduire le processus D -> P1 -> P n'est pas très transparent, mais pour moi c'est pareil que de mettre une image retouchée avec Photoshop dans LibreOffice, ça ne concerne pas la licence de LibreOffice.
On a le droit de trouver cette situation sous-optimale, et on peut probablement définir d'autres concepts pour définir à quelle point une IA est ouverte, mais je pense qu'essayer d'utiliser le concept du logiciel libre pour ça est une erreur qui ne peut pas mener bien loin, parce qu'il faudrait appliquer une logique absurde qui ne s'applique pas du tout aux autres programmes informatiques.
[^] # Re: IA = code + données
Posté par Thomas (site web personnel) . Évalué à 1 (+0/-0).
Ok
En fait, je n'ai pas les idées claires sur la liberté d'un programme de ML. A priori, je dirais qu'on doit pouvoir tout reproduire localement, car l'intérêt (l'essence) du programme ML entraîné réside dans son … entraînement. S'il n'est pas reproductible, il n'est pas libre. Donc il faut tout le processus + les données.
Dans le cas du renforcement, je dirai pareil : il faut le processus total pour régénérer P, =P1. Mais ça se discute ? Disons que dans les deux cas, P1 + D (si ≠{}) sont nécessaires.
Donc il y a deux choses différentes :
- le programme entraîné, ~binaire
- le processus d'entraînement
On sera peut-être d'accord. Il faudrait repenser cette notion de logiciel libre dans le cas du ML, ça n'est probablement pas comparable.
Maintenant, on se heurte au problème de la boite noire : faire de la retro-ingénierie sur un NN c'est complexe, voire impossible. C'est peut-être aussi une limite - ou hors-sujet :)
[^] # Re: IA = code + données
Posté par Pol' uX (site web personnel) . Évalué à 3 (+1/-0).
Attention à ne pas confondre avec un programme ML. :)
Adhérer à l'April, ça vous tente ?
[^] # Re: IA = code + données
Posté par Thomas (site web personnel) . Évalué à 1 (+0/-0).
On peut préciser des paramètres en dur lors de l'instanciation du modèle. Jette un coup d'oeil aux modeles présentés dans la bible sklearn par exemple.
Mais pour un modèle d'apprentissage automatique, ca n'est pas trop l'idée : il faut justement laisser le programme d'entrainement ajuster les parametres.
[^] # Re: IA = code + données
Posté par Serge Julien . Évalué à 4 (+2/-0).
Tout à fait, mais pas que… Les mêmes données d'entraînement présentées dans un ordre différent pourraient voir les poids synaptiques converger vers des valeurs proches, mais pas identiques. Pour une reproductibilité parfaite, il faut le code + les données + la procédure complète d'apprentissage. Mais j'ergote et tu supposais peut-être tout ça de façon implicite quand tu parlais des données d'entraînement.
[^] # Re: IA = code + données
Posté par arnaudus . Évalué à 5 (+2/-0).
La reproductibilité ou la transparence n'a pas grand chose à voir avec la licence du programme… J'ai l'impression qu'on mélange des concepts qui sont très distincts (Open source et Open data).
Sans compter que la procédure d'apprentissage implique souvent des interventions humaines, donc tu as là un problème de reproductibilité évident. Même si tu décris ta procédure et qu'elle implique 1000 africains payés 1$/h pendant 6 mois, je ne vois pas ce que ça apporte, même si tu faisais la même chose tu n'aurais pas le même résultat.
Et avec tout ça, le logiciel avec ses poids peut parfaitement être distribué sous une licence libre et entrer sans aucune ambiguité dans la définition d'un logiciel libre.
[^] # Re: IA = code + données
Posté par Voltairine . Évalué à 6 (+4/-0).
Comment peut-on étudier le fonctionnement d'un logiciel et l'adapter à ses besoins (liberté 1 de la GPL) si celui-ci est obscur et non reproductible ?
Je pense que cette excellente dépêche montre bien qu'une IA générative ne peut globalement répondre aux critères du logiciel libre, elle est au mieux partiellement libre ou open source.
[^] # Re: IA = code + données
Posté par arnaudus . Évalué à 9 (+6/-0).
Ce que tu décris n'est qu'un cas extrême de choses qui arrivent tout le temps, je ne comprends pas pourquoi dans le cas d'une IA générative ça deviendrait immédiatement compliqué.
La situation où un exécutable libre ne produit de résultats exploitable que grâce à une base de données complexe et d'origine incertaine est assez fréquente. Tu peux par exemple prendre l'équilibrage d'un jeu vidéo, avec des centaines ou des milliers de paramètres qui sont réglés de manière à rendre le jeu intéressant, à faire en sorte qu'une partie dure plus ou moins longtemps, etc. Ça n'est pas propre aux jeux vidéo d'ailleurs, rien qu'au Monopoly tu as des centaines de paramètres (emplacement et prix des propriétés, prix des maisons, prix des loyers pour une, deux, trois quatre maisons et un hôtel, nombre et effet des cartes, etc. Tout ça vient dans un fichier "ruleset.txt" et tu n'as aucune idée de la manière dont il a été généré, sauf éventuellement si les concepteurs du jeu sont très transparents (et de toutes manières tu peux à peine vérifier). Pour moi, les poids pour une IA sont une version extrême du ruleset.txt : des centaines, milliers, millions de paramètres que le programme prend en entrée et qui le rendent utilisable. Tu peux changer les paramètres et vérifier que ça marche ou pas, mais tu n'as pas accès à la procédure (automatique, humaine, mixte, au pif, statistique…) qui a mené à l'établissement de cette base de données.
Ce qui est important, c'est que les données de poids des IA ne sont pas obfusquées : c'est réellement les données qui servent à paramétrer le modèle. Que tu considères qu'elles soient trop complexes pour toi ne change rien à l'affaire : elles sont en effet générées par un algorithme, mais c'est aussi le cas de dizaines de choses que tu utilises tous les jours (moteur de ta voiture, puces de ton ordinateur et de ton téléphone…).
Bien sûr, ce qui semble un peu bizarre c'est que pour un réseau de neurones, le programme en lui-même est une coquille vide (mais pas énormément plus qu'un moteur de jeu vidéo). Mais c'est déja le cas pour une quantité extraordinaire de logiciels. Un moteur de recherche est une coquille vide sans les données aspirées du web, un navigateur est une coquille vide sans les données des pages qu'il est censé afficher, un algorithme de bioinformatique est une coquille vide sans l'annotation du génome dans lequel il pioche les informations, etc. Mais personne n'irait jamais dire qu'un moteur de recherche sous GPL n'est pas libre parce qu'on peut télécharger le logiciel mais pas la base de données. La liberté du logiciel libre, ça ne concerne que le logiciel.
Je crois que tu te trompes de raisonnement. Le fait qu'un logiciel soit libre ne concerne que ce logiciel, pas ce qui arrive en amont ou en aval, et pas ce qui arrive à l'utilisateur. Ce que tu voudrais pouvoir appliquer à une IA générative va au-delà des libertés du logiciel libre, et j'irais même jusqu'à dire qu'un des critères (la possibilité d'étudier son fonctionnement) jour sur la polysémie du mot "pouvoir". Tu sembles exiger de pouvoir étudier son fonctionnement comme si tu exigeais de pouvoir courir le 100m en 8 secondes. Dans le logiciel libre, "pouvoir étudier le fonctionnement" doit se comprendre comme "avoir le droit d'essayer", pas "être en mesure de réussir". Avec les poids, tu as tout ce qu'il faut pour étudier le fonctionnement; tu peux essayer de réentrainer le modèle avec tes propres données, tu es libre, tu fais ce que tu veux. Le fait que tu ne saches pas le faire (parce que tu n'as pas les données ou parce que c'est trop complexe) ne change pas la licence du logiciel.
Mais sur le fond, je ne suis pas en désaccord. La dépêche est excellente, mais à mon avis elle montre qu'une IA peut être un logiciel libre, mais que c'est le genre de logiciel libre qui aurait aussi besoin de plus qu'être un logiciel libre : reposer sur des données ouvertes, être intégré dans une chaine de logiciels libres, reposer sur des principes d'ouverture scientifique, etc. Tout ça va bien au-delà de la licence du logiciel. Mais ça ne veut pas dire qu'il est légitime de dire que ces logiciels ne sont pas libres : ces logiciels sont parfaitement libres, mais la liberté des logiciels n'est probablement pas suffisante pour un contrôle citoyen efficace (tout comme un navigateur libre ne garantit pas du tout que les sites que tu visites ne truffent pas ton disque de cookies et de traqueurs).
[^] # Re: IA = code + données
Posté par Thomas (site web personnel) . Évalué à 3 (+2/-0).
Oui, il faut tout le process pour reproduire. Et bien sur, les recettes magiques et trucs tordus qu'on fait subir aux données brutes.
# Pourquoi dire IA si on ne parle que des réseaux de neurones ?
Posté par Khrys (site web personnel) . Évalué à 4 (+4/-0).
Je trouve assez fallacieux de résumer l'IA aux réseaux de neurones. Surtout en ce qui concerne la question du libre.
Un réseau de neurones fourni sans la base de données et la méthode détaillée d'apprentissage utilisées c'est exactement comme un logiciel dont on ne fournirait pas le code source. C'est complètement non reproductible.
En ce qui me concerne, j'utilise SRAS (Système Résultant d'Apprentissage Stochastique) pour désigner la techno et IA pour l'idéologie derrière, c'est ce que j'ai trouvé de mieux pour l'instant.
Et j'ai déjà donné mon avis sur la question ;-)
[^] # Re: Pourquoi dire IA si on ne parle que des réseaux de neurones ?
Posté par Liorel . Évalué à 4 (+2/-0). Dernière modification le 27 février 2025 à 10:21.
Merci de ton nourjal, c'est lui qui m'a donné l'idée de cette dépêche ! Il me semblait important, cependant, d'expliquer l'effet boîte noire, qui est le principal obstacle à une IA libre. Sans effet boîte noire, on n'aurait pas besoin de partager les données d'apprentissage, tandis qu'avec, même la connaissance des données d'apprentissage ne permet pas de savoir ce que fait réellement le modèle.
Note d'ailleurs que l'effet boîte noire n'est pas du tout spécifique du réseau de neurones : dans une première version de la dépêche, je l'introduisais à partir des forêts aléatoires1.
Et oui, je suis d'accord sur le fait d'associer IA et réseau de neurones : c'est un peu rapide comme raccourci. Mais comme je le discute en intro, c'est la définition actuellement acceptée. Peut-être qu'un jour, je serai obligé de renommer cette dépêche « Un réseau de neurones libre est-il possible ? ». Mais ce jour n'est pas arrivé ;).
J'ai fini par virer cette partie, qui était inutilement complexe et qui alourdissait le propos.e ↩
Ça, ce sont les sources. Le mouton que tu veux est dedans.
[^] # Re: Pourquoi dire IA si on ne parle que des réseaux de neurones ?
Posté par thoasm . Évalué à 3 (+0/-0).
On peut dire Apprentissage automatique pour du plus générique, ça donne ''l'apprentissage automatique libre'', ça a l'avantage de rendre le terme ''apprentissage'' (crucial dans la problématique) explicite, mais on perd le grand public assez largement.
Et ça insiste plus sur le processus d'apprentissage que sur le résultat, alors que ''IA'' ce serait l'inverse, ça désigne le résultat qui tourne.
[^] # Re: Pourquoi dire IA si on ne parle que des réseaux de neurones ?
Posté par abriotde (site web personnel, Mastodon) . Évalué à 1 (+2/-2). Dernière modification le 28 février 2025 à 16:31.
Pas tant que ça. Il est vrai que la recherche sur l'IA existe depuis le début de l'informatique. On a longtemps cru que ce serait "accessible" par un programme "conventionnel" "intelligent". Un programme qui dirait essaye, plusieurs chose, teste, et sélectionne la meilleure chose, et puis avant essaye de comprendre comment ça marche… En soit c'est algorithmique… mais force est de constater que l'on a rien réussi a faire de bien intelligent.
Oh certes, on a fait des programmes très complexe capable de faire au mieux (Systemes experts)… mais toujours dans un seul cas très précis. Très loin d'une intelligence humaine capable de comprendre son environnement de s'adapter et d'agir au mieux. Là ce que l'on faisait, c'est de définir des règles métiers faites par des ingénieurs et dont les paramètres étaient fixés de manière empirique. Très bien pour guider un missile ou piloter une usine… mais très loin de sortir quelque chose de cohérent.
Les réseaux de neurones sont apparus dans les années 90 (un peu avant dans les recherches). Ils étaient vu comme des trucs qui imitaient pâlement le cerveau humain pour la recherche médicale. Mais on pensait que c'était pas de l'IA car ce n'est pas en imitant la nature qu'on la reproduit, la roue est bien plus simple (et efficace à haute vitesse) que la marche (mais moins apte au tout-terrain). Mais finalement on s'est rendu compte qu'ils excellaient dans la reconnaissance de caractères (Fautes de puissance suffisante et d'optimisation, c'était difficile de faire plus).
Et ce n'est que très récemment qu'on a commencé à s'y intéressé sérieusement.
Mais force est de constater qu'aucun programme humain "classic" n'a la moindre intelligence. Il suffit de regarder la performance des ChatBot avant les réseaux de neurones. Pour dire, ils surpassent le meilleur humain dans une discutions, c'est à ça qu'on les reconnaît… alors que l'intelligence rêvée a été défini sur ce critère…
Aujourd'hui on est très loin d'avoir atteint leurs limites…
Sous licence Creative common. Lisez, copiez, modifiez faites en ce que vous voulez.
[^] # Re: Pourquoi dire IA si on ne parle que des réseaux de neurones ?
Posté par Jehan (site web personnel, Mastodon) . Évalué à 6 (+3/-0). Dernière modification le 28 février 2025 à 16:57.
Euh… ça n'est absolument pas le but de l'IA de créer une "intelligence" réelle (surtout qu'on a bien du mal à définir ce concept). Et si vraiment c'est ça, ben on n'y est toujours pas arrivé. Quiconque considère ces systèmes récents comme réellement intelligents ne comprend pas la technologie derrière.
LOL On a pas lu au sujet des mêmes IAs si tu considères cela cohérent!
Uh?
N'importe quoi. J'ai fait mes études universitaires avec spécialité Intelligence Artificielle au début du siècle. Les réseaux de neurones faisaient partie du programme et c'était absolument pas nouveau.
Pas plus que ces trucs récents. Je crois que certains se mettent juste à fantasmer sur ces programmes.
Et franchement croire que ceux-ci sont réellement intelligents, ça m'attriste sur comment on définit l'intelligence! 🤦♂️
Enfin bon, je confirme: non l'IA, c'est pas juste les réseaux de neurones, et en particulier pas uniquement ceux à large modèles. Ce serait bien triste sinon!
Film d'animation libre en CC by-sa/Art Libre, fait avec GIMP et autre logiciels libres: ZeMarmot [ http://film.zemarmot.net ]
[^] # Re: Pourquoi dire IA si on ne parle que des réseaux de neurones ?
Posté par arnaudus . Évalué à 1 (+3/-5).
Je pense que tu es dans un profond déni. Visiblement, la réalité, c'est que ça t'attriste qu'il existe des programmes informatiques qui défoncent allègrement tous les tests jamais imaginés pour définir une intelligence artificielle, alors tu préfères le nier. S'il était si évident que ces programmes n'étaient pas intelligents, il serait trivial de les mettre en défaut. Alors vas-y, juste pour vérifier : donne-nous un exemple, une tâche intellectuelle qui est à la portée de tout être humain pris au hasard dans la rue mais pas d'un LLM.
Ce qui me semble évident, c'est que si on tombait sur un extraterrestre qui interagissait avec nous comme le fait chatGPT, jamais il ne viendrait à l'esprit de quiconque de remettre en cause son intelligence. Donc questionner l'intelligence des LLM, c'est uniquement parce qu'on croit inférer de ce que l'on comprend de leur fonctionnement qu'ils ne peuvent que "simuler" l'intelligence. Mais c'est absude! Simuler l'intelligence est exactement la définition de l'IA.
[^] # Re: Pourquoi dire IA si on ne parle que des réseaux de neurones ?
Posté par Thomas (site web personnel) . Évalué à 1 (+1/-1).
Ils n'ont aucun humour.
Ils ne comprennent pas les règles des dames.
Ils ne savent pas reagir en dehors de leur contexte d'apprentissage.
Rappelons qu'il n'existe pas de définition de l'intelligence.
En fait, la discussion est un peu stérile car même les chercheurs ne comprennent pas bien ce qu'il se passe dans un LLM ou un NN. Exemple intéressant ici. La situation est tres confuse, et il y a une grosse part de psychologie dans cette histoire.
[^] # Re: Pourquoi dire IA si on ne parle que des réseaux de neurones ?
Posté par Voltairine . Évalué à 2 (+0/-0).
Il n'existe pas UNE définition, mais on peut s'amuser à en trouver, forcément subjectives et incomplètes.
L'intelligence c'est l'art du détour.
Et une IA en est totalement incapable.
https://fr.wikipedia.org/wiki/Th%C3%A9orie_du_d%C3%A9tour
[^] # Re: Pourquoi dire IA si on ne parle que des réseaux de neurones ?
Posté par Moonz . Évalué à 2 (+0/-0).
L’IA en est totalement capable
[^] # Re: Pourquoi dire IA si on ne parle que des réseaux de neurones ?
Posté par Voltairine . Évalué à 1 (+0/-1). Dernière modification le 01 mars 2025 à 12:26.
Non.
Le jour où une IA pourra résoudre cette petite énigme enfantine on en reparla :
Un clochard a besoin de 3 mégots pour faire une cigarette. Il dispose de 6 mégots. Combien de cigarettes peut-il fumer ?
[^] # Re: Pourquoi dire IA si on ne parle que des réseaux de neurones ?
Posté par wismerhill . Évalué à 2 (+0/-0).
C'est un classique, mais tu as mal choisi les nombres, parce qu'il ne lui restera que deux mégots après.
Mais la plupart des humains ne pensent pas à la récursion la première fois qu'il rencontre un problème comme ça.
[^] # Re: Pourquoi dire IA si on ne parle que des réseaux de neurones ?
Posté par Moonz . Évalué à 2 (+0/-0). Dernière modification le 01 mars 2025 à 13:23.
Et c’est un classique parce que la plupart des humains se plantent aussi sur leur première tentative.
Je trouve étrange de prendre un exemple où les humains se plantent souvent, pour montrer "l’IA se plante aussi", et finir par conclure "donc l’IA n’est pas intelligente".
Ce n’est pas très sympa pour les humains.
Ha, sinon, 3.7 Sonnet avec raisonnement :
[^] # Re: Pourquoi dire IA si on ne parle que des réseaux de neurones ?
Posté par Voltairine . Évalué à 1 (+0/-1). Dernière modification le 01 mars 2025 à 13:30.
Merci de respecter l’énoncé du problème : il y a 6 mégots au départ.
Tu as raison sur le fait que='il ne faille pas en tirer de conclusion définitive sur l’absence d'intelligence de L'IA. Cependant la plupart des humains, s'ils s'en donnent la peine savent trouver la solution. Alors que je pense qu'aucune IA actuelle ne le peut.
[^] # Re: Pourquoi dire IA si on ne parle que des réseaux de neurones ?
Posté par Moonz . Évalué à 3 (+1/-0). Dernière modification le 01 mars 2025 à 13:54.
Très bien. Claude 3.7 Sonnet donne la même réponse que moi et wismerhill :
.
Et à ce point je suis en mode "je ne vois pas comment faire mieux ?". Je demande à Claude: "Et si je te dis que c'est possible d’en faire 3 ?"
Wismerhill et moi sommes donc officiellement moins intelligents que Claude :(
[^] # Re: Pourquoi dire IA si on ne parle que des réseaux de neurones ?
Posté par Voltairine . Évalué à 1 (+0/-1). Dernière modification le 01 mars 2025 à 16:26.
😁 😁 😁
Non, je pense que tu n'as pas assez fait l'effort de chercher par toi-même. Quant à cette IA, elle a probablement vue passer cette énigme dans son corpus car elle tout de même assez connue.
[^] # Re: Pourquoi dire IA si on ne parle que des réseaux de neurones ?
Posté par Moonz . Évalué à 2 (+0/-0).
Cette hypothèse n’explique pas qu’elle se foire avec le mode raisonnement désactivé et réussisse avec le mode raisonnement activé ?
[^] # Re: Pourquoi dire IA si on ne parle que des réseaux de neurones ?
Posté par Voltairine . Évalué à 2 (+0/-0).
Ça je n'en sais strictement rien.
Mais on pourrait me rétorquer que cette IA a un comportement typiquement humain : elle a du mal à trouver une réponse plus créative qu'un calcul basique et ne le fait que lorsqu'on lui donne la solution.
Est-ce une marque d'intelligence ? Pas sûr…
[^] # Re: Pourquoi dire IA si on ne parle que des réseaux de neurones ?
Posté par abriotde (site web personnel, Mastodon) . Évalué à 1 (+1/-1).
Bah alors inventé un problème bien à toi. Tu verra qu'elle en saisie très bien les enjeux.
Ça te fait peut-être peur mais c'est la réalité. Elle est plus intelligente que l'humain et pourtant bien sûr parfois elle peut se tromper… mais moins que l'humain.
On en est pour autant pas à l'AGI… rassure toi.
Sous licence Creative common. Lisez, copiez, modifiez faites en ce que vous voulez.
[^] # Re: Pourquoi dire IA si on ne parle que des réseaux de neurones ?
Posté par arnaudus . Évalué à 3 (+0/-0).
Le problème est difficile, et en plus il est assez débile (parce que physiquement on ne comprend pas trop comment le clochard fait pour recycler les mégots en cigarettes). Moi je crois que je n'ai jamais compris la solution de ce truc sans qu'on me l'explique.
Ce problème est difficile, ça n'est carrément pas un bon exemple de truc ou une personne random dans la rue va donner intuitivement la bonne solution.
Je pense que tu es capable de donner la solution parce que toi aussi tu as déja vu passer l'énigme parce qu'elle est assez connue. Je ne vois pas vraiment où tu veux en venir.
[^] # Re: Pourquoi dire IA si on ne parle que des réseaux de neurones ?
Posté par Benoît Sibaud (site web personnel) . Évalué à 4 (+1/-0). Dernière modification le 02 mars 2025 à 20:30.
Intuitivement je dirais qu'il fume des sans-filtre roulées, et il arrête avant de se cramer les doigts et les lèvres, donc il reste 1/3 de la clope, et le tabac restant est réutilisé.
En même temps on sait que la cigarette c'est mauvais pour la santé (y compris celle des autres), et les compagnies qui en vendent des @#*$ donc, on pourrait apprendre des trucs plus intéressants aux IA et aux gens dans la rue.
[^] # Re: Pourquoi dire IA si on ne parle que des réseaux de neurones ?
Posté par arnaudus . Évalué à 3 (+0/-0).
Avec cette interprétation, avec 6 mégots le clochard pourrait se fumer 2,33 cigarettes : il fait 2 clopes avec les 6 mégots, puis 2/3 de clope avec les 2 mégots qu'il reste, qu'il pourra fumer jusqu'à se cramer les doigts.
Mais alors du coup je crois que je n'ai pas compris la bonne réponse attendue et je vois mal comment un LLM pourrait s'en sortir alors que le problème semble particulièrement pas clair (en tout cas pour un non-fumeur).
[^] # Re: Pourquoi dire IA si on ne parle que des réseaux de neurones ?
Posté par thoasm . Évalué à 4 (+1/-0).
Ce n'est pas forcément tant une question de possibilité de raisonnement que de connaissance empirique du monde. Les corpus de données comprennent probablement relativement peu d'information sur la pratique du roulage de cigarette et de la fumette, c'est pas tellement un truc qui s'apprend dans les livres. A partir de là, si la connaissance nécessaire n'est pas là, forcément le raisonnement n'est pas possible.
Une énigme mathématique demandant le même genre d'astuce pourrait montrer que la possibilité de "raisonnement" est là, et qu'elle n'est pas débloquée dans ce cas précis faute de connaissance. Un autre niveau serait de montrer que la connaissance est là, question roulage de clope (ce qui n'est pas impossible) mais que le lien avec le raisonnement formel n'est pas là parce que le logiciel est incapable de formaliser par lui même de manière à débloquer la capacité de raisonnement.
C'est la question de la compositionnalité des capacités "générique" qui vient après la démonstration de certaines capacités dans l'abstrait de manière indépendante. Mais sortir du cadre, oui les IAs ont quand même en soit démontré certaines possibilités de ce côté là.
C'est des choses qui sont étudiées actuellement, en cherchant les mots clés rapidement je trouve https://arxiv.org/pdf/2402.08674 ce papier qui a l'air de faire de la "pédagogie" d'IA pour chercher dans quel ordre leur faire apprendre des trucs pour débloquer de la compositions de connaissances.
[^] # Re: Pourquoi dire IA si on ne parle que des réseaux de neurones ?
Posté par thoasm . Évalué à 4 (+1/-0).
Alors pour tester les IAs il vaut mieux bidouiller les énoncés du problèmes ou les garder secrets, on peut toujours soupçonner que si elles donnent la bonne réponse c'est pas tellement parce qu'elles l'ont inventées que plutôt parce que c'est une question classique et qu'elles ont "triché" en ayant déjà la question et la réponse dans leur corpus et qu'elles l'ont stockée.
[^] # Re: Pourquoi dire IA si on ne parle que des réseaux de neurones ?
Posté par Voltairine . Évalué à 0 (+0/-2). Dernière modification le 01 mars 2025 à 13:26.
Voici un esprit déformé par l’informatique ou les mathématiques qui ne sait pas sortir du cadre et qui préfère remettre en cause l’énoncé que de chercher par lui même. :D
Si je l'ai donné, c'est justement pour illustrer l'art de détour.
Souvent les enfants ont plus de succès dans la résolution de cette petite énigme. ;)
[^] # Re: Pourquoi dire IA si on ne parle que des réseaux de neurones ?
Posté par wismerhill . Évalué à 2 (+0/-0).
Si on a le droit de faire intervenir des choses qui ne sont pas dans l'énoncé, alors n'importe quelle réponse devient possible.
[^] # Re: Pourquoi dire IA si on ne parle que des réseaux de neurones ?
Posté par Voltairine . Évalué à 2 (+0/-0).
Crois tu que la science pourrait avancer si les chercheurs n'allait pas chercher des éléments qui « ne sont pas dans l'énoncé », sans faire appel à leur imagination, à leur intuition, bref en pratiquant l'art du détour.
[^] # Re: Pourquoi dire IA si on ne parle que des réseaux de neurones ?
Posté par arnaudus . Évalué à 3 (+0/-0).
À ma connaissance, les humains ne font pas tous de la recherche scientifique, et parmi les cheucheurs, bien peu sont capables de repousser les limites du savoir en innovant. Par ailleurs, si la recherche scientifique ne progressait que grâce aux capacités cognitives des chercheurs, ça serait de la philosophie.
La question n'est pas de savoir si les LLM de 2025 sont des génies, on le sait que leur mode de fonctionnement pour l'instant les cantonne à refaire des raisonnements qui ont déja été faits. La question est de savoir s'ils se comportent comme des entités intelligentes.
Le jour où les IA surpasseront les meilleurs chercheurs, on aura atteint la singularité technologique. Ça serait peut-être en 2027, en 2050, ou jamais, mais ça n'est pas encore le cas, et personne ne l'a prétendu.
[^] # Re: Pourquoi dire IA si on ne parle que des réseaux de neurones ?
Posté par Maderios . Évalué à 3 (+2/-1).
Je doute fort qu'un "raisonnement artificiel" (autrement appelé "IA"), qui se nourrit principalement de la pensée dominante sans la remettre en cause, puisse reproduire un jour les conditions de la recherche fondamentale, mode de recherche désintéressé qui permet parfois de faire des découvertes grâce au hasard, à l'accident ou/et à l'imperfection des humains.
Exemple: "De nombreuses innovations majeures ont été développées dans une logique de recherche fondamentale, et n'auraient pas été développées dans un cadre de recherche appliquée ; par exemple, les technologies liées au laser, ou encore la théorie du chaos."
[^] # Re: Pourquoi dire IA si on ne parle que des réseaux de neurones ?
Posté par Pol' uX (site web personnel) . Évalué à 3 (+1/-0). Dernière modification le 02 mars 2025 à 21:35.
Rassure moi : t'es cadre dans l'innovation managée ?
Adhérer à l'April, ça vous tente ?
[^] # Re: Pourquoi dire IA si on ne parle que des réseaux de neurones ?
Posté par arnaudus . Évalué à 3 (+1/-1).
Je ne sais pas ce que c'est, mais tu as l'air de suggérer que la recherche fondamentale est forcément une activité intellectuelle intense qui repousse les limites du génie humain. C'est une vision très romantisée de la chose, puisque la recherche c'est souvent beaucoup de travail systématique ou de collecte de données, par exemple.
On est bien d'accord que les LLM tels qu'ils fonctionnent actuellement ne seront pas capables d'inventer la relativité. Ça, ce n'est pas de l'IA, ça serait l'atteinte de la singularité technologique. Mais il commence à y avoir des LLM qui servent d'assistants de recherche, qui peuvent automatiser des traitements statistiques ou des analyses de routine, qui peuvent émettre des hypothèses. Le jour où on aura des LLM performants capables de faire des synthèses et des recherches bibliographiques performantes par exemple, ça sera un outil de productivité majeur. Donc, diriger des recherches, probablement pas tout de suite, mais fournir beaucoup d'aide aux chercheurs, c'est vraiment envisageable.
[^] # Re: Pourquoi dire IA si on ne parle que des réseaux de neurones ?
Posté par Pol' uX (site web personnel) . Évalué à 0 (+1/-3).
Je m'en fous des LLM. Tu débites 42 affirmations par jour, dont très peu tiennent l'examen (du coup je comprends pourquoi tu aimes les LLM).
Tu balances gratuitement une affirmation ubuesque sur les chercheurs (« bien peu sont capables de repousser les limites du savoir en innovant »), et assez condescendante au demeurant. Et c'est moi qui ait un avis romancé de la recherche ? :)
Va faire joujou avec les LLM des milliardaires fascistes, mais évite d'insulter les gens en masse…
Adhérer à l'April, ça vous tente ?
[^] # Re: Pourquoi dire IA si on ne parle que des réseaux de neurones ?
Posté par arnaudus . Évalué à 6 (+4/-1).
Je ne comprends pas ton rapport avec la réalité. On peut avoir des convictions personnelles fortes, mais les convictions n'ont jamais changé la réalité. La réalité c'est que les LLM fonctionnent très bien, extrêmement bien, mieux que n'importe qui aurait pu le prédire il y a quelques années, et bien mieux que certaines prétendent ici. Certains LLM sont proposés par des entreprises américaines aux accointances douteuses avec un pouvoir douteux, mais c'est totalement absurde de généraliser, il y a des LLM européens, chinois, plus ou moins libres ou open data, c'est tout un bestaire, et il ne se réduit pas à ChatGPT.
L'existence des LLM pose tout un tas de questions sociétales et environnementales, et beaucoup sont destabilisés par les changements possibles. Ce sont des questions très raisonnables, mais je ne comprends pas comment on peut juste nier les perfs des LLM parce qu'on préfèrerait qu'ils n'existent pas. Et je dis ça alors que j'utilise beaucoup moins les LLM que mes collègues par exemple; la plupart d'entre eux n'ont ni les perfs ni le degré d'ouverture et de confidentialité pour que je leur fasse confiance; je n'ai par contre aucun doute sur l'importance qu'ils vont prendre sur la plupart des métiers.
Sur la recherche, j'imagine que tu m'as mal compris. Comme je connais très bien ce milieu, je voulais juste remettre en perspective l'idée que l'IA ne pouvait y jouer aucun rôle. C'est juste totalement faux, parce que le travail "créatif" dans la recherche représente une fraction très réduite du temps de travail des chercheurs, qui passent leur temps à chercher et intégrer des informations, à remplir des formulaires administratifs et des demandes de financement, et à gérer un environnement de travail complexe (réunions, comités, entretiens individuels, recrutement…); bref, c'est en majorité un travail assez similaire à un travail de cadre dans n'importe quelle structure, avec des spécificités (notamment les règles et l'organisation inefficaces de la fonction publique) qui ne favorisent pas leur productivité. Donc oui, je confirme, imaginer les chercheurs comme des gens à l'intelligence supérieure qui cogitent, c'est une vision fantasmée de la recherche; au quotidien, une grande partie de l'activité est beaucoup plus "standard" et je ne vois pas pourquoi elle ne bénéficierait pas de l'existence de ces logiciels performants.
[^] # Re: Pourquoi dire IA si on ne parle que des réseaux de neurones ?
Posté par LaurentClaessens (site web personnel) . Évalué à 3 (+1/-0).
Je plussoie.
Question à ChatGPT:
Réponse :
Je ne sais pas si beaucoup d'humains auraient trouvé la bonne réponse, mais je suis certain qu'aucun n'aurait répondu faux comme ChatGPT.
Du coup je ne donne pas la réponse attendue, pour laisser les humains se montrer plus malins.
Plus généralement, je serais impressionné qu'un LLM puisse répondre à un "monsieur et madame" sans avoir la réponse dans sa base d’entraînement.
ChatGPT n'a pas trouvé
- la fille de la famille Encoreachèvele
- le fils de la famille Saigne (pourtant elle est classique)
Et pire. Il n'a pas compris ma préférée :
Réponse :
[^] # Re: Pourquoi dire IA si on ne parle que des réseaux de neurones ?
Posté par arnaudus . Évalué à 4 (+1/-0).
Tu as essayé en anglais? C'est peut-être un exercice qui est beaucoup plus culturel qu'on imaginerait?
Bon, LeChat ne s'en sort pas mieux:
C'est d'ailleurs assez marrant, parce que l'incapacité des IA à comprendre et manier l'humour c'est vraiment un classique de la SF (voir Terminator par exemple).
Est-ce que c'est un manque d'humour ou une forme d'humour qui nous dépasse complètement? Bon, j'ai essayé de tester l'humour de chatGPT dans le Chat, et ça marche moyen:
[^] # Re: Pourquoi dire IA si on ne parle que des réseaux de neurones ?
Posté par Letho . Évalué à 3 (+1/-0).
Perso, j'ai éclaté de rire. Mais c'est parce que j'ai eu l'impression d'entendre Yvain dans Kaamelott.
« Parce qu’en fait, dans notre langue, y’a que deux mots qui riment avec complète : c’est quiquette et biseautée. »
[^] # Re: Pourquoi dire IA si on ne parle que des réseaux de neurones ?
Posté par fearan . Évalué à 3 (+0/-0).
[…] je passe la réponse qui est des calculs statistique sans aucun intérêt et ne réponds pas à la question posé
[…]
En résumé, étant donné que ce jeu est basé sur des résultats aléatoires de la pièce, tu as environ 50 % de chances de gagner à chaque partie. Sur 2000 parties, il est donc raisonnable de penser que tu auras des victoires, mais aussi des défaites, en fonction des tirages. Cela reste un jeu de hasard, et personne ne peut garantir qu'il gagnera à chaque fois.
Il ne faut pas décorner les boeufs avant d'avoir semé le vent
[^] # Re: Pourquoi dire IA si on ne parle que des réseaux de neurones ?
Posté par Jérôme FIX (site web personnel) . Évalué à 1 (+0/-0).
En fait il fait la même erreur que pas mal de personnes à la lecture d'un énoncé.
Cela ne prouve malheureusement rien, à part que les LLMs ont souvent tord et sortent facilement des conneries si on est pas derrière pour vérifier et valider leurs réponses.
[^] # Re: Pourquoi dire IA si on ne parle que des réseaux de neurones ?
Posté par Moonz . Évalué à 3 (+1/-0). Dernière modification le 01 mars 2025 à 11:03.
Claude 3.7 avec raisonnement ne tombe pas dans le piège:
(juste un extrait parce que c’est long, il essaie de trouver une interprétation qui fait sens):
[^] # Re: Pourquoi dire IA si on ne parle que des réseaux de neurones ?
Posté par arnaudus . Évalué à 1 (+0/-2).
Là j'avoue que c'est flippant. Ce n'est pas qu'il trouve la bonne réponse qui est flippant, c'est sa réaction: "Attendez, il y a quelque chose d'étrange dans cette formulation". Il est surpris. Sérieux, combien d'exemple faudra-t-il pour admettre que ces logiciels se comportent comme des systèmes intelligents?
[^] # Re: Pourquoi dire IA si on ne parle que des réseaux de neurones ?
Posté par vpo . Évalué à 2 (+1/-0).
Le " il y a quelque chose d'étrange" peut très bien être une des phrases types codées par les développeur quand l'algo détecte un énoncé potentiellement incohérent, juste pour faire plus naturel.
Je citerai d'ailleurs ton propre post:
LeChat qui explique:
Ces machines ne ressentent pas d'émotions. Dès lors comment pourraient elles être surprises au sens où un animal est surpris ?
Ou alors tu définis la surprise par la détection d'un événement dont la probabilité est faible au regard de la situation actuelle. Mais ça, c'est de la proba, rien de plus, pas de l'intelligence. Je vois une personne avec un passe montagne au ski, je ne suis pas surpris. Je vois le même qui rentre dans une banque, je peux me poser des questions sur les intentions de la personne. Je pourrais très bien entraîner une IA avec des vidéos de gens qui skient, d'autres qui rentrent dans des banques sans les braquer, et d'autres avec des gens qui viennent les braquer. Rapidement, l'IA devrait faire une corrélation entre passe montagne à la banque = braqueur potentiel. Je ne me risquerai pas à affirmer pourtant que la machine a été surprise et qu'elle est intelligente.
Autre argument : Le terme d'intelligence artificielle me semble très mal choisi car justement il est bien difficile de définir ce qu'est l'intelligence (tout comme il est difficile de définir ce qu'est la vie). Le terme de machine learning / apprentissage automatique me semble bien plus judicieux sur ce qu'elles sont capables de faire. Ca me rappelle le cas des élèves capables d'apprendre tout par cœur mais qui n'étaient pas très futés. Après de très bonnes notes en primaire, ils s'écroulaient avant d'arriver au bac car quand il s'agissait de faire preuve de réflexion et non plus de tout recracher par cœur, c'était la cata.
Ben ces logiciels c'est pareil mais en plus évolués :-). Il est facile de se tromper en pensant que comme ils semblent s'exprimer comme une entité intelligente, alors ils le seraient réellement. Ils arrivent à faire illusion dans certains domaines. C'est vrai. Mais de là à dire qu'ils sont réellement une entité artificielle douée d'une intelligence comparable à celle d'entités dotées de cerveaux organiques, j'ai de sérieux doutes. En tout cas, en l'état actuelle du progrès technique.
[^] # Re: Pourquoi dire IA si on ne parle que des réseaux de neurones ?
Posté par arnaudus . Évalué à 2 (+0/-1). Dernière modification le 03 mars 2025 à 16:58.
Le problème c'est que tu ne peux aller nulle part avec ce raisonnement. "Ils simulent l'intelligence", "ils ne font que reformuler les informations qu'ils ont acquises par leur entrainement", etc. Évidemment, on parle d'intelligence artificielle. L'objectif d'une intelligence artificielle est de se comporter comme si elle était intelligente, et quand elle arrive à le faire avec une grande précision, alors elle est intelligente. Parce que c'est le seul moyen de qualifier quelque chose d'autre que toi comme "intelligent" : tu n'as pas accès aux experiences subjectives de ton voisin de palier, donc quand il te dit "j'ai eu peur quand l'electricité a été coupée", tu pars du principe qu'il a vraiment eu peur. Pourtant, ça pourrait juste être un zombie qui simule la peur sans la ressentir, mais tu ne peux as utiliser cette possibilité. Donc, avec une IA, c'est la même chose, il faut admettre que simuler l'intelligence de manière convaincante, c'est faire preuve d'intelligence. Sinon tu pourras toujours nier : "elle fait semblant de comprendre mais en fait elle ne comprend pas", etc.
Je ne sais pas ce que tu appelles "comparable". Il vaut probablement mieux distinguer différentes tâches, et de considérer que sur certaines tâches, elles font mieux que le meilleur humain, sur d'autres elles font mieux que la plupart des humains, pour d'autres elles sont dans la moyenne, et sur d'autres elles font moins bien. Progressivement, tous les ans, les listes de tâches vont glisser d'une catégorie à l'autre. À quel moment tu accepteras que ces logiciels ont atteint un niveau que tu acceptes de qualifier d'"intelligent"?
Chacun peut avoir ses critères. Ces logiciels sont capables de faire beaucoup mieux que moi sur beaucoup de tâches intellectuelles dont j'aurais considéré il y a quelques années être l'apanage d'un être humain. Inventer une histoire illustrée pour les enfants, faire le résumé d'un texte, écrire un poème en vers, écrire le plan d'un cours de 3h pour des étudiants de licence, coder une fonction en C à partir d'une description textuelle des entrées et des sorties… Pour la plupart de ces tâches, les LLM font moins bien que le meilleur des humains, mais bien mieux que la moyenne, et bien mieux que moi. Quand j'ai ce genre de discussions avec des gens qui pensent que "mouais c'est pas un signe d'intelligence", je me demande si mes critères sont particulièrement faibles, ou si ces gens ne s'inventent pas juste des excuses pour refuser de voir que ces IA font exactement, voire même beaucoup mieux, que toutes les descriptions d'IA de la littérature scientifique et/ou SF. Parce que oui, au XIXe siècle, le summum de l'intelligence humaine, c'était le jeu d'échecs. Puis quand les machines sont devenues meilleures que nous, ça a été le test de Turing. Et maintenant les LLM défoncent le test du Turing, donc on bouge encore les poteaux, et maintenant on leur impose des tests littéralement "inhumains". Vous n'êtes pas en train de nier l'évidence? Si on avait une conversation par radio avec une civilisation extra-terrestre de même nature que celle d'un chatbot de 2025, jamais, absolument jamais personne ne prétendrait qu'on n'est pas en train de dialoguer avec des êtres intelligents, même bien plus intelligents que nous sur beaucoup de points. Prétendre que les LLM ne sont pas intelligentes, c'est juste parce qu'on croit savoir de leur fonctionnement qu'il est impossible qu'elles soient intelligentes "pour de vrai", mais c'est de toutes manières un point de vue qui va au fil des années devenir intenable.
[^] # Re: Pourquoi dire IA si on ne parle que des réseaux de neurones ?
Posté par Moonz . Évalué à 2 (+0/-0).
Oh, il y en a encore:
https://www.twitch.tv/claudeplayspokemon
https://chatgpt.com/share/67c05901-276c-8005-977e-472622d81679
Mais sur le fond je suis d’accord. Les capacités des LLMs de 2024/2025 étaient de la pure science-fiction en 2019. Rappelons que l’horizon indépassable (et considéré inatteignable pour plusieurs années) à cette époque dans le domaine du NLP c’était les schéma de Winograd. Il serait bon de se rappeler des temps reculés d’il y a 5 ans. Et les modèles ne peuvent que s’améliorer avec le temps.
ChatGPT présenté sur DLFP en 2019 ? La première hypothèse serait, de très loin et à raison: absolument un fake, c’est à 100% une version moderne de la mystification du Turc mécanique. L’hypothèse "non, c’est bien un programme informatique" serait considérée comme complètement farfelue, et que seul un idiot pourrait tomber dans un piège aussi grossier. Et j’aurai été le premier à défendre cette position.
Quand la réalité surprend aussi violemment les préjugés, c’est que les préjugés sont en tort et qu’il faut changer. Insister sur les préjugés et faire des contorsions pour les préserver est le meilleur moyen de se retrouver avec une grosse (probablement mauvaise) surprise dans 1-2 ans (mais… mais… je croyais qu’il n’y avait aucune intelligence dans les LLMs ?)
J’ai un peu honte d’avoir changé mes préjugés bien trop tard en ne les révisant qu’en 2022. En 2025 ? Avec DeepResearch, les modèles de raisonnement, AI co-scientist ? C’est du pur entêtement.
[^] # Re: Pourquoi dire IA si on ne parle que des réseaux de neurones ?
Posté par Maderios . Évalué à 1 (+1/-2).
Les IA calculent des probabilités, mieux que les humains, ok mais ce n'est pas ce qui se nomme "intelligence".
- "Faculté de connaître, de comprendre ; qualité de l'esprit qui comprend et s'adapte facilement" (…) "L'ensemble des fonctions mentales ayant pour objet la connaissance rationnelle" (Le Robert)
- "Ensemble des fonctions mentales ayant pour objet la connaissance conceptuelle et rationnelle" (…) "Aptitude d'un être humain à s'adapter à une situation, à choisir des moyens d'action en fonction des circonstances" (Larousse)
[^] # Re: Pourquoi dire IA si on ne parle que des réseaux de neurones ?
Posté par thoasm . Évalué à 4 (+1/-0).
Le fait que ce soit à base probabiliste ne nous donne pas vraiment d'informations sur la capacité à s'adapter facilement.
En particulier, pour calculer efficacement les probabilités dans un espace limité, avec un nombre de neurone contraint, il faut une forme de structuration de ces réseaux de neurones pour traîter l'information et en tirer des probabilités raisonnables. Cette structuration, pour fonctionner efficacement, ne doit-elle pas généraliser suffisamment pour s'adapter à d'autre problème ? La question n'est pas "proba ou pas" mais "comment ça généralise".
Exemple limite : un raisonnement mathématique. Prend un ensemble de démonstration mathématiques, à classer comme "correctes" ou "incorrecte", entraine le donc à discriminer le mathématiquement correct du mathématiquement incorrect. Les lois de la logiques ont des règles du jeu. Un réseau de neurone "séquentiel" peut en principe apprendre les différentes règles pertinentes, et classer leur application correcte ou pas, voire pointer directement les applications incorrectes.
Au cours de l'apprentissage, probabiliste, à force d'enquiller les démonstrations, il fait de moins en moins d'erreurs. C'est probabiliste. Une fois l'apprentissage terminé, on lui montre des démonstrations mathématiques, à classer en correctes et incorrectes. Dans le principe, il a "juste" à faire comme un correcteur humain, à vérifier pas à pas que les règles de la logiques sont respectées.
Sur ce principe, on part d'un apprentissage en mode probabiliste et on arrive à un résultat ou il n'y aura pas forcément d'erreurs … La question est, est-ce que ce résultat est crédible, et est-ce que la capacité à s'adapter très largement à une large classe de démonstration mathématique qu'il n'a pas vu n'est pas une preuve d'adaptation très importante ?
Tout ça pour dire que la dichotomie que tu fais n'en est pas forcément une, le mode "probabiliste" n'est pas incompatible avec l'adaptation (au contraire même, dans certains cas ça rend beaucoup plus robuste, c'est ce qui permet de généraliser et de discriminer petit à petit ce qui n'est pas important en en baissant petit à petit le poids). Alors qu'un raisonnement binaire sera impossible à généraliser si on sort un tantinet du cadre et sera inapplicable si on est pas pile poil dans le cadre déterminé à l'avance.
[^] # Re: Pourquoi dire IA si on ne parle que des réseaux de neurones ?
Posté par Maderios . Évalué à 2 (+0/-0).
Certainement mais la faculté d'adaptation ne définit pas elle seule l'intelligence au sens humain du terme, cela fait partie des conditions. Un animal, même très primitif, sans cerveau, est capable de s'adapter quand son milieu change. Les bactéries ne sont pas "intelligentes". (Mais plus un animal saura s'adapter, plus il saura survivre). Je crains fort qu'il existe, concernant l'"intelligence artificielle" une confusion entre "intelligence" et "raisonnement". On devrait plutôt employer le terme "raisonnement artificiel", ce serait plus exact.
[^] # Re: Pourquoi dire IA si on ne parle que des réseaux de neurones ?
Posté par thoasm . Évalué à 3 (+0/-0).
Ah mais j'en parle parce que ça ressort particulièrement des définitions que tu as sorties, de l'adaptation.
[^] # Re: Pourquoi dire IA si on ne parle que des réseaux de neurones ?
Posté par kantien . Évalué à 4 (+2/-0). Dernière modification le 02 mars 2025 à 21:42.
Loin d'être limite, cet exemple est celui qui a donné l'ordinateur à l'humanité. Quoi qu'il en soit, pour ce type de problème on tombe sous le coup suivant : le problème est formellement circonscrits, on a des algorithmes qui le résolvent à 100% sans aucun risque d'erreurs. Pourquoi donc passer par un LLM pour résoudre cette question ? Déjà qu'une machine de Turing est con comme une huître, mais si en plus en plus son programmeur s'y met, on n'est pas sorti de l'aurberge. :-D
Et tout programmeur cotoit quotidiennement un tel algorithme, vérifier qu'une preuve est logiquement valide cela s'appelle faire du type cheking. Après il y a des systèmes de types plus sérieux que d'autres, d'où le débat sur Rust dans le code du noyau Linux. ;-)
Sapere aude ! Aie le courage de te servir de ton propre entendement. Voilà la devise des Lumières.
[^] # Re: Pourquoi dire IA si on ne parle que des réseaux de neurones ?
Posté par thoasm . Évalué à 3 (+0/-0).
Exemple extrême si tu préfères, il n'est pas choisi au hasard, il est là pour illustrer que du raisonnement probabiliste peut généraliser du raisonnement mathématique (j'ose pas dire Booléen parce que c'est plus général) classique, comme cas limite, et tendre à le faire de manière parfaite, dans l'idée. C'en est possiblement une généralisation, l'un étant le cas particulier de l'autre … (Et inversement, si on prouve une équivalence on est pas rendus)
[^] # Re: Pourquoi dire IA si on ne parle que des réseaux de neurones ?
Posté par kantien . Évalué à 0 (+0/-2). Dernière modification le 03 mars 2025 à 14:42.
Tout dépend de ton projet. Si ton but est de dire que les réseaux de neurones peuvent aller au delà du calcul des probabilités, le plus simple est invoquer le fait qu'il soient Turing complet.
Néanmoins, relativement à la question que tu as mis sur la table, il est inepte de passer par un LLM pour la résoudre. How to implement dependent types in 80 lines of code. Bien que ce code ait des défaut et soit perfectible, un tel algorithme de classification ne doit pas dépasser la centaine de lignes de code. ;-)
Sapere aude ! Aie le courage de te servir de ton propre entendement. Voilà la devise des Lumières.
[^] # Re: Pourquoi dire IA si on ne parle que des réseaux de neurones ?
Posté par thoasm . Évalué à 3 (+0/-0).
Et ben … ça se discute. Les prouveurs de théorème, automatiques qui se réduiraient en 80 lignes de codes ils auront bien du mal à prouver des trucs non triviaux, la preuve de théorème ça reste un exercice qui demande pleins d'étapes manuelles, et encore il faut déjà avoir la preuve au préalable (en tout cas à l'heure actuel on essaye plutôt de transcrire des trucs déjà connus).
La combinatoire des trucs possibles rend complètement inopérante une approche qui tenterait une exploration naive des possible … dans une moindre mesure c'était déjà le cas pour le problème du repliement de protéine ou on avait pas spécialement de bon algorithme avant que des réseaux de neurone et de l'apprentissage par l'exemple plient le jeu.
Pour prouver un truc de manière profonde dont on a pas la solution à l'avance, il se pourrait que la voie à suivre soit de chercher d'abord dans certains coins de l'espace de recherche, et que les LLMs soient un bon outil heuristiques pour trouver ces coins prometteurs ou évaluer si on a progressé ou pas.
[^] # Re: Pourquoi dire IA si on ne parle que des réseaux de neurones ?
Posté par kantien . Évalué à 0 (+0/-2). Dernière modification le 03 mars 2025 à 15:19.
En fait ça ne se discute même pas. Tu n'as juste pas compris la question. Si la question est « énonce loi un théorème, j'en chercherais la preuve », alors oui il n'y a pas d'algorithme pour y répondre, c'est bien le résultat des travaux de Gödel et Turing. Mais, pour arriver à leur conclucsion, ils ont bien comenncé par prouver que la question de la classification des preuves mathématiques était décidables. Le faire en 80 lignes de codes n'est rien d'autre qu'une sytnhèse de leur argumentaire. ;-)
Sapere aude ! Aie le courage de te servir de ton propre entendement. Voilà la devise des Lumières.
[^] # Re: Pourquoi dire IA si on ne parle que des réseaux de neurones ?
Posté par thoasm . Évalué à 3 (+0/-0).
Ah oui pardon, c'était évident comme problème, personne n'en doutai je pense, mais c'était juste pour faire mon point. Bon après j'ai un peu perdu le fil parce que j'ai l'impression que tu cherches juste à recaser tes marottes :p donc je ne sais plus ou on va.
[^] # Re: Pourquoi dire IA si on ne parle que des réseaux de neurones ?
Posté par kantien . Évalué à 1 (+0/-1).
Personne n'en doute, ça c'est ce que tu dis maintenant. Mais, à la base, Turing s'est posé la même question que toi (classifier les preuves mathématiques) et sa réponse me semble plus sensée et sérieuse que la tienne. On n'a peut être pas la même lecture et interprétation de Turing ;-)
Sapere aude ! Aie le courage de te servir de ton propre entendement. Voilà la devise des Lumières.
[^] # Re: Pourquoi dire IA si on ne parle que des réseaux de neurones ?
Posté par thoasm . Évalué à 3 (+0/-0).
C'était l'objectif du programme de Hilbert non ? Écrire des systèmes logiques avec des règles de déductions valides dont l'application correcte serait trivialrment vérifiables dans une preuve. Enfin surtout prouver leur correction mais … La vérification par les machines de preuves de maths automatiquement me semble en découler naturellement.
[^] # Re: Pourquoi dire IA si on ne parle que des réseaux de neurones ?
Posté par kantien . Évalué à 2 (+0/-0).
Oui il y un lien avec le programme de Hilbert (et c'était bien à cela que voulait répondre entre autre Turing), mais ce que je voulais dire est plus simple.
Ton commentaire auquel j'ai répondu en premier contenait ce paragraphe :
Dans son article originaire, Turing, où il développe sa notion de machine à calculer, traite justement de cette question mais sans recourir à un apprentissage automatique. Relativement à cette question, on se retrouve dans le cas que Liorel, dans sa dépêche, décrit en ces termes :
Et justement, Turing, dans son article, donne une telle solution formelle. Il a montré qu'il existe une machine à calculer qui prend en entrée un argumentaire
P
et un théorèmeT
et qui vérifie siP
est bien une preuve deT
et cela en un temps fini. Cette machine prend n'importe quelle preuves et n'importe quel théorème et s'arrête toujours pour répondre à la question. Une telle machine, ou un tel programme, est ce que l'on appelle un type checker.Mais continuant son raisonnement, pour répondre au problème de Hilbert, il construit idéalement un autre machine. Celle ci ne va pas seulement vérifier qu'une preuve est correcte mais elle va en chercher une. En entrée, elle ne prend plus une preuve et un théorème mais seulement un théorème et elle cherche à savoir si on peut le prouver ou le réfuter. Pour la décrire, il se sert de la machine précédente (le type checker), puis constate que tous les argumentaires possibles sont récursivement énumérables : il a une seconde machine qui va alimenter la première avec toutes les preuves possibles. En gros il fait de la composition de fonctions pour faire du brut forcing. Puis, il montre, finalement, que pour certaines entrées sa technique de brut force mouline sans fin : c'est le problème de l'arrêt ou l'existence d'énoncés indécidables.
Chercher un preuve pour un théorème donné, c'est cela que font des logiciels LLM comme copilot. Mais il ne peuvent pas simuler bien mieux qu'un programmeur junior. ;-)
Sapere aude ! Aie le courage de te servir de ton propre entendement. Voilà la devise des Lumières.
[^] # Re: Pourquoi dire IA si on ne parle que des réseaux de neurones ?
Posté par thoasm . Évalué à 4 (+1/-0).
Tu parles bien de ce que je dis dans mon commentaire "oui et non" finalement, la recherche de preuve. C'est là que de l'intelligence est nécessaire, et qu'on peut éventuellement attendre de réseaux de neurones qui aient appris en enquillant les preuves à trouver les pistes intéressantes. Parce que les programmes faits à la mimines sont limités en profondeurs ou fonctionnent bien sur des sous-problèmes (les fameuses tactiques des assistants de preuve, qui sont indispensables), et il faut trouver les bonnes combinaisons à la mimine pour avancer. Il n'est pas impossible que les réseaux de neurones développent des "intuitions" sur des combinaisons prometteuses à explorer qui sont compliquées à atteindre sans heuristiques.
Les programmes de recherche de solutions de problèmes fonctionnent déjà à l'aide d'heuristiques, bien souvent, quand le problème est complexe. On peut voir une IA comme une cousine des heuristiques de niveau supérieur qui s'adaptent à plein de problème, des "méta-heuristiques" comme on dit en optimisation, dans un tel cadre de recherche de solution à un problème (bien formalisé) difficile.
[^] # Re: Pourquoi dire IA si on ne parle que des réseaux de neurones ?
Posté par kantien . Évalué à 2 (+0/-0).
J'ai l'impression de parler d'autre chose, mais c'est peut être moi qui m'explique mal.
La méta-machine nourrit par tous les coups jouables du jeu est capable de partir en couille (boucler sans fin sur certaines de ses entrées). Alpahe go et compagnie ne sont rien d'autres que des optimisations de ces machines (elles ne font pas du brut force). Néanmoins jouer au jeu mathématique est-t-il semblable à jouer aux échecs, au go ou othello ?
Sapere aude ! Aie le courage de te servir de ton propre entendement. Voilà la devise des Lumières.
[^] # Re: Pourquoi dire IA si on ne parle que des réseaux de neurones ?
Posté par thoasm . Évalué à 3 (+0/-0).
Non, le jeu est infini évidemment. Ça n'empêche pas d'essayer, en toute rationalité limitée. On ne fait pas mieux en tant qu'être humains de ce point de vue :)
Mais alphago et compagnie n'ont pas non plus résolu le jeu d'échec au sens de la théorie des jeux non plus, bien que ce soient des jeux finis donc en principe algorithmiquement possible (certain, avec un temps de calcul prohibitif évidemment), ça n'en reste pas moins des résultats intéressants.
[^] # Re: Pourquoi dire IA si on ne parle que des réseaux de neurones ?
Posté par thoasm . Évalué à 3 (+0/-0).
Et puis il y a des enjeux plus prosaïque que de prouver des problèmes ouverts, pour ce qui est de l'activite de formalisation des maths dans des assistants de preuve, ça reste embryonnaire même si il y a eu des résultats significatifs dernièrement. On en est pas encore au point ou la revue par les pairs de travaux de mathématicien a changé de nature parce que les résultats arrivent avec des preuves vérifiables automatiquement :) il y a encore des enjeux d'aisance et de praticité à utiliser ces outils pour les mathématiciens avant de réaliser ce but ultime du domaine.
[^] # Re: Pourquoi dire IA si on ne parle que des réseaux de neurones ?
Posté par kantien . Évalué à 2 (+0/-0).
Que le jeu soit infini je m'en fous, c'est pas là le problème. Ce que je veux savoir c'est si la méta-machine part en sucette. Et donc est-ce que jouer aux maths c'est la même chose que jouer aux échecs, au Go ou Othello ?
Sapere aude ! Aie le courage de te servir de ton propre entendement. Voilà la devise des Lumières.
[^] # Re: Pourquoi dire IA si on ne parle que des réseaux de neurones ?
Posté par thoasm . Évalué à 3 (+0/-0).
Il peut arriver un truc pire que comme pour un mathématicien ? Genre il tente de montrer un théorème et il n'aboutit pas pendant le temps qu'il y consacre ?
L'espace de recherche est infini, il peut exister des énoncés indécidables dans le système logique choisi, des preuves arbitrairement longues qu'on a aucune chance de trouver dans le temps imparti. Ça veut dire quoi "partir en sucette" ?
[^] # Re: Pourquoi dire IA si on ne parle que des réseaux de neurones ?
Posté par kantien . Évalué à 2 (+0/-0).
C'est la machine qui part en sucette (elle boucle sans fin, le programme ne s'arrête jamais), pas les êtres humains. Si je cherche un exemple d'énoncé indécidable, le postulat d'Euclide est le premier qui me vient à l'ésprit. Et pourtant il a alimenté une grosse partie de la géométrie du XIXème siècle, et quand un physicien s'y intéresse il donne une réponse plus que satisfaisante au périhélie de Mercure. ;-)
Sapere aude ! Aie le courage de te servir de ton propre entendement. Voilà la devise des Lumières.
[^] # Re: Pourquoi dire IA si on ne parle que des réseaux de neurones ?
Posté par kantien . Évalué à 2 (+0/-0).
Qu'il me soit permis d'ajouter une remarque sur la démarche qui consiste à comparer le jeu mathématique et celui des échecs, des dames, du Go ou de Othello.
Sapere aude ! Aie le courage de te servir de ton propre entendement. Voilà la devise des Lumières.
[^] # Re: Pourquoi dire IA si on ne parle que des réseaux de neurones ?
Posté par Moonz . Évalué à 1 (+0/-1).
Il n’y a pas d’opposition entre "calculer des probabilités" et "former des concepts", comme je l’ai déjà expliqué ici.
# IA libre = cas d'usage libre
Posté par surf33 . Évalué à 2 (+2/-0). Dernière modification le 27 février 2025 à 09:18.
Tout d'abord merci pour cet excellent article. Vu de ma fenêtre (j'utilise les logiciels libres pour des métiers), une autre façon de voir se rapproche de IA = Code + données mais d'aller un cran plus loin. Un cas d'usage serait par exemple de dire : j'ai une IA qui est capable d'aider à détecter les fuites d'eau d'un réseau d'eau à l'échelle d'une ville. et on rendrait libre ce cas d'usage sur l'ensemble de la chaine (code + modèles d'entrainement (anciennes données) + comment acquérir des données temps réel + documentation). La notion "cas d'usage" parle à plus de gens (et notamment les décideurs qui voient tout de suite l'intérêt du "libre dans ce cas : autonomie, échange d'expérience (on sait ce que l'on fait) et évidemment les coûts.
# GOAT !
Posté par Paul POULAIN (site web personnel, Mastodon) . Évalué à 10 (+9/-0).
Pour moi, cet article est le meilleur que j'aie jamais lu sur linuxfr. Et je suis là depuis très longtemps !
Bravo et merci, c'était limpide et très instructif !
# Kof kof
Posté par arnaudus . Évalué à 8 (+5/-0). Dernière modification le 27 février 2025 à 14:46.
Ouhlala, quand même.
1) Le libre, c'est les 4 libertés. Donc BSD et WTFPL, c'est libre, et ça n'a jamais été ambigü, même pour la FSF (voir https://www.gnu.org/licenses/bsd.fr.html).
2) Les licences libres non-copyleft n'ont de sens que quand le code source est distribué. Ces licence libres couvrent des logiciels libres, la différence avec les licences copyleft est que le programme modifié n'a pas impérativement à être redistribué sous la même licence (donc BSD: obligation de distribuer le code source, mais pas de le redistribuer).
3) Un logiciel distribué sous licence libre est libre, il n'existe pas d'autre critère. Les concours de "pureté" se sont toujours mal terminés.
Indépendamment de ça, je pense que tu t'es trompé sur l'interprétation de la définition de l'IA OpenSource par l'OSI. Contrairement à ce que tu sembles suggérer, les données d'entrainement ne font pas partie de ce qui doit être fourni (c'est très clair dans la FAQ https://hackmd.io/@opensourceinitiative/osaid-faq). Bon, je trouve que la définition de l'OSI n'est pas terrible de toutes manières, mais si je comprends bien l'idée, c'est que tu dois fournir la recette, et notamment la description des données d'entrainement (du genre, j'imagine, le type de données et les métadonnées associées), en plus des poids et du logiciel (open source).
# Merci !
Posté par Stéphane Klein (site web personnel) . Évalué à 2 (+1/-0).
Merci beaucoup pour cet article. Je trouve que c'est une très bonne vulgarisation 👍️.
# Qu'en dit Donald Knuth ?
Posté par Thomas (site web personnel) . Évalué à 4 (+3/-0).
C'est vieux.
Vous l'avez probablement déjà lu 17x, dont 18x ici.
Voici un texte écrit par l'auteur de TAOCP sur ChatGPT version 2023
Le texte entier est ici
Conclusion du pape.
Je vous laisse traduire.
J'ai lu un avis de Linus du meme ordre, moins littéraire et plus direct : "90% de l'IA c'est du marketing, attendons 5 ans histoire de voir ce que ca donne".
[^] # Re: Qu'en dit Donald Knuth ?
Posté par abriotde (site web personnel, Mastodon) . Évalué à 1 (+1/-1).
Reste que 10% c'est du concret… et regarde ce que l’on fait avec. C'est très puissant.
Sous licence Creative common. Lisez, copiez, modifiez faites en ce que vous voulez.
[^] # Re: Qu'en dit Donald Knuth ?
Posté par Thomas (site web personnel) . Évalué à 1 (+0/-0). Dernière modification le 02 mars 2025 à 22:56.
Ça marche pas mal, oui.
Mais pas tout le temps … et c'est pas forcément stable.
[^] # Re: Qu'en dit Donald Knuth ?
Posté par abriotde (site web personnel, Mastodon) . Évalué à -2 (+0/-3).
Juste plus stable que l'humain.
Sous licence Creative common. Lisez, copiez, modifiez faites en ce que vous voulez.
[^] # Re: Qu'en dit Donald Knuth ?
Posté par Thomas (site web personnel) . Évalué à 1 (+0/-0).
Beaucoup de choses sont plus stables qu'un humain.
Une chaise à trois pieds, par exemple.
Par contre, une sortie de LLM n'est pas stable. La sortie d'un réseau de neurones n'est pas stable, un pixel suffit à changer une classification. Les exemples pullulent. En informatique, on aime bien la stabilité et la reproductibilité, non ?
[^] # Re: Qu'en dit Donald Knuth ?
Posté par arnaudus . Évalué à 3 (+0/-0).
Ce n'est pas consubstantiel au concept de classification exclusive? Si je te donne une image à classer en "chat" vs "non-chat", il y a forcément un moment où changer un seul pixel va te faire changer de catégorie.
Il faudrait faire une dissertation sur le concept de "bien aimer", mais j'ai l'impression qu'une gigantesque proportion d'algorithmes ne sont pas "reproductibles" selon tes critères. En fait, toutes les heuristiques basées sur des générateurs de nombres aléatoires sont dans cette situation (random forest, MCMC, simulated annealing, k-means…), et une foultitude d'heuristiques déterministes dépendent de l'ordre (arbitraire) des données. Donc en pratique, j'ai l'impression qu'au contraire, qu'on aime ou qu'on aime pas, les algorithmes qu'on utilise au quotidien ne sont ni plus stables, ni plus reproductibles que les sorties d'un LLM.
Au fond, on demande des choses paradoxales aux LLMs. On leur demande de reproduire (ou simuler) l'intelligence humaine, et d'être reproductibles. C'est juste impossible, un humain n'est pas reproductible du tout. Si l'argument, c'est de dire que de confier par exemple le standard téléphonique des impôts à un LLM c'est n'importe quoi parce que si tu poses plusieurs fois la même question tu n'auras pas exactement la même réponse, c'est que tu n'as jamais appelé un service où tu avais des humains au téléphone!
[^] # Re: Qu'en dit Donald Knuth ?
Posté par Thomas (site web personnel) . Évalué à 1 (+0/-0).
Oui.
Mais ce n'est pas le sujet.
Il y a foule d'attaques où changer des pixels de manière imperceptible à l'oeil (=le chat reste un chat) fait changer la catégorie predite. La classification par NN marche super bien mais reste totalement incompréhensible.
On fixe une graine (seed), on fixe l'ordre des données et le programme devient deterministe C'est un pré-requis nécessaire quand on veut comparer les perfs d'un algorithme d'apprentissage. Sinon on est en aveugle.
Je ne demande rien aux LLM. Ces programmes sont impressionnants, parfois utiles et souvent rigolos. Je ne vois pas le lien avec l'intelligence humaine, je ne suis pas compétent sur le sujet.
[^] # Re: Qu'en dit Donald Knuth ?
Posté par arnaudus . Évalué à 4 (+1/-0).
Est-ce que la structure d'un CPU moderne est "compréhensible"? Est-ce que la stratégie de Stockfish quand il jour à 3600 Elo est "compréhensible"? Je ne vois pas où tu veux en venir.
Bah les NN ont exactement le même type de reproductibilité, je ne comprends pas où tu veux en venir. Il s'agir de machines de Turing, tu entres la même chose dans les mêmes conditions initiales et tu obtiens le même résultat.
Je ne comprends pas cette phrase. Si tu entends par "perfs" la performance algorithmique (cycles CPU, RAM, etc), alors peut-être, mais j'ai l'impression que ça n'est pas du tout ce dont on parle là. Pour les heuristiques qui se basent sur une procédure d'échantillonnage, les perfs ne se mesurent pas en fixant la graine, mais au contraire en moyennant les perfs sur un gros échantillonnage de graines aléatoires, pour déterminer la performance attendue de l'algo quand il est utilisé.
Je vois bien que tu essayes de dire quelque chose, mais je ne comprends pas quoi. Pour toi, quelle est la différence fondamentale entre un algorithme de classification "traditionnel" et un algorithme de classification par ML, qui rendrait la classification ML "non souhaitable"?
[^] # Re: Qu'en dit Donald Knuth ?
Posté par Thomas (site web personnel) . Évalué à 4 (+3/-0).
Je ne suis pas prof, mec.
Et je ne cherche pas à convaincre qui que ce soit.
Je parle de mon expérience, ca fait 10 ans que je bosse avec ces algos.
Possible que je me trompe.
Je travaille suffisamment avec les algorithmes de ML pour savoir que c'est trop opaque et très sensibles aux données d'entrées. Quand un programme fournit une prédiction ou un résultat, que l'utilisateur ou le client me demande "pourquoi telle prédiction" ou "pourquoi tel résultat" et que tu lui réponds "aucune idée, ca doit être dans les données" … bah j'ai l'air d'un con. Idem sur les sorties des LLM, bien entendu. Tout ca, c'est marrant, on rigole bien, ca fait des conférences rigolotes et des interventions devant des gens sérieux, mais au final, je trouve que le ML est à double tranchant - et hors de question que j'en fasse l'alpha et l'omega de l'informatique.
Envoyer un commentaire
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.