Meus 2 cents,
Obrigado por compartilhar - este eh um problema bem interessante no uso do RAG.
Para quem esta lendo este texto e eh novato em RAG e nao percebeu a nuance do problema - basicamente eh o seguinte: voce tem muitos documentos onde um termo aparece de forma constante (no caso do exemplo: nome da empresa) e a pergunta eh feita usando tambem este termo, sendo que ele eh irrelevante para o contexto geral da pergunta/resposta.
O que acontece: na hora que os trechos/documentos sao recuperados para analise, como o termo tambem eh usado nesta pesquisa (mesmo sendo irrelevante), acaba "contaminando" e trazendo dados que nao sao uteis.
Entao, fica a questao: como eliminar termos "contaminantes" em uma pesquisa para RAG ?
Uma sugestao: usar o modelo de chunks 'pai/filho' no embending (Parent-Child (Small-to-Big) Retrieval)
Explicando: na hora de criar os indices de pesquisa dos documentos, usar chunks curtos (aprox 128/256 tokens), mas armazenar junto o chunk do 'pai' (que pode ser o paragrafo inteiro). Pesquise pelo 'filho' (micro-chunk) e retorne o 'pai' (macro-chunk) para o LLM fazer a analise. Geralmente os chunks 'filhos' com material irrelevante acabam nao tendo peso (score) suficiente para contaminar os resultados mais uteis. (Particularmente tenho usado esta tecnica).
A parte ruim eh ter de criar o banco vetorial um tanto diferente do que voce esta acostumado (p.ex. preparacao de chunks 'pais' e campo extra para o chunk 'pai').
Alguns autores sugerem usar a busca apenas pelos metadados para evitar isso - mas depende muito de como tua solucao precisa trabalhar (gosto de usar metadados como fonte auxiliar ou como pre-filtro e nao como principal).
Uma outra sugestao eh complementar (ou substituir) o RRF com 'Cross-Encoder' apos a pesquisa para fazer re-rank (o que pode ser uma opcao bem interessante) e tentar eliminar falsos positivos (pois percebe que o texto nao responde aa pergunta, apesar de ter a palavra-chave).
Saude e Sucesso !