HAL : un ordinateur intelligent

Publié le 29 décembre 2010 par Serdj

HAL : comment construire un ordinateur intelligent

Je vous propose ici de chercher comment on pourrait réaliser un ordinateur vraiment intelligent, c'est à dire au moins aussi intelligent qu'un être humain !

Plutôt que de ce poser sans cesse la question "cela est-il possible ?" Mon approche sera ici de "tenter le coup" et de voir où se trouveront les difficultés et comment les surmonter.

L'idée de HAL est donc de réaliser rien de moins qu'un système intelligent. Initialement d'ailleurs je l'avais appelé TAI pour "True artificial Intelligence". Mais HAL, depuis Clarke et Kubrick, tout le monde connaît.

Les hypothèses

C'est une litote de dire que concevoir un système vraiment intelligent n'est pas une sinécure ! C'est certainement la tâche la plus difficile que l'informatique puisse s'assigner. Heureusement on ne part pas de rien, et beaucoup de choses ont déjà été faites depuis cinquante ans. Mon travail consiste seulement ici à grimper sur les épaules de quelques géants qui ont bien débroussaillé le terrain :
  • Alan Turing, le pionnier !
  • Piaget, qui a montré comment les très jeunes enfants accédaient à des niveaux de compétences successifs et très hiérarchisés,
  • Douglas Hosftadter, qui a étudié l'autoréférence et le problème épineux de la conscience "vue par un informaticien", et qui a créé l'architecture logicielle Farg destinée à l'étude des "glissements de point de vue" qui se rencontrent dans le raisonnement et dans les modalités sensorielles,
  • Noam Chomsky, a qui montré comment les langages possèdent des structures syntaxiques et sémantiques communes,
  • Marvin Minsky, qui a proposé une architecture de l'esprit, la "société de l'esprit", que les psychologue devraient tous connaître. Hélas c'est loin d'être le cas.
  • Douglas Lenat, inventeur des systèmes AM et Eurisko,  et de la base de connaissance CYC entre autres,
  • Arthur C Clarke, auteur de 2001, l'odyssée de l'espace et inventeur du nom HAL (non il n'a pas été forgé à partir des successeurs des trois lettres IBM !)
  • Isaac Asimov, père des trois lois de la robotique (dont on peut se demander comment les implémenter et s'il n'existe pas également des "lois de l'humanotique" similaires, mais valables pour les humains...)
  • Eliezer Yudkowsky, qui a le premier montré l'importance de réaliser non pas "n'importe quelle IA", mais une IA amicale (envers les humains). Yudkowsky a aussi, le premier,  explicité en détail l'architecture d'une IA en cinq couches ou strates superposées : 
    • percepts et modalités sensorielles, 
    • concepts, 
    • pensées, 
    • délibération, 
    • conscience 
    • (et implicitement métamoralité, qui est la sixième couche) 
  • Et bien sur tous les chercheurs en IA qui se sont succédés depuis Minsky. On peut citer parmi eux Ben Goerzel, qui a été bien près de créer la première IA véritable (hélas son projet s'est arrêté faute de financement),  Harry Foundalis, auteur de Phaeaco ( pour moi le modèle idéal de la conception d'une modalité sensorielle),  Alain Cardon, Jean-Louis Laurière, Jacques Pitrat, Elaine Rich, Alain Ferber, Scott Bolland (auteur du système "Fluid Analogy Engine" (FAE), une des meilleures implémentations des idées de Hofstadter)....

Je les ai tous lus !

L'hypothèse de départ d'un tel travail, c'est qu'il est possible. En gros, cela revient à adhérer à la version forte de la thèse de Church-Turing : tout ce qui est faisable par l'esprit humain est faisable par une machine. Je ne chercherai pas à argumenter cette thèse. Dans ce site, on trouve d'ailleurs des pages qui vont à l'encontre de ce principe ! Ici, on l'accepte simplement

L'autre hypothèse, c'est le refus des thèses "connexionnistes". Je pense qu'un système intelligent n'a pas besoin de réseaux de neurones formels, sauf éventuellement pour certains sous systèmes tels que la reconnaissance des formes visuelles. En d'autres termes, je souscrit à la thèse de Douglas Hosftadter, qui dit que pour simuler un cerveau il n'est pas nécessaire de reconstituer exactement son architecture (neurones, etc.) : les entités les plus élémentaires peuvent être des "systèmes de symboles" très complexes, et non des simples neurones.

Évidemment, la base de tout, c'est le travail immense de Minsky, qui a débroussaillé le terrain et montré que l'esprit est une collection d'agents qui coopèrent et luttent entre eux. Les agents "a la Minsky" sont de niveau très divers, et en général déjà très évolués : citons "jouer", "jouer avec des cubes", "comparer", "répéter/refaire", "imiter", etc. Il y a aussi des agents de plus bas niveaux, comme les "lignes K", qui permettent d'associer entre eux des souvenirs, des sensations, etc.  Le fait que nous croyons posséder un esprit unique n'est qu'une illusion. Nous avons des centaines d'esprit, des centaines d'agents qui pourront "prendre le contrôle" tour à tour. Il sont surveillés par d'autres agents, qui gèrent les priorités...

Mon idée, c'est que les agents à la Minsky sont nécessaires et s'appuient eux même sur des agents de plus bas niveaux. Plusieurs solutions sont possibles pour implémenter ces agents de bas niveaux : on peut citer les architectures Farg avec leur "bouillon de culture" de micro programmes interragissant entre eux, ou encore le système des éco-agents. Ce sont de petits programmes inventés par Ferber pour résoudre des problèmes combinatoires.

Enfin il faut décerner une mention spéciale à Lénat, qui pense qu'il suffit de concevoir un système expert géant avec une base de donnée de millions de faits "de sens commun" pour que l'intelligence "auto-émerge" à partir d'un certain niveau de complexité. Lenat à montré qu'un système qui apprendrait tout seul, à l'aide d'un tuteur ou en explorant des pages web, en lisant des livres etc, ne peut le faire que s'il dispose déjà d'une énorme base de connaissance qui n'est nullement implicite mais doit être construite pas à pas, dans un travail de fourmi.

Dans un système intelligent, il y a ainsi des agents de très haut niveau qui fixent les buts globaux du système. C'est ici qu'on peut implémenter les lois d'Asimov. Comme elles sont au sommet du système elles sont inviolables. Il y a d'autres agents de très haut niveau, les désirs ou pulsions : se reproduire, comprendre, s'insérer dans le système social, aimer, vivre, être utile, avoir du plaisir ... Ces agents agissent en contrôlant des agents de plus bas niveau : "comprendre" peut utiliser "synthétiser", "classifier", "analogie", etc. Autre exemple, "obéir à un être humain" utilisera "reconnaître un humain", "comprendre  un ordre", "exécuter un ordre" etc.

La conscience est crée (ou simulée si tu préfères, ami lecteur), par un agent de haut niveau, le  "moi", qui passe son temps à se parler à lui même en utilisant différents langages ou niveaux : graphiques, textuel, sonores.... etc. Cet agent cherche à différencier "ce qui est moi de ce qui n'est pas moi" en utilisant le paradigme "générer et tester", en créant des idées (des phrases textuelles ou des scènes visuelles etc.) Il cherchera ensuite à discerner si cela est utile ou pas. Ce paradigme générer et tester est d'ailleurs utilisé à différents niveaux dans HAL : par exemple pour la reconnaissance des formes. Un moyen efficace de reconnaître des formes et des analogies (ce n'est pas le seul bien sûr) est de créer de nouvelles formes de toutes pièces et de les comparer à la forme à reconnaître. Le degré d'analogie obtenu montre si l'on est loin ou proche du but. C'est un moyen effectivement utilisé par l'esprit humain : dans le système visuel, il y a des générateurs de formes et des comparateurs qui testent si ce qu'a enregistré la rétine est proche ou lointain de la forme générée. Lorsque vous fermez les yeux, lorsque vous rêvez, vous activez ces générateurs...

Il faut mentionner également un sous-système extrêmement important : celui qui permet de repérer les boucles et des cycles. Sans lui, la pensée suivrait toujours le même chemin. Ce système évite à l'esprit de se fourvoyer dans une ornière et le force à sans cesse changer de "point de vue". Dans HAL, les détecteurs de boucles sont présents à tous les niveaux, dans presque tous les sous-systèmes. Ils peuvent être extrêmement complexes. Ce sous-système utilise des censeurs, qui sont des agents qui interdisent à d'autres certaines actions. Il utilise presque tous les autres agents, en fait. Et il a besoin d'entraînement. Un tel entraînement est fourni par des agents qui font exactement le contraire des censeurs, et qui cherchent à répéter des actions ou idées passées. Les jeunes enfants, parce que leur système de censeurs n'est pas encore au point, passent souvent leur temps à répéter les mêmes actions, les mêmes mots, etc. La pulsion "jouer" est également une forme d'entraînement de ce système, de même que les rêves dans notre sommeil, même s'ils servent en premier lieu à réorganiser la mémoire à long terme.

Le problème de la mémoire est également fondamental : dans un système intelligent , l'adressage se fait "par le contenu", et non par l'adresse. A partir d'un fragment de souvenir, vous reconstituez le souvenir entier. Cela peut prendre du temps : il existe donc des agents de recherche dans la mémoire, qui peuvent rester actifs pendant des jours entiers, et qui ont pour mission de rechercher un souvenir qui pourrait être utile (à un autre agent). Notons que si les architectures connexionnistes sont évidemment un modèle d'une telle mémoire associative, ils ne sont pas le seul, et certainement pas le plus efficace. Un système d'indexation, tel celui de Google, est aussi une "mémoire à adressage par le contenu" ! 

Le but à atteindre

Créer une IA est une tâche immense. ... ou pas, cela dépend de ce que l'on entend par "une IA".  Ce que je propose de créer, c'est un germe d'IA amicale, et non une IA "complète. Qu'est ce qu'un "germe d'IA amicale" ? Il est bien difficile de résumer ici en quelques lignes ce que j'ai détaillé sur 600 pages dans mon livre ! Disons simplement que c'est un système informatique possédant la complexité minimale qui est nécessaire pour que le système puisse graduellement évoluer par lui-même vers le but final "être une IA amicale".
Et qu'est ce qu'une IA amicale ? C'est un système possédant toutes les caractéristiques de l'esprit humain que nous associons naturellement à l'idée d'être 'intelligent", plus le désir d'être et de rester amical envers les humains.  Une IA germe amicale est ainsi un système auto-modifiable, capable d'évoluer sous la supervision de programmeurs et d'instructeurs humains, mais qui évoluera de telle façon que jamais il ne deviendra hostile, ni même n'en aura le désir. Tout être humain que nous regardons comme foncièrement altruiste, comme Gandhi, répond à cette définition : Gandhi pouvait apprendre, modifier son comportement et même sa propre éthique, mais Gandhi n'aurais jamais accepté d'adopter une moralité hostile envers les humains. Vous voyez ce que je veux dire ?
Une IA germe est un système très complexe, mais néanmoins considérablement plus simple qu'une IA achevée, "mature".  Il n'est pas nécessaire qu'elle possède une sens de la vision aussi développé que celui des humains par exemple.  Il suffit qu'elle ait la capacité de développer, plus tard, les compétences et systèmes qui lui manquent. A la différence de l'esprit humain,  qui repose sur un substrat (le cerveau) imposé par la génétique, un esprit artificiel peut apprendre non seulement en engrangeant dans sa mémoire de nouveaux concepts et idées, mais  aussi en modifiant (de manière raisonnée) sa propre structure logicielle et même matérielle ! En ce sens une IA est une "matière" infiniment plus souple que l'esprit humain, capable d'évoluer bien plus vite et bien plus efficacement, dès lors qu'une certaine "masse critique de pensée et de connaissances" aura été atteinte.  Cette "masse critique", c'est précisément ce que j'appelle un "germe d'IA".
Si nous créons une IA, même en germe, qui ne possède pas la qualité d'être amicale, nous créons un être très dangereux. N'en déplaise à Arnold Schwartzenegger,  et n'en déplaise aux scénaristes de Matrix, les humains n'ont aucune chance face à une IA hostile. Absolument aucune. Le récent appel d'offre (2008) du DOD américain visant à la création de robots de combat conscients (je n'invente rien) ne me rassure guère.

L'architecture de HAL

Là aussi, il est difficile de résumer en quelques lignes ce qui prend des centaines de pages dans mon livre. Disons que l'architecture de HAL (mon IA germe Amicale) repose sur un grand nombre d'idées que j'ai empruntées aux penseurs cités plus haut, plus quelques idées "à moi".
L'architecture matérielle du système n'est que de peu d'importance. Contrairement à ceux qui pensent, comme Alain Cardon, qu'une IA doit avoir un "corps" robot, je crois que l'environnement d'une IA germe peut parfaitement être totalement virtuel, du moins au début. Seule la puissance de calcul pose alors problème, mais les techniques de calcul distribué sur Internet sont largement connues et il n'y a pas de problème scientifique dans l'architecture matérielle d'une IA, juste un problème technique (et de complexité raisonnable).
C'est d'ailleurs une hypothèse forte de mon travail : celle que de nouvelles avancées scientifiques ne sont nullement nécessaires pour créer une IA germe amicale : nous disposons déjà de toute la science dont nous avons besoin.  Il n'y a en fait que des problèmes techniques. Je pense d'ailleurs que ces problèmes peuvent être résolus par une équipe d'une centaine d'ingénieurs en moins de cinq ans.  Ça vous surprend ?  Je vous comprend, mais là encore lisez mon livre et vous comprendrez mon point de vue, je n'ai pas la place ici pour me justifier.
La question du langage de programmation est également assez secondaire.  Il suffit juste d'avoir un langage universel, efficace et permettant l'auto-modification. Tous les langages classiques comme C, C++, Lisp, Java, OCAML, Scheme, et même javascript , possèdent ces qualités à des degrés divers. De toute manière, l'IA se reprogrammera elle-même à un moment ou un autre, donc je dirai que le langage doit surtout être compréhensible pour les humains ! C'est pourquoi j'ai commencé à travailler avec java, qui se trouve être mon langage préféré. Et s'il faut changer en cours de route, ou travailler simultanément avec plusieurs langages (par exemples certains modules pourraient être écrits en Prolog, qui se trouve être mon second langage préféré, quel hasard), ce n'est pas un réel problème.
Par contre la question de l'architecture logicielle du système est une question extrêmement difficile. Il va de soi que le système sera immense, avec des millions de ligne de code.  Cela représente un nombre gigantesque de classes, packages, modules, processus, etc. On est donc dans le domaine du génie logiciel dans toute sa complexité. Il se trouve que je maîtrise un peu ce sujet, ayant participé activement à la création de plusieurs grand systèmes dans le domaine de la gestion du trafic aérien. Je sais donc très bien le genre de difficulté qui m'attendent :)
Dans ce genre de décision, il faut se laisser guider par son intuition et son expérience, et aussi par  la ligne directrice : ne jamais perdre le but final de vue ! Et ce but, c'est de reproduire l'architecture de l'esprit, telle que l'ont décrite Minsky et Yudkowsky (en des termes très différents, mais ils se rejoignent sur le fond) :
Puisque l'esprit humain se compose de cinq couches (voir ci-dessus), nous bâtirons ces cinq couches une par une, en commençant par celle des modalités sensorielles, et pour cette dernière nous utiliseront l'architecture Farg de Hofstadter, telle que modifiée par Foundalis pour Phaeco  et surtout Bolland pour FAE.
Pour la communication entre modules, nous utiliserons une structure de donnée extrêmement versatile, que j'ai nommé message. Un message comporte des champs fixes (qui donnent le type, catégorie, etc, ainsi que le sens du message) et des parties dynamiques qui pointent vers des percepts, concepts, pensées, idées, procédures, et aussi vers d'autres messages.
Bon voila, je m'arrête ici car sinon j'en ai jusqu'à l'an prochain à décrire le système ! Vous pourrez cependant trouver plus de détails sur cette architecture ici

Où en-suis-je dans la réalisation de HAL ?

Pas assez loin... Pour l'instant j'ai défini l'architecture logicielle d'une IA et j'ai commencé à coder des bouts de code.
En fait comme je sais bien que je n'y arriverai pas tout seul, je lance un appel pour la création d'une IA, et plus généralement pour la création d'un institut européen pour l'intelligence artificielle. Si vous avez du temps et/ou de l'argent à consacrer à ce projet, contactez moi !

Dernière minute... Mars 2008

J'ai résumé tous les principes de HAL (rebaptisé pour le coup ELIAS) dans mon livre : L'esprit, L'IA et la Singularité, qui vous dira comment non seulement comment construire une IA, mais comment fonctionne l'esprit humain et pourquoi nous devons nous attendre à une singularité, un bouleversement total de notre civilisation, d'ici vingt ans, peut-être seulement dix !

Il est temps de se réveiller ! Nous savons maintenant comment marche le cerveau, et comment créer une intelligence artificielle (IA) véritable, consciente et créative. C’est tout récent. La plupart des chercheurs en IA ne sont même pas au courant. Il est vrai que pour se rendre compte de ce fait, il faut faire la synthèse de travaux très pointus dans de nombreuses disciplines, ce qui devient rare en nos temps de spécialisation à outrance.

Lorsque j'ai commencé à écrire L’esprit, l’IA et la Singularité, je pensais simplement écrire un livre de vulgarisation qui décrirait à un large public le fonctionnement de l’esprit humain, cette merveilleuse « machine à penser », ainsi qu’une synthèse claire et accessible à tous destravaux de recherche en IA. Je me suis alors rendu compte, en compilant une masse énorme de données et en y ajoutant mes propres réflexions, que la route vers l’IA vraie pouvait être tracée.  Je suis désormais convaincu (autant l'un que l'autre ;-) que L’IA va arriver d’ici vingt ans, peut être dix.

Ce sera un énorme choc, car la route qui mène à l’IA mène inéluctablement à l’arrivée des nanotechnologies, cette ingénierie à l’échelle des atomes, et les deux combinées produiront un bouleversement complet de notre civilisation, et même de notre façon de nous concevoir en tant qu’humains. Ce bouleversement sera comparable à l’invention du langage, ou de l’outil, par les premiers hominidés. C’est ce qu’on appelle la Singularité.

L’esprit, l’IA et la Singularité donne les clefs de ce bouleversement à venir. Très clair, pédagogique et non sans humour, c’est avant tout un livre qui donne à réfléchir

Plus d'infos sur ce livre (pages locales)

Partagez / votez pour cette page :