Appearance
6.4.4 长文档、多文档、跨文档问题分别有什么不同?
先给结论:这三类问题都比普通单段问答更复杂,但复杂的原因并不一样。长文档问题难在“信息层级深”,多文档问题难在“候选来源多”,跨文档问题难在“答案需要在多个来源之间建立关系”。
所以如果把三类问题都粗暴看成“文档有点长”,后面的检索设计通常会偏。
一、长文档问题的核心难点
长文档问题通常指的是:
- 答案主要还在一篇文档里
- 但文档本身很长、层级多、结构复杂
它的核心难点通常是:
- 怎么先找到相关范围
- 怎么避免只抓到局部碎片
- 怎么保住章节和上下文关系
这类问题更容易需要:
- 分层检索
- 文档级 + chunk 级结合
- 父子块设计
二、多文档问题的核心难点
多文档问题通常指的是:
- 同一个问题可能要在多篇文档里分别找证据
但这些证据之间不一定需要很强逻辑推理,只是:
- 相关信息分布在多个来源里
它的核心难点通常是:
- 候选范围更大
- 需要更稳的多文档聚合
- 更容易被同一文档内部多个 chunk 抢位
这类问题更需要关注:
- 候选多样性
- 文档去重和聚合
- 结果覆盖而不是只盯单篇文档
三、跨文档问题的核心难点
跨文档问题比多文档再更进一步。
它通常意味着:
- 不只是信息分布在多篇文档里
- 还需要把这些文档之间的关系拼起来,才能真正回答问题
例如:
- 文档 A 给出规则
- 文档 B 给出例外条件
- 文档 C 给出版本限制
这时系统不只是要“都召回到”,还要:
- 把它们正确拼接起来
这类问题最难的不是召回某一条,而是:
- 能不能把多个来源组织成一个正确证据链
一个更直观的对比
可以先这样理解:
长文档问题:难在一棵树内部找对枝叶多文档问题:难在很多树里找到相关几棵跨文档问题:难在把不同树上的证据连成一条链
这三种难点明显不一样。
为什么这会影响检索策略
因为不同问题真正需要的检索能力不同:
- 长文档更强调层级缩范围
- 多文档更强调候选覆盖和聚合
- 跨文档更强调多来源关联和后续组织
如果系统用完全同一种策略处理,常见问题就是:
- 处理长文档时太碎
- 处理多文档时覆盖不够
- 处理跨文档时只召回到零散证据,拼不起来
一个常见误区
很多人会觉得:
- 只要把
top_k调大,就能统一解决这三类问题
这通常不够。
因为:
- 长文档问题不只是候选少,而是结构没被利用
- 多文档问题不只是候选少,而是来源不够均衡
- 跨文档问题不只是候选少,而是证据之间没有被组织起来
也就是说,问题不只是“多拿一点”,而是“检索目标本来就不同”。
一句话总结
长文档、多文档、跨文档问题虽然都更复杂,但难点并不一样。长文档难在层级结构,多文档难在多来源覆盖,跨文档难在证据关联。把它们区分开,后面的检索设计才不容易一把抓错。