HeadlinesBriefing HeadlinesBriefing.com

Chunks de tabela por linha para recuperação RAG

Towards Data Science •
×

Quando uma pergunta mira uma única linha dentro de uma tabela, recuperar a tabela inteira força o modelo generativo a filtrar 39 linhas irrelevantes. A unidade que corresponde à pergunta é uma linha, não o retângulo inteiro. Este artigo constrói um índice em nível de linha que transforma cada linha de dados em seu próprio chunk recuperável, de modo que uma consulta como “qual o limite para roubo de veículos?” retorna exatamente aquela linha junto com seus cabeçalhos de coluna.

A função serialize_table_rows varre o line_df do parser, agrupa linhas contíguas com barras verticais em tabelas, lê a linha de cabeçalho acima do separador e emite uma linha de saída por linha de dados. Cada chunk é serializado como col: val | col: val, que um LLM lê naturalmente e que se compõe com os recuperadores existentes de palavras-chave e embeddings sem alterações.

O índice em nível de linha é uma segunda escala, não uma substituição. Um dispatcher roteia buscas direcionadas para o índice em nível de linha, perguntas de síntese disparam em todas as linhas da mesma tabela (detectadas via table_id compartilhado) e consultas mistas combinam ambos. Recuperadores downstream que nunca habilitam a indexação em nível de linha continuam funcionando sem alterações, enquanto os que habilitam leem explicitamente o segundo quadro.

O código executável está disponível em doc-intel/notebooks-vol1, demonstrando serialize_table_rows na Tabela 1 do artigo Attention e retornando uma linha em vez da tabela inteira.

Fonte: Towards Data Science · Resumido por HeadlinesBriefing