Chunking Semantico
O chunking semantico e uma tecnica de divisao de documentos que corta o texto em fronteiras de significado, em vez de contagens fixas de caracteres ou tokens. Ele usa embeddings para detectar quando frases adjacentes mudam de topico e, entao, posiciona o corte ali, de modo que cada chunk resultante seja internamente coerente e recuperavel como uma unica ideia.
O chunking semantico e uma tecnica de divisao de documentos que corta o texto em fronteiras de significado, em vez de contagens fixas de caracteres ou tokens. Ele usa embeddings para detectar quando frases adjacentes mudam de topico e, entao, posiciona o corte ali, de modo que cada chunk resultante seja internamente coerente e recuperavel como uma unica ideia.
Por que importa
O chunking ingenuo divide a cada N tokens ou nas quebras de paragrafo, alheio ao significado. Isso rotineiramente corta um unico argumento ao meio, colocando a premissa em um chunk e a conclusao em outro, de modo que o recuperador retorna fragmentos que nao fazem sentido. O chunking semantico corrige isso ao respeitar as mudancas de topico. Relatorios de benchmark da LlamaIndex e da LangChain de 2024 a 2025 mostram que o chunking semantico melhora a qualidade das respostas de RAG em 8 a 20% em QA de dominio aberto, em comparacao com a divisao de tamanho fixo, com os maiores ganhos em documentos tecnicos longos.
Como funciona
1. Dividir em frases: use um tokenizador de frases para obter unidades atomicas.
2. Fazer o embedding de cada frase: um pequeno modelo de embedding produz um vetor por frase.
3. Calcular similaridades adjacentes: para cada par de frases, meca a similaridade de cosseno entre os embeddings.
4. Encontrar os pontos de quebra: quando a similaridade cai abaixo de um limite (ou fica no percentil inferior), marque o ponto como uma mudanca de topico.
5. Agrupar as frases entre as quebras em chunks: cada chunk e topicamente coerente.
6. Limites de tamanho opcionais: mescle chunks minusculos ou divida os enormes para que a recuperacao continue pratica.
Chunking Semantico vs Tamanho Fixo vs Recursivo
| Estrategia | Como divide | Coerencia | Custo | Quando usar |
|---|---|---|---|---|
| Tamanho fixo | A cada N tokens | Baixa | Gratis | Prototipagem, logs |
| Recursivo | Paragrafo → frase → palavra | Media | Gratis | Padrao de uso geral |
| Semantico | Fronteiras de similaridade de embedding | Alta | Custo de embedding | Docs tecnicos, artigos longos |
| Agentico | O LLM decide por documento | A mais alta | Muito alto | Alto risco, baixo volume |
O chunking semantico fica entre os extremos do barato-e-burro e do caro-e-inteligente, sendo um bom padrao quando voce supera a divisao recursiva.
Parametros de ajuste
Limite de similaridade: limite baixo → mais chunks, maior coerencia de topico, pior continuidade de contexto. Limite alto → menos chunks, mais longos. Comece em torno do percentil 15 a 25 das similaridades adjacentes.
Modelo de embedding: um modelo de embedding pequeno e barato geralmente basta, ja que voce esta medindo mudancas relativas, e nao o significado absoluto.
Tamanho minimo de chunk: chunks muito curtos (uma frase) tem recuperacao ruim porque carecem de contexto. Imponha um piso.
Tamanho maximo de chunk: limite os chunks para que nenhum exceda a janela de contexto subsequente.
Sobreposicao: uma pequena sobreposicao de frases (1 a 2 frases) entre chunks adjacentes resgata casos extremos em que a fronteira e ambigua.
Quando nao ajuda
Documentos curtos: se o documento inteiro cabe em um unico chunk, dividir e apenas sobrecarga.
Texto altamente repetitivo: logs, listagens de produtos e tabelas tem pouca variacao natural de topico, e o chunking semantico degenera para tamanho fixo.
Conteudo estruturado: tabelas, codigo e JSON devem ser divididos por estrutura, nao por significado.
Quando a recuperacao nao e o gargalo: se a alucinacao vem do design do prompt ou do reranking, corrigir o chunking nao vai ajudar.
Fontes: