【模型微调】负样本选择

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]。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/news/909994.shtml
繁体地址,请注明出处:http://hk.pswp.cn/news/909994.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

下载安装redis

有任何问题,都可以私信博主,共同探讨学习。 正文开始 一、下载安装redis一、启动redis总结 一、下载安装redis redis官方下载地址是github,有条件的同学可以自行搜索下载。针对部分网速不太好的同学,可以通过网盘获取&#xff0c…

flutter 项目配置Gradle下载代理

如图, 在Android Studio中配置代理是不生效的。 需要在flutter sdk的Gradle中去配置代理

世冠科技亮相TMC,以国产MBD工具链赋能汽车电控系统开发新未来

2025年6月12日至13日,第十七届国际汽车动力系统技术年会(TMC2025)在南通国际会展中心盛大召开。作为全球汽车动力系统领域规模最大、规格最高、内容最前沿的标杆性国际盛会,汇聚了来自全球整车企业、核心零部件供应商、顶尖科研机…

将本地项目与远程 Git 仓库关联的完整步骤

将本地项目与远程 Git 仓库关联的完整步骤 现在的情景是:本地文件项目已经写好了,亦或者远程仓库已经建好了,需要与本地项目关联起来 以下是详细的操作流程,我会用清晰的步骤说明如何将你的本地项目与远程 Git 仓库关联&#xf…

3DS 转换为 STP 全攻略:迪威模型网在线转换详解

在三维模型创作与应用的多元场景中,不同格式的文件承担着独特的角色。3DS(3D Studio)格式是 Autodesk 3ds Max 早期广泛使用的文件格式,常用于游戏开发、影视特效制作等领域,能够存储模型的几何形状、材质、动画等信息…

Linux下iptables和firewalld详解

Linux下iptables和firewalld详解 Linux下iptables和firewalld简述Iptables四表五链策略与规则链命令参数Firewalld终端管理工具图形管理工具服务的访问控制列表Linux下iptables和firewalld 简述 ​ 保障数据的安全性是继保障数据的可用性之后最为重要的一项工作。防火墙作为公…

Kafka Connect高级开发:自定义扩展与复杂场景应对

引言 在掌握Kafka Connect基础操作与内置连接器应用后,面对企业复杂的业务需求,如对接非标准数据源、实现特定数据处理逻辑,就需要深入到高级开发领域。本篇博客将围绕自定义Connector开发、数据转换编程、错误处理与容错机制展开&#xff0…

吴恩达机器学习笔记:正则化2

1.正则化线性回归 对于线性回归的求解,我们之前推导了两种学习算法:一种基于梯度下降,一种基于正规方程。 正则化线性回归的代价函数为: J ( θ ) 1 2 m [ ∑ i 1 m ( h θ ( x ( i ) ) − y ( i ) ) 2 λ ∑ j 1 n θ j 2 …

Unity中的Resources加载

Unity的Resources加载是Unity引擎中一种在运行时动态加载资源(assets)的方式,允许开发者将资源放置在特定的Resources文件夹中,并通过代码按名称加载这些资源,而无需在场景中预先引用。这种方式在需要动态加载资源时非…

对Vue2响应式原理的理解-总结

根据这张图进行总结 在组件实例初始化阶段,通过 observe() 方法对 data 对象进行递归遍历。在这个过程中,Vue 使用 Object.defineProperty() 为data 中的每个属性定义 getter 和 setter 来拦截对象属性的“读取“操作和“写入”操作。 Vue 的依赖追踪是…

基于深度学习的智能音频增强系统:技术与实践

前言 在音频处理领域,音频增强技术一直是研究的热点。音频增强的目标是改善音频信号的质量,去除噪声、回声等干扰,提高音频的可听性和可用性。传统的音频增强方法主要依赖于信号处理技术,如滤波器设计、频谱减法等,但这…

从代码学习深度强化学习 - DQN PyTorch版

文章目录 前言DQN 算法核心思想Q-Learning 与函数近似经验回放 (Experience Replay)目标网络 (Target Network)PyTorch 代码实现详解1. 环境与辅助函数2. 经验回放池 (ReplayBuffer)3. Q网络 (Qnet)4. DQN 主类5. 训练循环6. 设置超参数与开始训练训练结果与分析总结前言 欢迎…

AI与大数据如何驱动工业品电商平台的智能决策?

在轰鸣的工厂里,一台关键设备因某个密封圈失效而骤然停机。生产线停滞、订单延误、经济损失每分钟都在扩大。此刻,采购经理在工业品电商平台上疯狂搜索,却迷失在海量零件参数与供应商信息中。工业品的沉默,往往意味着生产线的沉默…

连接器全解析:数据库连接器和文件连接器的区别和联系

目录 一、数据库连接器和文件连接器的基本概念 1. 数据库连接器 2. 文件连接器 二、数据库连接器和文件连接器的区别 1. 数据存储方式 2. 数据处理能力 3. 数据安全性 4. 数据更新频率 三、数据库连接器和文件连接器的联系 1. 数据交互 2. 数据处理流程 3. 应用场景…

Uniapp 中根据不同离开页面方式处理 `onHide` 的方法

Uniapp 中根据不同离开页面方式处理 onHide 的方法 在 Uniapp 开发中,onHide 生命周期会在页面隐藏时触发,但默认无法直接区分用户是通过何种方式离开页面的。不过我们可以通过组合其他钩子函数和路由事件来实现对不同离开方式的识别和处理。 一、常见…

使用Visual Studio Code实现文件比较功能

Visual Studio Code 中如何使用文件比较功能? 在 Visual Studio Code (VS Code) 中使用“比较文件”功能来查看两个文件之间的差异是非常直观的。 以下是具体步骤: 使用“比较文件”功能 打开 VS Code: 启动 VS Code 编辑器。 打开第一…

(40)华为云平台cce中挂载nginx等配置文件方法

直接在负载中添加数据存储: 将nginx.conf文件分别存放在集群中每个cce节点对应的路径下即可(防止pod飘节点找不到nginx.conf) 2.直接添加配置项与密钥: 添加对应的key与value即可(nginx.conf的具体配置写在value中&am…

web布局09

Flexbox 是现代 Web 布局的主流技术之一,它提供了一种有效的方式来定位 、排序 和 分布元素,即使在视窗或元素大小不明确或动态变化时亦是如此。Flexbox 的优势可以用一句话来表达:“在不需要复杂的计算之下,元素的大小和顺序可以…

Redux and vue devtools插件下载

Redux and vue devtools插件下载 插件下载地址 收藏猫插件

深入理解SQLMesh中的SCD Type 2:缓慢变化维度的实现与管理

在数据仓库和商业智能领域,处理随时间变化的数据是一个常见且具有挑战性的任务。缓慢变化维度(Slowly Changing Dimensions, SCD)是解决这一问题的经典模式。本文将深入探讨SQLMesh中SCD Type 2的实现方式、配置选项以及实际应用场景。 什么是SCD Type 2&#xff1f…