osFoundry / Platform
Diversità MMR
Maximal Marginal Relevance sceglie risultati che coprono angolazioni diverse, non solo il match più alto.
Che cos’è
La diversità MMR è una fase di retrieval di osFoundry che applica Maximal Marginal Relevance quando la tua knowledge base viene interrogata. L'ordinamento per sola rilevanza ha un difetto ben noto: i primi risultati sono spesso quasi duplicati tra loro, perché corrispondono tutti alla query nello stesso modo. Se cinque chunk ripetono lo stesso paragrafo, quattro sprecano spazio nella finestra di contesto e il modello non vede mai la seconda o la terza angolazione della domanda. MMR risolve questo problema assegnando a ogni candidato un punteggio basato sia sulla sua rilevanza rispetto alla query sia sulla sua dissomiglianza dai chunk già selezionati, per poi scegliere risultati che siano rilevanti *e* tra loro diversi.
Dentro osFoundry, MMR è una delle fasi della pipeline RAG personalizzata che costruisci per ciascun Path di chat in osStudio. Una query passa prima per il retrieval ibrido (ricerca per embedding più ricerca per parole chiave BM25); puoi poi aggiungere fasi di filtro e reranking, e collocare MMR dopo di esse affinché diversifichi un insieme di candidati già di alta qualità. La fase espone i consueti controlli di MMR: un parametro lambda che scorre tra pura rilevanza e pura diversità, la dimensione del pool di candidati da cui seleziona e quanti chunk invia al prompt. Poiché ogni fase è una configurazione versionata e validata da JSON Schema, un Path di chat di codice e un Path di customer success possono diversificare in modo diverso, e puoi annullare una modifica senza toccare il codice sorgente.
Questo conta soprattutto per domande ampie o ambigue e per corpora dal vocabolario che si sovrappone, dove i primi risultati per embedding si addensano strettamente. MMR cede un po' di rilevanza grezza sul top-1 in cambio di copertura, il che di solito produce risposte meglio fondate, perché il modello vede l'ampiezza di ciò che la knowledge base contiene davvero. Resta coerente con l'impostazione BYOK e local-first di osFoundry: retrieval e diversificazione girano nel tuo workspace, gli embedding passano da un proxy Voyage gestito o dalla tua chiave, e nessuna tariffa per postazione blocca la pipeline.
Funzionalità principali
- Aggiunge alla tua pipeline di retrieval una fase MMR (Maximal Marginal Relevance) che bilancia rilevanza e ridondanza, così che i primi risultati coprano angolazioni diverse invece di riformulare il match migliore
- Configura MMR per Path in osStudio: imposta il compromesso lambda tra rilevanza e diversità, la dimensione del pool di candidati e quanti chunk finali raggiungono il prompt
- Si concatena dopo le fasi di retrieval, filtro e reranking, così MMR diversifica un insieme già ordinato anziché risultati grezzi per embedding
- Opera sui risultati del retrieval ibrido embedding + BM25, con gli embedding Voyage disponibili tramite un proxy gestito o le tue chiavi in BYOK
- Ogni configurazione MMR è una config osStudio versionata e validata da JSON Schema, con rollback, così superfici di chat diverse diversificano in modo diverso senza modifiche al codice sorgente
Casi d’uso
- Support engineer: una domanda di troubleshooting ampia restituisce cinque chunk quasi identici; MMR riempie gli slot con cause distinte perché la risposta copra più di una modalità di guasto
- Ricercatore: interrogando un ampio insieme di documenti in cui i primi risultati per embedding si addensano su una sola sezione; MMR fa emergere passaggi da parti diverse del corpus per una sintesi più completa
- Costruttore di pipeline in osStudio: regola il lambda di MMR su un Path di chat di codice per una rilevanza stretta lasciando invece un Path di discovery più diversificato, tutto come configurazione versionata con rollback
Domande frequenti
Che cos'è Maximal Marginal Relevance (MMR) e perché aggiungerlo al RAG?
MMR è un metodo di selezione che ordina i passaggi candidati in base alla rilevanza rispetto alla query, penalizzando al contempo la somiglianza con i passaggi già scelti. Lo aggiungi quando i tuoi primi risultati di retrieval tendono a essere quasi duplicati: senza MMR, una domanda ampia può restituire cinque chunk che dicono la stessa cosa, e il modello vede una sola angolazione. MMR mantiene il chunk più rilevante ma riempie gli slot rimanenti con passaggi distinti e complementari.
Come attivo la diversità MMR in osFoundry?
MMR è una fase della pipeline RAG personalizzata che configuri per ciascun Path di chat in osStudio. Aggiungi la fase MMR dopo le fasi di retrieval, filtro e reranking opzionale, poi imposti il suo lambda (il compromesso tra rilevanza e diversità), il pool di candidati da cui attinge e il numero di chunk finali. La config è validata da JSON Schema e versionata, così puoi regolarla, testarla su un Path e annullarla se serve.
In che cosa MMR è diverso da un reranker?
Un reranker ripunteggia i candidati unicamente in base a quanto ciascuno corrisponde alla query, migliorando la precisione del top-k. MMR ottimizza un obiettivo diverso: massimizza la rilevanza minimizzando la ridondanza all'interno dell'insieme selezionato. Sono complementari: in osFoundry di solito fai prima il reranking per ottenere i candidati che corrispondono meglio, poi applichi MMR per garantire che i chunk che passano coprano aspetti diversi invece di ripetere l'unico match migliore.