Tema Nab, tema de navegação mais profissional
Ctrl + D Marcar este site como favorito

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

2024-12-04 853

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

2. TokenTextSplitter

3. KamradtSemanticChunker

4. KamradtModifiedChunker

5. clusterSemanticChunker

6. LLMSemanticChunker

 

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.

 

Recomendado

Não consegue encontrar ferramentas de IA? Tente aqui!

Basta digitar a palavra-chave Acessibilidade Bing SearchA seção Ferramentas de IA deste site é uma maneira rápida e fácil de encontrar todas as ferramentas de IA deste site.

Código de leitura a seguir

qrcode

Entre em contato conosco

voltar ao topo

pt_BRPortuguês do Brasil