Blog

El rol de QA en Machine Learning

Blog
En la actualidad, cada vez más empresas buscan solucionar problemas y acelerar sus procesos mediante Machine Learning (ML) o Inteligencia Artificial. La creciente demanda de profesionales capaces de desarrollar soluciones de este tipo ha impulsado también la necesidad de contar con expertos en Quality Assurance (QA) que entiendan estas tecnologías y puedan mejorar la calidad en los proyectos de ML.

En este artículo, compartiré mi experiencia como QA Automation en un equipo multidisciplinario de Machine Learning, explicando algunos desafíos y oportunidades que encontré desde la perspectiva de mi rol.

Entendiendo las pruebas desde otro punto de vista

En la programación tradicional, las pruebas se basan en reglas y datos de entrada. Conocemos las reglas de negocio y, a partir de ellas, esperamos resultados específicos para cada dato de entrada.

Sin embargo, en las pruebas de Machine Learning, esto no es tan sencillo. Las reglas de negocio no siempre están claras. Un modelo se entrena con datos de entrada y sus correspondientes respuestas reales. Estos datos actúan como «antecedentes» y permiten al modelo inferir respuestas para nuevos datos de entrada. Desconocemos las reglas y patrones exactos que aplica el modelo; solo sabemos que recibe datos de entrada y predice resultados probables. Por lo tanto, nuestras pruebas deben centrarse en verificar y validar la precisión y consistencia de estas predicciones.

Midiendo el rendimiento de nuestro modelo

Para medir el rendimiento del modelo, debemos generar un conjunto de datos con sus respuestas reales. Luego, evaluamos el modelo utilizando estos datos y comparamos los resultados con las respuestas reales. Existen diversas técnicas para realizar esta comparación, pero considero que las dos más importantes son:

  • Métricas específicas: Se puede obtener un feedback rápido usando métricas cercanas al desarrollo como precisión, F1-score, recall, matrices de confusión, entre otras. 
  • Evaluación humana: Comparando los resultados del modelo con los resultados de una persona especializada. Esto se puede hacer de forma manual o automatizada.

Es importante que como QA Automation reforcemos nuestros conocimientos en métricas, estadísticas y probabilidades para comprender en qué métricas debemos enfocarnos. Además, esto nos ayudará a desarrollar pruebas automatizadas y reportes automatizados nos ayudará a validar estas métricas de manera eficiente.

Detectando errores de comportamientos

En ocasiones, debido a la naturaleza de los datos, los modelos de aprendizaje automático pueden contener errores y comportamientos no deseados. Identificar estos sesgos es fundamental para comprender las debilidades de nuestro desarrollo. Para ello, podemos aplicar pruebas de Invariance Testing y Directional Testing.

Para entender este tipo de pruebas, consideremos un modelo que detecta texto en imágenes:

  • Si nuestro criterio de aceptación establece que el tamaño del texto no es un factor determinante, podemos crear un dataset con imágenes que contengan el mismo texto en diferentes tamaños y validar que la precisión de nuestro modelo se mantenga en un rango específico. Esto se conoce como Invariance Testing.
  • En cambio, si nuestro criterio de aceptación es que el tamaño del texto sí es un factor determinante, podemos crear un dataset con imágenes que contengan texto en diferentes tamaños y validar que la precisión de nuestro modelo aumente a medida que el tamaño del texto aumenta, o disminuya si el tamaño del texto se reduce. Esto se conoce como Directional Testing.

También es posible aplicar este tipo de prueba en distintos aspectos, como el color del texto, la posición del texto en la imagen, la cantidad de letras, entre otros. En este punto, considero que nuestra perspectiva de tester puede aportar grandes beneficios y ayudar a detectar sesgos en nuestros modelos.

Mitigando el impacto de los cambios externos

Las soluciones en Machine Learning, a diferencia de las de programación tradicional, pueden degradarse con el tiempo con mayor facilidad. Los negocios y sus datos cambian constantemente, lo que hace que nuestros modelos (que fueron entrenados con datos específicos) disminuyan su rendimiento y necesiten un nuevo entrenamiento con datos actualizados. Por ello, es importante que nuestra estrategia de QA contemple el monitoreo de nuestros modelos y el ETL Testing de los datos en producción para detectar estos cambios lo más rápido posible.

Aprendiendo Python y su toolkit de Machine Learning

Finalmente, como QA Automation, aprender Python y su toolkit de Machine Learning es fundamental. Conocer lo básico de librerías específicas como pandas, matplotlib, scikit-learn, entre otras, nos ayudará a entender mejor el código de desarrollo y nos permitirá integrar herramientas de testing como pytest, unittest, monkeypatch o tox para ganar confianza en nuestro desarrollo.

Conclusión

Como profesionales de QA Automation tenemos mucho que aportar en proyectos de Machine Learning. Automatizar la combinación de métricas, pruebas especializadas y monitoreo constante son oportunidades que nos permitirá mitigar riesgos y mejorar continuamente los resultados obtenidos  Con el auge de la ciencia de datos y la inteligencia artificial debemos adaptarnos al nuevo paradigma que presenta el Machine Learning y estar preparados para enfrentar los desafíos que surgen en este apasionante campo. 

Contacto

Contactanos

¿Cómo podemos ayudarte?