Compound AI Systems
I sistemi di IA composti risolvono compiti tramite diversi componenti che interagiscono, come modelli, sistemi di recupero, strumenti e regole, anziché con una sola chiamata a un modello.
Un sistema di IA composto è un'applicazione che risolve un'attività con diversi componenti interagenti, come più chiamate a modelli, sistemi di recupero, strumenti esterni, regole e revisione umana, invece di una singola chiamata a un solo modello. Matei Zaharia e coautori di Berkeley, Stanford, Databricks e altri gruppi hanno dato un nome a questa tendenza in un articolo di Berkeley AI Research del febbraio 2024, sostenendo che i risultati all'avanguardia provenivano sempre più dai sistemi, anziché da modelli monolitici. Tra gli esempi citati figurano AlphaCode 2, che genera fino a un milione di programmi candidati con modelli linguistici di grandi dimensioni (LLM) e poi li filtra e valuta; AlphaGeometry, che abbina un LLM a un motore di deduzione simbolica per risolvere problemi di geometria delle olimpiadi; e ChatGPT, il cui modello decide quando navigare sul web, eseguire Python o generare un'immagine. Lo stesso articolo cita dati di Databricks secondo cui il 60% delle applicazioni LLM usa una qualche forma di generazione aumentata dal recupero (RAG) e il 30% usa catene a più passaggi.
Perché creare sistemi invece di modelli più grandi#
- Miglioramenti della qualità a minor costo: il campionamento, il voto e la verifica possono aumentare l'accuratezza a un costo inferiore rispetto all'addestramento di un modello più grande. Google ha riportato un risultato del 90,04% per Gemini Ultra sul benchmark MMLU con CoT@32, che campiona 32 risposte di catena di pensiero e restituisce quella di maggioranza quando un numero sufficiente di risposte concorda, contro l'86,4% di GPT-4 con prompting a cinque esempi.
- Dati aggiornati: la conoscenza di un modello si ferma al limite temporale dei dati di addestramento; un sistema di recupero o un database vettoriale fornisce al momento della query informazioni aggiornate, private o soggette a controllo degli accessi.
- Controllo e affidabilità: filtri, guardrail per l'IA, citazioni e passaggi di verifica rendono più facile vincolare il comportamento rispetto a quando si invia un prompt a un modello e si spera che lo rispetti.
- Obiettivi di costo: l'instradamento dei modelli invia le richieste semplici ai modelli piccoli e quelle difficili ai modelli grandi, così ogni applicazione può scegliere il proprio compromesso tra qualità, latenza e prezzo.
Un singolo percorso di richiesta può combinare tutte e quattro le idee:
Sistemi composti nella computer vision#
In produzione, le applicazioni di visione sono quasi sempre composte: un rilevatore individua gli oggetti, un tracker li collega tra i fotogrammi, le regole geometriche trasformano le posizioni in eventi e i sistemi di archiviazione e di avviso gestiscono gli eventi. Ultralytics Solutions raccoglie diversi sistemi di questo tipo basati su un modello YOLO26: il conteggio degli oggetti combina rilevamento, tracciamento multi-oggetto e un controllo di linea o regione che conteggia ogni ID di traccia una sola volta quando entra o esce; il sistema di allarme di sicurezza invia un fotogramma via email quando il numero di rilevamenti nell'inquadratura raggiunge una soglia impostata. Le pipeline più piccole seguono lo stesso schema: un modello produce osservazioni strutturate su cui agisce una logica separata:
from ultralytics import YOLO
# Componente di percezione: il rilevatore trasforma i pixel in osservazioni strutturate
model = YOLO("yolo26n.pt")
results = model("https://ultralytics.com/images/bus.jpg")
detections = results[0].summary()
# Componente di policy: regole deterministiche accettano i rilevamenti attendibili e segnalano quelli incerti
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 di instradamento: i risultati incerti vengono inviati a una persona anziché all'automazione a valle
action = "human review" if uncertain else "auto-approve"
print({"accepted": accepted, "uncertain": uncertain, "action": action})La decisione stampata deriva da regole che un revisore può leggere e modificare senza riaddestrare il modello; inoltre, etichettare le immagini incerte inviate alle persone aggiunge dati di addestramento al modello successivo in un ciclo di apprendimento attivo.
Creazione e gestione dei sistemi composti#
Gli errori si moltiplicano tra i componenti: tre fasi corrette ciascuna nel 90% dei casi producono un risultato corretto end-to-end solo nel 73% circa dei casi; per questo i team valutano l'intero sistema su una suite di attività fissa, anziché ogni componente da solo. I componenti che non possono essere addestrati con il gradiente, come i motori di ricerca e le regole, richiedono altri metodi di ottimizzazione; framework come DSPy ottimizzano ogni prompt di una pipeline rispetto a una singola metrica end-to-end. In produzione, le tracce di osservabilità seguono ogni richiesta attraverso tutte le chiamate ai modelli e gli strumenti, e le pratiche di operazioni di machine learning (MLOps), come il versionamento e il monitoraggio dei modelli, si applicano a ogni componente, poiché un aggiornamento di un componente può modificare silenziosamente gli input del successivo.
IA composta e termini correlati#
- Ensemble di modelli: combinano in un unico output le predizioni di diversi modelli sullo stesso input; un ensemble è quindi uno degli schemi che un sistema composto può includere.
- Workflow agentici: sistemi composti in cui un modello decide il flusso di controllo durante l'esecuzione, scegliendo strumenti e passaggi. Molti sistemi composti usano pipeline fisse, senza questo tipo di decisioni.
- Miscela di esperti (MoE): instrada i token tra sottoreti esperte all'interno di un singolo modello, le cui parti vengono addestrate insieme. I sistemi composti instradano le richieste tra componenti realizzati e distribuiti separatamente.










