Sistemas de IA compuestos
¿Qué son los sistemas de IA compuestos?
Los sistemas de IA compuestos, tal como los define el blog de Berkeley AI Research (BAIR), son sistemas que abordan tareas de IA combinando varios componentes que interactúan. Estos componentes pueden incluir varias llamadas a modelos, sistemas de recuperación o herramientas externas. Por ejemplo, las aplicaciones de generación aumentada por recuperación (RAG) son sistemas de IA compuestos, ya que combinan al menos un modelo y un sistema de recuperación de datos. Los sistemas de IA compuestos aprovechan las fortalezas de varios modelos de IA, herramientas y flujos de trabajo para mejorar el rendimiento, la versatilidad y la reutilización en comparación con el uso exclusivo de modelos individuales.

Cada vez más, muchos de los nuevos resultados de IA provienen de sistemas compuestos (Fuente)
Los desarrolladores están construyendo cada vez más sistemas de IA compuestos para abordar sus tareas de IA más desafiantes. Estos sistemas suelen superar a los modelos por sí solos, pero como comunidad, todavía estamos determinando la mejor manera de diseñar estos sistemas y los componentes que los integran.
¿Por qué construir sistemas de IA compuestos?
- Algunas tareas son más fáciles de mejorar a través del diseño del sistema: el uso de modelos más grandes y capaces puede mejorar las aplicaciones de IA, pero suele haber un punto de rendimientos decrecientes. Además, mejorar o personalizar un modelo mediante el aprendizaje o ajustes finos puede resultar lento y costoso. La integración de otros modelos o herramientas en un sistema compuesto puede mejorar la calidad de la aplicación más allá de lo que se puede lograr con un solo modelo, sin importar cuán capaz sea.
- Los sistemas pueden ser dinámicos: los modelos individuales están fundamentalmente limitados por sus datos de entrenamiento. Aprenden un cierto conjunto de información y comportamientos y carecen de funcionalidades, como la capacidad de buscar fuentes de datos externas o aplicar controles de acceso. Un enfoque de sistemas puede agregar recursos externos como bases de datos, intérpretes de código, sistemas de permisos y más, haciendo que los sistemas compuestos de IA sean mucho más dinámicos y flexibles que los modelos individuales.
- Mejor control y confianza: puede ser un desafío lograr que los modelos individuales devuelvan información fáctica de manera confiable o resultados formateados de manera consistente. Esto puede requerir indicaciones cuidadosas, varios ejemplos, ajustes finos o incluso soluciones alternativas, como sugerir a un LLM que obtener una buena respuesta es una cuestión de vida o muerte. La orquestación de LLM con otras herramientas y fuentes de datos puede hacer que los sistemas de IA sean más confiables y seguros al suministrarles información precisa de fuentes externas o mediante el uso de herramientas para aplicar mejor las restricciones de formato de salida.
- Más opciones de costo-calidad: los modelos individuales generalmente ofrecen un nivel fijo de calidad a un costo fijo, pero las relaciones costo-calidad disponibles a través de modelos individuales no son adecuadas para todos los casos de uso. La capacidad de integrar LLM con herramientas externas ofrece una mayor flexibilidad en las opciones de costo-calidad disponibles. Por ejemplo, un modelo pequeño y cuidadosamente ajustado combinado con varias heurísticas de búsqueda podría dar buenos resultados a un costo menor que los modelos más grandes y capaces. Por otro lado, con un mayor presupuesto, incorporar herramientas externas y fuentes de datos puede mejorar el rendimiento incluso de los modelos más grandes y capaces.
¿Cómo se construyen sistemas de IA compuestos efectivos?
Los sistemas de IA compuestos siguen siendo una categoría de aplicación emergente, por lo que las mejores prácticas que guían su desarrollo y uso continúan evolucionando. Existen muchos enfoques diferentes para los sistemas de IA compuestos, cada uno con distintos beneficios y compensaciones. Por ejemplo:
- Lógica de control: en un sistema de IA compuesto, una base de código que define la lógica de control puede llamar a un modelo para realizar tareas específicas bajo condiciones específicas, lo que ofrece la fiabilidad del flujo de control programático sin dejar de aprovechar la expresividad de los LLM. Otros sistemas pueden utilizar un LLM para el flujo de control y ofrecer mayor flexibilidad al interpretar y actuar sobre las entradas, con la posible pérdida de fiabilidad. Las herramientas como Databricks External Models pueden ayudar con la lógica de control al simplificar el proceso de dirigir distintas partes de una aplicación a diferentes modelos.
- Dónde invertir tiempo y recursos: Al desarrollar sistemas de IA compuestos, no siempre es obvio si invertir más tiempo y recursos en mejorar el rendimiento del modelo o modelos empleados en el sistema o en mejorar otros aspectos del sistema. Ajustar un modelo o incluso cambiar a un modelo más capaz en general podría mejorar el rendimiento de un sistema de IA compuesto, pero también podría mejorar un sistema de recuperación de datos u otros componentes.
- Medición y optimización: la evaluación es importante en cualquier sistema que involucre modelos de IA, pero el enfoque a seguir es muy específico de la aplicación. En algunos sistemas, una métrica discreta que evalúe el rendimiento de extremo a extremo podría ser adecuada, mientras que en otros, podría tener más sentido evaluar diferentes componentes individualmente. Por ejemplo, en una aplicación RAG, a menudo es necesario evaluar los componentes de recuperación y generación por separado. MLflow ofrece un enfoque flexible para la evaluación que puede adaptarse a muchos aspectos diferentes de los sistemas de IA compuestos, incluida la recuperación y la generación.
A pesar de los enfoques que cambian rápidamente, hay un par de principios clave para construir sistemas de IA compuestos efectivos:
- Desarrolla un sistema de evaluación sólido: los sistemas de IA compuestos tienden a involucrar varios componentes que interactúan, y cambiar cualquiera de ellos puede afectar el rendimiento de todo el sistema. Es esencial encontrar una forma eficaz de medir el rendimiento del sistema y establecer la infraestructura necesaria para registrar, acceder y actuar a partir de estas evaluaciones.
- Experimente con diferentes enfoques: como se señaló anteriormente, existen pocas mejores prácticas establecidas para construir sistemas de IA compuestos. Es muy probable que sea necesario experimentar con diferentes formas de integrar los modelos de IA y otras herramientas, tanto en lo que respecta a la lógica de control general de la aplicación como a los componentes individuales. La modularidad ayuda con la experimentación: es más fácil experimentar con una aplicación que admite el intercambio de diferentes modelos, sistemas de recuperación de datos, herramientas, etc. MLflow ofrece un conjunto de herramientas para la evaluación y la experimentación, lo que lo hace especialmente útil para desarrollar sistemas de IA compuestos.
¿Cuáles son los desafíos clave en la construcción de sistemas de IA compuestos?
Los sistemas de IA compuestos presentan varios desafíos clave de desarrollo en comparación con los modelos de IA solos:
- Mayor espacio de diseño: los sistemas de IA compuestos combinan uno o más modelos de IA con herramientas como recuperadores o intérpretes de código, fuentes de datos, bibliotecas de código y más. Por lo general, hay varias opciones para cada uno de estos componentes. El desarrollo de una aplicación RAG, por ejemplo, generalmente requiere elegir al menos qué modelos usar para incrustaciones y generación de texto, qué fuente o fuentes de datos usar, dónde almacenar los datos y qué sistema de recuperación usar. Sin mejores prácticas claras, los desarrolladores suelen tener que invertir un esfuerzo significativo para explorar este vasto espacio de diseño y encontrar una solución que funcione.
- Co-optimización de componentes del sistema: los modelos de IA suelen necesitar una optimización para funcionar bien con herramientas específicas y viceversa. Cambiar un componente de un sistema de IA compuesto puede cambiar el comportamiento de todo el sistema de maneras inesperadas, y puede ser un desafío hacer que todos los componentes funcionen bien juntos. Por ejemplo, en un sistema RAG, un LLM puede funcionar muy bien con un sistema de recuperación determinado, mientras que otro no.
- Operaciones complejas: los LLM por sí solos ya pueden suponer un reto en cuanto a su funcionamiento, supervisión y seguridad. Combinarlos con otros modelos y herramientas de IA puede agravar estos desafíos. El uso de estos sistemas compuestos puede requerir que los desarrolladores combinen herramientas y prácticas de MLOps y DataOps de maneras únicas para monitorear y depurar aplicaciones. Databricks Lakehouse Monitoring puede proporcionar una excelente visibilidad de los complejos datos y las pipelines de modelado en sistemas compuestos de IA.
