Chamerstrasse 44, 6331 Hünenberg
+41 41 511 10 10

Machine Learning in der Cloud – Vergleich der wichtigsten Anbieter

Obwohl kein neues Konzept – die Geschichte der neuronalen Netzwerke reicht bis in die 1940er Jahre – gehört Machine Learning (ML), Deep Learning und Artificial Intelligence (AI) zu den ganz grossen Industrie-Trends der letzten Jahre. Diese zunehmende Dynamik hängt zweifelsohne eng mit dem Aufkommen von Public Cloud-Anbieter wie Amazon Web Services (AWS), Google Cloud und Microsoft Azure zusammen. War Machine Learning früher für viele Unternehmensbudgets unerreichbar, ist diese Technologie nun dank Cloud-Computing auch für KMUs erschwinglich geworden.

Doch welche Vorteile bringt eine Public Cloud tatsächlich für Machine Learning? Und wie unterscheiden sich die verschiedenen Anbieter in diesem Bereich voneinander? Diesen Fragen versucht dieser Blog-Artikel nachzugehen.

Vorteile des Machine Learnings in der Cloud

Beim Machine Learning geht es letztlich immer darum, auf Basis vorhandener Datenbestände mit Hilfe von Algorithmen und statistischen Modellen Muster und Gesetzmässigkeiten zu erkennen. Diese aus den Daten gewonnenen Erkenntnisse lassen sich verallgemeinern und für neue Problemlösungen oder für die Analyse von bisher unbekannten Daten verwenden.

Wichtigste Voraussetzung für lernende Systeme und entsprechende Algorithmen sind ausreichende Rechenkapazitäten und der Zugriff auf möglichst viele Daten, d.h. Machine Learning benötigt

  • möglichst viel Rechenkapazität, um aus
  • möglichst vielen Daten in
  • möglichst kurzer Zeit
  • möglichst viele valide und verallgemeinbare Muster und Gesetzmässigkeiten ableiten zu können.

Rechenkapazität kann jedoch schnell sehr teuer werden. Viele Machine Learning-Projekte scheiterten denn auch häufig am Umstand, dass viel Geld in eine leistungsfähige Server-Infrastruktur investiert werden muss, die letztlich dann doch nur sporadisch wirklich voll genutzt werden kann. Und genau hier schaffen die Public Cloud-Services Abhilfe!

Beim Cloud-Computing stellt der Service-Provider verschiedene Ressourcen wie Anwendungen (Software-as-a-Service, SaaS), Computing-Plattformen (Platform-as-a-Service, Paas) oder eine komplette IT-Infrastruktur wie Storage oder Server (Infrastructure-as-a-Service, IaaS) über das Internet der Allgemeinheit zur Verfügung.

Unternehmen können somit diese IT-Ressourcen zur Miete direkt über das Internet (also ohne lokale Installation) beziehen, wobei nur das bezahlt wird, was tatsächlich genutzt wurde. Die Server, auf denen die Daten der Kunden gespeichert sind, betreibt der Cloud-Anbieter.

Die grössten Vorteile bei der Nutzung von Public Clouds sind dabei:

  • Einfaches und kostengünstiges Setup, weil sich der jeweilige Provider selber um Hardware, Anwendungen und Kosten der Bandbreite kümmert.
  • Beliebige Skalierbarkeit, d.h. Rechen- und Speicherkapazitäten können jederzeit hinzugefügt (scale in) oder gelöscht (scale out) bzw. erhöht (scale up)  oder verkleinert (scale down) werden.
  • Keine ungenutzten Ressourcen, weil nur das angefragt und auch bezahlt wird, was tatsächlich gebraucht wurde.
  • Keine langfristigen Verträge. Gerade im Bereich Machine Learning ist es oft schwierig, sich von vornherein bereits auf eine bestimmte Rechenkapazität festzulegen, da die tatsächlichen Anforderungen und benötigten Ressourcen oft nicht abzuschätzen sind. In solchen Situationen funktioniert das Public Cloud Hosting sehr gut, da es kein langfristiges Engagement oder Investitionen erfordert. Die Cloud-Anbieter bieten in der Regel Pay-as-you-grow-Modelle an, die das gesamte Engagement extrem einfach und unkompliziert machen.

Zudem verfolgen sämtliche grossen Public Cloud-Anbieter einen API-first Approach, d.h. sämtliche Services lassen sich über eine API-Schnittstelle ansteuern, konfigurieren, starten, stoppen oder wieder löschen. So können z.B. mit wenigen Codezeilen und vollständig automatisiert

  • hoch-performante Serverlandschaften erstellt und konfiguriert,
  • Hunderte von GB grosse Datenbestände in diese Serverlandschaft kopiert,
  • diverse Trainingsjobs mit unterschiedlichen Parametern angestossen,
  • das beste Modell auf eine separate Serverinstanz kopiert und
  • anschliessend die gesamte Serverlandschaft wieder gelöscht werden,

und dies alles zu einem auch für Kleinunternehmen erschwinglichen Preis, da die ganze Serverlandschaft oft nur für wenige Minuten oder Stunden genutzt werden muss.

Vergleich der Public Cloud-Anbieter

Der Wettbewerb um die Führung im Bereich Public Cloud-Computing ist ein harter Dreierwettbewerb: Amazon vs. Microsoft vs. Google. Bei Infrastructure as a Service (IaaS) und Platform as a Service (PaaS) nehmen Amazon Web Services (AWS), Microsoft Azure und Google Cloud Platform (GCP) eindeutig eine führende Position unter den vielen Cloud Companies ein. Dies zeigt auch der aktuelle Gartner’s Magic Quadrant for Cloud Infrastructure as a Service, der im Juli 2019 veröffentlicht wurde:

  • Besonders dominant ist Amazon mit seinen Amazon Web Services (AWS), dessen weltweiter Marktanteil seit mehreren Jahren konstant bei rund 33% bleibt, obwohl sich der Markt fast verdreifacht hat. Gemäss Gartner ist Amazon der «reifste, unternehmenstauglichste Anbieter mit der stärksten Erfolgsbilanz im Kundenerfolg und dem nützlichsten Partner-Ökosystem». Amazon gilt als der eigentliche Pionier im Bereich Public Cloud-Computing und verfügt entsprechend über einen sehr umfangreichen Werkzeugsatz, der weiter exponentiell wächst. Diese Vielzahl unterschiedlicher und ständig wachsender Services macht es für den Enduser jedoch nicht immer ganz einfach, die Übersicht zu behalten und mit der Pace der Neuentwicklungen Schritt zu halten. Der Einstieg in AWS gilt denn auch als eher schwierig. Zudem wird häufig die etwas verwirrende Kostenstruktur bemängelt.
  • Microsoft Azure gilt aktuell als engster Konkurrent von AWS. Vor allem für Unternehmenskunden gilt Azure als sehr attraktiv, da Azure viel stärker als AWS auch auf hybride Cloud-Architektur, also einem Mix aus on-premise (=lokalen) und Cloud-Services, fokussiert ist. Demgegenüber kritisiert Gartner die gegenüber AWS weniger ausgereiften und entsprechend z.T. unzuverlässigeren Services. Gartner: «Die Zuverlässigkeitsprobleme von Microsoft Azure sind nach wie vor eine Herausforderung für die Kunden…. Seit September 2018 hatte Azure mehrere Vorfälle mit Auswirkungen auf den Service, darunter erhebliche Ausfälle mit Azure Active Directory. »
  • Als gut finanzierter Aussenseiter im Wettbewerb stieg Google erst relativ spät in den Cloud-Markt ein. Aber er verfügt über profunde technische Expertise, und seine branchenführenden Werkzeuge für Deep Learning und Künstliche Intelligenz, Machine Learning und Datenanalyse sind zweifelsohne bedeutende Vorteile. Bezüglich Breite und Reife seiner Services hinkt er den beiden Konkurrenten jedoch noch hinterher.

Vergleich der verschiedenen Machine Learning-Services

Amazon SageMaker

Amazon SageMaker ist ein vollständig verwalteter Machine Learning-Service, mit dem Datenwissenschaftler und Entwickler Machine Learning-Modelle erstellen und schulen und diese dann direkt in einer produktionsbereiten gehosteten Umgebung bereitstellen können. Kernelement von Amazon SageMaker sind integrierte Jupyter-Notebooks, die auf über 40 verschiedenen Instanztypen mit unterschiedlichsten Rechenleistungen (von 2 CPU / 4 GB Mem bis 64 CPU / 732 GB Mem und 16xK80 GPU / 192 GB GPU Mem) bereitgestellt werden können, und über die der gesamte ML-Workflow ausgeführt werden kann. Ausserdem enthält es gängige Algorithmen für Machine Learning, die optimiert sind, um effizient extrem grosse Datenmengen in einer verteilten Umgebung bewältigen zu können.

Im Unterschied zu Azure ML Studio ist Amazon SageMaker stark code-basiert, d.h. sämtliche Schritte müssen in Python geschrieben werden. Dies erlaubt zwar grösstmögliche Flexibilität – zumal Python gerade bei Data Scientisten sehr populär ist -, erschwert jedoch den Einstieg für Personen, die mit Python nicht vertraut sind. 

Azure ML Studio / Azure ML Services

Microsoft stellt aktuell gleich zwei unterschiedliche Machine Learning-Plattformen zur Verfügung: Azure ML Studio und Azure ML Services.

Kernelement von Azure ML Studio ist eine interaktive, graphische Arbeitsumgebung: per Drag & Drop können hier Datasets und Analysemodule in eine interaktive Canvas eingefügt und zu einem Workflow verbunden und ausgeführt werden. Gerade für Neueinsteiger im Bereich Machine Learning ist dies zweifelsohne sehr hilfreich, geht jedoch auf Kosten einer gewissen Flexibilität bei der Modell-Entwicklung.

Dies ist wohl der Grund, dass Microsoft im September 2017 eine neue Reihe von ML-fokussierten Produkten unter dem Dachnamen Azure ML Services einführte. Im Gegensatz zu Azure ML Studio verfügen die Azure ML Services über keine integrierten Methoden, sondern die Modelle müssen komplett benutzerdefiniert erstellt werden. Sie bieten jedoch ein leistungsstarkes Toolset und die Integrationsmöglichkeit von gängigen ML-Frameworks wie TensorFlow, scikit-learn, etc.

Während sich Azure ML Studio somit primär an Einsteiger richtet, sind die ML Services vor allem für erfahrene Data Scientisten gedacht. Ob diese Trennung in zwei unterschiedliche Produktlinien wirklich sinnvoll ist, muss jedoch bezweifelt werden. Die Einführung der ML Services sorgte in der Azure-Entwicklercommunity auf jeden Fall für einige Verwirrung, da nun zwischen zwei verschiedenen Plattformen gewählt werden muss, die nicht cross-intergriert werden können.

Google Cloud AI Platform

Google ist bereits seit längerem sehr stark im Bereich Machine Learning und Artificial Intelligence engagiert und hat u.a. TensorFlow entwickelt, einem mittlerweile sehr populären Framework für die Entwicklung von anspruchsvollen ML-Modellen. Zudem startete Google 2017 mit Kubeflow ein Open-Source-Projekt, das darauf abzielt, verteiltes maschinelles Lernen für Kubernetes zu ermöglichen.

Bisheriges Flaggschiff im Bereich ML-as-a-Service war die Google Cloud ML Engine, die 2019 in die Google Cloud AI Platform integriert wurde. Mit der AI-Plattform versucht Google alle Assets unter ein Dach zu bringen, welches das gesamte Spektrum der ML-Dienste abdecken soll, einschliesslich Datenaufbereitung, Training, Tuning und Bereitstellung von Modellen.

AI Hub fungiert dabei als zentrale Anlaufstelle für die Entdeckung, Freigabe und Bereitstellung von ML-Modellen und enthält eine Sammlung von Modellen, die auf gängigen Frameworks wie Tensorflow, PyTorch, Keras, XGBoost und Scikit-learn basieren und in Kubeflow, auf virtuellen Servern, Jupyter Notebooks oder über Googles AI-APIs bereitgestellt werden können.

Wie bei Amazon SageMaker ist der gesamte ML-Workflow stark code-basiert und läuft über Python-Skripte, mit den entsprechenden Vorteilen bezüglich Flexibilität und Nachteilen bezüglich Benutzerfreundlichkeit. Amazon SageMaker hat mit MXNet, Chainer und SparkML zwar ein etwas breiteres Angebot an integrierbaren Frameworks, dafür ist auf der Google AI Platform jederzeit die aktuellste Version von Tensorflow mit sämtlichen neuen Features verfügbar, während Amazon SageMaker hier häufig einige Wochen hinterherhinkt.

ML-Plattformen im Vergleich

Fazit

Bezüglich Benutzerfreundlichkeit hat das Azure ML Studio sicher die Nase vorn, was gerade für Neueinsteiger sehr attraktiv sein dürfte. Dafür sorgt die Strategie von Microsoft, gleich zwei unterschiedliche ML-Plattformen mit sehr unterschiedlichem Funktionsumfang anzubieten, eher für Verwirrung denn für eine wirkliche Erleichterung für den User, zumal sich die beiden Plattformen nicht gegenseitig integrieren lassen.

Amazon SageMaker profitiert zweifelsohne von der langen Erfahrung im Bereich Cloud-Computing und verfügt über das breiteste Angebot auch was die zugrundeliegende Server-Infrastruktur betrifft, während bei Google die profunde technische ML-Expertise und sein branchenführendes ML-Toolset spürbar ist. Von Google dürften in näherer Zukunft die stärksten Innovations-Impulse im Bereich ML-as-a-Service ausgehen.

Für die allermeisten Anwendungsfälle dürfte es jedoch keine wesentliche Rolle spielen, für welchen ML-Service man sich entscheidet, da sich über alle Plattformen der gesamte ML-Workflow gut und umfassend abbilden lässt und auch alle gebräuchlichen ML-Algorithmen von allen Plattformen unterstützt werden.