Am 9. Juli veranstaltete unser Team ein Live-Webinar –Scalable End-to-End Deep Learning using TensorFlow™ and Databricks– mit Brooke Wenig, Data Science Lösungen Consultant bei Databricks, und Sid Murching, Software Engineer bei Databricks.
In diesem Webinar haben wir Ihnen gezeigt, wie Sie TensorFlow™ und Horovod (eine Open Source-Bibliothek von Uber zur Vereinfachung des verteilten Modelltrainings) auf der Databricks einheitliche Analyseplattform verwenden, um ein effektiveres Empfehlungssystem im großen Scale zu erstellen.
Insbesondere haben wir einige der neu eingeführten Funktionen vorgestellt, um verteiltes Deep Learning zu vereinfachen:
Wenn Sie das Webinar verpasst haben, können Sie es sich jetzt ansehen. Außerdem haben wir das folgende Notebook demonstriert:
Wenn Sie kostenlosen Zugriff auf die Databricks einheitliche Analyseplattform möchten und unsere Notebooks darauf ausprobieren wollen, können Sie hier eine Kostenlose Testversion starten.
Gegen Ende hielten wir eine Q&A-Runde ab, und nachfolgend finden Sie alle Fragen und deren Antworten. Sie können uns auch Ihr Feedback zu diesem Webinar geben, indem Sie diese kurze Umfrage ausfüllen, damit wir Ihr Erlebnis weiter verbessern können!
F: Können Sie ein Hyperparameter-Tuning des Modells in TensorFlow verteilt durchführen?
Es gibt eine Reihe von Möglichkeiten, dies zu tun, unter anderem:
Hinsichtlich dessen, was der HorovodEstimator unterstützt, prüfen wir, ob wir die Funktionalität für die nativen Tuning-APIs von MLlib erweitern können, sodass Sie das Hyperparameter-Tuning über mehrere verteilte Trainingsaufträge starten können.
Alternativ ermöglicht die Deep Learning Pipeline (eine Open-Source-Bibliothek von Databricks) ein parallelisiertes Hyperparameter-Tuning von Single-Node-Keras-Modellen für Bilddaten.
F: Wofür steht ALS?
ALS steht für Alternating Least Squares. Es ist eine Technik, die für das kollaborative Filtern verwendet wird. Mehr über die Implementierung in Apache Spark erfahren Sie hier.
F: Wie viele Server haben Sie in Ihrer Demo verwendet? Wie viele Kerne?
Hier ist unsere Config für diese Demo:
F: Wurden die Daten auf jedem lokalen Computer repliziert? Verwendet jeder Worker-Knoten während des Trainings alle Daten?
Eine eindeutige Teilmenge der Trainingsdaten wird auf die lokale Festplatte jeder Maschine kopiert, sodass jeder Worker-Knoten auf einer eindeutigen Teilmenge der Daten trainiert. Während eines einzelnen Trainingsschritts verarbeitet jeder Worker einen Batch von Trainingsdaten und berechnet Gradienten, die dann mithilfe der ring-allreduce-Funktionalität von Horovod gemittelt und auf das Modell angewendet werden.
F: Wie vergleichen Sie dist-keras und Horovod?
Dist-keras ist ein weiteres Open-Source-Framework zum Trainieren eines Keras-Modells auf verteilte Weise auf einem Spark Dataframe und eine weitere großartige Lösung für das Training von Keras-Modellen. Wir haben mit beiden gearbeitet. Eines der Dinge, die uns an Horovod gefallen haben, ist, dass es mit Benchmarks von Uber geliefert wird und von Uber in der Produktion eingesetzt wird. Aus diesem Grund haben wir uns entschieden, den HorovodEstimator auf Basis von Horovod zu entwickeln, da es von großen Industrieunternehmen verwendet wird und auch in Zukunft gut unterstützt werden wird.
F: Wie lange dauert das Training auf einer einzelnen Maschine im Vergleich zum verteilten Training?
Das ist eine gute Frage. Im Allgemeinen gibt es viele Faktoren, die die Performance beim Vergleich von Single-Machine-Training und verteiltem Training beeinflussen. Verteiltes Training verursacht Kommunikationsaufwand durch die Kommunikation von Gradienten-Updates, ermöglicht aber auch Beschleunigungen durch die parallele Verarbeitung von Batches von Trainingsdaten auf mehreren Rechnern. Bei HorovodEstimator fallen außerdem feste Startkosten für das Schreiben des Eingabe-Spark-DataFrames im TFRecord-Format auf die lokalen Festplatten unserer Cluster-Knoten an. Wir empfehlen, zuerst das Single-Machine-Training auszuprobieren und das verteilte Training nur dann zu untersuchen, wenn das Single-Machine-Training nicht ausreichend skaliert.
F: Hey, danke für den Vortrag. Das war ein großartiges Notebook-Szenario, aber haben Sie für ein Team von mehreren Data Scientists, die an verschiedenen Experimenten mit leicht unterschiedlichen Datensätzen arbeiten, eine Funktionalität, um dies nachzuverfolgen? Welche anderen kollaborativen Features unterstützen Sie?
Das ist eine sehr gute Frage! Wir haben kürzlich genau dafür ein neues Open-Source-Projekt namens MLflow angekündigt. Mit MLflow können Anwender Modelle frameworkübergreifend bündeln und wiederverwenden, Experimente lokal oder in der Cloud nachverfolgen und teilen und Modelle praktisch überall bereitstellen. Darüber hinaus bietet Databricks gemeinsam genutzte Notebooks für die Entwicklung in Python oder R, die auch die Nachverfolgung von Änderungen und einen Versionsverlauf mit GitHub unterstützen.
Lesen Sie den Blogpost von Matei Zaharia über das MLflow 0.2-Release für das neueste Update zu dieser Initiative und nehmen Sie an unserem kommenden Webinar am 30. August mit Matei Zaharia teil, um mehr zu erfahren.
F: Ich habe nicht viele Daten und verwende ein LSTM-Modell und TensorFlow. Würden Sie mir trotzdem Databricks und Apache Spark empfehlen?
Apache Spark eignet sich hervorragend für jede Art von verteiltem Training oder ETL, es vereint Datenverarbeitung mit Machine Learning, erfordert aber dennoch Aufwand für die Installation, Konfiguration und Wartung. Databricks bietet Ihnen eine flexible Möglichkeit, Jobs von Anwendungsfällen mit einem einzelnen Knoten bis hin zu Anwendungsfällen mit mehreren Knoten auf Apache Spark auszuführen. Sie können Ihren Clustern mit einem einzigen Klick ganz einfach weitere Knoten hinzufügen. Databricks vereint die gesamte Analytics an einem Ort, sodass Sie auch saubere Datensätze für das Training Ihrer Modelle vorbereiten können. Die Databricks Runtime enthält vorinstalliertes und konfiguriertes TensorFlow sowie Keras, Horovod, aber auch XGBoost, scikit-learn usw. und bietet Ihnen maximale Auswahl und Flexibilität beim Erstellen und Trainieren von ML-Modellen. Zu guter Letzt bieten Databricks Notebooks eine kollaborative Umgebung, um den gesamten Lebenszyklus an einem Ort zu verwalten, von der Datenaufbereitung über das Modelltraining bis hin zum Serving.
F: Kann man ein binäres Modell mit dem HorovodEstimator trainieren?
Ja. Die HorovodEstimator API bietet einfach eine Möglichkeit, beliebigen TensorFlow-Code in einer verteilten Umgebung für Daten im großen Maßstab auszuführen, zum Beispiel für die binäre Klassifizierung.
F: Unterstützt der Cluster Mandantenfähigkeit?
Ja, Sie können mehrere Notebooks an Ihren Cluster anhängen oder mehrere Benutzer in Ihrem Cluster haben. Sie können auch Cluster-Berechtigungen auf verschiedenen Ebenen auf Databricks verwalten, um maximale Flexibilität und Sicherheit zu gewährleisten.
F: Könnten wir die Skripte und Folien der Vortragenden nach dem Webinar teilen?
Ja, Sie können jetzt auf das Notebook zugreifen. Sie müssen nur das Trainingsset zu Ihrem Databricks Workspace hinzufügen, um dieses Notebook auszuführen. Registrieren Sie sich für eine kostenlose 14-tägige Testversion, um loszulegen!
F: Was ist der Unterschied zwischen Apache Spark und Databricks?
Die Databricks einheitliche Analyseplattform bietet eine gehostete Version von Apache Spark sowohl auf AWS als auch auf Azure und vieles mehr. Wir bieten integrierte Notebooks und APIs zur Verwaltung und Automatisierung von Analysen an einem Ort sowie zusätzliche Optimierungen für Apache Spark, einschließlich Databricks Delta Lake, das bis zu 100-mal schneller ist als Apache Spark auf Parquet, Databricks Runtime for ML und dem HorovodEstimator. Wir vereinfachen auch DevOps erheblich durch die automatische Konfiguration und Skalierung von Clustern und bieten Sicherheitsfunktionen auf Unternehmensniveau sowie Compliance mit einer nach HIPAA und SOC 2 Typ 2 zertifizierten Plattform.
(Dieser Blogbeitrag wurde mit KI-gestützten Tools übersetzt.) Originalbeitrag
Data Science e ML
October 31, 2023/9 min de leitura

