Visão geral
A Geração Aumentada por Recuperação (RAG) é um método utilizado para aprimorar as 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 versus 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. 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 dos 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 vai 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, o ajuste fino exige muitos dados e recursos computacionais significativos para possibilitar a criação de um modelo. Já a RAG pode recuperar as informações de um único documento e exige muito menos capacidade de processamento. A efetividade do 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
O Red Hat® OpenShift® AI é uma plataforma de operações de machine learning (MLOps) flexível e escalável, com ferramentas para você criar, implantar e gerenciar aplicações com IA. Desenvolvida com tecnologias open source, a solução oferece recursos confiáveis e operacionalmente consistentes para equipes experimentarem, disponibilizarem modelos e entregarem aplicações inovadoras.
O OpenShift AI oferece a infraestrutura subjacente de cargas de trabalho necessária para organizações implementarem uma arquitetura de RAG em Large Language Model Operations (LLMOps). Isso inclui acesso a um banco de dados vetorial, um LLM para criar incorporações e os mecanismos de recuperação exigidos para gerar saídas.
A Red Hat Consulting desenvolveu o Red Hat OpenShift AI Pilot para ajudar os clientes a começarem a usar o Red Hat OpenShift AI e integrar a solução aos serviços empresariais que eles já têm. Com uma plataforma centralizada, os usuários terão acesso a bibliotecas e ferramentas padronizadas, maior disponibilidade de recursos de computação para todos os usuários e um melhor processo de integração para cientistas de dados e outros. Por meio dessa colaboração, especialistas da Red Hat se juntarão à sua equipe para avaliar o ambiente e a abordagem atuais e identificar requisitos futuros. Nossos especialistas ajudarão a implantar e gerenciar o Red Hat OpenShift AI e a fazer a integração da solução com outras ferramentas de ciência de dados nos ambientes dos clientes para que eles aproveitem ao máximo a tecnologia. Esta colaboração não exige que você tenha modelos de ML funcionais, e a Red Hat está pronta para apoiar sua equipe em qualquer estágio da sua jornada na ciência de dados.
Organizações que desejem ir além da experimentação e desenvolver estratégias para implantação de modelos na produção podem contar com a Red Hat Consulting nas próximas etapas. A colaboração com a MLOps Foundation ajuda as organizações a aprimorar suas formas de trabalho e capacidades em ciência de dados para evoluir suas estratégias de ML, criar padrões reutilizáveis para serviços de inferência prontos para produção e automatizar todo o ciclo de vida do modelo de ML utilizando. ferramentas e arquiteturas nativas em nuvem.
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.