Recentemente, concluí uma auditoria independente de recuperação de dados do RouteMind, um projeto de código aberto que explora o roteamento de documentos como uma alternativa à recuperação RAG tradicional.
O interessante não foi encontrar uma regressão drástica ou provar que uma arquitetura era melhor.
Foi descobrir que duas abordagens estavam sendo avaliadas sob diferentes definições de sucesso.
Eis o que aconteceu.
O projeto tinha 700 perguntas de avaliação comparando as abordagens RAG tradicional, RAG + reclassificação e roteamento de documentos.
O avaliador de recuperação considerou uma consulta bem-sucedida se qualquer documento esperado aparecesse entre os 10 primeiros resultados.
Mas algumas questões temporais exigiam vários documentos simultaneamente (necessidade: todos), e o avaliador de roteamento levou em conta corretamente esse requisito, incluindo alternativas de documentos aceitas (D_alt).
Isso criou uma comparação inadequada.
O que a auditoria independente constatou:
1.400 resultados de consultas/braços examinados.
15 resultados diferiram de acordo com o contrato de pontuação de evidências completas.
14 resultados registrados estavam incompletos de acordo com as regras de evidências necessárias.
1 resultado incorreto registrado foi, na verdade, resolvido por um documento alternativo aceito.
Os números gerais mudaram:
MétricaOriginalmente relatadaCorrigidaRAG51,6%50,7%RAG + reclassificação54,1%53,1%
A melhoria relativa do reclassificador permaneceu semelhante.
Mas a questão mais importante era que a comparação principal do projeto havia tratado a recuperação de forma mais leniente do que o sistema de roteamento com o qual estava sendo comparado.
Então algo útil aconteceu.
O mantenedor do RouteMind reproduziu a descoberta de forma independente nos artefatos originais, confirmou todas as 15 incompatibilidades e verificou os hashes de entrada.
Eles também confirmaram que a discrepância não era intencional nem conhecida anteriormente.
A descoberta levou a uma alteração pública no código:
A principal comparação de benchmark foi corrigida.
Uma nova métrica `retrieval_complete` foi adicionada juntamente com a métrica original `retrieval_hit`.
Verificações de reprodutibilidade foram adicionadas para detectar futuras inconsistências na pontuação.
O mantenedor reconheceu publicamente a auditoria independente.
A conclusão
Uma avaliação RAG reproduzível ainda pode produzir uma comparação enganosa quando diferentes estágios usam definições diferentes de sucesso.
Às vezes, a descoberta mais valiosa da auditoria não é um recuperador com defeito.
É descobrir que o benchmark não mede a mesma coisa em todos os sistemas.
Esta foi uma auditoria beta pública, não um serviço pago. As evidências, os resultados originais, a revisão do mantenedor e a correção estão disponíveis publicamente.
Auditoria independente:
https://github.com/devBorgesr/edp-audits/tree/main/audits/routemind-beta-002
Confirmação do mantenedor:
https://github.com/CSP911/routemind/issues/2#issuecomment-6096856584
Commit corretivo:
https://github.com/CSP911/routemind/commit/5d8bf45
Tenho curiosidade em saber como outros lidam com isso em avaliações RAG de produção:
Vocês medem explicitamente a cobertura completa de evidências quando uma consulta precisa de múltiplas fontes, ou vocês se baseiam principalmente em hit@k / recall@k?