SharePoint als Machine-Learning-Zentrale verwenden
SharePoint ist eine seit dem Jahr 2007 weiterentwickelte Software von Microsoft zum Abbilden von Intranets für Unternehmen. Im Dreijahreszyklus kommen neue Versionen mit neuen Features auf den Markt. Seit 2016 wird auch das cloud-basierte SharePoint Online angeboten. Die Kernkompetenz von SharePoint war seither das Management von Informationen sowie die Kollaboration zwischen Personen, Teams und Unternehmen: Dateien können gespeichert, gemeinsam bearbeitet, individuell berechtigt und mit Metadaten versehen werden. Tabellen von Informationen können in Listenform mit bis zu 250 Metadaten versehen, gefiltert, sortiert und untereinander verknüpft werden. Dabei können Datensammlungen entstehen, die sich durch Maschinelles Lernen ergänzen lassen. Zu welcher Kategorie gehört ein Datensatz? Sind Cluster innerhalb der Daten erkennbar? Welche Forecasts kann man aus den Geschäftsdaten ziehen? Ist eine Risikobewertung in den Daten möglich, die mit bloßem Auge nicht sichtbar ist?
Cloud vs. OnPremise
Beim Maschinellen Lernen werden grob gesagt Informationen durch Rechenpower und Algorithmen zu Modellen, die bei der Bewertung von bisher ungesichteten Daten helfen. Diese Rechenpower gibt es in der Cloud zuhauf: Die wohl bekanntesten Anbieter von cloud-basierter Modellgenerierung, Microsoft und Google, bieten browser-basierte Drag-and-Drop-Lösungen zum Vorbereiten von Daten sowie Erstellen und auch Betreiben von Modellen in der Cloud. Die wählbare Rechenleistung reicht dabei bis hin zu 120 virtuellen CPUs [1].
Doch was ist, wenn Daten das Netzwerk nicht verlassen sollen, und man sowieso schon leistungsstarke Systeme hat? Hier hilft "AutoML" (Automatic Machine Learning) von Microsoft [2]. AutoML ist eine Bibliothek für Entwickler, um eine Mehrzahl an Algorithmen an den eigenen Daten arbeiten zu lassen, wobei der beste Algorithmus am Ende ausgewählt wird. Dieser Algorithmus ergibt ein Modell, das wiederum vom Nutzer auf eigene Daten angewendet werden kann.
Vorbereiten der SharePoint-Struktur
Um SharePoint als Machine-Learning-Zentrale zu nutzen, unterscheidet man zunächst zwischen zwei Kontaktpunkten mit Maschinellem Lernen: dem Erstellen von Modellen und dem Anwenden von Modellen. Bei der Erstellung von Modellen müssen SharePoint-Listeninhalte in eine Form gebracht werden, die von AutoML verstanden wird. In der Regel ist dies CSV (Comma Separated File – Kommaseparierte Datei). Wurde mittels AutoML ein Modell erzeugt, wird das Modell in SharePoint gespeichert. Um das Modell anschließend zu nutzen, geht man ähnlich vor: Zunächst werden die gewünschten Daten zum "Scoring" (dem Bewerten von Daten anhand eines Modells) in ein Format gebracht, welches das Modell versteht. Die Ergebnisse des Scorings werden dann in die SharePoint-Liste zurückgeschrieben. Abb. 1 verdeutlicht den Vorgang.
Modelle lassen sich aus allen SharePoint-Listen generieren, solange sie folgende Voraussetzungen erfüllen:
- Es sind mindestens mehrere hundert Datensätze vorhanden. Je mehr, desto besser.
- Die Daten sind vollständig, es gibt keine Lücken.
- In den Daten gibt es nur wenige extreme Ausreißer, die das Ergebnis verfälschen könnten.
- Die Daten basieren auf Erhebungen, die Muster erkennbar machen.
Dieses Beispiel einer Liste zeigt folgendes Schema:
Tabelle 1: Schema der Beispielliste "Mietmarkt"
SPALTE | BESCHREIBUNG |
---|---|
GEBIET | Ein Stadtteil |
PLZ | Postleitzahl |
DEMOGRAPHIE A | Anzahl Menschen unter 30 |
DEMOGRAPHIE B | Anzahl Menschen über 30 |
PREISSCHNITT | Durchschnittliche Miete |
UMSATZ | Investorenumsatz in EUR |
Umsatz ist die Spalte, auf die ein Modell trainiert werden soll. Dies ermöglicht es, diese Spalte durch Nutzung des Modells zu füllen, wenn nur die anderen Spalten bekannt sind. Neben SharePoint-Listen, die als Datenquelle dienen, braucht man eine Dokumentenbibliothek zur Verwaltung der Modelle mit nachfolgendem Schema:
Tabelle 2: Schema der Liste "Modelle"
SPALTE | BESCHREIBUNG |
---|---|
MODELLNAME | Name des Modells |
DATENLISTE (URL) | Link zur Liste, die als Quelle dient |
GENAUIGKEIT | Präzision des Modells nach Generierung |
TYP | Art des Modells (Vorhersage oder Klassifizierung) |
Da es sich um eine Bibliothek handelt, können die Modelldaten als Eintrag gespeichert und mit den Metadaten aus dem Schema versehen werden.
Als Bindeglied zwischen Datenquelle und Modellspeicher wird noch eine Auftragsliste für Modellgenerierungen benötigt. Der Grund dafür ist, dass Modellgenerierungen ressourcenintensive Vorgänge sind, die nicht synchron mit einer Nutzerinteraktion, sondern asynchron in einem Hintergrundprozess laufen sollten. Diese Liste hat folgendes Schema:
Tabelle 3: Schema der Liste "Aufträge"
SPALTE | BESCHREIBUNG |
---|---|
MODELL | Link zur Liste "Modelle" |
LABEL-SPALTE | Gesuchte Spalte, hier "Umsatz" |
TRAININGSZEIT | Dauer des Trainingslaufs |
TRAININGSDATEN (ANHANG) | Inhalte der "Mietmarkt"-Liste im CSV-Format |
Gestaltung der Nutzerinteraktion
Bisher wurden ausschließlich Standardkomponenten im SharePoint genutzt, um die Machine-Learning-Zentrale zu gestalten. Um dem Nutzer nun die Möglichkeit zu bieten, Modelle zu erstellen und auszuführen, muss die Nutzeroberfläche durch zwei Buttons erweitert werden. Für das klassische Layout gibt es die "benutzerdefinierte Menübandoption" [3]. Im modernen Layout sind "Application Extensions" das Mittel der Wahl. Abb. 2 zeigt das Menü einer Liste im modernen Layout, welches um die Buttons zum Erstellen und Ausführen von Modellen erweitert wurde. Das Ziel der Logik hinter den Buttons ist es, einen Eintrag in der Liste "Aufträge" zu erstellen, sowie die Modellnutzung aus der Liste "Modelle" anzustoßen. Damit ist der Zentrale nun klar, welche Daten aus welcher Liste in was für ein Modell verwandelt werden sollen.
Generieren von Modellen mittels AutoML
Wie eingangs erwähnt sind Modellgenerierungen zeit- und CPU-intensive Vorgänge. Microsoft gibt für Entwickler eine grobe Zeitschätzung gemessen am Umfang der Trainingsdaten vor [4]. Nachdem ein Nutzer ein Modellgenerierungswunsch in der Liste "Modellgenerierungen" hinterlassen hat, muss nun ein Hintergrundprozess die Generierung anstoßen. Möchte man im SharePoint-Standard bleiben, hat man auf OnPremise-Systemen die Möglichkeit, Timerjobs im SSOM (Server Side Object Model) zu verwenden. Möglich sind aber auch zeitgesteuerte Ereignisse durch den Windows Task Scheduler. Für Systeme mit SharePoint 2010 sind Windows Tasks sogar die einzige Option: Das AutoML-Paket von Microsoft setzt .Net Standard 2.0 voraus, welches ab .NET Framework 4.6.1 kompatibel ist. SharePoint 2010 läuft hingegen auf .NET Framework 3.5. Bei SharePoint 2013 und neueren Versionen gibt es hier keine Probleme [5].
Bei der Auswahl des Systems, das die Modellgenerierung letztendlich ausführt, können SharePoint-Server selbst in Betracht gezogen werden. Meist als leistungsstarke Systeme aufgesetzt [4] haben sie als Webdienste in nutzerarmen Nachtzeiten wenig Auslastung. Die Nutzung der SharePoint-Server zur Modellgenerierung muss allerdings unbedingt mit nächtlichen Backupläufen und "Full Crawls" des Suchdienstes abgestimmt werden.
Damit die Trainingsdaten von AutoML gelesen werden können, stellt Microsoft die ML.TextLoader-Klasse bereit [6]. Mittels sogenannter Experimente erfolgt die rechenintensive Mustererkennung von mehreren Algorithmen [7]. Nach Erreichen des Zeitlimits hat die Experimentierphase ein Modell generiert, welches als Zip-Datei nun gespeichert werden kann. Ebenfalls werden verschiedene Metriken erzeugt [8], die die Qualität des Modells angeben. Liegen die Zip-Datei und die Genauigkeit des Modells vor, können diese in der SharePoint-Liste "Modelle" gespeichert werden. Übrigens: Neben ML.NET bietet auch Tensorflow eine AutoML-Bibliothek namens "AdaNet" [9]. Wird "AdaNet" anstelle von ML.NET genutzt, muss darauf geachtet werden, dass die Modelle im ONNX-Format generiert werden, damit ML.NET im nächsten Schritt damit arbeiten kann.
Nutzen von Modellen mit ML.NET
Ist die Generierung eines Modells durch AutoML abgeschlossen, kann das neue Modell durch einen Nutzer verwendet werden. In der Beispielliste "Mietdaten" werden in einem neuen Eintrag alle Spalten bis auf die gesuchte "Umsatz"-Spalte ausgefüllt. Mittels Markierens des neuen Eintrags wird angegeben, dass dieser Datensatz vom Modell ergänzt werden soll. Eine Mehrfachauswahl ist ebenso denkbar, da auch das Scoring auf dem CSV-Datenformat basiert und dabei mehrere Datensätze gleichzeitig ergänzt werden können.
Bei zu wenigen Daten kann auch der beste Algorithmus kein zufriedenstellendes Modell generieren.
Im Gegensatz zur Modellgenerierung ist die Modellnutzung in ML.NET deutlich schneller. In der Regel dauert ein Scoring-Vorgang nur wenige Millisekunden – schnell genug, um auch synchron im Nutzerklickereignis ausgeführt zu werden. Nach dem Laden des passenden Modells aus dem Modellspeicher können die gewünschten Daten anhand einer "Transformation" (Umwandlung von lückenhaften Datensätzen in ergänzte Datensätze) ermittelt werden [10]. Das Ergebnis wird in die Liste "Mietdaten" zurückgespielt. Damit ist die SharePoint-Liste um Modelldaten angereichert.
Automatisches Machine Learning ist kein Allheilmittel
So verlockend es auch klingt, aus beliebigen Daten automatisiert möglichst genaue Modelle zu generieren: Jedes Machine-Learning-Modell kann nur so gut sein wie die Daten, mit denen es trainiert wird. Sind die Daten – auch unbeabsichtigt – inkonsistent, fehlerhaft oder schlicht zu wenige, so kann auch der beste Algorithmus kein zufriedenstellendes Modell generieren. Nicht umsonst gibt es den Berufsstand des Data Scientists, der nicht nur Modelle nach modernstem Fachwissen erstellt, sondern auch schon bei der Auswahl und Aufbereitung von Daten wertvolle Arbeit leistet. Spätestens wenn man mit automatischem Machine Learning an eine Präzisionsgrenze stößt, lohnt es sich, einen Data Scientist hinzuzuziehen.
Fazit
Gemeinsam mit automatischem Machine Learning kann auch ein OnPremise SharePoint um Maschinelles Lernen erweitert werden. Die dafür nötigen Mittel stehen sowohl auf klassischen wie auch modernen Seiten zur Verfügung. AutoML-Lösungen müssen dabei jedoch je Datensatz evaluiert werden.
- Microsoft Azure: Azure Machine Learning – Preise
- What is automated machine learning (AutoML)?
- Erstellen einer benutzerdefinierten Menüband-Schaltfläche im Hostweb eines SharePoint-Add-Ins
- Hardware and software requirements for SharePoint Server 2019
- Hardware and software requirements for SharePoint 2013
- TextLoader Class
- How to use the ML.NET automated machine learning API
- Evaluate your ML.NET model with metrics
- GitHub: Tensorflow AdaNet
- Save and load trained models