Introdução ao RAG (Retrieval-Augmented Generation)- parte 1

Ampliando Modelos de Linguagem com Conhecimento Externo

Petrus 
TOTVS Developers
Published in
5 min readNov 16, 2023

--

Se você quer saber um pouco mais sobre sistemas que usam GenAI para processar informações de forma otimizada, tem que entender o que é RAG.

O RAG, ou Retrieval-Augmented Generation, inicia com modelos de recuperação. Esses modelos fazem uma busca inicial usando embeddings para localizar e integrar dados relevantes e especializados diretamente ao prompt. Essa etapa combina técnicas avançadas de pesquisa e recuperação de texto. Depois, com essas informações já adicionadas ao prompt, os modelos generativos atuam, aprimorando ainda mais o conteúdo gerado. Este processo resulta em respostas mais precisas, ricas em contexto e relevância.

A ideia é melhorar a capacidade de um modelo generativo, permitindo que ele extraia informações de um vasto corpus de documentos durante o processo de geração

Mais detalhadamente, a RAG é uma técnica inovadora que transforma modelos de linguagem de uso geral, como GPT, em assistentes mais úteis e informados. Funciona como um sistema que busca informações de uma base de conhecimento — como uma grande biblioteca digital — para responder perguntas ou atender solicitações específicas. Este processo ocorre em três etapas:

  1. Recuperação: Primeiro, RAG vasculha a base de conhecimento em busca de informações relevantes para a entrada fornecida.
  2. Augmentação: Em seguida, mistura essas informações com a entrada original para entender melhor o pedido.
  3. Geração: Por fim, com todas essas informações detalhadas, cria uma resposta informada ou executa a ação necessária.

Um ponto crítico dos modelos generativos, como o GPT, é que eles dependem de dados estáticos com os quais foram treinados, tornando-se desatualizados com o tempo. RAG resolve esse problema ao combinar as capacidades generativas dos LLMs com a recuperação de informações em tempo real e específicas sem alterar o modelo subjacente. Isso permite respostas mais contextuais e atualizadas, essenciais em aplicações dinâmicas como chatbots corporativos.

Além disso, RAG mantém sua base de conhecimento continuamente atualizada, o que garante que a IA generativa permaneça atual e contextualmente relevante. Isso adiciona uma camada de contexto que os LLMs generalizados não têm, aprimorando a qualidade das respostas e possuindo um mecanismo auto-corretivo para uma recuperação de informações mais precisa.

Criação da base de conhecimento

Estrutura-se um conjunto de textos relevantes para o negócio, dividindo-os em fragmentos. Cada fragmento é convertido em um vetor representativo usando um Modelo de Linguagem de Grande Escala (LLM). Estes vetores, conhecidos como embeddings, são representações matemáticas dos textos que capturam suas características essenciais. Eles são armazenados em um banco de dados vetorial, que facilita a busca. Quando um prompt é recebido, ele também é transformado em um embedding e comparado com os registros existentes no banco, permitindo a rápida identificação e recuperação de informações relevantes para gerar respostas mais precisas e contextualizadas.

Modelos de recuperação

Os modelos geralmente são projetados para localizar e classificar informações relevantes de um conjunto de dados em resposta a uma consulta. Aqui estão alguns exemplos de modelos e algoritmos de recuperação populares:

  1. Embeddings de Redes Neurais: Esses modelos, como os embeddings da OpenAI ou da Cohere, classificam documentos com base em sua similaridade no espaço vetorial. Eles transformam palavras, frases ou documentos inteiros em vetores de números que representam seu significado, facilitando a identificação de conteúdo relevante com base em como esses vetores se alinham ou diferem.
  2. BM25 (Best Match 25): Este é um modelo de recuperação de texto amplamente utilizado baseado na teoria probabilística de recuperação de informações. Ele classifica documentos com base nas frequências dos termos e nas frequências inversas dos documentos, levando em consideração tanto a relevância quanto a raridade dos termos dentro de um corpus. Isso significa que ele avalia quão frequentemente um termo aparece em um documento e quão raro esse termo é em toda a coleção de documentos.
  3. TF-IDF (Frequência do Termo — Frequência Inversa do Documento): Um modelo clássico de recuperação de informações que mede a importância de um termo dentro de um documento em relação ao corpus inteiro. Ele combina a frequência do termo (quantas vezes um termo aparece em um documento) com a frequência inversa do documento (quão raro é o termo em um corpus) para classificar documentos em termos de relevância.
  4. Busca Híbrida: Esta é uma combinação das metodologias acima com diferentes ponderações. Uma busca híbrida pode utilizar múltiplas técnicas para melhorar a precisão e a relevância dos resultados da pesquisa, adaptando-se a diferentes tipos de consultas e dados.

Recuperação detalhada

O processo é dividido nas seguintes etapas:

  1. Consulta de Entrada: O usuário inicia com uma pergunta ou consulta.
  2. Codificação: A consulta é transformada em uma representação vetorial, chamada de consulta codificada.
  3. Documentos Recuperados: O sistema busca em um banco de dados por documentos relevantes à consulta.
  4. Codificação de Contexto: Os documentos recuperados são transformados em representações vetoriais, chamadas de documentos codificados.
  5. Combinação da Consulta Codificada + Documentos: As representações da consulta e dos documentos são combinadas para formar um contexto enriquecido e o conteúdo é decodificado.
  6. Geração Usando LLM: O modelo de linguagem, como GPT-4, utiliza o contexto combinado para gerar uma resposta textual.
  7. Saída (Resposta): A resposta gerada é fornecida ao usuário como o resultado final.

Cada passo é essencial para garantir que a resposta gerada seja relevante e precisa em relação à consulta inicial do usuário.

Aplicações Práticas de RAG

RAG está fazendo um impacto significativo em vários setores, melhorando as capacidades dos LLMs. Aqui estão alguns exemplos:

  1. Compartilhamento e Recuperação de Conhecimentos em Equipes Internas: Empresas multinacionais utilizam RAG para facilitar o compartilhamento de conhecimento entre equipes, recuperando informações de projetos antigos e gerando respostas abrangentes.
  2. Campanhas de Marketing Automatizadas: Agências de marketing digital implementam RAG para criar e implantar campanhas de marketing baseadas em tendências de mercado em tempo real e comportamento do consumidor.
  3. Pesquisa Jurídica e Preparação de Casos: Escritórios de advocacia usam RAG para acelerar a pesquisa legal e a preparação de casos, recuperando precedentes legais relevantes e elaborando resumos de casos preliminares.
  4. Melhoria do Atendimento ao Cliente: Empresas de telecomunicações implementam chatbots aprimorados por RAG para responder consultas de clientes sobre planos, cobranças e problemas comuns.
  5. Gestão de Inventário e Reabastecimento: Empresas de e-commerce utilizam sistemas RAG para gerenciar estoques e reordenar produtos automaticamente, mantendo a disponibilidade de produtos populares.
  6. Integração de Funcionários e Configuração de TI: Corporações multinacionais empregam sistemas RAG para agilizar o processo de integração de novos funcionários, garantindo que todas as necessidades de TI sejam atendidas antes do primeiro dia do funcionário.

Conclusão

A RAG representa uma evolução significativa na geração de linguagem, combinando a precisão da recuperação de informações com a criatividade dos modelos generativos. Essa abordagem oferece respostas mais precisas, relevantes e contextualizadas, essenciais para aplicações dinâmicas e específicas do setor.

Referências

  1. “Geração com Recuperação Aprimorada (RAG)” do Prompt Engineering Guide link.
  2. “Retrieval-Augmented Generation & RAG Workflows” link.

--

--