A fragmentação converte o conteúdo normalizado das páginas em unidades de recuperação. Escolhas ruins inflam o custo (fragmentos demais), degradam o recall (blocos grandes demais) ou diluem a precisão (fraturas nos limites). Não existe um método universalmente melhor; a estratégia se alinha à estrutura do corpus, à sua volatilidade e aos padrões de consulta. Este guia mapeia o espaço de design, as compensações, o fluxo de avaliação e as alavancas de otimização para pipelines RAG em produção.
Por que a fragmentação importa
Objetivos:
- Maximizar a probabilidade de que fatos relevantes apareçam na recuperação top‑k.
- Preservar a coesão semântica para que as respostas geradas sejam fundamentadas.
- Otimizar o uso de tokens (evitar incorporar repetidamente texto de preenchimento).
- Permitir atualizações incrementais determinísticas (IDs de fragmento estáveis).
A fragmentação mal alinhada se manifesta como: alta redundância, baixo Recall@k, fatos alucinados nos limites e gasto inflado com embeddings.
Fragmentação de janela fixa
Janelas simples de N tokens (p. ex., 500 tokens). Prós: determinísticas, fáceis de implementar, comportamento de atualização estável. Contras: os limites cortam através de conceitos; é necessário sobreposição redundante para reduzir o truncamento → crescimento do custo. Use com moderação: boa linha de base para conteúdo heterogêneo ou pouco estruturado, onde os sinais semânticos não são confiáveis.
Janelas deslizantes com sobreposição
Um tamanho de janela W com sobreposição O (p. ex., 500 / 50 tokens) reduz o truncamento de fatos nos limites. Sobreposição acima de ~15 % gera ganhos de recall decrescentes ao mesmo tempo que aumenta o tamanho do índice. Acompanhe duplication_ratio = distinct_token_count / total_token_count para ajustar O para baixo.
Detecção de limites semânticos
Segmente ao longo de sinais estruturais: cabeçalhos H2/H3, agrupamentos de listas, blocos de código, limites de tabelas. Imponha limites mínimos/máximos de tokens (mescle irmãos pequenos demais, divida seções grandes demais). Benefícios: maior coesão, menos sobreposições. Riscos: marcação malformada, hierarquia de cabeçalhos inconsistente. Mitigue com reparo de hierarquia + recurso à divisão por parágrafos quando os cabeçalhos estiverem ausentes.
Fragmentação hierárquica
Índice de dois níveis: embeddings de seção grossos (p. ex., uma seção inteira de tutorial) + subfragmentos de granulação fina. Fluxo de recuperação: ANN grosso → filtrar as N seções superiores → recuperação fina dentro delas. Vantagens: reduz o espaço de busca global para corpus grandes, melhora a latência. Complexidade: mais partes móveis, é preciso lógica de pontuação em cascata.
Fragmentação adaptativa / dinâmica
Ajuste os tamanhos dos fragmentos com base na densidade semântica local e em pistas estruturais. Exemplo de lógica: comece em uma seção de cabeçalho; se tiver >800 tokens → divida por grupos de parágrafos pontuados por similaridade semântica; se tiver <120 tokens → mescle com o irmão seguinte, a menos que a divergência de tópico ultrapasse um limiar. Exige uma passagem prévia de embedding ou similaridade; pague o custo uma vez na ingestão em troca de melhor eficiência de recuperação a longo prazo.
Considerações sobre embeddings
Mantenha metadados: token_count, model_version, content_hash. Evite o truncamento: pré-compute os tokens e divida antes da chamada ao modelo. Modelos densos se degradam com excesso de texto de preenchimento; remova os artefatos de navegação antes de fragmentar. Monitore vector_density (termos únicos / tokens) para identificar fragmentos de baixo sinal (candidatos à refusão).
Métodos de avaliação
Benchmarks por estratégia:
| Métrica | Propósito |
|---|---|
| Recall@k | Retenção de fatos |
| Precision@k | Ruído de contexto |
| Contagem de fragmentos | Indicador de custo |
| Razão de duplicação | Ajuste de sobreposição |
| Tokens médios por fragmento | Aproveitamento da janela |
| Latência (recuperação) | Eficiência do índice |
Execute sobre um conjunto de consultas de referência; adote uma estratégia somente se os ganhos de recall superarem os deltas de custo e latência.
Manual de implementação
- Linha de base: fixa 500 + 10 % de sobreposição; colete benchmarks.
- Introduza limites semânticos: substitua as janelas onde os cabeçalhos são confiáveis; meça novamente.
- Adicione uma camada hierárquica se o corpus ultrapassar 250k fragmentos ou a latência ultrapassar a meta.
- Implante lógica adaptativa para tamanhos de seção com alta variância.
- Reavaliação trimestral: compare o custo por delta de qualidade frente às novas capacidades dos modelos.
Armazene o diff do manifesto de fragmentos por iteração para permitir rollback.
Principais conclusões
- Limites semânticos geralmente superam janelas puramente fixas em precisão/custo.
- A sobreposição é um dial: meça a duplicação, não a adivinhe.
- A recuperação hierárquica ajuda a escalar sem crescimento linear da latência.
- IDs de fragmento estáveis permitem uma atualização incremental segura dos embeddings.
- Avalie mudanças de estratégia como deploys de código: faça benchmark, compare, registre.