Focus sur la partie informatique : comment coder l’IA ?
L’histoire de Soraya et de l’IA
Quand Julie se montra le lendemain matin avec deux personnes à ses côtés et les présenta comme « scientifique » et « ingénieur » des données, Soraya bouillait de fierté. Le savoir de Nico portait ses fruits.
Julie entama son discours :
— Tania, ici présente, codera les potentielles nouvelles applications. Et voici Max, notre alternant data scientiste.
Tania dit bonjour de la tête et Max qui avait l’air de sortir du lycée esquissa un sourire.
Christophe frappa des mains.
— Allez, les usagers ne vont pas tarder à arriver.
Soraya passa deux heures mornes au stand prêt et retours avant de pouvoir revenir dans la salle du personnel. Tania avait pris place sur un coin de bureau. Ses longues boucles cachaient l’écran. Soraya se pencha par-dessus son épaule et découvrit une suite de hiéroglyphes incompréhensibles : des parenthèses parsemaient un texte aux multiples indentations et ponctué de mots anglais tels que « if » ou « while ». Soraya écarquilla les yeux. Une structure se dessinait :
def génère_recommendation(lecteur) :
if lecteur = lecteur_jamais_emprunté :
...
Langages informatiques
Des langages de programmation pensés pour les humains
Il y a différents types de langages informatiques. Certains s’occupent des données, d’autres des traitements. On nomme ces derniers « langages de programmation ». Les lignes que Soraya a vues proviennent de l’un d’entre eux. Un langage de programmation sert à effectuer des actions. C’est un moyen de communication avec l’ordinateur à qui on donne des ordres par la voie de ce dit code.
Contrairement aux apparences et aux difficultés de Soraya à le décrypter, le langage qu’elle perçoit est à destination des humains. Ce n’est pas le vrai code que comprend la machine. De manière sous-jacente, on trouve un compilateur ou un interpréteur qui va transformer ce code pour qu’il soit lisible par une machine.
Ainsi, même si le texte que voit Soraya semble cryptique au premier abord, il a été pensé par des humains pour des humains. C’est un langage formel. Cela signifie qu’il a des règles, mais pas ou peu de sémantique. On sait dans quel ordre placer les mots, mais ceux-ci n’ont pas de sens en soi.
Un langage de programmation, c’est finalement un langage puisqu’il s’agit d’un groupement de signes permettant une communication. En tant que tel, il repose sur un alphabet. Une bonne partie de ce qui nous vient dans nos quotidiens provient du monde anglo-saxon. Il en est de même pour les langages de programmation. Quasiment tous reprennent l’alphabet, des mots-clés et la syntaxe anglaise.
Il y a bien eu des tentatives de construire des langages dans d’autres langues. Le Langage Symbolique d’Enseignement (LSE) en est un exemple. Force est de constater que ce langage à destination d’un public francophone n’est pas sorti de son cadre initial : une école supérieure d’électricité.
Le vocabulaire d’un langage de programmation
Le vocabulaire de ces langages est assez pauvre. Les termes qu’on retrouve la plupart du temps sont les suivants :
-
if = si
-
else = sinon
-
while = tant que
« If » et « else » encadrent ce qu’on appelle une « clause conditionnelle ».
Quant au « while »...
Focus sur un langage : Python
Introduction à un langage populaire
Depuis plusieurs années, Python est l’un des langages de programmation les plus populaires. Sa facilité et sa flexibilité séduisent les développeurs et développeuses débutants comme experts. Il peut servir de base pour construire toutes sortes d’applications. Citons quelques exemples de cas d’usage. En 2016, Instagram expliquait utiliser en grande partie Python. Derrière les réels et les stories à la une de ce réseau social se cache du code Python. Dans le cas d’Instagram, c’est le langage principal.
Presque toujours, les programmes avec lesquels nous interagissons sont la résultante de plusieurs langages imbriqués. Il n’est pas rare de voir du Java côtoyer du JavaScript ou du PHP, des langages tout aussi populaires. Grâce à de nombreux articles de blogs ou conférences, nous savons que les employés de Netflix développent pour partie en Python. Sans doute que d’autres langages gravitent autour de ce dernier.
Ainsi, Python est un langage très répandu. Ses usages sont variés : jeux vidéo, logiciels d’entreprise, applications de bureau, sites web, etc. Mais, il y a un domaine où Python s’est imposé comme le grand gagnant, c’est celui de l’apprentissage automatique, ce qui en fait une compétence recherchée dans le champ de l’intelligence artificielle. C’est pourquoi, au-delà des deux exemples donnés, il y a fort à parier que de nombreuses plateformes que nous utilisons quotidiennement sont constituées au moins pour partie de code Python. Ce dernier mérite donc bien que nous nous arrêtions quelques instants sur son histoire et sa structure.
Brève histoire de Python
Guido van Rossum, développeur néerlandais, crée Python en 1989. Python s’est ensuite amélioré au fur et à mesure des années jusqu’à devenir ce qu’il est aujourd’hui : un langage apprécié. Guido van Rossum était fan de Monty Python’s Flying Circus, une série télévisée britannique loufoque. C’est d’après ce programme qu’il a nommé...
Coder ou réutiliser des composants pour développer des IA
La réutilisation de code
Tania va s’occuper du moteur de recommandation. Mais dans les faits, elle ne va pas entièrement produire le code nécessaire à cette réalisation. Elle va sans doute s’aider de composants créés par Max, mais pas que. En très peu de temps, construire une IA a bien changé. Il y avait une époque où il fallait tout ou presque programmer soi-même. À ce moment-là, il était impératif d’avoir des compétences pointues dans le domaine ou alors d’être assez motivé pour s’y intéresser de près. Avec les années, de nombreux problèmes ont été résolus et leur résolution a été mise sous la forme de structures qu’on peut réutiliser.
Tania va y avoir recours. D’abord, elle cherchera dans les bibliothèques informatiques ce qui a déjà été fait. Une bibliothèque c’est un ensemble de fonctions prêtes à l’emploi. Il est possible de les importer dans son application et de faire appel à ce code comme si on l’avait nous-mêmes écrit. Et aujourd’hui, il y a tant de bibliothèques dans le monde de l’apprentissage automatique que le plus dur est peut-être...
Modéliser plus que coder
Les développeurs et développeuses écrivent peu de code
L’idée de ce chapitre était de montrer que l’IA est codée. C’est un groupement de signes qui peut faire peur a priori, mais qui a bien un sens pour les personnes qui ont appris à le déchiffrer.
Le deuxième objectif consistait à dévoiler en partie le quotidien d’une développeuse. Ainsi, on aperçoit Tania pencher ses boucles sur du code. Mais en portant toute l’attention sur ce dernier, nous avons un peu menti ou du moins grossi le trait. Dans les faits, une ingénieur n’écrit que peu de lignes par jour, peut-être quelques dizaines. Notons d’ailleurs que Tania n’est peut-être pas en train de rédiger le texte que voit Soraya. Elle pourrait le lire. Et en effet, les développeurs passent une grande partie de leur temps à cette activité. Alors s’ils ne produisent que quelques lignes par jour, à quoi les paye-t-on ? À lire du code ?
Déjà, plus un code est concis, plus il est clair. Moins il y a de code, moins il y a de maintenance. C’est vrai dans une moindre mesure. Mais ainsi, être capable de rédiger peu de code plutôt que beaucoup pour une même fonctionnalité est une compétence recherchée et importante.
Modéliser...
En résumé
-
L’IA est faite de code. C’est-à-dire que les développeurs et développeuses usent d’un langage informatique pour produire un texte. Celui-ci représente des instructions données à un ordinateur. En réalité, ce langage est fait pour les humains. Comme une langue, il répond à un ensemble de règles. Quand on les connaît, le tout devient moins cryptique.
-
Il y a plusieurs langages de programmation. L’un des plus populaires, c’est Python et pour cause c’est le maître de l’apprentissage automatique de ces dernières années.
-
Aujourd’hui, pour concevoir une IA, il n’est plus besoin de tout construire de zéro. On peut se baser sur ce qui a été déjà fait, qu’il s’agisse de code, de modèles ou de données.
-
Une programmeuse comme Tania ne passe en réalité qu’une partie de son temps à rédiger le code qui fera l’IA. Elle réalise tout un tas d’autres tâches pour arriver à son but : discussion avec les personnes l’entourant, tests, relecture, etc.
Ainsi, l’IA se code avec un langage de programmation. C’est donc là l’une des premières matières de l’intelligence artificielle : l’informatique. Quand on se penche dessus, on comprend...