Lo que vimos en Spark Summit Europe 2017: Más Librerías Spark, Sistemas Reales de Aprendizaje de Máquinas en Producción, y la Realidad del Aprendizaje Profundo en Spark

Beatriz Alonso

d&a blog

Hace un mes tuvo lugar el último Spark Summit Europe, el evento más grande del mundo para la Comunidad Apache Spark™, en el que participaron más de 1200 desarrolladores, ingenieros, científicos de datos, investigadores y profesionales de negocio.

José A. Rodríguez, uno de nuestros científicos de datos, tuvo la oportunidad de participar como ponente con una charla en la que explicó un caso de uso de Spark en el sector bancario. La charla, que ha sido un trabajo conjunto con Luis Peinado bajo el apoyo e interacciones continuas con el equipo de Modelos Predictivos, destaca algunos de los productos BBVA existentes que se basan en Spark, y se centra en cómo hemos experimentado con un clasificador de texto para transferencias bancarias basado en Spark.

Este clasificador ha hecho posible que, en BBVA, cada transferencia de dinero que realiza un cliente pase por un motor que deduce una categoría de su descripción textual. Este motor funciona en Spark, mezcla MLLib e implementaciones propias, y actualmente está en producción sirviendo a más de 5 millones de clientes diarios. A lo largo de la presentación, José compartió experiencias y lecciones aprendidas por el equipo desde el punto de vista de la ciencia de datos, incluyendo los desafíos que esto representó en términos de ciencia de datos, algunos bocetos de la solución actual y una prueba experimental usando las conocidas incrustaciones word2vec y una técnica llamada VLAD (vector de descriptores agregados localmente, inspirados en la visión por computadora).

El evento contó con más de 70 sesiones, con contenido para todos los niveles y roles, y a continuación destacamos lo que nos resultó más relevante:

Librerías

A medida que aumenta la adopción de Spark y las API principales de Spark se vuelven estables, la tarea de la comunidad es empezar a poblar el ecosistema de librerías. A continuación se presentan algunos ejemplos de charlas que proponen y comparten librerías para las características que faltan.

Productización

La puesta en producción de los motores de aprendizaje de máquinas implica retos que van más allá del diseño del algoritmo o de su implementación: cómo garantizar la reproducibilidad, cómo programar de forma óptima los experimentos, cómo automatizar la selección de modelos. Incluso cómo organizar equipos de científicos e ingenieros de datos. Vimos muchos bocetos de esto en varias presentaciones. Aquí está nuestra selección:

Buenas prácticas en Machine Learning

Como Spark es joven, y MLLib tiene un conjunto limitado de algoritmos, estos días no es inusual implementar sus propios algoritmos de Machine Learning. Si lo hace, las siguientes presentaciones ofrecen algunas buenas ideas a seguir.

La primera presentación de William Benton, Científico de Datos en Red Hat, nos dio algunos consejos para construir algoritmos de Machine Learning en Apache Spark. Por ejemplo, un reto común es cómo distribuir el algoritmo de entrenamiento, especialmente cuando los algoritmos de aprendizaje de la máquina necesitan realizar varias iteraciones sobre el conjunto de datos. Para esos casos, una receta general con la que empezar es: mantener el bucle de iteración, vectorizar el código dentro de cada iteración, y utilizar las funciones aggregate y treeAggregate siempre que sea posible.

Deep Learning

Como destacamos en el post de la edición global de Spark Summit, Spark comienza a abrazar el aprendizaje profundo, con los Oleoductos de Aprendizaje Profundo, así como las herramientas de jugadores como Intel, Yahoo o Microsoft. La siguiente charla compara diferentes maneras de establecer Deep Learning and Spark.

 

Te invitamos a que consultes nuestra presentación y leas la publicación sobre la versión internacional de esta conferencia en San Francisco, y los puntos destacados que vimos allí.