O que é RAG: Uma Introdução Abrangente à Geração Aumentada por Recuperação

O que é RAG: Uma Introdução Abrangente à Geração Aumentada por Recuperação

Explore a evolução e os avanços dos sistemas de Geração Aumentada por Recuperação (RAG). Aprenda como o RAG aprimora Grandes Modelos de Linguagem (LLMs) com conhecimento externo.

Introdução

A Geração Aumentada por Recuperação (RAG) surge como uma solução promissora para enfrentar desafios inerentes ao trabalho com Grandes Modelos de Linguagem (LLMs), incluindo lacunas de conhecimento do domínio, problemas de factualidade e alucinação. Ao integrar fontes de conhecimento externas, como bancos de dados, o RAG aprimora os LLMs, tornando-os particularmente valiosos em ambientes ricos em conhecimento ou aplicações específicas de domínio que exigem conhecimento atualizado. Diferentemente de outros métodos, o RAG não requer retreinamento dos LLMs para tarefas específicas, o que é uma vantagem significativa. Sua popularidade recente, especialmente em agentes conversacionais, ressalta sua relevância.

Uma pesquisa recente de Gao et al. (2023) fornece insights valiosos sobre as principais descobertas, implicações práticas e abordagens de ponta do RAG. A pesquisa examina vários componentes dos sistemas RAG, incluindo técnicas de recuperação, geração e aumento, analisando suas metodologias de avaliação, aplicações e tecnologias associadas.

O que é RAG

A Geração Aumentada por Recuperação (RAG) melhora o desempenho de grandes modelos de linguagem ao incorporar referências de bases de conhecimento externas confiáveis, complementando os extensos dados de treinamento do modelo. Grandes Modelos de Linguagem (LLMs) aproveitam vastos conjuntos de dados e bilhões de parâmetros para gerar respostas para tarefas como resposta a perguntas, tradução de idiomas e conclusão de texto. O RAG expande as capacidades dos LLMs ao adaptá-los a domínios específicos ou bases de conhecimento organizacionais internas, sem exigir retreinamento do modelo. Essa abordagem oferece um meio econômico de aprimorar a saída do LLM para garantir sua relevância, precisão e utilidade em diversos contextos.

Componentes Principais do RAG

Podemos dividir o processo nas seguintes etapas/componentes:

  1. Entrada: Refere-se à pergunta feita ao sistema LLM. Sem o RAG, o LLM responde diretamente a essa pergunta.
  2. Indexação: Quando o RAG é empregado, um conjunto de documentos relacionados é submetido à indexação. Isso envolve dividir os documentos em partes, criar embeddings para essas partes e, em seguida, indexá-los em um armazenamento vetorial. Durante a inferência, a consulta é embedding de forma semelhante.
  3. Recuperação: Documentos relevantes são recuperados comparando a consulta com os vetores indexados, resultando em uma seleção de “Documentos Relevantes”.
  4. Geração: Os documentos recuperados são mesclados com o prompt original para fornecer contexto adicional. Esse texto combinado e o prompt são então inseridos no modelo para geração de resposta, resultando na saída final fornecida ao usuário.

Em um exemplo dado, confiar apenas no modelo sem o RAG pode não responder adequadamente devido à falta de conhecimento atualizado. Por outro lado, utilizar o RAG permite que o sistema acesse as informações necessárias para responder à pergunta com precisão.

Paradigmas do RAG

Nos últimos anos, houve uma evolução nos sistemas RAG, progredindo do RAG ingênuo para o RAG avançado e o RAG modular. Esse avanço visou superar desafios específicos relacionados a desempenho, custo e eficiência.

RAG Ingênuo

O RAG ingênuo opera através do processo convencional de indexação, recuperação e geração, conforme descrito anteriormente. Em essência, ele utiliza a entrada do usuário para consultar documentos relevantes, que são então amalgamados com um prompt e fornecidos ao modelo para gerar uma resposta final. Se a aplicação envolver interações de diálogo de múltiplas voltas, o histórico da conversa pode ser integrado ao prompt.

No entanto, o RAG ingênuo tem suas limitações, incluindo problemas de baixa precisão (resultando em partes recuperadas desalinhadas) e baixa recuperação (falha em recuperar todas as partes relevantes). Há também o risco de o LLM ser alimentado com informações desatualizadas, uma preocupação principal que os sistemas RAG visam inicialmente resolver. Isso pode levar a problemas de alucinação e à geração de respostas ruins e imprecisas.

Além disso, quando o aumento é implementado, podem surgir preocupações quanto à redundância e repetição. O manuseio de várias passagens recuperadas envolve considerações de classificação e conciliação de estilo e tom. Além disso, um desafio significativo está em garantir que a tarefa de geração não dependa excessivamente de informações aumentadas, potencialmente fazendo com que o modelo apenas repita o conteúdo recuperado.

RAG Avançado

O RAG avançado oferece soluções para as deficiências observadas no RAG ingênuo, particularmente ao melhorar a qualidade da recuperação. Essa melhoria abrange otimização nos processos de pré-recuperação, recuperação e pós-recuperação.

A fase de pré-recuperação envolve refinar a indexação de dados por meio de cinco etapas principais: melhorar a granularidade dos dados, otimizar estruturas de índice, adicionar metadados, otimização de alinhamento e recuperação mista. Essas medidas visam elevar a qualidade dos dados indexados.

Uma melhoria adicional no estágio de recuperação pode ser alcançada otimizando o próprio modelo de embedding. Essa otimização influencia diretamente a qualidade dos fragmentos de contexto. As estratégias podem incluir ajuste fino de embeddings para melhorar a relevância da recuperação ou o uso de embeddings dinâmicos que capturam melhor as nuances contextuais (por exemplo, o modelo embeddings-ada-02 da OpenAI).

A otimização pós-recuperação foca em contornar limitações do tamanho do contexto e gerenciar informações ruidosas ou perturbadoras. O reordenamento é uma abordagem comum para enfrentar esses desafios, envolvendo técnicas como mover o contexto relevante para as bordas do prompt ou recalcular a similaridade semântica entre a consulta e os fragmentos de texto relevantes. Técnicas de compressão de prompt também podem ajudar a gerenciar esses problemas.

RAG Modular

O RAG modular, como o próprio nome sugere, aprimora os módulos funcionais dentro da estrutura de geração aumentada por recuperação. Envolve integrar módulos como um módulo de busca para recuperação por similaridade e aplicar ajuste fino no recuperador. Tanto o RAG ingênuo quanto o RAG avançado podem ser vistos como instâncias específicas do RAG modular, composto por módulos fixos. No entanto, o RAG estendido introduz módulos adicionais como busca, memória, fusão, roteamento, previsão e adaptador de tarefa, cada um abordando desafios distintos. Esses módulos podem ser reconfigurados para se adaptar a contextos de tarefa específicos, oferecendo ao RAG modular maior diversidade e flexibilidade. Essa flexibilidade permite adicionar, substituir ou ajustar módulos com base nos requisitos da tarefa.

Com o aumento da flexibilidade na construção de sistemas RAG, várias técnicas de otimização foram propostas para refinar os pipelines de RAG:

  1. Exploração de Busca Híbrida: Essa abordagem combina técnicas de busca, como busca baseada em palavras-chave e busca semântica, para recuperar informações relevantes e ricas em contexto, particularmente benéfica para lidar com diversos tipos de consulta e necessidades de informação.
  2. Recuperação Recursiva e Mecanismo de Consulta: Isso envolve um processo de recuperação recursiva que começa com pequenos fragmentos semânticos e progressivamente recupera fragmentos maiores para enriquecer o contexto, equilibrando eficiência e riqueza de contexto.
  3. Prompt StepBack: Essa técnica de prompting permite que LLMs abstraiam conceitos e princípios, guiando o raciocínio para respostas mais fundamentadas. Adotar essa técnica dentro de uma estrutura RAG permite que LLMs vão além de instâncias específicas e raciocinem de forma mais ampla quando necessário.
  4. Subconsultas: Diferentes estratégias de consulta, como consultas em árvore ou consulta sequencial de fragmentos, podem ser empregadas para vários cenários. Por exemplo, o LlamaIndex oferece um mecanismo de consulta de subperguntas, dividindo uma consulta em várias perguntas que utilizam diferentes fontes de dados relevantes.
  5. Embeddings de Documentos Hipotéticos (HyDE): O HyDE gera uma resposta hipotética para uma consulta, a incorpora e a utiliza para recuperar documentos semelhantes à resposta hipotética, em vez de usar a consulta diretamente.

Estrutura do RAG

Esta seção fornece um resumo dos avanços significativos nos componentes que compõem um sistema RAG: Recuperação, Geração e Aumento.

Recuperação

A recuperação dentro de um sistema RAG envolve recuperar contexto altamente relevante de um recuperador, que pode ser aprimorado por vários meios:

Aprimoramento de Representações Semânticas:

Melhorar as estratégias de divisão de documentos é crucial para selecionar a estratégia mais apropriada com base no conteúdo e nos requisitos da aplicação. Diferentes modelos podem se destacar com diferentes tamanhos de bloco, como sentence transformers para frases únicas e text-embedding-ada-002 para blocos contendo 256 ou 512 tokens. A experimentação com diferentes estratégias de divisão é comum para otimizar a recuperação em um sistema RAG, considerando fatores como comprimento da pergunta do usuário, aplicação e limites de tokens.

O ajuste fino de modelos de embedding pode ser necessário para domínios especializados, a fim de garantir que as consultas dos usuários sejam compreendidas com precisão. Modelos de embedding como BGE-large-EN, desenvolvido pela BAAI, podem ser ajustados para conhecimento de domínio ou tarefas específicas downstream para otimizar a relevância da recuperação.

Alinhamento de Consultas e Documentos:

Técnicas de reescrita de consulta, como Query2Doc, ITER-RETGEN e HyDE, focam em refinar consultas que carecem de informações semânticas ou contêm formulação imprecisa.

A transformação de embeddings otimiza os embeddings das consultas para alinhá-los a um espaço latente mais relacionado à tarefa em questão.

Alinhamento do Recuperador e do LLM:

O ajuste fino de recuperadores utiliza sinais de feedback de LLMs para refinar os modelos de recuperação. Exemplos incluem o recuperador adaptado a aumento (AAR), REPLUG e UPRISE.

A incorporação de adaptadores externos, como PRCA, RECOMP e PKG, auxilia no processo de alinhamento entre recuperadores e LLMs.

Geração

O gerador dentro de um sistema RAG desempenha um papel fundamental na transformação das informações recuperadas em texto coerente, formando, em última análise, a saída final do modelo. Esse processo frequentemente envolve diversos dados de entrada, exigindo esforços para refinar a adaptação do modelo de linguagem à entrada derivada de consultas e documentos. Esses refinamentos podem ser alcançados por meio de processos pós-recuperação e ajuste fino:

Pós-recuperação com LLM Congelado: Essa abordagem foca em melhorar a qualidade dos resultados da recuperação sem modificar o próprio LLM. Operações como compressão de informações e reordenação de resultados são utilizadas. A compressão de informações ajuda a reduzir ruídos, lidar com restrições de comprimento de contexto e melhorar os efeitos de geração, enquanto o reordenamento reordena os documentos para priorizar os itens mais relevantes no topo.

Ajuste Fino do LLM para RAG: A otimização ou ajuste fino adicional do gerador garante que o texto gerado seja tanto natural quanto efetivamente aproveite os documentos recuperados, melhorando assim o desempenho geral do sistema RAG.

Aumento

O aumento abrange o processo de integrar perfeitamente o contexto das passagens recuperadas com a tarefa de geração em andamento. Antes de aprofundar o processo de aumento, incluindo seus estágios e dados, vamos primeiro estabelecer uma taxonomia dos componentes centrais do RAG.

O aumento da recuperação pode ser aplicado em vários estágios, incluindo pré-treinamento, ajuste fino e inferência.

Estágios de Aumento: Por exemplo, RETRO exemplifica um sistema que utiliza aumento de recuperação para pré-treinamento em larga escala do zero, incorporando um codificador adicional baseado em conhecimento externo. O ajuste fino também pode ser integrado ao RAG para aprimorar e refinar os sistemas RAG. Durante o estágio de inferência, várias técnicas são empregadas para integrar efetivamente o conteúdo recuperado, a fim de atender a requisitos específicos da tarefa e refinar ainda mais o processo RAG.

Fonte de Aumento: A eficácia de um modelo RAG depende fortemente da seleção das fontes de dados de aumento. Essas fontes podem ser categorizadas em dados não estruturados, estruturados e gerados por LLM.

Processo de Aumento: Para resolver problemas complexos, como raciocínio de múltiplas etapas, vários métodos foram propostos:

  1. Recuperação iterativa envolve realizar múltiplos ciclos de recuperação para enriquecer a profundidade e a relevância das informações. Abordagens notáveis que utilizam esse método incluem RETRO e GAR-meets-RAG.
  2. Recuperação recursiva constrói iterativamente a saída de uma etapa de recuperação como entrada para outra, permitindo uma exploração mais profunda de informações relevantes para consultas complexas (por exemplo, pesquisa acadêmica e análise de casos legais). Abordagens notáveis incluem IRCoT e Tree of Clarifications.
  3. Recuperação adaptativa personaliza o processo de recuperação para demandas específicas, identificando momentos e conteúdos ideais para recuperação. Abordagens notáveis que utilizam esse método incluem FLARE e Self-RAG.

A figura abaixo fornece uma representação abrangente da pesquisa em RAG, ilustrando vários aspectos do aumento, incluindo estágios, fontes e processos.

Avaliação do RAG

Avaliar o desempenho de modelos RAG em vários cenários de aplicação é crucial para entender e otimizar sua eficácia. Tradicionalmente, a avaliação de sistemas RAG tem se concentrado em medir seu desempenho em tarefas downstream usando métricas específicas da tarefa, como F1 e EM. O RaLLe se destaca como uma estrutura notável utilizada para avaliar grandes modelos de linguagem aumentados por recuperação em tarefas intensivas em conhecimento.

Os alvos de avaliação no RAG abrangem tanto a recuperação quanto a geração, visando avaliar a qualidade do contexto recuperado e do conteúdo gerado. Métricas comumente empregadas para avaliar a qualidade da recuperação são derivadas de domínios como sistemas de recomendação e recuperação de informação, incluindo NDCG e Taxa de Acerto. Enquanto isso, avaliar a qualidade da geração envolve avaliar aspectos como relevância e nocividade para conteúdo não rotulado ou precisão para conteúdo rotulado. Os métodos de avaliação do RAG podem incluir abordagens manuais e automáticas.

A avaliação de uma estrutura RAG normalmente se concentra em três pontuações de qualidade principais e quatro habilidades. As pontuações de qualidade abrangem a medição da relevância do contexto (precisão e especificidade do contexto recuperado), fidelidade da resposta (fidelidade das respostas ao contexto recuperado) e relevância da resposta (relevância das respostas às perguntas feitas). Além disso, quatro habilidades ajudam a medir a adaptabilidade e eficiência de um sistema RAG: robustez a ruídos, rejeição negativa, integração de informações e robustez a contra-fatos. Abaixo está um resumo das métricas utilizadas para avaliar diferentes facetas de um sistema RAG:

Vários benchmarks, como RGB e RECALL, são empregados para avaliar modelos RAG. Ferramentas como RAGAS, ARES e TruLens foram criadas para automatizar o processo de avaliação de sistemas RAG. Alguns desses sistemas utilizam LLMs para determinar certas pontuações de qualidade, conforme definido acima.

Desafios e Futuro do RAG

Nesta visão geral, exploramos vários aspectos de pesquisa do RAG e diferentes estratégias para aprimorar seus componentes de recuperação, aumento e geração. Aqui estão vários desafios destacados por Gao et al., 2023, à medida que continuamos a desenvolver e melhorar os sistemas RAG:

  1. Tamanho do Contexto: Com os LLMs expandindo continuamente o tamanho da janela de contexto, adaptar o RAG para garantir a captura de contexto altamente relevante e crucial apresenta desafios.
  2. Robustez: Lidar com informações contra-factuais e adversárias é crucial para medir e melhorar a robustez dos sistemas RAG.
  3. Abordagens Híbridas: Pesquisas em andamento visam entender melhor como otimizar o uso tanto de modelos RAG quanto de modelos ajustados.
  4. Expansão dos Papéis dos LLMs: Há um interesse crescente em aumentar o papel e as capacidades dos LLMs para aprimorar ainda mais os sistemas RAG.
  5. Leis de Escala: Investigar as leis de escala dos LLMs e sua aplicação aos sistemas RAG continua sendo uma área que precisa de maior compreensão.
  6. RAG Pronto para Produção: Desenvolver sistemas RAG de nível de produção requer excelência em engenharia em vários domínios, incluindo desempenho, eficiência, segurança de dados e privacidade.
  7. RAG Multimodal: Embora a pesquisa em RAG tenha se concentrado principalmente em tarefas baseadas em texto, há um interesse crescente em estender as modalidades para suportar uma gama mais ampla de domínios, como imagem, áudio, vídeo e código.
  8. Avaliação: Construir aplicações complexas com RAG requer métricas e ferramentas de avaliação diferenciadas para avaliar relevância contextual, criatividade, diversidade de conteúdo, factualidade e muito mais. Além disso, há necessidade de melhor pesquisa de interpretabilidade e ferramentas para RAG.

Como integrar RAG com Grandes Modelos de Linguagem

Implementar a Geração Aumentada por Recuperação (RAG) com grandes modelos de linguagem (LLMs) envolve várias etapas, incluindo preparação do conjunto de dados e integração na configuração do LLM. Esse processo permite que o LLM aproveite técnicas de recuperação e gere respostas mais precisas e contextualmente relevantes.

Veja como integrar seu LLM com a técnica RAG em nosso blog: Tutorial Passo a Passo sobre a Integração da Geração Aumentada por Recuperação (RAG) com Grandes Modelos de Linguagem

Fonte: novita.ai

Conclusão

Em resumo, a evolução dos sistemas RAG foi rápida, marcada pelo surgimento de paradigmas avançados que oferecem personalização e melhoram o desempenho e a utilidade em vários domínios. A crescente demanda por aplicações RAG impulsionou o desenvolvimento de métodos para melhorar seus diferentes componentes. De metodologias híbridas à auto-recuperação, uma ampla gama de áreas de pesquisa está atualmente sendo explorada em modelos RAG modernos.

novita.ai, a plataforma única para criatividade ilimitada que oferece acesso a mais de 100 APIs. Da geração de imagens ao processamento de linguagem, aprimoramento de áudio e manipulação de vídeos, com pagamento por uso barato, libera você das dores de manutenção de GPU enquanto constrói seus próprios produtos. Experimente gratuitamente.

Leituras recomendadas

Qual é a diferença entre LLM e GPT

Previsões do LLM Leaderboard 2024 Reveladas

Novita AI LLM Inference Engine: a maior taxa de transferência e a inferência mais barata disponível