[Gesponsert]

So integrieren Sie KI in Windows-Apps

| Autor: Microsoft

Microsoft's 'Farmbeats'-Technologie nutzt Künstliche Intelligenz und die Cloud, um landwirtschaftliche Produktivität zu steigern. Seit dem Windows 10 Update vom Oktober 2018 können Entwickler ihre KI-Modelle in der Cloud trainieren, um sie anschießend dann auf einem Windows 10-Gerät auf dem neuesten Stand der KI-Technik zu evaluieren.
Microsoft's 'Farmbeats'-Technologie nutzt Künstliche Intelligenz und die Cloud, um landwirtschaftliche Produktivität zu steigern. Seit dem Windows 10 Update vom Oktober 2018 können Entwickler ihre KI-Modelle in der Cloud trainieren, um sie anschießend dann auf einem Windows 10-Gerät auf dem neuesten Stand der KI-Technik zu evaluieren. (Bild: Microsoft)

Mit Windows ML können Sie trainierte Machine-Learning-Modelle in Ihre Windows-Anwendungen integrieren, um sie leistungsfähiger, ansprechender und nützlicher zu machen. Es bietet Ihnen alles, was Sie benötigen, um Ihre ML-Modelle in der Cloud zu trainieren und unter Windows auszuführen – dort, wo diese am meisten Sinn machen.

Für Microsoft dreht sich bei der künstlichen Intelligenz (KI) alles um die Erweiterung des menschlichen Einfallsreichtums durch Technik. Aus dem Grund investieren wir weiterhin in allen Unternehmensbereichen viel in KI. Bereits heute trägt KI in Office 365 zur Steigerung der Arbeitsproduktivität bei, erleichtert die KI in der Foto-App von Windows 10 die Erstellung von Videos und das Durchsuchen von Fotosammlungen und hilft KI Windows Hello, Ihr Gesicht zu erkennen und Sie schnell einzuloggen. Wir nutzen KI auch, um Werbetreibenden dabei zu helfen, tiefergehende Kundenbeziehungen aufzubauen, Ihre Fragen an die Bing-Suche oder Cortana zu beantworten und das Verhalten von Azure-Diensten wie SQL-Datenbank kontinuierlich zu analysieren, um die Leistung automatisch zu optimieren und Sicherheit und Zuverlässigkeit zu verbessern.

Jede dieser KI-Anwendungen basiert auf Machine Learning (ML), mit dessen Hilfe Computer zukünftige Ergebnisse auf der Grundlage historischer Beziehungen und Trends innerhalb eines Datensatzes vorhersagen können. Mit der Veröffentlichung von Windows Machine Learning (Windows ML) im Oktober 2018 im Update für Windows 10 bringen wir die Demokratisierung der KI für Entwickler einen weiteren Schritt voran, indem wir die Fortschritte beim maschinellen Lernen, die wir in unsere eigenen Anwendungen, Dienste und Cloud-Plattformen als Teil von Windows 10 integriert haben, öffentlich zur Verfügung stellen, sodass sie künftig jeder Entwickler zur Erstellung leistungsfähigerer und ansprechenderer Anwendungen nutzen kann. Mit dem Update vom Oktober 2018 können Entwickler ihre KI-Modelle nun in der Cloud trainieren und dann auf einem Windows 10-Gerät auf dem neuesten Stand der KI-Technik evaluieren.

Ein Beispiel aus der Praxis

Hier ein Beispiel: Angenommen, Sie haben einen Wartungsverlauf für eine millionenschwere Maschine in der Fertigung, die an einen Industrieregler mit Windows 10 IoT angeschlossen ist. Nehmen wir ferner an, Sie haben historische Telemetriedaten von dieser Maschine aus der Zeit vor ihrem Ausfall, z. B. über Vibrationen, Betriebstemperatur und Leistungsaufnahme. Mit Machine Learning können Sie der Frage nachgehen: „Welche Veränderungen gab es in den historischen Telemetriedaten vor jedem Ausfall?“.

Das bedeutet, Ihr ML-Modell in der Cloud zu trainieren. Anschließend übertragen Sie diese Erkenntnisse dann auf das Windows 10 IoT-Gerät, das die Maschine steuert oder überwacht. Es kann in Echtzeit auf ähnliches Verhalten achten (d. h. Ihr ML-Modell in der Praxis evaluieren), um vorherzusagen, wann die Maschine ausfallen könnte, bevor sie es tut – und die Produktion vorher zu stoppen. Indem Sie die neuen Telemetriedaten, die während dieses Ereignisses gesammelt wurden, zurück in die Cloud schicken, um Ihr ML-Modell zu optimieren und dann dieses neue ML-Modell wieder auf das lokale Windows 10 IoT-Gerät spielen, können Sie einen positiven Kreislauf der kontinuierlichen Verbesserung kreieren, dank dem die Treffsicherheit Ihrer Ausfallvorhersagen kontinuierlich zunimmt.

Dieses Beispiel bezieht sich lediglich auf die Fertigung, aber die Einsatzmöglichkeiten der Power von Windows ML sind nahezu unbegrenzt. Einige Beispiele sind die Videoverarbeitung zum besseren Verständnis von Laufwegen und Verhalten in Geschäften, die Gesichtserkennung für Sicherheitskameras sowie die Verarbeitung natürlicher Sprache und das Kontextverständnis in E-Commerce-Szenarien. Weitere Einsatzgebiete sind die Verbesserung der Informationstechnologie für Robotik und Drohnen sowie eine Vielzahl von Mensch-Computer-Interaktionsszenarien, in denen maschinelles Lernen Computern helfen kann, mit Menschen auf neuartige, sinnvollere und produktivere Weise zu kommunizieren.

Vorzüge der lokalen Evaluierung eines Machine-Learning-Modells

An dieser Stelle denken Sie sich vielleicht: „Warum nicht einfach alles in der Cloud machen?“ Durch die Evaluierung von vortrainierten ML-Modellen auf Windows-Geräten bietet Windows ML mehrere Vorteile:

  • Geringe Latenzzeiten, Resultate in Echtzeit. ML-Modelle können mit den lokalen Verarbeitungsfunktionen des Windows-Geräts evaluiert werden, was eine lokale Echtzeitanalyse großer Datenmengen wie Bilder und Videos ermöglicht. Die Ergebnisse stehen schnell und effizient für die Verwendung in leistungsintensiven Workloads wie Spiele-Engines oder Hintergrundaufgaben wie der Indexierung für die Suche zur Verfügung.
  • Mehr Flexibilität. Die Möglichkeit, ML-Modelle auf Windows-Geräten zu testen, ermöglicht Ihnen die Abdeckung einer breiteren Palette von Szenarien. So kann beispielsweise eine Evaluierung von ML-Modellen durchgeführt werden, während das Gerät offline ist oder mit Verbindungsunterbrechungen zu kämpfen hat. Auf diese Weise können Sie auch Szenarien in Angriff nehmen, in denen aus Datenschutz- oder Datenhoheitsgründen nicht alle Daten in die Cloud übertragen werden können.
  • Geringere Betriebskosten. Das Trainieren von ML-Modellen in der Cloud und deren lokale Evaluierung auf Windows-Geräten kann zu erheblichen Einsparungen bei Bandbreitenkosten führen, wobei nur minimale Datenmengen an die Cloud gesendet werden – soweit für die kontinuierliche Verbesserung Ihrer ML-Modelle erforderlich.
  • Einfache Entwicklung. Da Windows ML in die neueste Version von Windows 10 integriert ist, benötigen Sie lediglich Visual Studio und ein trainiertes Open Neural Network Exchange (ONNX) Modell, das zusammen mit der Windows-App ausgeliefert werden kann.

Im Folgenden werden wir uns genauer mit der Funktionsweise von Windows ML befassen – einschließlich des Trainings eines maschinellen Lernmodells, der Integration in Ihre Windows-App und der Ausführung auf einem lokalen Windows-Gerät. Außerdem werden wir kurz darauf eingehen, wie Windows ML in die Microsoft IoT-Plattform eingebunden ist und einige Ressourcen vorstellen, dank denen Sie noch heute erste Schritte mit Windows ML machen können.

Windows ML: Ein kurzer technischer Überblick

Struktureller Aufbau von Windows ML.
Struktureller Aufbau von Windows ML. (Bild: Microsoft)

Mit Windows ML können Entwickler trainierte ML-Modelle in Windows-Apps verwenden, die in C#, C++ oder JavaScript geschrieben sind. Da Windows ML jetzt in die neueste Version von Windows 10 integriert ist, gestaltet sich der Prozess einfach und erfordert nur einige wenige unkomplizierte Schritte:

1. Holen Sie sich ein trainiertes ONNX-Modell oder konvertieren Sie Modelle, die in anderen ML-Frameworks trainiert wurden, in ONNX.
2. Fügen Sie die ONNX-Modell-Datei zu Ihrer App hinzu oder ermöglichen Sie dem Zielgerät auf andere Weise Zugriff darauf.
3. Integrieren Sie das Modell in Ihren Anwendungscode, dann erstellen und implementieren Sie die Anwendung.

Wenn Ihre App ausgeführt wird, evaluiert die Windows ML-Laufzeit (welche die ONNX Model Inference Engine enthält) das trainierte Modell lokal auf dem Windows 10-Gerät, ohne dass eine Verbindung erforderlich ist. Windows ML übernimmt die Hardwareabstraktion und ermöglicht es Entwicklern, eine breite Siliziumpalette anzusprechen – einschließlich CPUs, GPUs und in Zukunft KI-spezifische Hardware von verschiedensten Hardwareanbietern – und gleichzeitig hohe Leistung und Zuverlässigkeit zu bieten.

Wie Sie ein ONNX-Modell erhalten

Windows ML wertet Modelle im ONNX-Format aus, einem offenen Format für ML-Modelle, das den Austausch zwischen verschiedenen ML-Frameworks und Tools erlaubt. ONNX wird von Microsoft, Facebook und Amazon Web Services vorangetrieben und von unabhängigen Hardware-Anbietern wie NVIDIA, Intel, Qualcomm und AMD unterstützt.

Um ein ONNX-Modell für die Verwendung mit Windows ML zu erhalten, können Sie:

Training eines ONNX-Modells

ONNX-Modelle sind ein offenes Format, so dass Sie sie auf vielfältige Weise und mit einer Vielzahl von Tools trainiert werden können. Unsere Tutorials sollen Entwicklern den Einstieg in das Training eines Modells zu erleichtern oder zumindest ein besseres Verständnis für die Funktionsweise vermitteln:

Konvertierung von Modellen, die in anderen ML-Frameworks trainiert wurden

WinMLTools ist eine Erweiterung von ONNXMLTools und TF2ONNX. Sie können diese verwenden, um ML-Modelle, die mit verschiedenen anderen Trainings-Frameworks erstellt wurden, für die Verwendung mit Windows ML in ONNX zu konvertieren. WinMLTools unterstützt derzeit die Konvertierung von Apple CoreML, Keras, scikit-learn, lightgbm, xgboost, libSVM und TensorFlow (experimentell). Auch hier haben wir ein praktisches Tutorial erstellt, das Ihnen hilft, die Vorgehensweise zu verstehen.

Integration eines ONNX-Modells in Ihre Windows-App

Nachdem Sie ein trainiertes ONNX-Modell haben, müssen Sie es in Ihre Windows-App integrieren und die .onnx-Modelldateien in Ihre App einbinden. Sie können das Modell über die Windows ML-APIs oder über mlgen, den automatischen Codegenerator von Windows ML, in Ihre App integrieren. Auch hierzu haben wir ein paar Tutorials erstellt, die zeigen, wie das geht und die Ihnen den Einstieg erleichtern:

Wir haben viel Zeit und Mühen investiert, um Entwicklern eine großartige Erfahrung bieten zu können. Alles soll so einfach wie möglich sein. Für Entwickler, die Windows ML-Anwendungen mit Visual Studio 2017 oder höher erstellen, wird mlgen als Visual Studio-Erweiterung bereitgestellt. (In Windows 10 Version 1903 und höher ist mlgen nicht mehr im Windows 10 SDK enthalten, daher müssen Sie die Erweiterung herunterladen und installieren. Es gibt eine für Visual Studio 2017 und eine für Visual Studio 2019.)

Gerätekompatibilität und -leistung

Als Teil von Windows 10 funktioniert Windows ML auf jedem Gerät, auf dem das Update für Windows 10 von Oktober 2018 ausgeführt werden kann – einschließlich IoT-Edge-Geräten mit Windows 10 IoT, 2-in-1-Laptops und Desktop-PCs, Workstations und Servern *1. Die Windows ML-Laufzeitumgebung, einschließlich der ONNX-Modell-Inferenzmaschine, ist auf eine maximale Effizienz auf der gleiche breite Palette von Geräten optimiert. Diese Leistung erreichen wir mit Befehlssatzoptimierungen für moderne CPUs, Hardwarebeschleunigung für alle GPUs mit einem DirectX 12-zertifizierten Treiber und einem Treibermodell, das speziell für zukünftig entwickelte KI-Prozessoren entwickelt wurde.

Unsere Online-Dokumentation enthält einige Tipps zur Optimierung von Performance und Speicherauslastung.

Erwähnenswert ist auch, dass Windows ML ein leistungsstarkes Laden und Ausführen von Modellketten durch eine sorgfältige Optimierung des GPU-Pfades unterstützt. Modellketten werden durch zwei oder mehr Modelle definiert, die sequentiell ausgeführt werden, wobei die Outputs eines Modells zu den Inputs für das nächste Modell in der Kette werden. Näheres über das Verfahren zur Ausführung mehrerer Modelle in einer Kette finden Sie hier.

Eine Erweiterung des Microsoft Azure-Ökosystems

Windows ML ist für die Arbeit mit der Microsoft Azure AI-Plattform und damit der breiteren Azure-Plattform als Ganzes konzipiert. So verfügen Sie über alle Cloud-Dienste, die Sie brauchen, um eine umfassende Lösung bereitstellen zu können. Dazu gehören umfangreiche Ressourcen für die Erstellung und das Training Ihrer ML-Modelle, wie z.B. Azure Batch AI, Azure Machine Learning Service, Data Science Virtual Machines und Machine Learning Studio. Sogar unsere Hardware ist für KI optimiert, einschließlich der neuesten GPU-Technologie und FPGA-beschleunigter KI-Modelle und -Netzwerke. Das gibt Ihnen die Leistung und Flexibilität, Ihre ML-Modelle in höchster Qualität zu trainieren.

Windows ML funktioniert auch mit dem Microsoft IoT-Ökosystem, einschließlich der Azure IoT-Dienste. Mit Azure IoT Edge können Sie beispielsweise Ihre Windows ML-Anwendungen und ONNX-Modelle auf Geräten mit Windows 10 IoT einsetzen, um eine Verarbeitung komplexer Ereignisse, maschinelles Lernen, Bilderkennung und andere hochwertige KI-Funktionen auf diesen Geräten bereitzustellen. Sie sind darauf ausgelegt, zusammenzuarbeiten, mit minimalem Aufwand und Komplexität. Dadurch ist es einfach, Ihre ML-Modelle in der Cloud zu trainieren und lokal „kurz vor knapp” auszuwerten – auch in Offline-Situationen oder mit sporadischer Konnektivität.

Fazit

Mit Windows ML können Sie trainierte ML-Modelle in Ihre Windows-Anwendungen integrieren, um sie leistungsfähiger, ansprechender und nützlicher zu machen. Egal, ob es sich um Videoerkennung, Gesichtserkennung, Sprachverarbeitung, Kontextverständnis, robotische Intelligenz oder eine Vielzahl anderer Anwendungen handelt, Es bietet Ihnen alles, was Sie benötigen, um Ihre ML-Modelle in der Cloud zu trainieren und unter Windows auszuführen – dort, wo diese am meisten Sinn machen. Umfangreiche vorkonfigurierte Funktionen und die Zusammenarbeit mit Visual Studio erleichtern Entwicklern die Arbeit, so dass sie ML-fähige Anwendungen schnell und einfach erstellen und bereitstellen können.

Weitere nützliche Ressourcen

In der technischen Übersicht oben haben wir einige Links zu Tutorials aufgelistet, die Entwicklern den Einstieg in Windows ML erleichtern sollen. Hier sind einige andere nützliche Ressourcen:

* 1 Windows ML ist nur als Teil der Desktop-Installationsoption von Windows Server 2019 verfügbar.