Intelligence artificielle Robotique InterSystems IRIS

Publié par Sergey Lukyanchikov, Ingénieur conseil, InterSystems

Convenir de la terminologie


Un robot n'a pas besoin d'être grand, humanoïde ou fondamentalement matériel (au sommet de Wikipedia , qui, cependant, après quelques paragraphes adoucit la formulation initiale et permet au robot d'être immatériel). Un robot est un automate au sens algorithmique, un automate de résolution autonome (algorithmique) de certains problèmes. Le détecteur de lumière qui allume les lumières le soir est un robot. Analyser les e-mails vers le client de messagerie "externe" et "interne" - aussi.

L'intelligence artificielle (au sens strict, Wikipédia ne la partage plus) est un algorithme d'extraction des dépendances des données. Il ne résoudra aucun problème par lui-même, pour cela, il doit d'abord être mis en œuvre sous la forme de processus analytiques spécifiques (données d'entrée, modèles, données de sortie, contrôle de processus). Le processus analytique agissant comme «porteur d'intelligence artificielle» peut être démarré par une personne, peut être démarré par un robot. Et s'est arrêté aussi, l'un ou l'autre. Et gérer aussi.

Interaction avec l'environnement


L'intelligence artificielle a en outre besoin de données sous une forme adaptée à l'analyse. Lorsque l'analyste commence à développer le processus analytique, les données sont préparées pour le modèle par l'analyste lui-même. En règle générale, un ensemble de données de volume et de portée suffisants («ensemble de données») est créé sur lequel le modèle est formé et testé. Ayant obtenu un résultat d'une précision satisfaisante (et, dans de plus rares cas, «localement stable» dans le temps), un analyste type considère son travail accompli. Mais vraiment? En fait, ce n'est que la moitié de la bataille. Il est maintenant nécessaire d'assurer le «fonctionnement ininterrompu et efficace» du processus analytique - et l'analyste peut avoir des difficultés avec cela.

Les outils utilisés pour développer des mécanismes d'intelligence artificielle et d'apprentissage automatique, sauf dans les cas les plus simples, ne sont pas adaptés à une interaction productive avec l'environnement extérieur. C'est-à-dire Il est probablement possible de forcer, par exemple, Python à lire et à transformer les données des capteurs dans le processus de production (au moins pendant une courte période). Mais basculer entre plusieurs processus de production et de gestion en fonction de la situation, faire évoluer la puissance de calcul correspondante, gérer toutes sortes «d'exceptions» (inaccessibilité de l'une des sources de données, défaillance de l'infrastructure, problèmes d'interaction utilisateur, etc.) - cela n'est pas destiné à Python . Cela nécessite une plate-forme de gestion et d'intégration des données. Et plus le processus analytique sera chargé, plus il sera varié, plus la barre d'exigences pour les composants d'intégration et de solution «sous-composant» sera élevée. L'analyste, gravitant vers les mécanismes de l'IA, essayant de mettre en œuvre le processus analytique à travers le langage de script de son environnement de modélisation habituel (et les utilitaires développés «pour lui», tels que les «ordinateurs portables»), est confronté à l'incapacité de fournir à son processus analytique une utilisation productive à part entière.

Adaptabilité et adaptabilité


La variabilité de l'environnement se manifeste de différentes manières. Dans certains cas, l'essence et la nature des phénomènes contrôlés par l'intelligence artificielle changeront (entrée d'une entreprise dans de nouveaux domaines d'activité, exigences des régulateurs nationaux et internationaux, évolution des préférences des consommateurs pour les produits d'entreprise, etc.). Dans d'autres, la nature des données provenant de l'environnement (nouveaux équipements avec de nouveaux capteurs, canaux de transmission de données plus efficaces, disponibilité de nouvelles technologies de «marquage» des données, etc.).

Le processus analytique peut-il "se reconstruire" en modifiant la structure de l'environnement? Pour simplifier la question: est-il facile de reconstruire le processus analytique lors du changement de structure de l'environnement? D'après nos observations, la réponse est simple et triste: dans la plupart des implémentations (pas la nôtre!). À notre connaissance, nous devrons réécrire au moins le processus analytique - et souvent l'IA qu'il contient. Cela peut ne pas être littéralement de «l'entrée à la sortie» à réécrire, mais vous devrez ajouter quelque chose à la programmation pour traiter de nouvelles réalités, changer la logique interne du «processus d'application de modèle» lui-même, etc. Et cela peut entraîner une activité extrêmement coûteuse - surtout si l'environnement change de manière dynamique.

Agence: la limite de l'autonomie?


Comme le lecteur l'a probablement déjà remarqué, nous nous dirigeons vers une augmentation de la complexité de la réalité offerte à l'attention de l'intelligence artificielle. Et nous marquons les conséquences possibles pour la "partie instrumentale". Dans l’espoir qu’au final nous trouverons la réponse à tous les défis qui se poseront.

Nous nous sommes rapprochés de la nécessité de doter le processus analytique d'un tel degré d'autonomie lui permettant de faire face non seulement à la variabilité de l'environnement, mais aussi à l'incertitude de son état. Il ne s'agit pas de la nature quantique de l'environnement (bien que nous en parlerons dans l'une des publications suivantes), nous ne parlons que de la probabilité d'obtenir l'état attendu par le processus analytique au moment prévu et dans le «volume» attendu. Par exemple: le processus a «pensé» qu'il gérerait avec la prochaine formation du modèle jusqu'à ce que de nouvelles données pour l'application du modèle arrivent, mais il n'a pas «géré» (pour des raisons objectives, plus d'enregistrements sont entrés dans l'ensemble de formation que d'habitude et la formation sur le modèle a été retardée). Ou bien: le groupe de balisage a ajouté une nouvelle presse au processus, le modèle de vectorisation a déjà été formé sur du nouveau matériel textuel, et le réseau de neurones travaille toujours sur l'ancienne vectorisation et envoie de nouvelles informations extrêmement intéressantes au "scrap". Pour faire face à de telles situations, comme le montre notre pratique, vous pouvez uniquement diviser le processus analytique précédemment unifié en plusieurs composants fonctionnant indépendamment et créer votre propre «projection tampon» de l'environnement pour chaque processus d'agent reçu. Cette action (au revoir, Wikipedia) sera appelée agentisation du processus analytique. Et la qualité communiquée par l'agence au processus analytique (en règle générale, à l'ensemble du système composé de plusieurs processus à la fois) est appelée agence.

Nous définissons la tâche du robot


Essayons de trouver un tel problème, pour la solution duquel une IA robotique avec toutes les propriétés ci-dessus serait nécessaire. Nous n'avons pas à aller loin derrière l'idée, car de nombreux cas et solutions intéressants ont été publiés sur Internet - nous utiliserons l'une de ces «solutions de cas» (à la fois pour l'énoncé du problème et pour la solution en termes d'intelligence artificielle). Notre tâche choisie sera réduite à la classification des déclarations sur le réseau social Twitter («tweets») en «négatives» et «positives» en termes de coloration émotionnelle. Pour former les modèles, nous aurons des échantillons suffisamment grands de tweets «balisés» (c'est-à-dire avec une coloration émotionnelle déjà définie), et nous devrons classer les tweets «non marqués» (c'est-à-dire avec une coloration émotionnelle non définie):

image
Figure 1 Énoncé du problème pour la classification des textes par coloration émotionnelle (analyse des sentiments en anglais)

L'approche de la création de modèles mathématiques capables d'apprendre sur des textes balisés puis de classer par la suite des textes à coloration émotionnelle indéfinie est formulée dans un exemple assez connu publié sur Internet par S. Smetanin.

Les données pour les tâches de cette classe sont aimablement collectées, traitées et publiées par Yu. Rubtsova.

Et là-dessus, nous pourrions commencer à «assembler le robot» - mais nous compliquerons un peu la déclaration classique à une condition: les données balisées et les données non allouées sont fournies au processus analytique sous forme de fichiers de taille standard car le processus «consomme» les fichiers déjà fournis. Ainsi, notre robot devra commencer à travailler sur les volumes minimaux de données de formation, augmentant constamment la précision de la classification en répétant la formation du modèle sur des volumes croissants de données de formation.

Nous allons à l'atelier InterSystems


Montrons par l'exemple de la tâche que nous venons de formuler comment robotiser l'intelligence artificielle à l'aide de la plate-forme InterSystems IRIS et d'un ensemble d'extensions appelé ML Toolkit. En même temps, s'assurer que les processus analytiques que nous créons sont capables d'interagir de manière productive avec l'environnement, sont adaptables, adaptatifs et agents («trois A»).

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

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

  • GÉNÉRATEUR ("générateur") - comme les fichiers sont consommés par d'autres processus, il crée de nouveaux fichiers avec des données d'entrée (marqués comme "positifs" et "négatifs" - tweets et tweets avec une coloration émotionnelle non définie)
  • BUFFER ("buffer") - car les enregistrements sont consommés par d'autres processus, lit les nouveaux enregistrements des fichiers créés par le générateur et supprime ces fichiers après avoir lu les enregistrements
  • ANALYZER («analyseur») - consommant les entrées du tampon de tweets indéfinis, applique un réseau neuronal convolutionnel formé à ces entrées et place les entrées résultantes avec la «probabilité positive» calculée dans le tampon du moniteur; consommant des entrées de tampons de tweets positifs et négatifs, effectue une formation sur le réseau neuronal
  • MONITOR ("monitor") - en consommant les enregistrements traités par l'analyseur à partir de son propre tampon, il surveille les valeurs des mesures d'erreur de classification des tweets par le réseau neuronal au cours de la dernière formation et envoie un signal à l'analyseur sur la nécessité d'une nouvelle formation du réseau neuronal

Nous pouvons représenter schématiquement notre système d'agents de processus métier comme suit:

image
Figure 3 Flux de données de l'agent

Tous les processus de notre système fonctionnent indépendamment les uns des autres, mais en tenant compte des signaux les uns des autres. Par exemple, le signal au début de la formation du fichier suivant avec des enregistrements par le générateur de processus est la suppression du fichier précédent avec les enregistrements par le tampon.

Maintenant sur l'adaptabilité. L'adaptabilité du processus analytique dans notre exemple est réalisée grâce à l '«encapsulation» de l'IA sous la forme d'un élément indépendant de la logique du processus porteur de l'élément, avec l'isolement de ses fonctions principales - formation et application de modèles:

image
Figure 4 Isolement dans l'analyseur de processus analytique des principales fonctions de l'IA - formation et notation des modèles mathématiques

Parce que le fragment du processus de l'analyseur présenté ci-dessus fait partie du «cycle sans fin» (qui commence lorsque le processus de l'analyseur démarre et s'exécute jusqu'à l'arrêt complet du système d'agent), et que les fonctions d'IA sont exécutées en parallèle, le processus a la capacité d'adapter l'IA à la situation: former des modèles si nécessaire , et non-stop pour utiliser la version des modèles à sa disposition. Le besoin de modèles de formation est déterminé par un processus de moniteur adaptatif qui fonctionne indépendamment du processus de l'analyseur et utilise ses propres critères pour évaluer la précision des modèles formés par l'analyseur:

image
Figure 5 Reconnaissance par le moniteur de processus du type de modèle et application de critères appropriés pour évaluer la précision des modèles

Nous nous tournons vers l'adaptabilité. Le processus analytique dans InterSystems IRIS est un processus métier qui a une représentation graphique ou XML comme une séquence d'étapes. Les étapes peuvent, à leur tour, être des séquences d'étapes, de cycles, de tests de condition et d'autres contrôles de processus. Les étapes peuvent exécuter du code de programme pour exécution ou transférer des informations (qui peuvent également être du code de programme) pour exécution vers d'autres processus ou environnements externes.

En particulier, s'il est nécessaire de modifier le processus analytique, nous avons la possibilité de le faire à la fois dans l'éditeur graphique et dans l'IDE. Changer le processus analytique dans un éditeur graphique permet d'adapter la logique du processus sans programmation:

image
Figure 6 Analyseur de processus dans un éditeur graphique avec un menu ouvert pour ajouter des contrôles

Et enfin, l'interaction avec l'environnement. Le composant le plus important de l'environnement, dans notre cas, sera l'environnement de modélisation mathématique Python. Pour garantir l'interaction avec les environnements Python et R, les extensions fonctionnelles correspondantes ont été créées: Python Gateway et R Gateway . Une fonction clé des deux mécanismes est la capacité d'interagir avec l'environnement approprié à l'aide de composants d'intégration pratiques. Nous avons déjà vu le composant pour interagir avec Python dans la configuration de notre système d'agent. De cette manière, les processus métier qui contiennent de l'IA implémentée en Python interagissent avec Python.
Par exemple, le processus d'analyseur contient des fonctions de formation et d'application de modèles, dont l'implémentation en Python dans la plate-forme InterSystems IRIS ressemble à ceci:

image
Figure 7 Implémentation en Python de la plate-forme IRIS InterSystems pour la formation de modèles dans le processus d'analyseur

Chacune des étapes de ce processus est responsable du traitement d'une certaine interaction avec Python: transfert des entrées du contexte du processus IRIS InterSystems vers le contexte Python, passage du code à exécuter en Python, retour de la sortie du contexte Python au contexte du processus IRIS InterSystems.

Le type d'interaction le plus couramment utilisé dans notre exemple est la transmission de code à exécuter en Python:

image
Figure 8 Le code Python hébergé dans un processus d'analyse IRIS InterSystems est envoyé à Python pour exécution

Dans certaines interactions, les données sont renvoyées du contexte Python au contexte du processus IRIS InterSystems:

image
Figure 9 Trace visuelle de la session de processus de l'analyseur avec affichage des informations renvoyées par Python dans l'une des étapes du processus

Nous démarrons le robot


Exécuter le robot dans cet article? Pourquoi pas, voici un enregistrement de notre webinaire, au cours duquel (en plus d'un certain nombre d'autres histoires intéressantes et liées à la robotisation de l'IA!) Le travail du scénario ci-dessus est montré. Étant donné que le temps du webinaire est malheureusement limité - et nous voulons montrer le «travail utile» de notre script robotique de manière aussi compacte et visuelle que possible - nous avons placé ci-dessous un aperçu plus complet des résultats de la formation sur modèle (7 cycles de formation consécutifs au lieu de 3 dans le webinaire):

image

Les résultats sont tout à fait cohérents avec les attentes intuitives: à mesure que l'échantillon d'apprentissage se remplit de tweets positifs et négatifs «marqués», la qualité de notre modèle de classification s'améliore (comme en témoigne l'augmentation de l'aire sous la courbe, la même AUC - Area Under Curve).

Quelles conclusions j'aimerais tirer à la fin de l'article:

  • InterSystems IRIS est une puissante plateforme d'IA pour les processus robotiques
  • L'intelligence artificielle peut être implémentée à la fois dans des environnements externes (par exemple, Python et R avec leurs modules contenant des algorithmes prêts à l'emploi), et dans la plate-forme InterSystems IRIS elle-même (en utilisant des bibliothèques d'algorithmes intégrées ou en écrivant des algorithmes en Python ou R) - InterSystems IRIS fournit une interaction avec des environnements d'IA externes, vous permettant de combiner leurs capacités avec leurs propres fonctionnalités
  • InterSystems IRIS robots AI utilisant "trois A": processus métier adaptables, adaptatifs et agents (ce sont aussi des processus analytiques)
  • InterSystems IRIS fonctionne avec l'IA externe (Python, R) à travers des ensembles d'interactions spécialisées: transfert / retour de données, transfert de code pour exécution, etc. Dans le cadre d'un processus analytique, des interactions avec plusieurs environnements de modélisation mathématique peuvent être réalisées.
  • InterSystems IRIS consolide les données d'entrée et de sortie du modèle sur une seule plateforme, historise et versionne les calculs
  • Grâce à InterSystems IRIS, l'intelligence artificielle peut être utilisée à la fois dans des mécanismes analytiques spécialisés et intégrée dans des solutions OLTP ou d'intégration.

Pour ceux qui lisent l'article et s'intéressent aux capacités d'InterSystems IRIS en tant que plate-forme pour développer ou déployer des mécanismes d'intelligence artificielle et d'apprentissage automatique, nous vous suggérons de discuter de scénarios possibles présentant un intérêt pour votre entreprise. Nous analyserons facilement les besoins de votre entreprise et déterminerons conjointement un plan d'action; L'e-mail de contact de notre équipe d'experts AI / ML est MLToolkit@intersystems.com .

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


All Articles