Qwen3 Embedding报告随笔

好久没更了,打了俩比赛收益很低,收收心回来继续做论文

这期随笔记录qwen3 embedding模型中的核心内容

这里训练qwen3 embedding模型主要用到一些预训练数据和利用qwen3合成的高质量训练数据

一、简介

采用Qwen3 instruct来合成了一些数据,用于第一训练阶段并且取出一部分高质量的数据用于第二阶段训练

二、模型架构

从Qwen3 dense结构出发

三、embedding和判别式排序

embedding

输入格式:{Instruction} {Query}

用instruct带入语境信息

判别式:

对于判别式的得分,是用两个对数概率求加权占比,这一点和不加权直接拿yes的概率有什么区别

四、训练过程

reranker模型不经过第一阶段的预训练

具体损失

embedding模型的训练损失就是对比损失,对于对比损失的分母,设计比较复杂,融合了多种负样本,并且利用了对query和doc之间的表征的相似度

包括inbatch内的query和正样本doc、query和k难负样本、batch内非自身doc、query之间、doc之间

根据doc候选和正样本的相似度来分配权重,即通过相似度排除一些高可能性是假的负样本带来的噪声:

对于ranker的训练,则是接了一个分类头,用sft的损失

模型融合

对训练过程中的多个模型检查点不是简单的线性加权,而是采用球面线性插值来保留多个检查点的优势

以下是这个技术的做法和gemini的解释:

球面线性插值(Spherical Linear Interpolation, slerp)是实现模型融合的一种高级算法。在深度学习中,一个模型的全部参数(权重)可以被看作是一个高维空间中的向量。传统的模型平均方法(即线性插值)是直接将这些向量进行加权平均。然而,这种简单的线性路径可能会导致合并后的向量长度缩短,从而损失模型的性能和特性。

Slerp 则不同,它在两个模型参数向量之间沿着一个球面上的最短弧线(测地线)进行插值。这种方式能够更好地保留每个原始模型的"几何特性",在平滑过渡的同时,确保融合后的模型能更完整地继承各个检查点的优势,避免性能的直接折损。

这个做法有利于提升模型泛化能力

五、训练数据

用Qwen 32B合成数据,增加数据类少的场景的训练数据,用多种prompt

同时在合成数据时用检索模型把一些很可能相关的候选也加入到prompt中,给模型更多参考

融合了多种语言、长度、格式的query

最终大概有150M合成数据,然后用余弦相似度大于0.7的这个方法来过滤高质量的数据12M对用于二阶段的训练

六、效果

在一些benchmark上超过一些embedding的开源和商业模型"

附上链接:Qwen3 Embedding: Advancing Text Embedding and Reranking Through Foundation Models

相关推荐
zzzsde1 天前
【C++】深入理解string类(5)
java·前端·算法
渡我白衣1 天前
《深度学习进阶(四)——多模态智能:语言、视觉与语音的融合》
人工智能·深度学习
weixin_418007601 天前
用opencv来识别信用卡的号码 Vs 使用yolo+paddleocr
人工智能·opencv·yolo
爱凤的小光1 天前
OpenCV的数据类型二
人工智能·opencv
flay1 天前
Claude Code + Git:AI驱动的版本管理最佳实践
人工智能·ai编程
王一点er1 天前
为什么LLM中KL散度需要近似计算
人工智能·深度学习
清风wxy1 天前
C语言基础数组作业(冒泡算法)
c语言·开发语言·数据结构·c++·windows·算法
IT小番茄1 天前
Kubernetes云平台管理实战:如何创建Deployment更好(九)
算法
golang学习记1 天前
Github狂飙8k star,Claude Code 模板:一键搞定项目配置的高级法器
人工智能