先这样答
用 Qwen 做 Rerank,常见做法是把 query 和候选文档拼进 prompt,再让模型输出相关性分,或者直接输出候选文档的排序。这个过程属于生成式 Rerank。模型不只看关键词,还能根据 query 和文档的语义关系判断相关性。
它的优点是和 LLM 的语义理解方式一致。模型可以直接理解用户问题和候选内容之间的关系,再给出分数或顺序。缺点是速度慢。每对 query 和文档都需要调用一次模型,候选数量一多,调用次数就会上升。
工程上不会把所有候选都交给 Qwen。可以先用一个小 reranker 做粗排,只保留少量 Top 候选,再让 Qwen 做精排。这样可以减少模型调用。如果希望减少在线调用成本,也可以对 Qwen 做排序微调,让它学习候选之间的相对顺序,训练时使用 pairwise loss。
面试官会怎么追问
-
「为什么不直接让 Qwen 给所有候选排序?」 直接排序会让模型处理很多候选,在线调用次数也会增加。生成式 Rerank 本身比较慢。工程上通常先用小 reranker 粗排,再把少量 Top 候选交给 Qwen。
-
「Qwen 输出相关性分和输出排序,应该怎么选?」 两种方式都可以作为生成式 Rerank 的输出形式。输出相关性分时,可以按分数排序。直接输出排序时,模型直接给出候选之间的顺序,具体选择要看系统需要的结果格式。
-
「为什么还要对 Qwen 做排序微调?」 微调可以让 Qwen 学习候选之间的相对顺序。训练时可以使用 pairwise loss,让模型比较两个候选的相关性。这样可以把排序任务的目标放进模型训练过程。
回答的坑
- 只说 Qwen 能理解语义,却不说每对 query 和文档都要调用一次,面试官会继续追问延迟问题。
- 只讲模型方案,却不讲小 reranker 粗排和 Top 少量精排,答案会缺少工程处理。
同系列的题
这家公司的面经实录
相关深度笔记