Robotisation de l'IA avec InterSystems IRIS Data Platform

Auteur: Sergey Lukyanchikov, ingénieur commercial chez InterSystems

Fixer la terminologie


Un robot ne devrait pas être énorme ou humanoïde, ni même matériel (en désaccord avec Wikipedia , bien que ce dernier adoucisse la définition initiale dans un paragraphe et admette la forme virtuelle d'un robot). Un robot est un automate, d'un point de vue algorithmique, un automate pour l'exécution autonome (algorithmique) de tâches concrètes. Un détecteur de lumière qui déclenche l'éclairage public la nuit est un robot. Un logiciel de messagerie électronique séparant les e-mails en «externes» et «internes» est également un robot.

L'intelligence artificielle (au sens strict et appliqué, Wikipédia l' interprétant à nouveau différemment) est un algorithme permettant d'extraire les dépendances des données. Il n'exécutera aucune tâche seul, car il faudrait l'implémenter en tant que processus analytiques concrets (données d'entrée, plus modèles, plus données de sortie, plus contrôle de processus). Le processus analytique agissant comme un «porteur d'intelligence artificielle» peut être lancé par un humain ou par un robot. Il peut également être arrêté par l'un ou l'autre. Et géré par l'un d'eux aussi.

Interaction avec l'environnement


L'intelligence artificielle a besoin de données adaptées à l'analyse. Lorsqu'un analyste commence à développer un processus analytique, les données du modèle sont préparées par l'analyste lui-même. Habituellement, il construit un ensemble de données qui a suffisamment de volume et de fonctionnalités pour être utilisé pour la formation et les tests de modèles. Une fois que la précision (et dans des cas moins fréquents, la «stabilité locale» dans le temps) du résultat obtenu devient satisfaisante, un analyste type considère son travail accompli. A-t-il raison? En réalité, le travail n'est qu'à moitié fait. Il reste à assurer un «fonctionnement ininterrompu et efficace» du processus analytique - et c'est là que notre analyste peut rencontrer des difficultés.

Les outils utilisés pour développer l'intelligence artificielle et les mécanismes d'apprentissage automatique, à l'exception de certains cas les plus simples, ne conviennent pas pour une interaction efficace avec l'environnement extérieur. Par exemple, nous pouvons (pendant une courte période) utiliser Python pour lire et transformer les données des capteurs d'un processus de production. Mais Python ne sera pas le bon outil pour surveiller globalement la situation et basculer le contrôle entre plusieurs processus de production, faire monter et descendre les ressources de calcul correspondantes, analyser et traiter tous les types d '"exceptions" (par exemple, la non-disponibilité d'une source de données, défaillance de l'infrastructure, problèmes d'interaction avec les utilisateurs, etc.). Pour ce faire, nous aurons besoin d'une plateforme de gestion et d'intégration des données. Et plus la charge sera chargée, plus notre processus analytique sera varié, plus la barre de nos attentes en matière d'intégration de la plate-forme et de composants «SGBD» sera élevée. Un analyste qui est élevé sur des langages de script et des environnements de développement traditionnels pour construire des modèles (y compris des utilitaires comme des «cahiers») sera confronté à la quasi-impossibilité de sécuriser son processus analytique et une implémentation productive efficace.

Adaptabilité et adaptabilité


La variabilité de l'environnement se manifeste de différentes manières. Dans certains cas, cela changera l'essence et la nature des choses gérées par l'intelligence artificielle (par exemple, l'entrée d'une entreprise dans de nouveaux domaines d'activité, les exigences imposées par les régulateurs nationaux et internationaux, l'évolution des préférences des clients pertinentes pour l'entreprise, etc.). Dans les autres cas - la signature d'information des données provenant de l'environnement externe deviendra différente (par exemple, de nouveaux équipements avec de nouveaux capteurs, des canaux de transmission de données plus performants, la disponibilité de nouvelles technologies d'étiquetage des données, etc.).

Un processus analytique peut-il se «réinventer» à mesure que la structure de l'environnement externe change? Simplifions la question: est-il facile d'ajuster le processus analytique si la structure de l'environnement externe change? D'après notre expérience, la réponse qui suit est simple et triste: dans la plupart des implémentations connues (pas par nous!) Il faudra au moins réécrire le processus analytique, et très probablement réécrire l'IA qu'il contient. Eh bien, la réécriture de bout en bout peut ne pas être le verdict final, mais faire la programmation pour ajouter quelque chose qui reflète la nouvelle réalité ou changer la «partie modélisation» peut en effet être nécessaire. Et cela pourrait signifier des frais généraux prohibitifs - surtout si les changements d'environnement sont fréquents.

Agence: la limite de l'autonomie?


Le lecteur a peut-être déjà remarqué que nous allons dans le sens d'une réalité de plus en plus complexe proposée à l'intelligence artificielle. Tout en prenant note des éventuelles «conséquences côté instrument». Dans l'espoir que nous puissions enfin apporter une réponse aux nouveaux défis.

Nous approchons maintenant de la nécessité d'équiper un processus analytique d'un niveau d'autonomie tel qu'il puisse faire face non seulement à la variabilité de l'environnement, mais aussi à l'incertitude de son état. Aucune référence à une nature quantique de l'environnement n'est visée ici (nous en discuterons dans l'une de nos autres publications), nous considérons simplement la probabilité qu'un processus analytique rencontre l'état attendu au moment attendu dans le «volume» attendu. Par exemple: le processus «pensait» qu'il réussirait à terminer un cycle de formation sur le modèle avant l'arrivée de nouvelles données auxquelles appliquer le modèle, mais «n'a pas réussi» à le compléter (par exemple, pour plusieurs raisons objectives, l'échantillon de formation contenait plus enregistrements que d'habitude). Autre exemple: l'équipe d'étiquetage a ajouté un lot de nouvelle presse dans le processus, un modèle de vectorisation a été formé à l'aide de ce nouveau matériel, tandis que le réseau neuronal utilise toujours la vectorisation précédente et traite comme du «bruit» des informations extrêmement pertinentes. Notre expérience montre que surmonter de telles situations nécessite de diviser ce qui était auparavant un processus analytique unique en plusieurs composants autonomes et de créer pour chacun des processus d'agents résultants sa "projection tamponnée" de l'environnement. Appelons cette action (au revoir, Wikipédia) l'agentation d'un processus analytique. Et appelons agence la qualité acquise par un processus analytique (ou plutôt à un système de processus analytiques) grâce à l'agenting.

Une tâche pour le robot


À ce stade, nous allons essayer de trouver une tâche qui nécessiterait une IA robotisée avec toutes les qualités mentionnées ci-dessus. Il ne faudra pas un long voyage pour arriver à des idées, en particulier en raison d'une multitude de cas et de solutions très intéressants pour ces cas publiés sur Internet - nous allons simplement réutiliser l'un de ces cas / solutions (pour obtenir à la fois le tâche et formulation de la solution). Le scénario que nous avons choisi concerne la classification des publications («tweets») sur le réseau social Twitter, en fonction de leur sentiment. Pour former les modèles, nous avons des échantillons assez importants de tweets «étiquetés» (c'est-à-dire avec un sentiment spécifié), tandis que la classification sera effectuée sur des tweets «non étiquetés» (c'est-à-dire sans sentiment spécifié):

image
Figure 1 Formulation des tâches de classification de texte basée sur les sentiments (analyse des sentiments)

Une approche pour créer des modèles mathématiques capables d'apprendre à partir de textes étiquetés et de classer des textes non étiquetés avec un sentiment inconnu, est présentée dans un excellent exemple publié sur le Web.

Les données de notre scénario ont été aimablement mises à disposition sur le Web.

Avec tout ce qui précède à portée de main, nous pourrions commencer à "assembler un robot" - cependant, nous préférons compliquer la tâche classique en ajoutant une condition: les données étiquetées et non étiquetées sont envoyées au processus analytique sous forme de fichiers de taille standard comme le processus «Consomme» les fichiers déjà alimentés. Par conséquent, notre robot devra commencer à fonctionner sur des volumes minimaux de données de formation et améliorer continuellement la précision de la classification en répétant la formation du modèle sur des volumes de données en croissance progressive.

Vers l'atelier InterSystems


Nous allons démontrer, en prenant comme exemple le scénario qui vient d'être formulé, qu'InterSystems IRIS et ML Toolkit, un ensemble d'extensions, peuvent robotiser l'intelligence artificielle. Et réaliser une interaction efficace avec l'environnement externe pour les processus analytiques que nous créons, tout en les gardant adaptables, adaptatifs et agents (les «trois A»).

Commençons par l'agence. Nous déployons quatre processus métier dans la plateforme:

image
Figure 2 Configuration d'un système de processus métier basé sur un agent avec un composant pour l'interaction avec Python

  • GÉNÉRATEUR - comme les fichiers gĂ©nĂ©rĂ©s prĂ©cĂ©demment sont consommĂ©s par les autres processus, gĂ©nère de nouveaux fichiers avec des donnĂ©es d'entrĂ©e (Ă©tiquetĂ©s - tweets positifs et nĂ©gatifs - ainsi que des tweets non Ă©tiquetĂ©s)
  • TAMPON - comme les enregistrements dĂ©jĂ  tamponnĂ©s sont consommĂ©s par les autres processus, lit les nouveaux enregistrements des fichiers crĂ©Ă©s par GENERATOR et supprime les fichiers après avoir lu les enregistrements d'eux
  • ANALYZER - consomme les enregistrements du tampon non Ă©tiquetĂ© et leur applique le RNN formĂ© (rĂ©seau de neurones rĂ©current), transfère les enregistrements «appliquĂ©s» avec des valeurs respectives de «probabilitĂ© d'ĂŞtre positive» ajoutĂ©es au tampon de surveillance; consomme les enregistrements des tampons Ă©tiquetĂ©s (positifs et nĂ©gatifs) et forme le rĂ©seau de neurones en fonction de ceux-ci
  • MONITOR - consomme les enregistrements traitĂ©s et transfĂ©rĂ©s dans sa mĂ©moire tampon par ANALYZER, Ă©value les mesures d'erreur de classification dĂ©montrĂ©es par le rĂ©seau neuronal après la dernière formation et dĂ©clenche une nouvelle formation par ANALYZER

Notre système de processus basé sur des agents peut être illustré comme suit:

image
Figure 3 Flux de données dans le système basé sur un agent

Tous les processus de notre système fonctionnent indépendamment les uns des autres mais écoutent les signaux les uns des autres. Par exemple, un signal pour que le processus GENERATOR commence à créer un nouveau fichier avec des enregistrements est la suppression du fichier précédent par le processus BUFFER.

Voyons maintenant l'adaptabilité. L'adaptabilité du processus analytique dans notre exemple est mise en œuvre via «l'encapsulation» de l'IA en tant que composant indépendant de la logique du processus porteur et dont les fonctions principales - formation et prédiction - sont isolées les unes des autres:

image
Figure 4 Isolement des principales fonctions de l'IA dans un processus analytique - formation et prédiction à l'aide de modèles mathématiques

Étant donné que le fragment de processus ANALYZER cité ci-dessus fait partie de la «boucle sans fin» (qui est déclenchée au démarrage du processus et fonctionne jusqu'à ce que tout le système basé sur l'agent soit arrêté), et puisque les fonctions AI sont exécutées simultanément, le processus est capable d'adapter l'utilisation de l'IA à la situation: former des modèles si le besoin s'en fait sentir, prévoir en fonction de la version disponible des modèles formés, sinon. La nécessité de former les modèles est signalée par le processus adaptatif MONITOR qui fonctionne indépendamment du processus ANALYZER et applique ses critères pour estimer la précision des modèles formés par ANALYZER:

image
Figure 5 Reconnaissance du type de modèle et application des mesures de précision respectives par le processus MONITOR

Nous continuons avec l'adaptabilité. Un processus analytique dans InterSystems IRIS est un processus métier qui a une représentation graphique ou XML sous la forme d'une séquence d'étapes. Les étapes à leur tour peuvent être des séquences d'autres étapes, boucles, vérifications de condition et autres contrôles de processus. Les étapes peuvent exécuter du code ou transmettre des informations (peuvent également être du code) pour le traitement par d'autres processus et systèmes externes.

S'il est nécessaire de modifier un processus analytique, nous avons la possibilité de le faire dans l'éditeur graphique ou dans l'IDE. La modification du processus analytique dans l'éditeur graphique permet d'adapter la logique du processus sans programmation:

image
Figure 6 Processus ANALYZER dans l'Ă©diteur graphique avec le menu ouvert pour ajouter des contrĂ´les de processus

Enfin, c'est l'interaction avec l'environnement. Dans notre cas, l'élément le plus important de l'environnement est le jeu d'outils mathématiques Python. Pour l'interaction avec Python et R, les extensions fonctionnelles correspondantes ont été développées - Python Gateway et R Gateway . Permettre une interaction confortable avec un ensemble d'outils concrets est leur fonctionnalité clé. Nous pouvions déjà voir le composant pour l'interaction avec Python dans la configuration de notre système basé sur un agent. Nous avons démontré que les processus métier contenant de l'IA implémentée à l'aide du langage Python peuvent interagir avec Python.

Le processus ANALYZER, par exemple, porte les fonctions de formation et de prédiction du modèle implémentées dans InterSystems IRIS en utilisant le langage Python, comme illustré ci-dessous:

image
Figure 7 Fonction d'apprentissage du modèle implémentée dans le processus ANALYZER dans InterSystems IRIS à l'aide de Python

Chacune des étapes de ce processus est responsable d'une interaction spécifique avec Python: un transfert des données d'entrée du contexte IRIS InterSystems vers le contexte Python, un transfert de code pour exécution vers Python, un retour des données de sortie du contexte Python vers le contexte IRIS InterSystems .

Le type d'interaction le plus utilisé dans notre exemple est le transfert de code pour exécution en Python:

image
Figure 8 Le code Python déployé dans le processus ANALYZER dans InterSystems IRIS est envoyé pour exécution à Python

Dans certaines interactions, il y a un retour des données de sortie du contexte Python vers le contexte IRIS InterSystems:

image
Figure 9 Trace visuelle de la session de processus ANALYZER avec un aperçu de la sortie retournée par Python dans l'une des étapes du processus

Lancement du robot


Lancement du robot ici même dans cet article? Pourquoi pas, voici l' enregistrement de notre webinaire dans lequel (en plus d'autres histoires d'intelligence artificielle pertinentes pour la robotisation!) L'exemple discuté dans notre article a été démo. Le temps du webinaire étant toujours limité, malheureusement, et nous préférons toujours présenter notre travail de manière aussi illustrative que brièvement que possible - et nous partageons donc ci-dessous un aperçu plus complet des résultats produits (7 sessions de formation, y compris la formation initiale, au lieu de simplement 3 dans le webinaire):

image
Figure 10 Robot atteignant une AUC stable au-dessus de 0,8 lors de la prédiction

Ces résultats sont conformes à nos attentes intuitives: au fur et à mesure que l'ensemble de données de formation se remplit de tweets positifs et négatifs «étiquetés», la précision de notre modèle de classification s'améliore (cela est prouvé par l'augmentation progressive des valeurs AUC montrées sur la prédiction).

Quelles conclusions pouvons-nous tirer Ă  la fin de l'article:

• InterSystems IRIS est une puissante plateforme de robotisation des processus impliquant l'intelligence artificielle

• L'intelligence artificielle peut être implémentée à la fois dans l'environnement externe (par exemple, Python ou R avec leurs modules contenant des algorithmes prêts à l'emploi) et dans la plate-forme InterSystems IRIS (en utilisant des bibliothèques de fonctions natives ou en écrivant des algorithmes en Python et R). InterSystems IRIS sécurise l'interaction avec des ensembles d'outils d'IA externes permettant de combiner leurs capacités avec ses fonctionnalités natives

• InterSystems IRIS robotise l'IA en appliquant «trois A»: des processus métier adaptables, adaptatifs et d'agent (ou bien des processus analytiques)

• InterSystems IRIS exploite l'IA externe (Python, R) via des kits d'interactions spécialisées: transfert / retour de données, transfert de code pour exécution, etc. Un processus analytique peut interagir avec plusieurs ensembles d'outils mathématiques

• InterSystems IRIS consolide sur une seule plate-forme les données de modélisation d'entrée et de sortie, maintient l'historisation et la version des calculs

• Grâce à InterSystems IRIS, l'intelligence artificielle peut être à la fois utilisée comme mécanisme analytique spécialisé ou intégrée dans OLTP et des solutions d'intégration

Pour ceux qui ont lu cet article et se sont intéressés aux capacités d'InterSystems IRIS en tant que plate-forme pour développer et déployer des mécanismes d'apprentissage automatique et d'intelligence artificielle, nous proposons une discussion plus approfondie des scénarios potentiels qui sont pertinents pour votre entreprise, et une définition collaborative des prochaines étapes. L'e-mail de contact de notre équipe d'experts AI / ML est MLToolkit@intersystems.com .

Source: https://habr.com/ru/post/fr478822/


All Articles