Um effektive Machine- und Deep-Learning-Modelle zu erstellen, sind nicht nur erhebliche Datenmengen nötig. Außerdem braucht es eine Möglichkeit, diese Daten zu bereinigen und für Feature Engineering zu verwenden. Die Modelle müssen zudem in angemessener Zeit auf Grundlage der Daten trainiert werden. Anschließend müssen sie ausgeliefert, auf Model Drift überwacht und bei Bedarf neu trainiert werden.
All das können Sie On-Premises erledigen - vorausgesetzt, Sie haben in Rechenressourcen und Beschleuniger wie GPUs investiert. Dabei stellen Sie unter Umständen fest, dass Ihre Ressourcen zwar angemessen sind, jedoch die meiste Zeit ungenutzt bleiben. Andererseits kann es manchmal deutlich kosteneffizienter sein, die gesamte Pipeline in der Cloud laufen zu lassen und Rechenressourcen sowie Beschleuniger lediglich nach Bedarf zu nutzen.
Die großen (sowie einige kleinere) Cloud-Anbieter haben erhebliche Anstrengungen unternommen, um ihre Plattformen für Machine Learning (ML) so auszubauen, dass sie den gesamten Lebenszyklus des maschinellen Lernens unterstützen - von der Planung eines Projekts bis hin zur Wartung eines ML-Modells in der Produktion. Dabei stellt sich allerdings die Frage, wie Sie herausfinden, welche Cloud Ihren Anforderungen am besten gerecht wird.
why validate machine learning models lol pic.twitter.com/0NM31DcyV0
— abhishek (@abhi1thakur) October 19, 2022
Machine Learning in der Cloud: 12 Pflicht-Funktionen
Im Folgenden haben wir zwölf Funktionen zusammengetragen, die jede End-to-End-Plattform für maschinelles Lernen bieten sollte. Natürlich geben wir in diesem Rahmen auch Tipps, welche Clouds diese bereitstellen.
1. Nah an den Daten
Wenn Sie über große Datenmengen verfügen, die Sie zur Erstellung präziser Modelle benötigen, möchten Sie diese nicht um die halbe Welt schicken. Das Problem liegt dabei jedoch nicht in der Entfernung, sondern der Zeit: Die Latenzzeit bei der Datenübertragung ist letztlich durch die Lichtgeschwindigkeit begrenzt, selbst in einem perfekten Netzwerk mit unendlicher Bandbreite. Große Entfernungen bedeuten Latenzzeiten.
Der Idealfall für sehr große Datenmengen: Das Modell dort zu erstellen, wo sich die Daten bereits befinden, so dass keine größeren Datenübertragungen erforderlich werden. Diese Funktion wird von einer Reihe von Datenbanken unterstützt. Im nächstbesten Fall befinden sich die Daten in demselben Hochgeschwindigkeitsnetz wie die Software zur Modellerstellung, also in der Regel im selben Rechenzentrum. Selbst wenn die Daten von einem Rechenzentrum in ein anderes (innerhalb der Verfügbarkeitszone) verschoben werden, kann es zu erheblichen Verzögerungen führen, wenn die Menge mehrere Terabytes überschreitet. Dieses Problem lässt sich durch inkrementelle Aktualisierungen abmildern. Der Worst Case wäre hingegen, große Datenmengen über weite Strecken sowie Pfade mit begrenzter Bandbreite und hoher Latenz verschieben zu müssen. Die transpazifischen Kabel, die nach Australien führen, sind in dieser Hinsicht besonders ungeheuerlich.
Die großen Cloud-Anbieter gehen dieses Problem auf unterschiedliche Weise an. Etwa, indem sie ihre Datenbank-Services um Machine und Deep Learning erweitern:
So wurde beispielsweise Amazon Redshift ML entwickelt, um SQL-Benutzern zu erleichtern, ML-Modelle zu erstellen, zu trainieren und bereitzustellen.
Ähnliches ermöglicht BigQuery ML für die Google Cloud Platform.
IBM Db2 Warehouse on Cloud umfasst eine breite Palette von datenbankinternen SQL-Analysen, die einige grundlegende Funktionen für maschinelles Lernen sowie datenbankinterne Unterstützung für R und Python beinhalten.
Microsoft SQL Server Machine Learning Services unterstützt R, Python, Java, den T-SQL-Befehl
PREDICT
, die gespeicherte Prozedurrx_Predict
im SQL Server RDBMS und Spark MLlib in SQL Server Big Data Clusters.Oracle Cloud Infrastructure (OCI) Data Science ist eine verwaltete und serverlose Plattform für Data-Science-Teams, um ML-Modelle mit Oracle Cloud Infrastructure (einschließlich Oracle Autonomous Database und Oracle Autonomous Data Warehouse) zu erstellen, zu trainieren und zu managen.
Ein anderer Ansatz, wie Cloud-Anbieter dieses Problem angehen: Sie bringen ihre Cloud-Dienste in die Rechenzentren der Kunden oder setzen - insbesondere in Ballungszentren - auf Satellitenanbindung:
Amazon Web Services nennt das AWS Outposts und AWS Local Zones;
Microsoft hat sich für Azure Stack Edge Nodes und Azure Arc entschieden;
Google Cloud Platform benennt die Funktionen als Network Edge Locations, Google Distributed Cloud Virtual und Anthos on-prem.
2. ETL- oder ELT-Pipeline
Bei ETL (Export, Transform, Load) und ELT (Export, Load, Transform) handelt es sich um Datenpipeline-Konfigurationen. Insbesondere die Transformations-Komponente ist für Machine und Deep Learning dabei wichtig: Wenn Sie Ihre Transformationen ändern müssen, bietet ELT mehr Flexibilität, da die Ladephase bei Big Data in der Regel am zeitaufwändigsten ist.
Im Allgemeinen sind die Daten in der freien Natur verrauscht, weswegen sie gefiltert werden müssen. Außerdem weisen Daten in freier Wildbahn unterschiedliche Bereiche auf: Eine Variable kann ein Maximum in Millionenhöhe haben, während eine andere einen Bereich von -0,1 bis -0,001 aufweist. Für maschinelles Lernen müssen die Variablen in standardisierte Bereiche umgewandelt werden, damit die mit großen Bereichen das Modell nicht dominieren. Welcher standardisierte Bereich genau verwendet wird, hängt von dem für das Modell verwendeten Algorithmus ab.
AWS Glue ist eine Apache Spark-basierte serverlose ETL-Engine; Mit Amazon EMR bietet AWS auch eine Big-Data-Plattform, auf der Apache Spark ausgeführt werden kann; Amazon Redshift Spectrum unterstützt ELT aus einem S3-basierten Data Lake.
Azure Data Factory und Azure Synapse unterstützen sowohl ETL als auch ELT.
Google Cloud Data Fusion, Dataflow und Dataproc sind ebenfalls nützlich für ETL und ELT.
Self-Service-ETL/ELT-Produkte von Drittanbietern wie Trifacta können ebenfalls in den Clouds verwendet werden.
3. Modelle online erstellen
Früher galt die gängige Meinung, dass Sie Ihre Daten zur Modellerstellung auf Ihren Desktop importieren sollten. Die schiere Menge an Daten, die nötig ist, um qualitativ hochwertige Modelle für Machine und Deep Learning zu erstellen, verändert das Bild: Für die explorative Datenanalyse und Modellerstellung können Sie eine kleine Datenprobe auf Ihren Desktop herunterladen, aber für Produktionsmodelle benötigen Sie Zugriff auf die gesamten Daten.
Webbasierte Entwicklungsumgebungen wie Jupyter Notebooks, JupyterLab und Apache Zeppelin sind für die Modellerstellung gut geeignet. Wenn sich Ihre Daten in derselben Cloud wie die Notebook-Umgebung befinden, können Sie die Analyse zu den Daten bringen und so den zeitaufwändigen Datentransfer minimieren. Notebooks können auch für ELT als Teil der Pipeline verwendet werden.
Mit Amazon SageMaker können Sie Modelle für maschinelles Lernen und Deep Learning für jeden Anwendungsfall mit einer vollständig verwalteten Infrastruktur, Tools und Workflows erstellen, trainieren und bereitstellen. SageMaker Studio basiert auf JupyterLab.
Microsoft Azure Machine Learning ist eine durchgängige, skalierbare, vertrauenswürdige KI-Plattform mit Experimentier- und Modellmanagement; Azure Machine Learning Studio umfasst Jupyter Notebooks, einen Drag-and-Drop-Designer für maschinelles Lernen und eine AutoML-Funktion. Azure Databricks ist eine Apache Spark-basierte Analyseplattform; Azure Data Science Virtual Machines erleichtern fortgeschrittenen Datenwissenschaftlern die Einrichtung von Entwicklungsumgebungen für maschinelles Lernen und Deep Learning.
Google Cloud Vertex AI ermöglicht es Ihnen, Modelle für maschinelles Lernen schneller zu erstellen, bereitzustellen und zu skalieren - mit vortrainierten Modellen und benutzerdefinierten Werkzeugen innerhalb einer einheitlichen Plattform für künstliche Intelligenz. Über Vertex AI Workbench ist Vertex AI nativ mit BigQuery, Dataproc und Spark integriert. Vertex AI lässt sich auch in weit verbreitete Open-Source-Frameworks wie TensorFlow, PyTorch und Scikit-learn integrieren und unterstützt alle Frameworks für maschinelles Lernen und Zweige der Künstlichen Intelligenz über benutzerdefinierte Container für Training und Vorhersage.
4. Scale-up- und Scale-out-Training
Die Rechen- und Speicheranforderungen von Notebooks sind im Allgemeinen minimal - außer wenn es darum geht, Modelle zu trainieren. Es ist sehr hilfreich, wenn ein Notebook Trainingsaufträge auslösen kann, die auf mehreren virtuellen Maschinen oder Containern laufen. Noch besser ist es, wenn dabei Beschleuniger wie GPUs, TPUs und FPGAs zum Einsatz kommen. Das kann ansonsten tagelanges Training auf einige Stunden reduzieren.
Amazon SageMaker unterstützt eine breite Palette von VM-Größen, GPUs und andere Beschleuniger wie NVIDIA A100s, Habana Gaudi und AWS Trainium, einen Modell-Compiler und verteiltes Training mit Daten- oder Modellparallelität.
Azure Machine Learning unterstützt eine breite Palette von VM-Größen, GPUs und andere Beschleuniger, einschließlich NVIDIA A100s und Intel FPGAs, sowie verteiltes Training, das entweder Datenparallelität oder Modellparallelität nutzt.
Google Cloud Vertex AI unterstützt eine breite Palette von VM-Größen, GPUs und andere Beschleuniger, einschließlich NVIDIA A100s und Google TPUs, sowie verteiltes Training, das entweder Datenparallelität oder Modellparallelität nutzt, inklusive optionalem Reduktionsserver.
5. AutoML und automatisiertes Feature Engineering
Nicht jeder ist gut darin, Modelle für maschinelles Lernen und deren Merkmale (die Variablen, die vom Modell verwendet werden) auszuwählen oder diese zu entwickeln. Und selbst wenn Sie diese Aufgaben gut beherrschen: Sie sind zeitaufwändig und können weitgehend automatisiert werden.
AutoML-Systeme testen eine Vielzahl von Modellen, um zu ermitteln, welche zu den besten Zielfunktionswerten führen, beispielsweise einem minimalen quadratischen Fehler bei Regressionsproblemen. Gute AutoML-Systeme eignen sich auch für Feature Engineering und nutzen ihre Ressourcen effektiv, um die bestmöglichen Modelle mit den optimalen Merkmalssätzen zu realisieren.
Amazon SageMaker Autopilot bietet AutoML und Hyperparameter-Tuning (Hyperband als Suchstrategie).
Azure Machine Learning und Azure Databricks bieten beide AutoML, ebenso wie Apache Spark in Azure HDInsight.
Google Cloud Vertex AI bietet AutoML, ebenso wie Googles spezialisierte AutoML-Dienste für strukturierte Daten und Sprache. Allerdings neigt Google in einigen Fällen dazu, AutoML mit Transfer Learning in einen Topf zu werfen.
DataRobot, Dataiku und H2O Driverless AI bieten ebenfalls AutoML mit automatisiertem Feature Engineering und Hyperparameter-Tuning.
6. Framework-Support
Die meisten Datenwissenschaftler bevorzugen spezifische Frameworks und Programmiersprachen für Machine und Deep Learning.
Für diejenigen, die Python bevorzugen, ist Scikit-learn oft ein Favorit in Sachen maschinelles Lernen.
TensorFlow, PyTorch, Keras und Apache MXNet sind hingegen oft die erste Wahl, wenn es um Deep Learning geht.
In Scala wird Spark MLlib in der Regel für maschinelles Lernen bevorzugt.
In R gibt es viele native Pakete für maschinelles Lernen und eine gute Schnittstelle zu Python.
In Java ist H2O.ai sehr beliebt, ebenso wie Java-ML und Deep Java Library.
Die Cloud-Plattformen für maschinelles Lernen und Deep Learning verfügen in der Regel über eine eigene Sammlung von Algorithmen und unterstützen häufig 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 mit den AutoML-Funktionen der Plattform integrieren, was sehr praktisch ist.
Einige Cloud-Plattformen bieten auch ihre eigenen optimierten Versionen der wichtigsten Deep-Learning-Frameworks an:
AWS verfügt beispielsweise über eine optimierte Version von TensorFlow, die nach eigenen Angaben eine nahezu lineare Skalierbarkeit für das Training neuronaler Netze ermöglicht.
In ähnlicher Weise offeriert Google Cloud TensorFlow Enterprise.
7. Vortrainierte Modelle und Transfer Learning
Nicht jeder möchte die Zeit und die Rechenressourcen aufwenden, um seine eigenen Modelle zu trainieren - und das sollten sie auch nicht, wenn bereits trainierte Modelle verfügbar sind. Der ImageNet-Datensatz zum Beispiel ist riesig, und das Training eines modernen neuronalen Netzwerks kann Wochen dauern.
Andererseits erkennen vortrainierte Modelle möglicherweise nicht immer die Objekte, die Sie interessieren. Mithilfe von Transfer Learning können Sie die letzten paar Schichten des neuronalen Netzwerks an Ihren spezifischen Datensatz anpassen, ohne dass dafür Zeit und Kosten für das Training des gesamten Netzwerks anfallen.
Alle wichtigen Deep-Learning-Frameworks und Cloud-Service-Anbieter unterstützen Transfer Learning in gewissem Umfang. Dabei gibt es Unterschiede: Ein wesentlicher besteht darin, dass Azure einige Arten von Modellen mit Dutzenden von gelabelten Beispielen anpassen kann - im Gegensatz zu Hunderten oder Tausenden bei einigen der anderen Plattformen.
8. Vortrainierte KI-Services
Die großen Cloud-Plattformen bieten robuste, abgestimmte KI-Dienste für viele Anwendungen, nicht nur für die Bilderkennung, sondern auch für Übersetzung, Sprache zu Text, Text zu Sprache, Prognosen und Empfehlungen.
Diese Dienste wurden bereits mit mehr Daten trainiert und getestet, als den Unternehmen normalerweise zur Verfügung stehen. Außerdem werden sie bereits auf Service-Endpunkten mit ausreichenden Rechenressourcen, einschließlich Beschleunigern, eingesetzt, um gute Antwortzeiten unter weltweiter Belastung zu gewährleisten.
Die Unterschiede zwischen den von den drei großen Unternehmen angebotenen Diensten liegen eher im Detail. Ein Bereich, in dem aktiv an der Entwicklung gearbeitet wird, sind Dienste für den Edge-Einsatz, die auf Geräten wie Kameras installiert sind und mit der Cloud kommunizieren.
9. Experimente-Management
Die einzige Möglichkeit, das beste Modell für Ihren Datensatz zu finden, besteht darin, alles auszuprobieren, sei es manuell oder mit AutoML. Damit ergibt sich ein weiteres Problem: Diese Experimente müssen gemanagt werden. Eine gute Cloud-Plattform für maschinelles Lernen bietet eine Möglichkeit, die Zielfunktionswerte der einzelnen Experimente sowohl für die Trainings- als auch für die Testdaten sowie die Größe des Modells und die Konfusionsmatrix anzuzeigen und zu vergleichen. Die Möglichkeit, all das grafisch darzustellen, ist ein eindeutiges Plus.
Neben dem in Amazon SageMaker, Azure Machine Learning und Google Cloud Vertex AI integrierten Experiment-Tracker stehen Ihnen auch Produkte von Drittanbietern wie
Die meisten dieser Produkte sind zumindest für den persönlichen Gebrauch kostenlos, und einige sind Open Source.
10. Modell-Deployment für Vorhersagen
Um das beste Experiment für Ihre Kriterien auszuwählen, brauchen Sie auch eine einfache Möglichkeit, das Modell einzusetzen. Wenn Sie mehrere Modelle für denselben Zweck einsetzen, muss es zudem möglich sein, den Datenverkehr für A/B-Tests auf die Modelle aufzuteilen.
Ein Knackpunkt sind dabei die Kosten für die Bereitstellung eines Endpunkts (mehr dazu weiter unten). In den letzten ein bis drei Jahren hat es viele Änderungen bei der Modellbereitstellung gegeben. Idealerweise sollten Endpunkte mit geringem Datenaufkommen serverlos sein, während Endpunkte mit hohem Datenaufkommen geclustert sein und/oder Beschleuniger verwenden sollten.
11. Prediction-Performance-Monitoring
Leider können sich die Daten im Laufe der Zeit ändern, was für die Entwickler von Modellen ein Nachteil ist. In der Konsequenz bedeutet das, dass man ein Modell nicht einrichten und anschließend "vergessen" kann. Stattdessen müssen die für Vorhersagen übermittelten Daten im Laufe der Zeit überwacht werden. Wenn die Daten beginnen, sich signifikant von der Basislinie Ihres ursprünglichen Trainingsdatensatzes zu unterscheiden, müssen Sie Ihr Modell neu trainieren.
Amazon SageMaker Model Monitor leistet hier besonders gute Arbeit, obwohl es auf Tabellendaten beschränkt ist.
Bei Azure Machine Learning befindet sich ein Paket zur Erkennung von Data Drift in der Public Preview.
Google Cloud Vertex AI Model Monitoring erkennt Skew und Drifts für tabellarische AutoML- und benutzerdefiniert trainierte Modelle.
Die weiter oben genannten Produkte zur Verwaltung von Experimenten können ebenfalls zur Erkennung von Model- und Data Drifts verwendet werden.
12. Kostenkontrolle
Schließlich benötigen Sie Möglichkeiten zur Kontrolle der Kosten, die durch Ihre Modelle entstehen. Die Bereitstellung von Modellen für die Produktionsinferenz macht oft 90 Prozent der Kosten für Deep Learning aus, während das Training nur 10 Prozent vereinnahmt.
Wie Sie die Vorhersagekosten am besten kontrollieren können, hängt von Ihrer Auslastung und der Komplexität Ihres Modells ab. Wenn Sie eine hohe Auslastung haben, können Sie möglicherweise einen Beschleuniger verwenden, um das Hinzufügen weiterer virtueller Maschineninstanzen zu vermeiden. Bei einer schwankenden Auslastung können Sie die Größe oder die Anzahl der Instanzen oder Container dynamisch ändern, wenn die Auslastung steigt oder sinkt. Und bei geringer oder gelegentlicher Auslastung können Sie eventuell eine sehr kleine Instanz mit einem Teilbeschleuniger verwenden, um die Vorhersagen zu verarbeiten.
Dieser Beitrag basiert auf einem Artikel unserer US-Schwesterpublikation InfoWorld.