Primeros pasos hacia MLOps - Machine Learning Operations (1 de 3)

Introducción

Como arquitecto de software me dedico a diseñar plataformas para dar soluciones a proyectos de negocio con la necesidad de poner en marcha casos de uso. Tener unos requerimientos y objetivos claros, una perspectiva a corto y largo plazo o contar con arquitecturas de referencias existentes ayudan a reducir el riesgo dentro de un proyecto. En gran parte, todos estos factores son muy dependientes del tipo de proyecto.

Esto se ha hecho evidente en mi salto como rol hacia un Arquitecto de IA. En los proyectos que he tenido que ejecutar, inicialmente, el objetivo era el desarrollo y explotación de modelos/casos de uso de IA/ML. En los más recientes, las preocupaciones se encuentran más en cómo productivizo o industrializo estos modelos o casos de uso basados en estos modelos. 

Productivización implica la definición de una metodología sobre la cual poder identificar procesos, cómo estos procesos se automatizan y qué tecnologías utilizamos para ello. De esta forma, conseguimos un entorno gobernable de modelos y todos los elementos que giran en torno a estos modelos. Esta productivización o industrialización es lo que ha hecho surgir la disciplina de MLOps que engloba un conjunto de prácticas que van a permitir escalar la IA a nivel empresarial.

Infografía de industralización aplicando disciplina MLOps

Entre otros factores, el nivel de madurez o conocimiento del cliente en temas de MLOps, tanto a nivel funcional como técnico, ha dado como resultado el diseño de arquitecturas “MLOps” con diferentes niveles de cobertura o de alcance. 

Este artículo pretende descubrir y remarcar funcionalidades de una plataforma de MLOps de forma gradual a través de tres escenarios. Queda fuera de este artículo ahondar en detalles como la metodología MLOps utilizada o ver cómo las tecnologías indicadas cubren las capacidades propuestas.

Para el objetivo propuesto, lo que vamos a ver son tres escenarios basados en tres proyectos escogidos para poder ver esta progresión a nivel de madurez. En cada uno de ellos presento la problemática principal que se quiere resolver, incluyendo objetivos, y el enfoque de la solución. Este artículo está dividido en tres entradas correspondientes a cada uno de estos escenarios. Por tanto, a continuación, en esta entrada vamos a ver el primer escenario.

 

Escenario 1: Entorno de desarrollo de modelos (hace 5 años)

Problemática a resolver aplicando MLOps
Ejemplo de objetivos de soluciones de industrialización

En este escenario, el cliente decidió iniciar, en modo laboratorio, en el desarrollo de modelos predictivos. Su objetivo era realizar una valoración funcional del desempeño de estos modelos.

No existían entornos adaptados a las herramientas de modelado, ya fuera a nivel de estaciones de trabajo o de servidores, por lo que hasta ahora se había optado por que cada científico de datos se instalase las herramientas de desarrollo en sus estaciones de trabajo y reutilizase servicios disponibles del ciclo de desarrollo de software convencional (en este caso el servicio de control de código basado en GIT). 

Con este planteamiento, el problema que les surgió fue que los recursos de la estación de trabajo local eran insuficientes para crear el modelo a medida que utilizaban más datos para entrenar. El usar la estación de trabajo local implicaba además otros problemas derivados:

  • Configuraciones diferentes entre los entornos de desarrollo de cada usuario lo que ocasionaba problemas a la hora de descargarse el código y ejecutarlo en otra estación de trabajo.
  • Entorno de desarrollo inestable, ya que compartía software adicional que podía impactar con las herramientas de modelado.
  • Compartición de datos y modelos manual y tediosa.

La solución implantada fue instalar un servidor “on-premise” centralizado de desarrollo de modelos. Las herramientas de modelado estaban disponibles vía interfaz web (R Studio Server/Jupyter Notebook) y la gestión del código, acceso al GIT, se realizaba vía Terminal, conectándose al servidor. Cada usuario tenía una cuenta en el servidor por la que entraban a través de SSH y podían arrancar/parar su instancia de Notebook.

En este entorno:

  • Los recursos de CPU y Memoria son superiores a los de las estaciones de trabajo.
  • Se habilita un repositorio donde poder guardar el código de forma versionada.
  • Se habilita un espacio centralizado para poder guardar modelos y datos dentro del servidor.
Diagrama del escenario 1 con solución aplicando metodología MLOps

 

A pesar de que consigue cubrir sus objetivos iniciales, este escenario genera una serie de problemas y veremos en el siguiente escenario de la siguiente entrega como éstos se solucionan.

 

 

 

 

He leído y acepto la política de privacidad
Acepto recibir emails sobre actividades de recruiting NTT DATA