Le blog de Nicolas Ruiz

Aller au contenu | Aller au menu | Aller à la recherche

lundi 13 décembre 2004

Les objectifs de l'autonomie d'un système d'IA :

Pour être vraiment « intelligent » et posséder une certaine autonomie, nous allons résumer ici les différents objectifs à remplir pour mener à bien cette oeuvre :

- La compréhension de l'homme : cette étape peut paraître évidente mais elle reste très importante et surtout c'est une des plus compliquées à mettre en oeuvre (avec la formulation de la réponse). L'entité artificielle doit comprendre le langage naturel (comme on l'a vu plus haut) et être capable de le transformer en un langage plus simple pour traitement.
- La connaissance et la maîtrise de son environnement : l'entité doit savoir où elle est postée tant d'un point de vue hardware que géographique afin qu'elle puisse agir en conséquence. Elle doit maîtriser ce dernier en sécurisant tout ce dont elle a la charge notamment les données, qu'elles soient externes à son système intelligent ou interne et ceci dans un but d'auto-intégrité. Bref, elle doit assurer des fonctions de pare-feu ou d'anti-virus et de duplication de données via un ou plusieurs RAID.
- Appliquer la demande selon le contexte : ceci complète l'objectif précédent. Selon le contexte où l'entité se situe, elle doit adapter ses demandes et celles des autres : ainsi, si un informaticien demande à un gros système de faire un calcul qui prendra plus de 36 mois, l'entité devra être en mesure de lui proposer d'attendre la prochaine génération de microprocesseurs et ceci afin d'avoir un temps de calcul moins long mais surtout terminé avant que celui qui aurait dû être commencé n'ai terminé (36+X mois dans le cadre d'un lancement de calcul actuellement alors que ce sera (36+X)/2 si on lance le calcul dans 18 mois avec la prochaine génération). De même, le programme pourra posséder des humeurs qui selon le degré d'agressivité ou de gentillesse du maître d'oeuvre fera plus ou moins bien certaines requêtes (à déconseiller au niveau professionnel cependant). Enfin, si l'entité se révèle trop instable ou aux performances dégradées par un quelconque programme, elle conseillera alors soit de fermer l'application pour regagner des performances optimales soit d'attendre que cette application ait terminé afin que le monotâche de cette demande couplé au monotâche de l'application revienne au final plus rapide qu'une exécution simultanée (Système A.R.S.).
- La communication entre les différents modules pour la détection d'un problème ou une panne et mettre en place une solution de rechange : tout programme exécuté à l'intérieur du noyau d'IA devra communiquer en temps réel avec cette dernière afin de rendre compte de ses agissements, de ses éventuels problèmes ou des ressources nécessaires dans un but de stabilité et de rapidité. Les nouveaux systèmes d'exploitation pour particuliers commencent à être plus stables via de tels mécanismes mais la communication entre programmes d'éditeurs différents est assez difficile. En cas de problème, le système devra mettre en place des solutions afin de défendre l'intégrité des données : duplication des informations, fermeture des programmes dangereux pour le système, fermeture temporaire des modules inutiles en temps réel, etc (Système A.R.S.).
On peut donc imaginer sans problème un système d'IA qui crée un serveur local et virtuel à son lancement et qui « écoute » les logiciels qui feraient comme lui.
- Recompilation et optimisation du code afin de rendre le système plus performant : le système devra être capable via de nouvelles techniques (de tris par exemple) et au lieu de les inscrire dans sa base, les inscrira dans son propre code si la fonction est considérée comme importante : cependant, le système devra être capable de revenir en arrière et de posséder un module qui, en cas de problème grave, pourra restaurer le dernier système considéré comme stable et fonctionnel. Ce système devra être aussi capable de se remettre en service seul.
- Aider et rerouter l'homme dans ces tâches : l'homme ne doit en aucun cas se trouver face à un mur lors de l'utilisation de l'IA. Si l'IA ne reçoit aucune instruction extérieure compréhensible mais détecte une activité vis-à-vis d'elle-même, elle devra être capable de devancer les besoins du maître d'oeuvre et de l'aider si celui-ci semble perdu. Cela entrera en paradoxe avec la sécurité nécessaire car l'IA ne doit en aucun cas informer un utilisateur extérieur hostile. Par détection on considère aussi la mise en place de caméras que l'IA pourra commander si elle considère qu'un humain pénètre là où elle possède une fonction et donc pourrait à terme aider par rapport aux attitudes faciales de ce dernier.

mercredi 8 décembre 2004

Tour d'horizon : les possibilités et les limites actuelles de l'IA

Nous possédons actuellement beaucoup de technologies qui entreront en jeu lors de la mise en place d'un système intelligent. Celles-ci devront cependant s'améliorer et devenir abordable même si une mise en place d'une telle création nécessitera de très forts investissements.

Comme je l'ai souligné dans un précédént billet, la prochaine évolution de l'informatique est la nouvelle interface homme/machine qui s'ouvre à nous : la reconnaissance vocale ; actuellement, elle est loin d'être au point comme je l'ai suscité mais elle entrera sans commune mesure dans nos vies dans les 15 prochaines années et surtout elle est un maillon essentiel de la compréhension de l'homme par la machine. Il y a encore cependant du travail à effectuer mais ne doutons pas de l'avenir de cette technologie.

La deuxième technologie ou procédé technologique que nous possédons actuellement reste le RAID. Pour ceux qui ne seraient pas ce qu'est cette méthode de stockage, on simplifiera en disant que c'est la fait de mettre plusieurs disques durs sur une même unité et cela afin de dupliquer les données et donc de les sécuriser au cas où de ses disques tomberait en panne (sauf en RAID 0 mais je ne considère pas cela comme du RAID). Nous reviendrons longuement sur ce point lors que nous parlerons des objectifs d'une IA mais reconnaissons qu'une mise en place de cette dernière permettra à l'homme de ne plus se soucier de ses données et l'IA devra donc les sécuriser.

Enfin, de manière générale, tous les systèmes actuels à l'exécution de tâches quelconques préfigurent déjà l'intelligence artificielle malgré leurs limites évidentes. De même, il restent encore beaucoup de limites à la mise en place de tels systèmes.

La puissance de calcul tout d'abord : nous travaillons actuellement avec des brouettes à traîner et nous sommes en position d'attente devant nos ordinateurs au moins 20% du temps ; certes, les processeurs évoluent et donc les programmes avec mais à moins d'utiliser de vieux softs, on peste contre cette machine qui gratte encore et encore et qui permet d'écrire cela. Dieu soit loué, dans ce cas-là, cela reste très correcte. Cette technologie ne peut que s'améliorait du fait de la loi de Gordon Moore (le nombre de transistors dans un microprocesseur double tous les 18 mois) mais quelques interrogations subsistent : les coûts de fabrication des usines à CPU double aussi à chaque nouvelle génération (ce qui pose un problème pour une concurrence pure et parfaite et qui va plutôt nous tourner dans les prochaines années vers un oligopole) mais surtout on ne pourra pas suivre cette loi indéfiniment du fait des lois de la physique. Pour le 386 à 16Mhz en 1986, les ingénieurs gravaient à 1.5 Micron. Un cheveu fait 1 Micron. Aujourd'hui, on vient de passer sous la barre des 0.1 Micron. A terme (d'ici 2015), les transistors seront tellement petits que se manifestera « l'effet tunnel », c'est-à-dire que l'information sautera de transistors en transistors et se perdra finalement, du fait de la petitesse et du rapprochement de ces derniers (ne parlons même pas de la chaleur dégagée). Bref, les technologies actuelles pour la fabrication de microprocesseurs sont là aussi limitées à court terme mais ne nous inquiétons pas outre mesure, des solutions sont déjà en place (dont l'ordinateur quantique dont la recherche avance lentement mais sûrement).

La capacité de nos disques durs ensuite : une base de données d'une IA fera quelques bons To voire plus si elle s'auto-éduque. Il faut donc des très bons disques durs (comme je l'ai signalé plus haut, une solution RAID est très envisageable) avec des temps d'accès rapides, l'accès et l'affichage de l'information devant être immédiat ou quasi-immédiat. Des nouvelles normes arrivent progressivement et devraient donc permettre de tels développements. De même, l'utilisation du SCSI renforcera le tout. Les baisses de prix étant rapides, le stockage de l'information est une donnée essentielle pour le futur, qu'elle ait ou non un rapport avec l'intelligence artificielle.

Enfin, la troisième et dernière limite de nos ordinateurs aujourd'hui pour préfigurer les systèmes d'IA de demain est le système d'exploitation. Noyau central de l'ordinateur, il devra être stable, rapide, et simple d'utilisation. Si l'IA bouleverse nos vies demain, il faut que cette dernière ne dépende pas d'un constructeur (on pourrait apparenter cela à terme à une forme d'esclavage !). Il faut des noyaux spécialement réécrit pour de l'IA avec par exemple une optimisation de recherche dans une base de données ou des API déjà écrites pour que les programmeurs puissent écrire des programmes faisant appel à cette IA : l'agent intelligent régissant tout cela devra donc en plus de posséder le noyau d'IA, posséder aussi le noyau de l'OS pour comprendre son environnement et le connaître. Il faut d'ailleurs noter que le successeur de Windows XP (LongHorn) prévu pour fin 2005 devrait intégrer un peu d'Intelligence Artificielle de manière plus visible que pour Windows 2000 (je parle bien sûr des menus qui s'affichent en fonction des utilisations) et reposerait sur un format de fichiers de type SQLServer (Yukon) nommé, aux dernières nouvelles, WinFS (Windows Future Storage) ; cependant, cela restera une couche de NTFS.

Bref, on le voit bien ici, les technologies actuelles n'ont pas été pensé pour faire de la déduction, de la synthèse ou de la logique mais pour appliquer des formules mathématiques et des automatismes qui ne nécessitent aucune réflexion. Elles sont cependant sur la bonne voie car le système binaire, derrière son étonnante simplicité, cache une déconcertante complexité et un formidable potentiel.