Freigeben über



Dezember 2017

Band 32, Nummer 12

Künstlich intelligent: Informationen zu Azure Machine Learning Workbench

Von Frank La La | Dezember 2017

Frank LaVigneIn den letzten beiden Kolumnen habe ich die Funktionen und Dienste von Azure Machine Learning Studio untersucht. Im September 2017 kündigte Microsoft eine neue Suite von Tools für Machine Learning (ML) in Azure an. Der Grundbaustein dieser neuen Tools ist Azure Machine Learning Workbench. Doch was könnte besser für ML sein, als die einfache Drag & Drop-Benutzeroberfläche von Machine Learning Studio?

Machine Learning Studio ist ein ideales Tool, um ML-Modelle zu erstellen, ohne Code schreiben zu müssen, ist aber in einigen Bereichen nicht ausreichend. Die Einfachheit des Tools erfordert in erster Linie einen „Blackboxansatz“. Es gibt keine Einsicht in die verwendeten Algorithmen. Außerdem können nur Parameter, die in der Benutzeroberfläche zur Verfügung stehen, manipuliert werden. Quellcodeverwaltung ist praktisch nicht vorhanden. Während der Ausführungsverlauf es ermöglicht, auf frühere Versionen eines Projekts zuzugreifen, fehlt Machine Learning Studio die Integration in herkömmliche Quellcodeverwaltungstools wie Git. Schließlich stellt die Verwaltung der Bereitstellung von Modellen, die als Webdienste bereitgestellt werden, eine einzigartige Herausforderung dar.

Seit dem Start von Machine Learning Studio im Jahr 2015 sammelt das Team Feedback von großen und kleinen Unternehmen bzw. Benutzern. Das Team hat dieses Feedback aufgenommen und mit Machine Learning Workbench etwas ganz Einzigartiges geschaffen: ein Tool, das die Anforderungen von ML-Profis aller Kategorien erfüllt.

Erstellen von Machine Learning-Konten

Machine Learning Workbench erfordert die Bereitstellung von Machine Learning Konten in Azure. Navigieren Sie zum Azure-Portal (portal.azure.com), und klicken Sie in der oberen linken Ecke auf die Schaltfläche „Neu“. Geben Sie in das angezeigte Textfeld „Machine Learning-Experimentieren“ ein, und klicken Sie auf das erste Ergebnis. Klicken Sie auf dem folgenden Blatt am unteren Rand des Bildschirms auf die Schaltfläche „Erstellen“.

Als nächstes wird ein Blatt angezeigt, auf dem einige Informationen abgefragt werden, die zur Erstellung des Diensts verwendet werden. Sie können einen beliebigen Namen auswählen, der die Validierungsanforderungen erfüllt. In Abbildung 1 sehen Sie die von mir ausgewählten Werte. Zurzeit ist dieser Dienst nur in drei geografischen Regionen verfügbar. Da ich mich an der Ostküste der Vereinigten Staaten befinde, habe ich „USA, Osten 2“ ausgewählt. Stellen Sie sicher, dass das Kontrollkästchen neben „Modellverwaltungskonto erstellen“ aktiviert ist. Im nächsten Schritt wählen Sie einen Tarif aus. Für die Zwecke dieses Artikels genügt der kostenlose DevTest-Tarif. Klicken Sie auf den DevTest-Tarif und dann auf „Auswählen“. Im letzten Schritt klicken Sie auf die Schaltfläche „Erstellen“.

Ausgewählte Optionen zum Erstellen eines Experimentierdiensts für Machine Learning
Abbildung 1: Ausgewählte Optionen zum Erstellen eines Experimentierdiensts für Machine Learning

Während die Clouddienste initialisiert werden, besteht die Gelegenheit, Ihren lokalen Computer einzurichten.

Installieren von Machine Learning Workbench

Zwar ist Machine Learning Workbench für Mac und Windows verfügbar, in diesem Artikel wird aber eine Windows-Installation beschrieben. Weitere Details und Systemvoraussetzungen für die Installation auf einem Mac finden Sie in der Microsoft-Dokumentation zum Thema unter bit.ly/2zYrA7X.

Wenn Sie Docker noch nicht auf Ihrem System installiert haben, ist jetzt der richtige Zeitpunkt, dies nachzuholen. In diesem Artikel wird Docker nicht verwendet, aber in zukünftigen Artikeln zu Machine Learning Workbench. Machine Learning Workbench verwendet Docker, um Code lokal in verschiedenen Frameworks auszuführen. In einigen Projekten stehen standardmäßig Python- und PySpark-Container zur Verfügung, während andere nur Python-Container verwenden. Die Konfigurationen verfügbarer Container können über Konfigurationsdateien verwaltet werden.

Machine Learning Workbench für Windows kann unter aka.ms/azureml-wb-msi heruntergeladen werden. Sobald der Installer heruntergeladen wurde, führen Sie ihn aus und folgen den Anweisungen, um das Tool zu installieren. Wenn die Installation abgeschlossen ist, starten Sie das Programm. Geben Sie die gleichen Kontoanmeldeinformationen ein, mit denen Sie den Machine Learning-Experimentierdienst in Azure erstellt haben. Nach einer Weile wird der Bildschirm aktualisiert, um das Fenster „Erste Schritte“ anzuzeigen. Beachten Sie im Bereich „Projekte“ auf der linken Seite, dass der Name des Arbeitsbereichs mit dem zuvor in Azure eingegebenen Wert übereinstimmen sollte. Beachten Sie auch, dass in der linken unteren Ecke des Bildschirms eine blaugrüne Schaltfläche mit den Initialen des aktiven Kontos angezeigt wird. Klicken Sie auf diese Schaltfläche, um ein Flyoutmenü zu öffnen, in dem das aktuelle Konto angezeigt wird und Sie sich abmelden können.

Erstellen und Ausführen eines Projekts

Um ein neues Projekt zu erstellen, wählen Sie entweder „Neues Projekt“ aus dem Menü Datei aus, oder klicken Sie auf das Pluszeichen im Bereich „Projekte“. Geben Sie im folgenden Dialogfeld, das in Abbildung 2 gezeigt wird, „SimpleLinearRegression“ als Projektnamen ein, wählen Sie ein Verzeichnis für die Projektdateien aus, und wählen Sie „Einfache lineare Regression“ aus den verfügbaren Projektvorlagen aus. Projektvorlagen stellen eine großartige Ressource dar, um zu lernen, wie man ein ML-Projekt auf der Grundlage verschiedener Typen von Modellen und externer Bibliotheken erstellt. Klicken Sie auf die Schaltfläche „Erstellen“, um das Projekt zu erstellen.

Dialogfeld „Neues Projekt erstellen“
Abbildung 2: Dialogfeld „Neues Projekt erstellen“

Nachdem das Projekt erstellt wurde, wird das Projektdashboard geöffnet. Jedes Projekt in Machine Learning Workbench wird mit seinem Projektdashboard geöffnet. Das Dashboard enthält Anweisungen und Informationen zum Projekt und funktioniert ähnlich wie eine Datei „readme.md“ in einem GitHub-Repository. Tatsächlich befindet sich der Inhalt der Dashboarddatei in der Datei „readme.md“ im Stammverzeichnis des Projekts.

Wählen Sie im Menü „Datei“ die Option „Eingabeaufforderung öffnen“ aus. Geben Sie an der Eingabeaufforderung Folgendes ein:

conda install matplotlib

Befolgen Sie die Anweisungen auf dem Bildschirm, wenn Sie aufgefordert werden, matplotlib (eine Grafikbibliothek für Python) zu installieren. Nachdem die Installation abgeschlossen ist, schließen Sie die Eingabeaufforderung, um zu Machine Learning Workbench zurückzukehren. Beachten Sie die Schaltfläche „Ausführen“ und die Steuerelemente auf der linken Seite. Stellen Sie sicher, dass „lokal“ und „linear_reg.py“ in den beiden Dropdownmenüs ausgewählt sind und das Textfeld „Argumente“ leer ist. Klicken Sie auf Ausführen.

Unmittelbar nach dem Klicken auf „Ausführen“ wird ein Auftragsfenster mit einem Eintrag in der Liste angezeigt. Nach wenigen Augenblicken ist der Auftrag abgeschlossen.

Untersuchen der Benutzeroberfläche: Aufträge

Auf der linken Seite des Bildschirms befindet sich eine vertikale Symbolleiste. Klicken Sie auf das vierte Symbol von oben, das einer Uhr ähnelt, um die ein Pfeil gegen den Uhrzeigersinn läuft. In diesem Fall wurde die Datei „linear_reg.py“ zwei Mal nicht ausgeführt, bevor sie erfolgreich ausgeführt wurde, wie Abbildung 3 verdeutlicht. Beachten Sie, dass Machine Learning Workbench die über das Tool ausgeführten Aufträge nachverfolgt. Klicken Sie unten im Fenster unter dem STATUS-Header auf das Wort „Abgeschlossen“, um die Eigenschaften der Ausführung anzuzeigen.

Der Ausführungsverlauf des Auftrags
Abbildung 3: Der Ausführungsverlauf des Auftrags

Nehmen Sie sich etwas Zeit, um die verschiedenen Bereiche dieses Bildschirms zu untersuchen: „Ausführungseigenschaften“, „Ausgaben“, „Visualisierung“ und „Protokolle“. „Ausführungseigenschaften“ zeigt Daten zu den Eigenschaften dieser bestimmten Ausführung an. Wenn das Python-Skript Ausgabedateien erstellt und sie in einem Unterordner für Ausgaben ablegt, werden sie in der Liste unter dem Abschnitt „Ausgaben“ angezeigt. In dieser Ausführung ist nur eine Datei vorhanden: „lin.png“.

Weiter unten auf dem Bildschirm befindet sich der Bereich „Visualisierung“, in dem alle Diagramme angezeigt werden, die mit dem Python-Skript ggf. erstellt wurden. Für dieses Skript gibt es ein Diagramm, das die lineare Regression aus den im Projekt enthaltenen Datendateien darstellt. Dies ist die gleiche Datei, die im Abschnitt Ausgaben angezeigt wird: „lin.png“. Zuletzt werden im Abschnitt „Protokolle“ alle Protokolle aufgelistet, die dieser Ausführung zugeordnet sind.

Untersuchen der Benutzeroberfläche: Dateien

Bisher habe ich ein Python-Skript ausgeführt, um eine lineare Regression auszuführen und eine Ausgabevisualisierung zu generieren, aber ich habe noch keinen Code vorgestellt. Werfen wir einen Blick auf den Code hinter dem Auftrag, der soeben ausgeführt wurde. Klicken Sie auf der Symbolleiste auf der linken Seite des Bildschirms auf das Ordnersymbol unmittelbar unter dem Symbol „Aufträge“. In dem nun angezeigten Fenster ist eine Liste von Dateien vorhanden, die mit diesem Projekt verknüpft sind: drei Verzeichnisse und fünf Dateien. Klicken Sie auf die Datei „linear_reg.py“, um den Inhalt des zuvor ausgeführten Skripts anzuzeigen.

Für Leser, die mit Python nicht vertraut sind: Der Code importiert zunächst verschiedene Bibliotheken, um höhere Mathematik auf Arrays (NumPy) und Plotdiagramme (matplotlib) anzuwenden. Dann lädt der Code die Daten aus einer lokalen Datei („data.csv“) in ein Array. Anschließend konvertiert der Code das Array in ein nparray, damit NumPy die Matrixmultiplikation ausführen kann. Nach einigen Berechnungen berechnet der Code eine lineare Regressionsformel, die die Daten approximiert und die Ergebnisse ausgibt. In den Zeilen 35 bis 39 verwendet der Code matplotlib, um ein Diagramm der Daten zu rendern und eine Linie zu zeichnen, die die lineare Regression darstellt. Der Rest des Codes gibt Informationen zum Fehler und zur Genauigkeit des linearen Regressionsmodells aus.

Sobald Sie die Möglichkeit hatten, die Skriptdatei zu untersuchen, klicken Sie auf die Datei „data.csv“, um die Datendatei anzuzeigen. Beachten Sie, dass die Datei sofort eine CSV-Datei mit zwei Zahlen pro Zeile lädt, die durch ein Komma getrennt sind, und diese anzeigt.

Integrierte Data Munging-Tools

Das zweite Symbol von oben in der Symbolleiste zeigt den Datenbereich an. Wenn Sie darauf klicken, wird ein Baumsteuerelement mit zwei leeren Knoten angezeigt. Die Datei „linear_reg.py“ hat die Daten selbstständig verwaltet und die fortschrittlichen Data Munging-Tools von Machine Learning Workbench nicht verwendet. Jetzt wäre ein guter Zeitpunkt, um das Erstellen einer Datenquelle mit Machine Learning Workbench zu untersuchen. Klicken Sie im Datenbereich auf das Pluszeichen, und klicken Sie dann auf „Neue Datenquelle hinzufügen“. 

Klicken Sie im folgenden Dialogfeld auf das Feld „Datei(en)/Verzeichnis“, und klicken Sie dann auf Weiter. Navigieren Sie im Projektverzeichnis zur Datei „data.csv“, und klicken Sie auf „Öffnen“. Klicken Sie noch einmal auf „Weiter“. Beachten Sie, dass Workbench bereits erkannt hat, dass es sich um eine durch Kommas getrennte Datei handelt. Lassen Sie alle Einstellungen unverändert, und klicken Sie auf „Weiter“. Beachten Sie in diesem Datentypenschritt, dass Machine Learning Workbench die Formate der einzelnen Datenfelder automatisch erkannt hat. Klicken Sie auf „Weiter“, um den Stichprobenschritt anzuzeigen.

Für dieses kleine Dataset müssen Sie nichts ändern. Für größere Datasets können Sie auf diesem Bildschirm eine benutzerdefinierte Strategie erstellen, um Daten selektiv zu laden. Auf diese Weise können Sie bei einem mehrere PB großen Dataset einen kleinen Teil der Daten selektiv bearbeiten, um Regeln für die Transformation der Daten zu definieren. Klicken Sie auf „Weiter“, und lassen Sie die Standardauswahl unverändert, um die Pfadspalte nicht in das endgültige Dataset aufzunehmen. Klicken Sie auf „Fertig stellen“. Der Bildschirm sollte wie Abbildung 4 aussehen.

Das sich ergebende Dataset
Abbildung 4: Das sich ergebende Dataset

Beachten Sie, dass im rechten Bereich die soeben ausgeführten Schritte in einer Liste angezeigt werden. Wenn Sie auf eines der Elemente klicken, wird eine Option angezeigt, mit der Sie die Aktion bearbeiten können. In fortgeschritteneren Szenarien, bei denen mehr Schritte ausgeführt werden, um die Daten zu transformieren, ermöglicht dieses Feature das Ändern und Bearbeiten der Schritte.

Am oberen Rand des Bildschirms befinden sich zwei Schaltflächen der Symbolleiste: „Metriken“ und „Vorbereiten“. Klicken Sie auf „Metriken“. Innerhalb weniger Sekunden generiert Machine Learning Workbench automatisch eine Reihe von Datenvisualisierungen für jede Spalte. Wenn Sie mit einem neuen Dataset arbeiten, kann es hilfreich sein, einige grundlegende Informationen zu jedem Feld zu sammeln. Die Metrikenansicht erstellt Histogramme und grundlegende beschreibende Statistiken zu jedem Feld im Dataset. Sie können anpassen, welche Metriken angezeigt werden, indem Sie auf die Dropdownliste „Metrik auswählen“ klicken. Standardmäßig sind alle Metriken ausgewählt. Klicken Sie auf die neu angezeigte Schaltfläche „Daten“ auf der Symbolleiste, um zum vorherigen Bildschirm zurückzukehren.

Klicken Sie nun auf die Schaltfläche „Vorbereiten“. Behalten Sie im Dialogfeld „Vorbereiten“ die Standardeinstellung „Neues Datenvorbereitungspaket“ der obersten Dropdownliste bei, und geben Sie „SimpleDataPrep“ unter „Name des Datenvorbereitungspakets“ ein. Klicken Sie auf „OK“. Nun weist der Datenbereich zwei Einträge auf.

Klicken Sie mit der rechten Maustaste auf den Eintrag „SimpleDataPrep“, und klicken Sie dann auf „Datenzugriffs-Codedatei generieren“. Die neu erstellte Datei wird geöffnet und zeigt Stubcode an, der ein referenziertes Paket lädt und einen Pandas-DataFrame zurückgibt. In einer PySpark-Umgebung gibt dieser Aufruf einen Spark-DataFrame zurück. DataFrames sind eine weit verbreitete Datenstruktur in Python. Die Verwendung des von Machine Learning Workbench generierten DataFrame-Erstellungscodes kann viel Zeit sparen.

Zusammenfassung

Ich war zunächst skeptisch, ob Machine Learning Studio verbessert werden könnte. Aber je mehr ich Machine Learning Workbench einsetze, desto mehr beeindruckt mich das Tool. Es stellt nicht nur Mechanismen zum Importieren von Daten zur Verfügung, sondern generiert auch automatisch ein Paket, das Daten bereinigen und als DataFrame bereitstellen kann. Dies ist ein gängiges Datenformat für Python. Durch das Importieren von Daten auf diese Weise können Data Scientists viel Zeit sparen. Außerdem haben Sie gesehen, dass die Verwendung des Datenimporttools keine schwierige Aufgabe war. Machine Learning Workbench ermöglicht auch die Verwendung beliebiger Python-Bibliotheken, z.B. von matplotlib.

Dieser Artikel kratzt kaum an der Oberfläche dessen, wozu Machine Learning Workbench fähig ist. In zukünftigen Artikeln werde ich dieses großartige Tool weiter untersuchen. Dabei werde ich mich z.B. mit der Konfiguration von Machine Learning Workbench für die Zusammenarbeit mit virtuellen Computern in Azure für eine schnelle Verarbeitung, der Transformation von Daten „anhand eines Beispiels“ und dem Verwenden von Jupyter Notebookz in Machine Learning Workbench beschäftigen.


Frank La Vigneleitet den Bereich Data & Analytics bei Wintellect und ist Co-Moderator des DataDriven-Podcasts. Er bloggt regelmäßig auf FranksWorld.com, und Sie können ihm auf seinem YouTube-Kanal „Frank's World TV“ (FranksWorld.TV) folgen.

Unser Dank gilt den folgenden technischen Experten für die Durchsicht dieses Artikels: Andy Leonard (EnterpriseDNA), Hai Ning (Microsoft), Jonathan Wood (Wintellect)
Andy Leonard beschreibt sich selbst als Datenphilosoph. Er lebt tatsächlich in Farmville. Nein, nicht im Spiel, sondern in der wirklichen Stadt. Er schreibt Code und verwaltet Daten. Er trägt einen beeindruckenden Bart und arbeitet viel. Andy Leonard ist ein Autor und Engineer, der Freude daran hat, Datenintegrationslösungen zu entwickeln und zu automatisieren.

Jonathan Wood
Wood interessiert sich seit seinen TechTV-Tagen in der High School für Software und Technologie. Er arbeitet seit mehr als acht Jahren mit .NET und C#, wobei sein Schwerpunkt auf dem Web und mobilem Computing liegt. Seine jüngste Leidenschaft ist alles, was mit Daten zu tun hat. Wood ist Softwareberater und -entwickler bei Wintellect mit den Schwerpunkten Data Science, Datenvisualisierung, Machine Learning, Statistik und allen anderen Datenthemen, die er in die Finger bekommen kann.


Diesen Artikel im MSDN Magazine-Forum diskutieren