Compound AI Systems
Los sistemas de IA compuestos resuelven tareas con varios componentes que interactúan, como modelos, recuperadores, herramientas y reglas, en lugar de una sola llamada a un modelo.
Un sistema compuesto de IA es una aplicación que resuelve una tarea con varios componentes que interactúan, como múltiples llamadas a modelos, sistemas de recuperación, herramientas externas, reglas y revisión humana, en lugar de una sola llamada a un modelo. Matei Zaharia y sus coautores de Berkeley, Stanford, Databricks y otros grupos dieron nombre a esta tendencia en una publicación de Berkeley AI Research de febrero de 2024, donde sostenían que los resultados más avanzados procedían cada vez más de sistemas y no de modelos monolíticos. Entre sus ejemplos figuran AlphaCode 2, que genera hasta un millón de programas candidatos con modelos de lenguaje grandes (LLM) y luego los filtra y puntúa; AlphaGeometry, que combina un LLM con un motor de deducción simbólico para resolver problemas de geometría de olimpiada; y ChatGPT, cuyo modelo decide cuándo navegar por la web, ejecutar Python o generar una imagen. La misma publicación cita datos de Databricks según los cuales el 60 % de las aplicaciones de LLM usan alguna forma de generación aumentada por recuperación (RAG) y el 30 % utiliza cadenas de varios pasos.
Por qué crear sistemas en lugar de modelos más grandes#
- Mejoras de calidad más baratas: El muestreo, la votación y la verificación pueden aumentar la precisión por menos dinero que entrenar un modelo más grande. Google informó de que Gemini Ultra obtuvo un 90,04 % en el benchmark MMLU con CoT@32, que muestrea 32 respuestas de cadena de pensamiento y devuelve la respuesta mayoritaria cuando hay suficiente consenso, frente al 86,4 % de GPT-4 con cinco ejemplos en la instrucción.
- Datos actualizados: El conocimiento de un modelo se limita a la fecha de corte de su entrenamiento, mientras que un sistema de recuperación o una base de datos vectorial proporciona información reciente, privada o con acceso controlado en el momento de la consulta.
- Control y confianza: Los filtros, las barreras de seguridad de IA, las citas y los pasos de verificación facilitan más la limitación del comportamiento que limitarse a dar instrucciones a un modelo y esperar que las siga.
- Objetivos de coste: El enrutamiento de modelos envía las solicitudes sencillas a modelos pequeños y las complejas a modelos grandes, de modo que cada aplicación puede elegir su propio equilibrio entre calidad, latencia y precio.
Una única ruta de solicitud puede combinar las cuatro ideas:
Sistemas compuestos en visión artificial#
Las aplicaciones de visión en producción suelen ser compuestas por defecto: un detector encuentra objetos, un rastreador los vincula entre fotogramas, unas reglas geométricas convierten las posiciones en eventos, y el almacenamiento y las alertas actúan en función de esos eventos. Ultralytics Solutions incluye varios sistemas de este tipo basados en un modelo YOLO26: el recuento de objetos combina detección, seguimiento de varios objetos y una comprobación de línea o región que cuenta cada ID de seguimiento una sola vez al entrar o salir; y el sistema de alarma de seguridad envía un correo electrónico con un fotograma cuando el número de detecciones en pantalla alcanza un umbral definido. Las canalizaciones más pequeñas siguen el mismo patrón: un modelo genera observaciones estructuradas sobre las que actúa una lógica independiente:
from ultralytics import YOLO
# Componente de percepción: el detector convierte los píxeles en observaciones estructuradas
model = YOLO("yolo26n.pt")
results = model("https://ultralytics.com/images/bus.jpg")
detections = results[0].summary()
# Componente de política: las reglas deterministas aceptan las detecciones con confianza y señalan las que generan dudas
accepted = [d["name"] for d in detections if d["confidence"] >= 0.5]
uncertain = [d["name"] for d in detections if d["confidence"] < 0.5]
# Componente de enrutamiento: los resultados dudosos se envían a una persona en lugar de a la automatización posterior
action = "human review" if uncertain else "auto-approve"
print({"accepted": accepted, "uncertain": uncertain, "action": action})La decisión impresa procede de reglas que una persona revisora puede leer y modificar sin volver a entrenar el modelo; además, etiquetar las imágenes dudosas que se le envían aporta datos de entrenamiento al siguiente modelo en un ciclo de aprendizaje activo.
Creación y operación de sistemas compuestos#
Los errores se multiplican entre componentes: tres etapas que aciertan cada una el 90 % de las veces solo producen un resultado correcto de extremo a extremo aproximadamente el 73 % de las veces. Por eso, los equipos miden el sistema completo con un conjunto fijo de tareas, en lugar de evaluar cada parte por separado. Los componentes que no se pueden entrenar con gradientes, como los motores de búsqueda y las reglas, necesitan otros optimizadores; marcos como DSPy ajustan cada instrucción de una canalización según una única métrica de extremo a extremo. En producción, las trazas de observabilidad siguen cada solicitud a través de todas las llamadas a modelos y herramientas, y las prácticas de operaciones de aprendizaje automático (MLOps), como el control de versiones y la supervisión de modelos, se aplican a cada componente, ya que una actualización de uno puede cambiar silenciosamente las entradas del siguiente.
IA compuesta y términos relacionados#
- Ensamblados de modelos: Combinan las predicciones de varios modelos para una misma entrada en una única salida, por lo que un ensamblado es un patrón que puede formar parte de un sistema compuesto.
- Flujos de trabajo agénticos: Sistemas compuestos en los que un modelo decide el flujo de control en tiempo de ejecución y elige las herramientas y los pasos. Muchos sistemas compuestos usan canalizaciones fijas sin este tipo de decisiones.
- Mezcla de expertos (MoE): Dirige los tokens a subredes expertas dentro de un único modelo cuyas partes se entrenan juntas. Los sistemas compuestos dirigen las solicitudes a componentes creados e implementados por separado.










