1.核心设计理念
非对称检索任务(例如,用一个简短的问题去文档库里查找答案)的一个核心挑战是查询(query)和文档(passage)在文本特征上的巨大差异。以往的研究发现,为查询和文档提供不同的处理机制可以提升模型性能 [39]。
Jina AI 在此基础上更进一步,不仅使用不同的处理方式,更是设计了两个独立的、专门的LoRA适配器,并对它们进行联合训练,以最大化检索效果 [131]。
retrieval.query
:这个适配器专门负责将用户的查询文本编码成向量 [104]。retrieval.passage
:这个适配器专门负责将待检索的文档段落编码成向量 [104]。
在推理时,用户可以根据输入文本的角色(是查询还是文档)来选择加载对应的适配器,从而为特定用例生成最优的嵌入向量 [103]。
2.训练方法与优化策略
为了让这两个适配器能够精准地工作,Jina AI 采用了两种关键的训练策略:
2.1. 使用硬负样本 (Hard Negatives) 进行训练
为了让模型学会分辨那些“看起来很像但实际不相关”的细微差别,训练过程大量使用了包含“硬负样本”的数据集 [133]。
- 什么是硬负样本:对于一个查询,硬负样本指的是那些在文本上与查询非常相似,但语义上并非正确答案的文档。
- 数据来源:模型使用了像 MS-MARCO 和 Natural Questions (NQ) 这样本身就包含高质量硬负样本的数据集进行训练 [133]。对于没有标注负样本的数据集,Jina AI 会利用 BM25 或其他嵌入模型(如 BGE-large)来进行挖掘,主动找出这些难分辨的负样本 [134]。
- 训练目标:在训练中,通过
L_triplet
损失函数 [135],模型被要求将“查询”向量与“正确文档”(正例)的向量拉近,同时与“硬负样本”的向量推开。
2.2. 针对性的失败案例分析与数据增强
Jina AI 对之前的模型进行了深入的失败案例分析,总结出四种典型的检索失败类型,并针对性地进行了优化 [136, 137]。
- F1:被句法相似性误导
- 问题:模型倾向于选择与查询在字面上更相似的文档,而不是语义上真正相关的“黄金”文档 [138]。这个失败案例指的是,模型倾向于选择那些与查询在字词上重合度高的文档,即使这些文档在语义上并非正确答案 [343]。
* **例子:*** **用户查询:** "如何防止电脑自动更新?"* **模型错误偏好的文档 (句法相似度高):**"这是一篇关于**如何**设置您的**电脑**,并开始**自动更新**以获取最新安全补丁的指南。"* **分析:** 这个文档包含了查询中的所有关键词:“如何”、“电脑”、“自动更新”。由于字面上的高度重叠,模型可能会错误地认为它非常相关。* **正确的相关文档 (语义相关度高):**"您可以进入系统设置,在服务选项中‘禁用’Windows Update服务来**阻止**系统在后台下载安装包。"* **分析:** 这个文档才是真正回答了用户的问题,但它使用了“禁用”、“阻止”等同义词,而不是完全重复查询中的字词。**失败说明:** F1失败案例发生时,模型会因为前一个文档在字面上更“像”查询,而将其排在真正能解决问题的第二个文档之前。
- F2:命名实体的错误解释
- 问题:模型常常无法将命名实体(如人名、书名)作为一个整体来识别,导致部分匹配错误(例如,查询“Albert Stone”,模型可能会错误地匹配上“Sofia Albert”) [139]。
- F3:无法理解是否(Polar)问题
- 问题:对于复杂的“是/否”问题,模型无法有效处理,常常只能检索到包含相关内容但并不能直接回答问题的文档 [141]。
**例子:*** **用户查询:** "长城是唯一能在太空中用肉眼看到的人造建筑吗?"* **模型错误检索的文档 (关键词匹配,但未回答问题):**"**长城**是一项宏伟的**人造建筑**,横跨中国北方。关于从**太空中**能否看到它的讨论一直很激烈。"* **分析:** 这个文档完美匹配了所有关键词:“长城”、“人造建筑”、“太空”。模型因此认为它高度相关。然而,它只是描述了长城并提及了相关话题,完全没有回答最核心的“是不是唯一”这个问题。* **正确的相关文档 (真正回答了问题):**"不,这个说法是一个流传已久的误解。没有任何人造建筑可以在近地轨道上被**肉眼**清晰地分辨出来,因此长城也并非**唯一**的那个。"* **分析:** 这个文档直接对查询的核心问题给出了否定回答,并进行了解释。**失败说明:** F3失败案例发生时,模型表现得像一个关键词匹配器,它找到了“相关主题”的文档,却忽略了用户查询的根本意图——得到一个明确的是非判断。
- F4:偏好低质量文档
- 问题:模型只关注相关性,不考虑文档质量,因此常常会检索出那些虽然提及查询词但内容简短、重复或信息量低的文档 [143, 144]。
解决方案:
- 对于F1-F3:通过精心设计的提示词(prompt),生成了针对性的合成训练数据 [145]。每个合成样本包含一个查询、一个首选的正确答案以及七个模拟上述失败情况的负面答案 [146]。
- 对于F4:利用了包含人类偏好判断和质量评分的 oasst1 和 oasst2 数据集 [147, 148]。Jina AI 将这些数据转换为硬负样本格式:将质量分最高的答案作为正例,并将质量分低至少0.3分的其他答案作为负例进行训练 [149, 150]。
2.3.有效性验证
论文中的消融研究(Ablation Study)明确证实了这一双适配器策略的有效性。研究结果表明,在非对称检索任务中,使用两个适配器(2 Ad.)的性能始终优于使用单个适配器(1 Ad.) [227]。并且,由双适配器带来的模型能力提升,其影响比添加指令提示更为显著 [228]。