12 Funktionen, die jede Cloud-Plattform für maschinelles Lernen bieten sollte, um den gesamten Lebenszyklus des maschinellen Lernens zu unterstützen. [...]
Um effektive Modelle für Machine Learning und Deep Learning erstellen zu können, benötigen Sie umfangreiche Datenmengen, eine Möglichkeit, die Daten zu bereinigen und Feature-Engineering mit ihnen durchzuführen, sowie eine Möglichkeit, Modelle auf Ihren Daten in angemessener Zeit zu trainieren. Dann benötigen Sie eine Möglichkeit, Ihre Modelle bereitzustellen, sie auf zeitliche Abweichungen zu überwachen und sie bei Bedarf neu zu trainieren.
All das können Sie vor Ort erledigen, wenn Sie in Rechenressourcen und Beschleuniger wie GPUs investiert haben, wobei Sie jedoch feststellen können, dass Ihre Ressourcen, wenn sie ausreichend sind, die meiste Zeit ungenutzt bleiben. Auf der anderen Seite kann es manchmal kostengünstiger sein, die gesamte Pipeline in der Cloud zu betreiben, indem Sie je nach Bedarf große Mengen an Rechenressourcen und Accelerators einsetzen und diese dann freigeben.
Die großen Cloud-Anbieter – und auch eine Reihe kleinerer Clouds – haben erhebliche Anstrengungen unternommen, um ihre Plattformen für maschinelles Lernen so auszubauen, dass sie den gesamten Lebenszyklus des maschinellen Lernens unterstützen, von der Planung eines Projekts bis zur Wartung eines Modells in der Produktion. Wie bestimmen Sie, welche dieser Clouds Ihren Bedürfnissen entsprechen? Hier sind 12 Möglichkeiten, die jede End-to-End-Plattform für maschinelles Lernen bieten sollte.
Nah an Ihren Daten bleiben
Wenn Sie über die großen Datenmengen verfügen, die für den Bau präziser Modelle benötigt werden, sollten Sie diese nicht um die halbe Welt schicken. Es geht hier jedoch nicht um die Entfernung, sondern um die Zeit: Die Datenübertragungsgeschwindigkeit ist letztlich durch die Lichtgeschwindigkeit begrenzt, selbst in einem perfekten Netzwerk mit unendlicher Bandbreite. Große Entfernungen bedeuten Latenz.
Der Idealfall für sehr große Datensätze ist es, das Modell dort aufzubauen, wo die Daten bereits vorhanden sind, so dass keine Massendatenübertragung erforderlich ist. Mehrere Datenbanken unterstützen dies in begrenztem Umfang.
Im nächstbesten Fall befinden sich die Daten im selben Hochgeschwindigkeitsnetzwerk wie die Software zur Modellerstellung, d.h. in der Regel im selben Rechenzentrum. Selbst das Verschieben der Daten von einem Rechenzentrum in ein anderes innerhalb einer Cloud-Verfügbarkeitszone kann bei Terabyte (TB) oder mehr zu einer erheblichen Verzögerung führen. Sie können dies durch inkrementelle Updates ausgleichen.
Der schlimmste Fall wäre, wenn Sie große Daten über große Entfernungen und über Strecken mit eingeschränkter Bandbreite und hoher Latenz verschieben müssen. Die transpazifischen Kabel, die nach Australien führen, sind in dieser Hinsicht besonders unerfreulich.
Unterstützung einer ETL- oder ELT-Pipeline
ETL (export, transform, and load) und ELT (export, load, and transform) sind zwei Datenpipeline-Konfigurationen, die in der Datenbank-Welt üblich sind. Maschinelle Lernverfahren und Deep Learning verstärken den Bedarf an diesen, insbesondere für den Transformationsteil. ELT bietet Ihnen mehr Flexibilität, wenn sich Ihre Transformationen ändern müssen, da die Ladephase bei großen Datenmengen in der Regel am zeitaufwändigsten ist.
Im Allgemeinen sind Daten in der freien Natur verrauscht. Das muss gefiltert werden. Außerdem haben Daten in der freien Natur unterschiedliche Bereiche: Eine Variable kann ein Maximum in Millionenhöhe haben, während eine andere einen Bereich von -0,1 bis -0,001 haben kann. Beim maschinellen Lernen müssen die Variablen in standardisierte Bereiche transformiert werden, um zu verhindern, dass die Variablen mit großen Bereichen das Modell dominieren. Welcher standardisierte Bereich genau, hängt von dem für das Modell verwendeten Algorithmus ab.
Unterstützung einer Online-Umgebung für die Modellerstellung
Früher war es üblich, dass Sie Ihre Daten für den Modellbau auf Ihren Desktop importieren sollten. Die schiere Menge an Daten, die für den Aufbau guter Modelle für maschinelles Lernen und Deep Learning benötigt wird, verändert das Bild: Für die explorative Datenanalyse und den Modellaufbau können Sie eine kleine Datenprobe auf Ihren Desktop herunterladen, aber für Produktionsmodelle müssen Sie Zugang zu den vollständigen Daten haben.
Web-basierte Entwicklungsumgebungen wie Jupyter Notebooks, JupyterLab und Apache Zeppelin sind für die Modellerstellung gut geeignet. Wenn sich Ihre Daten in der gleichen Cloud wie die Notebook-Umgebung befinden, können Sie die Analyse auf die Daten übertragen und so die zeitaufwändige Datenbewegung minimieren.
Unterstützung von Scale-Up- und Scale-Out-Schulungen
Die Rechen- und Speicheranforderungen von Notebooks sind im Allgemeinen minimal, außer bei Trainingsmodellen. Es ist sehr hilfreich, wenn ein Notebook Trainingsjobs erzeugen kann, die auf mehreren großen virtuellen Maschinen oder Containern ausgeführt werden. Es ist auch sehr hilfreich, wenn das Training auf Beschleuniger wie GPUs, TPUs und FPGAs zugreifen kann; dadurch können Tage des Trainings in Stunden verwandelt werden.
Unterstützung von AutoML und automatischer Funktionsentwicklung
Nicht jeder ist gut darin, Modelle für maschinelles Lernen auszuwählen, Merkmale (die Variablen, die vom Modell verwendet werden) zu selektieren und neue Merkmale aus den Rohbeobachtungen zu entwickeln. Selbst wenn Sie diese Aufgaben gut beherrschen, sind sie zeitaufwendig und können weitgehend automatisiert werden.
AutoML-Systeme probieren oft viele Modelle aus, um zu sehen, welche die besten objektiven Funktionswerte ergeben, z.B. den minimalen quadrierten Fehler bei Regressionsproblemen. Die besten AutoML-Systeme können auch Feature-Engineering durchführen und ihre Ressourcen effektiv nutzen, um die bestmöglichen Modelle mit den bestmöglichen Feature-Sätzen zu verfolgen.
Unterstützung der besten Frameworks für Machine Learning und Deep Learning
Die meisten Datenwissenschaftler haben bevorzugte Frameworks und Programmiersprachen für maschinelles Lernen und Deep Learning. Für diejenigen, die Python bevorzugen, ist Scikit-learn oft ein Favorit für maschinelles Lernen, während TensorFlow, PyTorch, Keras und MXNet oft die erste Wahl für Deep Learning sind. In Scala wird Spark MLlib tendenziell für maschinelles Lernen bevorzugt. In R gibt es viele native Pakete für maschinelles Lernen und eine gute Schnittstelle zu Python. In Java hat H2O.ai einen hohen Stellenwert, ebenso wie Java-ML und Deep Java Library.
Die Cloud-Plattformen für Machine Learning und Deep Learning verfügen in der Regel über eine eigene Sammlung von Algorithmen, und sie unterstützen oft externe Frameworks in mindestens einer Sprache oder als Container mit spezifischen Einstiegspunkten. In einigen Fällen können Sie Ihre eigenen Algorithmen und statistischen Methoden in die AutoML-Funktionen der Plattform integrieren, was recht praktisch ist.
Einige Cloud-Plattformen bieten auch ihre eigenen abgestimmten Versionen der wichtigsten Deep-Learning-Frameworks an. AWS verfügt beispielsweise über eine optimierte Version von TensorFlow, von der sie behauptet, dass sie eine nahezu lineare Skalierbarkeit für das Training tiefer neuronaler Netze erreichen kann.
Vorab trainierte Modelle anbieten und Transfer-Learning unterstützen
Nicht jeder möchte die Zeit und die Rechenressourcen aufwenden, um seine eigenen Modelle zu trainieren – und das sollten sie auch nicht, wenn vortrainierte Modelle zur Verfügung stehen. Beispielsweise ist der ImageNet-Datensatz riesig, und das Training eines hochmodernen tiefen neuronalen Netzes dagegen kann Wochen dauern, daher ist es sinnvoll, ein vortrainiertes Modell dafür zu verwenden, wenn es möglich ist.
Andererseits identifizieren vortrainierte Modelle möglicherweise nicht immer die Objekte, die Ihnen wichtig sind. Das Transfer-Learning kann Ihnen dabei helfen, die letzten paar Schichten des neuronalen Netzes für Ihren spezifischen Datensatz anzupassen, ohne dass Sie Zeit und Kosten für das Training des gesamten Netzes aufwenden müssen.
Abgestimmte KI-Dienste anbieten
Die wichtigsten Cloud-Plattformen bieten robuste, abgestimmte KI-Dienste für viele Anwendungen, nicht nur für die Identifizierung von Bildern. Beispiele hierfür sind Sprachübersetzungen, Sprache-zu-Text, Text-zu-Sprache, Vorhersagen und Empfehlungen.
Diese Dienste wurden bereits an mehr Daten geschult und getestet, als Unternehmen üblicherweise zur Verfügung stehen. Sie werden auch bereits auf Service-Endpunkten mit genügend Rechenressourcen, einschließlich Accelerators, eingesetzt, um gute Antwortzeiten unter weltweiter Last zu gewährleisten.
Verwalten Sie Ihre Experimente
Die einzige Möglichkeit, das beste Modell für Ihren Datensatz zu finden, besteht darin, alles auszuprobieren, ob manuell oder mit AutoML. Damit bleibt ein weiteres Problem: die Verwaltung Ihrer Experimente.
Eine gute Cloud Machine Learning-Plattform verfügt über eine Methode, mit der Sie die objektiven Funktionswerte jedes Experiments sowohl für die Trainingssätze als auch für die Testdaten sowie die Größe des Modells und die Verwirrungsmatrix sehen und vergleichen können. All das grafisch darstellen zu können, ist ein definitiver Vorteil.
Unterstützung des Modelleinsatzes für die Vorhersage
Sobald Sie eine Möglichkeit haben, das beste Experiment nach Ihren Kriterien auszuwählen, brauchen Sie auch eine einfache Möglichkeit, das Modell einzusetzen. Wenn Sie mehrere Modelle für den gleichen Zweck einsetzen, müssen Sie auch eine Möglichkeit haben, den Datenverkehr für a/b-Tests unter ihnen aufzuteilen.
Überwachung der Vorhersageleistung
Leider neigt die Welt dazu, sich zu verändern, und die Daten ändern sich mit ihr. Das bedeutet, dass man ein Modell nicht einfach aufstellen und vergessen kann. Stattdessen müssen Sie die für Vorhersagen eingereichten Daten im Laufe der Zeit überprüfen. Wenn sich die Daten gegenüber der Basislinie Ihres ursprünglichen Trainingsdatensatzes erheblich zu verändern beginnen, müssen Sie Ihr Modell umschulen.
Kosten kontrollieren
Schließlich benötigen Sie Möglichkeiten zur Kontrolle der durch Ihre Modelle entstehenden Kosten. Der Einsatz von Modellen für die Inferenz in der Produktion macht oft 90% der Kosten für Deep Learning aus, während die Ausbildung nur 10% der Kosten ausmacht.
Der beste Weg zur Kontrolle der Prognosekosten hängt von Ihrer Auslastung und der Komplexität Ihres Modells ab. Wenn Sie eine hohe Auslastung haben, können Sie möglicherweise einen Accelerator verwenden, um das Hinzufügen weiterer Instanzen virtueller Maschinen zu vermeiden. Wenn Sie eine variable Last haben, können Sie möglicherweise die Größe oder Anzahl der Instanzen oder Container dynamisch ändern, wenn die Last steigt oder sinkt. Und wenn Sie eine geringe oder gelegentliche Last haben, können Sie möglicherweise eine sehr kleine Instanz mit einem Teilbeschleuniger verwenden, um die Vorhersagen zu verarbeiten.
*Martin Heller ist mitwirkender Redakteur und Rezensent bei InfoWorld. Zuvor war er als Berater für Web- und Windows-Programmierung tätig und entwickelte von 1986 bis 2010 Datenbanken, Software und Websites. In jüngerer Zeit war er als VP für Technologie und Ausbildung bei Alpha Software und als Vorsitzender und CEO bei Tubifi tätig.
Be the first to comment