Compartilhar via


Criar e desenvolver uma solução RAG

O padrão RAG (Geração Aumentada de Recuperação) é uma abordagem padrão da indústria para desenvolver 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 aborda uma fase específica no design da solução RAG.

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

  • Como determinar quais documentos e consultas de teste usar durante a avaliação
  • Como escolher uma estratégia de fragmentação
  • Como determinar quais partes você deve enriquecer e como enriquecê-las
  • Como escolher o modelo de inserção correto
  • Como configurar o índice de pesquisa
  • Como determinar quais pesquisas você deve executar, como pesquisas de vetor, texto completo, híbrido e múltiplas manuais.
  • Como avaliar cada etapa

Arquitetura de RAG

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

Fluxo do aplicativo 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 do Agente de IA do Azure ou LangChain.
  3. O orquestrador determina qual pesquisa executar no Azure AI Search e emite a consulta.
  4. O orquestrador empacota os principais resultados N da consulta. Ele empacota os principais resultados e a consulta como contexto em um prompt e envia o prompt para o modelo de idioma. O orquestrador retorna a resposta ao aplicativo inteligente para leitura pelo usuário.

Fluxo de pipeline de dados RAG

O fluxo de trabalho a seguir descreve um fluxo de alto nível para um pipeline de dados que fornece dados de base para um aplicativo RAG.

  1. Os documentos são enviados por push ou puxados para um pipeline de dados.
  2. O pipeline de dados processa cada documento individualmente concluindo as seguintes etapas:
    1. Documento em partes: divide o documento em partes semanticamente relevantes que, idealmente, têm uma única ideia ou conceito.
    2. Enriquecer segmentos: adiciona campos de metadados que o pipeline cria com base no conteúdo nos segmentos. O pipeline de dados categoriza os metadados em campos discretos, como título, resumo e palavras-chave.
    3. Inserir partes: usa um modelo de inserção para vetorizar a parte e quaisquer outros campos de metadados usados para pesquisas de vetor.
    4. Persistir fragmentos: armazena os fragmentos no índice de pesquisa.

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

Você deve tomar várias decisões de implementação ao projetar 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 , você deve:

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

    • Entenda a economia em partes. Entenda quais fatores considerar ao avaliar o custo geral da sua solução de agrupamento para sua coleção de texto.
    • Execute a análise do documento. Faça as seguintes perguntas para ajudá-lo a tomar decisões ao analisar um tipo de documento:
      • Qual conteúdo no documento você deseja ignorar ou excluir?
      • Qual conteúdo você deseja capturar em partes?
      • Como você deseja dividir esse conteúdo?
    • Entenda as abordagens de fragmentação. Entenda as diferentes abordagens para fragmentação, incluindo abordagens baseadas em frases, de tamanho fixo e personalizadas ou usando aumento de modelo de linguagem, análise de layout de documento e modelos de aprendizado de máquina.
    • Entenda como a estrutura do documento afeta a fragmentação. Escolha uma abordagem de agrupamento com base no grau de estrutura que o documento tem.
  • Durante a fase de enriquecimento de fragmentos, você deve:

    • Fragmentos limpos. Implemente abordagens de limpeza para eliminar diferenças que não afetam o significado do texto. Esse método dá suporte a correspondências de proximidade.
    • Aumentar fragmentos. Considere aumentar seus blocos de dados com campos de metadados comuns e entender seus possíveis usos na pesquisa. Saiba mais sobre ferramentas ou técnicas comumente usadas para gerar conteúdo de metadados.
  • Durante a fase de incorporação, você deve:

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

    • Crie um índice de pesquisa. Aplique as configurações de pesquisa de vetor apropriadas aos campos de vetor.
    • Entenda as opções de pesquisa. Considere os diferentes tipos de pesquisas, incluindo vetor, texto completo, híbrido e várias pesquisas manuais. Saiba mais sobre como dividir uma consulta em subconsultas e filtrar consultas.
    • Avaliar pesquisas. Use métodos de avaliação de recuperação de informações para avaliar sua solução de pesquisa.
  • Durante a fase de avaliação de ponta a ponta do modelo de linguagem, você deve:

    • Entenda as métricas de avaliação do modelo de linguagem. Há várias métricas, incluindo fundamentação, integridade, utilização e relevância, que você pode usar para avaliar a resposta do modelo de linguagem.
    • Entenda as métricas de similaridade e avaliação. Você pode usar métricas de similaridade e avaliação para avaliar sua solução RAG.
    • Entenda a importância da documentação, do relatório e da agregação. Documente os hiperparâmetros e os resultados da avaliação. Agregar os resultados de várias consultas e visualizar 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 seus requisitos. 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 colaboradores a seguir.

Autores principais:

  • Raouf Aliouat | Engenheiro de Software II
  • Rob Bagby | Principal Desenvolvedor de Conteúdo – Padrões e Práticas do Azure
  • Prabal Deb | Engenheiro de Software Principal
  • Chad Kittel | Engenheiro de Software Principal – Padrões e Práticas do Azure
  • Ritesh Modi | Engenheiro principal
  • Ryan Pfalz | Gerente sênior de programas técnicos
  • Randy Thurman | Arquiteto principal de soluções de ia na nuvem

Para ver perfis não públicos do LinkedIn, entre no LinkedIn.

Próximas etapas