Spain AI 2022 - ¡Oh, un modelo de ML, vamos a desplegarlo! - Machine Learning para adultos
1. ¡Oh, un modelo de ML, vamos
a desplegarlo!
-
Machine learning para
adultos
(Apto para todos los públicos)
Spain AI 2022
2. ¿Qué os vamos a contar?
Taller super práctico, aquí venimos a cacharrear.
● Machine Learning - NLP
● Webs
● Productivización del código
● CI/CD
● Cloud y PaaS
No esperamos que conozcáis todas estas siglas. ¡Las vamos a explicar durante el
taller!
3. ¿Quienes somos?
● Lino, Ricardo y Kike
● Nos conocimos en Savana
● Somos miembros de cobetes.tech
○ Una pequeña asociación (en construcción)
○ Queremos que sea una guild de backend y tecnología donde no importe en qué empresa
trabajes. Lo que nos mueve es la tecnología y el conocimiento.
cobetes.tech
4. ¿Quienes somos? - Lino
● Soy Lino
● Soy desarrollador y arquitecto cloud.
● En mis ratos libres aporreo una batería o
hago gruñir una guitarra para liberar
tensiones y, sobre todo, para molestar a mis
vecinos.
● Me abrí un canal de Youtube porque no me
quisieron en OnlyFans (son una panda de
envidiosos).
5. ¿Quienes somos? - Ricardo
● Soy Ricardo Guerrero
● Soy Head of Data Science & Data Engineering
● En mi tiempo libre me gusta hacer artes marciales,
tomarle el pelo a mis cobayas o ponerme camisas
chillonas (pero solo en la playa)
6. ¿Quienes somos? - Enrique
● Soy Enrique Josue Alvarez Robles
● Data Scientist con grado universitario en Estadística Aplicada de la
Universidad Complutense de Madrid y Máster de Machine learning y
Estadística de la Universidad de Linköping en Suecia.
7. Forma de trabajo y gestión de expectativas
Preguntas
Guión y
tiempos
9. Lo que váis a montar vosotros
Vais a montar vuestra propia aplicación, y no, no es la misma que os he enseñado,
pero si parecida :-)
Y la vais a desplegar y vais a poder enseñarsela a vuestros fans de Instagram
10. Pero antes de nada… comprobemos algo
Tenemos que asegurarnos que tenemos preparado lo mínimo imprescindible para
arrancar:
1. ¿Cuenta de Github?
2. ¿Cuenta de Heroku?
3. ¿Qué sistema operativo tenéis?
4. ¿Python? ¿Pip? ¿Virtualenv?
5. ¿Git?
6. ¿Heroku cli?
21. Entorno Virtual Python
¿Qué es?
Es un entorno de python aislado que contiene una copia del intérprete de python y las librerías básicas.
Se puede activar y desactivar a petición y cualquier cambio realizado sobre ese entorno, como instalar o
desinstalar librerías) no afecta ni al Python del sistema ni a cualquier otro entorno.
¿Por qué?
- Porque nos permite trabajar en un entorno aislado y seguro.
- Porque podemos generar un fichero de dependencias.
- Porque somos personas ordenadas y limpias.
22. Entorno Virtual - ¿Cómo?
- Entrar en el directorio del proyecto (recién clonado de github).
23. Entorno Virtual - ¿Cómo? (Conda)
- Entrar en el directorio del proyecto (recién clonado de github).
29. Push hacia github
- Añadir los archivos
modificados.
- Hacer “commit” para que los
cambios se incorporen a
nuestro repositorio local.
- Hacer push hacia github.
30. Publicar en Heroku
- Login en Heroku (por si
acaso).
- Crear proyecto (solo se
hace una vez).
- Publicar proyecto (y
esperar).
36. Heroku deploy (y III)
Modificad el fichero “main.py” y
cambiad el mensaje de “hola
mundo” por algún otro.
Y después ejecutad y esperad un
rato hasta que termine de
redesplegar.
37. De notebook a producción
¡Déjate de palabras, quiero ver código!
Este es nuestro notebook de partida
Y este es el código que hemos preparado para productivizarlo. Con su página web
y sus configuraciones de despliegue.
38. Mini introducción al NLP
NLP es una combinación entre 2 cosas:
- Entender el lenguaje natural usando ciencia computacional
- Y además, en muchas ocasiones, también aplicando técnicas de
inteligencia artificial.
41. De notebook a producción
¡Déjate de palabras, quiero ver código!
Este es nuestro notebook de partida
Y este es el código que hemos preparado para productivizarlo. Con su página web
y sus configuraciones de despliegue.
42. Vuestro turno: 2º aplicación
Productivizar este notebook
● Web
● Despliegue en cloud
43. ¿Cómo lo vamos a hacer? Forma de trabajar
Bloque de trabajo personal (con nuestra ayuda)
● Tendréis XX minutos (estimaremos cuando lleguemos a este punto)
● Estaremos por aquí respondiendo a todas las dudas que surjan
● Os iremos preguntando en privado a cada uno de vez en cuando
● No dudéis en “levantar la mano” y llamarnos
● Aquellos que quieran (100% voluntario), podrán enseñar lo que han construido
Consejo: configura cuanto antes la parte del despliegue, el esqueleto, y sobre eso
ve añadiendo contenido. Así podrás aprovechar los últimos 5 minutos para subir la
última versión
45. Resumen, conclusiones y puntos importantes
1. Los cajones están muy bien, pero por favor, no guardes tus modelos en ellos.
Sácalos, que les dé un poco la luz. Que aporten valor.
2. No hacen falta conocimientos de programación o diseño web para poder
montar una web sencillota. Streamlit apenas tiene curva de entrada.
3. CI/CD parecen cosas muy complicadas… pero resulta tremendamente útil y no
es tan difícil de configurar. Un poco de Github, un poco de Heroku y… ¡magia!
4. Las aplicaciones de terminal no suelen ser muy populares para la gente de
negocio… ¡aprovecha lo aprendido! Ya tienes lo más difícil, ponlo presentable.