Test ou intégration de modèles d’apprentissage automatique

Dans ce scénario, des modèles d’apprentissage automatique (modèle ML) entraînés sont utilisés à partir d’environnements simulés. En d’autres termes, un modèle d’apprentissage automatique est d’abord formé en dehors de l’écosystème AnyLogic. Ensuite, pour évaluer ou utiliser ses capacités prédictives, il peut être inclus dans le modèle de simulation.
Le test ou l’intégration de modèles d’apprentissage automatique nécessite une connexion entre un modèle d’apprentissage automatique formé et le modèle de simulation pendant l’exécution. AnyLogic fournit plusieurs options de connexion, quelle que soit la langue, il a été formé dans et pour les connexions locales et distantes.

Cas d’utilisation Flux de travail et outils

Cas 1 : Modèles d’apprentissage automatique comme alternative aux entrées qui représentent un comportement abstrait dans un modèle

Une utilisation des paramètres d’entrée dans un modèle de simulation consiste à définir un comportement approximatif basé sur les règles causales présentes dans un système réel (par exemple, le temps de retard, le taux d’arrivée, etc.) ; celles-ci sont souvent modélisées comme des variables aléatoires univariées ou, dans certains scénarios, comme un vecteur aléatoire avec des distributions de probabilité multivariées. En remplacement, les modèles ML peuvent être utilisés pour ces types de paramètres d’entrée.


Cas 2 : Utilisation de modèles d’apprentissage automatique pour approximer le comportement des composants dans le système simulé

Lorsque certains composants d’un modèle de simulation sont extrêmement complexes en raison de la nécessité d’un grand niveau de détail, un modèle ML entraîné peut être utilisé comme substitution pour approximer le comportement. Ceci est similaire au cas précédent, mais concerne une composante spécifique du modèle qui peut ne pas être nécessairement abstraite avec une seule valeur (ou distribution). Un exemple évident serait un dispositif physique qui n’est pas facilement modélisable par des méthodes de simulation génériques, mais qui est basé sur des données réelles qui peuvent facilement être approchées avec l’apprentissage automatique.


Cas 3 : Intégration de tous les modèles d’apprentissage automatique déployés existants dans l’environnement simulé pour une précision accrue

Un modèle de simulation doit reproduire les règles d’un système réel – un fait qui s’applique également à toutes les solutions d’IA intégrées existantes dans un système donné. Les règles et les comportements qui sont le résultat direct des solutions d’IA déployées par un système doivent également être incorporés dans la simulation. Le moyen le plus naturel d’y parvenir est d’intégrer directement les solutions d’IA dans la simulation.


Cas 4 : Tester l’impact d’une solution d’IA sur les performances globales du système avant son déploiement

L’objectif de l’intégration de composants d’IA dans un système est d’améliorer les performances globales du système, et pas seulement les composants spécifiques remplacés par l’IA. Il est raisonnable de s’attendre à ce que le déploiement d’une solution d’IA bien entraînée entraîne une amélioration significative de la performance globale du système cible. Cependant, toute perturbation dans un système a le potentiel de déplacer les goulots d’étranglement ou de provoquer d’autres effets d’entraînement. La mise à l’essai d’un modèle entraîné seul (p. ex., à l’aide d’un échantillon de données d’essai) ne permet pas de vérifier que les performances du système modifié - dans son ensemble - sont suffisamment améliorées. Les modèles de simulation peuvent être utilisés comme un environnement virtuel sans risque pour tester les implications de l’intégration de l’IA dans les systèmes existants.


Cas 5 : Visualiser les mathématiques !

Les analystes des données sont familiers avec le problème de montrer et de communiquer l’effet de leurs solutions de ML à ceux qui ne sont pas familiers avec les nuances ou les implications impliquées (par exemple, les clients, les gestionnaires ou les décideurs). L’un des objectifs des logiciels de modélisation de simulation est de présenter le comportement dynamique d’un modèle d’une manière à la fois visuellement attrayante et facilement compréhensible. En tant que tel, il peut être utilisé pour montrer visuellement les performances d’un environnement simulé avec et sans solution d’apprentissage automatique.


Cas 6 : Test des stratégies RL dans l’environnement simulé d’origine

L’objectif ultime de l’apprentissage par renforcement est d’apprendre une politique utile qui peut contrôler de manière optimale un système. Puisque le processus d’apprentissage (formation) se fait dans un environnement simulé, le même modèle de simulation peut également être utilisé pour tester la politique apprise ! L’évaluation des performances de la stratégie apprise serait une étape utile avant de la déployer dans le système réel, un processus généralement appelé « Sim-to-Real Transfer ».

Flux de travail et outils

Le test ou l’intégration de modèles d’apprentissage automatique nécessite une connexion entre un modèle ML formé et un modèle de simulation pendant l’exécution. AnyLogic fournit trois options générales pour se connecter aux modèles ML, quelle que soit la langue, il a été formé dans et pour les connexions locales et distantes.

Accès au modèle ML à l'aide de la bibliothèque ONNX Helper

Accès au modèle ML à l'aide de la bibliothèque ONNX Helper

Utilisation de la bibliothèque ONNX Helper pour accéder à un modèle ML entraîné enregistré au format « .onnx ».

Le format ONNX, abréviation d'Open Neural Network Exchange, est un format standardisé et interopérable pour un modèle de ML entraîné.

Bien qu'il existe une bibliothèque Java compatible, son utilisation nécessite des connaissances techniques relativement avancées. L'assistant ONNX est une bibliothèque complémentaire téléchargeable gratuitement qui est compatible avec toutes les versions d'AnyLogic (PLE, University ou Professional) et offre un moyen simple et facile d'interroger les modèles ML, permettant aux utilisateurs de simplement le faire glisser dans leur modèle et d'utiliser une seule fonction.

Pour en savoir plus
Communication via des appels d’API

Communication via des appels d’API

Communication à distance (via des appels d’API) avec des modèles ML hébergés par des plates-formes ML/AutoML.

Tout modèle ML formé peut être déployé de manière à pouvoir être interrogé via une API. Presque toutes les plates-formes ML / Auto-ML populaires fournissent un mécanisme facile pour le faire prêt à l’emploi. Dans votre simulation, un code simple peut être ajouté pour construire une requête au moment opportun et appliquer la prédiction renvoyée. Ce flux de travail s’éloigne du langage de programmation du modèle ML formé.

Modèle d’apprentissage automatique intégré dans un environnement de simulation

Modèle d’apprentissage automatique intégré dans un environnement de simulation

ML entrainé et intégré localement dans l’environnement de simulation.

L’interrogation locale d’un modèle ML entraîné est possible lorsque la formation était en Java (le langage natif d’AnyLogic) ou lorsque la plate-forme de formation permet d’exporter le modèle ML dans un format utilisable en Java. Par exemple, avec H2O.ai Driverless AI, les modèles entraînés peuvent être téléchargés en tant que MOJOs (Model Objects, Optimized) - un moteur de notation qui peut être déployé dans n’importe quel environnement Java à l’aide de leurs bibliothèques Java.

Accès au modèle d’apprentissage automatique à l’aide de la bibliothèque Pypeline

Accès au modèle d’apprentissage automatique à l’aide de la bibliothèque Pypeline

Utilisation de la bibliothèque Pypeline pour l’accès local à un modèle ML formé basé sur Python.

Si un modèle ML entraîné déployé est accessible par une bibliothèque Python, Pypeline - une bibliothèque AnyLogic personnalisée - peut être utilisé pour l’interroger. Pypeline vous permet d’exécuter des scripts Python avec des arguments ou d’exécuter de manière interactive du code Python à partir de vos modèles AnyLogic, à l’aide d’une installation locale de Python.

Pour en savoir plus