MLOps en Snowflake para simplificar tu stack tecnológico

El stack tecnológico asociado a la gestión de los datos y la generación de Insights no para de crecer y eso en ocasiones supone que sea complicado mantener una arquitectura de empresarial sin que se asemeje a un Mr Potato, donde cada poco le van sumando nuevas piezas o incluso sustituyendo. Eso, entre otras cosas, significa que en los equipos deben existir perfiles que «dominen» todas esas tecnologías, algo que puede resultar un grave problema, principalmente por la situación actual de gestión y retención del talento.

Debajo una imagen del stack tecnológico que a día de hoy soporta el ecosistema del dato.

Es por eso, que desde un punto de vista de simplificación de las arquitecturas, conocer las capacidades nativas de las piezas que incorporas a la organización es fundamental para evitar que se convierta en un crisol de iconos que complique la integración global. Aquí es donde toma especial relevancia el seguimiento y

En el caso de Snowflake, se ha realizado un esfuerzo por integrar piezas (algunas tras adquisiciones, otras mediante acuerdos y otras gracias a su propia evolución) que permiten cubrir el ciclo de vida de los modelos de Inteligencia Artificial dentro de la propia plataforma. Este conjunto de capacidades se encapsulan dentro de Snowflake ML.

El primer aspecto relevante y que permite comenzar a desarrollar proyectos de IA en Snowflake de forma colaborativa y cumpliendo las buenas prácticas de desarrollo es la integración con un repositorio de código. Esto permite a los científicos de datos trabajar mediante una estrategia de branching organizativa. Estaríamos hablando de Snowflake Notebooks.

El segundo aspecto es el de poder generar tus propias ML Functions. De este modo, no tendrás que repetir código una vez tras otra, lo que permite una mejora en el mantenimiento del código, reusabilidad y simplicidad. Además, se pueden crear fácilmente mediante el uso de SQL.

El tercero es todo lo relacionado con el registro del modelo gracias a Model Registry. Aquí puedes gestionar el versionado del propio modelo, la seguridad aplicando RBAC, la asignación de una o más métricas de evaluación, el versionado de los datasets, etc. Todo ello, mediante la gestión de artefactos que permiten encapsular esa información y de ese modo, ayuda a los ingenieros de ML a mantener y desplegar los modelos apropiados en los distintos entornos con seguridad y confiabilidad.

Otra capacidad interesante es el linaje que está íntimamente relacionado con la parte de Gobierno, no sólo de los datos, sino también de los modelos de Inteligencia Artificial dentro de mi organización. Esto, sin duda ayuda a incrementar el control y productivicación de los modelos.

El cuarto hace referencia a toda la parte de almacén de características gracias a Snowflake Feature Store. Donde los Data Scientist de la organización han curado los datos creando dataset de calidad y reutilizables que aceleran la entrega de valor a negocio impulsando la adopción de nuevos casos de uso de Inteligencia Artificial en la empresa.

El quinto hace referencia a las capacidades nativas de la solución respecto a la explicabilidad de los modelos de IA. Es cierto que no cubre el 100% de las opciones, pero disponer de esa funcionalidad que intenta descifrar el modo en que predicen esas cajas negras que en muchas ocasiones son los algoritmos de IA, es un UP importante. Los algoritmos cubiertos a día de hoy son:

  • XGBoost
  • CatBoost
  • LightGBM
  • Scikit-learn

Y el diagrama de cómo quedaría el proceso tras registrar el modelo de IA sería algo como esto:

El sexto es la observabilidad. Esta característica nos permite controlar el desempeño de los modelos en «la vida real». De esta forma, se puede actuar sobre ellos en caso de detectar desviaciones o pérdida de eficiencia en sus métricas de evaluación. Además, gracias a UI de Snowsight se pueden montar fácilmente gráficos de control que nos ayuden con la monitorización de nuestros modelos.

El séptimo y último, pero no por ello menos relevante es la forma en la que se «sirven» los modelos. Snowflake te permite realizar inferencias tanto directamente sobre el Warehouse mediante ejecuciones de batch e incluso micro-batch, como a través de un end-point gracias a Snowpark Container Services. Esta segunda aproximación permite levantar las imágenes de tus modelos sobre contenedores, con la configuración (GPU o CPU) que mejor se adecúe al caso de uso a cubrir.

Con todo esto, sólo quiero poner en valor el conjunto de capacidades que el equipo de Snowflake ha desarrollado y que permite cubrir, de manera integral, el ciclo de vida de los modelos de inteligencia artificial dentro de la propia plataforma de datos. De esta manera se evita, montar un «arco de iglesia» que puede introducir complejidad por la incorporación de múltiples piezas adicionales, que en ocasiones sólo introducen «ruido» al ecosistema.

Foto de portada gracias a Jadson Thomas: https://www.pexels.com/es-es/foto/fotografia-de-enfoque-selectivo-del-cubo-de-rubik-de-3-por-3-1500610/

Publicado por alb3rtoalonso

Soy un enamorado del poder de los datos. Entusiasta de la mejora y formación continua.

Deja un comentario