Presentación de PowerPoint
Transcripción
Presentación de PowerPoint
PLATAFORMA SPARK: CATAPULTA MACHINE LEARNING Dr. Gabriel Guerrero Socio Fundador y Director General www.saxsa.com Meetup Big Data. México, D.F. 29 de julio de 2015 PLATAFORMA SPARK: CATAPULTA MACHINE LEARNING Introducción La catapulta de Leonardo, una herramienta genial. Permite con poco esfuerzo enviar un objeto pesado a gran distancia. La plataforma Spark, es una catapulta del Aprendizaje Automatizado (ML Machine Learning). Meetup Big Data. México, D.F. 29 de julio de 2015 2 PLATAFORMA SPARK: CATAPULTA MACHINE LEARNING El marco de referencia (framework) Spark permite a los algoritmos y técnicas del Aprendizaje Automatizado (ML), llegar a horizontes de aplicación inusitados INUSITADO. Adjetivo. Que es inusual o raro y por ello resulta sorprendente. No habitual Meetup Big Data. México, D.F. 29 de julio de 2015 3 PLATAFORMA SPARK: CATAPULTA MACHINE LEARNING ¿Cuándo surge? En 2009, el proyecto Spark inicia en la Universidad de California en Berkeley con los trabajos de tesis doctoral de Matei Zaharia, quien es un alumno de los profesores Ion Stoica y Michael Franklin. Meetup Big Data. México, D.F. 29 de julio de 2015 4 PLATAFORMA SPARK: CATAPULTA MACHINE LEARNING ¿Cuándo surge Spark? (cont.) En 2010, se pone a disposición como Código Abierto (Open Source) con licenciamiento tipo BSD. En 2013, el proyecto se ofrece a la Apache Software Foundation y su licenciamiento se ofrece como tipo Apache 2.0. En 2014, el marco de referencia Spark se convierte en proyecto tipo Apache Top-Level Project. Se acelera su divulgación y uso de forma vertiginosa. Meetup Big Data. México, D.F. 29 de julio de 2015 5 PLATAFORMA SPARK: CATAPULTA MACHINE LEARNING ¿Cómo surge? En una entrevista, el Profesor Ion Stoica nos cuenta la historia: “…Por los años 2009, se tenía un proyecto denominado Nexus, derivado del curso Temas Avanzados de Ciencias de la Computación (“Advanced Topics in Computer Systems”) del Prof. David Culler, el cual cambió de nombre posteriormente a Mesos por cuestiones de derechos de autor con otro proyecto con ese mismo nombre.” Meetup Big Data. México, D.F. 29 de julio de 2015 ( https://soundcloud.com/oreilly-radar/apache-sparks-journeyfrom-academia-to-industry ) 6 PLATAFORMA SPARK: CATAPULTA MACHINE LEARNING Este proyecto escolar inicial, derivó en la construcción del sistema Mesos como un sistema de manejo de un cluster, en el que colaboran Benjamin Hindman, Andy Konwinski, y Matei Zaharia. El sistema Mesos es un marco de referencia (framework) para el manejo de un cluster. Soporta varios diferentes tipos de sistemas de cluster (cluster management framework, which can support different kind of cluster computing systems). Meetup Big Data. México, D.F. 29 de julio de 2015 7 PLATAFORMA SPARK: CATAPULTA MACHINE LEARNING Uno de los tesistas era Benjamin Hindman, quien fue contratado por Twitter y donde fue uno de los promotores de BigData en Twitter. El sistema Mesos se documenta y presenta en el artículo: “A Common Substrate for Cluster Computing”, que puede consultarse en: https://www.usenix.org/legacy/event/hotcloud09/tech/full_papers/hindman.pdf Recientemente, Hindman se incorpora a Mesosphere, una compañía que promueve Mesos. Meetup Big Data. México, D.F. 29 de julio de 2015 8 PLATAFORMA SPARK: CATAPULTA MACHINE LEARNING Así en el año 2009 se tenía el marco de referencia Mesos. Se deseaba mostrar que podía construirse utilizando este marco de referencia, un ambiente de cómputo distribuido al estilo Hadoop, pero mejorando los aspectos de cómputo iterativo e interactivo que eran debilidades del aspecto procesamiento de Hadoop MapReduce. Meetup Big Data. México, D.F. 29 de julio de 2015 9 PLATAFORMA SPARK: CATAPULTA MACHINE LEARNING Dentro de las principales aplicaciones de cómputo iterativo e interactivo tenemos precisamente las técnicas de Aprendizaje Automatizado (Machine Learning). Y así nace Spark como un proyecto que se construye utilizando el marco de referencia Mesos para ofrecer un ambiente de cómputo distribuido tolerante a fallas que soportara procesos iterativos e interactivos como los requiere el Aprendizaje Automatizado. Meetup Big Data. México, D.F. 29 de julio de 2015 10 PLATAFORMA SPARK: CATAPULTA MACHINE LEARNING En esa época la Universidad de Berkeley desarrollaba un proyecto para utilizar Hadoop Map/Reduce para técnicas y algoritmos de ML (Machine Learning), que tenía diversos inconvenientes. Por lo cual uno de los principales objetivos de Spark era ofrecer soporte a algoritmos de Aprendizaje Automatizado en un contexto de Grandes Volúmenes para sistemas iterativos e interactivos. Meetup Big Data. México, D.F. 29 de julio de 2015 11 PLATAFORMA SPARK: CATAPULTA MACHINE LEARNING En esas fechas por los pasillos de la UC Berkeley existía un ambiente de investigación promovida por Michael Franklin, con el fin de impulsar sistemas que permitan el manejo de grandes volúmenes, con una perspectiva de aplicación a sistemas de análisis y toma de decisiones fundamentada en Aprendizaje Automatizado. Lo que ahora se denomina Analíticos (Big en Grandes Volúmenes Data Analytics). En ese entonces se tenía el RADLab (Reliable And Distributed computing Lab) . Desde 2009, gran parte de las investigaciones y tesis doctorales se enfocan en Big Data y Analíticos de Grandes Volúmenes de Datos. Meetup Big Data. México, D.F. 29 de julio de 2015 12 PLATAFORMA SPARK: CATAPULTA MACHINE LEARNING La entrevista a Michael Franklin se encuentra en https://medium.com/s-c-a-l-e/amplab-s-co-creator-on-where-big-data-is-he aded-and-why-spark-is-so-big-f0c0da2f7c0f Así, en 2011, Michael Franklin y Ion Stoica, con financiamientos de la Iniciativa BigData Obama y de empresas como Amazon WebServices, Google, SAP y otras crean el AMPLab (Algorithms Machines People). Meetup Big Data. México, D.F. 29 de julio de 2015 13 PLATAFORMA SPARK: CATAPULTA MACHINE LEARNING Spark ofrece también soporte para un sistema de enunciados SQL interactivos, como los requeridos por la compañía Conviva para el manejo de video y sistemas analíticos. En un inicio, el problema de la distribución de video era como realizar decisiones inteligentes para rutear y transmitir video en tiempo real sin fallas en la transmisión en una red Internet con fallas. La compañía Conviva, fundada en 2006, monitorea y optimiza video en línea para las proveedoras de video en tiempo real más importantes, en donde el Dr. Ion Stoica, es cofundador y CTO (Chief Technology Officer). Meetup Big Data. México, D.F. 29 de julio de 2015 14 PLATAFORMA SPARK: CATAPULTA MACHINE LEARNING La plataforma Conviva es un sistema en tiempo real que permite a los proveedores de contenido en Internet en formato video (video streaming) ofrecer el contenido con calidad de TV en Internet, sin importar las fallas de red y conectividad Internet. Hoy Conviva maneja más de 4 mil millones de torrentes de videos (video streaming), con más de 1.6 mil millones de dispositivos y más de 200 proveedores de servicios de Video en Internet. Meetup Big Data. México, D.F. 29 de julio de 2015 15 PLATAFORMA SPARK: CATAPULTA MACHINE LEARNING Así otra de los requerimientos que se deseaba en Spark es trabajar torrentes de datos (Spark Streaming) y enunciados (SQL) de extracción en grandes volúmenes de datos (SQL Spark), lo que motivo líneas de investigación del Prof. Ion Stoica y los tesistas de la Universidad de California en Berkeley (UC Berkeley). Meetup Big Data. México, D.F. 29 de julio de 2015 16 PLATAFORMA SPARK: CATAPULTA MACHINE LEARNING Antecedentes de Spark Antes del mundo Spark surgieron una gran diversidad de contribuciones y sistemas del cómo manejar datos para su búsqueda y análisis ●1962 Árbol AVL (Georgy Adelson-Velsky y Yevgeni Mijáilovich Landis) Esta es la estructura de Árbol AVL propuesto por los matemáticos rusos, que ofrece la mejor forma de almacenar contenido para su búsqueda. Meetup Big Data. México, D.F. 29 de julio de 2015 17 PLATAFORMA SPARK: CATAPULTA MACHINE LEARNING ● 1992. Berkeley DB. Bibliotecas de instrumentación del concepto AVL que fueron propuestas dentro del sistema de archivos Unix y que, en una instrumentación fuera de Unix, ofrecen unos investigadores de UC Berkeley, fundando una compañía: Sleepycat. Esta biblioteca se mejora e instrumenta en forma de código inmerso para crear el concepto de Base de datos inmersa (Embedded database) Meetup Big Data. México, D.F. 29 de julio de 2015 18 PLATAFORMA SPARK: CATAPULTA MACHINE LEARNING ● 2003 Berkeley DB XML ● 2003 Google File System ● 2004 Berkeley DB JavaEdition ● 2004 MapReduce ● 2006 Berkeley DB Oracle 2006 ● 2006 BigTable ● 2008 Dremel Meetup Big Data. México, D.F. 29 de julio de 2015 19 PLATAFORMA SPARK: CATAPULTA MACHINE LEARNING Bibliotecas Spark El marco de referencia (framework) Spark ofrece un conjunto de bibliotecas para el desarrollo de aplicaciones. Entre las bibliotecas básicas integradas en la versión núcleo se tienen: Meetup Big Data. México, D.F. 29 de julio de 2015 20 PLATAFORMA SPARK: CATAPULTA MACHINE LEARNING Spark SQL Es el modulo para el trabajo con datos estructurados. Spark Streaming permite la construcción sencilla de aplicaciones escalables y tolerantes a fallas utilizando torrentes de datos. MLlib es una biblioteca escalable con algoritmos de Aprendizaje Automatizado (scalable machine learning library). GraphX es la biblioteca de Apache Spark para grafos y cómputo paralelo de grafos. Meetup Big Data. México, D.F. 29 de julio de 2015 21 PLATAFORMA SPARK: CATAPULTA MACHINE LEARNING BDAS, Berkeley Data Analytics Stack Con el objetivo de ofrecer un ambiente integral para el conjunto de aplicaciones de grandes volúmenes de datos distribuidos y tolerante a fallos, el marco de referencia (framework) Spark continúa añadiendo componentes en una forma unificada. Este es el proyecto BDAS (Berkeley Meetup Big Data. México, D.F. 29 de julio de 2015 Data Analytics Stack) 22 PLATAFORMA SPARK: CATAPULTA MACHINE LEARNING BDAS es una pila de aplicaciones de código abierto (open source software stack) que integra las componentes de sistemas construidas por el Laboratorio AMPLab de UC Berkeley alrededor del concepto de Analíticos de Grandes Volúmenes (BigData Meetup Big Data. México, D.F. 29 de julio de 2015 Analytics) 23 PLATAFORMA SPARK: CATAPULTA MACHINE LEARNING Algoritmos de Aprendizaje Automatizado (ML) en Spark MLlib es la biblioteca de Spark que es escalable de algoritmos de Aprendizaje Automatizado (Machine Learning Library) que incluye herramientas como clasificación (classification), regresión (regression), agrupación (clustering), filtrado colaborativo (collaborative filtering), reducción de dimensiones (dimensionality reduction). Meetup Big Data. México, D.F. 29 de julio de 2015 24 PLATAFORMA SPARK: CATAPULTA MACHINE LEARNING Hoy la idea es NO INVENTAR EL AGUA TIBIA en el Aprendizaje Automatizado de Grandes Volúmenes de Datos (BigData Analytics), y aplicar el tipo de algoritmo más conveniente a un problema y NO PROGRAMAR DESDE EL INICIO los algoritmos. Hoy debemos pensar en los Algoritmos de Aprendizaje Automatizado como instrumentos o utensilios como en una analogía de un gran banquete Meetup Big Data. México, D.F. 29 de julio de 2015 25 PLATAFORMA SPARK: CATAPULTA MACHINE LEARNING Hoy los comensales quieren bocadillos y banquetes JUSTO A TIEMPO y de FORMA INSTANTANEA (Streaming) para una gran población (usuarios Internet) en un extenso territorio (cobertura Internet), sin importar si en la cocina se prepararon con el mejor horno (Spark y BDAS) y las mejores recetas (Algoritmos ML eficientes) !! Meetup Big Data. México, D.F. 29 de julio de 2015 26 PLATAFORMA SPARK: CATAPULTA MACHINE LEARNING Hoy Spark ofrece uno de los mejores instrumentos con una gran variedad de “recetas de ML”, en particular ya se cuenta en MLlib 1.3 los siguientes algoritmos listos para utilizarse: Ver página Spark ML http://spark.apache.org/docs/latest/mllib-guide.html Meetup Big Data. México, D.F. 29 de julio de 2015 27 PLATAFORMA SPARK: CATAPULTA MACHINE LEARNING • Tipos de datos • Estadísticas Básicas • Estadísticas de Resumen • Correlación • Muestreo estratificado • Prueba de hipótesis • Generación aleatoria de datos Meetup Big Data. México, D.F. 29 de julio de 2015 • Clasificación y regresión • Modelos lineales (Máquinas de vectores de soporte [SVMs], regresión logística, regresión lineal) • Clasificador Bayesiano ingenuo • Árboles de decisión • Conjuntos de Árboles (Bosques Aleatorios y Árboles de decisión impulsados) • Regresión Isotónica 28 PLATAFORMA SPARK: CATAPULTA MACHINE LEARNING • Filtrado Colaborativo • Mínimos Cuadrados Alternantes (ALS) • Agrupamiento • K-medias • Mezclas Gaussianas • Agrupamiento por método de las potencias (PIC) • Asignación latente de Dirichlet (LDA) • Streaming de K-medias Meetup Big Data. México, D.F. 29 de julio de 2015 • Reducción de dimensión • Descomposición de valor único (SVD) • Análisis de componentes principales (PCA) • Extracción y transformación de características • Minería por patrones frecuentes • Crecimiento FP • Optimización (desarrollador) • Método de gradiente descendente estocástico • Límite de memoria BFGS (L-BFGS) • Exportación de modelos PMML 29 PLATAFORMA SPARK: CATAPULTA MACHINE LEARNING Resumen Hoy la plataforma Spark y los algoritmos de Aprendizaje Automatizado incluidos en sus bibliotecas ofrecen a la Ciencia de Datos (Data Science) una Catapulta para promover la generación de aplicaciones de Analíticos de Grandes Volúmenes de Datos (BigData Analytics), en particular en la rama de Aprendizaje Automatizado en Tiempo Real utilizando la componente Spark Streaming y SQL para la extracción de información con enunciados SQL. Meetup Big Data. México, D.F. 29 de julio de 2015 Spark 30 PLATAFORMA SPARK: CATAPULTA MACHINE LEARNING Meetup Big Data. México, D.F. 29 de julio de 2015 31 PLATAFORMA SPARK: CATAPULTA MACHINE LEARNING ¿Qué aprenderás? 1. El uso de Apache Hadoop y Spark con el lenguaje de programación Scala en forma local y cluster 2. Ejemplos de aplicación de SQL Spark, Minería de Datos (Data Mining) con bibliotecas Machine Learning (ML) y de Bases de Datos de Grafos con Spark GraphX. Se realizan ejercicios con lenguaje Scala de creación de grafos y algoritmos ML, como “clasificación”, “regresión” y “agrupación”, entre otros. 3. Manejo de torrentes de datos (Data Streaming) con ejemplos de utilización de Spark Streaming con fuentes de datos de Twitter y sockets TCP/UDP 4. Una breve introducción al sistema Apache Kakfa de mensajería tipo “publicar y suscribir” (publishsubscribe messaging system) Meetup Big Data. México, D.F. 29 de julio de 2015 32