先这样答
Rerank 的 TopK 应结合上下文预算、噪声代价和延迟来截断,优先用分数阈值让截断点随相关度分布变化。固定 K 容易把低相关度 chunk 一起塞进上下文,增加噪声。分数阈值会根据当前候选的分数分布决定保留多少,更稳。
先看上下文预算。TopK 不能只看检索结果,还要给历史和生成留空间。保留过多 chunk,会挤压这两部分空间。再看噪声代价。排在后面的 chunk 相关度通常更低,继续加入会稀释注意力。截断过早又可能漏掉仍有用的内容,所以要在预算和相关度之间取点。
最后看延迟。Rerank 使用交叉编码器,候选越多,计算越慢。把候选截得更短,通常能降低 rerank 延迟,但也可能损失相关内容。面试里我会补充监控 rerank 后的分布漂移。分布变化时,固定 K 可能不再适配当前结果,阈值策略也需要重新观察。
面试官会怎么追问
-
「为什么不直接固定 K?」 固定 K 的截断点不随当前相关度分布变化。排在后面的 chunk 相关度较低时,固定 K 仍会把它们加入上下文。分数阈值能减少这类噪声,因此更稳。
-
「截断点具体要看哪些因素?」 先看上下文预算,要给历史和生成留出空间。再看噪声代价,避免加入低相关度 chunk 后稀释注意力。还要看延迟,因为 Rerank 使用交叉编码器,候选越多就越慢。
-
「如果线上结果分布变了,原来的策略还可靠吗?」 不能默认可靠,需要监控 rerank 后的分布漂移。分布变化后,固定 K 可能不再适配当前结果。分数阈值也要结合新的分布继续观察。
回答的坑
-
只说固定 K 能控制数量,却不说明它可能把低相关度 chunk 一起带入上下文。
-
只谈准确率,不谈上下文预算和交叉编码器带来的 rerank 延迟。
同系列的题
这家公司的面经实录
相关深度笔记