Unidade 3 / 11

Chunking e preparação de documentos

Ganhos:

  • Avalie numericamente o tamanho do bloco, a sobreposição e as compensações de agrupamento semântico
  • Escolha da estratégia de agrupamento apropriada para diferentes tipos de documentos (PDF, tabela, código, registro de bate-papo)
  • Fortaleça a qualidade de recuperação e filtragem adicionando metadados a cada bloco

Esta é a etapa mais negligenciada, mas mais decisiva no RAG: como você divide o documento. Isso é chamado de fragmentação. Mesmo que você forneça o mesmo documento ao mesmo modelo, devido a um agrupamento incorreto, a recuperação retornará a peça errada e o modelo nunca produzirá uma boa resposta. Nesta unidade, abordamos estratégias de fragmentação, como adaptá-las de acordo com o tipo de documento e como adicionar metadados significativos a cada fragmento.

Por que destruímos?

Existem três razões. Primeiro, os modelos de incorporação convertem o texto até um determinado comprimento em um vetor significativo; Se um capítulo inteiro de 40 páginas for agrupado em um único vetor, o significado ficará “turvo”. Segundo, queremos dar ao modelo apenas a parte necessária como contexto; entregar o documento inteiro é caro e causa distração. Terceiro, para que a recuperação seja precisa, a unidade de busca deve ser pequena e focada.

Portanto, chunk é a menor unidade de recuperação. Não deve ser muito grande ou muito pequeno – apenas certo.

Tamanho do pedaço e equilíbrio de sobreposição

Existem duas configurações principais: tamanho do pedaço (quantos tokens/palavras estarão em um pedaço) e sobreposição (a parte compartilhada por pedaços vizinhos).

Pedaços muito pequenos (por exemplo, 100 tokens): focados, mas desconectados do contexto. Ele diz “por 14 dias”, mas o que resta de 14 dias fica na frase anterior. Pedaços muito grandes (por exemplo, 2.000 tokens): preserva o contexto, mas muitos threads estão misturados; a incorporação fica confusa e tópicos irrelevantes se juntam.

A sobreposição resolve o problema de limite. Se uma frase fica exatamente na fronteira de duas partes, ela é dividida em duas sem sobreposição e seu significado se perde. A sobreposição de 50 a 100 tokens garante que as informações dentro do limite permaneçam intactas em pelo menos uma parte.

Tamanho do pedaço

Vantagem

Desvantagem

conteúdo apropriado

Pequeno (100-250 fichas)

Alta sensibilidade, focado

O contexto pode quebrar

FAQ, artigos curtos, definições

Médio (300-600 tokens)

Equilíbrio; a maioria dos cenários

-

Procedimentos, textos políticos

Grande (800-1500 fichas)

Integridade do contexto

incorporação borrada

Narrativa, longas explicações

Dica: se você não sabe por onde começar, comece com 400-500 tokens e 50-80 tokens sobrepostos; depois meça e ajuste com seus próprios dados. O tamanho “certo” não é universal, depende do contexto.

Estratégias de fragmentação

Tamanho fixo: corta o texto a cada N tokens. É simples e rápido, mas pode interromper no meio da frase.

Baseado em separador (recursivo/separador): Divide de acordo com o parágrafo e depois com os limites da frase; Preserva melhor a integridade do significado. A maioria dos sistemas de produção começa com isso.

Segmentação semântica: analisa os encaixes das frases e as divide onde ocorre a mudança de assunto. É o método da mais alta qualidade, mas mais caro; Com grandes volumes, os custos de transação aumentam.

Consciente de estrutura: usa estrutura de documento, como títulos, seções, tabelas. Por exemplo, dividir um documento Markdown por títulos garante que cada parte carregue seu próprio título.

Adaptação por tipo de documento

Nem todos os documentos são iguais. A estratégia varia por tipo:

  • Texto em PDF/política: Baseado em marcadores, tamanho médio. Limpar repetições na parte superior/inferior da página (cabeçalho/rodapé).
  • Tabelas: Não tire a linha do contexto; mantenha cada linha com informações de cabeçalho ("Item: X, Preço: Y, Estoque: Z"). Converter a tabela bruta em texto simples geralmente é essencial.
  • Código: Dividido por limites de função/classe; Não elimine uma função do caminho.
  • Gravação de chat/ticket: Dividida por mensagem ou rodada de conversa; Mantenha o conhecimento de quem disse o quê.

# chunking baseado em colchetes (conceitual) chunks = bol( text, target_size=450, # token overlay=70, # token brackets=["\n\n", "\n", ". ", " "] # parágrafo primeiro, palavra por último)

Adicione metadados a cada faixa

Chunking não é apenas “dividir”; é enriquecer cada peça. Cada tag que você anexa à faixa vale seu peso em ouro para filtragem futura e citação da fonte.

# Parte enriquecida (conceitual){ "texto": "A licença anual remunerada é de 14 dias com 1 a 5 anos de serviço...", "metadados": { "fonte": "ik_el_kitabi_v7.pdf", "seção": "5.2 Licença anual", "página": 23, "data": "2025-06", "departamento": "IK", "privacidade": "interno" }}

Outra técnica poderosa é adicionar um cabeçalho contextual: escrever o título do capítulo ao qual pertence no início de cada peça. Assim, mesmo uma peça desconexa como “Por 14 dias” é melhor incorporada e mais significativa como “Férias anuais - 14 dias”.

Chunking fraco / Chunking forte

Fraco (hardcut cego, sem metadados):

Truncar texto a cada 1000 caracteres. Mantenha apenas o texto.# Resultado: tabelas estão divididas ao meio, "14 dias" fica sem contexto,# não se sabe de qual documento veio, nenhum filtro pode ser feito.

Poderoso (com reconhecimento de estrutura + cabeçalho + metadados):

Divida o documento por títulos; adicione o título da seção a cada parte; anexe metadados de origem, página, data e privacidade; converta linhas de tabela em texto simples com seus cabeçalhos.# Resultado: focado, contextual, filtrável, fonte.

Três Mini Estojos

Caso 1 — Desastre de pintura. Uma equipe financeira dividiu a lista de preços de 200 páginas com cortes cegos; as linhas da tabela foram divididas aleatoriamente. “Qual é o preço do produto X?” O modelo leu a linha errada e deu o preço errado (9 em 12 casos estão errados). Quando converti as linhas da tabela para texto simples no formato "Produto: … | Preço: … | Unidade: …" o erro diminuiu para 0 de 12.

Caso 2 — Pedaço extremamente grande. Em um wiki, cada página é composta por um único pedaço (alguns dizem 3.000 tokens). A incorporação está borrada porque há “licença”, “horas extras” e “folha de pagamento” em uma página; A seção de jornada de trabalho também entrou em jogo em relação à questão dos afastamentos. Quando as páginas foram divididas em tamanho médio por título, o recall@5 aumentou de 64% para 91%.

Caso 3 — Frase truncada sem sobreposição. Corte fixo de 250 tokens para uma equipe jurídica, sem sobreposição. Uma definição crítica ficava na fronteira entre duas partes e se dividia em duas; Nem um nem outro contém a resposta completa. Quando a sobreposição de 60 tokens foi adicionada, a mesma definição permaneceu intacta e a resposta correta foi retornada.

Erros comuns

  • Corte fixo cego: Divide frases e tabelas ao meio; o significado é perdido.
  • Deixando a sobreposição em zero: as informações que caem na fronteira são divididas e perdidas.
  • Não adicionar metadados: a filtragem e a exibição da fonte tornam-se impossíveis.
  • Deixando tabelas brutas: O modelo não consegue resolver a estrutura da tabela; Converta linhas em texto simples.
  • Imposição de uma estratégia: PDF, código e tabela não são divididos pelo mesmo método; Adapte-se ao gênero.
Cuidado: não defina o Chunking uma vez e esqueça. Meça novamente a qualidade da recuperação à medida que novos tipos de documentos chegam (ingressos de um novo sistema, PDFs digitalizados). Dados de entrada incorretos significam resposta incorreta ("entra lixo, sai lixo").

Em resumo

  • Chunk é a menor unidade de recuperação; Nem muito grande nem muito pequeno – deve ser equilibrado de acordo com o conteúdo.
  • O tamanho do pedaço indica o equilíbrio foco-contexto; A sobreposição gerencia a perda de limites.
  • O chunking baseado em colchetes e com reconhecimento de estrutura é o ponto de partida da maioria dos sistemas de geração; a fragmentação semântica é de boa qualidade, mas cara.
  • Tipos como mesa, script e chat exigem estratégias próprias; Converta tabelas em texto simples.
  • Adicione metadados de origem/data/capítulo/privacidade e título da seção a cada faixa; Esta é a base da filtragem e citação.

Tarefa de aplicativo

Divida uma seção do documento que você escolher de três maneiras diferentes: (1) pedaços pequenos de 200 fichas, (2) pedaços médios de 500 fichas (sobreposição de 70 fichas), (3) pedaços grandes e únicos. Faça as mesmas 3 perguntas para cada estratégia, marque manualmente qual peça trazer e anote o raciocínio para qual estratégia funciona melhor para aquele documento. Em seguida, adicione pelo menos quatro campos de metadados e um “título de capítulo” a cada faixa. Se o documento contiver uma tabela, converta uma linha da tabela em texto simples no formato "campo:valor".

lista de verificação

  • [] Posso dizer que pedaço é a menor unidade de recuperação e tamanho é o equilíbrio foco-contexto.
  • [] Eu sei por que o Overlap evita a perda de limites.
  • [] Posso distinguir entre fragmentação baseada em colchetes, semântica e com reconhecimento de estrutura.
  • [ ] Posso adaptar a estratégia para tabela, código e chat.
  • [] Reforço a recuperação adicionando metadados e título do capítulo a cada faixa.