2025-06-11 | B站 ModelScope | Qwen3-Embedding深度解析-解密向量模型背后的技术

Qwen3-Embedding模型解析及技术揭秘

媒体详情

上传日期
2025-06-21 17:42
来源
https://www.bilibili.com/video/BV1pCM7zxE7H/
处理状态
已完成
转录状态
已完成
Latest LLM Model
gemini-2.5-pro

转录

下载为TXT
speaker 1: 千问三家族8款模型现在开源,全系均为混合推理模型,既可快速回答又能深度推理,支持一百余种语言旗舰版模型领跑各大榜单,对比同性能模型大幅降低部署成本。 采用moe架构,激活22B参数即可获得强劲性能,大幅提升代码、数学及全方位能力,全期采用宽松型开源协议,原生支持mp截至目前,千问已有超十万衍生模型成为全球最大开源模型。 家族已开源答未来,欢迎下载即在线体验。
speaker 2: 呃,hello大家好,呃,欢迎大家来到通义千问queen的直播间。 那么今天也是我们第一次以直播的形式和大家交流,所以小编也是有点小兴奋啊。 大概在四天前的6月6号,我们开源了全新的通义千问三向量模型系列queen 3 embedding。 那么这个系列的模型呢是以通义千问三为底座,专门为文本表征检索和排序等一些的核心任务进行的优化训练性能较上一代的embedding模型提升了40%左右。 呃,我们在一些mt b等权威的专项榜单中也发现,昆山embedding 8B的这个模型实际上已经取得了呃比谷歌的Minina embedding open的text embedding three large以及微软的相关的模型更好的水平,拿下了同类模型的最佳性能的它表现。 那么同时也得益于千问三的这种多语言的能力,我们的embedding模型系列率先支持超过了一百多种语言,并且涵盖多种编程语言,可实现更强大的多语言、跨语言以及代码检索的能力。 今天我们很荣幸的邀请到通义实验室的工厂老师,来和我们一起分享一下最新的这个queen 3 embedding模型的核心的技术和相关的实现。 那现在就把麦交给工厂老师。
speaker 3: 好的,谢谢主持人的介绍。 大家好,我是通义实验室的张延昭。 很荣幸今天能有机会和大家一起分享我们最新发布的queen 3系列的embanding与ranker模型。 那么本次分享我将从以下三个方面进行介绍。 首先会介绍embanding与ranker模型的一些背景知识,之后介绍我们queen ine embending系列模型训练中的一些核心技术,最后会介绍如何使用这一系列的模型。 那么首先是embending模型的一个背景介绍,embending模型是将一段自然语言的文本通过embending模型后变成一个高维的向量表示。 大家可以理解为是高维空间中的一个点。 那这些点具有与相近的点它们之间的距离更近,与相远的点它们之间距离更远的特点。 因此可以用来做下游的各种分类、聚类、检索等等任务。 那美banding也是lp领域一个研究历史悠久的领域。 最开始的时候大家会采用这种磁带模型做文本的向量表示。 通常来讲就是说我们建立一个词表维度大小的向量,这个向量中每一个维度代表一个单词,向量的值,代表一段文本中这个词出现的概率或者这个词出现的频率。 哦,但这种模型只能解决这种精准匹配的问题,对一些同意但不同词的问题没办法很好的解决。 随着深度学习的发展,后来逐渐开我们有了word vector相关的技术。 Word vector的核心思想是说在一段文本中两个词一起出现的频率越高,那他们的语义就越相近。 呃,通过这种深度学习的训练,我们就可以得到了一个word vector的向量。 这个向量的维度相比磁带模型是大大减少的,而且它是在一个空位空间中具有上述所说的,如果两个词的语义相近,那它们之间的距离就会比较近。 如果两个词的语义比较远,那它们的距离也会比较远。 此外它还有具备一个良好的性质,是说任意两个单词的向量可以进行相加减,得到的就是两个向量语义的呃和或者它们之间语义的差值。 比如说woman减去man和queen减去king,它们语义的差值是相似的。 有了这样的性质之后,我们就可以对一段文本中每个单词的order bending进行加权,平均得到了其句子的向量表示。 但是这种向量表示还存在一个问题是说它没有办法理解上下文,每个单词的word bending都是独立计算的,所以也会存在一些语义边差的问题。 到了Bert时代,大家会采用这种Bert模型,因为它能够充分的理解完整的句子,输出对应的向量表示效果有进一步的提升。 但是原始的Bert模型是不能直接用来做向量表示的,因为Bert模型的训练目标不是为了向量模型而生生产的,此外也存在各种像维独、他缩等问题,有大量的研究工作去研究如何将一个原始的bur模型通过微调变成一个可用的embanding模型。 早期的工作像tpr等,后面也出现了像B系列的开源模型,以及我们之前的gt系列模型都是基于Bert架构的。 那么随着rm的发展,我们发现rm的模型因为经过更充分的预训练,有着更好的文本理解能力,同时支持了像多语言、跨语言以及更长的上下文等功能,对比Bert时代的模型有了进一步的领先,所以现在大家逐渐研究开始如何用一个rm base的模型进行向量的表示。 介绍完了embending模型的背景资料,我们来介绍一下reran模型是什么。 那么刚刚所说embending模型是以一段文本输入输出它的一个向量表示,那么reran模型是一段一对文本作为输入,比如一个用户的问题和相关的文档,那输出的是两者的相关性分数。 呃,通常在一个检索系统中,我们会有一个比较大的候选集合,这个候选集合可能包括百万甚至甚至上亿的文档。 我们通常来讲会首先利用一个embedding模型对这个文档库进行构建。 索引。 之后,当用户提问的时候,可以只对用户的问题进行一次计算,就可以得到它的向量表示。 可以对预先处进建好索引的这个知识库进行检索,得到百级别的候选之后,再用这种re模型对百级别的候选每个逐一进行打分,得到更精准的排序结果。 同时实现了这种效率和效果之间的平衡。 因为软模型它是以一个句子对作为输入呃,所以它可以更好的考虑问题和答案之间一些细度的特征对比。 所以对比embending模型它的性能是更好的,但是它的效但是它的推理效率对比embending模型是更低的,因为bending模型像刚刚介绍所说,对于这种离线的索引是可以提前建立的,在线只需要计算一次,而Reker模型对于每一个句子都需要计算,所以它的推理成本较高,但是效果更好。 通过上述的浏览路就能得到一个既有高效率又有好效果的这么一个推检索链路。 当然对于一些复杂的检索系统,rer也可以分为多个阶段。 比如先用一些小一点的re模型对千级别进行排序,之后再对于排序结果利用一个更强的re模型进行百级别甚至10级别的排序,得到最终的排序结果。 那么随着arm的发展,另一类对检索应用需求比较旺盛的是rg,就是检索增强的大模型生成。 通过事先对知识库进行检索,可以让大模型的回答更可靠,那么整个的链路和刚刚介绍的检索链路也是类似的,当用户query来临的时候,我们首先会对query做改写,意图理解等等特征。 然后通过一个embedding模型对知识库进行检索,得到最后的检索结果之后,再通过rank模型进行重排来得到最终大模型的生成,右图展示了一个经典的ig链路中添加各个模块对最终效果的影响。 可以看到,随着embending模型ranank模型的加入,整个系统的效果是一个稳步提升的状态。 呃,介绍完了背景,下面我们就会介绍queen 3系列的emding和ranker模型训练的一些核心技术,总共分为模型架构、训练数据、训练方法以及结果评测四个方面。 那首先介绍模型的架构,呃,embedding模型和ran模型都均采用queen 3的rm作为底座进行训练。 为了充分利用queen 3底座强大的多语言支持能力以及语言理解能力,对于embedding模型来说,它是以一个用户的问题或者一个文档作为输入。 我们在后面拼接一个固定的end of text字符,取最后一层该字符输出的hidden states作为最终的向量表示。 值得注意的是对于query我们还会拼接一个instruction,这个instruction就是会定义我需要这个embedding模型执行的任务,比如说是一个分类任务,是一个句类任务,或者是一个相关文档的检索,或者说我需需要找相似的问题。 那不同的问题其实对于需求的输出点ding的需求是不同的。 通过这个instruction用户可以自定义自己的呃任务需求来得到更适配的embending。 对dock错我们是不增加任何instruction的。 因为刚刚上述所说这个dock的知识库文档通常会比较大。 如果对于每个任务都重新构build一遍索引的话,整个成本较高。 所以我们只在query进行这种instruction,我们发现就能支持更好的下游任务。 对于R模型,它和embinding模型不同,它是一个用户的问题和一个dock。 对作为输入在前面同样拼接这个instruction之后,我们会在前面拼接一个系统的system promote,让模型根据instruction判断给定的query和dock是否匹配。 如果然后通过模型输出的匹配与否及yes或no概率进行soft max,得到最终的相关性分数。 那么上面介绍完了模型的训练架构,接下来我们介绍模型的训练数据。 为了得到一个通用的向量表示和排序模型,我们需要构建一个大规模的训练数据集合。 我们在数据的量和数据的多样性两方面进行了scaling。 首先数据量上,我们的模型分为两个阶段进行训练。 第一阶段用了大概1亿5000万的数据,第二阶段大概用了2000万的数据。 具体的训练方法会在下面做更详细的介绍。 这里主要是阐述一下我们数据的量是规模很大的,只有这样充分的数据才能保证模型在各个场景下的效果均好。 除了数据量以外,我们也保证了数据覆盖面的多样性。 首先我们覆盖了各种语言的数据,比如中英、日、法德等常用的语言,以及各种像印尼语等等小语种的语言。 其次我们还构建了大量的这种跨元的数据对比如中对英的检索,英对日的检索等等,以及覆盖了各个领域的训练数据。 比如说是医疗、法律、呃,金融科技等等。 此外我们的模型可以支持多种下入任务,比如说这种刚刚提到的相关性检索,给定一个用户问题,寻找能回答用户问题的文档,或者说给定一个用户的评论,去寻找相似的表达,相同语义的商品描述,或者一些快点的检索。 此外我们的数据也包含了各种长度的文本。 短的比如说几个词呃的文本,长的比如说到几K甚至几十K的文本啊,此外我们也包括了各种代码检索的任务。 比如说给定一个licode的题目描述去寻找相关的代码,或者给段代码寻找这段代码的command。 通过这样数据量的scaling和数据多样性的scaling,我们的模型可以支持广泛的各种下应用,当然对于一些特别垂育的场景,建议还是需要使用垂域场景内自己的监督数据进行微调。 模型可能能获得更好的效果。 那么上面介绍了数据的量,这里介绍这些数据是从哪来的。 首先embanding和record都是np社区两个研究历史蛮久的任务,所以社区内积累了大量这种优质的人工标注数据集。 经过我们的收集清理,共大概有1000万的训练数据。 之前的sport时代的模型,像我们的gte系列,包括智援的B系列等等,或者微软的业务系列,都会采用这种大量的公开域的弱监督数据及一些比如V微key上的文标题和文档数据对或者一些问答网站上的问答数据对,构造这种大规模的训练语料。 网上能收集到的这类语量大概能到10亿左右的规模。 但是这类语料虽然说量比较大,但是质量参差不齐,需要大量的清洗。 而且其实我们没办法保证它覆盖所有的领域,有些领域可能比较多,但有些领域可能数据确实比较少。 那么在queen 3系列的emding和ranker模型中,我们放弃了这种公开的弱监督语料,反而采用了lm模型去合成大规模的这种Q A度数据。 我们利用queen 3预训练的这种语较库,呃,利用rm模型对每个document去生成相关的问题。 这样其实理论上我们能构造无限的训练数据。 那么接下来我就介绍一下我们具体的这种问题生成是怎么做的。 呃,只让L M给定一个文档,直接让promote L M去生成一个query,生成一个用户的问题也是可以的。 但是这样生成来的问题,其端性会比较差,呃,而且有着比较明显的AI味。 那么真实用户的场景中,其实不同的人对于同样的文档,他的提问可能是不同的。 比如说一条营养学的科普文档,对于一个专业人来说,他可能会问其中的一些技术细节,或者对呃科普文章的一些真实性提出一些问题。 但对于一个普通大众来说,他可能问的是哎我读了这篇文章我到底能吃什么? 不能吃什么? 一些口语化的或者比较浅的问题。 嗯,那么我们为了实现虚拟合这种真实场景的数据分布,我们首先对于每条文档会从一个比较大的角色库中去检索相关的角色。 那么之后利用rm首先去判断哪些角色是最适合这个文档的。 其次这个角色和这个文档适合他提出一个什么样的问题。 比如说是一个类似搜索引擎这种k word的关键词检索,还是一个需要逻辑推理的问题,或者是一个summary类的问题,以及问题的难度是一个大学层次的问难度问题,还是说也是一个小学层次的问题,以及问题的语言长度等等。 一系列的confifi让模型生成这个config之后,我们会将这个角色以及文档以及生成的config再次送入大模型。 让大模型根据这些条件去生成一个真实的用户问题。 这样生成的问题我们就保证了数据的多样性与数据的质啊,之后我们会对数据的质量做进一次的过滤,通过一个预先训练好的ranker模型和rebending模型,通过过滤一些较低质量,比如说相似度太低或者embending模型完全检索不到对应文档的数据之后,得到高质较高质量的训练数据。 呃,那么介绍完训练数据之后,我们来介绍模型是如何训练的。 对于queen sanembanding系列模型来说,我们的训练分为三个阶段。 首先第一阶段是利用刚刚提到这种大规模合成的合成数据去训练模型之后再利用从合成数据中sample之后进行高呃比较严格的筛选,得到的部分高质量数据,以及刚刚提到的各种人工标注的高质量数据,进一步训练模型,来提升模型的效果。 最后会对第二阶段训练的模型的多个拆point进行模型融合来定进一步提升模型的泛化能力。 模型融合的具体做法会在接下来做更详细的介绍。 对于rank模型来说,我们实验发现第一步的这种弱监督数据的训练,对rank模型的提升是很不明显的。 所以我们直接使用这种高质量的数据进行训练之后,进行模型融合来得到对embedding模型我们采用了一个优化后的对比学习方法来进行训练。 对比学习中一个很重要的因素是说模型训练过程中的batch size,只有一个大的batch size才能保证对比学习能训到一个比较好的效果。 那么传统对比学习方法通常只采用用户的问题以及相关的所有in batch中所有的文档作为negative。 那么我们为了尽可能的去扩充这个batch size大小,我们还额外使用了batch size中其他的query以及对于正样本文档的其他bu都均作为它的副样本,来整体扩大的这个副样本的规模。 那么为了避免引入这么大的副样本之后存在的各种first negative的问题,我们会对首先对每个样本计算它与它与问题的这个相关性分数。 如果它这个负样本的相关性分数比正样本的相关分数还要大过一个阈值的话,我们就不把它参与作为负样本的计算。 我们认为这是缺少标注的一些正样本数据。 通过这样的方式训练,我们就能得到一个效果好的embending模型。 对于rank模型我们采用了cross entropy的loss进行训练,或者大家更通俗的说法就是一个S T的loss给定一个query do对, 我们让模型判断它们两个是否相关。 对于这样本,我们让模型尽可能增大它输出yes的概率,对于负样本我们让它增尽可能增大输出no的概率。 通过这种方式训练,我们就可以得到一个好的rank模型的啊,此外我们还有一些训练上的小技巧,来帮助我们去提升训练效率,以及对下一个更好的支持。 首先是我们有一个动态掰side的大小,就像刚刚介绍的说中我们的训练数据中是包含各种不同长度的训练数据的,那对于不同长度的训练数据,它能接受的最大batsize长度是不同的。 此外我们还使用了这种gradient check pointing的策略。 通过嗯开启gradient check pointing之后,我们在训练过程中可以将一个大的batch size切分成一个个小的sub batch size。 首先我们可以先计算每个subatch size的embedding。 像这样之后由于great check pointing之后,它的梯度是不保存的。 我们可以将多个check pointing进行多多个sub batch size进行拼接,得到一个完整的batch size,再进行梯度回传,这样就保证了batch size尽可能的扩大。 此外我们还使用了m loss去训练一bending模型呃,或者说中文的说法叫俄罗斯套娃loss。 呃,简单来说就是说我们在训练过程中不会只对最终的维度做一个上述介绍的对撇习。 我们还会对一些中间维度,比如说三十二维、六十四维、128维等等进行对学习的训练。 这样保证了大家在下游应用的过程中,如果不想使用这么大的实赛,可以对最终输队边定进行裁切,只选用前比如说128位进行限量计算。 我们发现这样的情况下,通过我们充分的训练,其实效果差别不会特别大。 但是这样的话我们的存储成本就会有一个明显的下降。 那么接下来我会介绍我们的模型融合算法是怎么做的。 模型融合是近期rm训练过程中大家越来越关注的一个方向。 简单来说就是说我可以对模型训练得到的多chapoint通过对他们的参数进行简单的线性差值来得到一个最终的模型check point。 如果比如说我们有多个check point分别在不同的任务上效果表现更好的话。 通过这种模型融合的方法,我们就能得到一个check point对所有的任务。 均达到一个较好的表现啊,具体来说我们采用了一种在基于球面差值的方法来进行模型融合,我们发现会比简单的线性差值效果更好。 具体来说就是说首先对任意两个模型的check point,我们会将它和训练前的模型check point进行一个相减,得到训练后模型和训练前模型参数的差相差值,我们称之为任务向量。 有两个任务向量和训练前的模型拆point任务点之后,他们就在高维空间中可以形成一个平面。 我们在这个平面上寻以原原来两个点中间去寻找他们两个最合适的这个夹角维度,作为最终任务向量的方向。 通过参数去控制这个向量的模场,我们会采用少量去散布出来的数据,以及用确loss去计算得到这个确loss最低的点,作为最终的训练线量方向以及线量模长,就可以确定两个模型融合后得到的模型check point。 通过反复迭代多次这样的过程我们就可以对多个check point进行融合,来得到一个多模型check point融合后的结果。 更详细的技术介绍大家可以参考我们的technical report,本页介绍了一些模型训练过程中的一些超参数的设置,我们的embanding模型和rank与rank模型都是基于Laura进行训练的,Lara的rank设为了64。 对于embanding模型,我们在训练过程中,对于第二阶段我们每个query去采用了八个hard negative。 对于rank模型,因为我们没办法用in的各种negative去进行计算,所以为了尽可能保证大的对于每个query大的batch size,我们采用了16个negative,其中八个是呃经过检索的hard negative,八个是随机挑选的easy negative,让模型每块都能见识到各种不同难度的副样本数据。 右边列出了我们在embedding模型和rank模型最后拼接的promote形式,感兴趣的同学可以参考一下,通过上述的训练过程,我们就得到了最终的queen 3系列的embedding和ranker模型。 我们共开源了六个不同的模型,包括0.6B4B和8B不同的size,其中缩embanding模型均支持上述提到的这种R R动态维度的向量表示。 对于所有的R模型和emding模型都支持这种instruction的输入,来支持各种下游任务。 下面是一些模型效果的介绍。 呃,首先mtb是目前emding领域一个大家比较公认的benchmark榜单,它里面涵盖了各种场景的评测任务。 首先这也展示的是mtb一个多元的评测效果,这其中包含了131个不同的task以及不同的task type。 比如像这种被mining及跨的数据对检索,像分类聚类这种带instruct的retri任务,还有检标准的检索任务和排序任务等等。 我可以看到我们的模型对A与B之前的模型,无论是商业化的像mini和open bedding three large系列,以及之前开源的模型。 像我们之前开源的G T queen two 7B的模型,以及像呃微软的mule 5系列以及B M3系列都有一个比较明显的提升。 在同等参数下我们都是最优的模型。 然后我们4B的模型在多个任务上的效果已经超过了谷这种商业化A片的效果。 下面是一个中英以及code的评测效果,可以看到我们的模型在无论是中文英文以及这种code的检索上,效果都有更好的表现。 尤其注意的是我们0.6B的模型在code上的检索效果已经超过了之前的所有模型,达到了一个搜塔的结果。 呃,本页介绍的是一个rank模型在各个榜单上的效果,可以看到我们我们的所有rank都是基于0.6B点bending。 首先对文档库进行检索之后,对rank模型对to p 100的结果进行重排序进行的评测。 可以看到我们0.6B的模型对比之前的模型效果都有一个比较明显的提升,特别是在follow呀这样的任务上。 Follow up是一个呃叫instruction re的任务,它会对具体的问题query提出一些更严格的限制条件。 比如说必须是某个主题的,或者必须是某个时间段的,必须不能包含某些关键词。 那对就需要模型对于文本的理解能力比之前的模型要更强,才能做到更好的效果。 那么可以看到我们基于queen 3的这一系列的rank模型,对于比之前基于Bert架构的模型在follow拉任务上的表现都是有一个大幅度的提升的。 尤其是我们4B的模型在follow上已经达到了一个特别糟的效果啊,本也展示了我们训练刚刚提到的各个训练方法对最终结果的影响。 可以看到我们第一行是一个只使用刚刚提到的合成数据训练的模型,效果其实已经在各个榜单上都达了一个比较好的效果。 那么之后如果进一如果不使用这部分生成生数据,模型的效果是有一个明显的下降的。 可以看到这些合成数据对模型的泛化性也是有比较强的影响的。 那么如果第三行展示了模型融合前最终的一个拆point的结果,可以看到对比模型融合后的模型也是有一些幅度的下降,证明模型融合确实对模型最终的效果有比较明显的影响。 那么下面介绍了我们合成的方法和一些业界其他的数据合成方法的对比。 我们在ms Mar这个业界公开的一个精标数据集上,利用它的cops去标注了50万这个级别的训练数query数据。 然后对比了不同方法合成的数据训练后的模型在拜尔这种的测试上的效果,可以看到我们的方法合成的数据质量明显比之前的方法有一个显著的提升。 那么目前queen 3系列的embedding和ran模型已经在ModelScope hucking face进行了开源,我们也同步开源了get up的仓库,里面介绍了模型的各种使用方法,比如ModelScope、huface以及vm上如何去使用我们的模型,同时也欢迎大家在get thub上提A我们也行,希望能多多收集大家的反馈来进一步优化我们的模型。 目前queen 3系列的embedding和rank模型已经支持了多种推理框架,比如V 2M拉玛c拉马cp暂时只支持embedding模型的版本。 对于R模型的支持我们也在呃努力推进中,像3 transformer对于emding模型的支持我们已经适配结束了呃,社区内也有很多的呼声,希望我们能支持更多的这种推理平台。 像欧拉玛的influence等等。 我们也会努力去进一步支持更多的平台来方便大家使用。 呃,这里隆重希希望向大家推荐一下,我们在阿里云百链上推出的text embanding v 4版本的embanding模型。 这个embanding也是基于我们queen 3系列的embanding进行的商部署版本,呃,可以省去大家本地部署模型的一些麻烦,需要配自己配置环境,需要考虑资源的适配以及多支p的利用等等。 我们在阿里云上部署了一个可以直接使用的版本,而且它具有一个比较高的推理效率,也欢迎大家去使用。 呃,那么是通过上述的介绍,我们就介绍了queen 3系列embedding和ran模型的各种技术细节啊。 Queen 3 embedding可能是一个开始吧,我们初步实现了如何利用一个rm base的模型去实现一个好的表示模型,一个好的rank模型。 那么未来我们会也会去努力进一步优化,去提升模型的性能,以及更好的推理效率,以及扩展模型的能力边界,在各个垂育场景下也能做到更好的效果。 此外我们也希望进一步去扩展模型知识的模态,现在的queen 3系列的编定和认可模型都是纯文本的模型。 那我未来也希望去扩展像图片视频、音频等多个模态,做到一个多模态统一的embanding模型以及rank模型。 好,本次分享的内容大概就是这些。 下面列出了我们在各个平台上的一些连接,也欢迎大家多多去尝试,多多去使用,多提一些反馈意见,来帮助我们去进一步提升模型的效果。 好,谢谢大家。

最新摘要 (详细摘要)

生成于 2025-06-21 17:54

概览/核心摘要 (Executive Summary)

本次分享深度解析了阿里巴巴通义实验室最新开源的Qwen3-Embedding及Ranker系列模型。该系列模型基于强大的Qwen3大语言模型(LLM)构建,旨在为文本表征、检索和排序等核心任务提供顶尖性能。相较于上一代,新模型性能提升约40%,并在MTEB等权威榜单上,同等参数量下全面超越了包括谷歌Gecko、OpenAI text-embedding-3-large在内的业界领先模型,其中8B版本在同类模型中表现最佳。

其核心技术创新在于训练数据的生成方式:模型团队摒弃了质量参差不齐的公开弱监督数据,转而利用Qwen3大模型,通过模拟不同用户角色和提问意图,合成了超过1.5亿对高质量、高多样性的“问题-文档”数据对。训练过程采用多阶段优化,结合了优化的对比学习、支持动态维度裁切的Matryoshka(套娃)损失函数,并通过基于球面插值的模型融合技术进一步提升泛化能力。

该系列模型具备强大的多语言和跨语言能力,率先支持超过100种语言及多种编程语言。模型已在ModelScope、Hugging Face等平台开源,并提供了阿里云上的商业部署版本。未来,团队计划在提升性能效率的同时,向统一的多模态(文本、图像、视频、音频)Embedding模型演进。

模型背景:Embedding与Ranker模型

  • Embedding模型演进历程

    1. 词袋模型 (Bag-of-words):基于词频统计,只能处理精确匹配,无法理解同义词。
    2. word2vec:通过深度学习捕捉词汇的语义关系,相似词在向量空间中距离更近,但缺乏上下文理解能力。
    3. BERT时代模型:能理解完整句子,效果显著提升。但原始BERT不适用于直接生成向量,需通过微调(如Sentence-BERT)解决。GTE、BGE系列均基于此架构。
    4. LLM时代:当前趋势,利用LLM更强的文本理解能力、多语言支持和长上下文处理能力,性能全面超越BERT时代模型。Qwen3系列即是此方向的代表。
  • Ranker (重排) 模型

    • 功能:输入一个文本对(如Query和Document),输出两者的相关性分数。
    • 工作流程:通常在Embedding模型初步检索出候选集(如Top 100)后,Ranker模型对该小范围候选集进行精细化打分和重排序,以获得更准确的结果。
    • 优缺点
      • 优点:性能优于Embedding模型,能捕捉更细粒度的特征。
      • 缺点:推理效率低,成本高,因其需要对每个文本对进行独立计算。
    • 在RAG中的应用:在检索增强生成(RAG)链路中,加入Embedding和Ranker模型能显著、稳定地提升系统的最终效果。例如,构建一个基于私有知识库的客服机器人,通过该链路可提供更精准的回答。

核心技术:Qwen3系列模型的训练方法

模型架构

  • 基础模型:均采用Qwen3 LLM作为底座,以利用其强大的语言理解和多语言能力。
  • Embedding模型架构
    • 输入文本后附加一个固定的[EOT](End of Text)字符。
    • 取最后一层[EOT]字符对应的hidden state作为最终的向量表示。
    • Instruction机制:在处理查询(Query)时,会前置拼接一个instruction来定义任务类型(如分类、聚类、相关文档检索等),从而生成更适配下游任务的向量。文档(Document)则不加instruction,以保证索引的通用性和复用性。
  • Ranker模型架构
    • 输入为一个文本对(Query + Document),并同样拼接instruction和系统提示(System Prompt)。
    • 模型被训练来判断Query和Document是否匹配,通过输出yesno的概率计算最终的相关性分数。

训练数据:规模、多样性与合成方法

  • 数据规模

    • 第一阶段:使用约1.5亿对合成数据进行训练。
    • 第二阶段:使用约2000万对高质量数据(人工标注数据+筛选后的合成数据)进行微调。
  • 数据多样性

    • 多语言:覆盖中、英、日、法、德等主流语言及印尼语等小语种。
    • 跨语言:构建了大量跨语言数据对(如中对英、英对日)。
    • 多领域:覆盖医疗、法律、金融、科技等多个垂直领域。
    • 多任务:包含相关性检索、相似性匹配、代码检索等多种任务类型。
    • 多长度:文本长度从几个词到几十K不等。
  • 核心创新:高质量数据合成

    • 摒弃传统方法:放弃了质量参差不齐、领域覆盖不全的公开弱监督数据(如维基百科标题-正文对)。
    • LLM合成数据:利用Qwen3模型,从其预训练语料库中为每个文档(Document)生成相关的问题(Query)。
    • 精细化生成流程
      1. 角色匹配:为每个文档匹配合适的虚拟用户角色(如专家、普通大众)。
      2. 配置生成:让大模型根据文档和角色,生成一个包含问题类型(关键词、推理、摘要等)、难度、语言、长度等信息的配置文件(Config)。
      3. 条件生成:将文档、角色、Config一同输入大模型,生成更真实、更多样化的问题。
      4. 质量过滤:使用预训练好的Ranker和Embedding模型过滤掉相似度过低或检索不到的低质量数据对。

训练方法与优化技巧

  • 训练阶段

    • Embedding模型:三阶段训练。1) 大规模合成数据训练 -> 2) 高质量数据微调 -> 3) 模型融合。
    • Ranker模型:两阶段训练。直接使用高质量数据训练,然后进行模型融合(实验发现大规模合成数据预训练对Ranker提升不明显)。
  • 损失函数

    • Embedding模型:采用优化的对比学习。通过将batch内的其他Query和Document也作为负样本,极大地扩展了负样本规模。同时,通过相关性分数过滤,避免了“假负例”(False Negative)问题。
    • Ranker模型:采用交叉熵损失(Cross-Entropy Loss),让模型对正样本对输出yes的概率最大化,对负样本对输出no的概率最大化。
  • 训练优化技巧

    • 动态批次大小 (Dynamic Batch Size):根据训练数据的不同长度,动态调整批次大小。
    • 梯度检查点 (Gradient Checkpointing):将大batch切分为小sub-batch,节省显存,从而实现更大的有效批次大小。
    • Matryoshka (套娃) 损失:在训练时,不仅对最终维度进行优化,也对32、64、128等中间维度进行对比学习训练。这使得用户在部署时可以直接裁切向量维度(如只取前128维)以降低存储和计算成本,而性能损失很小。

模型融合算法

  • 目的:将多个在不同任务上表现优异的checkpoint融合成一个在所有任务上都表现良好的单一模型。
  • 方法:采用一种基于球面插值 (Spherical Interpolation) 的先进方法,通过智能地组合多个checkpoint的优势参数,生成一个泛化能力更强的最终模型,效果优于简单的线性平均。

评测结果与性能表现

Qwen3系列模型在性能上展现了显著优势,尤其是在与业界主流模型的对比中。其高效的参数利用率使其在中小尺寸上也能达到顶尖水平。

  • 关键性能对比 (MTEB榜单)
    | 模型 | 尺寸 | 关键表现 |
    | :--- | :--- | :--- |
    | Qwen3-Embedding | 8B | 同类模型最佳性能,全面超越谷歌、OpenAI等商业模型。 |
    | Qwen3-Embedding | 4B | 性能已超越部分商业化API。 |
    | Qwen3-Embedding | 0.6B | 在代码检索任务上达到SOTA(State-of-the-Art)水平。 |
    | Qwen3-Ranker | 4B | 在指令遵循(Follow-up)等复杂任务上,表现远超基于BERT的旧模型。 |

  • 消融实验证明

    • 合成数据对模型的泛化能力至关重要,移除后性能明显下降。
    • 模型融合技术对最终效果有显著的正面影响。

模型开源与未来展望

  • 开源与部署

    • 开源平台:已在ModelScope、Hugging Face开源,并提供GitHub仓库。
    • 推理框架支持:已支持vLLM、Transformers,并正在适配Llama.cpp(Ranker支持推进中)、Ollama等更多框架。
    • 商业化服务:阿里云百炼平台推出了Text Embedding v4版本,提供高效、免部署的API服务。
  • 未来方向

    • 持续优化:进一步提升模型性能和推理效率,并扩展在垂直领域的应用效果。
    • 多模态扩展:计划将模型能力从纯文本扩展到图像、视频、音频等多种模态,最终目标是实现一个统一的多模态Embedding和Ranker模型