Bearbeiten

Machine Teaching mit autonomen Projekt Bonsai-Systemen

Azure Container Instances
Azure Container Registry
Azure Storage

Lösungsmöglichkeiten

Dieser Artikel ist ein Lösungsvorschlag. Wenn Sie möchten, dass wir diesen Artikel um weitere Informationen ergänzen, z. B. potenzielle Anwendungsfälle, alternative Dienste, Überlegungen zur Implementierung oder Preisempfehlungen, lassen Sie es uns über Feedback auf GitHub wissen.

Hier erfahren Sie, wie Projekt Bonsai Machine Teaching, Deep Learning mit Bestärkung (Vertiefung) und Simulationen verwendet, um autonome Systeme zu erstellen und bereitzustellen.

Aufbau

Projekt Bonsai beschleunigt die Erstellung einer KI-gestützten Automatisierung. Die Entwicklung und Bereitstellung besteht aus drei Phasen: Erstellen, Trainieren und Bereitstellen.

Diagram that shows the architecture of Project Bonsai.

Laden Sie eine Visio-Datei dieser Architektur herunter.

Datenfluss

  1. Die Erstellungsphase besteht darin, das Machine Teaching-Programm zu schreiben und eine Verbindung mit einem fachgebietsspezifischen Trainingssimulator herzustellen. Simulatoren erzeugen genügend Trainingsdaten für Experimente und Machine Teaching-Vorgehensweisen.

    Fachexperten ohne KI-Hintergrund können ihr Fachwissen in Form von Schritten, Aufgaben, Kriterien und gewünschten Ergebnissen ausdrücken. Techniker entwickeln autonome Systeme, erstellen genaue, detaillierte Modelle von Systemen und Umgebungen und machen diese Modelle mit Methoden wie Deep Learning, Imitation Learning (Lernen über Imitation) und Reinforcement Learning (bestärkendes Lernen) intelligent.

  2. In der Trainingsphase automatisiert die Trainings-Engine die Erzeugung und das Training des Deep Learning mit Bestärkung-Modells, indem abstrakte Fachgebietsmodelle mit geeigneten Algorithmen und neuronalen Netzen für Deep Learning mit Bestärkung kombiniert werden.

    Durch Simulationen werden die Modelle unter verschiedenen Umweltbedingungen und Szenarien viel schneller und sicherer trainiert, als dies in der realen Welt möglich ist. Experten können die Agents beaufsichtigen, während diese Probleme in simulierten Umgebungen lösen, und Feedback und Anleitung geben, über die die Agents sich innerhalb der Simulation dynamisch anpassen können.

  3. In der Bereitstellungsphase wird das trainierte Gehirn (Modell) für die Zielanwendung in der Cloud, lokal oder direkt eingebettet bereitgestellt. Bestimmte SDKs und Bereitstellungs-APIs stellen trainierte KI-Systeme für verschiedene Zielanwendungen bereit, führen Maschinenoptimierung aus und steuern die physischen Systeme.

    Nachdem das Trainieren abgeschlossen ist, stellen Techniker diese trainierten Agents für die reale Welt bereit, wo die Agents ihr antrainiertes Wissen dazu nutzen, autonome Systeme zu speisen.

Komponenten

  • Das Projekt Bonsai vereinfacht das maschinelle Lernen mit DRL, um intelligente autonome Systeme zu trainieren und einzusetzen.

  • Azure Container Registry ist ein verwalteter, privater Docker-Registrierungsdienst, der zum Speichern und Verwalten von Containerimages und Artefakten für alle Arten von Containerbereitstellungen verwendet wird. Images werden sicher gespeichert und können in andere Regionen repliziert werden, um die Bereitstellung zu beschleunigen. Sie können bedarfsgesteuert Builds erstellen oder Builds mit Auslösern automatisieren, z. B. Quellcode-Commits und Base-Image-Aktualisierungen. Container Registry basiert auf der Open-Source-Docker-Registrierung 2.0

    Bei dieser Architektur wird die Basisschicht des Containerregisters verwendet, um exportierte Gehirne und hochgeladene Simulatoren zu speichern.

  • Azure Container Instances führt Container bedarfsbasiert in einer serverlosen Microsoft Azure-Umgebung aus. Mithilfe von Container Instances lassen sich Container in Azure am schnellsten und einfachsten ausführen, ohne dass Sie virtuelle Maschinen bereitstellen oder einen übergeordneten Dienst übernehmen müssen.

    Diese Architektur verwendet Container Instances zum Ausführen von Simulationen.

  • Azure Storage ist eine Cloudspeicherlösung, die Objekt-, Blob-, Datei-, Datenträger-, Warteschlangen- und Tabellenspeicher bietet.

    Diese Architektur verwendet Storage, um hochgeladene Simulatoren als ZIP-Dateien zu speichern.

Szenariodetails

Künstliche Intelligenz (KI) und maschinelles Lernen bieten einzigartige Möglichkeiten und Herausforderungen für die Automatisierung komplexer industrieller Systeme. Machine Teaching ist ein neues Paradigma für die Erstellung von ML-Systemen, bei dem der Fokus nicht mehr auf Algorithmen, sondern auf der erfolgreichen Erstellung und Bereitstellung von Modellen liegt.

Machine Teaching bringt über Deep Learning mit Bestärkung (Vertiefung) und Simulationen Fachkenntnisse in automatisiertes Training von KI-Systemen ein. Durch Einhegen der KI-Komplexität über Abstraktion, um sich auf Fachwissen und reale Bedingungen zu konzentrieren, lassen sich Modelle erstellen, mit denen automatisierte Steuerungssysteme in autonome Systeme verwandelt werden.

Autonome Systeme sind automatisierte Steuerungssysteme, die:

  • Machine Teaching verwendet, um menschliches Domänenwissen mit KI und maschinellem Lernen zu kombinieren.
  • Die Generierung und Verwaltung von DRL-Algorithmen und -Modellen zu automatisieren.
  • Integrieren Simulationen zur Optimierung und Skalierbarkeit von Modellen während des Trainings.
  • Bieten Bereitstellung und Skalierung für Verwendung in der realen Welt.

Mögliche Anwendungsfälle

Diese Lösung ist ideal für die Bildungs-, Einrichtungen, Immobilien, Fertigung, Regierung, Automobil- und Medien- und Unterhaltungsindustrie. Projekt Bonsai beschleunigt die Erstellung einer KI-gestützten Automatisierung, um die Qualität und Effizienz von Produkten zu verbessern und gleichzeitig Ausfallzeiten zu reduzieren. Es ist jetzt in der Vorschau verfügbar, und Sie können es zur Automatisierung von Systemen verwenden. Ziehen Sie Bonsai in Betracht, wenn Sie mit Problemen wie diesen konfrontiert sind:

  • Vorhandene Steuerungssysteme sind anfällig, nachdem sie bereitgestellt wurden.
  • Die ML-Logik deckt nicht alle Szenarien geeignet ab.
  • Ein Beschreiben des gewünschten Systemverhaltens erfordert Fachexperten, die den Problembereich verstehen.
  • Es ist schwierig oder unmöglich, genügend reale Daten zu erzeugen, um alle Szenarien abzudecken.
  • Herkömmliche Steuerungssysteme lassen sich schwer für die reale Welt bereitstellen und skalieren.

Machine Teaching verbindet KI-Wissenschaft und -Software mit herkömmlichem Engineering- und Fachwissen. Beispiele für Anwendungen sind:

  • Bewegungssteuerung
  • Maschinenkalibrierung
  • Intelligente Gebäude
  • Industrierobotik
  • Prozesssteuerung

Bereitstellen dieses Szenarios

Die folgenden Implementierungen sind Beispielbereitstellungen. In den Ressourcen erfahren Sie, wie diese Lösungen entworfen wurden. Verwenden Sie Projekt Bonsai, um Ihre eigene Lösung zu erstellen und bereitzustellen.

Machine Teaching-Dienst

Sie können Bonsai für Folgendes verwenden:

  • Trainieren von adaptiven Modellen (Gehirnen) mit intuitive Zielen und Lernzielen, Erfolgsbewertungen in Echtzeit und automatische Versionskontrolle.
  • Integrieren von Trainingssimulationen, in denen reale Probleme implementiert sind und die realistisches Feedback bereitstellen.
  • Exportieren von trainierten Gehirnen und Bereitstellen vor Ort, in der Cloud oder auf IoT-Edge-Geräten oder eingebetteten Geräten.

Nachfolgend sehen Sie die Bonsai-Benutzeroberfläche:

Bonsai user interface

In Bonsai führen verwaltete Azure-GPU-Cluster (Graphics Processing Unit) KI-Training mit komplexen neuronalen Netzen im geeigneten Maßstab mit integrierter Unterstützung für Neutrainieren und Analysieren von KI-Systemversionen aus. Die Bereitstellungs- und Laufzeit-Frameworks bündeln die resultierenden KI-Systemmodelle im geeigneten Maßstab und implementieren sie.

Die Bonsai-Plattform wird unter Azure ausgeführt und verursacht Ressourcenkosten für Ihr Azure-Abonnement.

Inkling

Inkling ist eine deklarative, statisch typisierte Programmiersprache zum Trainieren von KI in Bonsai. Mit Inkling werden die dynamischen KI-Algorithmen, die Fachkenntnisse in Machine Learning erfordern, abstrahiert, sodass mehr Entwickler KI programmieren können. In einer Inkling-Datei werden Konzepte (concept), die zum Trainieren der KI erforderlich sind, und Lehrpläne (curriculum) oder Methoden zum Trainieren der Konzepte definiert.

Inkling example

Trainings-Engine

Die Trainings-Engine in Bonsai kompiliert Machine Teaching-Programme, mit denen KI-Systeme automatisch generiert und trainiert werden können. Sie führt die folgenden Aktionen aus:

  • Automatisiert Modellgenerierung, -verwaltung und -optimierung.
  • Definiert die neurale Netzwerkarchitektur. Es legt Merkmale wie die Anzahl der Schichten und die Topologie fest, wählt den besten DRL-Algorithmus aus und stimmt die Hyperparameter des Modells ab.
  • Stellt eine Verbindung mit dem Simulator her und orchestriert das Training.

Genauso wie ein Sprachcompiler den Maschinencode vor dem Programmierer verbirgt, verbirgt die Trainings-Engine die Details der maschinellen Lernmodelle und DRL-Algorithmen. Wenn neue Algorithmen und Netztopologien erfunden werden, kann das Trainingsmodul dieselben maschinellen Lernprogramme neu kompilieren, um sie zu nutzen.

Cartpole-Beispiel (Wagenstange)

Bonsai umfasst zwei Machine Teaching-Beispiele, Cartpole und Moab.

Das Cartpole-Beispiel hat eine Stange, die über ein nicht aktiviertes Gelenk an einem Wagen befestigt ist. Der Wagen bewegt sich auf einer geraden, reibungsfreien Bahn, und die Stange bewegt sich vorwärts und rückwärts, je nach den Bewegungen des Wagens. Zu den verfügbaren Sensorinformationen gehören die Position und Geschwindigkeit des Wagens sowie der Winkel und die Winkelgeschwindigkeit der Stange. Die unterstützten Agentaktionen sind Schieben des Wagens nach links bzw. rechts.

Die Stange startet nach oben, und das Ziel ist es, sie aufrecht zu halten, während sich der Wagen bewegt. Für jedes Zeitintervall, in dem die Stange aufrecht steht, gibt es eine Belohnung. Eine Trainingssequenz endet, wenn die Stange um mehr als 15 Grad von der Senkrechten abweicht oder wenn sich der Wagen um mehr als eine vordefinierte Anzahl von Einheiten von der Mitte der Bahn entfernt.

Im Beispiel wird die Inkling-Sprache verwendet, um das Machine Teaching-Programm zu schreiben, und wird der bereitgestellte Cartpole-Simulator verwendet, um das Training zu beschleunigen und zu verbessern.

A depiction of the Cartpole simulator, and some Inkling code

Im folgenden Bonsai-Screenshot ist der Cartpole-Trainingsfortschritt gezeigt, mit der Zielübereinstimmung (Goal satisfaction) als y-Achse und den Trainingsiterationen (Training iterations) als x-Achse. Auf dem Dashboard werden auch der Prozentsatz der Zielübereinstimmung und die gesamte verstrichene Trainingszeit angezeigt.

Bonsai dashboard showing the Cartpole training example

Wenn Sie weitere Informationen zu dem Cartpole-Beispiel wünschen oder es selbst ausprobieren möchten, wechseln Sie zu:

Simulatoren

Simulationen modellieren ein System in einer virtuellen Darstellung seiner vorgesehenen physischen Umgebung. Simulationen sind ein alternativer Ansatz, um Lernrichtlinien manuell zu erstellen oder große Mengen an Trainingsdaten aus der realen Welt zu erfassen. Simulationen ermöglichen Trainieren in gefährlichen Umgebungen oder unter Bedingungen, die in der realen Welt schwierig zu reproduzieren sind.

Simulationen sind die ideale Trainingsquelle für Deep Learning mit Bestärkung (DRL), weil Folgendes für sie gilt:

  • Kann flexibel benutzerdefinierte Umgebungen erstellen.
  • Sie sind sicher und kostengünstig für die Datengenerierung.
  • Kann gleichzeitig auf mehreren Trainingsgeräten ausgeführt werden, um das Training zu beschleunigen.

Simulationen sind für ein breites Spektrum von Branchen und Systemen verfügbar, darunter Maschinenbau und Elektrotechnik, autonome Fahrzeuge, Sicherheit und Vernetzung, Transport und Logistik sowie Robotik.

Zu den Simulationstools gehören:

  • Simulink, ein von MathWorks entwickeltes grafisches Programmierwerkzeug zur Modellierung, Simulation und Analyse dynamischer Systeme.
  • Gazebo, das Populationen von Robotern in komplexen Innen- und Außenumgebungen simuliert.
  • Microsoft AirSim, eine Open-Source-Plattform für Robotiksimulationen.

Die Bonsai-Plattform enthält den Simulink- und den AnyLogic-Simulator. Sie können andere hinzufügen.

AirSim

Microsoft AirSim (Aerial Informatics and Robotics Simulation) ist eine Open-Source-Robotik-Simulationsplattform, mit der autonome Systeme trainiert werden können. AirSim stellt Designern und Entwicklern ein realistisches Simulationstool bereit, mit dem sie die großen Datenmengen generieren können, die für das Trainieren und Debuggen von Modellen erforderlich sind.

AirSim kann Daten von Bodenfahrzeugen, Robotern mit Rädern, Flugdrohnen und sogar statischen IoT-Geräten erfassen, ohne dass kostspielige Versuche im Freien erforderlich sind.

AirSim screenshot

AirSim ist ein Plug-In für den Unreal-Engine-Editor von Epic Games. Mit diesem Plug-In können Umgebungen erstellt und schwer reproduzierbare reale Ereignisse simuliert werden, um sinnvolle Daten zu erfassen. AirSim nutzt die aktuelle Rendering-, physische und Wahrnehmungberechnung der jeweiligen Spiel-Engine, um eine exakte, realistische Simulation zu erstellen.

Dieser Realismus, der auf effizient generierten bodengetreuen Daten basiert, ermöglicht die Untersuchung und Durchführung komplexer Missionen, die in der realen Welt zeitaufwändig oder riskant sind. Beispielsweise bietet AirSim realistische Umgebungen, Fahrzeugdynamik und multimodale Sensorik für Forscher, die autonome Fahrzeuge konzipieren. Kollisionen in einem Simulator kosten praktisch nichts, liefern jedoch belastbare Informationen zur Verbesserung des Systementwurfs.

Sie können eine Azure Resource Manager-Vorlage (ARM-Vorlage) verwenden, um automatisch eine Entwicklungsumgebung zu erstellen und eine Python-Anwendung zu codieren und zu debuggen, die mit AirSim in Visual Studio Code verbunden ist. Weitere Informationen finden Sie unter AirSim Development Environment on Azure.

Beitragende

Dieser Artikel wird von Microsoft gepflegt. Er wurde ursprünglich von folgenden Mitwirkenden geschrieben:

Hauptautor:

Jose Contreras | Principal Software Engineering Manager

Nächste Schritte