Skip to content

6.4.4 长文档、多文档、跨文档问题分别有什么不同? ​

先给结论:这三类问题都比普通单段问答更复杂,但复杂的原因并不一样。长文档问题难在“信息层级深”,多文档问题难在“候选来源多”,跨文档问题难在“答案需要在多个来源之间建立关系”。

所以如果把三类问题都粗暴看成“文档有点长”,后面的检索设计通常会偏。

一、长文档问题的核心难点 ​

长文档问题通常指的是:

  • 答案主要还在一篇文档里
  • 但文档本身很长、层级多、结构复杂

它的核心难点通常是:

  • 怎么先找到相关范围
  • 怎么避免只抓到局部碎片
  • 怎么保住章节和上下文关系

这类问题更容易需要:

  • 分层检索
  • 文档级 + chunk 级结合
  • 父子块设计

二、多文档问题的核心难点 ​

多文档问题通常指的是:

  • 同一个问题可能要在多篇文档里分别找证据

但这些证据之间不一定需要很强逻辑推理,只是:

  • 相关信息分布在多个来源里

它的核心难点通常是:

  • 候选范围更大
  • 需要更稳的多文档聚合
  • 更容易被同一文档内部多个 chunk 抢位

这类问题更需要关注:

  • 候选多样性
  • 文档去重和聚合
  • 结果覆盖而不是只盯单篇文档

三、跨文档问题的核心难点 ​

跨文档问题比多文档再更进一步。

它通常意味着:

  • 不只是信息分布在多篇文档里
  • 还需要把这些文档之间的关系拼起来,才能真正回答问题

例如:

  • 文档 A 给出规则
  • 文档 B 给出例外条件
  • 文档 C 给出版本限制

这时系统不只是要“都召回到”,还要:

  • 把它们正确拼接起来

这类问题最难的不是召回某一条,而是:

  • 能不能把多个来源组织成一个正确证据链

一个更直观的对比 ​

可以先这样理解:

  • 长文档问题:难在一棵树内部找对枝叶
  • 多文档问题:难在很多树里找到相关几棵
  • 跨文档问题:难在把不同树上的证据连成一条链

这三种难点明显不一样。

为什么这会影响检索策略 ​

因为不同问题真正需要的检索能力不同:

  • 长文档更强调层级缩范围
  • 多文档更强调候选覆盖和聚合
  • 跨文档更强调多来源关联和后续组织

如果系统用完全同一种策略处理,常见问题就是:

  • 处理长文档时太碎
  • 处理多文档时覆盖不够
  • 处理跨文档时只召回到零散证据,拼不起来

一个常见误区 ​

很多人会觉得:

  • 只要把 top_k 调大,就能统一解决这三类问题

这通常不够。

因为:

  • 长文档问题不只是候选少,而是结构没被利用
  • 多文档问题不只是候选少,而是来源不够均衡
  • 跨文档问题不只是候选少,而是证据之间没有被组织起来

也就是说,问题不只是“多拿一点”,而是“检索目标本来就不同”。

一句话总结 ​

长文档、多文档、跨文档问题虽然都更复杂,但难点并不一样。长文档难在层级结构,多文档难在多来源覆盖,跨文档难在证据关联。把它们区分开,后面的检索设计才不容易一把抓错。