Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
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
Fluxo de aplicativos 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 Azure AI Agent ou LangChain.
- O orquestrador determina qual pesquisa executar na Pesquisa de IA do Azure e emite a consulta.
- 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.
- Os documentos são impulsionados ou integrados num pipeline de dados.
- O pipeline de dados processa cada documento individualmente, concluindo as seguintes etapas:
- Fragmentar o documento: dividir o documento em partes semanticamente relevantes que, idealmente, contêm uma única ideia ou conceito.
- 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.
- Incorporar partes: usa um modelo de incorporação para vetorizar a parte e quaisquer outros campos de metadados usados para pesquisas vetoriais.
- 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.
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
- Geração Aumentada de Recuperação de Informação (RAG) no Azure AI Search
- Geração aumentada por recuperação e índices