Accès au modèle ML via ONNX Helper

Utilisez la bibliothèque ONNX Helper pour accéder facilement à un modèle d’apprentissage automatique (ML) entraîné enregistré au format de fichier « .onnx ». ONNX, abréviation de Open Neural Network Exchange, est un format interopérable standardisé pour les modèles ML entraînés.

Bien qu'il existe une bibliothèque Java standard, son utilisation nécessite des connaissances techniques relativement avancées. ONNX Helper est une bibliothèque complémentaire téléchargeable gratuitement pour n'importe quelle édition d'AnyLogic (Personal Learning Edition, University ou Professional). Grâce à un seul objet et à une seule fonction, il fournit un moyen simple et facile d'interroger des modèles ML.

Télécharger la bibliothèque

Dans de nombreux cas, il est souhaitable d'incorporer des modèles d'apprentissage automatique (ML) entraînés dans votre modèle de simulation. Voici quelques exemples concrets, basés sur nos cas de banc d'essai ML :

  • Remplacement des temps de trajet statiques ou basés sur la distribution par un modèle ML entraîné sur des données réelles. Le modèle utilise des entrées de date et d'heure pour prédire la durée du trajet.
  • Intégration du même modèle ML, utilisé dans une installation de remise à neuf réelle pour classer la réparabilité des composants entrants, dans un modèle de simulation de l'installation pour une précision accrue.
  • Montrer visuellement et statistiquement l'impact et les performances globales d'un modèle de ML entraîné à contrôler la vitesse des machines (par exemple, à l'aide de l'apprentissage par renforcement) avant que le modèle ne soit déployé dans le monde réel.

Dans ce type de cas, les données d'entrée sont récupérées et prétraitées avant d'être utilisées pour entraîner un modèle ML avec l'une des nombreuses bibliothèques ML disponibles : PyTorch, TensorFlow, caret, DL4J, etc. Une fois qu'un modèle de ML est entraîné avec des données, il peut être exporté dans un fichier et appelé ultérieurement pour fournir des prédictions (par exemple, par des appareils de périphérie ou dans des modèles de simulation).

L'un de ces types de fichiers, avec l'extension « .onnx », provient d'ONNX, le Échange de réseaux neuronaux ouverts. Son objectif est de fournir un écosystème ouvert qui permet d'éviter que les modèles de ML ne soient enfermés dans un cadre spécifique. Les modèles ML au format ONNX peuvent être importés et appelés à partir de nombreux cadres différents, et il prend en charge à la fois plusieurs plates-formes et plusieurs langues.

Objet d'assistance pour une intégration transparente

Bien qu'il existe une bibliothèque Java d'exécution ONNX établie, son orientation vers les utilisateurs techniques de Java constitue un obstacle pour les utilisateurs d'AnyLogic plus orientés vers les affaires. Au contraire, la bibliothèque AnyLogic ONNX Helper fonctionne en servant d'abstraction de la bibliothèque d'exécution standard. Il dispose d'une fonctionnalité intégrée pour gérer le code de routine nécessaire pour interagir avec lui. Cela simplifie considérablement la façon dont les utilisateurs finaux peuvent demander des requêtes sur leurs modèles ML formés, ouvrant ainsi l'accessibilité à toute personne intéressée.

L'objet de cette bibliothèque (ONNX Helper) représente une connexion unique à un fichier ONNX (.onnx). Si vous souhaitez effectuer une requête à partir de plusieurs fichiers ONNX, vous pouvez utiliser plusieurs instances de cet objet.

Un flux de travail montrant comment configurer et incorporer des modèles ML dans AnyLogic via l'aide ONNX
télécharger la bibliothèque

Après avoir fait glisser une instance de l'objet d'assistance dans votre modèle, sa seule propriété est de référencer le fichier ONNX souhaité (en tant que chemin d'accès local ou absolu). L'objet helper a une fonction de prédiction de base avec quelques variantes en fonction de vos préférences et une poignée de fonctions diverses pour les opérations courantes.

Si vous exécutez le modèle de simulation, vous pouvez cliquer sur l'objet d'assistance pour afficher des informations sur le modèle ONNX, notamment :

  • Le nom du fichier.
  • Le nom, la forme et le type de données de toutes les entrées.
  • Nom, forme et type de données de toutes les sorties.

Pour plus d'informations sur ces sujets, consultez le dépôt GitHub du projet et son wiki.

Exemples de modèles


Les exemples ci-dessous illustrent différents cas d'utilisation et niveaux de complexité ; ils sont disponibles à partir du référentiel GitHub.


  • 01

    Opérations simples

    Modèle d'opérations simple

    En tant que démo des fonctionnalités les plus basiques de la bibliothèque, le modèle utilise un fichier ONNX construit manuellement avec plusieurs entrées et sorties qui utilisent différents types de données. Certaines entrées/sorties permettent également des tableaux de taille variable. Les opérations sur les entrées sont simples : transposition, plafond et multiplication.

    Explorer

  • 02

    Supply Chain (avec ONNX)

    Modèle de chaîne d'approvisionnement (avec ONNX)

    Ce modèle est une variante de l'exemple de modèle intégré « Supply Chain », composé d'un détaillant, d'un grossiste et d'une usine. Il étend l'utilisation d'un tarif fixe et d'une distribution pour la fréquence et la taille de la demande dans le modèle d'origine en incluant une option permettant d'interroger ces informations en fonction des sorties d'un modèle ONNX. Il comprend également une expérience de variation de paramètres, vous permettant de comparer chaque option.

    Le modèle ONNX fourni utilise un réseau neuronal récurrent formé à partir de données réelles fabriquées pour prédire le temps jusqu'à l'arrivée de la prochaine commande, en plus de sa taille en fonction de la période de l'année.

    Explorer

  • 03

    Simple Hospital
    (banc d'essai IA, avec ONNX)

    Modèle hospitalier simple

    La maquette représente un hôpital simplifié où les patients arrivent, y restent un certain temps, puis partent. Deux réseaux neuronaux – et donc deux objets ONNX Helper – sont utilisés. Un réseau neuronal prédit le taux d'arrivée des patients en fonction des taux d'arrivée des derniers jours. La seconde prédit la durée du séjour du patient en fonction de 24 attributs liés à la santé de l'individu.

    Explorer

  • 04

    Prédictions des iris

    Modèle de prédiction des iris

    Il s'agit d'un modèle jouet qui génère aléatoirement des iris de tailles variables. Pour chaque fleur générée, le modèle ONNX fourni tentera de classer laquelle des trois espèces il s'agit en fonction de la taille de ses pétales et de ses sépales.

    Explorer

  • 05

    Devinez les numéros tirés

    Modèle Guess Drawn Numbers

    Il s'agit d'un modèle jouet qui vous permet de dessiner sur une grille de 28x28 en plaçant une série de lignes droites. Le modèle ONNX fourni tentera de deviner quel nombre il « voit ». Un sous-ensemble de la base de données modifiée du National Institute of Standards and Technology a été utilisé pour entraîner le modèle.

    Explorer

Simulation pour l'entraînement et le test de l'IA – Pack d'e-mails

La simulation AnyLogic est la plateforme de formation et de test de l'IA en entreprise. Avec la simulation à usage général AnyLogic, vous pouvez construire des environnements virtuels détaillés et robustes pour l'entraînement et le test de vos modèles d'IA.

Pour en savoir plus sur ce puissant outil d'apprentissage automatique, consultez notre pack d'e-mails et notre livre blanc sur l'IA !

Pack IA et livre blanc