RAG pipeline de dados descrição e processamento dos passos

Neste artigo, o senhor aprenderá a preparar dados não estruturados para uso em aplicativos RAG. Dados não estruturados referem-se a dados sem uma estrutura ou organização específica, como documentos PDF que podem incluir texto e imagens, ou conteúdo multimídia, como áudio ou vídeos.

Os dados não estruturados não têm um modelo ou esquema de dados predefinido, o que impossibilita a consulta com base apenas na estrutura e nos metadados. Como resultado, os dados não estruturados exigem técnicas que possam entender e extrair o significado semântico de texto bruto, imagens, áudio ou outros conteúdos.

Durante a preparação dos dados, o pipeline de dados do aplicativo RAG pega dados brutos não estruturados e os transforma em partes discretas que podem ser consultadas com base em sua relevância para a consulta de um usuário. Os key os passos no pré-processamento de dados estão descritos abaixo. Cada o passo tem uma variedade de botões que podem ser ajustados - para uma discussão mais aprofundada sobre esses botões, consulte a qualidade do aplicativo Improve RAG.

Diagrama dos componentes básicos do pipeline de dados do RAG.

Preparar dados não estruturados para recuperação

No restante desta seção, descrevemos o processo de preparação de dados não estruturados para recuperação usando a pesquisa semântica. A pesquisa semântica entende o significado contextual e a intenção de uma consulta do usuário para fornecer resultados de pesquisa mais relevantes.

A pesquisa semântica é uma das várias abordagens que podem ser adotadas ao implementar o componente de recuperação de um aplicativo RAG em dados não estruturados. Esses documentos abordam estratégias alternativas de recuperação na seção de botões de recuperação.

os passos de um aplicativo RAG pipeline de dados

A seguir, os passos típicos de um pipeline de dados em um aplicativo RAG que usa dados não estruturados:

  1. Analisar os documentos brutos: O passo inicial envolve a transformação de dados brutos em um formato utilizável. Isso pode incluir a extração de texto, tabelas e imagens de uma coleção de PDFs ou o emprego de técnicas de reconhecimento óptico de caracteres (OCR) para extrair texto de imagens.

  2. Extrair metadados de documentos (opcional): Em alguns casos, a extração e o uso de metadados de documentos, como títulos de documentos, números de páginas, URLs ou outras informações, podem ajudar a recuperação a consultar com mais precisão os dados corretos.

  3. Documentos fragmentados: Para garantir que os documentos analisados possam se encaixar no modelo de incorporação e na janela de contexto do LLM, dividimos os documentos analisados em partes menores e discretas. A recuperação desses blocos focados, em vez de documentos inteiros, oferece ao LLM um contexto mais direcionado para gerar suas respostas.

  4. Incorporação de blocos: Em um aplicativo RAG que usa pesquisa semântica, um tipo especial de modelo de linguagem chamado modelo de incorporação transforma cada um dos blocos do passo anterior em vetores numéricos, ou listas de números, que encapsulam o significado de cada parte do conteúdo. Crucialmente, esses vetores representam o significado semântico do texto, não apenas palavras-chave de nível superficial. Isso permite a pesquisa com base no significado e não em correspondências literais de texto.

  5. Indexar os blocos em um banco de dados vetorial: O passo final é carregar as representações vetoriais dos blocos, juntamente com o texto do bloco, em um banco de dados vetorial. Um banco de dados vetorial é um tipo especializado de banco de dados projetado para armazenar e pesquisar com eficiência dados vetoriais, como embeddings. Para manter o desempenho com um grande número de blocos, os bancos de dados vetoriais geralmente incluem um índice vetorial que usa vários algoritmos para organizar e mapear os embeddings vetoriais de forma a otimizar a eficiência da pesquisa. No momento da consulta, a solicitação do usuário é incorporada a um vetor, e o banco de dados aproveita o índice do vetor para encontrar os vetores de pedaços mais semelhantes, retornando os pedaços de texto originais correspondentes.

O processo de cálculo da similaridade pode ser caro do ponto de vista computacional. Os índices vetoriais, como o Databricks Vector Search, aceleram esse processo fornecendo um mecanismo para organizar e navegar de forma eficiente pelos embeddings, geralmente por meio de métodos de aproximação sofisticados. Isso permite a classificação rápida dos resultados mais relevantes sem comparar cada incorporação com a consulta do usuário individualmente.

Cada passo no site pipeline de dados envolve decisões de engenharia que afetam a qualidade do aplicativo RAG. Por exemplo, a escolha do tamanho correto do bloco no passo 3 garante que o site LLM receba informações específicas e contextualizadas, enquanto a seleção de um modelo de incorporação adequado no passo 4 determina a precisão dos blocos retornados durante a recuperação.

Esse processo de preparação de dados é chamado de preparação de dados off-line, pois ocorre antes de o sistema responder às consultas, ao contrário dos passos on-line acionados quando um usuário envia uma consulta.