Omitir navegación

Serie de entradas de blog sobre MLOps, 1ª parte: El arte de probar sistemas de aprendizaje automático con MLOps

Publicado el 14 junio, 2022

Product Marketing Manager, Data and AI Marketing

Las pruebas son una práctica importante en el ciclo de vida del desarrollo de un sistema de aprendizaje automático para garantizar operaciones de alta calidad. Usamos pruebas para confirmar que algo funciona como debería. Una vez creadas las pruebas, podemos ejecutarlas automáticamente cada vez que realizamos un cambio en el sistema y seguir mejorándolas con el tiempo. Es una buena práctica recompensar la implementación de pruebas e identificar los orígenes de los errores lo antes posible en el ciclo de desarrollo, para evitar gastos posteriores y la pérdida de tiempo.

En esta entrada de blog, analizaremos las pruebas de los sistemas de aprendizaje automático desde una perspectiva de MLOps (operaciones de aprendizaje automático) y conoceremos los procedimientos recomendados y un marco de pruebas que puede usar para crear sistemas de aprendizaje automático sólidos, escalables y seguros. Antes de profundizar en las pruebas, veamos qué es MLOps y su valor para desarrollar sistemas de aprendizaje automático.

 

Modelo gráfico que define e ilustra MLOps, la unión del aprendizaje automático y DevOps, que muestra los componentes, las fases, las tareas y el flujo de cómo funciona el proceso.

Figura 1: MLOps = DevOps + aprendizaje automático.

 

El desarrollo de software es interdisciplinar y está evolucionando para facilitar el aprendizaje automático. MLOps es un proceso que fusiona el aprendizaje automático con el desarrollo de software mediante el acoplamiento del aprendizaje automático y DevOps. MLOps tiene como objetivo compilar, implementar y mantener modelos de aprendizaje automático en producción de forma confiable y eficaz. DevOps impulsa las operaciones de aprendizaje automático. Veamos cómo funciona en la práctica. La siguiente ilustración del flujo de trabajo de MLOps muestra cómo DevOps habilita el aprendizaje automático para orquestar soluciones de aprendizaje automático sólidas, escalables y seguras.

 

Gráfico que representa las tres fases principales del flujo de trabajo de MLOps, empezando por la canalización de aprendizaje automático, después, la implementación y, finalmente, la supervisión.

Figura 2: Flujo de trabajo de MLOps.

 

El flujo de trabajo de MLOps es modular, flexible y se puede usar para crear pruebas de concepto o poner en práctica soluciones de aprendizaje automático en cualquier negocio o sector. Este flujo de trabajo está dividido en tres módulos: compilación, implementación y supervisión. La compilación se usa para desarrollar modelos de aprendizaje automático mediante una canalización de aprendizaje automático. El módulo de implementación se usa para implementar modelos en entornos de desarrollo, pruebas y producción. El módulo de supervisión se usa para supervisar, analizar y controlar el sistema de aprendizaje automático con el fin de obtener el máximo valor empresarial. Las pruebas se realizan principalmente en dos módulos: el de compilación y el de implementación. En el módulo de compilación, los datos se ingieren para el entrenamiento. El modelo se entrena con los datos ingeridos y, después, se prueba en el paso de pruebas del modelo.

1. Pruebas del modelo: en este paso, se evalúa el rendimiento del modelo entrenado con un conjunto de puntos de datos aparte denominado datos de prueba (que se dividió y se le dio un número de versión en el paso de ingesta de datos). La inferencia del modelo entrenado se evalúa según las métricas seleccionadas para el caso de uso. La salida de este paso es un informe sobre el rendimiento del modelo entrenado. En el módulo de implementación, implementamos los modelos entrenados en entornos de desarrollo, pruebas y producción, respectivamente. En primer lugar, comenzamos con las pruebas de la aplicación (realizadas en entornos de desarrollo y pruebas).

2. Pruebas de la aplicación: antes de implementar un modelo de aprendizaje automático en producción, es fundamental probar la solidez, la escalabilidad y la seguridad del modelo. Por tanto, tenemos la fase de "pruebas de la aplicación", donde se prueban rigurosamente todos los modelos entrenados y la aplicación en un entorno similar al de producción denominado entorno de prueba o de ensayo. En esta fase, podemos realizar pruebas como las de A/B, pruebas de integración, pruebas de aceptación del usuario (UAT), pruebas en un entorno paralelo o pruebas de carga.

A continuación se muestra el marco de pruebas que refleja la jerarquía de necesidades para probar sistemas de aprendizaje automático.

 

Gráfico piramidal que muestra la jerarquía de las necesidades de aprendizaje automático, empezando por la parte inferior con tareas que corresponden a la solidez, seguidas de tareas que corresponden a la escalabilidad y, por último, encima, tareas relacionadas con la seguridad.

Figura 3: Jerarquía de las necesidades para probar sistemas de aprendizaje automático.

 

Una manera de ver los sistemas de aprendizaje automático es con la jerarquía de necesidades de Maslow. Los niveles inferiores de una pirámide reflejan la "supervivencia", y el verdadero potencial humano se libera solo después de satisfacer las necesidades básicas de supervivencia y emocionales. Del mismo modo, las pruebas que inspeccionan la solidez, la escalabilidad y la seguridad garantizan que el sistema no solo funcione en el nivel básico, sino que alcance su verdadero potencial. Algo que debe tenerse en cuenta es que hay muchas más formas de pruebas funcionales y no funcionales, incluidas las pruebas de humo (comprobaciones de estado rápidas) y las pruebas de rendimiento (esfuerzo), pero todas pueden clasificarse como pruebas del sistema.

En las tres publicaciones siguientes, vamos a analizar cada uno de los tres niveles de pruebas, empezando por la solidez, a continuación, la escalabilidad y, por último, la seguridad.

Si desea obtener información más detallada y acerca de la implementación práctica, eche un vistazo al libro Ingeniería de MLOps o vea cómo crear e implementar un modelo en Microsoft Azure Machine Learning con MLOps en el seminario web a petición sobre procedimientos recomendados de MLOps para obtener valor. Consulte también nuestra entrada de blog anunciada recientemente sobre los aceleradores de soluciones (MLOps v2) para simplificar la secuencia de trabajo de MLOps en Azure Machine Learning.


Origen de las imágenes: libro Ingeniería de MLOps