RocketQA: Recuperação Densa de Passagens Otimizada para Resposta a Perguntas de Domínio Aberto
Imagine fazer a pergunta: “Quem inventou a eletricidade?” e esperar que um sistema identifique a passagem mais relevante entre bilhões de documentos não estruturados que abrangem diversos tópicos e formatos. Isso mostra o desafio da resposta a perguntas em domínio aberto (QA), em que os sistemas devem recuperar e classificar rapidamente informações relevantes de grandes conjuntos de dados não curados, como a Wikipedia ou arquivos da web. Os primeiros sistemas de QA enfrentavam esse desafio por meio de pipelines complexos para tarefas como análise de perguntas e recuperação de documentos. Mais tarde, a abordagem em duas etapas simplificou o processo ao recuperar passagens e extrair respostas precisas usando técnicas de recuperação densa.
A recuperação densa, que usa arquiteturas de codificador duplo, representa perguntas e passagens como embeddings densos para correspondência semântica eficiente. No entanto, treinar esses modelos introduz vários desafios, incluindo discrepâncias entre treinamento e inferência, positivos rotulados incorretamente e conjuntos de dados anotados limitados. Para enfrentar esses obstáculos, RocketQA, apresentado no artigo Optimized Training of Dense Retrieval Models with Hard Negatives, apresenta uma série de estratégias, incluindo negativos entre lotes, eliminação de ruído em negativos difíceis e aumento de dados. Esses métodos melhoram a robustez do treinamento de codificadores duplos e aumentam a precisão da recuperação de passagens.
Este artigo discutirá as contribuições do RocketQA para a recuperação densa em QA de domínio aberto, incluindo sua arquitetura e estratégias de treinamento.
Compreendendo os Desafios da QA de Domínio Aberto
Sistemas de QA de domínio aberto têm como objetivo responder às consultas dos usuários encontrando a passagem mais relevante em um enorme corpus de documentos. Esses documentos geralmente são divididos em passagens menores para tornar a busca e a recuperação mais eficientes. Para cada passagem relevante recuperada, o sistema também deve identificar o intervalo exato de texto que responde à pergunta.
Essa tarefa é particularmente desafiadora devido ao tamanho e à complexidade dos dados. Os sistemas devem equilibrar três aspectos principais: garantir velocidade para recuperação em tempo real, manter precisão para identificar com exatidão as passagens mais relevantes e maximizar recall para evitar deixar de encontrar informações importantes. Encontrar esse equilíbrio é essencial para uma QA de domínio aberto eficaz.
Sistemas de recuperação densa fizeram avanços significativos ao enfrentar esses desafios, concentrando-se em correspondência semântica em vez de depender apenas de abordagens baseadas em palavras-chave. No entanto, embora melhorem a eficiência e a precisão em certas áreas, eles também enfrentam obstáculos específicos que limitam seu desempenho.
Lacunas na Recuperação Densa Tradicional
Sistemas de recuperação densa enfrentam várias limitações importantes:
Discrepância entre Treinamento e Mundo Real: Os modelos são frequentemente treinados em conjuntos de dados pequenos e curados, enquanto sistemas do mundo real precisam lidar com bilhões de passagens. Essa incompatibilidade reduz sua capacidade de atuar de forma consistente em conjuntos de dados maiores e mais complexos.
Anotações Esparsas: Muitos conjuntos de dados de QA têm dados rotulados limitados, frequentemente emparelhando consultas com apenas uma ou duas passagens positivas. Isso leva a falsos negativos durante o treinamento, em que passagens relevantes são tratadas incorretamente como irrelevantes.
Negativos Difíceis: Esses sistemas frequentemente têm dificuldade com passagens que parecem relevantes, mas não respondem de fato à consulta. Por exemplo, uma consulta sobre “Quem descobriu a eletricidade?” pode recuperar passagens sobre os experimentos de Benjamin Franklin que são relacionadas, mas incorretas. Se essas passagens forem mal gerenciadas durante o treinamento, elas podem confundir o modelo e reduzir a precisão da recuperação.
Vamos ver como o RocketQA enfrenta esses desafios ao introduzir técnicas que melhoram as estratégias de treinamento e refinam a forma como os modelos lidam com os dados.
O que é RocketQA?
RocketQA é um framework de recuperação densa de passagens altamente otimizado, projetado para aprimorar sistemas de perguntas e respostas (QA) de domínio aberto. Desenvolvido pela Baidu, o RocketQA emprega uma arquitetura de modelo dual-encoder para recuperar passagens relevantes, na qual os codificadores de consultas e documentos são treinados de forma colaborativa para melhorar o desempenho da recuperação. O framework introduz técnicas de treinamento inovadoras, como amostragem negativa cross-batch e denoising, que abordam desafios comuns como amostras negativas esparsas e dados de treinamento ruidosos.
Como o RocketQA melhora a recuperação densa
O RocketQA se baseia na arquitetura dual-encoder, que permite correspondência semântica eficiente ao pré-computar embeddings densos para perguntas e passagens. O dual encoder consiste em dois codificadores separados:
Codificador de Perguntas (Eq(q)): Transforma a consulta em uma representação vetorial densa.
Codificador de Passagens (Ep(p)): Transforma cada passagem em uma representação vetorial densa.
A similaridade entre uma pergunta e uma passagem é calculada como o produto escalar de seus embeddings:
sim(q, p) = Eq(q) ⋅ Ep(p)
Essa estrutura pré-computada permite recuperação rápida, pois os embeddings de todas as passagens podem ser armazenados em um índice e reutilizados para múltiplas consultas. No entanto, embora os dual-encoders ofereçam escalabilidade, seu desempenho na captura de relações sutis entre consultas e passagens é limitado.
Para abordar isso, o RocketQA incorpora cross-encoders para melhorar a qualidade do treinamento. Cross-encoders processam uma consulta e uma passagem juntas, permitindo interações contextuais mais ricas. Ao combinar a escalabilidade dos dual-encoders com o refinamento dos cross-encoders, o RocketQA alcança um equilíbrio entre eficiência e precisão. Veja como dual encoders e cross-encoders funcionam.
Figura: Ilustração das arquiteturas dual-encoder e cross-encoder
O dual-encoder codifica independentemente a consulta e a passagem em embeddings densos. Por exemplo, a consulta “Quem inventou a eletricidade?” é codificada em uma representação vetorial com base em seu significado semântico, enquanto passagens como “Michael Faraday fez grandes contribuições para o eletromagnetismo” e “Experimento da pipa de Benjamin Franklin” também são codificadas em vetores. O sistema compara esses vetores para determinar qual passagem é mais semelhante à consulta. Esse processo é altamente eficiente porque os embeddings das passagens podem ser pré-computados e reutilizados.
Em contraste, o cross-encoder processa a consulta e a passagem juntas. Em vez de codificá-las separadamente, ele examina a relação entre as duas. Por exemplo, ao avaliar a mesma consulta e as passagens, o cross-encoder consegue entender melhor que a passagem que menciona o experimento da pipa de Benjamin Franklin está relacionada à eletricidade, mas não responde diretamente à consulta. Essa compreensão mais rica vem ao custo da eficiência computacional, tornando-o mais adequado para ajuste fino e geração de dados de treinamento.
Amostragem mais inteligente com negativos cross-batch
Um dos desafios na recuperação densa é treinar modelos com um conjunto diverso de exemplos negativos (passagens que não respondem à consulta). Abordagens tradicionais usam negativos in-batch, que são limitados às passagens dentro do mesmo batch. O RocketQA aborda essa limitação introduzindo negativos cross-batch, que compartilham exemplos negativos entre múltiplas GPUs durante o treinamento.
Essa abordagem expande enormemente o conjunto de amostras negativas, tornando-o mais representativo de cenários do mundo real. Ao expor o modelo a negativos mais diversos e desafiadores, o RocketQA reduz o overfitting e aprimora sua capacidade de distinguir entre passagens relevantes e irrelevantes.
Figura: Comparação de negativos no lote vs. entre lotes no treinamento multi-GPU, onde A é o número de GPUs e B é o tamanho do lote.
Ao contrário dos métodos tradicionais que restringem a amostragem negativa ao nível do lote, o RocketQA permite que cada pergunta seja pareada com negativos de outros lotes, aumentando a diversidade sem exigir memória adicional.
Objetivo de Treinamento Otimizado
O processo de treinamento no RocketQA concentra-se em melhorar a capacidade do modelo de identificar passagens relevantes para uma determinada consulta, otimizando uma função de perda. Essa função de perda incentiva o modelo a atribuir pontuações de similaridade mais altas a pares consulta-passagem positivos (passagens relevantes) e pontuações mais baixas a pares consulta-passagem negativos (passagens irrelevantes).
A função de perda é expressa como:
L(qi, p⁺i, {p⁻i,j}) = - log ( exp(sim(qi, p⁺i)) / ( exp(sim(qi, p⁺i)) + Σj=1^m exp(sim(qi, p⁻i,j)) ) )
Veja como a otimização funciona:
Passagens Positivas (p⁺i): Para cada consulta qi, o modelo identifica uma passagem positiva rotulada como relevante. O objetivo é maximizar a pontuação de similaridade sim(qi, p⁺i), que mede o quão estreitamente a consulta e a passagem positiva se alinham.
Passagens Negativas (p⁻i,j): Para a mesma consulta qi, várias passagens negativas (irrelevantes para a consulta) são introduzidas. O modelo é treinado para atribuir a essas passagens pontuações de similaridade mais baixas sim(qi, p⁻i,j).
Equilibrando as Pontuações: O denominador da função de perda inclui as pontuações de similaridade tanto das passagens positivas quanto das negativas. Ao minimizar essa perda, o modelo aprende a aumentar a pontuação de similaridade da passagem positiva em relação às passagens negativas.
Visualizando o Processo: Pense nessa otimização como uma remodelagem do espaço semântico. Os embeddings das passagens relevantes são puxados para mais perto da consulta no espaço semântico, enquanto os embeddings das passagens irrelevantes são empurrados para mais longe.
Melhoria no Ranqueamento: O resultado dessa otimização é um modelo que ranqueia passagens positivas acima das negativas para uma determinada consulta, melhorando a capacidade do sistema de recuperar informações relevantes com precisão.
Ao otimizar essa função de perda, o RocketQA garante que seu modelo de recuperação densa seja mais eficaz em distinguir passagens relevantes das irrelevantes, mesmo em cenários em que os negativos são contextualmente semelhantes. Essa melhoria aprimora diretamente a precisão e a revocação do sistema de recuperação, possibilitando melhor desempenho em tarefas de QA de domínio aberto.
Treinando o RocketQA: Um Pipeline de Otimização em Quatro Estágios
O processo de treinamento do RocketQA é implementado por meio de um pipeline estruturado de quatro estágios que refina sistematicamente o dual-encoder para melhorar suas capacidades de recuperação. Cada estágio se baseia no anterior para enfrentar os principais desafios que discutimos, como lidar com negativos difíceis, diversificar exemplos de treinamento e compensar anotações esparsas.
Figura: Os quatro estágios do pipeline de treinamento do RocketQA:
Aqui está o que cada estágio envolve:
1. Amostragem Negativa entre Lotes
O dual-encoder é primeiro treinado usando negativos entre lotes, que compartilham passagens negativas entre GPUs. Isso aumenta a diversidade de negativos disponíveis para treinamento, ajudando o modelo a simular condições do mundo real de forma mais eficaz. Ao aproveitar essa técnica, o RocketQA expõe o modelo a negativos mais difíceis, refinando sua capacidade de diferenciar entre passagens relevantes e irrelevantes.
2. Ajuste Fino do Cross-Encoder
Após o treinamento inicial, um cross-encoder é ajustado para avaliar pares consulta-passagem com maior compreensão contextual. O cross-encoder identifica hard negatives desafiadores, que são então usados para refinar ainda mais o dual-encoder. Esta etapa garante que o dual-encoder se beneficie dos insights relacionais mais profundos do cross-encoder.
3. Remoção de Ruído em Hard Negatives
O dual-encoder é retreinado com hard negatives sem ruído, selecionados pelo cross-encoder. Esse processo reduz o ruído nos dados de treinamento ao excluir negativos rotulados incorretamente ou menos informativos. Como resultado, o modelo se concentra em distinções significativas entre passagens relevantes e irrelevantes, melhorando a precisão.
4. Aumento de Dados
Na etapa final, o cross-encoder gera pseudo-rótulos para enriquecer o conjunto de dados de treinamento. Esses pseudo-rótulos ajudam a resolver o problema de anotações esparsas ao criar dados rotulados adicionais, permitindo que o dual-encoder generalize melhor em consultas diversas.
Esse processo estruturado garante que o RocketQA integre efetivamente as melhorias discutidas anteriormente em um fluxo de trabalho coeso e otimizado, aprimorando, em última análise, seu desempenho em tarefas de recuperação densa.
Desempenho do RocketQA em Benchmarks
Após otimizar seu pipeline de treinamento, o RocketQA demonstra forte desempenho em vários benchmarks de resposta a perguntas (QA) de domínio aberto. Esses benchmarks avaliam quão bem o RocketQA recupera passagens relevantes em diferentes conjuntos de dados, cada um apresentando desafios únicos, como consultas complexas, anotações esparsas ou negativos enganosos.
Ele foi testado no MS MARCO, Natural Questions e TriviaQA. O MS MARCO se concentra em parear consultas de usuários com passagens relevantes e irrelevantes, enfatizando a precisão da recuperação. O Natural Questions contém consultas reais de usuários da Google Search, exigindo que os sistemas identifiquem passagens relevantes da Wikipedia. O TriviaQA apresenta perguntas no estilo trivia que frequentemente exigem raciocínio contextual e compreensão mais profunda para recuperar respostas precisas.
Ele alcança uma Mean Reciprocal Rank (MRR@10) de 37.0 no conjunto de dados MS MARCO, superando outros recuperadores densos como DPR e ANCE, que obtiveram 32.7 e 33.0, respectivamente. O modelo também apresenta bom desempenho no conjunto de dados Natural Questions (NQ), atingindo uma taxa de recall (R@100) de 88.5, em comparação com 87.5 do ANCE e 85.4 do DPR. Esses resultados mostram que o RocketQA tem a capacidade de recuperar passagens relevantes com maior precisão e recall após a otimização.
Direções Futuras para o RocketQA
O sucesso do RocketQA em benchmarks diversos destaca sua força como um sistema de recuperação densa. Ainda assim, à medida que a resposta a perguntas de domínio aberto se torna mais complexa, há oportunidades claras para refinar suas capacidades, abordar limitações e expandir sua funcionalidade para atender a desafios e casos de uso emergentes.
Integração de Recuperação Multimodal
Expandir além do texto para incluir dados multimodais, como imagens, vídeos e dados estruturados, permitiria que o RocketQA lidasse com consultas mais ricas e diversas. Por exemplo, uma consulta como Explique as informações neste gráfico sobre o aquecimento global exigiria a integração da compreensão visual e textual. Combinar modalidades tornaria o RocketQA aplicável em áreas como diagnósticos médicos, pesquisa científica e busca multimídia.
Personalização Sensível ao Contexto
Incorporar contexto específico do usuário ao processo de recuperação do RocketQA pode melhorar a relevância dos resultados. Ao incorporar sinais do histórico ou das preferências do usuário, o modelo poderia adaptar respostas às necessidades individuais. Por exemplo, um estudante pesquisando energia poderia preferir explicações simplificadas, enquanto um especialista no domínio se beneficiaria de resultados detalhados e com muitas fontes.
Customização Específica de Domínio
O ajuste fino do RocketQA em conjuntos de dados específicos de domínio — como documentos jurídicos ou literatura médica — poderia melhorar seu desempenho em áreas especializadas. A integração com grafos de conhecimento também melhoraria a precisão ao aproveitar relações estruturadas (por exemplo, sintomas → doenças na área da saúde). Essa abordagem tornaria o RocketQA mais eficaz em setores como direito, medicina e engenharia.
Conclusão
O RocketQA redefiniu a recuperação densa para resposta a perguntas em domínio aberto ao superar desafios como anotações esparsas, negativos difíceis e demandas de recuperação em larga escala. Sua combinação de arquiteturas dual-encoder e cross-encoder, juntamente com estratégias como negativos entre lotes e treinamento otimizado, oferece tanto escalabilidade quanto precisão.
Com sucesso comprovado em benchmarks e potencial para se expandir para recuperação multimodal, aplicações específicas de domínio e sistemas personalizados, o RocketQA está preparado para liderar avanços em resposta a perguntas. À medida que as demandas de QA em domínio aberto evoluem, o RocketQA fornece uma base sólida e adaptável para lidar com consultas complexas com precisão e eficiência.
Recursos adicionais
Continue lendo

Zilliz Cloud Now Available in Azure North Europe: Bringing AI-Powered Vector Search Closer to European Customers
The addition of the Azure North Europe (Ireland) region further expands our global footprint to better serve our European customers.

AI Agents Are Quietly Transforming E-Commerce — Here’s How
Discover how AI agents transform e-commerce with autonomous decision-making, enhanced product discovery, and vector search capabilities for today's retailers.

Proactive Monitoring for Vector Database: Zilliz Cloud Integrates with Datadog
we're excited to announce Zilliz Cloud's integration with Datadog, enabling comprehensive monitoring and observability for your vectorDB deployments.


