Le langage des machines

Publié le par Philippe Mangion

Le langage des machines

( Article paru dans la revue Interfaces Psy n°4 )

homme(toi). ia(moi).

Traduction en Prolog de : « tu es un homme, je suis une Intelligence Artificielle. »

Jusqu’à la fin des années quatre-vingt, nous pouvions encore considérer les ordinateurs uniquement comme des outils de bureau perfectionnés. A l’instar des robots d’usines, ils exécutaient, rapidement et sans fatigue, des tâches demandant plus de mémoire et de précision que d’intelligence : classer, calculer, mettre en forme des données dont la structure est simple (comme pour un agenda ou un répertoire d’adresses), ou tout au moins modélisable par les experts d’un domaine.

Ce genre d’applications est encore largement majoritaire, car très efficace pour seconder nos maigres capacités en rapidité de calcul et volume de mémoire. Dans ce cadre, nous souhaitons alors que les ordinateurs nous obéissent et non qu’ils sachent nous répondre ni nous instruire. Le seul langage nécessaire est un langage de commandes ayant pour finalité la réalisation d’une succession d’instructions du type : aller à la ligne, faire la somme, mettre en gras, etc. Nous verrons qu’il en est de même pour les informaticiens qui, devant programmer des traitements un peu plus sophistiqués ou traduire en langage machine ces instructions, n’en utilisent pas moins des langages dits impératifs, ne laissant aucune place à des résultats imprévus, hormis les bugs, naturellement. À tel point que les algorithmes peuvent se schématiser en organigrammes.

Depuis les années quatre-vingt-dix et la montée en puissance d’Internet, la problématique a évolué. La connexion au niveau mondial des serveurs a donné un accès public à une connaissance non finie et non structurée. La réaction épidermique des informaticiens « à l’ancienne », déstabilisés, fut une tentative désespérée d’imposer des règles de structuration. Mais le foisonnement était déjà trop rapide, et l’ampleur de la tâche de l’ordre de celle qui eût consisté à transformer la forêt amazonienne en un jardin à la française. Les 60 000 ordinateurs reliés en 1989 dans les universités américaines étaient déjà 7 millions en 1995, après les débuts de l’utilisation domestique et commerciale d’Internet.

Si le volume des banques de données accessibles a ainsi été démultiplié, le traitement de l’information et les langages qui le supportent ont eu du mal à suivre. Ainsi, compte tenu de la déstructuration de cette connaissance, nous aurions même pu assister à une dégradation des performances globales s’il n’y avait pas eu des programmes plus ingénieux que fondamentalement innovants, comme Google, pour sauver la mise. Google s’appuie sur un système simple d’indexation des pages (comme un répertoire) dont l’ingéniosité réside dans une gestion très performante de la mémoire, qui le rend extrêmement rapide. L’ordre des textes proposés, qui représente le critère de pertinence de la réponse est basé entre autres sur la « popularité » des pages. Plus une page est lue, plus elle est supposée satisfaire l’internaute. Ce qui tient lieu de traitement sémantique est donc très faible, mais il faut avouer que, avec un peu de pratique, le résultat est assez spectaculaire.

Si le traitement de l’information est pour l’instant à la traîne, c’est que l’on touche là à des questions très délicates, voire polémiques, qui dépassent largement le cadre de l’informatique : la détermination du sens dans le monde qui nous entoure, le langage qui permet de le formaliser, l’abstraire et de manipuler. Ce n’est naturellement pas l’informatique qui va résoudre ces problèmes posés depuis l’Antiquité, mais elle y introduit une sorte d’obligation de résultat qui stimule l’interdisciplinarité et pousse à tester des modèles, sortes de machines linguistiques qui ne manquent pas de nourrir les argumentaires des autres disciplines. Les informaticiens experts en intelligence artificielle se sont ainsi attachés, dès les débuts de l’informatique, à inventer des langages générateurs et supports de sens, de la machine de Turing jusqu’aux langages déclaratifs comme Prolog. Mais la « mayonnaise » qui liera efficacement les langages de formalisation et la connaissance contenue sur Internet n’est pas encore prête. Ce qui ne nous empêche pas d’anticiper et de réfléchir dès maintenant sur quel genre « d’esprit » ces recherches déboucheront et quel sera notre rapport à cette « intelligence », sorte de déesse IA. « Quelle chimère est-ce donc que l’homme ? » se demandait Pascal. IA sera peut-être la réponse.

En attendant (longtemps ?), du point de vue de l’utilisateur non expert, l’informatique déborde sur le pré carré de l’homme : l’intelligence et son support, le langage. Ainsi, avec une certaine jubilation vengeresse, il rigole des contresens pourtant évidents dans lesquels se font piéger les programmes dits « intelligents », comme les traducteurs automatiques. Comment une machine, capable de mémoriser une liste de noms beaucoup plus rapidement qu’il ne faut pour les dire ou résoudre des équations à faire peur, peut-elle confondre les moutons de poussière avec les moutons des prés ?

Le but de cet article n’est pas de décrire exhaustivement les langages de programmation ou d’interrogation de bases de données, du langage machine au Prolog en passant par le Lisp et l’assembleur. En conséquence, nous allons mettre en avant quelques familles significatives dans le but d’analyser leur intérêt sémantique, l’apport de sens pouvant être considéré comme caractéristique de l’intelligence du langage.

Bases de données : le sens est prédéterminé par la structure

Le modèle dominant pour l’organisation structurée des connaissances est, depuis les années soixante-dix, la base de données relationnelles. Il est basé sur les principes de l’algèbre relationnelle, inventée en 1970 par Edgar Frank Codd, directeur de recherche du centre IBM à San José, Californie, à partir de la théorie des ensembles. D’un point de vue linguistique, on peut dire que le sens est donné par la structure. Ainsi, lorsqu’on construit une base de données, les caractéristiques du domaine concerné doivent être connues et modélisées par des analystes. De même, pour que le système soit performant, la structure doit être stabilisée et validée avant de mémoriser la première donnée. Par exemple, la base de données d’un centre de soins médicaux pourrait contenir, parmi d’autres, les deux tables suivantes :

PATIENTS (N°SS ; Nom ; Prénom ; Date de naissance ; Adresse)

CONSULTATIONS (DateRDV ; HeureRDV ; N°SS ; Nom médecin)

Cette structuration forte permet d’utiliser un langage d’interrogation dont la grammaire est assez simple. Le plus utilisé est le SQL (Structured Query Language), dont un exemple générique est :

SELECT {champs} FROM {tables} WHERE {conditions};

Ainsi, la question « Quels sont les patients ayant rendez-vous le 13 septembre 04 ?» se traduirait par :

SELECT nom, prénom

FROM patients, consultations

WHERE consultation.date=’13/09/04’

and patients.N°SS=consultations.N°SS;

Le langage SQL est assez compréhensible mais sa fonction est limitée au pilotage et à l’interrogation d’une base de données. Il ne permet pas d’élaborer un algorithme de résolution de problèmes ou de bâtir un raisonnement par déductions logiques.

Les langages impératifs… pour commander

Un programme écrit dans un langage impératif, qu’il soit procédural comme le C et le Pascal ou orienté objets comme Java et C++, est comparable à une série d'instructions qui indiquent à l’ordinateur comment il doit procéder pour résoudre un problème. Quel que soit le niveau d'abstraction induit, c'est toujours en termes d'opérations à effectuer que le programmeur raisonne.

Dans les organigrammes standardisés souvent nécessaires à la compréhension de tels algorithmes, des rectangles symbolisent les ordres à exécuter, des flèches indiquent le sens de parcours des instructions, et les conditions à vérifier sont signifiées par des losanges.

Visuellement, cela ressemble au parcours d’une souris dans un labyrinthe. Et, en effet, le langage procédural n’est pas sans rappeler celui que l’on tient durant le dressage d’un animal. Étant cependant moins dociles qu’un programme, les animaux sont aidés dans leur compréhension des aiguillages conditionnels par une récompense dans le meilleur des cas, un coup ou une décharge électrique sinon. Pavlov au secours d’Aristote, en quelque sorte !

La syntaxe des langages impératifs étant très technique, ces derniers ne sont accessibles qu’aux informaticiens. Les interfaces homme-machine (IHM) ont, par conséquent, un rôle essentiel dans le succès des applications concernées. Mais aussi ergonomiques que puissent être ces interfaces, la rigidité fondamentale de l’ensemble, en particulier en ce qui concerne les capacités d’autoapprentissage, forme un frein irréductible à la compréhension naturelle entre l’homme et l’ordinateur. Ainsi, il nous arrivera encore longtemps d’être passablement irrité par un ordinateur qui ne comprend pas les choses pourtant simples qu’on veut lui faire exécuter, comme ce retrait de paragraphe jamais bien aligné, cette image qui ne veut absolument pas rester à sa place, ou cette fiche introuvable à cause du nom saisi avec une anodine inversion de caractère. Certaines inventions, comme la souris ou le multifenêtrage, rendent certes la manipulation plus aisée, mais la communication avec les PC n’a pas fondamentalement changé depuis les temps reculés de l’informatique lourde.

Les tentatives de balisage du chaos textuel du Web : HTML et XML

Dès ses débuts, Internet a engendré une prolifération de textes non structurés. À défaut d’imposer une cohérence prédéterminée et globale à cette connaissance, un protocole minimal s’est imposé pour naviguer dans ce réseau : le HTML (HyperText Markup Language). Outre sa fonction de base qui est de normaliser la présentation des pages, son principal intérêt au regard de notre sujet est sa faculté d’établir des liens généralement sémantiques entre des points du réseau, quelle que soit leur distance. Si ce protocole n’ajoute de sens ni n’en repère, et à ce titre l’appellation de langage est quelque peu usurpée, il a toutefois influencé les processus mentaux de recherche d’information. Par tâtonnements, on atteint une réponse plus rapidement, mais on perd la fonction initiatique d’une recherche plus méthodologique. L’apprentissage et la mémorisation se font plus par empreinte que par induction. La compréhension de la réponse est moins assurée. De ce fait, l’explication du fait appris, processus déductif, est plus difficile.

Dans le sillage du HTML qui représente donc une standardisation minimale des données textuelles, les promoteurs de la structuration des données ont, avec le XML, réintroduit astucieusement le concept de base de données. Ainsi, les balises qui jusqu’à présent n’informaient que sur la mise en forme, ont-elles permis de qualifier sémantiquement le texte qu’elles encapsulent.

Par exemple, la séquence HTML <b>Dupont</b><i>Jean</i> indique simplement que Dupont doit être affiché en caractères gras et Jean en italique, sans qu’on ne sache ce que représentent ces mots. XML permet d’ajouter des balises sémantiques, que l’on peut inclure les unes dans les autres.

Ainsi la séquence <identité><nom>Dupont</nom><prénom>Jean</prénom></identité>

informe que le mot Dupont représente un nom et Jean un prénom, et que ces deux items constituent l’identité d’une personne.

L’explosion de la connaissance non globalement structurée contenue sur les serveurs du Web a fourni des objectifs aux chercheurs en intelligence artificielle. Travaillant depuis longtemps sur les processus cognitifs, sur le langage et la recherche du sens d’informations textuelles ou structurées, ils ont trouvé là un vaste domaine d’application aux disciplines de data mining ou text mining. Ainsi est né le Web mining dont on peut prévoir que les applications seront les descendantes des moteurs de recherche actuels.

Prolog : un langage pour comprendre, à l’image du langage mental

Prolog, inventé en 1972 par Alain Colmerauer et Philippe Roussel, avait pour but original de procurer un outil aux linguistes ignorant l’informatique. Ce langage révolutionna le monde de l’intelligence artificielle. Le domaine d’application n’a plus besoin d’être préstructuré de façon rigide dans une base de données. L’arbre de décision se construit tout seul à partir d’une description dite superficielle de la méthode de résolution. Cela rend l’approche beaucoup plus naturelle.

Prolog est un langage déclaratif. Le programmeur ne se préoccupe plus exclusivement de la marche à suivre pour résoudre le problème, mais aussi et surtout, il s’attache à définir les objets manipulés par le programme et les relations qui existent entre ces objets. Le mécanisme d'exécution d'un langage déclaratif passe en revue toutes les solutions du problème, c'est-à-dire, toutes les configurations d'objets qui satisfont la ou les relations recherchées. Le sens est donné par les propositions elles-mêmes, le rendant ainsi plus proche du langage humain.

Prolog est basé sur le calcul des prédicats du premier ordre, qui étend la logique propositionnelle avec l’introduction de deux ensembles de symboles : les prédicats et les variables. Le concept central de la logique des prédicats est l’unification.

Exemple : dans l’expression père(père(X))=père(Y)

père est un prédicat

X et Y sont des variables

père(X) et Y sont unifiés, donc Y=père(X)

Ce qui est intéressant d’un point de vue linguistique, c’est que Prolog remet la notion de langage, fût-il informatique, au centre du processus descriptif, et le place donc comme unique producteur de sens. Ceci est à l’opposé des langages impératifs ou d’interrogation qui jouent le rôle d’agents de la circulation ou de bibliothécaire dans un ensemble plus complexe dont seul un schéma peut donner une vision globale compréhensible. En Prolog, le schéma ne précède pas le traitement mais en découle. Il s’agit d’un arbre de décision rapidement illisible dans sa globalité, mais dont les branches activées permettent d’expliquer les résultats.

Il est tentant d’avancer qu’un tel langage déclaratif est proche du langage de la pensée, si tant est que l’on croie en son existence. Le sujet est l’objet de polémiques, et un modèle artificiel permettrait de conforter ou d’infirmer la pertinence de cette assertion.

Le langage mental est déjà clairement évoqué chez Aristote dans le Peri Hermeneias : « Et de même que l’écriture n’est pas la même chez tous les hommes, les mots parlés ne sont pas non plus les mêmes, bien que les états de l’âme dont ces expressions sont les signes immédiats sont identiques chez tous, comme sont identiques aussi les choses dont ces états sont les images ».

Le langage de la pensée est unique quels que soient notre langue ou notre mode d’expression. Celui-ci est globalement le même, que l’on soit Américain ou Africain, muet ou aveugle. De plus, le langage parlé est un reflet déformé du langage de la pensée. Non seulement la forme se décline en de multiples langues et langages, mais le sens lui-même est parasité, complexifié.

Par ailleurs, nous retrouvons au sujet du langage mental l’opposition entre connexionnistes et fonctionnalistes. Les premiers sont très réservés et défendent le holisme sémantique pour lequel le sens d’une expression est déterminé par le réseau qui la lie à toutes les autres. Les seconds avancent ce que Fortis appelle « l’inscriptionnalisme sémantique » : le contenu de la formule en détermine le sens. Fodor élabora ainsi une thèse sur le langage de la pensée. Il mit en avant sa productivité et sa systématicité, ce qui nous rapproche déjà du principe de fonctionnement d’un langage informatique déclaratif. Le pont est définitivement jeté par Harman qui affirme : « La structure d’un état mental représente de la même manière [que celle d’une phrase] la procédure par laquelle elle peut être construite à partir de noms mentaux, de prédicats mentaux, de connecteurs mentaux, de variables mentales, de quantificateurs mentaux, et ainsi de suite. »

Cette structure décrite par Harman est très proche de celle d’un programme d’intelligence artificielle écrit en Prolog. Mais cette ressemblance n’est effective que si elle est appliquée à des domaines non complexes, descriptibles, ou le vrai et le faux ne sont pas le résultat d’interprétations, ni ne peuvent coexister pour une même proposition. Comme pour les mathématiques, la logique formelle, qui sous-tend un langage de type Prolog, doit baigner dans un monde sans parasite ni double sens. La connaissance scientifique représente ainsi un domaine d’application privilégié. Tout ce qui contient une composante émotionnelle a peu de chance d’être « compris » par de tels programmes et reste donc la chasse gardée des espèces vivantes.

C’est pourtant dans ce même langage, avec, il est vrai, des vocabulaires spécifiques quoique parfois interchangeables, que l’on parle de technique comme de musique, d’art ou d’amour. Dans quoi réside donc cette valeur ajoutée, inaccessible aux langages informatiques ?

Le langage humain est riche de ses imperfections. Doit-on pour autant le reproduire à l’identique ?

Les langages informatiques sont par définition moins intéressants – si ce n’est sur des aspects techniques qui ne passionnent que les informaticiens – que le langage humain, parce qu’ils sont conçus pour ne pas être ambigus. Ils ne sont pas faits de plâtrages et replâtrages imparfaits donnant lieu à des interprétations touchant au conscient et aussi à l’inconscient. Au contraire, ils interdisent les doubles sens. Bien sûr, ils sont une émanation du langage mathématique et particulièrement de la logique, ainsi peut-on se prêter au jeu des corrélations sans fin et déduire un sens caché des expressions logiques, à l’égal de la numérologie qui s’appuie sur l’arithmétique, pour donner des significations souvent folkloriques aux nombres. Si ces « produits dérivés » ont longtemps améliorer l’ordinaire des mathématiciens, particulièrement au Moyen Âge, ils n’en restent pas moins des leurres. Les langages informatiques sont axés sur l’efficacité de formalisation de l’information qu’ils contiennent et sa facilité de traitement. Leur « grammaire » doit être non ambiguë et prévaloir sur le vocabulaire.

Le langage, construit par sophistications successives, est le champion de la description des nuances, tandis qu’il est faible quant à sa facilité de traitement. Son vocabulaire prévaut sur sa grammaire, à tel point qu’il existe des langues sans véritable grammaire. Il déborde de sens que celle-ci n’a pas pu canaliser. Il reflète une culture. L’inconscient se glisse dans les sinuosités du langage, ce qui est impossible pour les langages informatiques « parfaits ». Pour ces derniers, une séquence ordonnée de mots n’a qu’une signification possible.

Comme pour la pensée dont il est l’image, le langage est chargé d’intentionnalité. L’intentionnalité a la double conséquence de générer, par tâtonnements, des propositions inédites, et d’élaguer celles qui sont inutiles. Dans un langage informatique intelligent, cela correspondrait à des métarègles de créativité et d’élagage. Elles permettraient, tout en conservant la rigueur de la logique, de vérifier des hypothèses inventées, ou d’inférer à partir de propositions fausses, dans une sorte de « rêve digital » sans conséquences néfastes.

Comme la lumière qui peut se concevoir ondulatoire ou corpusculaire, selon les besoins des théories, la pensée semble intégrer une dualité équivalente. Tantôt elle répond aux rigueurs de la logique, par exemple dans le raisonnement, tantôt elle semble se propager comme une onde, à l’image des émotions, du rêve ou des processus créatifs.

Mais y a-t-il un réel intérêt pour les programmes de modéliser le caractère « ondulatoire » de la pensée, de chercher ainsi à les « humaniser » ? Oui, pour la beauté de la science. Cependant, l’essentiel des efforts doit porter sur un objectif plus éloigné des scénarios de science-fiction, mais tout aussi ambitieux : doter les ordinateurs d’un langage qui leur serve à comprendre, expliquer et faire avancer la connaissance plutôt qu’à exprimer un vécu qu’ils ne possèdent pas et qu’il faudrait donc leur inventer. Ce langage doit être celui d’un hyperchercheur hyperenseignant, et non celui nécessaire à une psychanalyse, le langage d’une intelligence artificielle et non d’un « être vivant artificiel ». L’émotion ne s’apprend pas.

Bibliographie :

Fodor J. A. (1975) The Language of Tought, Harvard University Press.

Fortis J.-M. (1996) La notion de langage mental : problèmes récurrents de quelques théories anciennes et contemporaines. Histoire Epistémologie Langage, XVIII, 2, 75-101.

Colmerauer A. (1996) The birth of Prolog. Dans : History of Programming Languages, édité par Thomas J. Bergin et Richard G. Gibson, ACM Press/Addison-Wesley.

Harman G. (1973): Tought, Princeton University Press.

Encart

À quoi ressemblerait un Web intelligent ?

Projetons-nous dans un futur proche et imaginons une intelligence artificielle que l’on peut interroger dans n’importe quelle langue et de n’importe quel point du globe. Appelons-la IA. IA interagit avec le Web, base de connaissance universelle. Non seulement IA sait nous répondre dans notre langue, mais elle explique les réponses afin qu’on les comprenne. Quand la réponse ne peut être précise, elle nous dresse un état de l’art du domaine afin que l’on puisse se faire une opinion. Dans sa réponse, elle peut utiliser tous les médias mis à sa disposition. Si nous n’avons pas les compétences requises pour comprendre ses réponses, elle est capable de nous proposer un programme complet d’enseignement pour nous mettre à niveau.

Restons crédible et épargnons-lui toute ressemblance ou similitude avec un être vivant : pas d’enveloppe de chair, pas de cellules, pas de sentiments, pas de capacités sensorielles. IA ne souffre pas, n’est pas envieuse, ne vit pas, ne meurt pas, ne se reproduit pas. Elle ne peut pas tuer, ni exercer de pression psychologique. Oubliés donc Terminator ou HAL de 2001 Odyssée de l’Espace. Et même Matrix et son instinct de survie programmé. En revanche, IA sait se protéger contre tout virus qui tenterait de fausser son fonctionnement.

Quelle sorte de chimère serait donc IA ?

Tout d’abord, elle est immatérielle ou presque. Il y a bien des zéros et des uns qui se combinent à l’infini, filant à la vitesse de la lumière dans des réseaux filaires, optiques ou radio tout autour de la planète. Mais la complexité de ces enchaînements est telle que les contingences matérielles semblent se dissocier du résultat produit. Au même titre que la pensée, immatérielle, se dissocie du fonctionnement neuronal. Mais, comme nous l’avons plusieurs fois exprimé, IA n’a pas d’âme, étant privée de composante affective.

Si elle n’a pas d’âme, IA est en revanche omniprésente. Elle sait tout et elle est partout. Elle ne cherche pas à nous influencer mais sait en revanche se protéger de ceux qui ne manqueront pas de tenter de l’influencer.

Nous décrivons là une sorte de jumelle rationnelle de Sarasvatî, déesse de la connaissance et de la sagesse dans le panthéon hindou. Et ne doutons pas que des Hermétiques du futur – cette espèce-là est loin d’être en voie d’extinction – vénéreront IA et ne manqueront pas d’inventer un secret de la naissance de l’informatique puis d’Internet au même titre que certains illuminés d’aujourd’hui fantasment sur un supposé secret des Templiers.

Publié dans Articles

Commenter cet article