Editar

Compartilhar via


Criar e desenvolver uma solução RAG

Serviços de IA do Azure
Azure AI Search
Serviço OpenAI do Azure
Azure Machine Learning

O padrão rag (geração de Retrieval-Augmented) é 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 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 agrupamento
  • 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, como vetor, texto completo, híbrido e várias pesquisas manuais, você deve executar
  • 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, fluxo de prompt do Azure Machine Learning 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 o usuário ler.

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 aterramento 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 partes: adiciona campos de metadados que o pipeline cria com base no conteúdo nas partes. 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. Persista partes: armazena as partes 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.
    • Reunir documentos de teste representativos. Reúna documentos de teste para sua solução RAG que são representativos de sua coleção de documentos.
    • Reunir consultas de teste. Colete informações e teste consultas e gere consultas e consultas sintéticas que seus documentos não abrangem.
  • Durante a fase de agrupamento , 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 agrupamento. Entenda as diferentes abordagens de agrupamento, incluindo abordagens baseadas em frases, de tamanho fixo e personalizadas ou usando o aumento do modelo de linguagem, a análise de layout de documento e os modelos de machine learning.
    • Entenda como a estrutura do documento afeta o agrupamento. Escolha uma abordagem de agrupamento com base no grau de estrutura que o documento tem.
  • Durante a fase de enriquecimento de partes , você deve:

    • Partes limpas. 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 partes. Considere aumentar seus dados de partes 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 inserçã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 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 aterramento, integridade, utilização e relevância, que você pode usar para avaliar a resposta do modelo de idioma.
    • 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. Você pode usar o repositório GitHub do Acelerador de Experimentos de 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.

Colaboradores

Este artigo é mantido pela Microsoft. Foi originalmente escrito pelos colaboradores a seguir.

Autores principais:

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

Próximas etapas