Modifier

Machine Teaching avec des systèmes autonomes Projet Bonsai

Azure Container Instances
Azure Container Registry
Stockage Azure

Idées de solution

Cet article présente une idée de solution. Si vous souhaitez nous voir développer le contenu avec d’autres informations, telles que des cas d’usage potentiels, d’autres services, des considérations d’implémentation ou un guide des prix, faites-le-nous savoir avec les Commentaires de GitHub.

Découvrez comment Projet Bonsai développe et déploie des systèmes autonomes utilisant le Machine Teaching, l’apprentissage par renforcement profond et des simulations.

Architecture

Projet Bonsai accélère la création d’une automatisation par intelligence artificielle. Le développement et le déploiement se décomposent en trois phases : Créer, Effectuer l'apprentissage et Déployer.

Diagram that shows the architecture of Project Bonsai.

Téléchargez un fichier Visio de cette architecture.

Dataflow

  1. La phase Créer consiste à concevoir le programme de Machine Teaching et à se connecter à un simulateur d'apprentissage spécifique au domaine. Les simulateurs génèrent suffisamment de données d'apprentissage pour les expériences et la pratique.

    Les experts en la matière sans formation en IA peuvent exprimer leur expertise sous forme d'étapes, de tâches, de critères et de résultats souhaités. Les ingénieurs qui conçoivent des systèmes autonomes créent des modèles précis et détaillés de systèmes et d'environnements, et les rendent intelligents à l'aide de méthodes telles que l'apprentissage profond, l'apprentissage par imitation et l'apprentissage par renforcement.

  2. Au cours de la phase Effectuer l'apprentissage, le moteur d'apprentissage automatise la génération et l'apprentissage des modèles DRL en combinant des modèles de domaine de haut niveau avec des algorithmes DRL appropriés et des réseaux neuronaux.

    Les simulations contribuent à l'apprentissage des modèles dans différents types de scénarios et de conditions environnementales, beaucoup plus rapidement que ce qui est possible dans le monde réel, et en toute sécurité. Les experts peuvent superviser les agents qui travaillent à la résolution de problèmes dans les environnements simulés, et fournir un feedback et des conseils afin de permettre aux agents de s'adapter de façon dynamique dans le cadre de la simulation.

  3. La phase Déployer déploie le cerveau formé sur l'application cible du cloud, l'application cible locale ou l'application cible intégrée localement. Des kits de développement logiciel (SDK) et des API de déploiement spécifiques permettent de déployer des systèmes d'IA formés sur diverses applications cibles, d'effectuer le réglage des machines et de contrôler les systèmes physiques.

    Au terme de l'apprentissage, les ingénieurs déploient ces agents formés dans le monde réel, où ils utilisent leurs connaissances pour alimenter des systèmes autonomes.

Composants

  • Projet Bonsai simplifie l'apprentissage de la machine avec DRL pour former et déployer des systèmes autonomes intelligents.

  • Azure Container Registry est un service de registre Docker privé géré utilisé pour stocker et gérer des images et artefacts conteneur pour tous les types de déploiements de conteneurs. Les images sont stockées en toute sécurité et peuvent être répliquées dans d'autres régions pour accélérer le déploiement. Vous pouvez créer des builds à la demande ou des builds automatisés avec des déclencheurs, tels que des validations du code source et des mises à jour d’images de base. Container Registry est basé sur le registre Docker open source 2.0.

    Cette architecture utilise le niveau de base de Container Registry pour stocker les cerveaux exportés et les simulateurs chargés.

  • Azure Container Instances exécute des conteneurs à la demande dans un environnement Microsoft Azure serverless. Container Instances est l’outil le plus simple et le plus rapide pour exécuter un conteneur dans Azure, sans avoir à configurer des machines virtuelles ou à adopter un service de niveau supérieur.

    Cette architecture utilise Container Instances pour exécuter des simulations.

  • Stockage Azure est une solution de stockage cloud qui comprend le stockage d’objets, de blobs, de fichiers, de disques, de files d’attente et de tables.

    Cette architecture utilise Stockage Azure pour stocker les simulateurs téléchargés sous forme de fichiers ZIP.

Détails du scénario

L'intelligence artificielle (IA) et le Machine Learning offrent des opportunités et des défis uniques en termes d'automatisation des systèmes industriels complexes. Le Machine Teaching est un nouveau paradigme dédié à la création de systèmes de Machine Learning qui se concentre sur la génération et le déploiement de modèles, au détriment des algorithmes.

Le Machine Teaching insuffle de l'expertise technique dans les modèles des systèmes d'IA automatisés grâce à l'apprentissage par renforcement profond (DRL) et à la simulation. Le fait de faire abstraction de la complexité de l'IA pour se concentrer sur l'expertise technique et les conditions réelles crée des modèles qui transforment les systèmes de contrôle automatisés en systèmes autonomes.

Les systèmes autonomes sont des systèmes de contrôle automatisés qui :

  • Utilisent l’apprentissage automatique pour combiner les connaissances du domaine humain avec l’IA et le Machine Learning.
  • Automatisent la génération et la gestion des modèles et algorithmes DRL.
  • Intégrez des simulations pour l'optimisation et la scalabilité des modèles pendant l'apprentissage.
  • Déployez et mettez à l'échelle pour une utilisation dans le monde réel.

Cas d’usage potentiels

Cette solution est idéale pour les secteurs de l’éducation, des installations, de l’immobilier, de la fabrication, du gouvernement, de l’automobile, des médias et du divertissement. Projet Bonsai accélère la création d’une automatisation par intelligence artificielle dans le but d’améliorer la qualité et l’efficacité d’un produit tout en réduisant les temps d’arrêt. Il est désormais disponible en préversion et vous pouvez l’utiliser pour automatiser les systèmes. Considérez Bonsai lorsque vous rencontrez des problèmes tels que :

  • les systèmes de contrôle existants présentent des fragilités lors de leur déploiement ;
  • la logique de Machine Learning ne couvre pas correctement l'ensemble des scénarios ;
  • la description du comportement système souhaité nécessite des experts techniques qui comprennent le domaine associé au problème ;
  • il est difficile, voire impossible, de générer suffisamment de données réelles pour couvrir tous les scénarios ;
  • les systèmes de contrôle traditionnels sont difficiles à déployer et à adapter au monde réel.

Le Machine Teaching fait le lien entre la science et les logiciels d'IA, d'une part, et l'ingénierie traditionnelle et l'expertise technique, d'autre part. Les exemples d’applications incluent :

  • Contrôle de mouvement
  • Étalonnage de la machine
  • Bâtiments intelligents
  • Robotique industrielle
  • Contrôle du processus

Déployer ce scénario

Les implémentations suivantes sont des exemples de déploiement. Vous pouvez suivre les ressources pour comprendre comment ces solutions ont été conçues. Utilisez Projet Bonsai pour générer et déployer votre propre solution.

Service de Machine Teaching

Vous pouvez utiliser Bonsai pour :

  • effectuer l'apprentissage des cerveaux adaptatifs avec des buts et objectifs d'apprentissage intuitifs, des évaluations de réussite en temps réel et un contrôle automatique des versions ;
  • intégrer des simulations d'apprentissage qui implémentent des problèmes réels et fournissent un feedback réaliste ;
  • Exporter des cerveaux formés et les déployer localement, dans le cloud, sur des appareils IoT Edge ou sur des appareils incorporés.

Voici l’interface utilisateur de Bonsai :

Bonsai user interface

Dans Bonsai, des clusters de processeurs graphiques (GPU) Azure managés assurent l'apprentissage de l'IA sur des réseaux neuronaux complexes à grande échelle, avec une prise en charge intégrée pour les nouveaux apprentissages et l'analyse des versions du système d'IA. Les infrastructures de déploiement et d'exécution empaquètent et déploient à grande échelle les modèles de système d'IA qui en résultent.

La plateforme Bonsai est exécutée sur Azure et les coûts des ressources sont facturés à votre abonnement Azure.

Inkling

Inkling est un langage de programmation déclaratif et statiquement typé destiné à l'apprentissage de l'IA dans Bonsai. Inkling fait abstraction des algorithmes d'IA dynamiques qui nécessitent une expertise en Machine Learning, ce qui permet à un plus grand nombre de développeurs de programmer l'IA. Un fichier Inkling définit les concepts nécessaires à l'apprentissage de l'IA ainsi que le programme de formation, ou les méthodes d'enseignement des concepts.

Inkling example

Moteur d'apprentissage

Le moteur d'apprentissage de Bonsai compile des programmes de Machine Teaching pour générer et former automatiquement des systèmes d'IA. Elle effectue les opérations suivantes :

  • automatise la génération, la gestion et le paramétrage des modèles ;
  • Définit l’architecture du réseau neuronal. Spécifie les caractéristiques, comme le nombre de couches et la topologie, sélectionne le meilleur algorithme DRL et ajuste les hyper-paramètres du modèle ;
  • se connecte au simulateur et orchestre l'apprentissage.

De même qu'un compilateur de langage cache le code machine au programmeur, le moteur de formation cache les détails des modèles d'apprentissage automatique et des algorithmes DRL. Au fur et à mesure que de nouveaux algorithmes et topologies de réseau sont inventés, le moteur de formation peut recompiler les mêmes programmes d'apprentissage de la machine pour les exploiter.

Exemple Cartpole

Bonsai comprend deux exemples de Machine Teaching, Cartpole et Moab.

L’exemple Cartpole a un poteau attaché à un chariot par une jointure non activée. Le chariot se déplace le long d’une piste sans friction et le pôle se déplace vers l’avant et l’arrière, en fonction des mouvements du chariot. Les informations disponibles sur les capteurs sont la position et la vitesse du chariot, ainsi que l'angle du poteau et la vitesse angulaire. Les actions prises en charge par l'agent consistent à pousser le chariot vers la gauche ou la droite.

Le poteau démarre droit, et l’objectif est de le garder droit au fur et à mesure que le chariot se déplace. Il y a une récompense générée pour chaque intervalle pour laquelle le poteau reste droit. Un épisode d'entraînement se termine lorsque le poteau s'écarte de plus de 15 degrés de la verticale, ou lorsque le chariot se déplace de plus d'un nombre prédéfini d'unités du centre de la piste.

L'exemple utilise le langage Inkling pour écrire le programme de Machine Teaching ainsi que le simulateur Cartpole fourni pour accélérer et améliorer l'apprentissage.

A depiction of the Cartpole simulator, and some Inkling code

La capture d'écran suivante de Bonsai illustre la progression de l'apprentissage Cartpole, avec la Satisfaction de l'objectif sur l'axe des Y et les Itérations d'apprentissage sur l'axe des X. Le tableau de bord indique également le pourcentage de satisfaction de l'objectif et le temps total d'apprentissage écoulé.

Bonsai dashboard showing the Cartpole training example

Pour plus d'informations sur l'exemple Cartpole ou pour l'essayer vous-même, consultez :

Simulateurs

Les simulations modélisent un système dans une représentation virtuelle de son environnement physique. Les simulations constituent une approche alternative à la création manuelle de stratégies d'apprentissage ou à la collecte de grandes quantités de données d'apprentissage dans le monde réel. Les simulations permettent un apprentissage dans des environnements dangereux, ou dans des conditions difficiles à reproduire dans le monde réel.

Les simulations constituent la source d'apprentissage idéale pour le DRL, car elles :

  • Peuvent créer des environnements personnalisés de manière flexible.
  • Sont sûres et économiques pour la génération de données.
  • Peuvent s’exécuter simultanément sur plusieurs machines d’entraînement pour accélérer l’entraînement.

Les simulations sont disponibles dans un large éventail de secteurs d'activité et de systèmes, comme le génie mécanique et électrique, les véhicules autonomes, la sécurité et la mise en réseau, le transport et la logistique, et la robotique.

Exemples d'outils de simulation :

  • Simulink, outil de programmation graphique développé par MathWorks pour la modélisation, la simulation et l'analyse de systèmes dynamiques
  • Gazebo, qui simule avec précision des populations de robots dans des environnements intérieurs et extérieurs complexes
  • Microsoft AirSim, plateforme de simulation robotique open source

La plateforme Bonsai comprend Simulink et AnyLogic, et d'autres simulateurs. Vous pouvez également en ajouter d’autres.

AirSim

Microsoft AirSim (Aerial Informatics and Robotics Simulation) est une plateforme de simulation robotique open source conçue pour l'apprentissage de systèmes autonomes. AirSim permet aux concepteurs et aux développeurs de disposer d'un outil de simulation réaliste afin de générer les grandes quantités de données dont ils ont besoin pour l'apprentissage et le débogage des modèles.

AirSim peut capturer des données pour des véhicules terrestres, de robots à roues, de drones aériens et même d'appareils IoT statiques, sans opérations de terrain coûteuses.

AirSim screenshot

AirSim fonctionne comme un plug-in de l'éditeur Unreal Engine d'Epic Games. Il permet de contrôler les environnements de construction et de simuler des événements réels difficiles à reproduire afin de capturer des données significatives. AirSim exploite le rendu, la physique et le calcul de perception du moteur de jeu actuel pour créer une simulation précise et réaliste.

Ce réalisme, basé sur les données fidèles au terrain générées efficacement, permet d'étudier et d'exécuter des missions complexes qui s'avéreraient longues ou risquées dans le monde réel. Par exemple, AirSim fournit des environnements réalistes, une dynamique des véhicules et une détection multimodale pour les chercheurs qui conçoivent des véhicules autonomes. Les collisions en simulateur ne coûtent pratiquement rien, mais fournissent des informations utiles pour améliorer la conception du système.

Vous pouvez utiliser un modèle Azure Resource Manager (ARM) pour créer automatiquement un environnement de développement, et coder et déboguer une application Python connectée à AirSim dans Visual Studio Code. Pour plus d'informations, consultez Environnement de développement AirSim sur Azure.

Contributeurs

Cet article est géré par Microsoft. Il a été écrit à l’origine par les contributeurs suivants.

Auteur principal :

Jose Contreras | Principal Software Engineering Manager

Étapes suivantes