Preparar dados para recuperação

Concluído

Tip

Consulte a guia Texto e imagens para obter mais detalhes!

A recuperação só pode encontrar informação que tenha sido tornada pesquisável. Antes de uma aplicação RAG poder responder a perguntas, necessita de um pipeline de indexação que prepare os dados fonte.

O pipeline de indexação normalmente executa as seguintes tarefas:

Diagrama do pipeline de extração e indexação de texto.

  1. Extrai o texto de origem.
  2. Divide o texto em passagens focadas.
  3. Codifica os tokens de texto como vetores de embedding que encapsulam atributos semânticos.
  4. Cria um índice que pode ser usado para pesquisar os embeddings.

Vamos explorar cada uma destas tarefas com mais profundidade.

Selecionar e processar dados de origem

Uma fonte de conhecimento RAG pode incluir manuais de produtos, políticas, páginas web, registos de bases de dados, tickets de suporte ou outro conteúdo aprovado. O processo de preparação inclui normalmente estes passos:

  1. Carregue conteúdo de cada fonte.
  2. Extrair texto útil e estrutura de formatos como ficheiros PDF, apresentações, páginas web ou tabelas.
  3. Limpe o conteúdo removendo cabeçalhos repetidos, texto de navegação ou outros elementos que não sejam úteis para responder a perguntas.
  4. Adicione metadados como título, URL de origem, categoria, permissões de acesso e data de última atualização.

A qualidade da fonte importa. Documentos duplicados, desatualizados ou contraditórios podem levar a uma má recuperação e respostas pouco fiáveis. Os controlos de acesso também são essenciais: os utilizadores só devem recuperar conteúdos que estão autorizados a ver.

Dividir o conteúdo em blocos

Os documentos são frequentemente demasiado grandes para serem enviados a um modelo na íntegra. Estão divididos em passagens menores chamadas chunks. Cada bloco deve conter contexto suficiente para ser significativo, mantendo-se focado num tema específico.

Por exemplo, uma política de viagem pode ser dividida por secção em partes separadas para voos, hotéis, refeições e transporte terrestre. Uma pergunta sobre limites de hotéis pode então aceder à secção do hotel sem adicionar toda a política ao prompt.

O chunking envolve um compromisso:

  • Blocos demasiado grandes podem conter informação irrelevante e consumir mais do contexto do modelo.
  • Blocos demasiado pequenos podem separar uma afirmação de títulos, definições ou outra informação necessária para a compreender.

Os chunks muitas vezes sobrepõem-se ligeiramente para que o contexto importante não se perca numa fronteira.

Criar incorporações

As soluções RAG utilizam normalmente um modelo de embedding para converter cada chunk numa embedding: um vetor numérico que representa as características semânticas do conteúdo. Blocos com significados semelhantes têm embeddings próximos uns dos outros no espaço vetorial, mesmo quando usam palavras diferentes.

Indexar os dados

A solução armazena os chunks, os seus embeddings e metadados úteis num índice de pesquisa ou num armazenamento de dados com vetor. O índice pode suportar:

  • Pesquisa por palavras-chave, que é eficaz quando palavras exatas, identificadores ou códigos de produto são importantes.
  • Pesquisa vetorial, que encontra conteúdos semanticamente semelhantes.
  • Pesquisa híbrida, que combina pesquisa por palavras-chave e vetor.

Preparar dados não é uma tarefa pontual. O pipeline de indexação deve adicionar novo conteúdo, atualizar o conteúdo alterado e remover conteúdos que já não são válidos para que a recuperação reflita a fonte atual de verdade.