Introdução ao RAG no site AI development
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 composto AI: 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, as seguintes etapas 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 da etapa de recuperação é obter dados de suporte que ajudem o LLM a fornecer uma resposta útil.
- Aumento : Os dados de suporte da etapa 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: A etapa de recuperação pode ser projetada 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. |
Componentes do aplicativo RAG
Em particular:
-
pipeline de dados : Transformação de documentos não estruturados, como coleções de PDFs, em um formato adequado para recuperação usando o aplicativo RAG pipeline de dados.
-
Recuperação, aumento e geração (cadeia RAG): Uma série (ou cadeia) de etapas é chamada para:
- Entenda a pergunta do usuário.
- Recupere os dados de suporte.
- Chame um LLM para gerar uma resposta com base na pergunta do usuário e nos dados de suporte.
-
Avaliação : Avaliar o aplicativo RAG para determinar sua qualidade, custo e latência para garantir que ele atenda aos requisitos de seus negócios.
-
Governança e LLMOps : acompanhamento e gerenciamento do ciclo de vida de cada componente, incluindo linhagem de dados e governança (controles de acesso).
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.