Montag , September 28 2020

Fünf Hauptfunktionen für eine Plattform für maschinelles Lernen

Klicken Sie hier, um mehr über den Co-Autor Ion Stoica zu erfahren.

Klicken Sie hier, um mehr über den Co-Autor Ben Lorica zu erfahren.

Entwickler von Plattformen für maschinelles Lernen
Sie müssen sich den aktuellen Herausforderungen stellen und zukünftige Arbeitslasten planen.

Da maschinelles Lernen in immer mehr Unternehmen Fuß fasst, haben Teams Probleme mit der Komplexität der Verwaltung des maschinellen Lernlebenszyklus.

Der typische Ausgangspunkt ist:
Geben Sie jedem Datenwissenschaftler ein Jupyter-Notizbuch, das von einer GPU-Instanz im Internet unterstützt wird
Cloud und ein separates Team verwalten Bereitstellung und Serving, aber dieser Ansatz
gliedert sich in die Komplexität der Anwendungen und die Anzahl der Bereitstellungen
wachsen.

Infolgedessen suchen immer mehr Teams nach Plattformen für maschinelles Lernen. Mehrere Startups und Cloud-Anbieter bieten End-to-End-Plattformen für maschinelles Lernen an, darunter AWS (SageMaker), Azure (Studio für maschinelles Lernen), Databricks (MLflow), Google (Cloud AI Platform) und andere. Viele andere Unternehmen bauen ihre eigenen, darunter Uber (Michelangelo), Airbnb (BigHead), Facebook (FBLearner), Netflix und Apple (Overton).

Bildquelle: Anyscale
Abbildung 1: Open Source Ray kann verwendet werden, um steckbare Komponenten für maschinelle Lernplattformen zu erstellen. Die blauen Kästchen sind Komponenten, auf denen einige Bibliotheken aufgebaut sind.

Viele Benutzer erstellen ML-Tools und -Plattformen. Dies ist ein aktiver Bereich: Mehrere Startups und Cloud-Plattformen bieten End-to-End-Plattformen für maschinelles Lernen an, darunter Amazon, Databricks, Google und Microsoft. Gespräche mit Mitgliedern der Community führen die Benutzer jedoch immer wieder zu diesem Tool zurück, um viele ungelöste Herausforderungen zu lösen.

Rays Bibliothekssammlung kann zusammen mit anderen ML-Plattformkomponenten verwendet werden. Und im Gegensatz zu monolithischen Plattformen haben Benutzer die Flexibilität, eine oder mehrere der vorhandenen Bibliotheken zu verwenden oder ihre eigenen Bibliotheken zu erstellen. Eine unvollständige Liste von Plattformen für maschinelles Lernen, die solche Funktionen bereits enthalten, umfasst:

In diesem Beitrag werden wir Erkenntnisse austauschen
abgeleitet aus Gesprächen mit vielen ML-Plattformherstellern. Wir werden auflisten
Funktionen, die entscheidend dafür sind, dass Ihre ML-Plattform funktioniert
gut positioniert für moderne KI-Anwendungen. Wir werden das auch so machen
Entwickler, die ML-Plattformen und ML-Komponenten erstellen, sollten dies berücksichtigen
Plattform, weil es ein Ökosystem von eigenständigen Bibliotheken hat, die dies können
verwendet werden, um einige der unten aufgeführten Punkte anzusprechen.

Ökosystemintegration

Entwickler und Ingenieure für maschinelles Lernen verwenden eine Vielzahl von Tools und Programmiersprachen (R, Python, Julia, SAS usw.). Mit dem Aufkommen des tiefen Lernens ist Python jedoch die dominierende Programmiersprache für maschinelles Lernen geworden. Wenn überhaupt, muss eine ML-Plattform Python und das Python-Ökosystem unterstützen.

In der Praxis verlassen sich Entwickler und Ingenieure für maschinelles Lernen auf viele verschiedene Python-Bibliotheken und -Tools. Zu den am häufigsten verwendeten Bibliotheken gehören Deep-Learning-Tools (TensorFlow, PyTorch), Bibliotheken für maschinelles Lernen und statistische Modellierung (Scikit-Learn, Statistikmodelle), NLP-Tools (spaCy, Hugging Face, AllenNLP) und Modell-Tuning (Hyperopt, Tune). [19659004] Weil es sich nahtlos in integriert
Im Python-Ökosystem nutzen viele Entwickler Ray für den Bau von Maschinen
Lernwerkzeuge. Es ist eine universelle verteilte Computerplattform, die dies kann
können verwendet werden, um vorhandene Python-Bibliotheken und -Anwendungen einfach zu skalieren. Es hat auch eine wachsende Sammlung von Standalone
Bibliotheken für Python verfügbar
Entwickler.

Easy Scaling

Wie wir in The Future of Computing Distributed festgestellt haben, steigen die „Anforderungen an Anwendungen für maschinelles Lernen mit rasender Geschwindigkeit“. Das Aufkommen von Deep Learning und neuen Workloads bedeutet, dass verteiltes Computing für maschinelles Lernen üblich sein wird. Leider haben viele Entwickler relativ wenig Erfahrung mit verteiltem Computing.

Skalierung und verteilte Berechnung
In diesen Bereichen war Ray für viele Benutzer, mit denen wir gesprochen haben, hilfreich. Es erlaubt
Entwickler sollten sich auf ihre Anwendungen konzentrieren, anstatt auf die Feinheiten von
verteiltes Rechnen. Die Verwendung bietet Entwicklern, die dies benötigen, mehrere Vorteile
So skalieren Sie Anwendungen für maschinelles Lernen:

  • Mit dieser Plattform können Sie Ihre vorhandenen Anwendungen problemlos auf einen Cluster skalieren. Dies kann so einfach sein wie das Skalieren Ihrer Lieblingsbibliothek auf einen Computercluster (siehe diesen kürzlich veröffentlichten Beitrag zur Skalierung von Scikit-Learn). Oder Sie können die API verwenden, um ein vorhandenes Programm auf einen Cluster zu skalieren. Das letztere Szenario ist eines, das wir für Anwendungen in NLP, Online-Lernen, Betrugserkennung, Finanzzeitreihen, OCR und vielen anderen Anwendungsfällen gesehen haben.
  • RaySGD vereinfacht das verteilte Training für PyTorch und TensorFlow. Dies sind gute Nachrichten für die vielen Unternehmen und Entwickler, die Schwierigkeiten haben, große neuronale Netze zu trainieren oder zu optimieren.
  • Anstatt Zeit mit DevOps zu verbringen, erleichtert ein integrierter Cluster-Launcher das Einrichten eines Clusters.

Erweiterbarkeit für neue Workloads

Moderne KI-Plattformen sind bekanntermaßen rechenhungrig. In dem oben erwähnten Beitrag Die Zukunft des Rechnens ist verteilt haben wir festgestellt, dass Modelloptimierung ein wichtiger Teil des Entwicklungsprozesses für maschinelles Lernen ist:

„Sie trainieren kein Modell nur einmal. In der Regel hängt die Qualität eines Modells von einer Vielzahl von Hyperparametern ab, z. B. der Anzahl der Schichten, der Anzahl der ausgeblendeten Einheiten und der Stapelgröße. Um das beste Modell zu finden, muss häufig nach verschiedenen Hyperparametereinstellungen gesucht werden. Dieser Prozess wird als Hyperparameter-Tuning bezeichnet und kann sehr teuer sein. “ Ion Stoica

Entwickler können aus mehreren Bibliotheken zum Optimieren von Modellen auswählen. Eines der beliebtesten Tools ist Tune, eine skalierbare Hyperparameter-Tuning-Bibliothek, die auf Ray basiert. Tune läuft auf einem einzelnen Knoten oder in einem Cluster und hat sich schnell zu einer der beliebtesten Bibliotheken in diesem Ökosystem entwickelt.

Reinforcement Learning (RL) ist ein weiterer Bereich, der hervorgehoben werden sollte. Viele der jüngsten Artikel über RL beziehen sich auf das Gameplay (Atari, Go, Multiplayer-Videospiele) oder auf Anwendungen in industriellen Umgebungen (z. B. Effizienz von Rechenzentren). Wie bereits erwähnt, gibt es jedoch neue Anwendungen in den Bereichen Empfehlungen und Personalisierung, Simulation und Optimierung, Finanzzeitreihen und öffentliche Ordnung.

RL ist rechenintensiv, komplex zu implementieren und zu skalieren, und daher möchten viele Entwickler einfach Bibliotheken verwenden. Ray bietet eine einfache, hoch skalierbare Bibliothek (RLlib), die Entwickler und Ingenieure für maschinelles Lernen in mehreren Organisationen bereits in der Produktion verwenden.

Für Teams konzipierte Tools

Zu Beginn der Verwendung und Bereitstellung durch Unternehmen
Weitere Modelle für maschinelles Lernen müssen Entwicklerteams in der Lage sein
zusammenarbeiten. Sie benötigen Zugang zu Plattformen, die
Aktivieren Sie sowohl die Freigabe als auch die Erkennung. Wenn Sie eine ML-Plattform in Betracht ziehen,
Betrachten Sie die wichtigsten Phasen der Modellentwicklung und des Modellbetriebs und gehen Sie davon aus
dass Teams von Menschen mit unterschiedlichen Hintergründen während jeder von ihnen zusammenarbeiten
Diese Phasen.

Beispielsweise sind Feature-Stores (erstmals 2017 von Uber eingeführt) nützlich, da sie es Entwicklern ermöglichen, Features zu teilen und zu entdecken, an die sie sonst möglicherweise nicht gedacht hätten. Teams müssen auch in der Lage sein, während des Lebenszyklus der Modellentwicklung zusammenzuarbeiten. Dies umfasst das Verwalten, Verfolgen und Reproduzieren von Experimenten. Das führende Open-Source-Projekt in diesem Bereich ist MLflow. Wir stoßen jedoch auf Benutzer anderer Tools wie Weights & Biases und Comet sowie auf Benutzer, die ihre eigenen Tools zum Verwalten von ML-Experimenten erstellt haben.

Unternehmen benötigen zusätzliche
Funktionen – einschließlich Sicherheit und Zugangskontrolle. Model Governance und Modell
Kataloge (Analoga ähnlicher Systeme zur Datenverwaltung) werden ebenfalls angeboten
Erforderlich, wenn Entwicklerteams mehr Modelle erstellen und bereitstellen.

Erstklassige MLOps

MLOps ist eine Reihe von Methoden, die sich auf die Produktion des maschinellen Lernlebenszyklus konzentrieren. Es ist ein relativ neuer Begriff, der sich auf Ideen aus der kontinuierlichen Integration (CI) und der kontinuierlichen Bereitstellung (CD) stützt, zwei weit verbreiteten Methoden der Softwareentwicklung. In einem kürzlich veröffentlichten Thoughtworks-Beitrag wurden einige wichtige Überlegungen zum Einrichten einer CD für maschinelles Lernen (CD4ML) aufgeführt. Einige Schlüsselelemente für CI / CD für maschinelles Lernen sind Reproduzierbarkeit, Versuchsverwaltung und -verfolgung, Modellüberwachung und Beobachtbarkeit und vieles mehr. Es gibt einige Startups und Open Source-Projekte, die MLOps-Lösungen anbieten, darunter Datatron, Verta, TFX und MLflow.

Ray verfügt über Komponenten, die dies wären
Nützlich für Unternehmen, die auf CI / CD umsteigen oder CI / CD-Tools für Maschinen entwickeln
Lernen. Es verfügt bereits über Bibliotheken für Schlüsselphasen des ML-Lebenszyklus: Training (RaySGD), Tuning (Tune),
und Einsatz (dienen). Zugriff auf funktionierende Bibliotheken
Durch die nahtlose Verbindung können Benutzer CI / CD-Methoden leichter einbinden
ihre MLOps-Praxis.

Zusammenfassung

Wir haben die Schlüsselelemente dieser Maschine aufgelistet
Lernplattformen sollten besitzen. Unsere Grundannahmen sind Python
wird die Sprache der Wahl für ML bleiben, verteiltes Rechnen wird zunehmend
benötigt werden, müssen neue Workloads wie Hyperparameter Tuning und RL sein
unterstützt, und Tools zur Ermöglichung der Zusammenarbeit und MLOps müssen verfügbar sein.

Unter Berücksichtigung dieser Annahmen haben wir
Ich glaube, dass Ray die Grundlage für zukünftige ML-Plattformen sein wird. Viele Entwickler
und Ingenieure verwenden es bereits für ihre Anwendungen für maschinelles Lernen.
einschließlich Schulung, Optimierung und Bedienung. Es geht nicht nur um Strom
Herausforderungen wie Größe und Leistung, aber gut positioniert, um die Zukunft zu unterstützen
Workloads und Datentypen. Ray und die wachsende Anzahl von Bibliotheken, die darauf aufbauen
davon wird dazu beitragen, ML-Plattformen für die kommenden Jahre zu skalieren. Wir freuen uns auf
Sehen, was Sie bauen.

About BusinessIntelligence

Check Also

Häufige Cyber-Angriffe und wie Sie sich vor ihnen schützen können

Cyberkriminalität, insbesondere im Finanzsektor, kostete die Weltwirtschaft 2018 nicht nur 2,7 Milliarden US-Dollar, sondern ist …

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.