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 se referem 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 carecem de um modelo ou esquema de dados predefinido, impossibilitando a consulta apenas com base na estrutura e nos metadados. Como resultado, dados não estruturados requerem técnicas que possam entender e extrair significado semântico de texto bruto, imagens, áudio ou outro conteúdo.

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.

Prepare 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 compreende 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 abrangem 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. Fundamentalmente, esses vetores representam o significado semântico do texto, não apenas palavras-chave de nível superficial. Isso permite pesquisar com base no significado em vez de 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 vetoriais é um tipo especializado de banco de dados projetado para armazenar e pesquisar dados vetoriais com eficiência, como incorporações. 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 de um usuário é incorporada a um vetor e o banco de dados aproveita o índice vetorial para encontrar os vetores de fragmentos mais semelhantes, retornando os fragmentos de texto originais correspondentes.

O processo de computação da similaridade pode ser computacionalmente caro. 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 uma classificação rápida dos resultados mais relevantes sem comparar cada incorporação à 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.