BLOG | Et si, grâce à l'IA, vos applications s'adaptaient aux changements ?

20/09/2021

Par Philippe Chrétien, CTO

Et si, grâce à l'IA, vos applications s'adaptaient aux changements ?
Les arbres de comportement au service d'une approche adaptative - PART I

" It's not the strongest of the species that survives, not the most intelligent that survives. It is the one that is the most adaptable to change."
Charles Darwin

Beetle Box de Charles Darwin

Beetle Box de Charles Darwin

Résumé : 

Dans un monde qui change, la capacité d'adaptation est une qualité essentielle. Pourtant l'informatique actuelle est massivement construite sur un socle procédural. Dans un environnement connu, fermé, cette approche procédurale est à la fois simple, efficace et gage de robustesse. Toutefois elle ne permet pas d'appréhender la complexité d'un monde qui change vite.
Nous allons voir qu'il existe une alternative, une approche, issue de l'intelligence artificielle, qui s'inspire du vivant et vise à prendre en considération un environnement en évolution avec de multiples interactions. Bref, un environnement plus proche du monde réel, plus complexe par essence.

Cette première partie introduit l'approche adaptative et les arbres de comportement. La seconde partie décrira plus concrètement cette dernière technologie.

Introduction à l'approche adaptative

L'approche procédurale : "dis-moi comment y aller"


Eté 84. Les vacances, il était temps. L’autoradio diffuse "Un autre monde” de Téléphone.
Conducteur d'une belle 304, Norbert repose la carte Michelin. La famille est enfin arrivée dans la ville d'Aubagne. Mais où se trouve cette location située sur le "chemin du Garlaban" ?
Le soleil brule les pierres, les cigales chantent, les rues sont vides. Heureusement, le café des sports est plein. Norbert y demande son chemin. Les explications sont "Deuxième à droite après la boulangerie Castanier, puis tout droit jusqu'à la fontaine et c'est le chemin en face".
C'était au siècle dernier.

L'approche adaptative : "dis-moi (juste) où aller"


De nos jours, il suffit de renseigner sur son GPS l'adresse. Ensuite il n'y a plus qu'à se laisser guider, bercé au son d'une voix androïde. Demain la voiture conduira seule, à moins que nous ne puissions plus nous déplacer mais cela est une autre histoire…

L’important c’est la destination, pas le chemin 😉


Décliner un trajet en une suite d'instructions (tourner à droite, avancer 100 m…) relève d'une approche procédurale. Cette approche est aujourd'hui utilisée dans, quasiment, la totalité des systèmes d'information. La raison est simple : un système d'information transcrit bien souvent des procédures déjà existantes sous forme numérique. 
De plus, le formalisme d'une procédure se comprend, se partage facilement.
 

Approche procédurale classique

Approche procédurale classique (fin XX° siècle)

 


Bien que répandue, l'approche procédurale possède un défaut majeur ; elle ne sait pas répondre à l'imprévu. Il est ainsi nécessaire de prévoir tous les cas et de les injecter dans la procédure sinon c'est l'impasse ! Est-il toujours possible de prévoir tous les cas ? De surcroit, est-ce utile ?

Que se passe-t-il si un camion de déménagement bloque la rue que vous devez emprunter ? Il faut redemander son chemin car la procédure fournie est inopérante. En revanche, dans le cas d'un GPS, le système s'adapte aux événements. Qu'une route soit bloquée et le trajet est recalculé automatiquement et un nouvel itinéraire proposé.

Le GPS est un exemple d'approche adaptative. Ce qui compte c'est l'objectif, ensuite on assigne la destination et des règles qui influeront sur le trajet. Dans le cas du GPS, l'utilisateur précise s'il souhaite un trajet plus court ou plus rapide, s'il autorise les péages… 
 

Note : les approches procédurales ou adaptatives doivent être comprises comme des langages de haut niveau qui orchestrent des tâches, lesquelles peuvent être développées dans un langage plus classique (impératif, objet ou fonctionnel).

Savoir s'adapter à son environnement : les arbres de comportement

Si l'approche procédurale est dominante dans les systèmes d'information, il existe pourtant plusieurs branches de l'informatique qui se sont emparées de l'approche adaptative pour dépasser les limites de l'approche traditionnelle : citons les robots et les jeux vidéo.

Commençons par le jeu vidéo


Vous êtes dans un monde ouvert et incarnez un personnage au sein d'un monde post apocalyptique. De nombreux personnages sont présents, ils ont tous une mission et doivent adapter leur comportement en fonction de l'environnement, de l'évolution du jeu et bien sûr de vos actions. Ces personnages non joueurs (PNJ pour les intimes) sont mus par une technologie issue de l'Intelligence Artificielle, appelée "arbres de comportement" ou "Behavior Tree" que l'on abrègera par commodité en “BT”.
 
Un moteur de jeux comme Unreal Engine offre au développeur la possibilité de programmer des IA avec cette technologie laquelle appartient à la famille des programmes orientés objectifs (Goal Oriented Programming)

"Behavior Trees assets in Unreal Engine 4 (UE4) can be used to create artificial intelligence (AI) for non-player characters in your projects. While the Behavior Tree asset is used to execute branches containing logic, to determine which branches should be executed, the Behavior Tree relies on another asset called a Blackboard which serves as the "brain" for a Behavior Tree."

Extrait de la documentation de Unreal Engine

Arbre de comportement

Arbre de comportement - documentation Unreal Engine
 

Source : https://docs.unrealengine.com/4.26/en-US/InteractiveExperiences/ArtificialIntelligence/BehaviorTrees/


Unity, l'autre star des moteurs de jeux n'est pas en reste et possède aussi sa propre librairie de BT.
Je n'évoquerai pas ici la liste des jeux utilisant cette technologie d'IA. Sachez juste que le premier jeu connu fut Halo 2 sorti pour Noël 2004. 

Halo 2

 

BT d'une IA dans Halo

BT d'une IA dans Halo

Source : https://www.gamasutra.com/view/feature/130663/gdc_2005_proceeding_handling_.php


Illustrons très rapidement une "IA" dans un jeu vidéo


Prenons un personnage dans un jeu. On parle de PNJ (pour personnage non joueur). Ce PNJ possède des capacités d'attaque, de défense mais il doit aussi se nourrir, se reposer, se soigner. Il possède des objets (armes, boucliers, potions…), lesquels agissent et modifient ses points d'attaque ou de vie…
Ce personnage possède donc des capacités et une mission. Le BT va permettre d'orchestrer les capacités dans l'objectif de remplir la mission.
On obtient un personnage "vivant" qui agit de façon naturelle dans un environnement en évolution conformément aux desiderata des concepteurs du jeu. 
Ce qui est vrai pour un guerrier l’est aussi pour un joueur de foot incarné par une IA, comme c’est le cas dans FIFA.

Comment rendre un robot intelligent ?


Un autre champ qui ne peut se satisfaire d'une approche procédurale, c'est la robotique. Les robots vivent dans un environnement changeant et doivent s'adapter en permanence à des imprévus. C'est au travers de capteurs que les robots perçoivent cet environnement. Le BT va donc articuler les capacités du robot à se mouvoir, à interagir pour atteindre l'objectif qui lui est assigné.
On parle de robot physique. Mais le concept peut être élargi à des bots, à des agents autonomes collaborant entre eux dans un espace cyber. Par exemple ROS, pour Robot Operating System, qui se définit comme l’OS des robots inclut les BT au cœur de son système. Ceux qui voudront aller plus loin pourront consulter le site de ROS, ou les productions universitaires, de Colledanchise & Ogren.

Cas d’usages des arbres de comportement

Les BTs sont donc une implémentation de l'approche adaptative.  Leur force réside bel et bien dans l'adaptation et la modularité. Cette branche de l'IA à laquelle les BTs appartiennent est aujourd'hui dans l'ombre du deep learning, ou apprentissage profond qui se base sur l’utilisation massive de données et connait depuis une dizaine d’années des succès retentissants.

Pourtant, dans le cadre de la transformation numérique, il serait intéressant de repenser certains processus métier pour bénéficier de la puissance offerte par une IA pilotée par la logique adaptative. En effet, le deep learning souffre parfois de son effet magique ; il est difficile d’expliquer les résultats obtenus. Cet inconvénient, qui est parfois rédhibitoire, s’efface dans le cadre des BT ou les règles sont ordonnées et facilitent l’explication des résultats obtenus.

Cas d'usage : Chatbot


Chez Klee Group, nous utilisons les BTs pour rendre notre chatbot "intelligent". Un chatbot est un agent qui doit répondre à des questions. Pour ce faire, le bot entame une conversation et va poser des questions complémentaires gérées par le BT afin d’apporter une réponse fiable au demandeur. La souplesse du BT permet d’orienter la conversation en se fondant sur une base de connaissances et sur le contexte de l'utilisateur.
Un chatbot « classique » se décrit sous une forme procédurale avec de multiples arbres de décision, séquentiels. Opter pour une approche adaptative avec les arbres de comportement offre deux bénéfices majeurs :

Efficacité : Les utilisateurs finaux n’auront pas de question inutile. Si vous avez déjà appelé une assistance téléphonique, vous avez certainement eu droit à un opérateur, qui « descend » froidement un arbre de décision sans prendre en considération votre contexte, Cela conduit à des questions sans rapport avec votre problème. L’arbre de comportement fonctionne différemment. Il est piloté par l’objectif et évite ainsi les questions superflues. Son objectif est de répondre vite à la question posée (pensez au GPS !).

Adaptation : un chatbot est un être numérique vivant, dans le sens où il doit continuellement prendre en considération de nouvelles questions. La nature même des arbres de comportement facilite les modifications et ajouts pour s’adapter aux utilisateurs. Le travail pour l’administrateur du chatbot en sera, de facto, simplifié. 

Cas d'usage : Configuration


Un autre cas d'usage concerne le choix d'une configuration. Certains objets, comme les voitures, ou des équipements techniques proposent des configurations complexes avec des règles de précédence, d’exclusion… Bref, un joli casse-tête qui se complique encore quand de nouvelles options apparaissent. Un BT, par sa nature modulaire, peut être une solution pour éviter d’avoir à gérer une combinatoire explosive.  

Cas d'usage : Calcul de primes, de réductions ou de prix

Dès que l’on parle d’argent, il est souvent question de règles : des règles pour calculer des taux, pour cumuler certaines options mais pas d’autres…
Et dès qu’il est question de règles, il semble préférable d’opter pour une approche, elle-même, fondée sur les règles ! Dès que leur nombre est élevé et que leur intrication rend une approche procédurale hasardeuse, alors l'approche adaptative (BT) offre une modularité favorisant l'évolution, l'ajout et la modification de règles.

Cas d'usage : Contrôle d’essaim (Swarm control)

Essaim de drones, cérémonie d’ouverture des JO de ToKyo 2020


Fourmis, termites, abeilles…

Ces animaux fascinent par leur capacité à surmonter ensemble des défis qu’un seul d’entre eux ne pourrait affronter. Trouver de la nourriture dans un espace infini, déplacer d’énormes objets, construire des habitats abritant des milliers d’individus…
Lors de la cérémonie d’ouverture des JO, un essaim de drones a illuminé le ciel de Tokyo. Les étourneaux ou les sardines sont une source d’inspiration pour faire manœuvrer des drones en essaim. (Les spécialistes parlent de Swarm ou swarm control).

Les BTs sont aujourd’hui explorés pour conférer à ces essaims de drones la capacité à traiter un objectif commun. Les militaires cherchent ainsi à construire des armes toujours plus intelligentes, sachant s’adapter à l’environnement. Je vous partage une vidéo qui ressemble furieusement à un épisode de Black Mirror :

Hors du champ militaire, de tels drones volant en essaim seraient utiles en agriculture ou dans la protection civile pour aider les populations, détecter les incendies…

Prospective : Autres cas d'usage


Portés par la simplicité et la duplication des processus existants, les systèmes d'information sont aujourd'hui massivement procéduraux. Cela fonctionne... (Généralement 😉)
La transposition de l'existant en numérique ne constitue qu’une étape intermédiaire de la transformation numérique.

Il ne faut pas s'arrêter à cette première étape et, comme pour les GPS modernes, se demander comment une autre façon de voir les choses pourrait améliorer l'efficacité d'un système.
Introduire dans des applications des capacités adaptatives, c'est lui conférer des super pouvoirs, les rendre plus évolutives, plus résilientes.

Prenons l’exemple des workflows. Le concept même est dans la continuité d’une époque où un worflow était un robuste dossier papier constitué de documents, de pièces justificatives. Ce dossier devait être validé par un ensemble d’acteurs (opérationnels, techniques, administratifs, juridiques, financiers…).  Par la force des choses, le workflow était procédural, séquentiel avec un dossier qui passait de bureau en bureau pour être validé (ou refusé) avec le tampon adéquat et la signature du responsable.
La plupart des workflows numériques sont construits sur ce paradigme. Les avantages sont, à la rigueur, la lisibilité du processus, mais jamais son efficacité !

Tel workflow demandera à l’utilisateur une tonne d’informations pour éviter des aller-retours quand tel autre vérifiera les pièces justificatives à chaque étape. Ce qui peut conduire à des workflows interrompus après des semaines d’instruction !

Pire certains workflows seront instruits jusqu’à une étape où ils seront automatiquement refusés. Quelle perte de temps !
Il est possible de repenser les processus de workflow en posant le problème différemment. On ne doit pas décrire une façon de valider mais on doit privilégier l’écriture des règles permettant d’atteindre l’objectif de validation. En ce cas, on casse l’approche séquentielle , et on laisse le moteur (GPS !) prendre le chemin qui optimisera le temps d'instruction selon les règles fournies. Les dossiers seront plus rapidement validés ou rejetés, pour une efficacité au service à la fois des demandeurs et des instructeurs.

La transformation numérique doit utiliser tous les leviers technologiques, pour optimiser les processus. Abandonner la carte Michelin, pour passer enfin au GPS constitue un acte concret de transformation numérique.

Passons à l’action !


Sans changer, sans casser la façon dont sont construites les applications actuelles, il est possible d'introduire une logique adaptative. Celle-ci orchestrera des capacités programmées de façon plus "traditionnelle" sous la forme de tâches élémentaires.
Privilégier l’objectif tout en s’appuyant sur des règles formelles et des capacités plutôt que de décrire un chemin, c’est créer des systèmes plus modulaires, plus résilients, aptes à s’adapter à un monde qui change.
 
Fin de la première partie introductive aux arbres de comportement
La prochaine partie présentera concrètement le fonctionnement des arbres de comportement.