AI Engineering Academy: 2.4 Técnicas de fragmentação de dados para sistemas de geração aumentada de recuperação (RAG)

Trae

breve

A fragmentação de dados é uma etapa fundamental dos sistemas RAG (Retrieval Augmented Generation). Ele divide documentos grandes em partes menores e gerenciáveis para indexação, recuperação e processamento eficientes. Este LEIAME fornece RAG Visão geral dos vários métodos de chunking disponíveis no pipeline.

https://github.com/adithya-s-k/AI-Engineering.academy/tree/main/RAG/01_Data_Ingestion

 

Importância do chunking no RAG

A fragmentação eficaz é essencial para o sistema RAG porque pode:

  1. Melhorar a precisão da recuperação criando unidades de informação coerentes e autônomas.
  2. Aumento da eficiência da geração de incorporação e da pesquisa de similaridade.
  3. Permite uma seleção de contexto mais precisa ao gerar respostas.
  4. Ajude a gerenciar modelos de linguagem e sistemas incorporados de Token Limitações.

 

Método de fragmentação

Implementamos seis métodos diferentes de chunking, cada um com diferentes vantagens e cenários de uso:

  1. RecursiveCharacterTextSplitter
  2. TokenTextSplitter
  3. KamradtSemanticChunker
  4. KamradtModifiedChunker
  5. ClusterSemanticChunker
  6. LLMSemanticChunker

 

fragmentação

1. RecursiveCharacterTextSplitter

AI工程学院:2.4用于检索增强生成(RAG)系统的数据分块技术

2. TokenTextSplitter

AI工程学院:2.4用于检索增强生成(RAG)系统的数据分块技术

3. KamradtSemanticChunker

AI工程学院:2.4用于检索增强生成(RAG)系统的数据分块技术

4. KamradtModifiedChunker

AI工程学院:2.4用于检索增强生成(RAG)系统的数据分块技术

5. clusterSemanticChunker

AI工程学院:2.4用于检索增强生成(RAG)系统的数据分块技术

6. LLMSemanticChunker

AI工程学院:2.4用于检索增强生成(RAG)系统的数据分块技术

 

Descrição do método

  1. RecursiveCharacterTextSplitterDivisão de texto: divide o texto com base em uma hierarquia de delimitadores, priorizando pontos de interrupção naturais no documento.
  2. TokenTextSplitterDivisão de texto: divide o texto em blocos de um número fixo de tokens, garantindo que a divisão ocorra nos limites dos tokens.
  3. KamradtSemanticChunkerUse a incorporação de janelas deslizantes para identificar descontinuidades semânticas e segmentar o texto adequadamente.
  4. KamradtModifiedChunkerKamradtSemanticChunker: uma versão aprimorada do KamradtSemanticChunker que usa a pesquisa de bissecção para encontrar o limite ideal para a segmentação.
  5. ClusterSemanticChunkerDivisão do texto em partes, cálculo dos embeddings e uso de programação dinâmica para criar partes ideais com base na similaridade semântica.
  6. LLMSemanticChunkerUse a modelagem de linguagem para identificar pontos de segmentação apropriados no texto.

Uso

Para usar esses métodos de fragmentação em seu processo RAG:

  1. através de (uma lacuna) chunkers para importar os chunkers necessários.
  2. Inicialize o agrupador com os parâmetros apropriados (por exemplo, tamanho máximo do agrupamento, sobreposição).
  3. Passe seu documento para o fragmentador para obter resultados de fragmentação.

Exemplo:

from chunkers import RecursiveCharacterTextSplitter
chunker = RecursiveCharacterTextSplitter(chunk_size=1000, chunk_overlap=200)
chunks = chunker.split_text(your_document)

Como escolher um método de fragmentação

A escolha do método de fragmentação depende de seu caso de uso específico:

  • Para a divisão simples de texto, você pode usar o RecursiveCharacterTextSplitter ou o TokenTextSplitter.
  • Se a segmentação com reconhecimento semântico for necessária, considere o KamradtSemanticChunker ou o KamradtModifiedChunker.
  • Para obter um chunking semântico mais avançado, use o ClusterSemanticChunker ou o LLMSemanticChunker.

Fatores a serem considerados ao selecionar um método:

  • Estrutura do documento e tipos de conteúdo
  • Tamanho do bloco e sobreposição necessários
  • Recursos de computação disponíveis
  • Requisitos específicos do sistema de recuperação (por exemplo, baseado em vetores ou em palavras-chave)

É possível experimentar diferentes métodos e encontrar o que melhor se adapta às suas necessidades de documentação e recuperação.

Integração com sistemas RAG

Depois de concluir o chunking, geralmente são executadas as seguintes etapas:

  1. Gerar embeddings para cada pedaço (para sistemas de recuperação baseados em vetores).
  2. Indexar esses blocos no sistema de recuperação selecionado (por exemplo, banco de dados vetorial, índice invertido).
  3. Ao responder a uma consulta, use os blocos de índice na etapa de recuperação.

 

AI工程学院:2.4用于检索增强生成(RAG)系统的数据分块技术
© declaração de direitos autorais
AiPPT

Artigos relacionados

Sem comentários

nenhum
Nenhum comentário...