Partilhar via


Projetar e desenvolver uma solução RAG

O padrão Retrieval-Augmented Generation (RAG) é uma abordagem padrão do setor para criar aplicativos que usam modelos de linguagem para processar dados específicos ou proprietários que o modelo ainda não conhece. A arquitetura é simples, mas projetar, experimentar e avaliar soluções RAG que se encaixam nessa arquitetura envolvem muitas considerações complexas que se beneficiam de uma abordagem rigorosa e científica.

Este artigo é a introdução de uma série. Cada artigo da série cobre uma fase específica no projeto da solução RAG.

Os outros artigos desta série abrangem as seguintes considerações:

  • Como determinar quais documentos de teste e consultas usar durante a avaliação
  • Como escolher uma estratégia de fragmentação
  • Como determinar quais pedaços você deve enriquecer e como enriquecê-los
  • Como escolher o modelo de incorporação certo
  • Como configurar o índice de pesquisa
  • Como determinar quais pesquisas deve-se realizar, como as vetoriais, de texto completo, híbridas e manuais.
  • Como avaliar cada etapa

Arquitetura RAG

Diagrama que mostra a arquitetura de alto nível de uma solução RAG, incluindo o fluxo de solicitações e o pipeline de dados.

Fluxo de aplicativos RAG

O fluxo de trabalho a seguir descreve um fluxo de alto nível para um aplicativo RAG.

  1. O usuário emite uma consulta em uma interface de usuário de aplicativo inteligente.
  2. O aplicativo inteligente faz uma chamada de API para um orquestrador. Você pode implementar o orquestrador com ferramentas ou plataformas como Kernel Semântico, serviço Azure AI Agent ou LangChain.
  3. O orquestrador determina qual pesquisa executar na Pesquisa de IA do Azure e emite a consulta.
  4. O orquestrador empacota os N melhores resultados da consulta. Ele empacota os principais resultados e a consulta como contexto dentro de um prompt e envia o prompt para o modelo de linguagem. O orquestrador devolve a resposta à aplicação inteligente para que o utilizador a leia.

Fluxo do canal de dados RAG

O workflow a seguir descreve um fluxo de alto nível para um pipeline de dados que fornece dados de base para uma aplicação RAG.

  1. Os documentos são impulsionados ou integrados num pipeline de dados.
  2. O pipeline de dados processa cada documento individualmente, concluindo as seguintes etapas:
    1. Fragmentar o documento: dividir o documento em partes semanticamente relevantes que, idealmente, contêm uma única ideia ou conceito.
    2. Enriquecimento de partes: adiciona campos de metadados que o pipeline cria com base no conteúdo das partes. O pipeline de dados categoriza os metadados em campos discretos, como título, resumo e palavras-chave.
    3. Incorporar partes: usa um modelo de incorporação para vetorizar a parte e quaisquer outros campos de metadados usados para pesquisas vetoriais.
    4. Persistir blocos: Armazene os blocos no índice de pesquisa.

Considerações sobre o projeto e a avaliação do RAG

Você deve tomar várias decisões de implementação enquanto projeta sua solução RAG. O diagrama a seguir ilustra algumas das perguntas que você deve fazer ao tomar essas decisões.

Diagrama que mostra a arquitetura de alto nível de uma solução RAG, incluindo as perguntas que você deve fazer ao projetar a solução.

A lista a seguir fornece uma breve descrição do que você deve fazer durante cada fase do desenvolvimento da solução RAG.

  • Durante a fase de preparação, deves:

    • Determine o domínio da solução. Defina claramente os requisitos de negócios para a solução RAG.
    • Reúna os documentos de teste que sejam representativos. Reúna documentos de teste para sua solução RAG que sejam representativos de sua coleção de documentos.
    • Reúna consultas de teste. Reúna informações e teste consultas e gere consultas sintéticas e consultas que seus documentos não cobrem.
  • Durante a fase de fragmentação, deverás:

    • Compreenda a segmentação económica. Entenda quais fatores considerar ao avaliar o custo geral de sua solução de fragmentação para sua coleção de texto.
    • Realizar análise documental. Faça as seguintes perguntas para ajudá-lo a tomar decisões ao analisar um tipo de documento:
      • Que conteúdo do documento pretende ignorar ou excluir?
      • Que conteúdo você deseja capturar em partes?
      • Como você quer fragmentar esse conteúdo?
    • Compreenda os métodos de fragmentação. Compreenda as diferentes abordagens na fragmentação, incluindo abordagens baseadas em frases, de tamanho fixo e personalizadas, ou usando aumento de modelos de linguagem, análise do layout dos documentos e modelos de aprendizado de máquina.
    • Entenda como a estrutura do documento afeta a fragmentação. Escolha uma abordagem de fragmentação com base no grau de estrutura que o documento tem.
  • Durante a fase de enriquecimento de chunks, deves:

    • Limpe pedaços. Implemente abordagens de limpeza para eliminar diferenças que não afetam o significado do texto. Este método suporta correspondências próximas.
    • Aumente os fragmentos. Considere aumentar seus dados de bloco com campos de metadados comuns e entenda seus usos potenciais na pesquisa. Saiba mais sobre as ferramentas ou técnicas mais usadas para gerar conteúdo de metadados.
  • Durante a fase de incorporação, você deve:

    • Entenda a importância do modelo de incorporação. Um modelo de incorporação pode afetar significativamente a relevância dos resultados da sua pesquisa vetorial.
    • Escolha o modelo de incorporação certo para o seu caso de uso.
    • Avalie modelos de incorporação. Avalie modelos de incorporação visualizando incorporações e calculando distâncias de incorporação.
  • Durante a fase de recuperação de informações, você deve:

    • Crie um índice de pesquisa. Aplique as configurações de pesquisa vetorial apropriadas aos seus campos vetoriais.
    • Compreender as opções de pesquisa. Considere os diferentes tipos de pesquisas, incluindo pesquisas vetoriais, de texto completo, híbridas e manuais. Saiba como dividir uma consulta em subconsultas e filtrar consultas.
    • Avalie pesquisas. Use métodos de avaliação da recuperação da informação para avaliar a sua solução de pesquisa.
  • Durante a fase de avaliação de ponta a ponta do modelo de linguagem , você deve:

    • Compreender as métricas de avaliação de modelos linguísticos. Há várias métricas, incluindo fundamentação, completude, utilização e relevância, que você pode usar para avaliar a resposta do modelo de linguagem.
    • Compreender a semelhança e as métricas de avaliação. Você pode usar métricas de semelhança e avaliação para avaliar sua solução RAG.
    • Compreender a importância da documentação, dos relatórios e da agregação. Documente os hiperparâmetros e os resultados da avaliação. Agregue os resultados de várias consultas e visualize os resultados.
    • Use o acelerador de experimento RAG. Use o repositório GitHub do acelerador de experimentos RAG para ajudar sua equipe a encontrar as melhores estratégias para a implementação do RAG executando vários experimentos, persistindo e avaliando os resultados.

Abordagem estruturada

Devido ao número de etapas e variáveis, é importante que você siga um processo de avaliação estruturado para sua solução RAG. Avalie os resultados de cada etapa e faça alterações com base em suas necessidades. Você deve avaliar cada etapa de forma independente para otimização, mas lembre-se de que o resultado final é o que seus clientes experimentam. Certifique-se de entender todas as etapas desse processo antes de determinar seus próprios critérios de aceitação para cada etapa.

Contribuidores

Este artigo é mantido pela Microsoft. Foi originalmente escrito pelos seguintes contribuidores.

Principais autores:

  • Raouf Aliouat | Engenheiro de Software II
  • Rob Bagby | Desenvolvedor de Conteúdo Principal - Azure Patterns & Practices
  • Prabal Deb | Engenheiro de Software Principal
  • Chad Kittel | Engenheiro Principal de Software - Azure Patterns & Practices
  • Ritesh Modi | Engenheiro Principal
  • Ryan Pfalz | Gestor de Programa Técnico Sénior
  • Randy Thurman | Principal Arquiteto de Soluções de Nuvem de IA

Para ver perfis não públicos do LinkedIn, faça login no LinkedIn.

Próximos passos