Compound AI Systems
Les systèmes d’IA composites résolvent des tâches à l’aide de plusieurs composants en interaction, comme des modèles, des systèmes de récupération, des outils et des règles, plutôt qu’avec un seul appel de modèle.
Un système d’IA composite est une application qui résout une tâche au moyen de plusieurs composants qui interagissent, comme plusieurs appels à des modèles, des systèmes de recherche, des outils externes, des règles et une validation humaine, plutôt qu’avec un seul appel à un seul modèle. Matei Zaharia et ses coauteurs de Berkeley, Stanford, Databricks et d’autres groupes ont nommé cette tendance dans un article de Berkeley AI Research publié en février 2024. Ils soutenaient que les résultats de pointe provenaient de plus en plus de systèmes plutôt que de modèles monolithiques. Parmi leurs exemples figurent AlphaCode 2, qui génère jusqu’à un million de programmes candidats avec des grands modèles de langage (LLM), puis les filtre et les évalue ; AlphaGeometry, qui associe un LLM à un moteur de déduction symbolique pour résoudre des problèmes de géométrie olympique ; et ChatGPT, dont le modèle décide quand consulter le Web, exécuter Python ou générer une image. Le même article cite des données Databricks selon lesquelles 60 % des applications LLM utilisent une forme de génération augmentée par récupération (RAG) et 30 % utilisent des chaînes à plusieurs étapes.
Pourquoi créer des systèmes plutôt que des modèles plus grands#
- Amélioration de la qualité à moindre coût : l’échantillonnage, le vote et la vérification peuvent augmenter la précision à moindre coût que l’entraînement d’un modèle plus grand. Google a rapporté un score de 90,04 % pour Gemini Ultra sur le benchmark MMLU avec CoT@32 : le modèle échantillonne 32 réponses de chaîne de pensée et renvoie la réponse majoritaire lorsque suffisamment de réponses concordent, contre 86,4 % pour GPT-4 avec cinq exemples de prompt.
- Données à jour : les connaissances d’un modèle s’arrêtent à la date limite de son entraînement ; un système de recherche ou une base de données vectorielle fournit, au moment de la requête, des informations récentes, privées ou soumises à un contrôle d’accès.
- Contrôle et confiance : les filtres, les garde-fous de l’IA, les citations et les étapes de vérification facilitent la maîtrise du comportement, plutôt que de simplement demander à un modèle de se conformer et d’espérer qu’il le fasse.
- Objectifs de coût : le routage de modèles envoie les requêtes simples vers de petits modèles et les requêtes difficiles vers de grands modèles, afin que chaque application choisisse son propre compromis entre qualité, latence et prix.
Un même parcours de requête peut réunir ces quatre idées :
Systèmes composites en vision par ordinateur#
Les applications de vision en production sont presque toujours composites : un détecteur repère les objets, un système de suivi les associe d’une image à l’autre, des règles géométriques transforment les positions en événements, puis le stockage et les alertes traitent ces événements. Ultralytics Solutions regroupe plusieurs systèmes de ce type autour d’un modèle YOLO26 : le comptage d’objets combine la détection, le suivi multi-objets et un test de ligne ou de région qui compte chaque identifiant de suivi une seule fois lorsqu’il entre ou sort ; le système d’alarme de sécurité envoie un e-mail avec une image lorsque le nombre de détections visibles atteint un seuil défini. Les pipelines plus petits suivent le même principe : un modèle produit des observations structurées sur lesquelles une logique distincte agit :
from ultralytics import YOLO
# Composant de perception : le détecteur transforme les pixels en observations structurées
model = YOLO("yolo26n.pt")
results = model("https://ultralytics.com/images/bus.jpg")
detections = results[0].summary()
# Composant de politique : des règles déterministes acceptent les détections fiables et signalent les détections incertaines
accepted = [d["name"] for d in detections if d["confidence"] >= 0.5]
uncertain = [d["name"] for d in detections if d["confidence"] < 0.5]
# Composant de routage : les résultats incertains sont transmis à une personne plutôt qu’à l’automatisation en aval
action = "human review" if uncertain else "auto-approve"
print({"accepted": accepted, "uncertain": uncertain, "action": action})La décision affichée provient de règles qu’un réviseur peut lire et modifier sans réentraîner le modèle. L’étiquetage des images incertaines qu’elles lui transmettent ajoute des données d’entraînement au modèle suivant dans une boucle d’apprentissage actif.
Créer et exploiter des systèmes composites#
Les erreurs se multiplient d’un composant à l’autre : si trois étapes sont chacune correctes 90 % du temps, le résultat de bout en bout n’est correct qu’environ 73 % du temps. Les équipes mesurent donc le système entier sur une suite de tâches fixe, plutôt que chaque partie isolément. Les composants qui ne peuvent pas être entraînés par descente de gradient, comme les moteurs de recherche et les règles, nécessitent d’autres méthodes d’optimisation. Des frameworks comme DSPy ajustent chaque prompt d’un pipeline en fonction d’une seule mesure de bout en bout. En production, les traces d’observabilité suivent chaque requête à travers chaque appel de modèle et chaque outil, et les pratiques d’exploitation du machine learning (MLOps), telles que le versionnement et la surveillance des modèles, s’appliquent à chaque composant, car une mise à jour peut modifier silencieusement les entrées du composant suivant.
IA composite et termes connexes#
- Ensembles de modèles : combinent les prédictions de plusieurs modèles pour une même entrée en une seule sortie ; un ensemble est donc un type de composant qu’un système composite peut intégrer.
- Flux de travail agentiques : systèmes composites dans lesquels un modèle décide du flux de contrôle à l’exécution, en choisissant les outils et les étapes. De nombreux systèmes composites utilisent des pipelines fixes qui ne font pas appel à ce type de décision.
- Mélange d’experts (MoE) : achemine les jetons entre des sous-réseaux experts d’un seul modèle, dont les composants sont entraînés ensemble. Les systèmes composites acheminent les requêtes entre des composants développés et déployés séparément.










