Suchen

Spracherkennung mit neuronalen Netzen Das Cognitive Toolkit legt den Fokus auf Sprache

| Autor / Redakteur: Dipl. Betriebswirt Otto Geißler / Nico Litzel

Das Microsoft Cognitive Toolkit, vormals als Computational Network Toolkit (CNTK) bekannt, ist ein Deep Learning Framework für das Erstellen, Trainieren und Evaluieren von neuronalen Netzen. Im Vergleich zu Googles TensorFlow ist die Open-Source-Lösung von Microsoft eher auf Spracherkennung ausgelegt. Doch letztlich ähneln sich viele Algorithmen oder sind gar identisch.

Firmen zum Thema

Das Microsoft Cognitive Toolkit wurde aus einer Notsituation heraus geboren. Da die damals zur Verfügung stehenden Tools zur Erkennung von Sprache nicht leistungsfähig genug waren, suchte man im Hause Microsoft nach einer besseren Variante.
Das Microsoft Cognitive Toolkit wurde aus einer Notsituation heraus geboren. Da die damals zur Verfügung stehenden Tools zur Erkennung von Sprache nicht leistungsfähig genug waren, suchte man im Hause Microsoft nach einer besseren Variante.
(Bild: © Bits and Splits - stock.adobe.com)

Das Computational Network Toolkit (CNTK) von Microsoft wurde – gemäß dem Chief Speech Scientist bei Microsoft Xuedong Huang – aus einer Notsituation heraus geboren. Da die damals zur Verfügung stehenden Tools zur Erkennung von Sprache für Huang nicht leistungsfähig genug waren, suchte man im Hause Microsoft nach einer besseren Variante.

In der Ankündigung für CNTK ließ das Unternehmen verlauten, dass das Toolkit zu dem Zweck entwickelt wurde, das Geschwindigkeitsproblem bei einer komplexen Sprach- oder Bilderkennung zu lösen. So soll es im Benchmark-Vergleich zu vier weiteren Lösungen, die Entwickler von Deep-Learning-Modellen für die Sprach-und Bilderkennung zum Zeitpunkt der CNTK-Einführung einsetzten, deutlich effizienter sein.

Mehr Performance durch GPU-Skalierung

Microsoft verwies hierfür auf Konkurrenzprodukte wie TensorFlow, Torch, Theano oder Caffe. Der Vorsprung an Performance von CNTK ist vor allem auf ein massives Skalieren der Aufgaben zurückzuführen. Zudem lässt sich CNTK ebenfalls maschinenübergreifend mit einem GPU-Cluster nutzen. Wobei die bis dato verfügbaren Konkurrenz-Tools nur in einem einzigen Gerät verwendet werden konnten.

Microsoft räumt zwar ein, dass Lösungen wie zum Beispiel von Nvidia (Rechner mit vier Titan-X-Grafikkarten) auch eine sehr große Performance aufweisen, aber CNTK insbesondere in verteilten Umgebungen zum Einsatz kommen kann. Damit verweist der IT-Riese vor allem auf GPU-Anbindungen in Microsofts Cloud-Computing-Plattform Azure.

CNTK bietet zwei Build-Versionen: Der CPU-Build nutzt den optimierten Intel MKLML. Wobei der MKLML mit Intel MKL-DNN als eine getrimmte Version von Intel MKL für MKL-DNN zum Einsatz kommt. Die GPU-Variante verwendet optimierte Nvidia-Bibliotheken (zum Beispiel CUB und cuDNN) und unterstützt verteilte Trainings über mehrere GPU und Maschinen hinweg.

Des Weiteren umfasst der GPU-Build die von MSR entwickelten 1-Bit-quantisierten SGD- und Block-Impuls-SGD-Parallel-Trainingsalgorithmen. Diese Technologie ermöglicht ein noch schnelleres verteiltes Training im Framework.

Vielseitige Funktionen des Frameworks

Microsoft hält mit dem Cognitive Toolkit eine große Anzahl an Funktionen für das Trainieren neuronaler Netze und das Deep Learning bereit. So ist das Framework in der Lage, multidimensionale Daten unterschiedlichster Art und Herkunft zu verarbeiten. Gleichzeitig beherrscht es sowohl das überwachte als auch das selbstständige Lernen. Mithilfe des Memory-Sharings und anderer nützlicher Methoden lassen sich selbst sehr große Modelle im GPU-Speicher darstellen.

Viele verfügbare APIs ermöglichen das Trainieren und Evaluieren beziehungsweise Definieren von Netzwerken mit Sprachen wie zum Beispiel Python, C++ oder BrainScript. Der Entwickler kann aus Low-Level-APIs zur schnellen und einfachen Nutzung sowie aus High-Level-APIs für eine flexible Verwendung des Frameworks wählen. In Verbindung mit den Azure-Cloud-Services erhält das Microsoft Cognitive Toolkit zusätzlich Hochgeschwindigkeits-Ressourcen.

Mit Azure lassen sich bereits trainierte Modelle ebenfalls bequem hosten. Auf Wunsch ist ein Echtzeit-Training der Modelle realisierbar. Für die Nutzung trainierter Modelle auf Geräten mit eingeschränkten Ressourcen wie zum Beispiel Smartphones, bietet das Toolkit Werkzeuge für die Komprimierung. Auf diese Weise laufen aufwendige KI-Anwendungen zur Bilderkennung in Echtzeit auch auf Smartphones.

Zahlreiche Anwendungen sind möglich

Zunächst stand das Computational Network Toolkit (CNTK) über Codeplex nur akademischen Einrichtungen unter einer eher restriktiven Lizenz zur Verfügung. Seit April 2015 ist CNTK Open Source und das Werkzeug für maschinelles Lernen in neuronalen Netzwerken kann unter MIT-Lizenz auf Github von allen Interessenten genutzt und verbessert werden. Die erste Beta-Version des freien Toolkits wurde 2016 als Microsoft Cognitive Toolkit präsentiert.

Die Neuronalen Netze werden durch das Toolkit mithilfe von gerichteten Graphen dargestellt. Zahlreiche Funktionen erlauben es, die Prozesse des Deep Learnings zu optimieren und in andere KI-Umgebungen direkt zu integrieren. Das Microsoft Cognitive Toolkit unterstützt beim Evaluieren der Modelle gängige Programmiersprachen wie zum Beispiel C#, BrainScript, Python und Java.

Das Toolkit eignet sich für den Einsatz bei Start-ups im Bereich Deep Learning wie auch in etablierten Unternehmen, die sehr große Datenmengen auswerten möchten. Zentrale Einsatzbereiche des Microsoft Cognitive Toolkits sind Spracherkennung, Bilderkennung oder intelligente Suchalgorithmen. Zudem findet es als wichtige Komponente bei der Erkennung von Sprache in Microsofts hauseigenen digitalem Sprachassistenten Cortana Verwendung. Weitere Einsatzfelder des Frameworks bei Microsoft: Übersetzungen mit dem Skype Translator, Suche mit der Suchmaschine Bing, Mixed-Reality-Brille HoloLens oder Anwendungen in Microsoft Office.

Ein Vorteil des Tools liege außerdem darin, dass man es ebenso gut mit nur einem Rechner wie auch in einer größeren Anzahl an GPU-basierten Computern nutzen kann. Verfügbar ist das Microsoft Cognitive Toolkit für die Betriebssysteme Windows und Linux. Zudem stehen Docker-Images bereit, die den Betrieb in einem Docker-Container auf einem Linux-System gestatten.

Bewertung des Microsoft Cognitive Toolkit

Deep Learning mit dem Microsoft Cognitive Toolkit bietet eine Vielzahl von Vorzügen:

  • Das Microsoft Cognitive Toolkit kann neuronale Netze schnell und effizient trainieren.
  • Es unterstützt verteilte Rechnersysteme mit CPU und GPU.
  • Hoch entwickelte Algorithmen arbeiten zuverlässig und präzise.
  • Qualitativ hochwertige, professionelle Anwendungen aus verschiedenen Bereichen der Künstlichen Intelligenz sind realisierbar.
  • Obwohl das Microsoft Cognitive Toolkit sehr leistungsfähig und gut skalierbar ist, verfügt es über eine eher einfach nutzbare Architektur.
  • Entwickler können auf bereits vertraute Programmiersprachen wie C++ oder Python zurückgreifen. So können integrierte Trainings-Algorithmen nach eigenen Vorstellungen angepasst oder neue entwickelt werden.

Artikelfiles und Artikellinks

(ID:45421569)

Über den Autor