Welchen Nutzen hat Cloud Computing für Machine Learning?

Cloud Computing, oder auf Deutsch „Datenwolke“, spielt eine große Rolle im Anwendungsbereich des Machine Learning. Die Cloud Anbieter bieten, neben den klassischen Cloud Computing Services, zunehmend auch Machine Learning Anwendungen innerhalb der Cloud an. Zu den bekanntesten Firmen in diesem Bereich gehören Google Cloud (AI, Collab, ML Engine), AWS (Amazon SageMaker), Microsoft (Azure), IBM Cloud (Watson). Es gibt aber auch diverse Nischenanbieter, die Cloud Computing mit integrierbaren Machine Learning Dienstleistungen anbieten, wie zum Beispiel Splunk oder Dataiku.

Was ist Cloud Computing?

Vereinfacht gesagt wandelt Cloud Computing ein IT-Produkt in einen IT-Service um. Die größte Differenz zwischen Cloud und On-Device-Computing ist also der Speicherort unserer Daten. Im klassischen Fall würden beispielsweise unsere Dokumente auf dem lokalen Disk oder einem USB Stick gespeichert (hier handelt es sich um ein IT-Produkt). Beim Cloud Computing werden unsere Dokumente in externen Rechenzentren gespeichert. Dabei handelt es sich um einen IT-Service. Bei einem klassischen IT-Produkt haben wir unsere Hardware vor Ort (zum Beispiel als USB-Stick). Im Fall der Cloud benötigen wir (außer unserem PC) keine Hardware vor Ort, sondern nur einen Internetzugang, um unsere Daten in der Cloud zu erreichen.

Der Zugang zur Cloud wird über eine Programmierschnittstelle (API) gewährleistet. Die Pflege der Cloud übernimmt der Cloudanbieter. Dabei gibt es allerdings Abstufungen in Abhängikeit davon, welche Features der Cloud man nutzen möchte.

Vorteile von Cloud Computing

Die Gründe für das Nutzen von Cloud Computing anstelle von On-Premise-Lösungen können sehr vielfältig und individuell sein. Vieles hängt davon ab, wie groß unser Unternehmen ist und ob es bereit ist in On-Premise-Lösungen zu investieren. Generell lautet die Empfehlung bei den kleineren Firmen sowie Start-Ups erstmal mit einer externen Cloud Lösung zu beginnen. Die wichtigsten Gründe dafür sind vor allem die Zeit und Kosten.

Zeit und Kosten

Wenn die Expertise nicht bereits in-House vorhanden ist, lohnt es sich aus Kosten- und Zeitgründen erstmal in eine externe Cloud Lösung zu investieren. Hier entfallen die Kosten für das Betreiben und Wartung von Rechenzentren und die damit verbundenen zusätzlichen Mitarbeiter.

Skalierbarkeit und Geschwindigkeit der Bereitstellung

Einer der wichtigsten Gründe, die für eine Cloud Lösung sprechen, ist ihre schnelle Skalierbarkeit. Die Rechenkapazität kann flexibel und schnell je nach Bedarf ausgeweitet werden.

Bei einer On-Premise-Lösung muss die zusätzliche Kapazität erst aufgebaut werden. Neue IT-Experten müssen im Zweifel eingestellt und Hardware eingekauft werden. Das kann eine gewisse Zeit in Anspruch nehmen, und gerade was Neueinstellungen betrifft, je nach Standort, auch ganz erhebliche Probleme bereiten.

Im Fall einer Cloud Lösung ist diese Infrastruktur bereits vorhanden und kann recht schnell entsprechend skaliert werden. Es wird auch nicht langfristig Kapital durch den Aufbau von Headcount gebunden.

Dies kann beispielsweise nützlich sein, wenn der Bedarf an Rechenkapazität sprunghaft steigt, was insbesondere im Fall von Start-Ups schnell passieren kann.

Geringere Anfangskosten

Vor allem am Anfang bleiben die Investitionskosten im Fall von Cloud Computing gering. Die Firmen müssen nicht in IT-Experten und entsprechendes Hardware investieren. Die Kosten können jedoch bei entsprechend steigendem Datenverbrauch und Bedarf an Machine Learning (ML) Dienstleistungen langfristig steigen. Spätestens dann lohnt es sich über Investitionen in die eigenen IT-Systeme nachzudenken. Allerdings ist bei komlexen Lösungen der Lock-in-Effekt, also die Bindung an den Cloud-Anbieter, schon in der Regel recht groß.

Rechenkapazität für Machine Learning

Schnelle Rechenkapazität ist für das Trainieren von Machine Learning Modellen von größerer Bedeutung. Aufgrund von großen Datenmengen (Stichwort: Big Data) sowie umfangreichen ML Modellen (Stichwort: Deep Learning) reichen kleinere On-Premise Lösungen oft nicht aus.

Praktisch ist auch, dass die entsprechende Programmierumgebung in der Cloud bereits vorinstalliert ist und es nicht notwendig ist die einzelnen Frameworks zu installieren und einzurichten.

Einfachheit der ML Anwendung

Manche Cloud Anbieter (insbsondere Azure) haben die Implementierung von ML Anwendungen signifikant vereinfacht. Dies kann ein großer Vorteil sein, wenn man keine Ressorcen hat, um stark in In-House Expertise zu investieren. Allerdings ist dieser Vorteil mit Vorsicht zu genießen, denn die Einfachheit kann zu einer falschen Anwendung der ML Modelle verleiten und im Endeffekt mehr Schaden als Nutzen hervorrufen.

Nachteile von Cloud Computing

Die Nutzung von Cloud Computing kann aber auch Nachteile mit sich bringen. Einer davon kann die Einfachheit in der Anwendung von ML in der Cloud sein. Auf den ersten Blick erleichtert die Einfachheit die Implementierung von ML Modellen, was auf den ersten Blick positiv zu werten ist. Dies kann aber unter Umständen auch zu einem Risiko werden – und zwar dann, wenn diese ML Modelle falsch berechnet und implementiert werden. Als Folge kann die falsche Anwendung sogar einen finanziellen Schaden für das Unternehmen verursachen.

Des Weiteren kann die Cloud ein relevates IT-Sicherheitsrisiko darstellen. In der Regel sind die Cloud Server vor den Hackerangriffen recht gut geschützt. In diesem Fall verlassen wir uns aber auf ein externes Unternehmen, welches die Sicherheit der IT-Dienstleistungen gewährleistet, die ggf. für unser Unternehmen kritisch sind. Zudem entstehen auch Fragen nach der generellen Sicherheit der auf den Cloud Servern abgelegten Daten. Wer kann auf diese zugreifen? Prinzipiell besteht im Fall Cloud eine gewisse Abhängigkeit von externen Maßnahmen auf die man keinen Einfluß nehmen kann.

Ein zusätzliches Problem stellt die beschränkte Kompatibilität der Cloud Systeme untereinander dar. Die Daten und Anwendungen können nicht leicht von einer Cloud in die andere wechseln. Die Übertragung kann unter diesen Umständen viel Zeit in Anspruch nehmen.

Bei international tätigen Firmen stellen sich zudem komplexere rechtliche Compliancefragen in Zusammenhang mit Cloud Nutzung. Die rechtlichen Fragen erfordern unter Umständen zusätzlichen Aufwand und Beratung. Insbesondere datenschutzrehtliche Fragen der Zulässigkeit des Exports personennbezogeneer Daten in Drittstaaten ausserhalb der EU/EWiR sind bei der Auswahl des Anbieters von erheblicher Bedeutung.

Cloud Computing liefert meist vorgefertigte und wenig individuelle Lösungen. Individuelle Lösungen im Bereich Machine Learning müssen selbst entwirckelt werden.  Nicht alle Algorithmen werden durch die ML Cloud unterstützt.

Cloud Computing Plattformen für Machine Learning im Überblick

Die meisten Cloud Computing Plattformen bieten inzwischen auch auf die ML spezialisierte Anwendungen. Hier werden nur die größten Anbieter aufgezählt.

Amazon Web Services (AWS): SageMaker

Eine der bekanntesten Cloud Computing Plattformen, die über eine sehr große Bandbreite an Anwendungen im Bereich Machine Learning verfügt, ist Amazon Web Services.

Für die Modellentwicklung, Training und Bereitstellung ist hier Amazon SageMaker verantwortlich. SageMaker verfügt über bestimmte built-in Algorithmen, erlaubt sind aber auch eigene Anwendungen und somit die Implementierung von eigenen ML Modellen. Die Nutzung von Jupyter Notebook ist möglich. Die gesamte SageMaker-Umgebung erinnert stark an die Jupyter-Umgebung und ist deswegen für Datenwissenschaftlerinnen und Machine Learning Experten recht intuitiv zu bedienen. Für Anfängerinnen, die keine Vorkenntnisse im ML und Jupyter Notebook haben, kann aber der Einstieg schwierig werden.

Amazon Sagemaker

Google Cloud Plattform (GCP)

Zu den größeren Playern gehört auch die Google Cloud. Hier werden die ML Anwendungen im Rahmen von ML Engine angeboten. Der Unterschied zu SageMaker ist u.a. wie die Kosten für die Nutzung berechnet werden.

Im Fall von SageMaker müssen alle Dienste stets aktiviert sein, um die Modelschätzungen zu berechnen. Mit ML Engine müssen die Dienste nicht stets aktiviert sein. Hier können somit die Kosten ggf. besser kontrolliert werden. Allerdings sind die Nutzungskosten der Cloud Plattformen sehr individuell gestaffelt. Insofern lohnt es sich immer, bei allen relevanten Anbietern die Kosten abzufragen.

Die Nutzung von Jupyter Notebook ist beim ML Engine erschwert, da es hierzu eine hauseigene Anwendungen gibt.

Microsoft (Azure)

azure

Für Anfänger im Data Science Bereich und insbesondere ohne Jupyter Notebook Kenntnisse ist Azure sicherlich die leichteste Option. In diesem Beitrag habe ich bereits die Vor- und Nachteile von Azure genauer beschrieben.

Im Azure lassen sich die ML Modelle mittels Drag and Drop Menü leicht erstellen. Auch Datensätze lassen sich auf diese Art und Weise bearbeiten. Jupyter Notebook ist integrierbar.  Ähnlich wie Google Cloud und SageMaker bietet Azure eine Auswahl an vorgefertigten Modellen, die man recht schnell implementieren kann.

Der größte Vorteil von Azure ist die relative Leichtigkeit in der Bediengung, da die Anwendungen in Richtung No-Code Umgebung gehen. Dies macht den Einstieg in die Machine Learning unglaublich leicht. Dieser Vorteil kann jedoch schnell zum Nachteil werden, denn es verleitet zu einer schnellen und unüberlegten Anwendung von ML Methoden.

Microsoft bietet ein kostenloses Probeabo für manche Funktionen in Azure. Mit dem Abo lassen sich die Funktionen von Azure ausprobieren.

Cloud Computing in der Zukunft

Obwohl Cloud Computing für Machine Learning eine recht große Rolle eingenommen hat, gibt es inzwischen einen weiteren Trend und zwar weg vom Cloud Computing in Richtung On-Device-Lösungen.

Dieser Trend hat verschiedene Gründe. Zum einen können Cloud Lösungen recht teuer werden. Auch die Sicherheit und Stabilität der Cloud spielt eine Rolle. Wenn die Cloud angegriffen wird oder aus anderen Gründen nicht stabil funktioniert, haben die Kunden keinen Zugriff auf ihre ML Anwendungen. Das ist bei On-Device-Lösungen nicht der Fall.

Aus diesen Gründen werden inzwischen ML Modelle auf den Geräten selbst („on device“) gespeichert. Diese Praxis erfordert eine etwas andere Herangehensweise an die Entwicklung von ML Modellen. Die technischen Voraussetzungen für ein optimal funktionierendes ML Modell sind ein wenig anders, wenn das Modell auf dem Gerät selbst gespeichert wird. In diesem Fall ist es empfehlenswert sich mit der Hardware und den Compiling-Sprachen wie (C und C++) auseinanderzusetzen.

Anmerkung: Für diesen Beitrag haben wir keine Gegenleistung erhalten.