← 返回 2026-05-29

CoHyDE:面向工具检索的LLM重写器与密集编码器迭代协同训练 CoHyDE: Iterative Co-Training of LLM Rewriter & Dense Encoder for Tool Retrieval

Vaishali Senthil, Ashutosh Hathidara, Sebastian Schreiber 📅 2026-05-28 👍 9 2026-07-13 08:36
DPO对齐 LLM检索增强 协同训练 密集检索 工具检索

通过协同训练LLM重写器和密集编码器解决工具检索中的词汇鸿沟问题

前置知识

密集检索

密集检索将查询和文档编码到同一向量空间,通过向量相似度进行检索。与基于词匹配的稀疏检索(如BM25)不同,密集检索使用神经网络(如BERT)学习语义表示,能够捕捉词义和上下文关系。工具检索中,编码器将用户查询和工具描述映射到Rd维向量空间,检索通过近似最近邻搜索完成。关键公式包括相似度计算和top-k检索,使用内积作为相似度度量。

论文的核心方法是改进密集检索架构,理解密集检索如何工作以及InfoNCE损失是理解CoHyDE训练循环的基础。

HyDE (Hypothetical Document Embeddings)

HyDE是一种零样本检索增强方法,提示LLM为查询生成一个假设文档,然后用密集编码器检索与假设文档相似的真实文档。关键是将查询端编码替换为假设文档端编码。这能桥接查询和文档之间的词汇差距,但生成质量依赖LLM的先验知识,可能产生与目录风格不匹配的输出。

CoHyDE扩展了HyDE思想,但不是零shot使用冻结LLM,而是训练重写器生成目录风格的描述,并与编码器协同训练。理解HyDE的优缺点是理解CoHyDE动机的关键。

DPO (Direct Preference Optimization)

DPO是一种无需显式奖励模型的强化学习算法,直接从偏好对优化策略。损失函数包含sigma函数和log概率比率,其中beta是温度系数。DPO将偏好学习转化为分类问题,偏好对中的样本得分差距越大,更新幅度越大。在CoHyDE中,DPO对齐重写器使得生成的描述能获得更高的编码器检索分数。

CoHyDE使用DPO让编码器的检索分数作为重写器的奖励信号,实现端到端的检索优化。理解DPO如何工作有助于理解S4r阶段重写器更新机制。

InfoNCE损失

InfoNCE是一种对比学习损失,用于训练表示学习模型。给定一个batch中的正样本对和负样本,损失包含两项对称的log softmax。温度参数tau控制分布的平滑程度。InfoNCE鼓励正样本对有更高的相似度,负样本对有更低的相似度。

InfoNCE是编码器训练的核心损失,CoHyDE在S1a和S3r两个阶段都使用InfoNCE,但anchor来源不同(真实查询vs重写器生成描述)。理解InfoNCE有助于理解编码器如何学习表示空间。

词汇分布偏移

词汇分布偏移指训练和推理时输入的词汇分布不一致。在工具检索中,用户查询使用口语化词汇,而工具目录使用技术术语,这是跨模态分布偏移。编码器在查询-工具对上训练,学习到的是查询分布的相似度函数;推理时如果输入重写器生成的目录风格描述,其嵌入分布会偏移,导致最近邻搜索扭曲。论文通过在重写器输出上重新训练编码器,让两者表示空间对齐来缓解这个问题。

词汇分布偏移是CoHyDE要解决的核心问题。为什么HyDE+训练编码器组合反而更差?正是因为训练和推理的anchor分布不一致。理解分布偏移有助于理解CoHyDE的迭代训练设计。

研究动机

工具检索是LLM代理的核心瓶颈。用户查询以口语化、不明确的语言表达(如帮我查天气),而工具目录使用技术API词汇(如OpenWeatherMap_current_weather),固定编码器无法桥接这种差距。现有的两种主流方法各有严重缺陷:对比编码器微调在查询表面形式匹配目录时表现出色(G1标准查询NDCG@5从56.5提升到84.2),但不匹配时完全崩溃(G1模糊查询从84.2暴跌到44.7,下降39.5个百分点);零shot HyDE对不明确查询更鲁棒(G3模糊查询达到17.4%),但生成的描述不匹配目录词汇,在查询结构良好时会损害检索(G1标准从84.2降至73.4)。更严重的是,简单组合两种方法反而更糟(HyDE+训练编码器在G1标准上损失10.8个百分点),因为它们的表示空间被校准到不同的输入分布,无法组合使用。

本文的目标是本文的目标是设计一个统一框架,结合对比编码器微调和HyDE查询扩展的优势,同时避免各自的失败模式。具体来说,需要解决三个问题:(1)让编码器在跨域模糊查询上保持鲁棒性,(2)让重写器生成目录风格描述而非查询风格重写,(3)确保编码器和重写器的表示空间协同演化,避免分布偏移问题。最终目标是在标准查询上保持或超越训练编码器的性能,在模糊查询上大幅超越现有方法。

与已有工作不同的是,本文的独特切入角度是将编码器和重写器视为一个协同演化系统而非独立组件。现有方法要么冻结编码器训练重写器(RaFe),要么冻结重写器训练编码器(Shao et al. 2023),要么独立训练后简单组合(HyDE+训练编码器),都无法解决表示空间不匹配问题。CoHyDE的核心创新是迭代协同训练:编码器用重写器的描述重新训练,重写器用编码器的检索分数作为DPO奖励对齐,两者在训练前都在工具目录上预热。这种双向反馈循环让两个组件逐渐适应对方,形成联合优化的表示空间,这是首次在工具检索中实现真正的端到端协同训练。

核心方法

CoHyDE采用迭代协同训练框架,将密集编码器和LLM重写器作为一个联合系统优化。整体思路是:重写器生成目录风格的假设工具描述,编码器学习在这些描述上进行检索,同时编码器的检索分数作为奖励信号对齐重写器。这两个组件通过交替更新循环相互适应:在每一轮,编码器在重写器生成的(描述, 工具)对上重新训练,重写器通过DPO偏好编码器检索分数更高的描述。训练前两个组件分别在真实查询-工具对和工具目录本身上预热,确保有合理的初始状态。经过3轮迭代后,编码器和重写器形成协同优化的表示空间,推理时重写器将原始查询转换为假设描述,编码器检索最相似的工具。

CoHyDE的核心创新是双向反馈的协同训练循环,与现有方法有三个本质区别:(1)重写器目标不同:生成目录风格的假设工具描述而非查询重写,推理时anchor从查询端移到文档端,这比查询扩展在模糊查询上有效得多(G3模糊17.4% vs 6.2%)。(2)训练信号闭环:编码器的NDCG@5分数直接作为DPO奖励对齐重写器,而非使用外部信号(如RaFe的外部reranker或Shao et al.的下游工具使用成功),形成端到端优化。(3)表示空间协同演化:编码器只在重写器输出上训练(S3r阶段无真实查询),重写器只在编码器检索分数上对齐,两者形成相互适应的表示空间。这种设计让编码器能在只见过描述的情况下,在推理时准确匹配原始查询向量(G1标准NDCG@5达到86.8%,超过在真实查询上训练的编码器84.2%)。

方法步骤详情

CoHyDE的训练流程分为四个主要步骤:(1)编码器预热(S1a):用InfoNCE在真实(查询, 工具)对上训练编码器,工具使用phi5渲染(完整记录)。初始权重为BGE-large-en-v1.5,学习率2e-5,batch size 256,训练5个epoch。这是标准对比学习基线,G1标准NDCG@5达到84.2%。(2)重写器预热(S1b):用5格式SFT训练重写器,每个工具在5种渲染方式(phi1仅标题到phi5完整记录)下展示,学习目录词汇和命名约定。使用LoRA(rank=16),学习率2e-5,训练8个epoch。这一步让重写器知道目录的语言。(3)迭代训练循环(R轮):每轮包含两个子步骤。S3r:编码器重新训练,用InfoNCE在重写器生成描述上训练,锚点是重写器生成的描述而非原始查询。S4r:重写器DPO对齐,对每个查询采样N=4个候选描述,用刚训练的编码器计算NDCG@5分数,取最佳和最差形成偏好对,用DPO损失对齐,beta=0.1。(4)推理:重写器用greedy解码(T=0)生成假设描述,编码器在phi5索引的目录上检索top-k工具。整个过程在10K工具、104K训练对、单H200 GPU上完成,3轮迭代共约50 GPU小时。

技术新颖性

CoHyDE的技术新颖性体现在三个方面:(1)首个真正协同训练的检索-生成框架:现有方法(RAG、Atlas、REPLUG、RA-DIT)训练生成器产生更好的最终答案,而非更好的检索输入;CoHyDE是首个训练生成器输出直接作为检索输入,并与编码器协同优化的方法。(2)描述锚定的检索范式:与查询扩展(anchor在查询端)不同,CoHyDE生成假设工具描述并移anchor到文档端,这在跨域模糊查询上显著更有效(G3模糊17.4% vs 6.2%)。(3)零真实查询训练的编码器:S3r阶段编码器只在重写器输出上训练,推理时却能准确匹配原始查询向量,说明协同训练形成了分布无关的鲁棒表示空间。这与domain adaptation via synthetic queries本质不同,后者用冻结生成器,CoHyDE让生成器也演化。(4)双向DPO反馈循环:不同于RaFe(用外部reranker)和Shao et al.(用下游工具使用成功),CoHyDE用编码器的检索指标直接对齐重写器,形成闭环优化。

Overview of CoHyDE: a dense encoder and an LLM rewriter are co-trained in an alternating loop, with each component iteratively adapted to the other.
Figure 1: Overview of CoHyDE: a dense encoder and an LLM rewriter are co-trained in an alternating loop, with each component iteratively adapted to the other.

实验结果

CoHyDE在ToolBench 10K工具子集上表现优异。标准查询(G1/G2/G3)上,相比最强单组件基线(BGE S1a编码器),CoHyDE r=3平均提升2.5个百分点NDCG@5:G1从84.2%到86.8%(+2.6pp),G2从71.7%到73.6%(+1.9pp),G3从57.1%到60.1%(+3.0pp)。模糊查询上提升更显著,平均提升6.3个百分点:G1从44.7%到49.4%(+4.7pp),G2从30.7%到38.7%(+8.0pp),G3从14.9%到21.1%(+6.2pp)。最难的G3模糊层提升高达8个百分点。CoHyDE解决了训练编码器在模糊查询上的脆性问题:BGE S1a在G3模糊仅14.9%,CoHyDE达到21.1%,同时保持标准查询性能不损失。与先前方法的对比显示CoHyDE全面领先:在标准查询上相比Shao et al. 2023(编码器训练+冻结重写器)提升17.3pp(G1)、18.5pp(G2)、14.3pp(G3);相比RaFe(RL对齐重写器+冻结编码器)提升更显著。模糊查询上CoHyDE优势更大:G3模糊相比RaFe的13.6%提升7.5个百分点到21.1%。消融实验确认协同训练是关键:移除S1b重写器预热导致G3标准下降9.6pp;用训练重写器+原始编码器导致G1标准崩溃23.6pp;用原始重写器+训练编码器导致G3模糊下降5.3pp。这证明两个组件必须协同训练才能同时获得标准查询精度和模糊查询鲁棒性。

NDCG@5 (N@5) and Recall@5 (R@5) in % on standard and vague query splits, stratified by tier.
Table 1: NDCG@5 (N@5) and Recall@5 (R@5) in % on standard and vague query splits, stratified by tier.
Ablation study. Each row removes or replaces one component of CoHyDE.
Table 2: Ablation study. Each row removes or replaces one component of CoHyDE.
Per-stage hyperparameters for the main pipeline.
Table 3: Per-stage hyperparameters for the main pipeline.
Full k-sweep for the round-3 co-trained system.
Table 4: Full k-sweep for the round-3 co-trained system.
Per-round NDCG@5 trajectory on standard (left) and vague (right) query splits, stratified by tier.
Figure 2: Per-round NDCG@5 trajectory on standard (left) and vague (right) query splits, stratified by tier.
NDCG@5 comparison with the two closest prior methods across all six evaluation splits.
Figure 3: NDCG@5 comparison with the two closest prior methods across all six evaluation splits.
查看结构化数据
任务指标本文基线提升
标准查询G1检索 NDCG@5 86.8% BGE S1a (84.2%) +2.6pp
模糊查询G3检索 NDCG@5 21.1% BGE S1a (14.9%) +6.2pp
跨域标准查询G3检索 NDCG@5 60.1% Shao et al. 2023 (45.8%) +14.3pp
跨域模糊查询G3检索 NDCG@5 21.1% RaFe (13.6%) +7.5pp
模糊查询平均检索(G1+G2+G3) NDCG@5 36.4% BGE S1a (30.1%) +6.3pp

局限与改进

论文承认的局限性包括:所有数字来自单个训练种子,没有运行多种子重训练,只能用bootstrap置信区间评估评估集方差,无法评估训练侧方差。实验在10K英文ToolBench子集上进行,偏向消费者REST API(天气、体育、生活、金融、娱乐),是否转移到企业目录、非英文查询或缺少自由文本描述的函数调用架构尚不明确。模糊查询分割Q_vague由论文中使用的LLM生成和验证,虽然人工抽查了50个样本,但生成器和判断器之间的系统性偏差可能未被检测到。对比基线限于单向量密集检索器和BM25,未与cross-encoder rerankers或稀疏-密集混合方法比较,因为这需要匹配延迟或FLOPs预算。作者自己的观察:CoHyDE的协同训练需要每轮重新训练整个编码器,计算成本较高(每轮约1.5小时,3轮共4.5小时),对于更大规模的目录可能不实用。重写器对编码器有强依赖,如果目录更新需要重新协同训练,不够灵活。DPO候选采样依赖温度0.7,如果重写器过度收敛会降低候选多样性,影响DPO信号质量(附录H显示过度SFT会导致此问题)。

独立分析的弱点

独立分析的弱点:(1)计算成本高:每轮需要重新训练整个编码器(335M参数)和重写器DPO,3轮迭代在单H200 GPU上约需50小时,对于企业级目录(可能10万+工具)扩展性差。改进方向:考虑参数高效微调编码器(如LoRA)减少每轮成本,或开发增量更新机制避免完全重训。(2)重写器编码器耦合过紧:重写器对齐到特定编码器,更换编码器需要重新协同训练,不够灵活。改进方向:设计编码器无关的重写器对齐目标,或学习编码器不变的表示空间。(3)依赖目录完整描述:CoHyDE假设工具有完整的自由文本描述,对于只有参数schema的函数调用架构(如函数调用JSON schema)可能不适用。改进方向:扩展到结构化表示,如从schema生成描述或直接编码schema。(4)DPO信号依赖检索指标:NDCG@5是排序指标,可能对中间位置的候选不够敏感。改进方向:考虑其他检索指标(如MRR、Recall)的组合作为DPO奖励,或引入细粒度的偏好模型。(5)单种子训练:所有结果来自单个种子,可能存在训练方差。改进方向:运行多种子重训练,用bootstrap或t检验评估显著性,但需要注意计算成本。(6)英文偏向:实验仅在英文目录上进行,多语言场景可能需要额外的语言对齐。改进方向:扩展到多语言目录,考虑语言特定或语言无关的表示学习。

未来方向

作者提出的未来研究方向:与cross-encoder rerankers或稀疏-密集混合方法比较,在匹配延迟或FLOPs预算下评估CoHyDE的实际部署价值。扩展到更大规模的目录和企业级API集合,验证协同训练的泛化能力。支持非英文查询和多语言目录,探索语言对齐的协同训练策略。处理缺少自由文本描述的函数调用架构,可能从参数schema生成描述或直接编码schema。研究目录增量更新场景下的增量协同训练,避免每次更新都完全重训。基于成果可延伸的方向:将CoHyDE框架扩展到其他检索场景,如代码搜索、文档检索、知识库问答,验证协同训练的通用性。探索更高效的迭代策略,如自适应停止标准(当性能饱和时停止迭代)或早期轮次加速。研究多目标DPO,同时优化检索准确性和描述质量(如信息量、简洁性)。探索协同训练的理论分析,如表示空间收敛条件、双向反馈的稳定性等。

复现评估

复现评估:论文提供较详细的实现细节和超参数。代码未开源(论文中未提到GitHub仓库),但提供了足够的技术细节复现关键实验。数据集使用公开的ToolBench(Apache 2.0许可)和ToolGen(Apache 2.0许可),10K工具子集和104K训练对的采样方法有描述,vague查询分割协议明确(用Claude-4.5-opus替换GPT-4o)。模型使用公开的BGE-large-en-v1.5(MIT许可)和Qwen3.5-4B(Apache 2.0许可),推理可用vLLM。硬件需求明确:单H200 GPU,完整实验约400-500 GPU小时,仅复现主结果约50 GPU小时。超参数在附录E-H中详细列出(学习率、batch size、训练轮数、LoRA配置等)。评估指标(hit@k、Recall@k、NDCG@k)定义明确,计算方法与标准ir_measures库一致。置信区间使用paired-bootstrap协议(B=10000)计算。复现难度中等:需要实现InfoNCE训练、DPO训练、vLLM推理和评估脚本,没有未公开的专有组件。主要挑战是计算成本(需要H200级别GPU约50小时)和vague查询分割的复现(需要Claude API)。如果论文开源代码,复现难度会降到低水平。