MLOps vs DevOps: Dos Enfoques Clave para la Innovación Tecnológica
|En los últimos años se han acuñado dos términos importantes cuando analizamos la forma en que se desarrolla y produce el software moderno. El primero es DevOps, un término acuñado en 2009 por Patrick Debois para referirse al “desarrollo” y las “operaciones”. El segundo es Machine Learning Operations o MLOps, utilizado inicialmente por David Aronchick en 2017. MLOps es un término derivado y básicamente describe la aplicación de los principios de DevOps al campo del aprendizaje automático. La diferencia más obvia es el artefacto central en torno al cual se agrupan. El equipo de DevOps se centra en las aplicaciones empresariales y el equipo de MLOps se centra más en los modelos de aprendizaje automático. Ambos describen el proceso de desarrollo de un artefacto y su preparación para el consumo en producción.
DevOps y MLOps comparten muchas similitudes, ya que ambos se centran en optimizar y automatizar los flujos de trabajo para garantizar la integración continua (CI), la entrega continua (CD) y la implementación confiable en entornos de producción. La Figura 1-3 describe una posible combinación de DevOps y MLOps.
Las prácticas compartidas, como la colaboración interfuncional, el uso de Git como una única fuente de verdad, la repetibilidad, la automatización, la seguridad y la observabilidad son fundamentales. Tanto DevOps como MLOps dependen de la colaboración entre desarrolladores, científicos de datos y equipos de operaciones para garantizar que el código, los modelos y las configuraciones estén bien coordinados. La automatización y la repetibilidad se enfatizan para crear, probar e implementar aplicaciones y modelos, lo que garantiza resultados consistentes y confiables. Sin embargo, MLOps introduce capas adicionales, como el entrenamiento de modelos y la gestión de datos, que son distintas de las canalizaciones típicas de DevOps. La necesidad de monitorear constantemente los modelos para detectar desviaciones y garantizar su rendimiento a lo largo del tiempo agrega complejidad a MLOps, pero ambos procesos comparten un enfoque en la seguridad y la observabilidad para mantener la confianza y la transparencia en los sistemas de producción.
En última instancia, los dos enfoques están profundamente entrelazados y se complementan entre sí. Para complicar aún más las cosas, MLOps es una especie de término general. Hay muchos otros términos que están estrechamente relacionados. Estos incluyen: ModelOps, LLMOps o DataOps. Todos ellos hacen referencia a un conjunto similar de prácticas en diferentes combinaciones. No existe una única forma “correcta” de combinar DevOps y MLOps porque el enfoque dependerá de la organización, los equipos involucrados y sus prácticas establecidas. Algunos equipos pueden preferir una integración más estrecha entre la ciencia de datos y el desarrollo, mientras que otros pueden querer divisiones claras entre el desarrollo de modelos y el desarrollo de aplicaciones. La estructura organizativa, la experiencia del equipo y los objetivos del proyecto desempeñan papeles importantes en la forma en que se integran los flujos de trabajo.
Por ejemplo, en una organización más pequeña, los científicos de datos y los desarrolladores pueden trabajar más de cerca, compartiendo bases de código y automatizando la implementación de modelos junto con el código de la aplicación. En organizaciones más grandes, los equipos pueden estar más especializados y requerir procesos distintos para la gestión de modelos y la ingeniería de software, lo que lleva a un enfoque más modular para la integración.
En resumen, DevOps y MLOps trabajan juntos tomando prestadas las mejores prácticas de cada uno, pero con las capas adicionales de gestión de datos, entrenamiento de modelos y monitoreo continuo en MLOps. El enfoque correcto dependerá de la colaboración del equipo, la complejidad del proyecto y las necesidades de la organización.