miércoles, 27 de agosto de 2025

Seis principios para la operación del Machine Learning y los grandes modelos de lenguaje

En general, cuando hablamos de inteligencia artificial tendemos a fijarnos, y en el fondo es normal, en su rápido avance y en todo lo que es capaz de hacer y en las soluciones que puede ofrecer.

Y digo que es normal porque, en el fondo, eso, lo que aporta al negocio o a nuestra actividad, es lo más atractivo, los más transformador, lo más diferencial de la inteligencia artificial, como pasa con cualquier otra tecnología.

Sin embargo, en la vida real, y para que cualquier tecnología, cualquier sistema en el caso del software, y cualquier solución basada en inteligencia artificial puedan proporcionar de manera escalable y fiable esas capacidades, es preciso aplicar criterios y técnicas profesionales de desarrollo y de operación de sistemas.


La ingeniería de software y la operación de servicios


La combinación de los mecanismos tradicionales de la ingeniería de software con los principios agile y el apoyo de soluciones basadas en la nube y arquitecturas cloud nativa da lugar al enfoque DevOps predominante hoy en día Cuando eso se adapta al caso específico de soluciones basadas en machine learning, llegamos al MLOps y, en el caso específico de las soluciones basadas en grandes modelos de lenguaje (LLM, 'Large Language Models') llegamos al LLMOps

En realidad, los pasos de la ingeniería de software y operación de servicios tradicional al DevOps, de éste al MLOps y de éste, a su vez, al LLMOps, son evoluciones y adaptaciones, algunas muy importantes ciertamente, de unas ideas, que en lo más fundamental, se conocen y aplican desde hace muchos años en ingeniería software y operación de servicios.


Los seis principios para la operación del machine learning


Podríamos decir que, en el fondo, existe una filosofía o una serie de principios subyacentes a toda esta gestión y operación de sistemas y servicios.

Precisamente, en el libro 'LLM Engineer's handbook' de Paul Lusztin y Maxime Labonne, dedicado en gran medida a esta ingeniería del software en el caso de LLMs, dedican un apéndice final a identificar seis principios para la operación de los sistemas de machine learning aunque, en el fondo, no están hablando tanto de machine learning en general, como de soluciones basadas en LLMs.

Los seis principios que identifican estos autores, son los siguientes:

  • Automatización y operativización
  • Versionado
  • Experimentos y seguimiento de experimentos
  • Pruebas
  • Monitorización
  • Reproducibilidad

Vamos a repasarlos, brevemente.


Principio 1: Automatización y operativización


La ingeniería de software no deja de ser un proceso productivo, un proceso que, como tal, se ha intentado automatizar aunque es cierto que, sólo hace pocos años se ha conseguido una automatización real, una automatización de momento más centrada en el despliegue y la operación, especialmente con la llegada, no sólo de la filosofía DevOps sino con soluciones para automatizar pruebas y 'pipelines' de despliegue. Una automatización que, sin embargo, y por mor, precisamente, de los grandes modelos de lenguaje, apunta a que se va a poder automatizar también en buena medida en lo relativo a desarrollo.

Los autores mencionados nos hablan de una suerte de tres etapas en automatización. La primera sería esencialmente manual.

En la segunda se introduce el entrenamiento continuo (CT, 'Continuous Training') que se lanza cada vez que es necesario re-entrenar un modelo y donde se automatizan, aparte del entrenamiento propiamente dicho, los pasos de validación de datos y del modelo. En este caso se recurre a herramientas de orquestación de las que los autores citan como ejemplo ZenML. A modo meramente ilustrativo, abajo se puede ver un esquema de las pipelines de ZenML


Pipelines ZenML

En la última fase, sugieren la introducción de los principios de la entrega y despliegue continuos (CI/CD, 'Continuous Integration' / 'Continuous Deployment') tan característicos de DevOps y donde se incluye también la construcción, prueba y despliegue.


Principio 2: Versionado


La creación y control de versiones cae dentro de la muy tradicional actividad de la ingeniería de software tradicional conocida como control de configuración. En esa actividad se gestiona la gestión del software que aporta cada desarrollador, las versiones de componentes, la integración de componentes en versiones o 'releases' consistentes y la construcción ('building') del software de las esas 'releases'.

Para el caso de las soluciones de machine learning o basadas en LLMs, los autores nos sugieren centrarnos en las versiones tanto del código (que es lo que se hace, digamos, 'desde siempre') como de modelos y de datos.

Para la gestión de versiones del código se pueden usar las habituales herramientas de control de configuración, estando muy presente hoy día Git, directamente o a través de hostings como GitHub. Y el control de versiones del modelo no es muy diferente y se apoya en registro de modelos ('model registry').

Sin embargo, para el caso de control de versiones de datos, los autores apuntan la dificultad derivada de la existencia de diferentes tipos de datos. No obstante, existen soluciones de entre las cuales los autores mencionan Comet ML, Weights & Biases y, de nuevo, ZenML.


Principio 3: Experimentos y seguimiento de experimentos


El entrenamiento de modelos es un proceso iterativo y, en buena medida, experimental. En ese proceso experimental se realizan, claro, experimentos, unos experimentos que con frecuencia se llevan a cabo en paralelo y, una vez vistos los resultados, se decide el modelo que realmente 'se da por bueno' y que se traslada a producción

De estos experimentos, también conviene realizar una gestión, un trazado ('tracking')  de los que también conviene realizar un seguimiento y gestión mediante herramientas que permiten el registro de 'logs', la representación visual de las predicciones de los modelos, la comparativa de métricas y la selección final el mejor modelo.

Como apoyo a esta actividad loas autores mencionan herramientas como Comet ML, Weights & Biases, MLFlow y Neptune.


Principio 4: Pruebas


Las pruebas, y su automatización, es uno de los focos desde siempre de la ingeniería de software y de las soluciones de operación de servicios.

Los autores nos recuerdan los diferentes niveles de pruebas (unitarias, integración, sistema, aceptación) y algunas variantes concretas como las pruebas de regresión o las de stress. En ese sentido, 'nada nuevo bajo el sol', es de lo que se habla en ingeniería de software desde hace años y años.

Sin embargo, sí que nos aportan alguna idea original o específica del caso del machine learning, cuando explican la prueba de modelos, donde se añade la dificultad de que los modelos no son deterministas al, contrario de lo que sucede en muchas otras formas de software. Además, los modelos pueden no reportar ningún error y, sin embargo, no estar funcionando adecuadamente y esos malos comportamientos sólo se pueden observar en evaluaciones.

Los autores mencionan algunas técnicas específicas para la prueba de modelos, como

  • Probar la 'forma' de los tensores de entrada y salida del modelo
  • Probar que la pérdida o error ('loss') realmente decrece, como es lo que cabe esperar después de un lote ('bacth') de entrenamiento
  • Probar que el 'pipeline' de entrenamiento funciona tanto con CPUs como con GPUs.
  • etc

Todas las pruebas se realizan en la fase de integración continua (CI, 'Continous Integration').

También nos hablan de la prueba de comportamiento ('behavioral testing') en que se considera al modelo una caja negra y se comprueban sólo entradas y salidas. 


Principio 5: Monitorización


La monitorización es, desde siempre, una actividad fundamental de la operación de sistemas y, en el caso de machine learning no iba a ser menos. En la monitorización se observa, por ejemplo, que los sistemas están disponibles, que los tiempos de respuesta son adecuados, que no está recibiendo ciberataques, que no se producen errores, etc

Los sistemas de información tradicionales, una vez que están probados, depurados y estabilizados, tienden a no producir errores salvo ataques, averías o sobrecargas. Y eso es así porque se trata de sistemas deterministas con sus condicionas y casos de uso bien definidos.

Sin embargo, en el caso de los sistemas basados en modelos de machine learning esto no es así, porque su entorno y los casos de uso no se suelen encontrar completamente cerrados, porque su comportamiento con frecuencia no es determinista y porque el entorno varía. Eso puede llevar, por ejemplo, a que un modelo que funciona inicialmente muy bien, poco a poco vaya degradando sus resultados, sus predicciones y sea necesario un re-entrenamiento.

De cara a la monitorización los sistemas deben producir registros en forma de 'logs' que permitan el análisis, y se deben definir también una serie de métricas, tanto a nivel de sistema (métricas tradicionales) como de modelo (métricas como las conocidas F1, precision y 'recall') que permitan seguir y analizar el comportamiento y levantar alarmas en su caso.

Los autores nos hablan también de las derivas ('drifts') es decir, desviaciones progresivas del comportamiento original y que pueden producirse tanto en las distribuciones de los datos de entrada ('data drift'), distribuciones de las salidas ('target drift'), o en la relación entre ambos ('concept drift'). También aportan ideas sobre cómo tratar estas derivas, aunque ya no profundizaré más en ello.


Principio 6: Reproducibilidad


Finalmente, se menciona la reproducibilidad que quiere decir que las mismas entradas deben producir las mismas salidas. 

En software tradicional, determinista y basado en reglas, se trata de un concepto muy básico, muy evidente y es fundamental en el planteamiento de las pruebas.

Pero ¿Cómo entender esto en el caso de modelos de machine learning y específicamente grandes modelos de lenguaje que siempre decimos que son probabilistas y no deterministas?

Bien, el truco está en que, estrictamente hablando, los modelos no son probabilistas sino que dependen de parámetros concretos, como la semilla ('seed') o la temperatura que es lo que los convierte realmente en probabilistas. Si utilizamos siempre la misma semilla ('seed') y ajustamos adecuadamente otros parámetros como la temperatura, el modelo se convierte en perfectamente determinista y es posible, y deseable, ver que en esas condiciones se mantiene la reproducibilidad..


Conclusiones


Como se puede observar, los sistemas basados en machine learning y, particularmente, los basados en grandes modelos de lenguaje, además de ofrecer unas grandes capacidades, presentan necesidad de ser gestionados y operados de manera profesional.

En esa labor, heredan muchas de las buenas prácticas y herramientas de los sistemas tradicionales y procedentes de la ingeniería de software o de planteamientos como DevOps. 

En buena medida, son aplicables estas mismas buenas prácticas y herramientas, pero también se presentan particularidades y desafíos propios que precisan de nuevas técnicas y herramientas específicas.


lunes, 25 de agosto de 2025

Hablemos de agentes (y XI): tendencias, retos y oportunidades

Para finalizar con esta larga serie de posts dedicados a los agentes, y basados en el libro 'Building Agentic AI systems' de Anjanava Biswas y Wrick Talukdar, vamos a mirar un poco al futuro, identificando tendencias, retos y oportunidades o, en realidad, mostrando brevemente las que estos autores describen al respecto.

Una tarea, en cierto sentido arriesgado porque el campo de los agentes y la 'Agentic AI', y de los modelos generativos en que se basan, se encuentra en medio de tal efervescencia, de tan acelerada evolución, que cualquier tendencia que se apunte puede ser superada en breve o pueden surgir nuevos campos y direcciones relevantes en cualquier momento.

De todas formas, la fuente en que nos basamos esta publicada en 2025, apenas cuatro meses de la escritura de este post, así que podemos darle un voto de confianza en cuanto a actualidad.

Hecha esta observación comencemos por las líneas de investigación y tendencias.


Investigación y tendencias


Los autores se centran, únicamente, en tres tendencias o líneas de trabajo, a saber:


  • Inteligencia multimodal: que la fuente citada marca como tendencia pero algo a lo que, realmente, ya llevamos asistiendo desde hace un tiempo, no específicamente en el campo de los agentes, sino en general e la IA generativa: Sin embargo, probablemente, continúe mejorando e incluyendo nuevas modalidades o nuevas combinaciones y, entre ellas, interpretación y descripción textual de imágenes, creación de imágenes o vídeos a partir de una descripción, respuesta a comandos vía voz o combinación de entradas multimodales (ejemplo, voz y texto) y creación de una salida adecuada.

  • Comprensión lingüística avanzada: De nuevo un área que, aunque es tendencia, esta sujeta ya desde hace un tiempo a una clara mejoría. Quizá, algunos de los elementos más desafiantes puedan ser la incorporación del humor, la especialización en campos específicos (como medicina) y el incremento de la coherencia.

  • Aprendizaje experiencial: enlazando con los avances en aprendizaje por refuerzo y que pueden proporcionar al agente mucha mayor autonomía. Así, se menciona el aprendizaje autónomo de nuevas habilidades, el comportamiento adaptativo basado en aprendizaje a partir de pasados errores, la aplicación de estas ideas en robótica y videojuegos o la mejora en la capacidad de decisión gestionando la incertidumbre y añadiendo también la explicación de las decisiones adoptadas.


Retos


En cuanto a retos que deben abordar y superar los agentes, se nos identifican cuatro que, en concreto, son los siguientes:


  • Manejo eficiente de grandes volúmenes de datos complejos: Un poco, de la misma forma que en analítica ('business intelligence') la disponibilidad de enormes cantidades de datos incluyendo los no estructurados unida a la exigencia de una respuesta más rápida generó la necesidad del big data, en materia de aprendizaje en algoritmos y agentes, la disponibilidad de enormes cantidades de datos complejos de los que se puede aprender, está llevando un poco al límite las capacidades técnicas actuales. Como alternativas a un aprendizaje, digamos 'masivo', se buscan técnicas como el transfer-learning (adaptando modelos ya pre-entrenados), el uso de ejemplo ejemplos ('few-shot prompting') y, quizá lo más interesante como tendencia y que ocupa el siguiente punto: el meta-aprendizaje.

  • Meta-aprendizaje: Se trata, no tanto de hacer que un algoritmo aprenda a realizar tareas concretas sino de que 'aprenda a aprender'. En la referencia citada se menciona en este sentido MAML, 'Model-Agnostic Meta-Learning' un esquema que aborda diversas tareas como reconocimiento de imágenes o procesamiento de lenguaje.

  • Explicabilidad: El problema de la explicabilidad de los algoritmos es ya un tema en cierto sentido clásico. En los casos en que nos ocupan, además, hablamos de decisiones complejas. Aparte de un eventual problema ético o incluso legal de la carencia de explicabilidad, esa falta de explicación también puede impactar en la confianza de los usuarios en los algoritmos o, en este caso, en los agentes,

  • Fiabilidad y seguridad: En general, y como cualquier sistema, se trabaja para que los agentes sean más fiables y seguros, en el sentido no sólo de fallar menos sino, y sobre todo, de reaccionar adecuadamente ante posibles fallos o imprevistos. Eso conlleva la monitorización continua y la construcción de salvaguardas de todo tipo.


Algunas oportunidades


Finalmente, y aunque no se una forma exhaustiva, sino más bien con intenciones ilustrativas, los autores nos proponen algunas oportunidades sobre cómo hacer evolucionar y usar los agentes

Así, nos proponen, por ejemplo, una interacción con humanos más natural que incluya, aparte de mejoras en el tratamiento del lenguaje verbal, el incluir el reconocimiento de gestos o expresiones en la línea de lo que ya se viene haciendo en la disciplina del Human-Robot Interaction de la que ya nos hemos ocupado y seguiremos ocupando en este blog.

Otra idea sería la de los tutores personalizados, es decir, agentes que 'conocen' a su interlocutor y que adaptan a él, a su nivel de conocimientos, habilidades, necesidades y formas de aprender, los materiales y acciones de formación.


Conclusiones


Como decía en el inicio del post, proporcionar un panorama estable de las tendencias, retos y oportunidades en materia de inteligencia artificial, y más aún, de 'Agentic AI' es un desafío casi imposible puesto que apuntamos a un blanco móvil... y que se mueve, además, a gran velocidad.

No obstante, las tendencias, retos y oportunidades mencionados pueden ofrecer una panorámica, cuando menos, ilustrativa e interesante.


*****


Y con este post cierro esta serie dedicada a hablar de agentes. No quiere ello decir, ni muchísimo menos, que no vaya a tratar el tema de agentes en el futuro. Lo haré, estoy segur, y además seguro que en breve, y seguro también que, en abundancia, pero ya será con otras fuentes y otros enfoques.


Artículos de este blog relacionados


viernes, 8 de agosto de 2025

Hablemos de agentes (X): consideraciones éticas y de seguridad

En este décimo post dedicado a los agentes y basados, fundamentalmente, en el contenido del libro 'Building Agentic AI systems' de Anjanava Biswas y Wrick Talukdar, abandonamos parcialmente, sólo parcialmente, la visión técnica, para centrarnos en aspectos éticos y, sobre todo, de seguridad.

No es, en mi opinión, una revisión exhaustiva la que nos ofrecen los autores mencionados, pero sí aporta puntos de vista o llamadas de atención interesantes.

Vamos allá


Algunos riesgos


Los autores identifican los siguientes riesgos en el caso de los agentes de la 'Agentic AI':


  • Ataques adversarios: Se trata de ataques intencionados en que entidades malintencionadas puedan explotar fallos o vulnerabilidades mediante la introducción de entradas o perturbaciones que puedan corromper los datos o las respuestas conduciendo a respuestas incorrectas o, quizá peor, a desvelar información confidencial. Aunque no se trata de un riesgo especifico del campo de los agentes, en éstos se puede agravar ya que los agentes, de manera autónoma, realizan acciones basados en su entendimiento. Si el ataque consigue influir en el proceso de decisión del agente, éste podría ejecutar acciones dañinas. 

  • Sesgos y discriminación: En origen tampoco se trata de un problema específico de los agentes aunque sí de los modelos de lenguaje en que se apoyan. Sin embargo, y según los autores, su tratamiento en el caso de agentes, requiere de medidas adicionales como la auditoría de decisiones o la creación de mecanismos de detección de sesgo en tiempo real o puesta en marcha de 'frameworks' para la gestión de la responsabilidad y rendición de cuentas ante decisiones autónomas.

  • Desinformación y alucinaciones: Es decir, la generación de información convincente pero factualmente incorrecta por parte de los modelos en que se apoyan los agentes. De nuevo, no es un problema específico de los agentes sino de los modelos de lenguaje en que se apoyan, pero la capacidad de los agentes para la decisión y actuación autónomas lo puede acentuar y ello conduce a la exigencia de salvaguardas y mecanismos de seguridad adicionales

  • Violaciones de la privacidad en los datos: Los datos de entrenamiento de los modelos de lenguaje, base de los agentes, se pueden con frecuencia haber basado en datos que pueden incluir datos de carácter personal o lo que se denomina PII ('Personal Identifiable Information'). Aparte de los cuidados a adoptar en otros ámbitos de la inteligencia artificial y de los modelos de lenguaje, en el caso de los agentes puede hacer necesario vigilar que el proceso de decisión del agente no exponga de alguna manera esos datos personales. 

  • Riesgos de propiedad intelectual: Un problema complejo desde un punto de vista ético, legal y de modelo de negocio y aún no realmente resuelto en mi opinión. Y esa complejidad probablemente se incrementa en el caso de agentes autónomos.


Como decía al iniciar el post, no me parece que éstos cinco puntos agoten todos los riesgos posibles, pero nos quedamos en ellos para respetar la fuente original. Por otro lado, tampoco se trata, como se ha comentado en cada uno de ellos, de riesgos específicos de los agentes sino de riesgos generales a la inteligencia artificial o a los grandes modelos de lenguaje pero que cobran mayor relevancia o adoptan formas específicas en el caso de los agentes.


Algunos planteamientos relativos a seguridad


De cara a gestionar y minimizar estos riesgos, los autores identifican seis posibilidades de actuación, éstas sí más específicas aunque no siempre exclusivas de los agentes, a saber: 


  • Fronteras de acciones: Entendidas como reglas que de alguna forma limitan, cuando tiene sentido, la capacidad de actuación externa del agente incluyendo, eventualmente un sistema de permisos.

  • Verificación de decisiones: Incorporación de procesos de validación multi-paso que podrían validar una acción antes de ser ejecutada.

  • Capacidades de vuelta atrás ('rollback'): Es decir, capacidad de deshacer el resultado de acciones.

  • Monitorización en tiempo real: Supervisión continua y en tiempo real para detectar lo antes posible desviaciones, acciones perjudiciales o anomalías.

  • Bucles de realimentación basados en aprendizaje por refuerzo: una realimentación que se plantea sea humana como sucede en los algoritmos de RLHF ('Reinforcement Learning from Human Feedback') y que permite al agente acoplarse mejor a los deseos y exigencias humanas.

  • Métricas de rendimiento: Utilización de métricas que proporcionen una visión 360 grados del rendimiento, incluyendo en esa evaluación también aspectos de consistencia, alineamiento ético, riesgos y adaptabilidad. Los autores mencionan como ejemplo la herramienta Fairness 360º de IBM.


El aprendizaje seguro ('safe learning')


En los planteamientos sobre la securización de los agentes, me ha resultado interesante el concepto de aprendizaje seguro ('safe learning') que se refiere a la capacidad de aprender de la experiencia sin comprometer la seguridad. Esto puede incluir el uso de 'sandbox' que permitan experimentar sin riesgo, pero también la adopción de estrategias como las siguientes:


  • Autonomía progresiva: es decir, que el agente comience su aprendizaje en un entrono muy limitado y, a medida que demuestre fiabilidad, se vayan ampliando sus posibilidades de acción

  • Fronteras de seguridad contextuales: Implementación de medidas de seguridad diferenciadas según el nivel de riesgo de cada acción específica.

  • Validación continua: Evaluación continuada de los patrones de decisión para poder detectar riesgos de manera temprana.

  • Protocolos de emergencia: Definición de procedimientos claros para la intervención humana urgente cuando sea necesario.


Algunos planteamientos relativos a la ética


Finalmente, señalar que los autores también apuntan a algunas formas de mitigar los riesgos de naturaleza ética y apuntan cuatro grandes líneas de acción:


  • Diseño centrado en el ser humano: Es decir, diseño y desarrollo de herramientas que sean comprensibles, accesibles, inclusivas y alineadas con los valores humanos.

  • Responsabilidad y rendición de cuentas: Establecimiento de responsabilidades claras (y que normalmente recaerán en la empresa desarrolladora del agente), documentación del proceso de decisión y mecanismos para la revisión de las implicaciones de carácter ético de la actuación del agente.

  • Privacidad y protección de datos: Aplicación de los principios de la privacidad por diseño incluyendo elementos como la anonimización de datos, uso de tecnologías que preservan la privacidad como el aprendizaje federado o la encriptación homomórfica y, por supuesto, cumplimiento legal y normativo.

  • Involucración de diferentes 'stakeholders': Involucración de diversos actores incluyendo técnicos, eticistas, reguladores y representantes de las comunidades afectadas.


Si los aspectos de seguridad, con mayores connotaciones técnicas resultan algo más concretos, los planteamientos éticos, aunque correctos, se quedan en mi opinión un poco abstractos, un poco faltos de concreción, aunque los puntos anteriores pueden ser un buen punto de partida.

Conclusiones


De lo anterior se puede deducir que, en efecto, en el caso de los agentes de la Agentic AI se ponen de manifiesto una serie de riesgos tanto de seguridad como éticos, la mayor parte de los cuales son meras particularizaciones de riesgos ya presentes en otros ámbitos de la inteligencia artificial. Se han apuntado también vías de solución o al menos de abordaje en diferentes niveles de concreción.


Artículos de este blog relacionados