长上下文大模型文档树切片与跨页引用解析落地

日期:2026-09-23

一、项目背景

这家客户是大型制造集团,内部制度库和工艺文档加起来上千份,很多是上百页的 PDF,章节嵌套深,表格跨页,还到处是"详见具体章节"这种引用。他们最早上 RAG 的时候,切片按固定字数硬切,结果跨页表格被拦腰斩断,章节引用断了线,检索出来的片段答非所问,员工问一个审批流程,系统回了一段完全不相关的采购条款。那段时间内部吐槽很多,说这个知识库还不如自己翻 PDF。我们接手时,第一件事就是把切片逻辑整个推翻重做,因为切片质量直接决定了后面检索和生成的上限。

我们进场前他们已经换过两版切片方案,第一版按五百字切,第二版按一千字切,跨页问题一直没解决,员工对知识库的信任度已经很低,很多人宁愿自己翻原文档也不信检索结果。集团知识库每年还在涨,新制度不断进,旧的又不删,混在一起体量越来越大,切片质量如果不解决,后面的重排和生成再怎么调都白搭。

二、落地场景

新的方案先做版面解析,把 PDF 的标题层级、表格、段落结构还原出来,重建一份文档树。切片不再按字数,而是顺着文档树的章节边界切,保证每一块都是语义完整的。遇到跨页表格和跨页引用,我们做还原和回链,把被截断的表拼回原样,把"详见某某"指回具体章节。向量入库的时候带着层级路径和引用关系,检索时不仅能命中片段,还能顺藤摸瓜拿到上下文。员工提问后,系统给出的答案会带上出处章节链接,不用再自己翻原文档核对。这套东西跑起来后,内部使用率明显上来了。

文档树重建后,我们在检索结果里直接带上章节面包屑,员工点一下就能跳到原文档对应位置核对,这个交互比单纯给一段文字让人放心。跨页表格还原后,员工问一个参数表,系统能完整返回那张表而不是半截。引用回链让“详见某章”不再断线,答案里能顺着引用摸到上下文,使用率因此明显回升。

三、关键技术挑战与解决思路

版面结构还原是第一步也是最容易翻车的地方,不同厂商导出的 PDF 结构差异很大,有的标题是真正的样式,有的是纯靠字体大小伪装的,我们做了规则加模型的两层判定,先按样式识别,识别不出的用版面模型兜底。语义边界分块防截断,我们放弃了固定窗口,改为沿章节节点切,但节点过长也会超模型上下文,所以设了上限,超了就在子节点再细分。跨页引用还原最麻烦,我们建了一张引用映射表,把"详见"类表述解析成目标章节 ID,检索时一并召回。长文档索引成本也要管,层级路径做了裁剪,只保留必要上下文,避免向量库被无效信息撑爆。

我们在版面解析上做过一次失败尝试,纯靠字体大小判断标题,结果一份用统一字号排版的文档全识别错了,后来才加上样式加模型的两层。语义边界分块设上限也很关键,有的章节本身就有三四千字,硬切会超上下文,我们在子节点再细分但保留父路径,保证碎片也能溯源。长文档索引成本这块我们做了层级裁剪,只保留必要上下文进向量,库体积没爆。

四、效果数据

切片命中率从原来固定切片的不到六成提升到九成左右,关键是跨页和引用的还原补齐了之前大量丢失的语义。检索准确率提升约三成,员工问流程类问题基本能拿到正确章节。跨页引用还原率能做到九成五以上,这部分是之前完全缺失的能力。入库耗时因为多了版面解析环节,单文档平均多了几秒,但在可接受范围,毕竟质量提升换来的是使用率翻倍。我们复盘时确认,切片这一层的投入产出比最高,比换更好的重排模型见效还快。

内部使用率从低谷回升到接近改造前最好水平的两倍,说明切片质量直接决定了用不用。跨页引用还原率九成五,这部分是之前完全缺失的。入库耗时单文档多了几秒,但我们做了批量并行,整体入库吞吐没受明显影响。我们复盘时把切片和重排的贡献分开测了,切片单独带来的准确率提升比重排还大。

五、可复用经验总结

分块不能只看字数,得顺着文档树的章节边界切,跨页引用一定要回链原节,这两点我们是用一堆答非所问的 bad case 换来的。版面解析别迷信单一规则,真实文档千奇百怪,规则加模型兜底才稳,我们早期纯规则方案在三分之一的文档上直接翻车。向量入库别把整棵文档树都塞进去,层级路径裁剪得当,检索质量不降反升。下一步想把表格结构化抽取单独成一条流水线,让跨页大表能被直接查询而不是只做还原。

案例片段(已脱敏): 文档树分块片段:解析出 H1-H3 层级后,以 H2 为最小切片单元,单元超 1500 字则在 H3 下再细分;"详见具体章节"经引用映射解析为目标节点 ID 并打标。某 120 页工艺文档,旧方案跨页表丢失 11 处,新方案还原 10 处,引用回链准确率 96%。检索 top5 命中率由 58% 升至 91%。

版面解析别迷信单一规则,真实文档千奇百怪,我们三分之一文档在纯规则下翻车才加上模型兜底。切片上限加子节点细分这个平衡,是避免超上下文又不丢溯源的关键,别图省事一刀切。向量入库做层级裁剪,库不会被无效信息撑爆,检索质量还不降。下一步把表格结构化抽取单独立流水线,让大表能被直接查而不是只还原。