Visão geral
A Geração Aumentada por Recuperação (RAG) é um método utilizado que permite obter melhores respostas de uma aplicação de IA generativa ao vincular recursos externos a um Large Language Model (LLM).
O que é geração aumentada de recuperação?
A RAG oferece uma maneira de complementar os dados de um LLM com fontes de conhecimento externas à sua escolha, como repositórios de dados, coleções de texto e documentações pré-existentes. Esses recursos são segmentados, indexados em um banco de dados vetorial e utilizados como material de referência para aumentar a precisão das respostas.
A RAG é útil porque direciona o LLM a recuperar informações específicas em tempo real nas sources of truth que você escolher. Além disso, ela reduz custos porque oferece uma experiência personalizada sem despesas com treinamento e ajustes finos do modelo. A RAG também economiza recursos porque, envia apenas as informações mais relevantes, em vez de documentos extensos, durante a consulta a um LLM.
Recursos da Red Hat
Saídas de LLM comuns e a RAG
Os LLMs usam técnicas de processamento de linguagem natural (PNL) e machine learning (aprendizado de máquina) para entender e gerar linguagem humana para inferência de IA. Inferência de IA é a fase operacional na qual o modelo é capaz de aplicar o que aprendeu no treinamento em situações reais.
Mesmo sendo muito importantes para a comunicação e o processamento de dados, os LLMs têm algumas desvantagens:
- Os LLMs são treinados com dados de domínio público, mas podem não incluir as informações específicas que você quer que eles consultem, como um conjunto de dados interno da sua organização.
- O conhecimento dos LLMs têm prazo de validade, ou seja, as informações usadas no treinamento deles não recebem atualizações contínuas. Isso faz com que o material de origem fique desatualizado e perca a relevância.
- Os LLMs se concentram em agradar o usuário, o que faz com que eles às vezes apresentem informações falsas ou desatualizadas (também chamado de "alucinação").
Implementar uma arquitetura de RAG em um sistema de resposta a perguntas baseado em LLMs cria uma linha de comunicação entre os modelos e suas outras fontes de informações escolhidas. O LLM é capaz de comparar e complementar seu próprio conhecimento, o que oferece uma saída mais confiável e precisa para o usuário que faz a consulta.
Quais são os benefícios da RAG?
Graças aos seus mecanismos de recuperação integrados, uma arquitetura de RAG consegue utilizar outras fontes de dados além do treinamento geral de um LLM. Vincular um conjunto de fatos externos e comprováveis a um LLM por meio da RAG oferece vários benefícios:
Precisão
A RAG concede a um LLM fontes que ele pode citar para que os usuários comprovem as informações. Além disso, é possível projetar uma arquitetura de RAG para responder com "Eu não sei" se a pergunta estiver fora do seu escopo de conhecimento. Em geral, a RAG diminui as chances de que um LLM compartilhe informações incorretas e tendenciosas, aumentando a confiança do usuário.
Custo-benefício
O retreinamento e o ajuste fino de LLMs são processos caros e demorados, assim como a criação de um novo modelo de base com informações específicas do domínio (para desenvolver algo como um chatbot, por exemplo). Com a RAG, os usuários podem apresentar novos dados a um LLM, além de trocar ou atualizar as fontes de informações por meio do simples upload de um documento ou arquivo.
A RAG também reduz os custos de inferência. As consultas de LLM são caras: elas aumentam o uso do seu próprio hardware quando você executa um modelo local e o pagamento por utilização quando consome um serviço externo por meio de uma interface de programação de aplicações (API). Em vez de transmitir um documento de referência completo de uma só vez a um LLM, a RAG envia apenas as partes mais relevantes desse material, o que diminui o tamanho das consultas e aumenta a eficiência.
Controle para os desenvolvedores
Em comparação com os métodos tradicionais de ajuste fino, a RAG oferece uma maneira mais acessível e simples de coletar feedback, solucionar problemas e corrigir aplicações. Para os desenvolvedores, o principal benefício de uma arquitetura de RAG é a possibilidade de usar um fluxo de informações específicas do domínio atualizadas
Privacidade e soberania dos dados
Tradicionalmente, o uso de detalhes confidenciais no ajuste fino de uma ferramenta de LLM é um processo arriscado, já que os modelos podem revelar informações contidas nos dados de treinamento. Para solucionar essas questões de privacidade, a RAG permite que dados sensíveis permaneçam on-premises enquanto são usados por LLMs externos confiáveis ou locais. Além disso, é possível configurar a arquitetura de RAG para restringir a recuperação de informações confidenciais de acordo com diferentes níveis de autorização. Assim, determinados usuários poderão acessar certas informações com base no nível de permissão de segurança deles.
Como a RAG funciona?
As arquiteturas de RAG recuperam dados de uma fonte externa, processam no contexto de um LLM e geram uma resposta com base na combinação dessas fontes O processo tem três etapas principais: preparação dos dados, recuperação e geração.
Etapa 1: preparação de dados (para recuperação)
- Coleta e carregamento de documentação: identifique e colete os documentos de origem que você deseja compartilhar com o LLM. Certifique-se de que eles estejam em um formato compatível com o LLM, geralmente arquivos de texto, tabelas de bancos de dados e PDFs. Seja qual for o formato de origem, todos os documentos precisam ser convertidos em um arquivo de texto antes de serem incorporados ao banco de dados vetorial. Esse processo também é conhecido como ETL: sigla em inglês para os estágios de extrair, transformar e carregar. O ETL garante que os dados brutos estejam limpos e organizados para o armazenamento, análise e machine learning.
Transformação: a "divisão de texto" ou "fragmentação" prepara os documentos para recuperação. Esse é o processo de analisar e catalogar os documentos atualizados em blocos relacionados com base em diferentes características. Por exemplo, o modelo pode ter mais facilidade para pesquisar e recuperar documentos formatados por parágrafos do que aqueles que têm estruturas com tabelas e imagens.
A fragmentação pode se basear em fatores como semântica, frases, tokens, formatação, caracteres HTML ou tipo de código. Muitos frameworks open source podem ajudar no processamento de documentos, por exemplo, o LlamaIndex e o LangChain.
Incorporação: as incorporações usam um modelo especializado de machine learning (modelo de incorporações vetoriais) para converter os dados em vetores numéricos. Além disso, eles permitem efetuar operações matemáticas para avaliar semelhanças e diferenças entre blocos de dados. Com a incorporação, é possível converter textos e imagens em um vetor que designa o significado básico do conteúdo, descartando os detalhes irrelevantes. O processo de incorporação atribui um valor numérico (como [1.2, -0.9, 0.3]) a um bloco de dados e faz a indexação dele em um sistema maior chamado de banco de dados vetorial.
Em um banco de dados vetorial, esse valor numérico ajuda a arquitetura de RAG a indicar as associações entre os blocos de conteúdo e a organizar os dados para otimizar a recuperação. A finalidade da indexação é estruturar os vetores para que conceitos similares sejam armazenados em coordenadas adjacentes. Por exemplo, "café" e "chá" podem ser colocados próximos. Isso também se aplica a "bebida quente". Já conceitos não relacionados como "celulares" e "televisão" ficam mais longe. O modelo usa a distância ou a proximidade entre dois vetores para decidir quais informações recuperar e incluir no resultado da consulta do usuário.
- Armazenamento: os dados combinados de várias fontes (seus documentos externos escolhidos e o LLM) são armazenados em um repositório central.
Etapa 2: recuperação
Depois que os dados são catalogados no banco de dados vetorial, os algoritmos pesquisam e recuperam trechos de informações relevantes em relação ao prompt e à consulta do usuário. Frameworks como o LangChain oferecem suporte a vários algoritmos de recuperação, incluindo os de recuperação baseada em semelhanças entre dados, como semântica, metadados e documentos originais.
No cenário de ambientes de consumo em domínios abertos, a recuperação de informações vem de documentos indexados na Internet, que são acessados por meio da API de uma fonte. Já no cenário de ambientes empresariais de domínio fechado, em que é necessário manter o sigilo das informações e proteger todas elas de fontes externas, a recuperação pela arquitetura de RAG pode permanecer no local para oferecer mais segurança.
Por fim, os dados recuperados são injetados no prompt e enviados ao LLM para processamento.
Etapa 3: geração
- Saída: uma resposta é apresentada ao usuário. Se o método da RAG funcionar conforme esperado, o usuário receberá uma resposta precisa com base no conhecimento fornecido pela fonte.
Práticas recomendadas e considerações sobre a RAG
Ao criar um modelo de machine learning, é importante encontrar documentos-fonte de alta qualidade, já que a saída (resultado) refletirá os dados inseridos. Sistemas que produzem resultados distorcidos ou enviesados são uma grande preocupação para as organizações que utilizam inteligência artificial. É importante ter atenção para que seus documentos-fonte não contenham informações enviesadas — ou seja, que tendem a conferir vantagens sistemáticas a grupos privilegiados e desvantagens sistemáticas a grupos não privilegiados — para evitar vieses nos resultados
Durante a coleta de dados para uma arquitetura de RAG, verifique se os dados incluídos nos documentos de origem são citados com precisão e estão atualizados. Além disso, é essencial que especialistas humanos avaliem a saída antes de implantar um modelo para um público mais amplo. Eles devem continuar a analisar a qualidade dos resultados mesmo depois que o modelo for implantado para uso na produção.
Quais as diferenças entre a RAG e outros métodos de treinamento e processamento de dados?
Entender as diferenças entre a arquitetura de RAG e os métodos de treinamento de dados ajuda você a tomar decisões estratégicas sobre qual recurso de IA implantar para atender às suas necessidades. É possível que você venha a utilizar mais de um método por vez. Vamos conhecer alguns métodos e processos usuais para trabalhar com os dados, e compará-los com a RAG.
RAG versus engenharia de prompt
A engenharia de prompt é a maneira mais básica e menos técnica de interagir com um LLM. Isso envolve a criação de um conjunto de instruções que será seguido por um modelo para gerar a saída desejada após a consulta de um usuário. Em comparação com a RAG, a engenharia de prompt exige menos dados (usa somente aqueles do pré-treinamento do modelo) e tem um custo baixo (utiliza apenas as ferramentas e modelos existentes). No entanto, ela não é capaz de gerar saídas com base em informações atualizadas ou variáveis. Além disso, a qualidade da saída depende da qualidade do prompt, ou seja, as respostas podem ser inconsistentes.
Use a engenharia de prompt em vez da RAG se quiser uma maneira simples e econômica de extrair informações sobre assuntos gerais sem muitos detalhes.
RAG versus pesquisa semântica
Semântica se refere ao estudo do significado das palavras. A pesquisa semântica é uma técnica para analisar dados de um jeito que considera a intenção e o contexto por trás da consulta.
Ela usa NLP e machine learning para interpretar uma consulta e encontrar dados que possam ser usados na geração de uma resposta mais relevante e precisa do que uma simples combinação de palavras-chave ofereceria. Em outras palavras, a pesquisa semântica preenche a lacuna entre a consulta feita pelo usuário e os dados utilizados para gerar um resultado.
Por exemplo, se você inserir uma consulta sobre uma "viagem dos sonhos", a pesquisa semântica vai ajudar o modelo a entender que é mais provável que esteja buscando informações sobre uma viagem "ideal". Em vez de gerar uma resposta sobre sonhos, ela vai produzir uma mais relevante para sua intenção, que pode ser um pacote de viagens para um destino paradisíaco.
A RAG usa a pesquisa semântica (que é um componente dela) durante a etapa de recuperação do banco de dados vetorial para produzir resultados que sejam atualizados e contextualmente precisos.
RAG versus pré-treinamento
O pré-treinamento é a primeira fase do treinamento de um LLM. Nessa etapa, o modelo aprende um grande conjunto de dados para adquirir uma compreensão abrangente da linguagem. Da mesma forma como o cérebro humano cria vias neurais à medida que aprendemos algo novo, o pré-treinamento cria uma rede neural em um LLM à medida que ele é treinado com dados.
Em comparação com a RAG, o pré-treinamento de um LLM é mais caro, pode demorar mais e exigir mais recursos computacionais, como milhares de GPUs. Use o pré-treinamento em vez da RAG se tiver acesso a um amplo conjunto de dados (grande o suficiente para influenciar o modelo treinado de maneira significativa) e quiser conceder ao LLM uma compreensão básica e integrada sobre determinados assuntos e conceitos.
RAG versus ajuste fino
Enquanto uma arquitetura de RAG define o que um LLM precisa saber, o ajuste fino determina como um modelo deve agir. O ajuste fino é o processo em que um LLM pré-treinado recebe ainda mais treinamento com um conjunto de dados menor e mais direcionado. Isso permite que um modelo aprenda padrões comuns que não mudam com o tempo.
A RAG e o ajuste fino podem parecer similares, mas há diferenças entre eles. Por exemplo, para o ajuste fino, são necessários grandes quantidades de dados e recursos computacionais significativos para a criação do modelo, a menos que você recorra a técnicas de ajuste fino eficiente em parâmetros (PEFT).
Por outro lado, a RAG é capaz de recuperar dados de um único documento e necessita menos recursos computacionais. A efetividade da RAG na redução das alucinações é comprovada, enquanto o refinamento de LLMs para reduzir alucinações é um processo muito mais demorado e difícil.
Com frequência, os modelos podem se beneficiar tanto do ajuste fino quanto da arquitetura de RAG. No entanto, você deve optar pelo ajuste fino no lugar da RAG se tiver acesso a um volume expressivo de dados e recursos, se esses dados não mudarem muito, ou se estiver trabalhando em uma tarefa especializada que exija uma análise mais personalizada em vez do formato de perguntas e respostas da RAG.
Casos de uso da RAG
A arquitetura de RAG tem muitos casos de uso possíveis. Confira a seguir alguns dos mais conhecidos.
Atendimento ao cliente: programar um chatbot para responder às consultas dos clientes usando insights de um documento específico ajuda a diminuir o tempo de resolução de chamados e produz um sistema de atendimento mais eficaz.
Geração de insights: a RAG pode ajudar você a aprender a partir dos documentos que já possui. Para encontrar respostas que ajudem a entender melhor seus recursos, utilize uma arquitetura de RAG para vincular um LLM a relatórios anuais, documentos de marketing, comentários nas redes sociais, avaliações de clientes, resultados de pesquisas, estudos e outros materiais. Não se esqueça de que você pode usar a RAG para estabelecer uma conexão direta com fontes de dados em tempo real, como feeds de redes sociais, sites e outras áreas atualizadas com frequência. Assim, é possível gerar respostas úteis em tempo real.
Sistemas de informação de saúde: a arquitetura de RAG melhora os sistemas que oferecem aconselhamento e informações médicas. A RAG tem o potencial de analisar fatores como prontuários médicos, serviços de marcação de consultas e as diretrizes e pesquisas mais recentes, o que ajuda a conectar os pacientes ao atendimento e serviços de que eles precisam.
Como a Red Hat pode ajudar
Red Hat® AI é nosso portfólio de produtos de IA, desenvolvido com base em soluções em que nossos clientes confiam. Com essa base, nossas soluções permanecem consistentes, flexíveis e escaláveis.
O Red Hat AI pode ajudar as organizações a:
- Adotar a IA e inovar rapidamente.
- Reduzir as complexidades da entrega de soluções de IA.
- Implante em qualquer ambiente.
Controle e colaboração do desenvolvedor
As soluções do Red Hat AI permitem as organizações a implementar a arquitetura de RAG no processo de LLMOps oferecendo infraestrutura de carga de trabalho subjacente.
Especificamente, o Red Hat® OpenShift® AI (uma plataforma de MLOps flexível e escalável) oferece aos desenvolvedores ferramentas para criar, implantar e gerenciar aplicações usando inteligência artificial. Ele fornece a infraestrutura subjacente para dar suporte ao banco de dados de vetores, criar embeddings, consultar LLMs e usar mecanismos de recuperação necessários para produzir um resultado.
O Red Hat AI também oferece mecanismos adicionais de alinhamento de modelo para melhorar seu LLM. Essa solução é chamada de InstructLab. Ele oferece uma abordagem voltada para a comunidade open source para melhorar os recursos de LLM.
Com colaboração contínua e suporte, você pode personalizar suas aplicações de modelo de IA para seus casos de uso empresariais com rapidez e facilidade.
Padrão de solução: apps de IA com a Red Hat e o NVIDIA AI Enterprise
Crie uma aplicação com RAG
O Red Hat OpenShift AI é uma plataforma para criar projetos de ciência de dados e disponibilizar aplicações com IA. Você pode integrar todas as ferramentas para oferecer suporte à Geração Aumentada por Recuperação (RAG), um método para receber respostas da IA a partir dos seus próprios documentos de referência. Quando você conecta o OpenShift AI ao NVIDIA AI Enterprise, é possível testar Large Language Models (LLMs) para encontrar o melhor modelo para sua aplicação.
Crie um pipeline de documentos
Para usar a RAG, primeiro você precisa ingerir seus documentos em um banco de dados vetorial. No nosso app de exemplo, inserimos um conjunto de documentos da solução em um banco de dados do Redis. Como esses documentos mudam com frequência, criamos um pipeline para esse processo que executaremos periodicamente. Dessa forma, sempre teremos as versões mais recentes dos documentos.
Confira o catálogo de LLM
O NVIDIA AI Enterprise oferece um acesso a um catálogo de diferentes LLMs para que você tenha opções diversas e selecione o modelo com os melhores resultados. Os modelos são hospedados no catálogo da API da NVIDIA. Depois de configurar um token de API, é possível implantar um modelo usando o NVIDIA NIM que disponibiliza a plataforma diretamente a partir do OpenShift AI.
Como escolher o modelo ideal
Conforme você testa LLMs diferentes, seus usuários podem avaliar cada resposta gerada. Você pode configurar um dashboard de monitoramento do Grafana para comparar as avaliações e o tempo de resposta e latência de cada modelo. Depois, use esses dados para escolher o melhor LLM para a produção.

Blog da Red Hat
Tudo relacionado à Red Hat: soluções, treinamentos e certificações Red Hat, casos de sucesso de clientes, novidades dos nossos parceiros e notícias sobre projetos das comunidades open source.