En los últimos años, ha habido avances académicos importantes en torno a la inteligencia artificial (IA), así como un alto nivel de desarrollo en el plano industrial. Las empresas han estado implementando la IA en sus modelos de negocios. Mientras algunas de ellas se esfuerzan por poner estos modelos en marcha, el ritmo del avance tecnológico y las crecientes incertidumbres en el mercado hacen que este proceso se vuelva un gran desafío.

La IA existe en el marco del desarrollo de software, por lo que ha adoptado muchas de sus prácticas con diferentes niveles de éxito. Muchos desarrolladores de IA se estremecen cuando la ven asociada con las prácticas ágiles, pero la realidad es que ambas coexisten.

Uno de los términos que está ganando cada vez más atención es Machine Learning Ops (MLOps). Veamos a qué nos referimos con MLOps, por qué surgió y qué estamos haciendo para aprovechar todo su potencial.

¿Cómo se ve un abordaje MLOps en la práctica?

El desarrollo de la IA se basa en gran medida en la experimentación o la “cultura de laboratorio”. Muchos de los desarrolladores más talentosos vienen del ámbito académico, por lo que es común que los científicos de datos se concentren en la ciencia y la investigación. Algunas organizaciones no estaban listas para integrar la IA a gran escala. Esto se tradujo en la realización de varias pruebas de concepto y en intentos fallidos de escalar sus operaciones. El éxito de la IA en algunas empresas se vio obstaculizado por la falta de talento suficiente, entre otros factores, en especial en comparación con empresas muy avanzadas a nivel tecnológico, como Meta, Apple, Microsoft, Amazon y Alphabet, la empresa matriz de Google.

El desarrollo de software complejo y cargado de datos nos ha enseñado que existen algunos aspectos clave en cada proyecto:

Gobernanza

Los mecanismos de gobernanza se han vuelto fundamentales, ya que estos los modelos MLOps nos exponen a todo tipo de riesgos. Estos mecanismos atribuyen responsabilidad y obligan a rendir cuentas a aquellos que utilizan infraestructura informática de forma desmesurada. Se trata de saber quién tiene acceso a determinados recursos como los datos, el capital, los modelos y la implementación.

Repetición

La repetición es un concepto esencial para entender la calidad de los modelos de IA. Podemos considerar que un modelo está “controlado” solo si podemos generarlo otra vez en las mismas condiciones. La repetición permite realizar auditorías y mejorar los modelos, y garantiza que lo que estemos usando en la producción sea funcional y no sea solo una decisión del momento. En el marco de los modelos de IA, la repetición implica monitorear conjuntos de datos y experimentar con la configuración, el análisis y el código, entre otras cosas.

Proceso continuo

La necesidad de un proceso continuo es tal vez una de las lecciones más importantes del universo del software. Cuando se trata de algo tan complejo como los modelos de IA, las prácticas CI/CD son invaluables en el marco del desarrollo de software, sus evaluaciones de calidad, sus iteraciones cortas, sus versiones y su aptitud para equipos distribuidos.

Ha habido una confluencia de tecnologías que potencian el plano vinculado a las plataformas en la transformación MLOps, de la misma manera en que muchos de los principios de CI/CD se han consolidado en diferentes plataformas y prácticas, como git flow, los gerentes de desarrollo y las pipelines de código.

MLOps como plataforma: eficiencia a escala

En las empresas, la IA forma parte del sector vinculado a los datos, puede tomar alguno de estos nombres: inteligencia empresarial, analítica, plataforma de datos o big data. Se han desarrollado generaciones y generaciones de tecnología para superar las limitaciones de sus versiones anteriores. No es del todo preciso definir a las “generaciones” como versiones más nuevas que reemplazan a las anteriores. Es mejor describirlas como especiaciones parecidas a los procesos biológicos, en los que un enfoque tecnológico ha evolucionado para ser superior en un dominio delimitado. Puede que se los sobreextienda de manera temporal, pero en definitiva volverán a su entorno nicho.

Cuando el paradigma map-reduce superó los sistemas de almacenamiento de archivos y las limitaciones de procesamiento de SQL —conocido y desarrollado en el ecosistema de Apache Hadoop—, fue posible procesar enormes cantidades de datos complejos por lotes, lo que dio lugar al concepto de “big data” y todo el revuelo en torno a él. Sin embargo, los procesos por lotes no eran adecuados para todos. Se desarrollaron otros abordajes para gestionar los flujos de datos, desde las colas de mensajería hasta los microlotes, en especial con el ecosistema Apache Spark, el actual líder indiscutible.  Spark no es apto para todos los casos de uso y ahora existen muchísimos enfoques para abordar cada necesidad específica de las plataformas de IA.

La mayoría de las plataformas desarrolladas para IA se basan en al menos uno de los aspectos clave de MLOps. Existen muchas necesidades específicas dentro de estas plataformas, y cada una busca superar las siguientes cuestiones:

  1. Las versiones de los datos y su linaje para los datos de origen, el código de procesamiento, los modelos entrenados, el código de despliegue y los registros de uso.
  2. Las diferentes modalidades de almacenamiento para los datos de origen que se usan en el entrenamiento en comparación con los datos que se usan en la producción.
  3. Aprovisionamiento informático, incluidos los permisos, costos, configuración y entornos.
  4. Procesos de aprobación, en especial al activar el despliegue a producción de los modelos, pero también para algunos procesos de datos.
  5. Desacoplamiento de diferentes flujos de procesos que ingieren datos y los procesan en una forma reutilizable, entrenan modelos, los evalúan y hacen un seguimiento del rendimiento en la producción y las configuraciones en general.
  6. Sandbox de experimentación para no limitar la innovación ni afectar los sistemas críticos.

Una de las principales características del universo MLOps es el surgimiento de una estructura particular llamada “almacén de características”, que retoma la idea de los almacenes de datos (o lagos de datos u otras alternativas modernas) como la única fuente de verdad procesada y datos válidos para consumir como datos de salida. En este caso, no es necesario que estén estructurados. Aun así, tiene que ser un proceso de datos acordado que actúe como una representación reutilizable que pueda potenciar cualquier modelo construido con los datos de origen, que puede alimentarse y enriquecerse en producción.

No todas las plataformas de MLOps tendrán esa característica, pero se ha vuelto bastante habitual e incluso se ha convertido en una práctica recomendada en muchos casos.

El beneficio de una plataforma de MLOps es que les permite a las empresas contar con talento especializado para cada dimensión de la plataforma. Facilita el manejo eficaz de los problemas principales de la ingeniería de datos, la ingeniería de la nube, la ciencia de datos, la arquitectura de datos, DevOps y muchas otras disciplinas. Un perfil completo es atractivo, pero es aún mejor si cuenta con conocimiento especializado. Imagina lo difícil y costoso que es encontrar un experto así. No es algo que todas las empresas estén dispuestas a hacer.

Conclusión

El enfoque de MLOps representa un cambio de paradigma en cuanto a los requisitos: se pasa de las personas a las plataformas. Esto permite ciclos de iteración rápidos en equipos desacoplados de expertos en una plataforma de datos moderna más adecuada para desarrollar y ofrecer aplicaciones de IA en evolución de una manera gobernable. Este campo está experimentando una explosión de posibilidades y aún no se sabe cuál será el producto final. Se trata de un nivel básico de madurez para cualquier empresa que considere seriamente el potencial de la IA en el mundo real.

Leave a Reply

Tu dirección de correo electrónico no será publicada.

You may use these HTML tags and attributes:

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>