Geração aumentada de recuperação (RAG) e índices (clássicos)

Atualmente a ver:versão do portal Foundry (clássica) - Trocar para a versão do novo portal Foundry

A geração aumentada por recuperação (RAG) é um padrão que combina pesquisa com grandes modelos de linguagem (LLMs), de modo a que as respostas estejam fundamentadas nos seus dados. Este artigo explica como o RAG funciona no Microsoft Foundry, que papel desempenham os índices e como a recuperação agentica altera os padrões clássicos do RAG.

Os LLMs são treinados com dados públicos disponíveis no momento da formação. Se precisar de respostas baseadas nos seus dados privados ou em informações frequentemente mutáveis, o RAG ajuda-o:

  • Recupere informação relevante dos seus dados (muitas vezes através de um índice).
  • Forneça essa informação ao modelo como dados de aterramento.
  • Gera uma resposta que inclua citações de volta ao conteúdo de origem.

O que é o RAG?

Grandes modelos de linguagem (LLMs) como o ChatGPT são treinados com dados públicos da internet que estavam disponíveis quando o modelo foi treinado. Os dados públicos podem não ser suficientes para as suas necessidades. Por exemplo, pode querer respostas baseadas em documentos privados ou pode precisar de informações atualizadas.

O RAG resolve isto ao recuperar conteúdo relevante dos seus dados e incluí-lo na entrada do modelo. O modelo pode então gerar respostas fundamentadas no conteúdo recuperado.

Conceitos-chave para o RAG:

  • Dados fundamentadores: Conteúdo recuperado que fornece ao modelo para reduzir suposições.
  • Índice: Uma estrutura de dados otimizada para recuperação (palavra-chave, semântica, vetorial ou pesquisa híbrida).
  • Embeddings: Representações numéricas do conteúdo usadas para pesquisa por similaridade vetorial. Veja Compreenda incorporações.
  • Mensagem e prompts do sistema: Instruções que guiam a utilização do conteúdo recuperado pelo modelo. Consulte Engenharia de prompts e Mensagens do sistema de segurança.

Como funciona o RAG?

O RAG segue um fluxo em três etapas:

  1. Recuperar: Quando um utilizador faz uma pergunta, a sua aplicação consulta um índice ou armazenamento de dados para encontrar conteúdo relevante.
  2. Reforço: A aplicação combina a pergunta do utilizador e o conteúdo recuperado (dados de base) num prompt.
  3. Gerar: O modelo recebe o prompt aumentado e gera uma resposta baseada no conteúdo recuperado, reduzindo imprecisões e permitindo citações precisas.

Diagrama que mostra uma consulta do utilizador, recuperação de um armazenamento de dados e uma resposta de modelo fundamentada.

O que é um índice e porque é que preciso dele?

O RAG funciona melhor quando consegues recuperar conteúdo relevante de forma rápida e consistente. Um índice ajuda a organizar o seu conteúdo para uma recuperação eficiente.

Muitas soluções RAG utilizam um índice que suporta um ou mais destes modos de recuperação:

  • Pesquisa por palavras-chave
  • Pesquisa semântica
  • Pesquisa vetorial
  • Pesquisa híbrida (palavra-chave + vetor, por vezes com classificação semântica)

Um índice também pode armazenar campos que melhoram a qualidade das citações (por exemplo, títulos de documentos, URLs ou nomes de ficheiros).

Diagrama que mostra a recuperação a partir de um índice e como as passagens recuperadas são adicionadas ao prompt do modelo.

A Foundry pode ligar o seu projeto a um serviço Pesquisa de IA do Azure e indexar para recuperação. Dependendo da funcionalidade e da superfície da API que está a usar, esta informação de ligação pode ser representada como uma ligação de projeto ou um ID de ativo indexado.

Por exemplo, a versão preliminar da API REST do Foundry Project inclui um campo index_asset_id para recursos de índice do Pesquisa de IA do Azure. Consulte pré-visualização da API REST do Foundry Project.

O Pesquisa de IA do Azure é um armazenamento de índice recomendado para cenários RAG. O Pesquisa de IA do Azure suporta a recuperação sobre dados vetoriais e textuais armazenados em índices de pesquisa, e também pode consultar outros alvos se usar recuperação agentiva. Ver O que é Pesquisa de IA do Azure?.

RAG Agentic: abordagem moderna à recuperação

Os padrões RAG tradicionais usam frequentemente uma única consulta para obter informação dos seus dados. Agentic retrieval, também conhecida como RAG agentic, é uma evolução na arquitetura de recuperação que utiliza um modelo para desconstruir entradas complexas em múltiplas subconsultas direcionadas, executando-as em paralelo e devolvendo dados estruturados de grounding que funcionam bem com modelos de conclusão de chat.

A recuperação agentica oferece várias vantagens em relação ao RAG clássico:

  • Planeamento de consultas consciente do contexto - Utiliza o histórico de conversas para compreender o contexto e a intenção. As perguntas de seguimento mantêm o contexto das trocas anteriores, tornando as conversas com múltiplas voltas mais naturais.
  • Execução paralela - Executa múltiplas subconsultas focadas simultaneamente para melhor cobertura. Em vez de recuperar de uma única consulta sequencialmente, a execução paralela reduz a latência e recupera resultados relevantes mais diversificados.
  • Respostas estruturadas - Devolve dados fundamentados, citações e metadados de execução juntamente com os resultados. Este resultado estruturado facilita que a sua aplicação cite fontes com precisão e trace o raciocínio por detrás das respostas.
  • Classificação semântica incorporada - Garante a relevância ótima dos resultados. A classificação semântica filtra o ruído e prioriza passagens verdadeiramente relevantes, o que é especialmente importante em grandes conjuntos de dados.
  • Síntese opcional de respostas - Pode incluir respostas formuladas por LLM diretamente na resposta à consulta. Em alternativa, pode optar por devolver passagens brutas e literais para processamento pela sua aplicação.

Se estiver a usar Pesquisa de IA do Azure como motor de recuperação, veja Agentic retrieval e Quickstart: Agentic retrieval.

Escolha uma abordagem na Foundry

O Foundry suporta múltiplos padrões para trabalhar com dados privados. Escolha com base na complexidade do seu caso de uso e no grau de controlo que precisa:

Iniciar com o RAG na Foundry

A implementação do RAG no Foundry normalmente segue este fluxo de trabalho:

  1. Prepare os seus dados: Organize e fragmente os seus documentos privados ou base de conhecimento em conteúdos pesquisáveis
  2. Configure um índice: Crie um índice Pesquisa de IA do Azure ou use outro serviço de recuperação para organizar o seu conteúdo para uma pesquisa eficiente
  3. Ligue-se à Foundry: Crie uma ligação do seu projeto Foundry ao seu índice ou serviço de recuperação
  4. Construa a sua aplicação RAG: Integre a recuperação com as suas chamadas LLM usando o SDK Foundry ou APIs REST
  5. Testar e avaliar: Verificar se a qualidade da recolha é boa e as respostas são precisas e devidamente citadas

Para começar, siga estes tutoriais:

Considerações de segurança e privacidade

Os sistemas RAG podem expor conteúdos sensíveis se não desenhares cuidadosamente o acesso e os prompts.

  • Aplicar controlo de acesso no momento da recuperação. Se estiveres a usar o Pesquisa de IA do Azure como fonte de dados, podes usar controlo de acesso ao nível do documento com filtros de segurança.
  • Prefiro Microsoft Entra ID em vez de chaves API para produção. As chaves de API são convenientes para desenvolvimento, mas não são recomendadas para cenários de produção. Para orientações RBAC do Pesquisa de IA do Azure, veja Ligue-se ao Pesquisa de IA do Azure usando funções.
  • Trate o conteúdo recuperado como entrada não confiável. A lógica da mensagem do sistema e da aplicação devem reduzir o risco de injeção rápida de documentos e passagens recuperadas. Ver mensagens do sistema de segurança.

Considerações de custo e latência

O RAG acrescenta trabalho extra comparado com um pedido apenas de modelo:

  • Custos de recuperação e latência: Consultar um índice adiciona viagens de ida e volta e computação.
  • Custos de embedding e latência: A pesquisa vetorial requer embeddings na altura da indexação e, muitas vezes, na altura da consulta.
  • Utilização de tokens: Passagens recuperadas aumentam os tokens de entrada, o que pode aumentar o custo.

Se estiveres a usar o Pesquisa de IA do Azure, confirma o nível de serviço e os preços antes do lançamento em produção. Se estiver a usar recuperação semântica ou híbrida, consulte os preços e limites do Pesquisa de IA do Azure na documentação do Pesquisa de IA do Azure.

Limitações e resolução de problemas

Limitações conhecidas

  • A qualidade do RAG depende da preparação do conteúdo, configuração de recuperação e design do prompt. Uma má preparação ou estratégia de indexação de dados impacta diretamente a qualidade da resposta.
  • Se a recuperação devolver passagens irrelevantes ou incompletas, o modelo pode ainda assim produzir respostas incompletas ou imprecisas apesar da fundamentação.
  • Se não controlar o acesso ao conteúdo de origem, respostas fundamentadas podem divulgar informações sensíveis do seu índice.

Desafios comuns e mitigação

  • Má qualidade de recuperação: Se o seu índice não estiver a devolver passagens relevantes, reveja a sua estratégia de fragmentação de dados, a qualidade do modelo de incorporação e a configuração de pesquisa (palavra-chave vs. semântica vs. híbrido).
  • Alucinação apesar do grounding: Mesmo com conteúdo recuperado, os modelos ainda podem gerar respostas imprecisas. Ative as citações e utilize mensagens e prompts claros do sistema para instruir o modelo a seguir o conteúdo recuperado.
  • Problemas de latência: Índices grandes podem atrasar a recuperação. Considere a estratégia de indexação, filtragem e reclassificação para reduzir o volume de passagens processadas.
  • Orçamento de tokens excedido: As passagens recuperadas podem rapidamente consumir os limites de tokens. Implemente filtragem, classificação ou resumo para ficar dentro do orçamento.

Para orientações sobre a avaliação da eficácia do RAG, consulte os tutoriais e quickstarts na secção de conteúdos relacionados abaixo.