¿Cómo combinaría Apache Spark y CUDA para implementar un marco de aprendizaje profundo?

Esto es algo sencillo, así que estoy tratando de adivinar de dónde viene la pregunta, para obtener una respuesta más útil. Y en parte, supongo que viene más desde la perspectiva de Spark que desde DL o CUDA. Avísame si estoy fuera.

Un patrón general es usar Spark para la orquestación informática distribuida, mientras que CUDA se usa para el cómputo por nodo en las GPU. Esto supone que su clúster tiene nodos de trabajo con configuración CPU-GPU, por ejemplo, instancias de GPU Linux de Amazon.

Para comenzar, probablemente no quieras escribir el código CUDA tú mismo todavía, aparte de jugar un poco para entender los elementos básicos. En su lugar, utilizaría una de las diversas bibliotecas numéricas que tienen soporte para GPU (consulte Bibliotecas aceleradas por GPU, BIDData / BIDMat, ND4J: Matrices N-dimensionales para Java, etc.)

De hecho, para comenzar, debe intentar la separación de variables: (1) obtener un rendimiento razonablemente bueno en el modelo de programación de procesamiento distribuido de Spark y (2) obtener un rendimiento razonablemente bueno en el aprendizaje profundo basado en CUDA en un modelo de máquina única. Luego combina los dos.

Específicos para Spark y Deep Learning, hay varios de nosotros trabajando en colaboración en varias etapas, incluidos DDF-NN de Adatao (*), DL4J de Skymind y AMPLab – UC Berkeley, todos los cuales han estado o estarán abiertos de origen una vez listo. Vea, por ejemplo, la primera arquitectura de aprendizaje profundo distribuida y escalable usando Spark y Tachyon – Strata + Hadoop World en Nueva York 2015 (es la parte de Tachyon que es más interesante en esa charla, como verá una vez que comience a pensar más profundamente sobre Esta arquitectura).


(*) Soy CEO y cofundador allí.

Aquí hay una arquitectura de referencia para un sistema que combina Spark con múltiples GPU para entrenar redes neuronales profundas. Usamos Spark como una capa de acceso a datos para ETL rápido, orquestando múltiples hilos de host en muchos chips, incluidas las GPU. Especificar que desea usar GPU es solo una línea en su archivo POM (algo de Java …). También podemos usar GPU para la segunda etapa de inferencia si los modelos están expuestos a mucho tráfico.

Deeplearning4j de Skymind: aprendizaje profundo distribuido y de código abierto para la JVM

More Interesting

¿Cuál es la mejor estrategia para un oponente de IA para predecir la ubicación y golpear la pelota en un juego de Pong?

¿Cómo se determina la significación estadística para las curvas ROC y los valores de AUC?

Cómo construir la matriz del núcleo para un polinomio de grado finito

Cómo comprender mejor las funciones de activación en el aprendizaje automático, especialmente las matemáticas detrás de ellas

¿Qué tan cerca estamos del punto donde los radiólogos serán reemplazados por software de reconocimiento de imágenes / redes neuronales / IA?

Cómo estructurar sus proyectos de aprendizaje automático

¿Cómo se compara el paquete de aprendizaje profundo Mozi con Caffe o Torch7?

¿Cuál es la diferencia entre Numpy y TensorFlow?

En la regresión logística multinomial, ¿por qué el valor p en la prueba de razón de probabilidad es significativo pero en las estimaciones de parámetros no es significativo para cada dimensión?

Soy un hombre de 25 años que estudió CS, aprendizaje automático y minería de datos para mi maestría. Mi verdadera pasión radica en la música y los viajes. He estado sin trabajo durante 7 a 8 meses, solicito un doctorado en ML y música, y mi papá quiere que consiga un trabajo. ¿Qué debo hacer?

¿Cómo se puede modelar la interacción Radar y Jammer a través del aprendizaje automático?

¿Por qué las técnicas de optimización como el gradiente natural y los métodos de segundo orden (L-BFGS por ejemplo) no se usan mucho en el aprendizaje profundo?

¿Cómo se implementa la funcionalidad de verificación de spam mediante el aprendizaje automático?

Cómo elegir el modelo correcto con la distribución correcta

¿Cómo es ser ingeniero de aprendizaje automático en Quora?