Problemas al implementar modelos de Machine Learning

La implementaci贸n de modelos de Machine Learning a escala es uno de los retos m谩s importantes para las empresas que desean crear valor a trav茅s de la Inteligencia Artificial, y a medida que los modelos se vuelven m谩s complejos, cada vez es m谩s dif铆cil.

Solo un porcentaje muy peque帽o de los proyectos de Machine Learning llegan a la producci贸n. Un proyecto de Machine Learning puede fallar por muchas razones, entre ellas la implementaci贸n. Es fundamental que todos los responsables de la toma de decisiones comprendan plenamente c贸mo funciona el despliegue y c贸mo reducir el riesgo de fracaso al llegar a este paso crucial.

Como ya sabemos un modelo desplegado puede definirse como cualquier unidad de c贸digo que se integra perfectamente en un entorno de producci贸n y que puede recibir una entrada y devolver una salida.

Los problemas al implementar un modelo de Machine Learning surgen al momento de finalizar las pruebas y cuando se inicia la implementaci贸n, es justamente en este paso en que aparecen algunos de los problemas m谩s comunes.

Gesti贸n de lenguajes de programaci贸n

En general, Python y R son, con mucho, los lenguajes m谩s populares para la aplicaci贸n de Machine Learning, pero en ocasiones los modelos de producci贸n rara vez se despliegan en esos lenguajes por varias razones, incluyendo la velocidad. Implementar un modelo en Python o R a uno con un lenguaje de producci贸n como C++ o Java es complicado, y a menudo resulta en un rendimiento reducido, tomando en cuenta la velocidad, precisi贸n, del modelo original.

R puede presentar problemas cuando aparecen nuevas versiones del software. Adem谩s, es lento y no se mover谩 trav茅s de los datos grandes de manera eficiente. R es un gran lenguaje para prototipos, ya que permite interacciones f谩ciles y resoluci贸n de problemas, pero necesita ser traducido a Python o C++ o Java para su producci贸n.

Las tecnolog铆as de contenedores, como Docker, pueden resolver los retos de incompatibilidad y portabilidad introducidos por la multitud de herramientas. Sin embargo, la comprobaci贸n autom谩tica de la dependencia, la comprobaci贸n de errores, las pruebas y las herramientas de creaci贸n no ser谩n capaces de resolver los problemas a trav茅s de la barrera del idioma.

La reproducibilidad tambi茅n es otro desaf铆o. De hecho, se pueden construir muchas versiones de un modelo utilizando diferentes lenguajes de programaci贸n, librer铆as o versiones diferentes de la misma librer铆a. Es dif铆cil realizar un seguimiento manual de estas dependencias. Para resolver estos desafios, se necesita una herramienta de ciclo de vida de Machine Learning que pueda rastrear y registrar autom谩ticamente estas dependencias durante la fase de formaci贸n como configuraci贸n en forma de c贸digo y, posteriormente, agruparlas junto con el modelo formado para ser implementado. Es recomendable utilizar en una herramienta o plataforma que pueda traducir instant谩neamente c贸digo de un idioma a otro o que permita implementar modelos detr谩s de una API para que puedan integrarse en cualquier lugar.

Poder de computo

En caso de que se utilicen redes neuronales, estas a menudo son muy profundas, lo que significa que el entrenamiento y el uso de las mismas para inferencia requiere mucha potencia computacional. Normalmente, queremos que nuestros algoritmos funcione r谩pido, para muchos usuarios y eso puede ser un obst谩culo.

Adem谩s, muchos de los procesos de producci贸n de Machine Learning se basan hoy en d铆a en las unidades de procesamiento gr谩ficos o GPU. Sin embargo, estos equipos son caros, lo que f谩cilmente a帽ade otra capa de complejidad a la tarea de escalar los sistemas de Machine Learning.

Portabilidad

Otro reto interesante de la implementaci贸n del modelo es la falta de portabilidad. Al carecer de la capacidad de migrar f谩cilmente un componente de software a otro entorno de host y ejecutarlo all铆, las organizaciones pueden quedar bloqueadas en una plataforma en particular. Esto puede crear barreras a la hora de crear modelos y desplegarlos.

Escalabilidad

La escalabilidad es un problema real para muchos proyectos de Inteligencia Artificial. De hecho, es necesario asegurarse de que sus modelos sean capaces de escalar y satisfacer los aumentos de rendimiento y la demanda de aplicaciones en la producci贸n. Al principio de un proyecto, normalmente nos basamos en datos relativamente est谩ticos a una escala manejable. A medida que el modelo avanza hacia la producci贸n, suele estar expuesto a mayores vol煤menes de datos y modos de transporte de datos. El equipo necesitar谩 varias herramientas para monitorear y resolver los desafios de rendimiento y escalabilidad que aparecer谩n con el tiempo.

Los problemas de escalabilidad se pueden resolver adoptando un enfoque coherente y basado en microservicios para el an谩lisis de la producci贸n. Del mismo modo, los equipos deben tener opciones para escalar las huellas de c谩lculo y memoria para soportar cargas de trabajao m谩s complejas.

Problemas de pruebas y validaci贸n

Los modelos evolucionan continuamente debido a cambios en los datos, nuevos modelos, entre otras causas. Como consecuencia, cada vez que se produce un cambio de este tipo, debemos revalidar el rendimiento del modelo.

Aparte de la validaci贸n de modelos en pruebas fuera de l铆nea, es muy importante evaluar el rendimiento de los modelos en producci贸n. Por lo general, esto lo planificamos en las secciones de estrategia de implementaci贸n y monitoreo.

Los聽 modelos de Machine Learning deben actualizarse con mayor frecuencia que las aplicaciones de software habituales.

Plataforma automatizada de Machine Learning

Esto podr铆a ser una buena soluci贸n para producir modelos m谩s r谩pidos. Adem谩s, la plataforma puede soportar el desarrollo y comparaci贸n de m煤ltiples modelos, de modo que el negocio puede elegir el modelo que mejor se adapte a sus necesidades de precisi贸n predictiva, latencia y recursos de c谩lculo.

Hasta un 90% de todos los modelos de Machine Learning empresarial pueden ser desarrollados autom谩ticamente. Los expertos en Machine Learning pueden ser contratados para trabajar con gente de negocios para desarrollar el peque帽o porcentaje de modelos que actualmente est谩n fuera del alcance de la automatizaci贸n.

Muchos modelos experimentan degradaciones en su rendimiento con el tiempo. Como tal, los modelos desplegados deben ser monitoreados. Cada modelo desplegado debe registrar todas las entradas, salidas y excepciones. Una platafoma de implementaci贸n de modelos debe proporcionar almacenamiento de registros y visualizaci贸n del rendimiento del modelo. Vigilar de cerca el rendimiento del modelo es clave para gestionar eficazmente el ciclo de vida de un modelo de Machine Learning.

Machine Learning se encuentra todav铆a en sus primeras etapas. De hecho, tanto los componentes de software como los de hardware est谩n en constante evoluci贸n para satisfacer las demandas actuales de Machine Learning.

Desplegar Machine Learning es y seguir谩 siendo dif铆cil, y eso es solo una realidad que las organizaciones van a tener que afrontar. Afortunadamente, algunas arquitecturas y productos nuevos est谩n ayudando a cambiar este panorama. Adem谩s, a medida que m谩s compa帽铆as est谩n escalando las operaciones, tambi茅n est谩n implementando herramientas que facilitan la implementaci贸n del modelo.

Deja un comentario

Tu direcci贸n de correo electr贸nico no ser谩 publicada. Los campos obligatorios est谩n marcados con *