Introdução ao RAG no desenvolvimento de IA
Este artigo é uma introdução à geração aumentada por recuperação (RAG): o que é, como funciona e key conceitos.
O que é geração de recuperação aumentada?
O RAG é uma técnica que permite que um modelo de linguagem ampla (LLM) gere respostas enriquecidas aumentando o prompt de um usuário com dados de suporte recuperados de uma fonte de informações externa. Ao incorporar essas informações recuperadas, o RAG permite que o site LLM gere respostas mais precisas e de melhor qualidade em comparação com a ausência de contexto adicional no prompt.
Por exemplo, suponha que você esteja criando um chatbot de perguntas e respostas para ajudar os funcionários a responder perguntas sobre os documentos proprietários da sua empresa. Um LLM autônomo não conseguirá responder com precisão às perguntas sobre o conteúdo desses documentos se não tiver sido treinado especificamente para isso. O site LLM pode se recusar a responder devido à falta de informações ou, pior ainda, pode gerar uma resposta incorreta.
O RAG aborda esse problema primeiro recuperando informações relevantes dos documentos da empresa com base na consulta de um usuário e, em seguida, fornecendo as informações recuperadas para o site LLM como contexto adicional. Isso permite que o LLM gere uma resposta mais precisa com base nos detalhes específicos encontrados nos documentos relevantes. Em essência, o RAG permite que o site LLM "consulte" as informações recuperadas para formular sua resposta.
Componentes principais de um aplicativo RAG
Um aplicativo RAG é um exemplo de um sistema de IA composto: Ele amplia os recursos de linguagem do modelo sozinho, combinando-o com outras ferramentas e procedimentos.
Ao usar um LLM autônomo, um usuário envia uma solicitação, como uma pergunta, para o LLM, e o LLM responde com uma resposta baseada exclusivamente em seus dados de treinamento.
Em sua forma mais básica, os seguintes passos acontecem em um aplicativo RAG:
Recuperação: A solicitação do usuário é usada para consultar alguma fonte externa de informações. Isso pode significar a consulta a um armazenamento de vetores, a realização de uma pesquisa de palavras-chave em algum texto ou a consulta a um banco de dados SQL. O objetivo do passo a passo da recuperação é obter dados de suporte que ajudem o site LLM a fornecer uma resposta útil.
Aumento: Os dados de suporte do passo de recuperação são combinados com a solicitação do usuário, geralmente usando um padrão com formatação adicional e instruções para o LLM, para criar um prompt.
Geração: O prompt resultante é passado para o LLM, e o LLM gera uma resposta à solicitação do usuário.
Esta é uma visão geral simplificada do processo do RAG, mas é importante observar que a implementação de um aplicativo RAG envolve muitas tarefas complexas. O pré-processamento dos dados de origem para torná-los adequados para uso no RAG, a recuperação eficaz dos dados, a formatação do prompt aumentado e a avaliação das respostas geradas exigem consideração e esforço cuidadosos. Esses tópicos serão abordados com mais detalhes em seções posteriores deste guia.
Por que usar o RAG?
A tabela a seguir descreve os benefícios de usar o RAG em comparação com um LLM autônomo:
Somente com um LLM |
Usando LLMs com RAG |
---|---|
Sem conhecimento proprietário: os LLMs geralmente são treinados em dados disponíveis publicamente, portanto, não podem responder com precisão às perguntas sobre os dados internos ou proprietários de uma empresa. |
Os aplicativos RAG podem incorporar dados proprietários: Um aplicativo RAG pode fornecer documentos proprietários, como memorandos, e-mails e documentos de design para um LLM, permitindo que ele responda a perguntas sobre esses documentos. |
O conhecimento não é atualizado em tempo real: Os LLMs não têm acesso a informações sobre eventos que ocorreram depois que eles foram treinados. Por exemplo, um LLM independente não pode lhe dizer nada sobre os movimentos das ações hoje. |
Os aplicativos RAG podem acessar dados em tempo real: Um aplicativo RAG pode fornecer ao site LLM informações oportunas de uma fonte de dados atualizada, permitindo que ele forneça respostas úteis sobre eventos após a data limite de treinamento. |
Falta de citações: Os LLMs não podem citar fontes específicas de informação ao responder, deixando o usuário incapaz de verificar se a resposta é factualmente correta ou uma alucinação. |
O RAG pode citar fontes: Quando usado como parte de uma candidatura ao RAG, um LLM pode ser solicitado a citar suas fontes. |
Falta de controles de acesso a dados (ACLs): os LLMs sozinhos não podem fornecer respostas diferentes de forma confiável para usuários diferentes com base em permissões específicas do usuário. |
O RAG permite a segurança de dados/ACLs: O passo a passo da recuperação pode ser projetado para encontrar apenas as informações que o usuário tem credenciais para acessar, permitindo que um aplicativo RAG recupere seletivamente informações pessoais ou proprietárias. |
Tipos de RAG
A arquitetura RAG pode funcionar com dois tipos de dados de suporte:
Dados estruturados |
Dados não estruturados |
|
---|---|---|
Definição |
Dados tabulares organizados em linhas e colunas com um esquema específico, por exemplo, tabelas em um banco de dados. |
Dados sem uma estrutura ou organização específica, por exemplo, documentos que incluem texto e imagens ou conteúdo multimídia, como áudio ou vídeos. |
Exemplo de fonte de dados |
|
|
Sua escolha de dados para o RAG depende do seu caso de uso. O restante do tutorial se concentra no RAG para dados não estruturados.
< Previous: Gen IA tutorial intro