Revenir au contenu principal

Deep Learning de bout en bout et évolutif avec TensorFlow™ et Databricks : webinaire à la demande et FAQ désormais disponibles !

Databricks and TensorFlow

Published: July 13, 2018

Solutions7 min de leitura

Le 9 juillet, notre équipe a organisé un webinaire en direct —Scalable End-to-End Deep Learning using TensorFlow™ and Databricks— avec Brooke Wenig, consultante en solutions de science des données chez Databricks, et Sid Murching, ingénieur logiciel chez Databricks.

Dans ce webinar, nous vous avons présenté comment utiliser TensorFlow™ et Horovod (une bibliothèque open source d'Uber pour simplifier l'entraînement distribué de modèles) sur la plateforme d'analyse unifiée Databricks pour créer un système de recommandation plus efficace à grande échelle.

Databricks et TensorFlow

En particulier, nous avons abordé certaines des nouvelles fonctionnalités introduites pour simplifier le deep learning distribué :

  • Le nouveau Databricks Runtime for ML est fourni avec des bibliothèques préinstallées telles que Keras, TensorFlow, Horovod et XGBoost pour permettre aux data scientists de démarrer plus rapidement avec le Machine Learning distribué.
  • La nouvelle API Databricks HorovodEstimator pour l'entraînement distribué et multi-GPU de modèles de deep learning sur des données dans Apache Spark™
  • Comment effectuer des prédictions en montant en charge avec des pipelines de deep learning

 

Si vous avez manqué le webinaire, vous pouvez le visionner maintenant. De plus, nous avons présenté le notebook suivant :

Si vous souhaitez un accès gratuit à la plateforme d'analyse unifiée Databricks pour y essayer nos notebooks, vous pouvez accéder à un Essai gratuit ici.

 

Vers la fin, nous avons tenu une session de questions-réponses, et vous trouverez ci-dessous toutes les questions et leurs réponses. Vous pouvez également nous faire part de vos commentaires sur ce webinaire en remplissant ce court sondage, afin que nous puissions continuer à améliorer votre expérience !

 

Q : Peut-on effectuer l'optimisation des hyperparamètres du modèle dans TensorFlow de manière distribuée ?

Il existe plusieurs manières de procéder, notamment :

  • Entraînez plusieurs modèles à nœud unique en parallèle sur votre cluster (c'est-à-dire un modèle par machine), ou
  • lancez plusieurs Jobs d'entraînement distribués et effectuez une recherche par grille sur ces Jobs d'entraînement distribués.

En ce qui concerne ce que HorovodEstimator prend en charge, nous explorons l'ajout de fonctionnalités pour qu'il fonctionne avec les API d'optimisation natives de MLlib afin que vous puissiez lancer l'optimisation des hyperparamètres via plusieurs tâches d'entraînement distribuées.

Alternativement, la bibliothèque Deep Learning Pipeline (une bibliothèque OSS de Databricks) permet l'optimisation parallélisée des hyperparamètres de modèles Keras à nœud unique sur des données d'images.

 

Q : Que signifie ALS ?

ALS signifie « Alternating Least Squares » (ou moindres carrés alternés). C'est une technique utilisée pour le filtrage collaboratif. Vous pouvez en apprendre davantage sur son implémentation dans Apache Spark ici.

 

Q : Dans votre démo, combien de serveurs et de cœurs avez-vous utilisés ?

Voici notre configuration pour cette démo :

  • Version du Databricks Runtime : 4.1 ML Bêta
  • Version de Python : 3
  • i3.x large (1 driver + 2 workers)

 

Q : Les données ont-elles été répliquées sur chaque machine locale ? Chaque nœud worker utilise-t-il toutes les données pendant l'entraînement ?

Un sous-ensemble unique des données d'entraînement est copié sur le disque local de chaque machine, de sorte que chaque nœud worker s'entraîne sur un sous-ensemble unique des données. Au cours d'une seule étape d'entraînement, chaque worker traite un batch de données d'entraînement, calculant les gradients qui sont ensuite moyennés à l'aide de la fonctionnalité ring-allreduce de Horovod et appliqués au modèle.

 

Q : Comment comparez-vous dist-keras et Horovod ?

Dist-keras est un autre framework open source pour l'entraînement d'un modèle Keras de manière distribuée sur un Dataframe Spark, et constitue une autre excellente solution pour l'entraînement des modèles Keras. Nous avons travaillé avec les deux. L'une des choses que nous avons appréciées à propos d'Horovod, c'est qu'il est fourni avec des benchmarks d'Uber et qu'il est utilisé en production par Uber. Pour cette raison, nous avons décidé de construire l'HorovodEstimator autour de Horovod, car il est utilisé par de grandes entreprises et bénéficiera d'un bon support à l'avenir.

 

Q : Combien de temps dure l'entraînement sur une seule machine par rapport à l'entraînement distribué ?

C'est une bonne question. En général, de nombreux facteurs influencent les performances lorsque l'on compare l'entraînement sur une seule machine et l'entraînement distribué. L'entraînement distribué entraîne une surcharge de communication due à la communication des mises à jour de gradient, mais permet également des accélérations en traitant des batches de données d'entraînement en parallèle sur plusieurs machines. Avec HorovodEstimator, il y a aussi un coût de startup fixe lié à l'écriture du DataFrame Spark d'entrée au format TFRecord sur les disques locaux de nos nœuds de clusters. Nous recommandons d'essayer d'abord l'entraînement sur une seule machine et d'explorer l'entraînement distribué uniquement si l'entraînement sur une seule machine ne monte pas suffisamment en charge.

 

Q : Salut, merci pour la présentation. C'était un excellent scénario de Notebook, mais dans une équipe de plusieurs data scientists travaillant sur différentes Experimentations avec des datasets légèrement différents, avez-vous une fonctionnalité pour suivre cela ? Quelles autres fonctionnalités collaboratives proposez-vous ?

C'est une excellente question ! Nous avons récemment annoncé un nouveau projet open source appelé MLflow, justement pour ça. Avec MLflow, les praticiens peuvent packager et réutiliser des modèles sur différents frameworks, suivre et partager des expérimentations localement ou dans le cloud, et déployer des modèles pratiquement n'importe où. De plus, Databricks fournit des Notebooks partagés pour le développement en Python ou R qui prennent également en charge le suivi des modifications et l'historique des versions avec GitHub.

Lisez le billet de blog de Matei Zaharia sur la version 0.2 de MLflow pour connaître les dernières informations sur cette initiative, et participez à notre prochain webinar le 30 août avec Matei Zaharia pour en savoir plus.

 

Q : Je n'ai pas beaucoup de données et j'utilise un modèle LSTM et TensorFlow. Me recommanderiez-vous quand même Databricks et Apache Spark ?

Apache Spark est idéal pour tout type d'entraînement distribué ou d'ETL, il unifie le traitement des données avec le machine learning, mais son installation, sa configuration et sa maintenance demandent encore des efforts. Databricks vous offre un moyen flexible d'exécuter des Jobs pour des cas d'usage allant du nœud unique aux nœuds multiples sur Apache Spark. Vous pouvez facilement ajouter des nœuds à vos clusters, d'un simple clic. Databricks unifie toute l'analytique en un seul endroit afin que vous puissiez également préparer des jeux de données propres pour l'entraînement de vos modèles. Le Databricks Runtime est fourni avec TensorFlow pré-installé et configuré, ainsi qu'avec Keras, Horovod, mais aussi XGBoost, scikit-learn, etc., vous offrant un maximum de choix et de flexibilité pour créer et entraîner des modèles de ML. Enfin et surtout, les Notebooks Databricks fournissent un environnement collaboratif pour gérer l'ensemble du cycle de vie en un seul endroit, de la préparation des données à l'entraînement et au déploiement des modèles.

 

Q : Peut-on entraîner un modèle binaire avec HorovodEstimator ?

Oui. L'API HorovodEstimator offre simplement un moyen d'exécuter n'importe quel code TensorFlow dans un environnement distribué sur des données à grande échelle, y compris la classification binaire, par exemple.

 

Q : Le cluster prend-il en charge la multilocation ?

Oui, vous pouvez avoir plusieurs notebooks attachés à votre cluster ou plusieurs utilisateurs sur votre cluster. Vous pouvez également gérer les autorisations de cluster à différents niveaux sur Databricks pour une flexibilité et une sécurité maximales.

 

Q :Pourrions-nous partager les scripts et les diapositives des présentateurs après le webinar ?

Oui, vous pouvez désormais accéder au notebook. Il vous suffira d'ajouter l'ensemble d'entraînement à votre Databricks Workspace pour exécuter ce notebook. Inscrivez-vous pour un essai gratuit de 14 jours et lancez-vous !

 

Q : Quelle est la différence entre Apache Spark et Databricks ?

Databricks plateforme d'analyse unifiée fournit une version hébergée d'Apache Spark sur AWS et Azure, et bien plus encore. Nous fournissons des Notebooks et des APIs intégrés pour gérer et automatiser l'analytique en un seul endroit, ainsi que des optimisations supplémentaires pour Apache Spark, notamment Databricks Delta Lake qui est jusqu'à 100x plus rapide qu'Apache Spark sur Parquet, Databricks Runtime for ML et le HorovodEstimator. Nous simplifions également considérablement le DevOps avec la configuration automatique et la mise à l'échelle automatique des clusters, et nous fournissons des fonctionnalités de sécurité de niveau entreprise ainsi que la conformité avec une plateforme certifiée HIPAA et SOC 2 type 2.

 

(Cet article de blog a été traduit à l'aide d'outils basés sur l'intelligence artificielle) Article original

Ne manquez jamais un article Databricks

Abonnez-vous à notre blog et recevez les derniers articles dans votre boîte mail.

Et ensuite ?

image

Data Science e ML

October 31, 2023/9 min de leitura

Anunciando as métricas de LLM-como-juiz do MLflow 2.8 e as Melhores Práticas para Avaliação de LLM de Aplicações RAG, Parte 2

Creating High Quality RAG Applications with Databricks

Anúncios

December 6, 2023/7 min de leitura

Criando aplicativos RAG de alta qualidade com a Databricks