论文

MDKeyChunker:单次调用 LLM 通过滚动密钥和基于密钥的重组进行丰富,以实现高精度 RAG

MDKeyChunker: Single-Call LLM Enrichment with Rolling Keys and Key-Based Restructuring for High-Accuracy RAG

上下文与知识检索增强

摘要

RAG 管道通常依赖于固定大小的分块,它会忽略文档结构、跨边界分割语义单元,并且每个块需要多次 LLM 调用才能提取元数据。我们提出 MDKeyChunker,这是一个 Markdown 文档的三阶段管道,它 (1) 执行结构感知分块,将标题、代码块、表和列表视为原子单元; (2) 通过单个 LLM 调用提取标题、摘要、关键字、键入实体、假设问题和语义键来丰富每个块,同时传播滚动键字典以维护文档级上下文; (3) 通过装箱合并共享相同语义键的块来重组块,并共同定位相关内容以供检索。单调用设计在一次 LLM 调用中提取所有七个元数据字段,从而无需单独的每个字段提取过程。滚动密钥传播用 LLM 原生语义匹配取代了手动调整的评分。对 18 个文档 Markdown 语料库上的 30 个查询进行的实证评估显示,配置 D(结构块上的 BM25)实现了 Recall@5=1.000 和 MRR=0.911,而整个管道上的密集检索(配置 C)达到了 Recall@5=0.867。 MDKeyChunker 在 Python 中实现,具有四个依赖项,并支持任何 OpenAI 兼容端点。