GEM 针对的是一个很具体的检索错位:用户越来越习惯用自然语言说明复杂需求,但传统 BM25、双塔和大多数 embedding 模型仍主要依赖词面或静态语义相似度。当相关文档没有直接复述查询中的词,或者查询包含“想要什么、不要什么、适合谁、需要满足哪些条件”等隐含约束时,单纯压缩 query 的表征很容易把主题相近但不满足条件的文档排在前面。论文把这一问题放到 reasoning-intensive retrieval 和 instruction-following retrieval 两类任务中观察,并指出已有方案经常把上游 LLM 推理和下游向量检索拆成两个模型:推理文本可能只是增加了词面重合,并不代表检索器真正学会了相关性标准。
作者还强调了训练目标之间的冲突。普通 embedding 模型用双向注意力或只优化对比损失,能够得到较强的向量,却可能发生 catastrophic forgetting,失去原有的生成和指令遵循能力;反过来,保留生成能力的 LLM 又未必能把自己生成的解释稳定地映射成检索空间。对社区搜索来说,这个问题对应短 query、口语表达、隐含意图和评论上下文之间的鸿沟:用户可能只输入“适合新手的低糖早餐”,帖子却只写了食材和步骤,检索器需要理解“新手、低糖、早餐”这些条件的组合,而不是寻找字面相似的标题。
2. 方法详解
GEM 的核心是 generate-then-encode。给定查询 q,模型先在一个固定的 meta-instruction 下生成 response r,response 用来明确用户意图、相关性标准和需要满足的约束;随后模型把 prompt 与 response 拼接,并在末尾追加专门的 <|embed|> token,用该 token 的隐藏状态作为查询向量。文档侧不做自由生成,而是加上文档 prompt 后直接追加同一个 embedding token 得到文档向量,最终用余弦相似度进行召回。这样,生成过程和向量检索共用一个因果 Transformer,生成完成后的 embedding token 可以复用生成阶段的 KV cache。
训练数据不是把原始 query-document 对直接喂给模型。对每个已有查询和正样本文档,作者先用骨干 LLM 采样 K=8 个候选 reasoning response,再用 LLM 相关性分类器判断某个 response 是否仍然保持原正样本的相关性;如果所有 response 都与原标注冲突,该查询会被丢弃。通过筛选的 response 会进入第二阶段:LLM 根据 reasoning 生成正样本文档和困难负样本文档。困难负例保持相近主题,却故意违反 response 中的用户意图或限制条件,迫使 embedding 学到“满足要求”而不是“谈论同一主题”。生成文档还会经过再次过滤,降低合成内容与相关性指令不一致的风险。
模型同时优化两个损失。生成损失是 response 上的 causal language modeling 交叉熵;embedding 损失是 InfoNCE,对每个 query-response embedding 拉近正例文档,推远困难负例和 batch 内负例。最终目标为 L_GEM = lambda_gen L_gen + lambda_emb L_emb,实验设置 lambda_gen=0.1、lambda_emb=1.0,温度参数为 0.02。作者没有用 EOS 作为向量位置,因为 EOS 需要保留给生成终止;专用 embedding token 既不会参与生成预测,也能在推理时用缓存增量计算。
工程配置相对清晰。GEM 从 Qwen3-4B-Instruct-2507 初始化,训练 500 steps,有效 batch size 512,学习率 1e-5,50 steps warmup,每个 query 使用一个正例和一个 hard negative,训练约 14 小时、使用 2 张 NVIDIA H100。合成数据包含约 370K 样本:Promptriever 的 320K(其中 260K 加 reasoning、60K 原始样本)和 ReasonIR hard query 的 50K;response 生成使用 GEM 骨干,文档生成使用 Llama-3.1-8B-Instruct。评测时默认 greedy decoding,最大生成长度 1024 tokens;对文档和查询的最大输入长度也设为 1024。测试时还可以通过 prompt 要求生成 64、256、512、1024 或 2048 个词,把更多推理计算换成潜在的检索质量。
3. 核心技术贡献
第一,GEM 把生成和 embedding 放进同一个可增量执行的因果模型,而不是把 LLM query expansion 的输出交给另一个双塔。这个设计的关键不是“让模型写一段解释”,而是把解释过程的隐藏状态通过专用 token 直接变成检索向量,因此生成能力和检索目标共享表示。对比同骨干的 embedding-only 模型,GEM 在 BRIGHT 平均 nDCG@10 达 29.1;在定理检索子任务上,作者报告同骨干结果从 19.8 提升到 32.0。
第二,作者提出 reasoning-aligned data generation。候选 reasoning 先经过正例一致性筛选,正负文档再围绕 reasoning 中的条件生成。这比只用人工 query-document 标注更接近真实的“满足约束的相关性”。消融显示,去掉 document generation 后 BRIGHT nDCG@10 从 29.1 降到 25.8;去掉 hard query 后 FollowIR p-MRR 从 +11.7 降到 +8.5,说明困难查询和条件化文档确实在教模型学习更细粒度的相关性。
第三,GEM 保留了因果生成能力,并把测试时计算作为可调旋钮。将目标生成长度提高到约 1024 词时,BRIGHT 平均 nDCG@10 达到 30.1,之后收益趋于饱和,因为模型会为简单问题生成冗余内容。复用 KV cache 后,随着 response 变长,generate-then-encode 的编码时间保持稳定,而把生成和编码拆成独立模型会出现明显的长度开销。这给线上系统提供了质量、延迟和成本之间的可控折中。
第四,实验验证了统一模型的代价边界。关闭生成损失的 GEM encoder 在 FollowIR 上 p-MRR 为 +12.5、BRIGHT nDCG@10 为 30.0,而完整 GEM 分别为 +11.7 和 29.1;完整模型牺牲了少量纯 embedding 指标,却保留了生成能力。也就是说,作者并没有声称统一范式在每个向量指标上都最好,而是用小幅检索损失换取能理解自然语言、可 prompt 扩展、可复用生成表示的系统能力。
4. 实验结果分析
主要实验覆盖 BRIGHT 的 12 个 reasoning-intensive 子集,以及 FollowIR 和 InstructIR 的 instruction-following retrieval。BRIGHT 包含生物、地球科学、经济、心理、机器人、Stack Overflow、可持续生活、LeetCode、Pony、数学奥赛和定理检索等不同域;FollowIR 同时报告 Robust04 的 MAP、News21 的 nDCG、Core17 的 MAP 与 p-MRR;InstructIR 基于 MS MARCO,并额外报告在不同用户上下文提示下的 Robustness@10。这个设计把“主题检索”和“理解复杂条件”分开测量,比较适合判断模型是否真的使用了 reasoning。
| 模型/设置 | BRIGHT 平均 nDCG@10 | FollowIR p-MRR | InstructIR nDCG@10 | InstructIR Robustness@10 |
|---|---|---|---|---|
| Qwen3-4B-Instruct embedding-only | 约 21.4 | +6.8 | 82.0 | 46.2 |
| GEM | 29.1 | +11.7 | 87.5 | 54.8 |
| ReasonIR-8B | — | — | 87.1 | 53.1 |
| Promptriever 7B | — | +11.2 | 92.1 | 63.1 |
在 BRIGHT 上,GEM 的平均 29.1 高于同骨干的 embedding-only 变体;定理任务从 19.8 到 32.0 的提升尤其明显,说明生成的解释对需要跨概念、跨步骤建立关联的检索有效。GEM 也存在明确失败案例:Pony 编程语言子集上表现很差,与 Promptriever 一样出现域外崩溃,作者认为主要原因是训练数据高度来自 MS MARCO,缺少代码语料。这个现象提醒我们,reasoning 能力并不能替代领域数据覆盖。
在 FollowIR 上,GEM 与 7B 级模型接近甚至超过若干基线。相对同骨干 Qwen3-4B,p-MRR 从 +6.8 提升到 +11.7,说明模型更能随 relevance instruction 改变表示;在 InstructIR 上,nDCG@10 从 82.0 升到 87.5,Robustness@10 从 46.2 升到 54.8。与只把 GEM 的 response 当作外部 query expansion 的做法相比,直接使用 GEM 的 generate-then-encode 更稳定;在表 3 中,普通 HyDE 或 Query2Doc 有时提高平均分,却可能降低 p-MRR,表明生成文字本身并不等于正确的条件化检索表示。
消融结果揭示了组件的重要性。去掉生成能力后,BRIGHT nDCG@10 约降至 21.0;去掉原始非 reasoning 样本后,BRIGHT 降到 27.5,说明普通样本有正则化作用,可以防止模型只适应长 reasoning。去掉 hard query 后 FollowIR p-MRR 降到 +8.5,证明简单事实 query 提供的对比信号不足;去掉 document generation 后 BRIGHT 降至 25.8,但 FollowIR 变化很小,说明详细 instruction 能部分弥补文档生成缺失,而真正复杂的 reasoning 检索更依赖与 reasoning 对齐的正负文档。
追加实验在 TREC-DL-2019 和 TREC-DL-2020 的 8.8M MS MARCO passage corpus 上也有一致方向:GEM nDCG@10 为 70.4 和 73.6,分别高于 Qwen3-4B embedding-only 的 69.0 和 69.1。测试时计算显示,生成长度提高到 1024 词后平均 nDCG@10 达 30.1,但继续增加长度收益饱和,简单 query 会产生冗余 reasoning。作者还测了 IFEval、MMLU、ARC-Challenge、GSM8K 和 HumanEval,GEM 并未完全保持原始 Qwen 的所有能力,例如 IFEval 84.3 低于 Qwen3-4B 的 86.4,但仍保留了可用的生成能力,证明 joint objective 确实缓解而非完全消除遗忘。
5. 局限与未来方向
作者明确指出,受算力限制,无法在更大的 7B 及以上 backbone 和更大规模训练数据上复现实验,模型泛化实验最多覆盖 4B 参数。论文还单独讨论 Pony 子集的域外失败:Promptriever、GEM 和不同 backbone 的 GEM 变体都表现不佳,说明当前数据分布不足以支持代码类检索。另一个现实限制是训练数据生成依赖外部 LLM:response 要采样、过滤,正负文档要生成和再次校验,虽然推理阶段可以复用 KV cache,但训练数据准备成本明显高于普通对比学习。
从论文没有展开的角度看,GEM 对社区搜索还需要解决三个问题。第一,用户 query 是实时变化的,不能像文档一样完全离线生成,因此生成式 query encoding 可能成为热路径成本;第二,LLM 生成的 reasoning 可能泄露用户敏感意图,或者把错误约束固化进向量;第三,BRIGHT 和 MS MARCO 仍然不是中文短文本、评论链和强时效 UGC,平均 nDCG 不能直接推断线上 CTR。未来应做领域增量训练、中文与口语 query 评测、解释文本隐私处理,以及把 test-time compute 只分配给不确定或长尾 query。
6. 工业实践意义
对社区搜索团队,GEM 最值得借鉴的不是把所有召回都替换成 4B LLM,而是把 reasoning 作为一种可控的查询表征增强层。第一阶段可以离线构造“复杂 query 集”:包含隐含条件、否定条件、比较需求和多意图短句;在召回前只对这部分 query 做 generate-then-encode,普通短 query 继续使用轻量 embedding。文档侧预先计算 embedding,并把帖子标题、正文、标签、评论上下文分别作为可追踪字段,方便分析 reasoning 到底改变了哪一类候选。
第二,训练样本应围绕真实业务相关性构造,而不是只复制点击正例。可以从用户点击后停留、收藏、追问和负反馈中抽取 hard query;再用规则或人工审核生成“主题相近但不满足约束”的 hard negative,例如标题写“低糖”,正文却含高糖配料,或者帖子回答了地点却忽略时间限制。这样才能让对比损失学习业务条件,而不是学习热门词。
第三,线上部署需要明确成本边界。GEM 的 500 steps/370K 样本训练和 2 张 H100 的配置说明小团队可以做原型,但对每个 query 生成数百词会放大首 token 和 GPU 成本。建议将生成长度设为短档位,使用 KV cache、vLLM、FlashAttention 等成熟优化,并把高预算 reasoning 作为灰度策略;同时保留传统召回作为 fallback。监控指标至少应包括 query encoding p95、召回 nDCG@10、点击率、长尾 query 覆盖、空结果率和生成解释与实际点击文档的一致性。
最后,GEM 的域外失败和统一模型的轻微 embedding 损失都说明它更适合“复杂意图补强”,不适合直接替代稳定的候选基础设施。对 UGC 搜索,推荐先做双路架构:轻量向量/词法召回保证规模与延迟,GEM 负责复杂 query 的意图扩展或小范围重排;当线上实验确认 nDCG 与 CTR 的增益覆盖生成成本后,再逐步扩大流量。对于涉及健康、法律或财务的帖子,还应把 reasoning 生成、证据引用和安全拒答分开评估,不能因为检索分数提升就默认答案可信。