iX 4/2018
S. 40
Titel
Künstliche Intelligenz
Aufmacherbild

Microsofts Cognitive Services für eigene KI-Anwendungen nutzen

Intelligenz im Angebot

Mit maschinellem Lernen können Computerprogramme eigenständig neues Wissen erwerben. Onlinedienste wie Microsofts Cognitive Services erlauben es Entwicklern, mithilfe vorhandener neuronaler Netze eigene Anwendungen zu erstellen.

Mit der Entwicklung von Machine-Learning-Algorithmen lässt sich gut Zeit totschlagen: Ein aufwendiges System kann schon mal tausend Mannstunden erfordern. Alternativ kann man Machine Learning (ML) als „Dienstleistung“ betrachten. Microsoft bietet mit Cognitive Services, die dieser Artikel anhand eines Beispiels vorstellt, genau dies an. Aber auch andere Firmen haben ähnliche Dienste im Angebot (siehe die Tabelle „KI-Dienste im Netz“).

Tabelle: KI-Dienste im Netz

Hinter den von Microsoft einst als „Project Oxford“ gestarteten Services verbirgt sich eine Gruppe parametrisierter Dienste auf Basis künstlicher Intelligenz für Entwickler. Anstatt einen Server anzuschaffen und ihn mit diversen KI-Modellen auszustatten, bezahlt der Entwickler Microsoft im Rahmen eines Azure-Abonnements beispielsweise dafür, Tags aus Bildern zu extrahieren.

Wie in vielen anderen Fällen gilt hier, dass die gesteigerte Effizienz des Entwicklungsprozesses einer der wichtigsten Gründe ist, die für die Nutzung der Cognitive Services sprechen. Wer eine permanente Internetverbindung hat, kann künstliche Intelligenz (KI beziehungsweise Artificial Intelligence, AI) „nach Maß“ zukaufen. Zum Zeitpunkt der Drucklegung dieses Artikels bietet Microsoft einige Dutzend derartiger Dienste an.

Kostenlose Experimente zum Einstieg

Die in Microsoft Azure bereitstehende Startseite (siehe ix.de/ix1804040) unterteilt die Plattform in fünf Teile. Dabei enthält die Rubrik „Vision“ Dienste für die Analyse von Bildern. „Voice“ befasst sich mit TTS (Text-to-Speech) und wandelt Text in Sprache oder Sprache in Text um. Hinter „Language“ verbirgt sich eine Vielzahl linguistischer APIs und in der Rubrik „Knowledge“ warten verschiedene Analysedienste auf ihren Einsatz. Die fünfte Rubrik, „Search“, enthält APIs, die sich auf die Suchmaschine Bing stützen.

Nach dem ersten Anmelden im Portal dürfen Nutzer 30 Tage lang kostenlose Experimente machen. Nach Ablauf dieser Zeit bietet Microsoft das Anlegen eines Azure-Accounts an. Wer dieses Angebot annimmt, dem stehen weitere kostenlose Basiskontingente zur Verfügung. Offensichtlich möchten die Redmonder verstärkt die Aufmerksamkeit der Entwickler in Richtung der hauseigenen Cloud-Dienste leiten.

Hat man ein Azure-Konto angelegt, arbeitet man zunächst am besten den Einrichtungsassistenten ab. Microsoft gewährt für die Dauer von 30 Tagen 200 US-Dollar kostenloser Credits. Nach Ablauf dieser Zeit hat man – zumindest bei korrekter Ressourcenkonfiguration – weiterhin Zugriff auf viele Angebote, die im „Demo-Modus“ mit stark reduzierter Anfragegeschwindigkeit zur Verfügung stehen.

Die folgenden Schritte sollen eine neue Instanz der Face API anlegen, einen Analysedienst, der in Fotos von Gesichtern Gefühle erkennt. Ähnlichkeiten zu den Tracking-Werkzeugen der Kinect, die auf die einst von Ekman und Friesen definierten Animation Units (AUs) zurückgehen, sind übrigens nicht zufällig – die (lesenswerten) Arbeiten der Emotionspsychologen sind die Grundlage fast aller Emotionsanalysen [1].

Der Ressourcengenerator des Azure-Backends ist auch für Cognitive Services verantwortlich (Abb. 1).

Zum Erzeugen einer Anwendung legt man zunächst eine Ressource an. Dabei kann man den Namen der Ressource und das Rechenzentrum, in dem sie angelegt werden soll, beliebig wählen. Anschließend wählt man die Option „AI + Cognitive Services“ aus. Das Backend zeigt dann eine Gruppe vorhandener Ressourcen (siehe Abbildung 1), klickt man auf „See all“, öffnet sich die vollständige Liste. In der Rubrik „Pricing“ muss F0 aktiviert sein. Sowohl die mit S beginnenden Standard- als auch die mit P beginnenden Premium-Level-Klassen würden sonst nach der Einrichtung Kosten verursachen.

SDKs für verschiedene Programmiersprachen

Nach dem erfolgreichen Durchlaufen der Ressourcenprovisionierung findet sich der Anwender normalerweise in der „Startseite“ des jeweiligen Dienstes wieder – von besonderem Interesse ist der Teil, der Informationen zum Aufbau der API und zu den verfügbaren SDKs anbietet.

Microsoft bietet für manche, aber bei Weitem nicht für alle Dienstleistungen des Portfolios ein oder mehrere SDKs an, die die Integration in verschiedene Programmiersprachen erleichtern. Da die Gesichts-API des Beispiels mit einem SDK für Windows ausgestattet ist, soll eine neue Solution in Visual Studio 2017 erzeugt werden. Als Zielplattform soll das „Creators Update“ ausgewählt und eine neue Projektvorlage auf Basis von „Blank App (Universal Windows Platform)“ erzeugt werden. Nach dem erfolgreichen Durchlaufen des Projektgenerators erfolgt ein Wechsel in die NuGet-Konsole, wo das Paket Microsoft.ProjectOxford.Face wie gewohnt in die Solution geladen wird. Das Hinzufügen von Newtonsoft.Json sollte bei der Interaktion mit Webservices mittlerweile reflexartig erfolgen.