Architetture

CLaRa: Il Framework di Apple che Rivoluziona la Retrieval-Augmented Generation

Continuous Latent Reasoning: Compressione Semantica 16x-128x e Ottimizzazione End-to-End per Sistemi RAG di Nuova Generazione

Apple ha rilasciato CLaRa (Continuous Latent Reasoning), un framework open-source che rappresenta un cambio di paradigma nei sistemi di Retrieval-Augmented Generation. Sviluppato in collaborazione con l’Università di Edimburgo, CLaRa affronta due problemi fondamentali dei sistemi RAG tradizionali: la gestione di contesti lunghi e la disconnessione tra l’ottimizzazione del retrieval e della generazione.

L’innovazione principale di CLaRa risiede nella sua capacità di comprimere documenti in rappresentazioni latenti continue che servono simultaneamente per il retrieval e la generazione, eliminando la ridondanza computazionale e permettendo l’ottimizzazione end-to-end attraverso un singolo obiettivo di language modeling. I risultati sperimentali dimostrano che CLaRa raggiunge tassi di compressione da 16x a 128x mantenendo, e spesso superando, le performance dei sistemi RAG basati su testo completo.


Il Problema dei Sistemi RAG Tradizionali

Contesto e Motivazione

La Retrieval-Augmented Generation (RAG) è diventata un paradigma fondamentale per potenziare i Large Language Models (LLM) con conoscenza esterna. Integrando evidenze da database documentali, i sistemi RAG mitigano problemi critici come le allucinazioni e l’obsolescenza della conoscenza. Tuttavia, l’architettura tradizionale dei sistemi RAG presenta limitazioni strutturali significative che ne compromettono l’efficienza e l’efficacia.

Le Due Sfide Fondamentali

Sfida 1: Disallineamento Retrieval-Generation. Nei sistemi RAG convenzionali, il retriever seleziona documenti basandosi su similarità superficiale (tipicamente cosine similarity nello spazio degli embedding), mentre il generatore produce risposte senza fornire feedback su quali informazioni siano realmente necessarie. Questa ottimizzazione disgiunta crea un fondamentale “problema del gradiente interrotto”: poiché la selezione dei documenti è discreta, i gradienti dal generatore non possono fluire indietro verso il retriever.

Sfida 2: Inefficienza Computazionale. I dense retriever operano nello spazio degli embedding, mentre i generatori consumano ancora testo grezzo. Questo mismatch architetturale produce:

  • Spazi di rappresentazione inconsistenti che impediscono l’ottimizzazione end-to-end
  • Elaborazione ridondante del testo che aumenta i costi di inferenza e causa overflow del contesto
  • Doppia codifica sia per il retrieval che per la generazione

L’Insight Chiave di CLaRa

CLaRa propone una soluzione elegante: utilizzare rappresentazioni continue condivise per retrieval e generazione. Invece di mantenere embedding separati e testo grezzo, i documenti vengono codificati una sola volta in rappresentazioni compatte di “memory token” che servono entrambi gli scopi. Questa unificazione risolve simultaneamente entrambe le sfide: le rappresentazioni continue rendono il processo di retrieval differenziabile, mentre il training congiunto allinea entrambi i moduli in uno spazio semantico condiviso ottimizzato per il ragionamento.


Architettura di CLaRa

Panoramica del Framework

CLaRa si articola in un processo di training a tre stadi, ciascuno progettato per costruire progressivamente le capacità del sistema. L’architettura si basa su un LLM condiviso (Mistral-7B o Phi-4B negli esperimenti) equipaggiato con multipli adapter LoRA per controllo modulare.

Stadio Nome Obiettivo
Stage 1 SCP - Salient Compressor Pretraining Pretraining del compressore con supervisione QA e parafrasi
Stage 2 Compression Instruction Tuning Fine-tuning per task QA downstream
Stage 3 End-to-End Training (CLaRa) Training congiunto reranker e generatore

Stage 1: Salient Compressor Pretraining (SCP)

Il primo stadio affronta una limitazione critica dei metodi esistenti: gli approcci basati su ricostruzione token-level tendono a sprecare capacità su pattern superficiali piuttosto che preservare semantica di alto livello. SCP introduce un framework di sintesi dati che evidenzia esplicitamente l’informazione saliente attraverso QA e parafrasi.

Pipeline di Sintesi Dati

Utilizzando 2 milioni di documenti Wikipedia-2021, un LLM locale (Qwen-32B) genera tre forme complementari di supervisione:

  • Simple QA: Coppie domanda-risposta che catturano singoli fatti atomici, incoraggiando la ritenzione fattuale fine-grained. Il modello è guidato a estrarre fatti distinti non coperti da domande precedenti.
  • Complex QA: Coppie che integrano multipli fatti, promuovendo ragionamento relazionale e astrazione di alto livello. Il modello connette fatti precedentemente non collegati.
  • Parafrasi: Documenti parafrasati che riordinano struttura delle frasi, alterando la forma superficiale preservando la semantica core. Imparare questo mapping attraverso un bottleneck informativo forza le rappresentazioni a focalizzarsi sulla semantica.

Architettura del Compressore

Dato un documento d_i = {t₁, …, t_m}, vengono aggiunti l memory token learnable (m₁, …, m_l). Gli hidden state dell’ultimo layer dei memory token formano la rappresentazione compressa M_i.

La funzione di loss totale combina due componenti:

  1. Cross-Entropy Loss (L_CE): Supervisiona la generazione di QA/parafrasi dalle rappresentazioni compresse.
  2. MSE Loss (L_MSE): Allinea gli hidden state medi dei token documento e memory, garantendo che le rappresentazioni compresse riflettano fedelmente la semantica originale.
L_total = L_CE + λ·L_MSE

Stage 2: Compression Instruction Tuning

Il compressore pretrainato è general-purpose. Per adattarlo a QA downstream e ottenere un generatore di risposte che comprenda le rappresentazioni compresse, viene eseguito instruction tuning utilizzando dataset di training downstream dove i documenti recuperati sono accoppiati con istruzioni di task. L’output target è generato da un teacher model condizionato sugli stessi documenti e istruzioni.

Stage 3: End-to-End Training

Il Problema del Gradiente Interrotto

Il training congiunto di retrieval e generazione richiede di affrontare un problema fondamentale: la selezione top-k dei documenti è un’operazione discreta che interrompe il flusso dei gradienti. CLaRa risolve questo attraverso un Differentiable Top-k Selector implementato con uno Straight-Through (ST) Estimator.

Straight-Through Estimator per Selezione Top-k

Il meccanismo funziona come una “lente morbida”: preserva il comportamento discreto di retrieval durante l’inferenza permettendo feedback gradienti smooth durante il training. Date le similarità coseno s = [s₁, …, s_D]:

  1. Forward Pass: Selezione hard top-k (Z_hard) - comportamento discreto standard
  2. Backward Pass: Distribuzione softmax (Z_soft) permette ai gradienti di fluire attraverso il retriever
  3. Combinazione: Z = Z_hard + (Z_soft - SG(Z_soft)), dove SG è lo stop-gradient operator

Query Reasoner

Un componente critico di CLaRa è il Query Reasoner (θ_qr), un adapter LoRA inizializzato dal compressore che rappresenta le query nello stesso spazio e con lo stesso numero di memory token delle rappresentazioni documento. Attraverso il training Next-Token Prediction (NTP), il query reasoner impara non solo a codificare l’intent della query ma anche ad anticipare contenuto documentale rilevante.

Analizzando i token decodificati dalle rappresentazioni query tramite logit lens, i ricercatori hanno scoperto che il query reasoner incorpora parole chiave reasoning-relevant che non appaiono nella query originale ma sono presenti nei documenti gold. Questo rappresenta una forma di query expansion implicita operante in spazio latente continuo.

Gradient Coupling Analysis

Gli autori forniscono una giustificazione teorica rigorosa del perché l’apprendimento da NTP produce segnali di learning più forti e stabili. Quando reranking e generazione condividono le stesse rappresentazioni, p(y|x,d) dipende dallo score di retrieval s_xd, permettendo ai gradienti del generatore di fluire nel reranker.

Il gradient coupling produce due segnali di learning complementari:

  1. Il retriever viene premiato per rankare più alto i documenti corretti attraverso allineamento probabilistico
  2. Viene guidato a rappresentare documenti in modo da facilitare il ragionamento del generatore attraverso feedback a livello di rappresentazione

Risultati Sperimentali

Setup Sperimentale

Dataset: Gli esperimenti sono stati condotti su quattro benchmark QA: NQ (Natural Questions), HotpotQA, MuSiQue, e 2WikiMultihopQA, coprendo sia single-hop che multi-hop reasoning.

Modelli Base: Mistral-7B e Phi-4B, con modelli rilasciati su Hugging Face: CLaRa-7B-Base, CLaRa-7B-Instruct, e CLaRa-7B-E2E.

Settings: Due configurazioni di valutazione:

  • Normal: top-5 documenti recuperati da Wikipedia-2021
  • Oracle: documento gold incluso nei top-5, per isolare la qualità della compressione dal noise del retrieval

Performance di Compressione

Tabella: Confronto Performance Compressione (Setting Normal, Mistral-7B)

Modello CR NQ HotpotQA MuSiQue 2Wiki Avg
Mistral-7B w/ BGE 1x 54.58 42.94 8.94 44.24 37.67
LLMLingua-2 4x 47.53 37.05 9.02 44.35 34.49
PISCO 16x 54.39 41.94 10.09 44.88 37.83
CLaRa (Ours) 4x 57.05 45.09 10.34 46.94 39.86
CLaRa (Ours) 16x 55.56 43.72 10.55 46.00 38.96
CLaRa (Ours) 32x 54.64 43.52 10.55 46.58 38.82

CR = Compression Rate

Analisi dei Risultati di Compressione

I risultati rivelano diversi insight significativi:

  • Superamento delle baseline a testo completo: CLaRa supera il baseline Mistral-7B con BGE retrieval che usa documenti non compressi, con guadagni medi del +2.36% su Mistral-7B. Questo suggerisce che le rappresentazioni compresse ben addestrate possono filtrare contenuto irrilevante e focalizzare il generatore sul contesto rilevante per il ragionamento.
  • Robustezza attraverso compression rate: Le performance rimangono stabili da 4x a 32x, con picchi a 16x-32x per la maggior parte dei dataset.
  • Guadagni vs. soft compression SOTA: Rispetto a PISCO (miglior baseline soft compression), CLaRa raggiunge guadagni medi del +1.13% (Normal) e +5.35% (Oracle).

Performance End-to-End

Nella valutazione end-to-end, CLaRa-Mistral-7B con compression ratio 16x supera DRO-Mistral-7B (baseline text-based SOTA):

  • NQ: F1 da 51.01 → 51.41
  • 2Wiki: F1 da 43.65 → 47.18

Nel setting Oracle, le performance F1 superano il 75% sia su NQ che HotpotQA, dimostrando che l’ottimizzazione congiunta sfrutta efficacemente retrieval accurato.

Performance di Retrieval

Un risultato particolarmente sorprendente riguarda la performance di retrieval. CLaRa, trainato solo con supervisione debole dalla loss di generazione (senza label di relevance esplicite), supera retriever supervisionati trainati con label ground-truth.

Su HotpotQA con compression ratio 4x:

  • CLaRa Recall@5: 96.21%
  • BGE-Reranker Recall@5: 85.93%
  • Guadagno: +10.28%

Questo dimostra che la supervisione debole da generazione è sufficiente per apprendere correlazioni semantiche profonde tra query e documenti.


Dettagli Tecnici di Implementazione

Stack Tecnologico

  • Framework: Costruito su OpenRLHF, un framework open-source per RLHF
  • Dipendenze Core: PyTorch >= 2.0, Transformers >= 4.20, DeepSpeed >= 0.18, Flash Attention 2
  • Training Distribuito: Supporto per ZeRO Stage 2, training multi-nodo/multi-GPU
  • Precision: bfloat16 per efficienza di memoria

Struttura del Repository

Il repository GitHub (github.com/apple/ml-clara) è organizzato come segue:

├── scripts/                      # Training e evaluation scripts
│   ├── train_pretraining.sh     # Stage 1
│   ├── train_instruction_tuning.sh  # Stage 2
│   ├── train_stage_end_to_end.sh    # Stage 3
│   └── evaluation_end_to_end.sh
├── openrlhf/
│   ├── models/modeling_clara.py  # Definizione modello
│   ├── datasets/sft_dataset.py   # Gestione dataset
│   └── trainer/sft_trainer.py    # Training utilities
├── evaluation/                   # Framework valutazione
└── example/                      # Dati esempio

Formati Dati

Pretraining (Stage 1)

{
    "data_type": "qa",
    "question": ["Question 1"],
    "answers": ["Answer 1"],
    "docs": ["Document 1"]
}

End-to-End Training (Stage 3)

{
    "question": "Single question text",
    "docs": ["Document 1", "Document 2", "..."],
    "gold_answer": "Reference answer"
}

Parametri Chiave di Training

Parametro Stage 1-2 Stage 3 Note
max_len 2048 1024 Sequence length
learning_rate 1e-4 5e-6 -
compress_rate 4-256x 4-128x Flessibile
doc_max_length 256 256 Per documento
generation_top_k 5 5 Top-k docs

Guida Pratica all’Utilizzo

Installazione

# Creare ambiente conda
conda create -n clara python=3.10 -y
conda activate clara

# Installare dipendenze
pip install -r requirements.txt

# Setup path
export PYTHONPATH=/path/to/clara:$PYTHONPATH

Inferenza con Modelli Pre-trainati

Tre modelli sono disponibili su Hugging Face, ciascuno per un caso d’uso diverso:

Modello Caso d’uso
CLaRa-7B-Base Compressione semantica base
CLaRa-7B-Instruct QA da rappresentazioni compresse
CLaRa-7B-E2E Retrieval + generazione congiunti

Esempio di utilizzo CLaRa-7B-E2E

from transformers import AutoModel

model = AutoModel.from_pretrained(
    "apple/CLaRa-7B-E2E",
    trust_remote_code=True
).to("cuda")

# 20 documenti candidati
documents = [[
    "Document 1 content...",
    "Document 2 content...",
    # ... fino a 20 documenti
]]

questions = ["Your question here"]

# Genera risposta con retrieval e reranking interni
output, topk_indices = model.generate_from_questions(
    questions=questions,
    documents=documents,
    max_new_tokens=64
)

print(f"Answer: {output[0]}")
print(f"Selected document indices: {topk_indices}")

Esempio CLaRa-7B-Instruct (senza reranking interno)

from transformers import AutoModel

model = AutoModel.from_pretrained(
    "apple/CLaRa-7B-Instruct",
    trust_remote_code=True
).to("cuda")

documents = [[
    "Document 1...",
    "Document 2...",
    "Document 3..."
]]

questions = ["Your question here"]

# Genera risposta da documenti già selezionati
output = model.generate_from_text(
    questions=questions,
    documents=documents,
    max_new_tokens=64
)

print(f"Answer: {output[0]}")

Implicazioni e Direzioni Future

Impatto sull’Industria

CLaRa rappresenta un passo significativo verso sistemi RAG più efficienti e accurati. La compressione 16x-128x con performance preservate o migliorate ha implicazioni dirette per:

  • Riduzione dei costi di inferenza: Meno token da processare = meno compute
  • RAG su dispositivi edge: Rappresentazioni compatte abilitano deployment on-device
  • Scaling a knowledge base più grandi: Senza aumentare requisiti di memoria

Limitazioni Riconosciute

  • Generalizzazione del compressore: Attualmente pretrainato solo su Wikipedia; richiede adattamento per altri domini (codice, documenti tecnici, etc.)
  • Scala del modello: Esperimenti limitati a 7B e 4B; modelli più grandi potrebbero produrre rappresentazioni di qualità superiore
  • Ragionamento su rappresentazioni compresse: Il paper non esplora integrazione con framework agentic o multi-hop RAG avanzati

Direzioni Future

Gli autori identificano diverse direzioni promettenti:

  • Pretraining domain-adaptive con corpora diversificati (es. codice, documenti legali)
  • Integrazione in framework RAG reasoning-oriented come Search-R1
  • Estensione a tool learning e sistemi multi-modali
  • Collegamento tra comprensione implicita e ragionamento implicito (latent reasoning)

Conclusioni

CLaRa rappresenta un avanzamento fondamentale nell’architettura dei sistemi RAG. Unificando retrieval e generazione in uno spazio di rappresentazione continuo condiviso, risolve simultaneamente:

  1. Il problema dell’ottimizzazione: Abilitando learning end-to-end attraverso selezione differenziabile
  2. Il problema dell’efficienza: Eliminando codifica ridondante e riducendo la lunghezza del contesto

I risultati empirici validano questa scelta architetturale: raggiungere performance di reranking state-of-the-art senza supervisione di relevance esplicita dimostra che la qualità della generazione fornisce segnale di learning sufficiente per il retrieval. La compressione semantica 16x-128x con performance preservate suggerisce che il ragionamento efficace nei sistemi RAG potrebbe non dipendere da contesti lunghi, ma piuttosto da uno spazio di ragionamento latente unificato.

Per la comunità AI italiana e per aziende come Algoretico, CLaRa apre opportunità concrete: dalla riduzione dei costi infrastrutturali all’abilitazione di applicazioni RAG più sofisticate in contesti enterprise. Il codice open-source e i modelli disponibili su Hugging Face rendono questa tecnologia immediatamente accessibile per sperimentazione e deployment.


Riferimenti

  1. He, J., Bai, R.H., Williamson, S., Pan, J.Z., Jaitly, N., & Zhang, Y. (2025). CLaRa: Bridging Retrieval and Generation with Continuous Latent Reasoning. arXiv:2511.18659.

  2. Repository GitHub: https://github.com/apple/ml-clara

  3. Modelli Hugging Face:

  4. Lewis, P., et al. (2020). Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks. NeurIPS 2020.

  5. Louis, A., et al. (2025). PISCO: Memory Token Compression for RAG. ACL 2025.

Scritto da

Michele Laurelli

Imprenditore, ricercatore e docente

Fondatore di Algoretico e di altre aziende che progettano modelli e sistemi di intelligenza artificiale, per uso proprio e per chi vuole metterla al lavoro. Fa ricerca su architetture e AI privata, insegna all'università e ha scritto libri per raccontare l'intelligenza artificiale a tutti.

Vuoi portare queste idee nella tua azienda?

Progetto e costruisco sistemi di intelligenza artificiale, per le mie aziende e per chi vuole metterla al lavoro.

Parliamone

Continua a leggere