So wählen Sie eine Cloud-Plattform für maschinelles Lernen aus

Um effektive Modelle für maschinelles Lernen und tiefes Lernen zu erstellen, benötigen Sie umfangreiche Datenmengen, eine Möglichkeit, die Daten zu bereinigen und Feature-Engineering durchzuführen, sowie eine Möglichkeit, Modelle für Ihre Daten in angemessener Zeit zu trainieren. Dann benötigen Sie eine Möglichkeit, Ihre Modelle bereitzustellen, sie im Laufe der Zeit auf Abweichungen zu überwachen und sie nach Bedarf neu zu trainieren.

Sie können dies alles vor Ort tun, wenn Sie in Rechenressourcen und Beschleuniger wie GPUs investiert haben. Wenn Ihre Ressourcen jedoch angemessen sind, sind sie möglicherweise auch die meiste Zeit im Leerlauf. Andererseits kann es manchmal kostengünstiger sein, die gesamte Pipeline in der Cloud auszuführen, bei Bedarf große Mengen an Rechenressourcen und Beschleunigern zu verwenden und diese dann freizugeben.

Tech Spotlight: KI und maschinelles Lernen

  • 5 Erfolgsgeschichten zum maschinellen Lernen: Ein Einblick (CIO)
  • KI bei der Arbeit: Ihr nächster Mitarbeiter könnte ein Algorithmus sein (Computerworld)
  • Wie sicher sind Ihre KI- und maschinellen Lernprojekte? (CSO)
  • So wählen Sie eine Cloud-Plattform für maschinelles Lernen aus ()
  • Wie KI selbstfahrende Rechenzentren erstellen kann (Network World)

Die großen Cloud-Anbieter - und auch einige kleinere Clouds - haben erhebliche Anstrengungen unternommen, um ihre Plattformen für maschinelles Lernen auszubauen, um den gesamten Lebenszyklus des maschinellen Lernens zu unterstützen, von der Planung eines Projekts bis zur Aufrechterhaltung eines Modells in der Produktion. Wie bestimmen Sie, welche dieser Wolken Ihren Anforderungen entspricht? Hier sind 12 Funktionen, die jede End-to-End-Plattform für maschinelles Lernen bieten sollte. 

Seien Sie nah an Ihren Daten

Wenn Sie über die großen Datenmengen verfügen, die zum Erstellen präziser Modelle erforderlich sind, möchten Sie diese nicht um die halbe Welt versenden. Hier geht es nicht um die Entfernung, sondern um die Zeit: Die Datenübertragungsgeschwindigkeit wird letztendlich durch die Lichtgeschwindigkeit begrenzt, selbst in einem perfekten Netzwerk mit unendlicher Bandbreite. Große Entfernungen bedeuten Latenz. 

Der Idealfall für sehr große Datenmengen besteht darin, das Modell zu erstellen, in dem sich die Daten bereits befinden, sodass keine Massendatenübertragung erforderlich ist. Mehrere Datenbanken unterstützen dies in begrenztem Umfang.

Der nächstbeste Fall ist, dass sich die Daten im selben Hochgeschwindigkeitsnetz wie die Modellierungssoftware befinden, dh normalerweise im selben Rechenzentrum. Selbst das Verschieben der Daten von einem Rechenzentrum in ein anderes innerhalb einer Cloud-Verfügbarkeitszone kann zu einer erheblichen Verzögerung führen, wenn Sie über Terabyte (TB) oder mehr verfügen. Sie können dies durch inkrementelle Aktualisierungen abmildern.

Der schlimmste Fall wäre, wenn Sie Big Data über große Entfernungen über Pfade mit eingeschränkter Bandbreite und hoher Latenz verschieben müssen. Die transpazifischen Kabel nach Australien sind in dieser Hinsicht besonders ungeheuerlich.

Unterstützt eine ETL- oder ELT-Pipeline

ETL (Exportieren, Transformieren und Laden) und ELT (Exportieren, Laden und Transformieren) sind zwei Datenpipeline-Konfigurationen, die in der Datenbankwelt üblich sind. Maschinelles Lernen und tiefes Lernen verstärken den Bedarf an diesen, insbesondere am Transformationsteil. ELT bietet Ihnen mehr Flexibilität, wenn sich Ihre Transformationen ändern müssen, da die Ladephase für Big Data normalerweise am zeitaufwändigsten ist.

Im Allgemeinen sind Daten in freier Wildbahn verrauscht. Das muss gefiltert werden. Darüber hinaus haben Daten in freier Wildbahn unterschiedliche Bereiche: Eine Variable kann ein Maximum in Millionen haben, während eine andere einen Bereich von -0,1 bis -0,001 haben kann. Für maschinelles Lernen müssen Variablen in standardisierte Bereiche umgewandelt werden, damit diejenigen mit großen Bereichen das Modell nicht dominieren. Welcher standardisierte Bereich genau ist, hängt vom für das Modell verwendeten Algorithmus ab.

Unterstützung einer Online-Umgebung für den Modellbau

Früher war es üblich, dass Sie Ihre Daten zur Modellbildung auf Ihren Desktop importieren sollten. Die schiere Datenmenge, die für die Erstellung guter Modelle für maschinelles Lernen und tiefes Lernen erforderlich ist, verändert das Bild: Sie können eine kleine Datenprobe zur explorativen Datenanalyse und Modellbildung auf Ihren Desktop herunterladen, für Produktionsmodelle müssen Sie jedoch Zugriff auf alle Daten haben Daten.

Webbasierte Entwicklungsumgebungen wie Jupyter Notebooks, JupyterLab und Apache Zeppelin eignen sich gut für die Modellbildung. Befinden sich Ihre Daten in derselben Cloud wie die Notebook-Umgebung, können Sie die Analyse auf die Daten übertragen und so die zeitaufwändige Bewegung von Daten minimieren.

Unterstützung von Scale-up- und Scale-out-Schulungen

Die Rechen- und Speicheranforderungen von Notebooks sind mit Ausnahme von Trainingsmodellen im Allgemeinen minimal. Es ist sehr hilfreich, wenn ein Notebook Schulungsjobs 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. Dies kann Trainingstage in Stunden verwandeln.

Unterstützt AutoML und automatische Feature-Entwicklung

Nicht jeder ist gut darin, Modelle für maschinelles Lernen auszuwählen, Merkmale (die vom Modell verwendeten Variablen) auszuwählen und aus den Rohbeobachtungen neue Merkmale zu entwickeln. Selbst wenn Sie diese Aufgaben gut beherrschen, sind sie zeitaufwändig und können weitgehend automatisiert werden.

AutoML-Systeme versuchen häufig viele Modelle, um festzustellen, welche zu den besten Zielfunktionswerten führen, beispielsweise zum minimalen quadratischen 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 Features zu verfolgen.

Unterstützen Sie die besten Frameworks für maschinelles Lernen und tiefes Lernen

Die meisten Datenwissenschaftler haben bevorzugte Frameworks und Programmiersprachen für maschinelles Lernen und tiefes Lernen. Für diejenigen, die Python bevorzugen, ist Scikit-Learn häufig ein Favorit für maschinelles Lernen, während TensorFlow, PyTorch, Keras und MXNet häufig die Top-Tipps für Deep Learning sind. In Scala wird Spark MLlib für maschinelles Lernen bevorzugt. In R gibt es viele native maschinelle Lernpakete und eine gute Schnittstelle zu Python. In Java ist H2O.ai ebenso hoch bewertet 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 bestimmten Einstiegspunkten. In einigen Fällen können Sie Ihre eigenen Algorithmen und statistischen Methoden in die AutoML-Funktionen der Plattform integrieren, was sehr praktisch ist.

Einige Cloud-Plattformen bieten auch ihre eigenen optimierten Versionen der wichtigsten Deep-Learning-Frameworks an. Zum Beispiel hat AWS eine optimierte Version von TensorFlow, von der behauptet wird, dass sie eine nahezu lineare Skalierbarkeit für tiefes neuronales Netzwerktraining erreichen kann.

Bieten Sie vorgefertigte Modelle an und unterstützen Sie das Transferlernen

Nicht jeder möchte Zeit und Rechenressourcen aufwenden, um seine eigenen Modelle zu trainieren - und sollte dies auch nicht tun, wenn vorab trainierte Modelle verfügbar sind. Zum Beispiel ist das ImageNet-Dataset riesig und das Trainieren eines hochmodernen tiefen neuronalen Netzwerks kann Wochen dauern. Daher ist es sinnvoll, ein vorab trainiertes Modell dafür zu verwenden, wenn Sie können.

Auf der anderen Seite identifizieren vorab trainierte Modelle möglicherweise nicht immer die Objekte, die Sie interessieren. Mit Transfer Learning können Sie die letzten Schichten des neuronalen Netzwerks an Ihren spezifischen Datensatz anpassen, ohne Zeit und Kosten für das Training des gesamten Netzwerks zu benötigen.

Bieten Sie abgestimmte KI-Dienste an

Die wichtigsten Cloud-Plattformen bieten robuste, optimierte KI-Dienste für viele Anwendungen, nicht nur für die Bildidentifizierung. Beispiele hierfür sind Sprachübersetzung, Sprache zu Text, Text zu Sprache, Prognosen und Empfehlungen.

Diese Dienste wurden bereits mit mehr Daten geschult und getestet, als Unternehmen normalerweise zur Verfügung stehen. Sie werden auch bereits auf Service-Endpunkten mit genügend Rechenressourcen, einschließlich Beschleunigern, bereitgestellt, um unter weltweiter Last gute Antwortzeiten zu gewährleisten.

Verwalten Sie Ihre Experimente

Die einzige Möglichkeit, das beste Modell für Ihren Datensatz zu finden, besteht darin, alles manuell oder mithilfe von AutoML auszuprobieren. Damit bleibt ein weiteres Problem: Verwalten Sie Ihre Experimente.

Auf einer guten Plattform für maschinelles Lernen in der Cloud können 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 der Verwirrungsmatrix anzeigen und vergleichen. All das grafisch darstellen zu können, ist ein klares Plus.

Unterstützung der Modellbereitstellung für die Vorhersage

Sobald Sie die Möglichkeit haben, das beste Experiment anhand Ihrer Kriterien auszuwählen, benötigen Sie auch eine einfache Möglichkeit, das Modell bereitzustellen. Wenn Sie mehrere Modelle für denselben Zweck bereitstellen, benötigen Sie auch eine Möglichkeit, den Datenverkehr für A / B-Tests auf diese zu verteilen.

Überwachen Sie die Vorhersageleistung

Leider neigt die Welt dazu, sich zu ändern, und die Daten ändern sich mit ihr. Das heißt, Sie können ein Modell nicht bereitstellen und vergessen. Stattdessen müssen Sie die übermittelten Daten auf Vorhersagen im Zeitverlauf überwachen. Wenn sich die Daten gegenüber der Basislinie Ihres ursprünglichen Trainingsdatensatzes erheblich ändern, müssen Sie Ihr Modell neu trainieren.

Kosten kontrollieren

Schließlich benötigen Sie Möglichkeiten, um die Kosten Ihrer Modelle zu kontrollieren. Die Bereitstellung von Modellen für Produktionsinferenzen macht häufig 90% der Kosten für Deep Learning aus, während die Schulung nur 10% der Kosten ausmacht.

Der beste Weg, um die Vorhersagekosten zu kontrollieren, hängt von Ihrer Last und der Komplexität Ihres Modells ab. Wenn Sie eine hohe Last haben, können Sie möglicherweise einen Beschleuniger verwenden, um das Hinzufügen weiterer Instanzen virtueller Maschinen zu vermeiden. Wenn Sie eine variable Last haben, können Sie möglicherweise Ihre Größe oder Anzahl von Instanzen oder Containern dynamisch ändern, wenn die Last steigt oder fällt. 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.