Pular para o conteúdo principal

RAG (Retrieval Augmented Generation) no Databricks

A geração aumentada por recuperação (RAG) é uma técnica poderosa que combina grandes modelos de linguagem (LLMs) com recuperação de dados tempo-real para gerar respostas mais precisas, atualizadas e contextualmente relevantes.

Esta abordagem é especialmente valiosa para responder a perguntas sobre informação proprietária, que muda com frequência ou específica do domínio.

O que é geração aumentada de recuperação?

Na forma mais simples, um agente RAG faz o seguinte:

  1. **Recuperação**: a solicitação do usuário é usada para consultar uma base de conhecimento externa, como um armazenamento vetorial, uma busca por palavras-chave ou um banco de dados SQL. O objetivo é obter dados de suporte para a resposta do LLM.
  2. Aumento : Os dados de apoio são combinados com a solicitação do usuário, frequentemente usando um padrão com formatação e instruções adicionais para o LLM, para criar um prompt.
  3. Geração : o prompt é passado para o LLM para gerar uma resposta à solicitação do usuário.

O fluxo de uma aplicação RAG da solicitação do usuário à recuperação de dados e resposta.

Benefícios do RAG

O RAG melhora os LLMs das seguintes maneiras:

  • Conhecimento proprietário: o RAG pode incluir informações proprietárias não utilizadas inicialmente para treinar o LLM, como memorandos, e-mails e documentos para responder a perguntas específicas do domínio.
  • Informações atualizadas: Uma aplicação RAG pode fornecer ao LLM informações de uma base de conhecimento atualizada.
  • Citação de fontes: o RAG permite que os LLMs citem fontes específicas, permitindo que os usuários verifiquem a precisão factual das respostas.
  • Segurança de dados e listas de controle de acesso (ACL): a etapa de recuperação pode ser projetada para recuperar seletivamente informações pessoais ou proprietárias com base nas credenciais do usuário.

Componentes do RAG

Uma aplicação RAG típica envolve várias etapas:

  1. **Pipeline de dados**: pré-processar e indexar documentos, tabelas ou outros dados para recuperação rápida e precisa.

  2. Cadeia RAG (Retrieval, Augmentation, Generation) : Chame uma série (ou cadeia) de os passos para:

    • Compreender a pergunta do usuário.
    • Recupere dados de suporte.
    • Aumente o prompt com dados de suporte.
    • Gerar uma resposta de um LLM usando o prompt aumentado.
  3. Avaliação e monitoramento : Avaliar o aplicativo RAG para determinar sua qualidade, custo e latência para garantir que atenda aos seus requisitos de negócios.

  4. Governança e LLMOps : Acompanhe e gerencie o ciclo de vida de cada componente, incluindo linhagem de dados e controles de acesso.

Diagrama dos componentes do aplicativo RAG.

Tipos de dados RAG: estruturados e não estruturados

A arquitetura RAG pode funcionar com dados de suporte não estruturados ou estruturados. Os dados que você usa com RAG dependem do seu caso de uso.

Dados não estruturados: dados sem uma estrutura ou organização específica.

  • PDFs
  • Documentos do Google/Office
  • Wikis
  • Imagens
  • Vídeos

Dados estruturados: dados tabulares organizados em linhas e colunas com um esquema específico, como tabelas em um banco de dados.

  • Registros de clientes em um sistema de BI ou Data Warehouse
  • Dados de transação de um banco de dados SQL
  • Dados de APIs de aplicativos (por exemplo, SAP, Salesforce, etc.)

Avaliação e monitoramento

Avaliação e monitoramento ajudam a determinar se sua aplicação RAG atende aos requisitos de qualidade, custo e latência. A avaliação ocorre durante o desenvolvimento, enquanto o monitoramento acontece uma vez que a aplicação é implementada em produção.

RAG sobre dados não estruturados tem muitos componentes que afetam a qualidade. Por exemplo, alterações na formatação dos dados podem influenciar os fragmentos recuperados e a capacidade do LLM de gerar respostas relevantes. Portanto, é importante avaliar componentes individuais além do aplicativo como um todo.

Para obter mais informações, consulte Agent Evaluation (MLflow 2).

RAG no Databricks

O Databricks oferece uma plataforma de ponta a ponta para o desenvolvimento de RAG, incluindo:

Próximos os passos