Chunking
Divisão de documentos grandes em segmentos de texto menores e semanticamente significativos para recuperação.
Definição
Chunking é o processo de dividir documentos grandes em segmentos de texto menores e independentes que podem ser independentemente embedded, indexados e recuperados. É uma etapa crítica de pré-processamento em qualquer pipeline de RAG, pois os modelos de embedding e as janelas de contexto de LLM possuem limites de tokens, e a qualidade da recuperação depende fortemente de quão bem os chunks se alinham com unidades de informação significativas.
As principais características do chunking incluem:
-
Chunking de Tamanho Fixo vs. Semântico: Abordagens simples dividem o texto por contagem de caracteres ou tokens com sobreposição. Métodos mais sofisticados utilizam limites de sentenças, quebras de parágrafo ou títulos de seção para criar chunks que preservem a coerência semântica.
-
Trade-offs no Tamanho do Chunk: Chunks menores proporcionam uma recuperação mais precisa, mas podem carecer de contexto suficiente. Chunks maiores carregam mais contexto, mas correm o risco de diluir a relevância. Os tamanhos típicos variam de 256 a 1024 tokens, dependendo do caso de uso.
-
Estratégia de Sobreposição (Overlap): Chunks adjacentes geralmente compartilham texto sobreposto (por exemplo, 50-100 tokens) para evitar que informações importantes nos limites dos chunks sejam perdidas durante a recuperação.
-
Chunking Hierárquico: Estratégias avançadas criam relações de pai-filho entre os chunks, permitindo a recuperação de uma pequena seção relevante enquanto fornecem o contexto circundante de seu chunk pai ao LLM.
Uma estratégia de chunking eficaz é uma das otimizações de maior impacto no design de sistemas RAG.