Rerank重排与上下文拼接
Rerank 重排用于从初步召回结果中选出最相关内容,并按重要性排序。上下文拼接则决定哪些资料最终进入模型窗口。
# 1. 为什么需要重排
初始检索通常追求召回率,会返回较多候选 Chunk,其中可能包含噪声。
召回阶段:宁可多找,避免漏掉
重排阶段:精选最相关,减少干扰
生成阶段:基于精选上下文回答
没有重排时,模型可能被不相关内容干扰。
# 2. Rerank 的输入输出
输入:
用户问题 + 候选 Chunk 列表
输出:
按相关性排序的 Chunk 列表
重排模型通常比向量检索更精细,但成本和延迟也更高。
# 3. 上下文拼接原则
| 原则 | 说明 |
|---|---|
| 相关优先 | 最相关内容放前面 |
| 证据完整 | 不要截断关键条款和表格 |
| 去重 | 删除重复或高度相似 Chunk |
| 标明来源 | 每段上下文带文档名、页码或链接 |
| 控制长度 | 为模型输出预留 Token |
| 处理冲突 | 不同版本或冲突资料要标记 |
# 4. Prompt 拼接示例
请仅基于以下资料回答用户问题。
如果资料不足,请回答“资料不足”,不要编造。
用户问题:
{question}
资料:
[1] 来源:员工手册 v3,第 12 页
{chunk_1}
[2] 来源:考勤制度,2026-01-01
{chunk_2}
输出要求:
1. 先给结论。
2. 再列出依据。
3. 引用资料编号。
# 5. 冲突处理
企业文档经常有多版本冲突。
处理建议:
- 优先使用最新版本。
- 按业务线或地区过滤。
- 在答案中说明存在冲突。
- 对不确定问题拒答并提示人工确认。
# 6. 常见坑
| 问题 | 后果 |
|---|---|
| 召回结果全部塞给模型 | 噪声多,成本高 |
| 不保留来源 | 无法追溯答案依据 |
| 不处理版本 | 回答过期规则 |
| 拼接顺序随意 | 关键信息被模型忽略 |
| 没有拒答规则 | 资料不足时模型编造 |
# 7. Tips 快问快答
Q:重排一定需要单独模型吗?
A:不一定。小规模场景可以用规则或大模型判断;高质量 RAG 通常会引入专门 Rerank 模型。
Q:上下文放多少最合适?
A:取决于问题复杂度、Chunk 大小和模型窗口。原则是够回答问题即可,不要盲目多放。
Q:引用编号有什么用?
A:引用让用户能核对答案来源,也方便系统排查错误是来自检索还是生成。
上次更新: 2026/06/25, 17:53:09