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

Documentos relacionados