Este documento presenta una introducción al despliegue de modelos de machine learning en producción. Se discuten tres esquemas arquitectónicos principales (base de datos compartida, API REST y streaming) y se demuestra el despliegue de un modelo ML a través de una API REST utilizando Flask, Docker y AWS Elastic Beanstalk. El objetivo final es automatizar la clasificación y aprobación de SMS para una plataforma de envío de mensajes.
2. ¿ Quiénes somos ?
Somos una empresa enfocada
en mejorar el perfomance de
las estrategias de nuestros
clientes, a través de procesos
de Transformación Digital,
Target Maketing, email,
creación de BOTS y las
herramientas más avanzas de
analítica de datos.
http://www.eclipdata.com/
3. Hernán Moreno
MBA Candidate (UIUC), MITM (ITESM), PMP,
SCPM
EXPERTO EN TRANSFORMACIÓN DIGITAL
https://www.linkedin.com/in/hernanmoreno/
Gabriel Villacís
Ing. Sistemas (UG)
ARQUITECTO DE SOFTWARE
https://www.linkedin.com/in/gabriel-villacis/
Roberto Esteves
SMCP, POCP, Design Thinking, Científico
de Datos
Subdirector de la SEE núcleo del Guayas
Fellow Saturday AI
https://www.linkedin.com/in/restevesd/
4. ¿Por qué las
organizaciones
requieren una
estrategia de
datos?
¿Por qué el correcto
uso de datos puede
ser ventaja competitiva
o ayudar a las
organizaciones a
sobrevivir?
5. Observemos estos ecosistemas...
Fuente: National Geographic
Todo ecosistema tiene presas y depredadores.
Las presas consumen recursos y a la vez son
recursos para los depredadores.
6. ¿ Por qué
esto es
relevante?
Veamos el enfoque Darwiniano aplicado a los
mercados …
Así, en la sabana africana:
- Tenemos leones, leopardos, chitas, etc. Estos son
depredadores.
- Tenemos cebras, búfalos, antílopes, etc. Estas
son las presas.
Los mercados son similares a los ecosistemas.
- Existe un balance entre proveedores
(depredadores) y presas (clientes). Compitiendo
por recursos a fin de generar beneficios para si
mismos (alimento).
- Los ecosistemas por lo general están en balance
al igual que los mercados. Existe un determinado
grupo de depredadores (proveedores)
consumiendo tipos de presas (clientes)
especificas en función de sus habilidades
(capacidades).
7. ¿ Qué ocurrió
hace un par
de décadas ?
La innovación a
través del Internet y
Globalización
cambió la curva de
retornos marginales
en las empresas.
Los límites entre los ecosistemas se hicieron
difusos.
- Imaginen lo que ocurriría si en el ecosistema
de Galápagos introdujéramos leones.
A esto se le llama DISRUPCIÓN.
- Esto es lo que ha ocurrido con el Internet y la
Globalización.
Fuente: https://steemit.com/
8. ¿Qué está
ocurriendo ahora?
Explosión en la
disponibilidad de
datos.
Machine Learning.
Los limites entre los
ecosistemas se
volverán aún más
difusos.
9. Los mercados
ecuatorianos en
muchos
aspectos se
parecen a
Galápagos.
Solo aquellas organizaciones
que sean adaptables (esto
tiene que ver con la
capacidad de ejecución en
las empresas) podrán
aprovechar este nuevo
recurso (datos) para
convertirlo en información
y toma de decisiones.
11. • Textea S.A es una empresa
que se dedica al envío de SMS.
• Instala una plataforma de
autoservicio para sus clientes.
• Backend revisa cada mensaje
que los clientes envían para
validar que el mensaje es de
MKT o TRX
• Textea desea optimizar el
proceso de aprobación de SMS
para que sea automático
Empresa Textea S.A
13. Data de trabajo
SHORTCODE EMISOR TEXTO
5475 ABRODESIVOS ABRO INFORMA EN COMPRA 8 CAJAS DE LIMPIADOR DE CARBURADOR Y RECLAMA 1 CAJA DE LIQUIDO DE FRENOS Y 10 UNIDADES DE LA NUEVA CINTA ELECTRICA 20 YDS
5475 ABRODESIVOS ABRO INFORMA QUE EN AGOSTO PUEDES RECLAMAR QUE COMPRES EN LIMPIADOR DE CARBURADOR
5475 ABRODESIVOS ABRO INFORMA QUE EN AGOSTO PUEDES RECLAMAR QUE COMPRES EN
5473 ACADILLINGWORTHDe ANAI Representante su cadete no vino a clases Atte. Recepcion
5473 ACADILLINGWORTHDe ANAI: Estimado representante su cadete no asistio a clases hoy
3741 ARTEFACTAMKTArtefacta piensa en ti. Si no compraste tu el dia de tu cumple puedes hacerlo SOLO POR HOY. Te esperamos!
3741 ARTEFACTAMKTArtefacta te da un regalo especial por tu compra a credito, ven a tu local favorito y aprovecha tu cupo asignado hasta el Te esperamos!
3741 ARTEFACTAMKTArtefacta te desea un feliz cumpleanios y SOLO POR HOY ven a tu local favorito y llevate por tan solo Te esperamos!
14. Data Trabajada
Tipo_Code Tipo SHORTCODE EMISOR TEXTO
1 TRX 5475 ABRODESIVOS ABRO INFORMA EN COMPRA 8 CAJAS DE LIMPIADOR DE CARBURADOR Y RECLAMA 1 CAJA DE LIQUIDO DE FRENOS Y 10 UNIDADES DE LA NUEVA CINTA ELECTRICA 20 YDS
1 TRX 5475 ABRODESIVOS ABRO INFORMA QUE EN AGOSTO PUEDES RECLAMAR QUE COMPRES EN LIMPIADOR DE CARBURADOR
1 TRX 5475 ABRODESIVOS ABRO INFORMA QUE EN AGOSTO PUEDES RECLAMAR QUE COMPRES EN
1 TRX 5475 ABRODESIVOS ABRO INFORMA QUE EN LOS PROXIMOS DIAS RECIBIRAS LA VISITA DE UN PROMOTOR, QUIEN TE OFRECERA EL NUEVO LIQUIDO DE FRENOS Y TE DARA UN OBSEQUIO
1 TRX 5475 ABRODESIVOS ABRO INFORMA QUE EN POR LA COMPRA DE PUEDES RECLAMAR
19. Caso 1: Completar los campos
Tipo_Code Tipo SHORTCODE EMISOR TEXTO
1150 MUSHUCRUNA COAC Mushuc Runa, informa que el vencimiento de su cuota fue no registramos su pago, favor acerquese a cancelar el valor pendiente.
4262 MOVISTARSMS VUELVE Caída y Limpia a SUPERMERCADOS productos seleccionados. VEN hasta el
4262 MOVISTARSMS Visita la nueva agencia abre una cuenta, muestra este sms y participa por
4262 MOVISTARSMS Visita el nuevo Movistar Quicentro y encuentra un plan hecho para ti, accesorios, recargas y mucho más
4262 MOVISTARSMS Ven aprovecha los Triple Black Friday ¡precios increíbles Stock limitado
4262 MOVISTARSMS Ven al BLACK WEEKEND registra tus facturas y participa por
4262 MOVISTARSMS Ven a Quicentro Sur y visita descubre la mejor experiencia para aprender
Tipo_Code SHORTCODE EMISOR Tipo TEXTO
97,08 1150 MUSHUCRUNA TRX COAC Mushuc Runa, informa que el vencimiento de su cuota fue no registramos su pago, favor acerquese a cancelar
Tipo_Code SHORTCODE EMISOR Tipo TEXTO
79,73 4262 MOVISTARSMS Marketing VUELVE Caída y Limpia a SUPERMERCADOS productos seleccionados. VEN hasta el
21. Trabajo de semanas con un científico de datos
ML: Proceso de desarrollo/experimentación
22. De qué se trata el
despliegue?
APP 1 APP 2 APP 3
INFRASTRUCTURE
ML APPS
23. Qué debemos
considerar
para desplegar
modelos de
ML?
1. Facilidad de integración
Cualquier lenguaje, cualquier motor de ejecución.
2. Predicciones de baja latencia
Poder computacional, caché de predicciones
frecuentes.
3. Tolerancia a fallos
Replicar modelos, ejecución en clúster.
4. Escalable
Subir o bajar nodos elásticamente.
5. Facilidad en el mantenimiento
Actualizar fácilmente las nuevas versiones de los
modelos
24. Proceso de despliegue de modelos de ML
Trabajo de meses con un equipo de ingenieros de software, científicos e
ingenieros de datos y DevOps
25. (Esquema 1)
BASE DE DATOS
COMPARTIDA
(Esquema 2)
REST API
(Esquema 3)
STREAMING
Predicción Batch Sobre la marcha Streaming
Entrega del resultado de la
predicción
Batch Vía REST API Streaming vía cola
de mensajes
Latencia en la predicción Alta Media Muy baja
Dificultad en la gestión del sistema Fácil Media Muy difícil
Esquemas de diseño arquitectónico para integrar
modelos de ML
26. PLATAFORMA DE ENVÍO DE
SMS
Esquema 1: Base de datos compartida
MACHINE LEARNING
MODELWEB APPS
LEGACY APPS
27. PLATAFORMA DE ENVÍO DE SMS
Esquema 2: REST API
MACHINE LEARNING
MODEL
WEB APPS
29. ML Model
.pkl
HTTP REST API
api/text-classifications
DOCKER CONTAINER
WSGI HTTP SERVER
HTTP
Request/Response
DEMO (INTRODUCCIÓN):
ARQUITECTURA DE DESPLIEGUE
CON REST API
30. Qué es una REST API?
API: Application Programming Interface
“Una API especifica cómo dos componentes
de software deben interactuar (comunicarse
entre sí)”
Componente
B
Componente
A “Una REST API define un conjunto
de funciones (capacidades) a las
que otras aplicaciones pueden
ejecutar solicitudes(requests) y
recibir respuestas(responses) a
través del protocolo HTTP.
31. REST API: Modelo de comunicación
Request:
GET http://server.com/api/homes
HOMES
MANAGEMENT
APP
Algunas
convenciones
REST:
Usar HTTP
VERBS: GET,
POST, PUT,
DELETE
Usar HTTP
STATUS CODE:
200, 4XX, 5XX
Definir
mecanismo de
serialización de
datos: JSON,
XML.
32. Qué es Flask?
Es un micro framework de Python para
desarrollar aplicaciones web.
Micro framework: mantiene el core simple pero
extensible.
“Micro” no significa que toda su aplicación web
tenga que caber en un archivo de Python.
33. Flask es:
• Fácil de programar.
• Fácil de configurar.
• Flask no te liga a decisiones de diseño prestablecidas.
• Tiene una excelente documentación.
• RESTful.
35. ML Model
.pkl
HTTP REST API
api/text-classifications
DOCKER CONTAINER
WSGI HTTP SERVER
HTTP
Request/Response
DEMO (PASO 1):
PROGRAMAR REST API USANDO
FLASK PARA EXPONER MODELO
DE ML.
36. Qué es Gunicorn?
Gunicorn, también conocido como Green Unicorn
(Unicornio Verde), es un servidor HTTP para Python.
• Compatible con varios frameworks de Python
(incluído Flask).
• Implementado de forma simple.
• Consumo de recursos ligero.
• Bastante rápido.
37. Qué es Docker?
Docker es una plataforma abierta
que automatiza el desarrollo,
implementación y ejecución de
aplicaciones dentro de
contenedores aislados.
Los contenedores permiten a los
desarrolladores agrupar una
aplicación con todas las partes
que necesita, como bibliotecas y
otras dependencias, y transferirla
como un paquete.
39. Máquinas virtuales vs Contenedores Docker (II)
Máquinas virtuales Contenedores Docker
40. Beneficios de usar Docker
Algunos beneficios de utilizar Docker:
• Estandarización y productividad
• Consistencia garantizada a lo largo del proceso de desarrollo y despliegue de una aplicación,
estandarizando el entorno en el que se ejecuta.
• Compatibilidad y mantenimiento más fácil
• Erradica el problema de "en mi máquina funciona" de una vez por todas.
• Aislamiento
• Cada contenedor tiene sus propios recursos y están aislados de otros contenedores.
• Simplicidad y configuraciones más rápidas
• Se puede usar en una amplia variedad de entornos (agnóstico de insfraestructura: Laptop, PC,
Server – Cloud: AWS, GCP, Azure, entre otros.), configuraciones personalizadas.
• Despliegue y escalabilidad rápidos
• Reducir el despliegue a cuestión de segundos, escalamiento horizontal (réplicas de contenedores).
43. ML Model
.pkl
HTTP REST API
api/text-classifications
DOCKER CONTAINER
WSGI HTTP SERVER
HTTP
Request/Response
DEMO (PASO 2):
GENERAR IMAGEN DOCKER Y
EJECUTAR CONTENEDOR
LOCALMENTE.
44. AWS Elastik Beanstalk
“Es muy sencillo
ponerlo en
marcha e
imposible
que se produzca
un crecimiento
excesivo”
https://www.youtube.com/watch?v=SrwxAScdyT0
45. ML Model
.pkl
HTTP REST API
api/text-classifications
DOCKER CONTAINER
WSGI HTTP SERVER
HTTP
Request/Response
DEMO (PASO 3):
DESPLEGAR CONTENEDOR
DOCKER EN AWS ELASTIC
BEANSTALK.