RAG — Retrieval-Augmented Generation

Alex Souza
blog do zouza
Published in
10 min readDec 10, 2023

A IA generativa se destaca na elaboração de respostas textuais, utilizando Modelos de Linguagem Grande (LLMs) que são treinados com uma vasta quantidade de dados. Uma vantagem notável é que os textos produzidos são geralmente claros e compreensíveis, oferecendo respostas abrangentes e detalhadas aos prompts, que são as perguntas feitas ao software.

O lado negativo é que as respostas geradas pela IA estão confinadas às informações com as quais foi treinada, frequentemente baseadas em um LLM genérico. Esses dados podem ser antigos, remontando a semanas, meses ou até anos, e podem não abranger detalhes específicos sobre produtos ou serviços de uma empresa em chatbots corporativos. Essa limitação pode resultar em respostas errôneas, afetando negativamente a confiança de clientes e funcionários na tecnologia.

O que é Retrieval-Augmented Generation?

Neste cenário, surge a Retrieval-Augmented Generation ou em português: Geração Aumentada de Recuperação (RAG). A RAG aprimora os resultados de um LLM ao integrar informações específicas e atualizadas, sem a necessidade de alterar o modelo de IA subjacente. Essas informações podem ser mais recentes que as do LLM e adaptadas às necessidades específicas de uma organização ou setor. Como resultado, a IA generativa é capaz de fornecer respostas mais pertinentes e contextualizadas, baseadas em dados altamente atuais.

RAG (fonte:https://towardsdatascience.com/a-guide-on-12-tuning-strategies-for-production-ready-rag-applications-7ca646833439)

A técnica de RAG ganhou notoriedade no campo da IA generativa com a publicação do artigo “Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks” em 2020, uma obra de Patrick Lewis e sua equipe na Facebook AI Research. Desde então, o conceito de RAG capturou o interesse de pesquisadores tanto acadêmicos quanto do setor industrial, que reconhecem seu potencial para enriquecer consideravelmente o desempenho dos sistemas de IA generativa.

Geração aumentada de recuperação explicada

Imagine uma liga esportiva, a NBA por exemplo, buscando oferecer aos fãs e à imprensa um chatbot para acessar informações sobre jogadores, equipes, histórico do esporte, regras, além de estatísticas e classificações recentes. Um LLM genérico poderia fornecer informações sobre a história do esporte e regras, ou até descrever o estádio de um time, mas falharia ao tentar discutir acontecimentos recentes como o último jogo ou atualizações sobre lesões de atletas, devido à falta desses dados no treinamento do LLM e à inviabilidade de atualizar constantemente o modelo devido ao seu alto custo computacional.

No entanto, a liga esportiva tem acesso a uma vasta gama de fontes de informação, como bancos de dados, armazéns de dados, biografias de jogadores e notícias detalhadas sobre jogos. A RAG entra em cena permitindo que a IA generativa absorva e utilize essas informações variadas. Com isso, o chatbot passa a oferecer dados mais atuais, contextualmente relevantes e precisos. Em resumo, a RAG potencializa os LLMs para gerar respostas de maior qualidade.

Principais conclusões

  • A RAG é uma técnica de inteligência artificial relativamente nova que pode melhorar a qualidade da IA generativa, permitindo que modelos de linguagem grandes (LLMs) aproveitem recursos de dados adicionais sem retreinamento.
  • Os modelos de RAG constroem repositórios de conhecimento com base nos dados da própria organização, e estes repositórios podem ser atualizados continuamente para ajudar a IA generativa a fornecer respostas contextuais e oportunas.
  • Chatbots e outros sistemas de conversação que usam processamento de linguagem natural podem se beneficiar muito da RAG e da IA generativa.
  • A implementação da RAG requer tecnologias como bancos de dados vetoriais, que permitem a codificação rápida de novos dados, e pesquisas nesses dados para alimentar o LLM.

Como funciona a RAG?

Imagine a variedade de dados que uma organização detém: desde bancos de dados estruturados a PDFs e documentos não estruturados, passando por blogs, atualizações de notícias e transcrições de sessões de chat de atendimento ao cliente. Na abordagem da Geração Aumentada de Recuperação (RAG), essa riqueza de dados dinâmicos é convertida para um formato padronizado e armazenada em uma biblioteca de conhecimento, tornando-se acessível ao sistema de IA generativa.

Dentro desta biblioteca, os dados são transformados em representações numéricas através de um algoritmo específico, conhecido como modelo de linguagem embutido. Esses dados processados são então armazenados em um banco de dados vetorial. Este banco de dados é projetado para realizar buscas rápidas, permitindo a recuperação eficiente de informações pertinentes e contextuais, otimizando assim as respostas geradas pela IA.

RAG e LLMs (Large Language Models)

Digamos que um usuário final envie ao sistema de IA generativa um aviso específico, por exemplo: “Onde será disputado o jogo desta noite, quem são os jogadores titulares e o que os repórteres estão dizendo sobre o confronto?” A pergunta é transformada em vetor e utilizada para consultar o banco de dados vetorial, que recupera informações relevantes ao contexto daquela questão. Essas informações contextuais mais o prompt original são então inseridas no LLM, que gera uma resposta de texto baseada tanto em seu conhecimento generalizado — um tanto desatualizado — quanto nas informações contextuais extremamente oportunas.

Interessantemente, enquanto o treinamento de um LLM generalista é um processo longo e custoso, a atualização do modelo de RAG é bem mais ágil e econômica. Novos dados podem ser regularmente adicionados ao modelo de linguagem embutido e convertidos em vetores de maneira contínua e gradual. Além disso, as próprias respostas geradas pelo sistema de IA generativa podem ser reincorporadas ao modelo de RAG. Isso aprimora tanto a eficácia quanto a precisão do sistema, já que o modelo aprende e se adapta com base em como respondeu a perguntas similares anteriormente.

Um benefício adicional significativo da RAG é a sua capacidade de identificar a fonte específica dos dados utilizados em suas respostas, graças ao uso do banco de dados vetorial. Essa característica é algo que os LLMs convencionais não conseguem oferecer. Assim, se uma resposta gerada pela IA contiver erros, é possível rastrear rapidamente o documento que originou a informação incorreta. Essa detecção facilita a correção do erro e a subsequente atualização do banco de dados vetorial com as informações corrigidas, melhorando a precisão e confiabilidade das respostas futuras.

Em resumo, a RAG enriquece a IA generativa com elementos de atualidade, contexto e precisão baseada em evidências. Ela amplia as capacidades de um LLM tradicional, fornecendo informações que são mais relevantes e adaptadas ao momento presente, garantindo assim respostas mais precisas e contextualmente apropriadas.

Estágio de inferência de um pipeline RAG (fonte: https://towardsdatascience.com/a-guide-on-12-tuning-strategies-for-production-ready-rag-applications-7ca646833439)

Usando RAG em aplicações de chat

Quando se busca uma resposta rápida a uma pergunta, os chatbots se destacam pela sua imediata resposta e facilidade de uso. Normalmente, esses bots são programados para reconhecer e responder a um conjunto limitado de intenções — isto é, as tarefas ou resultados que o usuário deseja alcançar. No entanto, com a integração da tecnologia deRAG, é possível aprimorar significativamente esses chatbots. A RAG permite que o sistema de IA responda em linguagem natural a perguntas que vão além do escopo predefinido de intenções, ampliando assim a capacidade e a versatilidade dos bots em atender às necessidades dos usuários.

O paradigma “faça uma pergunta, obtenha uma resposta” torna os chatbots um caso de uso perfeito para IA generativa, por vários motivos. As perguntas muitas vezes requerem um contexto específico para gerar uma resposta precisa e, dado que as expectativas dos usuários do chatbot sobre relevância e precisão são muitas vezes altas, fica claro como as técnicas de RAG se aplicam. Para muitas organizações, os chatbots podem de fato ser o ponto de partida para o uso de RAG e IA generativa.

As consultas frequentemente necessitam de um contexto específico para que as respostas sejam precisas e úteis. Por exemplo, perguntas de clientes sobre um produto recém-lançado podem ser mal orientadas se baseadas em dados de um modelo desatualizado, resultando em informações equivocadas. Da mesma forma, um turista indagando sobre a abertura de um parque em um domingo específico espera receber informações atualizadas e exatas sobre aquele parque naquela data específica. As respostas precisam ser adaptadas ao contexto e ao momento atual para serem verdadeiramente eficazes.

Benefícios e Desafios da RAG

Benefícios

As técnicas de RAG podem ser usadas para melhorar a qualidade das respostas de um sistema de IA generativa aos prompts, além do que um LLM pode oferecer. Os benefícios incluem:

  • A RAG tem acesso a informações que podem ser mais recentes do que os dados utilizados para treinar o LLM.
  • Os dados do repositório de conhecimento da RAG podem ser atualizados continuamente sem incorrer em custos significativos.
  • O repositório de conhecimento da RAG pode conter dados mais contextuais do que os de um LLM generalizado.
  • A fonte das informações contidas na base de dados vetorial da RAG pode ser identificada. E como as fontes de dados são conhecidas, informações incorretas na RAG podem ser corrigidas ou excluídas.

Desafios

Como a RAG é uma tecnologia emergente, introduzida pela primeira vez em 2020, os desenvolvedores de IA estão ainda no processo de descobrir as melhores práticas para integrar seus mecanismos de recuperação de informações em sistemas de IA generativa. Entre os desafios enfrentados estão:

  • Melhorar o conhecimento organizacional e a compreensão da RAG porque é um recurso muito novo
  • Aumento de custos; embora a IA generativa com RAG seja mais cara de implementar do que um LLM por si só, essa abordagem é menos dispendiosa do que retreinar frequentemente o LLM
  • Determinar a melhor forma de modelar os dados estruturados e não estruturados na biblioteca de conhecimento e no banco de dados vetorial
  • Desenvolver requisitos para um processo para alimentar dados de forma incremental no sistema de RAG
  • Implementar processos para lidar com relatórios de imprecisões e para corrigir ou excluir essas fontes de informação no sistema de RAG

Exemplo

Existem muitos exemplos possíveis de IA generativa impulsionada por RAG.

A Cohere, líder na área de IA generativa e RAG, escreveu sobre um chatbot que pode fornecer informações contextuais sobre um aluguel por temporada nas Ilhas Canárias, incluindo respostas baseadas em fatos sobre acessibilidade à praia, salva-vidas em praias próximas e disponibilidade de quadras de vôlei a uma curta distância.

E o futuro?

Atualmente, em suas fases iniciais, a RAG é utilizada principalmente para proporcionar respostas oportunas, precisas e contextualizadas a consultas, sendo ideal para chatbots, e-mails, mensagens de texto e outras formas de comunicação interativa. No entanto, o futuro reserva aplicações ainda mais avançadas e interativas para a tecnologia RAG.

Uma direção promissora é a capacidade da RAG em permitir que a IA generativa tome ações baseadas em informações contextuais e instruções específicas do usuário. Por exemplo, um sistema de IA potencializado pela RAG poderia identificar a melhor acomodação na praia nas Ilhas Canárias e, em seguida, proceder à reserva de um bangalô próximo à praia durante um torneio de vôlei.

Além disso, a RAG pode ser aplicada para abordar questões mais complexas e detalhadas. Enquanto a IA generativa atual pode fornecer informações básicas, como a política de reembolso de mensalidades de uma empresa, a RAG pode enriquecer essas respostas com detalhes contextuais. Isso inclui informar quais escolas próximas oferecem cursos elegíveis para reembolso, recomendar programas alinhados com as habilidades e funções anteriores do funcionário, e até mesmo auxiliar no processo de inscrição nesses programas e na iniciação do pedido de reembolso.

Essas expansões futuras da RAG apontam para um mundo onde a IA generativa não apenas responde a consultas, mas também age proativamente, tomando decisões informadas e oferecendo soluções personalizadas com base em um entendimento profundo do contexto e das necessidades dos usuários.

Algumas perguntas frequentes

RAG é o mesmo que IA generativa? Não! A geração aumentada de recuperação é uma técnica que pode fornecer resultados mais precisos para consultas do que um modelo generativo de linguagem grande por si só, porque a RAG usa conhecimento externo aos dados já contidos no LLM.

Que tipo de informação é usada na RAG? A RAG pode incorporar dados de muitas fontes, como bancos de dados relacionais, repositórios de documentos não estruturados, fluxos de dados da Internet, feeds de notícias de mídia, transcrições de áudio e registros de transações.

Como a IA generativa usa a RAG? Os dados das fontes empresariais são incorporados em um repositório de conhecimento e depois convertidos em vetores, que são armazenados em um banco de dados vetorial. Quando um usuário final faz uma consulta, o banco de dados vetorial recupera informações contextuais relevantes. Essas informações contextuais, juntamente com a consulta, são enviadas para o modelo de linguagem grande, que utiliza o contexto para criar uma resposta mais oportuna, precisa e contextual.

Uma RAG pode citar referências para os dados que recupera?
Sim, a RAG tem a capacidade de citar as fontes dos dados que recupera. Isso é possível porque os bancos de dados vetoriais e os repositórios de conhecimento empregados na RAG mantêm referências específicas às fontes de informação utilizadas. Dessa forma, as fontes de dados podem ser diretamente citadas nas respostas. Além disso, se for detectado um erro em alguma das fontes, ele pode ser prontamente corrigido ou removido do sistema. Isso garante que consultas futuras não sejam baseadas em informações incorretas, aumentando a precisão e a confiabilidade das respostas fornecidas pela IA.

Agradeço pela leitura e espero que tenha sido útil…

Obrigado! Antes de você ir:

· 👏 Deixe suas palmas o story e me siga para mais assuntos

· 📰 Vejam mais conteúdos como este Blog do Souza

· 📰🚀 Diariamente dicas rápidas sobre dados 👉Alex Souza

· 💰 Venham conhecer a Comunidade de Análise de Dados

· 🔔 Sigam: Twitter (X) | LinkedIn | Instagram | Youtube | mais…

Imagem gerada por ia

--

--