Chunking é a técnica de dividir documentos grandes em partes menores chamadas chunks antes de transformá-los em vetores e armazená-los em um banco vetorial. O objetivo é permitir que o mecanismo de recuperação do RAG encontre apenas os trechos mais relevantes para uma pergunta específica, em vez de tentar recuperar ou processar o documento inteiro, o que reduz ruído e aumenta a precisão das respostas geradas pelo modelo de linguagem.
Cada chunk representa uma unidade semântica limitada em tamanho, suficiente para conter contexto útil, mas pequena o bastante para ser comparável de forma eficiente no espaço vetorial. Durante a consulta, a pergunta do usuário também é vetorizada e comparada com os vetores dos chunks, retornando apenas aqueles com maior similaridade semântica, que então são usados como contexto pelo modelo generativo.
O tamanho e a forma do chunking impactam diretamente a qualidade do RAG. Chunks muito grandes tendem a misturar assuntos diferentes e diluir a relevância semântica, enquanto chunks muito pequenos podem perder contexto essencial, levando a respostas incompletas ou ambíguas. Por isso, é comum definir um tamanho baseado em tokens e usar sobreposição entre chunks para preservar continuidade de ideias entre partes consecutivas do texto.
Na prática, chunking é um compromisso entre granularidade, custo computacional e qualidade da recuperação. Ele é um dos componentes mais críticos de um pipeline RAG, pois define a unidade básica de conhecimento que o modelo consegue localizar, combinar e usar para gerar respostas fundamentadas nos dados de origem.
David Matos
Referências:
Modelos de Embeddings, Bancos de Dados Vetoriais e RAG Para Aplicações de IA Generativa
