 Me dices, ¿cuándo empezamos a empezar a? ¿Ya se me falta el? Ya se me falta. Ah, sí, claro. Ya. Sí, entonces, ya. Machine Learning Pathlines. Y, bueno, gracias a Dios que tenemos la oportunidad de verte acá. Como dije, yo he asistido a varias de tus presentaciones en Guatemala. Y qué bueno que ahora se nos juntamos para hacer esto. Sé que adelante, sé que. Bueno, buenos días. Gracias por la invitación a este evento de Kubernetes acá en El Salvador. El título de hoy es Machine Learning Pipelines con K3S Iaro. Va a ser una pequeña demo del potencial que tiene toda esta tecnología. Pocuito sobre mí. Soy ingeniero de sistemas. Soy de Guatemala. Enseño en varias universidades acá en Guatemala. Tengo mi proyecto de emprendimiento que trata sobre unir comunidades de software. Le llamo Cloud Society. Antes tenía otros nombres. Y ahorita se llama Cloud Society. También soy organizador de una mito acá en Guatemala. Es el Cloud Network Guatemala. También soy involucrado en la temática de DevOps. Si hay CD, microservicios y todo lo relacionado a este mundo que nos apasiona tanto. Y obviamente en Kubernetes. Y ahorita estoy trabajando en, como es Harry, en una empresa que se llama Wise Line. Y estamos trabajando para clientes de afuera. Y actualmente he estado trabajando bastante lo que es DataOps, automatización de pipelines de datos. Y ahorita estamos haciendo automatización de muelos de Machine Learning. Entonces para empezar un poquito acá como una pequeño chiste acá habla sobre que el Machine Learning pues está poderando a nosotros y las máquinas nos van a eliminar. Entonces ahorita estamos en una era de mucha inteligencia artificial y estamos usando bastante lo que son containers. Entonces el mundo está lleno de estos containers y de inteligencia artificial. Entonces como una breve introducción a estas tecnologías pues los que si alguno no está en contacto con esto pues Docker pues se presenta como un tipo de virtualización liviana. Pasan un sistema operativo donde el cual estamos segmentando ahí creando pequeñas ambientes de ejecución. A través de él entonces este software Docker pues nos va a permitir envolver esa pieza de código programa que tenemos y ponerle un ambiente total con todas las libreces y todo lo necesario para que podamos ejecutarlo. Sí. Entonces de esa forma nosotros lo que hacemos es que empaquetamos el software y nos permite que esto pueda correr en cualquier lado mediabes tenga este motor de containers. Actualmente pues hay una transición en lo que es Kubernetes para están bueno de hecho la nueva versión ya no va a soportar Docker sino container deep pero en el caso de Docker pues bajo nivel usa container deep para hacer esta abstracción de librerías y la parte de creación de container entonces pues indirectamente también lo estamos usando solo que ahora lo va a usar de forma directa Kubernetes ya no va a soportar lo que es Docker es como esa transición que está pasando. Y como es este congreso sobre Kubernetes pues Kubernetes es un pensemos que si tenemos una aplicación que usa varios containers está diseñada bajo una arquitectura micro servicios sí o no. Entonces cuando ya suena como gran cantidad de containers pues ya usamos lo que se llama un orquestador entonces este orquestador lo que nos va a permitir es poder administrar esa cantidad de containers y administrar la red el orquestora y todo eso entonces Kubernetes viene a hacer esta solución cuando ya no solo tenemos aplicaciones de un solo container sino que queremos hacer que escale masivamente o es Kubernetes obviamente se erige bajo mucho la filosofía de Vops y está bien diseñado para implementar o o o digamos implementar procesos de CI CD y pues usa configuración de claridad de objetos es decir tenemos un archivo donde declaramos por ejemplo cuántas cantidades de objetos tenemos y pues Kubernetes lleva el control de que sea exactamente esa cantidad de objetos y si se borra uno pues reemplace eso para tener en ese estado que nosotros definimos o declaramos y que se mantenga saludable pues nuestro objeto que creamos en Kubernetes. Algo que es muy importante cuando nosotros estamos en en las empresas pues hacemos pruebas de concepto de tecnología un POC o un POC le podemos llamar entonces estas pruebas de concepto nos permiten pues jugar con tecnología y determinar si si es la digamos esta tecnología que estamos probando es adecuada para darle solución a un problema que estemos enfrentando entonces el para tener este contexto el computing pues es algo que está. Empezando a desarrollarse. La computing pues habla de que tenemos estos el cómputo no en la nube exactamente sino que es cerca de la origen de donde están los datos pues por ejemplo nosotros ya podemos ahorita no es como que tan. Tan visible esto pero obviamente nuestros teléfonos son como computadoras bueno son micro computadoras básicamente y podemos se puede desarrollar ahí el procesamiento información ya no en la nube sino que en nuestro dispositivo local. Entonces ahorita el computing está como revolucionando y se está manejando muchos estas arquitecturas de microprocesadores ARM porque son baratos tienen un buen rendimiento y permiten abaratar costos. Entonces este computing viene como que a suplir mucha necesidad de reducir costo en procesamiento para ciertos tipos de casos específicos está como en proceso entonces hay como una migración a este uso de plataformas de computing aplicaciones que podemos tener en el computing puede ser machine learning que es lo que vamos a hablar de bases de datos de memoria juegos y cualquier tipo de carga o procesamiento que queramos nosotros migrar de una arquitectura Intel o x86 32 64 bits a un microprocesador ARM. Entonces acá es donde uno de los proyectos de CNCF de la empresa de rancher pues viene a cobrar bien que y 3 es pues es un es un cubernetes ligero pequeño en paqueta o un binario simple que permite correr en arquitecturas ARM y ya con eso ya nos permite estar cerca del Internet of Things y el age computing entonces ya está diseñado para correr en producción entonces como pueden ver que la arquitectura de cubernetes pues tiene un servidor tiene una gente la gente tiene en paqueta o todo lo que eran binarios individuales en uno solo y en la parte del servidor también entonces en paqueta todo en un binario de 100 mes y pues ya tiene hasta su motor el container de en esa parte de las características de que y 3 es pues es un solo binario como menciona puede soportar vacan si no solo y tcd que era que es lo común de cubernetes si no que puede usar por ejemplo mays que le soporta por efecto es que le like y tcd y por supuesto y está manejando para más vacan de de esto también incluye un ingress controller interado que es trafic tiene un está como como un componente el geomba que puedo yo crear como instalar mis librerías como y define lo en un archivo está bien interesante esa interacción tiene flanel en red por efecto puedo yo poner otros drivers y tiene como motor de containers pues container de también puede hacer yo modificaciones por ejemplo para usar otro tipo de drivers de red etcétera entonces es es bien costó y un personal se puede personalizar y que es pues es un proyecto que ahorita está siendo incubada por ciencia en la parte de la fundación para clonel entonces se tiene mucho empuje a este proyecto se está moviendo bastante entonces es algo a observar como les decía y que es hacer una plataforma para que está preparada para iot o ish computing estamos hablando de microprocesadores que no tienen tanta potencia sin embargo yo lo puedo usar para casos normales de desplegar un cluster y el poder mejorar costo ya se para una prueba por algo en producción en un simple final y de fácil instalación y mantenimiento es algo tan simple como yo puedo crear un cluster usando raspberries en mi casa para hacer mis experimentos mis pruebas mis pbc entonces está al alcance poder instalar un key 3 es dentro de una raspberries algo bien común y la gente está experimentando con esta ahorita como para hacer prototipos de algo que ustedes quieran probar o mostrar en no sé en el trabajo una prueba conceptual o si entonces acá viene como que uno de los problemas tal vez no problemas sino que cosas a tomar en cuenta para usar este tipo de tecnología es por ejemplo se el caso de uso es muy es es que por ejemplo hay dispositivos que usan a rm no sé digamos se podría hacer una estación de clima una cosa así entonces mis aplicaciones que vaya a correr tiene que estar en arquitectura rm si yo tengo binarios ejecutables que están para arquitecturas x86 64 y hotel pues yo tengo que rencompilar esto para que puedan correr bajo arquitectura rm o sea que hay un precio a pagar por migrarme a rm pero va a tener un beneficio en disminución de costos y procesamiento más barato y más eficiente que obviamente como ya les estaba mencionando que hay que estar bien funciona para intelva arquitectura x86 pero ya está como a rm ready va entonces ya lo podemos usar así también entonces esto es muy común empresas como netflix o alguna redes sociales que podríamos conocer a nosotros o empresas que hacen procesamiento información están empezando a tomar esto en cuenta a migrar su cómputo y procesamiento a la al age computing va para disminuir costos entonces si bien el concepto age computing está hablando de que los dos dispositivos de pre de pequeña capacidad están haciendo el procesamiento donde están los datos y no en la nueve se ha vuelto como muy popular de que dicen que que hay ya están para el computing en la nube y algunos están ofreciendo máquinas virtuales usando microprocesadores rm entonces está volviendo muy común que mencionen que el age computing es el hosting de rm en la nube entonces es algo que se está moviendo algo así o comercializando desde ese punto de vista sin embargo el concepto es que un dispositivo está cerca del dato y lo procesa no exactamente tiene que estar en la nube pero lo que están haciendo ahora es sacando ventaja de que rm tiene disminución de costos en procesamiento obviamente el procesamiento la hace con menor consumo de energía y permite ciertas ventajas obtienen ustedes un mejor precio y igual que obtienen su procesamiento o de lo que estén tratando de hacer en su situación en la empresa el trabajo está entonces acá podemos ver un ejemplo que de bien simple de cómo que hay que es pues se instala básicamente ustedes meten al sitio de que es va a recomendar uno de cuatro gigas mínimo entonces se ponen su ip de hecho esto va a estar colocado en un repositorio que los vamos al final entonces con esto ustedes pueden ejecutar toda la instalación de que es básicamente esta perso este esta instalación está como que más personalizada digamos para poder correr en a bls en google clavo nashur con uno de por la menos cuatro gigas pueden ustedes probar con esta con este comando y se instala súper súper rápido en tal vez menos de un minuto entonces esta es la parte de la computing y aquí es cuando venimos a hablar de los pipelines de machine learning entonces acá empezamos a hablar de la de bopz de esta cultura entonces el de bopz habla de esa brecha que existe entre la gente de los desarrolladores los de ps y los operadores los ops y esa comunicación que no fluye a veces al hacer un despliegue y y estas tipos de situaciones de problemas que sean en la producción hay errores y quien tiene la culpa y eso entonces la cultura de bopz si bien nació bajo un concepto en una charla en estados unidos se fue popularizando y básicamente nació de que un de empezó a platicar con un opz y empezaron a aprender uno de los otros hasta que se volvió una una conferencia entonces no es como que una metodología algo así más bien una cultura pero han salido mejores prácticas la gente ha escrito ha practicado y a y como se vuelve esto en a través de la metodología ágil es algo es algo muy atractivo para ser implementado por una empresa entonces el básico ciclo de desarrollo el construy en despliegan prueba liberan que viene con el de bopz las partes de si hay cd y todo esto de tecnologías clave y pues venimos con el concepto de pipeline de o teira pipeline va que habla de que hay un procesamiento de información y elementos conectados en serie que puede ser que la salida de uno se vuelva la entrada de información de otro para procesar y hacer algo y eso lo pueden hacer de forma paralela serial etcétera y así es como funcionan estos planes me gustó este concepto en inglés de pipeline porque habla cabal de esos elementos interconectados en serie y que la salida de uno se vuelve la entrada de otra desarcas donde venimos a hablar nosotros de lo que es básicamente podríamos decir como el de bopz aplicado al machine learning sólo que hay cosas distintas pero como para una asociación podríamos ver como como una disciplina de ese tipo entonces el mlops obviamente viene a machine learning pues es la administración operativa de modelos de machine learning que va a proveer un desarrollo de punto a punto del proceso de todo el proceso que tiene machine learning van construcción administración de modelos que sea reproducible que puedan probar usted los modelos y que los modelos también puedan evolucionar para mejorar y dar mejores predicciones de la información de stand o test mlops lo que trata de hacer es automatizar toda la línea es plie desde consumo datos hasta desplie de modelos de machine learning para que lo puedan usar los usuarios del sistema sea que acá no automatizamos desplie de software normal como aplicaciones web y todo eso sino que automatizamos modelos de machine learning todo el proceso desde lectura datos generación de modelo hasta publicarlo para que sea consumible por alguna aplicación que vaya a usar entonces entre diferencias entre DevOps y mlops ahorita como si bien dicen ahorita ya todo es lo que yo quiera ops entonces esta es una aplicación de machine learning entonces por ejemplo diferencias entre usuarios y o roles podríamos mencionar DevOps pues hay developers y hay operators podemos oír que se mencionan títulos como es aries de DevOps engineers a pesar de que DevOps es una cultura en un título cloud engineers pero son los títulos que encontramos en los mercados y en la industria entonces esos son los clientes o los usuarios o los stakeholders que están involucrados con el concepto de ops pero mlops cambian los usuarios acá los usuarios son data scientist son data engineers o los data mlops entonces se podemos enfocarnos también bastante en los data scientists que ellos son los que están presentes en el mlops entonces cambia los clientes cambia lo que los mis artefactos van como yo lo he mencionado en DevOps pues sería el sopar general un front end una aplicación web pero en el mlops son los modelos de machine learning en específico entonces y hace una aplicación específica de automatizar mis procesos pero para la área de machine learning también podemos hablar de diferencias en tecnologías entre las tecnologías pues está en DevOps vamos a encontrar pues las bases de datos, lenguajes, front ends, back ends, view as, Python, ya, mySQL y etcétera sin embargo ya cuando hablamos de tecnologías de mlops pues encontramos modelos de machine learning y datos vamos a encontrar librerías de Python como scikit-learn, tensorflow y otros tipos de librerías software para procesamiento datos como Apache Spark, Hadoop, servicios de la nube, etcétera entonces esas son como diferencias entre DevOps y mlops de las cosas que se están usando en objetivos pues podemos hablar de que el DevOps pues podría hacer mejorar esa calidad de ese software que podría ser una aplicación web y hacer de esos despliegos para entregar el producto de forma temprana como mencionábamos va entre más rápido, publicamos, reducimos los errores ya en producción, va esta filosofía ágil, cambia en mlops lo que tratan de hacer ustedes es automatizar los modelos para dar un valor a ese negocio o sea los automatizan, los entregan puede ser rápido, automatizan todo el proceso pero la idea es entregar modelos de machine learning que den un valor al negocio atraigan clientes potenciales o retengan dependiendo de la naturaleza del problema que están resolviendo pero eso es automatizar los modelos y dar modelos que den valor al negocio entonces podemos ver como un flujo así general de lo que es la parte de machine learning y esto pues el mlops acá hay una referencia es un sitio buenísimo donde pueden aprender como mlops en las referencias pues entra el dato general modelo puede cambiar el modelo lo compilan pues lo empaquetan y lo pueden distribuir tareas que van a encontrar en mlops pues es ingestión de datos exploración y evaluación de información todos los procesos de it y elba extraction, transformation, alohering limpiar los datos partir los datos, particionarlos y pues existen un montón de formatos como parkets, csb y un montón de formatos para información estas son tareas que pueden encontrar en mlops pueden en la parte de machine learning pues van a encontrar entrenamiento de modelos evaluación de modelos pruebas empaquetado pero los workflows que pueden mencionar el training y la predicción y pues acá vamos a hablar de argo pues argo tiene dos componentes que es el argo workflows y argo CD y pues están continuos a en continuo desarrollo pues algo básicamente lo que les ofrece es una herramienta para hacer workflows así en forma general pero se ha estado utilizando mucho para lo que es machine learning y se ha vuelto muy popular en esa parte y es nativo para containers y pues obviamente para cuvernetes entre las características es que cada paso que ustedes ejecutan se vuelve un container y se maneja el concepto de grafos dirigidos acíclicos los DAX, los famosos DAX y es como agnóstico a la cualquier nube y pues es nativo para cuvernetes y con containers es básicamente algo hace algo workflows, hace pipelines y argo CD es una herramienta para hacer continuous deployment entonces argo CD lo pueden usar para estar publicando models de machine learning entonces pues pueden tiene soporte para hand charts y todo lo que se porta a cuvernetes obviamente no y pues lo pueden conectar con repositor de GitHub, mantener sus versiones de su modelo y etc. pues esta se vuelve una muy buena solución K3S más argo CD algo súper ligero on the edge para hacer pipelines y displays de machine learning entonces esta es como un buen match para MLOps herramientas que podrían sustituir regularmente estos casos bien puede aplicar a mucho a lo que es algo in-house o on-premise va en hardware va o tal vez el negocio puede ser no muy grande o necesitan tener esa filosofía hacer agnóstico en renewés para poder moverse de un lado a otro pues puede venir a reemplazar Airflow que es una herramienta muy conocida para estos pipelines Apache Vins que es otra solución o otros tipos de soluciones que existen en la NUE los beneficios pues disminuyen costos para POCs que tienen una buena capacidad para edge computing, agnóstico a vendor locking y 100% open source para moificar entonces en la demo vamos a ver una pipeline de argo workflows como procesar moilos en argo workflows conectar argo workflows con argo CD y pues todo esto va a estar instalado en K-Tris entonces acá tenemos bueno, ya tenemos despleado argo workflows acá tienen el el panel de argo entonces, por ejemplo, acá tengo un mi pipeline que que procesé hace poco entonces es súper sencillo esto para poder ejecutar vamos a verlo acá nos vamos a conectar una máquina y para poder para poder ejecutarlo vamos a ejecutar el siguiente comando vamos a ver por acá lo tengo entonces acá tengo mi mi pipeline de argo workflows que puedo usar yo un comando esto a la vez les puede dar como una interfaz para los data scientists por permite como granularizar esos permisos a través de service accounts les pueden ustedes crean una service account para para sus data scientists y pues acá ya ejecutó el primer paso y está haciendo la parte del del deployment entonces acá fue con éxito una pequeña interfaz web acá podemos ver el resultado, los steps el output del del del container, pues acá lo que hizo fue que básicamente calcula unos unos promedios de notas de estudiantes ya que hay clases en el CEDAS es un ejemplo de esto y pues baja información de un bucket de de Google Cloud en CSV transforma eso, convierte el modelo, lo prepara y en el siguiente paso que es el proceso de deployment pues lo que hace acá es que manda llamar a Argos y pues despliega despliega el molde acá vamos a hacer por ejemplo vamos a modificar acá un poquito vamos a hacer que este es el código de Argo entonces acá le pasó todas las variables tengo un token para conectarme a Argo entonces por ejemplo voy a dar un error al bucket entonces poniendo un bucket de erróneas lo vuelvo a ejecutar entonces para que podamos ver en tiempo real qué pasa acá con Argo entonces me van a salir acá es como que muestra todos los componentes del despliega un service, los pods entonces acá va va ya lo sincroniza, lo manda llamar obviamente como el bucket está malo va a tirar corazoncito rojos entonces voy a hacer los corazoncito rojos indicando que el que no se pudo publicar el modelo de forma correcta entonces vamos a ahorita empezar los corazoncito rojos entonces yo ya puedo hacer un rollback en esta parte acá por ejemplo este es el podría ser de acá el rollback con esta versión redeploy acá entonces ya empieza a sincronizar y hace su cambio a la siguiente versión bueno una versión pre entonces acá se ve como hace los cambios o bien lo que podemos hacer acá está como que todo el history de las versiones que están acá acá este tenía malo el el como se llama el bucket este lo tiene bien podemos probar con este entonces por eso volvió a dar este error entonces acá lo va a volver a recuperar y vamos a ver entonces ahí en esta forma pues ya están conectando algo con obviamente acá pues cada ejecución está al pipeline hace 21 segundos entonces este paso manda llamar a Argo y acá miren ya están en estado verde entonces ya está nuestro modelo y pues como es una básicamente una API REST ya la puedo yo consumir y me vuelve la predicción de que dado unas notas que son primer parcial y que es 7 puntos segundo parcial 27 puntos y su zona me da el examen final que es 25 puntos 33 entonces básicamente podemos ver tal vez un poco de de código que bueno que está acá para dejamos unos no sé si quieren pues pasar a preguntas si quieren pasemos a preguntas ya que vamos a poner acá esto si quieren hacer preguntas ahí en el chat sobre cómo funciona Argo o una cosa este tipo podemos ver vamos a ver acá en el chat si quieren preguntar acá tenemos un par de minutitos tres minutos ahí para preguntas les gustó la demo que les llama la atención habían escuchado sobre mlops bueno acá hay una pregunta vamos a ver vamos a ver dice vamos a ver dice vamos a contestar rápido cómo puedo comenzar a aprender más acerca de mlops qué herramientas libros recomiendas bueno fíjense que está orally media en orally media tiene pues muy buenos libros unos hay unos libros de machine learning lo que podemos hacer también es voy a tratar de consultar preguntas si me quedo a medias nos vamos al Slack de cncf del salvador tal vez si lo pueden pegar por ahí bueno contestando ahí hay bastantes libros de machine learning yo le recomiendo acá en las referencias de las likes pues tengo si quieren se la voy a compartir acá tengo muy buenas referencias ese sitio de mlops que que está ahí pues está muy muy bueno para para bueno creo que no me deja pelear pero está muy bueno en las slides es mlops el sitio entonces acá también en las referencias vamos a ver si acá en los recursos está ah no lo puse en las slides en esta parte de vamos a ver acá mmlgionops.org ese es muy buen sitio mlgionops.org buenísimo sitio entonces para aprender sobre mlops yo les diría que es el sitio como el más sencillo de aprender porque habla desde el punto de vista como explica en mlops la filosofía que trata mlops yo le recomendaría empezar por acá y de repente algún libro que son muy buenos vamos a ver rapidito por acá como interactúan entre siglos de bops y los mlops en un mismo ecosistema supuestamente cuando están buscando a un mlops están buscando como alguien como un data engineer con capacidades de machine learning y que estén algún contacto con de bops como son como puestos híbridos entonces así es como están buscando ahora es básicamente aplicar mejores prácticas de bops a machine learning la repo se las voy a poner acá antes de que porque el caballo está ahora en los 10 minutos la repo está acá está miren github.com sergioarrmgpl sergioarrmgpl ahí va a estar mlops, gionargo, gionk3s eso es la repo ahí van a estar los stall source ahorita le va a dar su último push con lo que es la última parte que hice entonces ya hay buena parte acá de la demo y vamos a ver algo sí y workflows lo recomiendas para otro workflow aparte mlops si lo recomiendo para otros workflows tiene por ejemplo para hacer como grons de procesos lo que pasa es que básicamente algo workflow no solo es para machine learning de hecho nosotros lo mencionan que algo workflows es una máquina de workflows genérica pero no es orientación pero sino que es un motor de workflows genéricos que pueden usar para cualquier cosa pero se ha popularizado mucho en las partes de machine learning yo diría que también tiene muy buena aplicación para hacer procesamiento de datos para lo que es data engineering entonces yo creo que ahí estamos cualquier cosa nos vamos al Slack de cncf de Kubernetes el salvador kcid el salvador creo que sea si no pues de repente se los pegan por acá y pues para terminar ya me voy despidiendo acá bueno los recursos que pueden ver es K3S las páginas de Argo Argo para workflows Argo CD para el CD pues los invito a si quieren participar en Cloudinary Guatemala estos son los enlaces de nuestro Amito somos Comunidad Amiga de El Salvador bueno queremos unir a los centroamericanos y a los latinos va las Slides estas si quieren tomar la screenshot hay a apuntar rapidito estas son las Slides Sv del salvador Argo K3S entonces se pueden acceder a ellas kcid sv Argo K3S el repositorio ya se los había mostrado mis contacto personal Sergio R.M.G.P.L y muchas gracias entonces pues cualquier cosa y nos vamos a ver para para el Slack creo que no se que pasa ahora esto la media hora creo que les voy a compartir el Slack es kcid el salvador kcid el salvador en el Slack de ciencia ahorita si ya me funciona el Acamin si quieren les voy a pear los repos la información para que la tengan ahí ahorita que ya me dejó de escribir y se los voy a pear ahorita los enlaces la slide la slide es esta y la slide entonces ahí estamos entonces creo que ahí estamos entonces ya pues muy agradecido por la oportunidad y nos vemos ahí si quieren en el Slack o en el networking al rato ahí si me quieren buscar en la red soy como gracias me sigo siempre como profesor la enseñando conceptos muy genéricos entonces y acá que ya solo me salgo o como es como funciona solo me salgo ahora que bueno que estas por acá a ver bueno entonces pasen ahí feliz tarde feliz mañana bueno que estan por acá mucha tratando de mover a los estudiantes esta bueno si pasen feliz dia