El 9 de julio, nuestro equipo organizó un seminario web en vivo, Deep Learning escalable de extremo a extremo con TensorFlow™ y Databricks, con Brooke Wenig, consultora de soluciones de ciencia de datos en Databricks, y Sid Murching, ingeniero de software en Databricks.
En este webinar, te mostramos cómo usar TensorFlow™ y Horovod (una biblioteca de código abierto de Uber para simplificar el entrenamiento de modelos distribuidos) en la Databricks Unified Analytics Platform para crear un sistema de recomendación más eficaz a escala.
En particular, cubrimos algunas de las nuevas capacidades introducidas para simplificar el deep learning distribuido:
Si te perdiste el seminario web, puedes verlo ahora. Además, demostramos el siguiente notebook:
Si deseas acceso gratuito a Databricks Unified Analytics Platform y probar nuestros notebooks en ella, puedes acceder a una prueba gratuita aquí.
Hacia el final, realizamos una sesión de preguntas y respuestas, y a continuación se encuentran todas las preguntas con sus respuestas. También puede enviarnos sus comentarios sobre este seminario web completando esta breve encuesta, ¡para que podamos seguir mejorando su experiencia!
P: ¿Se puede realizar el ajuste de hiperparámetros del modelo en TensorFlow de forma distribuida?
Hay varias maneras de hacer esto, que incluyen, entre otras:
En cuanto a lo que admite HorovodEstimator, estamos explorando agregar funcionalidad para que funcione con las API de ajuste nativas de MLlib y así poder iniciar el ajuste de hiperparámetros a través de múltiples trabajos de entrenamiento distribuidos.
Como alternativa, Deep Learning Pipeline (una biblioteca de código abierto de Databricks) permite el ajuste de hiperparámetros paralelizado de los modelos Keras de un solo nodo en datos de imágenes.
P: ¿Qué significa ALS?
ALS son las siglas de Alternating Least Squares. Es una técnica utilizada para el filtrado colaborativo. Puede obtener más información sobre su implementación en Apache Spark aquí.
P: En tu demo, ¿cuántos servidores usaste? ¿Cuántos núcleos?
Esta es nuestra configuración para esta demostración:
P: ¿Se replicaron los datos en cada máquina local? ¿Cada nodo de trabajo usa todos los datos durante el entrenamiento?
Se copia un subconjunto único de los datos de entrenamiento en el disco local de cada máquina, de modo que cada nodo de trabajo entrena con un subconjunto único de los datos. Durante un solo paso de entrenamiento, cada trabajador procesa un lote de datos de entrenamiento, calculando gradientes que luego se promedian utilizando la funcionalidad ring-allreduce de Horovod y se aplican al modelo.
P: ¿Cómo se compara dist-keras con Horovod?
Dist-keras es otro framework de código abierto para entrenar un modelo de Keras de forma distribuida en un Spark Dataframe y es otra gran solución para entrenar modelos de Keras. Trabajamos con ambos. Una de las cosas que nos gustó de Horovod es que viene con benchmarks de Uber y que Uber lo usa en producción. Por ese motivo, decidimos construir el HorovodEstimator en torno a Horovod, ya que lo utilizan grandes empresas del sector y contará con un buen soporte a futuro.
P: ¿Cuánto tiempo toma el entrenamiento en una sola máquina en comparación con el entrenamiento distribuido?
Esta es una buena pregunta. En general, hay muchos factores que influyen en el rendimiento al comparar el entrenamiento en una sola máquina con el entrenamiento distribuido. El entrenamiento distribuido incurre en una sobrecarga de comunicación al comunicar las actualizaciones de gradiente, pero también permite aceleraciones al procesar lotes de datos de entrenamiento en paralelo en varias máquinas. Con HorovodEstimator, también hay un costo de inicio fijo por escribir el Spark DataFrame de entrada en formato TFRecord en los discos locales de los nodos de nuestro clúster. Nuestra recomendación es probar primero el entrenamiento en una sola máquina y explorar el entrenamiento distribuido solo si el entrenamiento en una sola máquina no escala lo suficiente.
P: Hola, gracias por la charla. Ese fue un excelente escenario de notebook, pero en un equipo de múltiples científicos de datos que trabajan en diferentes experimentos con conjuntos de datos ligeramente diferentes, ¿tienen alguna funcionalidad para hacer un seguimiento de eso? ¿Qué otras funciones colaborativas ofrecen?
¡Esta es una excelente pregunta! Recientemente anunciamos un nuevo proyecto de código abierto llamado MLflow, diseñado justamente para eso. Con MLflow, los profesionales pueden empaquetar y reutilizar modelos en diferentes frameworks, realizar un seguimiento y compartir experimentos de forma local o en la nube, e implementar modelos prácticamente en cualquier lugar. Además, Databricks ofrece notebooks compartidos para el desarrollo en Python o R que también admiten el seguimiento de cambios y el historial de versiones con GitHub.
Lea la publicación del blog de Matei Zaharia sobre el lanzamiento de MLflow 0.2 para obtener la última actualización sobre esta iniciativa, y únase a nuestro próximo seminario web el 30 de agosto con Matei Zaharia para obtener más información.
P: No tengo muchos datos y estoy usando un modelo LSTM y TensorFlow. ¿Aun así me recomiendan Databricks y Apache Spark?
Apache Spark es excelente para cualquier tipo de entrenamiento distribuido o ETL, ya que unifica el procesamiento de datos con el machine learning, pero aun así requiere esfuerzo para su instalación, configuración y mantenimiento. Databricks te ofrece una forma flexible de ejecutar trabajos para casos de uso que van desde un solo nodo hasta múltiples nodos en Apache Spark. Puedes agregar fácilmente más nodos a tus clústeres con solo un clic. Databricks unifica todos los análisis en un solo lugar para que también pueda preparar conjuntos de datos limpios para entrenar sus modelos. Databricks Runtime viene con TensorFlow preinstalado y configurado, junto con Keras, Horovod, y también XGBoost, scikit-learn, etc., lo que le brinda la máxima elección y flexibilidad para crear y entrenar modelos de ML. Por último, pero no menos importante, los notebooks de Databricks brindan un entorno colaborativo para gestionar todo el ciclo de vida en un solo lugar, desde la preparación de datos hasta el entrenamiento y la implementación de modelos.
P: ¿Se puede entrenar un modelo binario con HorovodEstimator?
Sí. La API de HorovodEstimator simplemente proporciona una forma de ejecutar cualquier código de TensorFlow en un entorno distribuido con datos a gran escala, lo que incluye, por ejemplo, la clasificación binaria.
P: ¿El clúster admite la multi-tenancy?
Sí, puede tener varios notebooks adjuntos a su clúster o varios usuarios en su clúster. También puede administrar los permisos del clúster en varios niveles en Databricks para obtener la máxima flexibilidad y seguridad.
P: ¿Podrían compartir los scripts y las diapositivas de los presentadores después del seminario web?
Sí, ya puedes acceder al notebook. Solo tienes que agregar el conjunto de entrenamiento a tu Workspace de Databricks para ejecutar este notebook. ¡Regístrate para obtener una prueba gratuita de 14 días para empezar!
P: ¿Cuál es la diferencia entre Apache Spark y Databricks?
Databricks Unified Analytics Platform ofrece una versión alojada de Apache Spark tanto en AWS como en Azure, y mucho más. Ofrecemos notebooks y API integrados para administrar y automatizar los análisis en un solo lugar, así como optimizaciones adicionales para Apache Spark, que incluyen Databricks Delta Lake, que es hasta 100 veces más rápido que Apache Spark en Parquet, Databricks Runtime para ML y HorovodEstimator. También simplificamos considerablemente DevOps con la configuración y el escalado automáticos de los clústeres, y ofrecemos funciones de seguridad de nivel empresarial y cumplimiento con una plataforma certificada por HIPAA y SOC 2 tipo 2.
(Esta entrada del blog ha sido traducida utilizando herramientas basadas en inteligencia artificial) Publicación original
Data Science e ML
31 de octubre de 2023/9 min de lectura
Anúncios
6 de diciembre de 2023/7 min de lectura


