osFoundry / Platform
Diversidade MMR
Maximal Marginal Relevance escolhe resultados que cobrem ângulos diferentes, não apenas o melhor match.
O que é
A diversidade MMR é um estágio de recuperação do osFoundry que aplica Maximal Marginal Relevance quando sua base de conhecimento é consultada. A ordenação por relevância pura tem uma falha conhecida: os primeiros resultados costumam ser quase duplicados entre si, porque todos correspondem à consulta da mesma forma. Se cinco trechos repetem o mesmo parágrafo, quatro deles desperdiçam espaço da janela de contexto e o modelo nunca chega a ver o segundo ou o terceiro ângulo da pergunta. O MMR corrige isso pontuando cada candidato tanto pela relevância em relação à consulta quanto pela dissimilaridade em relação aos trechos já selecionados, escolhendo assim resultados que são relevantes *e* diferentes entre si.
Dentro do osFoundry, o MMR é um dos estágios do pipeline RAG personalizado que você monta para cada Path de chat no osStudio. Uma consulta passa primeiro pela recuperação híbrida (busca por embeddings mais busca por palavras-chave BM25); depois você pode adicionar estágios de filtro e reranking, e posicionar o MMR após eles para que diversifique um conjunto de candidatos já de alta qualidade. O estágio expõe os controles habituais do MMR: um parâmetro lambda que desliza entre a relevância pura e a diversidade pura, o tamanho do pool de candidatos do qual ele seleciona e quantos trechos ele emite para o prompt. Como cada estágio é uma configuração versionada e validada por JSON Schema, um Path de chat de código e um Path de sucesso do cliente podem diversificar de forma diferente, e você pode reverter uma mudança sem tocar no código-fonte.
Isso importa sobretudo em perguntas amplas ou ambíguas e em corpora com vocabulário sobreposto, onde os primeiros acertos por embeddings se agrupam de forma cerrada. O MMR abre mão de um pouco de relevância bruta no top-1 em troca de cobertura, o que geralmente produz respostas mais bem fundamentadas, porque o modelo vê a amplitude do que a base de conhecimento realmente contém. Mantém-se coerente com a postura BYOK e local-first do osFoundry: a recuperação e a diversificação rodam no seu workspace, os embeddings passam por um proxy gerenciado da Voyage ou pela sua própria chave, e nenhuma tarifa por assento condiciona o pipeline.
Principais recursos
- Adiciona um estágio MMR (Maximal Marginal Relevance) ao seu pipeline de recuperação que equilibra relevância e redundância, para que os primeiros resultados cubram ângulos diferentes em vez de reformular o melhor match
- Configure o MMR por Path no osStudio: defina o equilíbrio lambda entre relevância e diversidade, o tamanho do pool de candidatos e quantos trechos finais chegam ao prompt
- Encadeia-se após os estágios de recuperação, filtro e reranking, de modo que o MMR diversifica um conjunto já ordenado em vez de acertos brutos de embeddings
- Opera sobre os resultados da recuperação híbrida (embeddings mais BM25), com embeddings da Voyage disponíveis por um proxy gerenciado ou suas próprias chaves sob BYOK
- Cada configuração de MMR é uma config do osStudio versionada e validada por JSON Schema, com rollback, para que diferentes superfícies de chat diversifiquem de formas distintas sem mudanças no código-fonte
Casos de uso
- Engenheiro de suporte: uma pergunta ampla de troubleshooting retorna cinco trechos quase idênticos; o MMR preenche os espaços com causas distintas para que a resposta cubra mais de um modo de falha
- Pesquisador: ao consultar um grande conjunto de documentos onde os primeiros acertos por embeddings se agrupam em uma seção; o MMR traz passagens de partes diferentes do corpus para uma síntese mais completa
- Construtor de pipelines no osStudio: ajusta o lambda do MMR em um Path de chat de código para relevância estrita e deixa um Path de descoberta mais diverso, tudo como configuração versionada com rollback
Perguntas frequentes
O que é Maximal Marginal Relevance (MMR) e por que eu o adicionaria ao RAG?
O MMR é um método de seleção que ordena as passagens candidatas por relevância em relação à consulta, penalizando a similaridade com as já escolhidas. Você o adiciona quando seus primeiros resultados tendem a ser quase duplicados: sem MMR, uma pergunta ampla pode retornar cinco trechos que dizem a mesma coisa, e o modelo só vê um ângulo. O MMR mantém o trecho mais relevante, mas preenche os espaços restantes com passagens distintas e complementares.
Como ativo a diversidade MMR no osFoundry?
O MMR é um estágio do pipeline RAG personalizado que você configura para cada Path de chat no osStudio. Você adiciona o estágio MMR após seus estágios de recuperação, filtro e reranking opcional, e então define seu lambda (o equilíbrio entre relevância e diversidade), o pool de candidatos do qual ele extrai e o número de trechos finais. A config é validada por JSON Schema e versionada, então você pode ajustá-la, testá-la em um Path e revertê-la se precisar.
Qual a diferença entre o MMR e um reranker?
Um reranker repontua os candidatos apenas pelo quão bem cada um corresponde à consulta, melhorando a precisão do top-k. O MMR otimiza um objetivo diferente: maximiza a relevância minimizando a redundância no conjunto selecionado. Eles são complementares: no osFoundry você normalmente faz o reranking primeiro para obter os candidatos mais correspondentes, e depois aplica o MMR para garantir que os trechos que passam cubram aspectos diferentes em vez de repetir o único melhor match.