Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
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
Fluxo do aplicativo RAG
O fluxo de trabalho a seguir descreve um fluxo de alto nível para um aplicativo RAG.
- O usuário emite uma consulta em uma interface de usuário de aplicativo inteligente.
- 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.
- O orquestrador determina qual pesquisa executar no Azure AI Search e emite a consulta.
- 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.
- Os documentos são enviados por push ou puxados para um pipeline de dados.
- O pipeline de dados processa cada documento individualmente concluindo as seguintes etapas:
- Documento em partes: divide o documento em partes semanticamente relevantes que, idealmente, têm uma única ideia ou conceito.
- 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.
- Inserir partes: usa um modelo de inserção para vetorizar a parte e quaisquer outros campos de metadados usados para pesquisas de vetor.
- 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.
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
- Recuperação de Geração Aumentada (RAG) na Pesquisa de IA do Azure
- Geração aumentada de recuperação e índices