多模态检索新突破!Qwen3-VL-Embedding/Reranker AI 真正“看懂“你在搜什么,从图片到视频全拿下!

多模态检索新突破!Qwen3-VL-Embedding/Reranker AI 真正“看懂“你在搜什么,从图片到视频全拿下!

Qwen3-VL-Embedding 和 Qwen3-VL-Reranker:统一多模态表征与排序

摘要

2025年6月,Qwen 团队开源了面向文本的 Qwen3-Embedding 和 Qwen3-ReRanker 模型系列,在多语言文本检索、聚类和分类等多项下游任务中取得了业界领先的性能。

2026年1月,该团队推出了 Qwen 家族的最新成员:Qwen3-VL-EmbeddingQwen3-VL-Reranker 模型系列。这些模型基于开源的 Qwen3-VL 模型构建,专为多模态信息检索和跨模态理解场景设计,能够将文本、图像、文档图像和视频等多种模态映射到统一的表示空间中。

Qwen3-VL-Embedding 模型采用多阶段训练范式,从大规模对比预训练逐步发展到重排序模型蒸馏,以生成语义丰富的高维向量。该模型支持 Matryoshka 表示学习(MRL),可灵活选择嵌入维度,并能处理最多 32K tokens 的输入。作为补充,Qwen3-VL-Reranker 采用交叉编码器架构和交叉注意力机制,对查询-文档对进行细粒度的相关性评估。

两个模型系列继承了 Qwen3-VL 的多语言能力,支持超过 30 种语言,并提供 2B 和 8B 两种参数规模,以满足不同的部署需求。评估结果表明,Qwen3-VL-Embedding-8B 在 MMEB-V2 上获得了 77.8 分的总成绩,在所有模型中排名第一(截至2026年1月8日)。

图1: 统一多模态表示空间示意图。Qwen3-VL-Embedding 模型系列将多源数据(文本、图像、视觉文档和视频)映射到共同的高维语义空间。通过跨模态对齐语义概念(例如,文本"urban architecture"与其对应的图像),该模型实现了对复杂视觉和文本信息的整体理解。

相关资源

- 技术报告:https://github.com/QwenLM/Qwen3-VL-Embedding/blob/main/assets/qwen3vlembedding_technical_report.pdf - qwen3-vl-embedding:https://huggingface.co/collections/Qwen/qwen3-vl-embedding - qwen3-vl-reranker:https://huggingface.co/collections/Qwen/qwen3-vl-reranker - Qwen3-VL-Embedding:https://modelscope.cn/collections/Qwen/Qwen3-VL-Embedding - Qwen3-VL-Reranker:https://modelscope.cn/collections/Qwen/Qwen3-VL-Reranker - Github仓库:https://github.com/QwenLM/Qwen3-VL-Embedding - 博客:https://qwen.ai/blog?id=qwen3-vl-embedding 

一、引言

1.1 背景与动机

随着互联网多模态内容的指数级增长,现代数字生态系统日益充斥着多样化的数据模态,包括自然图像、文本文档、信息图表、截图和视频。这种多样性要求检索系统具备跨模态语义理解和匹配能力,超越传统的纯文本搜索范式。多模态搜索已成为从电子商务产品发现到科学文献探索和社交媒体导航等应用的关键能力。

在当代多模态检索架构中,嵌入(embedding)和重排序(reranking)模型构成了两个最关键的模块。过去十年,多模态表示学习领域取得了显著进展。其中,CLIP(对比语言-图像预训练)通过展示大规模图像-文本对的对比学习可以产生强大的对齐表示,产生了深远影响。其成功巩固了学习共享嵌入空间的重要性,在该空间中,语义相似的内容无论其模态如何都被定位在相近的表示空间中。

随着基础模型的发展加速,多模态预训练视觉-语言模型(VLMs)如 Qwen-VL 和 GPT-4o 在多模态理解方面取得了前所未有的成功。基于这些突破,多模态检索社区越来越多地探索基于 VLMs 训练统一的多模态嵌入模型。该领域的显著努力包括 E5-V、GME、BGE-VL 和 VLM2Vec 等。

基于 VLMs 训练统一多模态表示具有几个引人注目的优势:

  • VLMs 通过在大规模图像-文本数据集上的预训练,具有固有的跨模态对齐能力
  • 利用复杂的注意力机制来捕获视觉和文本元素之间的细粒度交互
  • 为处理复杂的多模态文档(如信息图表和演示幻灯片)提供了自然路径
  • 可以继承基础模型中编码的广泛多语言和多领域知识,在各种检索场景中实现更强大的泛化能力

1.2 核心特性

Qwen3-VL-Embedding 和 Qwen3-VL-Reranker 模型系列具有以下核心特性:

多模态通用性

两个模型系列均可在统一框架内处理包含文本、图像、截图和视频的输入。它们在图文检索、视频文本匹配、视觉问答(VQA)以及多模态内容聚类等多样化任务中达到了业界领先水平。

统一表示学习(Embedding)

通过充分利用 Qwen3-VL 基础模型的优势,Qwen3-VL-Embedding 模型能够生成语义丰富的向量表示,在共享空间中同时捕获视觉和文本信息,从而实现高效的跨模态相似度计算和检索。

高精度重排序(Reranker)

Qwen3-VL-Reranker 系列作为 Embedding 模型的补充,接收输入对 (Query, Document),其中查询和文档均可包含任意单一或混合模态,并输出精确的相关性分数。在实际检索场景中,Embedding 和 Reranker 模型通常协同工作:Embedding 模型负责初始召回阶段,Reranker 模型负责重排序阶段,这种两阶段流程显著提升了最终检索精度。

卓越的实用性

继承 Qwen3-VL 的多语言能力,该系列支持超过 30 种语言,适合全球化应用。模型提供灵活的向量维度选择、可定制的任务指令,以及向量量化后的强劲性能。这些特性使开发者能够轻松将模型集成到现有流程中,用于需要强大跨语言和跨模态理解能力的应用场景。

二、模型概览

2.1 模型规格

下表展示了 Qwen3-VL-Embedding 和 Qwen3-VL-Reranker 的详细规格参数:

模型参数量模型层数序列长度嵌入维度量化支持MRL 支持指令感知
Qwen3-VL-Embedding-2B2B2832K2048
Qwen3-VL-Embedding-8B8B3632K4096
Qwen3-VL-Reranker-2B2B2832K---
Qwen3-VL-Reranker-8B8B3632K---

注释:

  • 量化支持 表示 Embedding 支持的量化后处理
  • MRL 支持 表示 Embedding 模型是否允许用户指定嵌入维度
  • 指令感知 表示模型是否支持针对特定任务自定义输入指令

2.2 模型架构

Qwen3-VL-Embedding 和 Qwen3-VL-Reranker 模型旨在对多模态实例进行任务感知的相关性判断。如图2所示,嵌入模型采用双编码器架构来生成实例的密集向量表示,并使用余弦相似度作为相关性度量。相比之下,重排序模型采用交叉编码器架构,为每个查询-文档对提供更细粒度的相关性估计。

图2: Qwen3-VL-Embedding 和 Qwen3-VL-Reranker 架构概览。左侧为 Embedding 模型的双塔独立编码架构,右侧为 Reranker 模型的单塔交叉注意力架构。

与文本 Qwen3-Embedding 和 Qwen3-ReRanker 模型系列类似,Qwen3-VL-Embedding 采用双塔架构,Qwen3-VL-Reranker 采用单塔架构。团队设计了一套多阶段训练范式,充分发挥 Qwen3-VL 底座模型的通用多模态语义理解能力,为复杂、大规模的多模态检索任务提供高质量的语义表示和精确的重排序机制。

两个模型都基于 Qwen3-VL 骨干网络构建,使用因果注意力。经过大规模多模态、多任务相关性数据的训练后,它们保留了骨干网络的世界知识、多模态感知和指令遵循能力,同时额外获得了估计相关性的能力。

2.2.1 Embedding 方法

Embedding 模型为多模态输入提取任务感知的密集向量。输入格式遵循 Qwen3-VL 上下文结构,其中指令作为系统消息传递,默认指令为"Represent the user’s input"。要表示的多模态实例作为用户消息传递,可以是文本、图像、视频或这些模态的任何组合。最后,在输入末尾附加一个 “PAD” (<|endoftext|>) token,并使用对应该 token 的最后隐藏状态作为实例的密集向量表示。

Embedding 模型接收单模态或混合模态输入,并将其映射为高维语义向量。具体而言,提取基座模型最后一层中对应 [EOS] token 的隐藏状态向量,作为输入的最终语义表示。这种方法确保了大规模检索所需的高效独立编码能力。

Embedding 输入模板:

<|im_start|>system {Instruction} <|im_end|> <|im_start|>user {Instance} <|im_end|><|endoftext|> 
2.2.2 Reranking 方法

Reranking 模型采用逐点排序方法,根据指令中提供的相关性定义评估一对多模态实例之间的相关性。输入格式遵循 Qwen3-VL 上下文结构,其中定义相关性的指令和要评估的多模态实例对都作为用户消息传递。这些多模态输入可以是文本、图像、视频或这些模态的任何组合。最后,通过计算模型预测下一个输出 token 为 “yes” 或 “no” 的概率来获得该对的相关性估计。

Reranking 模型接收输入对 (Query, Document) 并进行联合编码。它利用基座模型内的交叉注意力(Cross-Attention)机制,实现 Query 和 Document 之间更深层、更细粒度的跨模态交互和信息融合。模型最终通过预测两个特殊 token(yes 和 no)的生成概率来表达输入对的相关性分数。

Reranking 输入模板:

<|im_start|>system Judge whether the Document meets the requirements based on the Query and the Instruction provided. Note that the answer can only be "yes" or "no". <|im_end|> <|im_start|>user <Instruct>: {Instruction} <Query>: {Query} <Document>: {Document} <|im_end|> <|im_start|>assistant 

2.3 功能特性对比

对比维度Qwen3-VL-EmbeddingQwen3-VL-Reranker
核心功能语义表示、嵌入生成相关性评分、重排序
输入格式单模态或混合模态(文本、图像、视频、截图)(Query, Document) 对,Query 和 Document 均可为单模态或混合模态输入
工作机制独立编码,高效检索(双塔架构)深度跨模态交互(单塔架构)
输出目标向量空间中的语义聚类输出相关性分数

三、数据构建

为了赋予模型跨不同模态、任务和领域的通用表示能力,团队构建了大规模数据集。然而,公开可用数据和专有内部数据都存在显著的不平衡,并且在特定场景中存在明显的稀缺性。为了解决这些挑战,团队利用数据合成来构建平衡的训练语料库,确保在所有模态、任务和领域中的稳健覆盖。

3.1 数据集格式

完整的数据集包含多个子数据集,表示为 D = { D i } i = 1 M \mathcal{D} = {\{D_i\}}_{i=1}^{M} D={Di​}i=1M​。每个子数据集 D i D_i Di​ 由四元组定义: D i = ( I i , Q i , C i , R i ) D_i = (I_i, Q_i, C_i, R_i) Di​=(Ii​,Qi​,Ci​,Ri​),结构如下:

  • 指令 ( I i I_i Ii​):定义子数据集的具体相关性标准和任务目标的文本描述
  • 查询 ( Q i Q_i Qi​): N q N_q Nq​ 个查询对象的集合, Q i = { q j } j = 1 N q Q_i = {\{q_j\}}_{j=1}^{N_q} Qi​={qj​}j=1Nq​​。每个 q j q_j qj​ 可以由文本、图像、视频或任何多模态组合组成
  • 语料库 ( C i C_i Ci​): N d N_d Nd​ 个文档对象的存储库, C i = { d j } j = 1 N d C_i = {\{d_j\}}_{j=1}^{N_d} Ci​={dj​}j=1Nd​​。与查询类似,每个 d j d_j dj​ 可以是单一模态或文本、图像和视频的多模态组合
  • 相关性标签 ( R i R_i Ri​):识别查询和文档之间的关系,表示为 R i = { ( q j , { d j , k + } k = 1 n + , { d j , k − } k = 1 n − ) } j = 1 N q R_i = {\{(q_j, {\{d_{j,k}^+\}}_{k=1}^{n^+}, {\{d_{j,k}^-\}}_{k=1}^{n^-})\}}_{j=1}^{N_q} Ri​={(qj​,{dj,k+​}k=1n+​,{dj,k−​}k=1n−​)}j=1Nq​​。对于每个查询 q j q_j qj​, { d j , k + } k = 1 n + ⊂ C i {\{d_{j,k}^+\}}_{k=1}^{n^+} \subset C_i {dj,k+​}k=1n+​⊂Ci​ 表示相关文档集(正样本),而 { d j , k − } k = 1 n − ⊂ C i {\{d_{j,k}^-\}}_{k=1}^{n^-} \subset C_i {dj,k−​}k=1n−​⊂Ci​ 表示不相关文档集(负样本)

3.2 数据合成

团队采用数据合成来构建各种子数据集 D i D_i Di​,将 Qwen3 Embedding 中引入的方法扩展到多模态场景。

种子池构建

由于合成数据的多样性取决于底层种子池,团队首先聚合了大量高质量和多样化的原始图像和视频数据集。建立高质量基础的过程包括:

  1. 应用粗粒度质量过滤以剪除低分辨率或不规则长宽比的资源
  2. 进行结构细化,特别是采用场景切割检测并删除静态或损坏的片段,以保留视频数据中时间动态的完整性
  3. 利用 Qwen3-VL-32B 为剩余资源生成细粒度分类标签
  4. 实施严格的过滤机制,排除低置信度注释或视觉-文本对应性差(通过 GME 嵌入模型的相似性分数衡量)的样本
  5. 对精炼数据集执行逐类别重新平衡,以构建最终种子池

图4: 数据合成种子池的数据分布。

基于种子池,团队利用 Qwen3-VL-32B 执行多模态和多任务注释。

图像任务注释

团队为三种主要任务范式合成图像数据集:

  1. 图像分类:查询 q q q 包含图像和分类指令,文档 d d d 是特定类别标签。为广泛的分类任务合成数据集,包括对象识别、场景解析、地标识别和动作识别。对于每个样本,模型指定特定的任务类型,并使用其真实类别和语义混淆的负标签对图像进行注释。
  2. 图像问答:查询 q q q 由图像和基础问题组成,文档 d d d 是相应的答案。生成涵盖事实识别、视觉推理、基于 OCR 的数据提取和特定领域知识查询的各种 QA 对。遵循规定的任务方向,模型根据视觉内容制定问题,提供真实响应和看似合理但具有欺骗性的干扰项。
  3. 图像检索:查询 q q q 是搜索文本,文档 d d d 是候选图像。跨语义深度层次合成检索查询,涵盖直接视觉描述、抽象叙事场景、组合逻辑约束和以知识为中心的文本定位。模型分配特定的检索意图并生成相应的搜索查询,该查询捕获图像中的显著视觉特征或嵌入的文本逻辑。
视频任务注释

团队为四种主要任务范式合成视频数据集:

  1. 视频分类:查询 q q q 将视频与分类任务结合,文档 d d d 是结果类别。为多样化的分类任务合成数据集,包括活动识别、场景解析、事件分类和情感/意图分析。对于每个样本,模型识别其类别并生成语义相关的负标签。
  2. 视频问答:查询 q q q 包括视频和问题,文档 d d d 是答案。生成涵盖事实识别、时间定位、主题推理和电影分析的各种 QA 对。在指定任务类型的指导下,模型制定问题并提供正确响应和欺骗性干扰项。
  3. 视频检索:查询 q q q 是文本描述,文档 d d d 是视频。跨一系列语义粒度合成检索查询,从以实体和动作为中心的搜索到时间事件描述、主题/情感发现和教学教程定位。模型生成捕获视频主要事件和主题内容的搜索查询。
  4. 时刻检索:查询 q q q 是文本查询(可选地包括关键帧),文档 d d d 是特定视频片段。时刻检索任务旨在进行细粒度的时间定位。模型识别特定目标(如动作、对象或角色)并定位相关的时间片段。同时,它识别具有明显时间间隙的不相关片段作为负对比。

在合成特定任务注释之前,需要模型为每个图像或视频生成描述性标题以提供必要的上下文。这种两步方法确保了后续注释生成的更高质量和一致性。

3.3 正样本精炼和困难负样本挖掘

困难负样本在对比表示学习中起着至关重要的作用。为了提高正样本对的质量并识别有效的困难负样本,团队实施了自动化的两阶段挖掘管道:召回和相关性过滤。

召回阶段

对于每个子数据集 D i D_i Di​,使用嵌入模型提取所有查询 q j ∈ Q i q_j \in Q_i qj​∈Qi​ 和文档 d k ∈ C i d_k \in C_i dk​∈Ci​ 的表示。对于每个查询 q j q_j qj​,基于余弦相似度检索前 K ~ \widetilde{K} K 个最相关的候选 { d k } k = 1 K {\{d_k\}}_{k=1}^{K} {dk​}k=1K​,表示为相关性分数 S = { s j , k } k = 1 K S = {\{s_{j,k}\}}_{k=1}^{K} S={sj,k​}k=1K​。

相关性过滤

最后,基于相关性分数 S S S 精炼相关性标签 R i R_i Ri​ 以消除噪声:

  • 正样本精炼:仅当至少有一个正文档 d + ∈ { d k } k = 1 K d^+ \in {\{d_k\}}_{k=1}^{K} d+∈{dk​}k=1K​ 达到分数 s > t + s > t^+ s>t+ 时才保留 q j q_j qj​,其中 t + t^+ t+ 是作为分数阈值的超参数。如果不存在这样的候选,则丢弃查询 q j q_j qj​。
  • 困难负样本选择:对于有效查询 q j q_j qj​,计算其精炼正样本的平均分数 s ˉ + \bar{s}^+ sˉ+。仅当非正文档 d ∈ { d k } k = 1 K d \in {\{d_k\}}_{k=1}^{K} d∈{dk​}k=1K​ 的分数满足 s < s ˉ + + δ − s < \bar{s}^+ + \delta^- s<sˉ++δ− 时,才选择它作为困难负样本,其中 δ − \delta^- δ− 是防止包含"假负样本"的小安全边际。

四、训练策略

4.1 多阶段训练流程

为了训练 Qwen3-VL-Embedding 和 Qwen3-VL-Reranker,团队采用了如图5所示的多阶段训练管道。这种方法旨在缓解大量弱监督数据和稀缺高质量样本之间的数据不平衡。模型首先在大量弱监督、噪声数据上进行预训练,以建立相关性理解的基线并提高泛化能力。然后在高质量、特定任务数据集上进行微调,以引导模型实现更精确的相关性评分和细粒度交互。

图5: Qwen3-VL-Embedding 和 Qwen3-VL-Reranker 的多阶段训练流程。

除了上述原因,多阶段训练策略的另一个目标是提升数据质量和模型性能。随着训练通过连续阶段的进展,模型的能力不断增强。这种改进反过来促进了更有效的数据挖掘,从而提高了训练数据的质量。这种迭代循环最终导致模型整体性能的显著提升。

团队实施了三阶段训练策略:

阶段1:对比预训练

在预训练阶段,首先使用大规模、多模态和多任务合成数据对嵌入模型进行对比学习。此阶段使用的合成数据使用现有开源模型(GME)作为嵌入模型进行挖掘。训练期间使用的优化目标定义在公式1中。完成此阶段后,获得初始模型版本 Qwen3-VL-Embedding: s0。

阶段2:多任务对比学习和监督微调

在此阶段,主要使用精选的公共数据集和专有内部数据的组合,并辅以抽样的合成数据以解决现有数据集中固有的任务不平衡。受益于 Qwen3-VL-Embedding: s0 改进的多任务性能,使用此模型执行数据挖掘,从而确保各种任务的高数据质量。然后使用多任务对比学习训练嵌入模型,为不同的任务类型实施定制的对比目标。这产生了 Qwen3-VL-Embedding: s1。

同时,通过在新挖掘数据的检索特定子集上进行训练来训练新的重排序模型 Qwen3-VL-Reranker,使用公式4作为优化目标。该子集包含多样化的任务,包括图像检索、视频检索、时刻检索和视觉文档检索。生成的模型在这些以检索为中心的任务中展示了卓越的性能。

阶段3:蒸馏和模型融合

在最后阶段,通过从先前训练的 Qwen3-VL-Reranker 中蒸馏相关性判别专业知识来进一步增强嵌入模型。为此,从公共和专有来源策划了一个紧凑的子数据集,确保跨多个检索类别的平衡分布。然后使用 Qwen3-VL-Reranker 为该子集生成细粒度的相关性分数,作为在公式3定义的目标下训练嵌入模型的监督信号。这个蒸馏过程产生了 Qwen3-VL-Embedding: s2。

虽然 Qwen3-VL-Embedding: s2 在以检索为中心的任务中表现出显著的提升,但在分类和 QA 任务中性能略有下降。为了解决这个问题,使用 Li 等人(2024)提出的方法将 Qwen3-VL-Embedding: s2 与 Qwen3-VL-Embedding: s1 合并。这个过程产生了最终模型 Qwen3-VL-Embedding: s3,在所有评估任务中实现了最佳和平衡的性能。

4.2 实现细节

训练使用 Low-Rank Adaptation (LoRA) 进行模型训练,模型参数从 Qwen3-VL-Instruct 初始化。这种方法提供了几个关键优势:

  1. 减少内存占用,允许更大的有效批量大小
  2. 增强泛化性能
  3. 显著提高模型合并的超参数搜索效率

此外,采用动态分辨率和帧率。对于图像模态,保留原始纵横比,同时将最大 token 消耗限制在 1,280(约 1.3×10⁶ 像素)。对于视频,首先以 1 FPS 采样,最多 64 帧。对于每一帧,保持纵横比,所有帧的总 token 预算限制为 4,500(约 9.2×10⁶ 像素)。

五、训练目标

本节概述了 Qwen3-VL-Embedding 和 Qwen3-VL-Reranker 的训练目标。对于 Qwen3-VL-Embedding 模型,团队将 Qwen3 Embedding 模型的损失函数扩展到处理更广泛的数据类型。还集成了两种关键技术:Matryoshka 表示学习(MRL)以生成可变维度嵌入,以及量化感知训练(QAT)以支持多种数值精度。这些方法共同降低了存储和计算成本,提高了推理效率。Qwen3-VL-Reranker 采用与 Qwen3 Reranker 相同的目标函数。

5.1 Embedding 模型的损失函数

Qwen3-VL-Embedding 的训练涉及多个阶段的不同数据类型。为了适应这一点,团队针对每个数据类别的特定特征采用不同的损失函数。

检索数据损失

此类别包括来自各种多模态和跨模态检索任务的数据,如文本到文本(T2T)、文本到图像(T2I)和图像+文本到图像+文本(IT2IT)检索。在阶段1中,使用与 Qwen3-Embedding 相同的 InfoNCE 损失公式:

L retrieval = − 1 N ∑ i N log ⁡ e ( s ( q i , d i + ) / τ ) Z i \mathcal{L}_{\text{retrieval}} = -\frac{1}{N}\sum_{i}^{N}\log\frac{e^{(s(q_i, d_i^+)/\tau)}}{Z_i} Lretrieval​=−N1​∑iN​logZi​e(s(qi​,di+​)/τ)​

其中 s ( ⋅ , ⋅ ) s(\cdot, \cdot) s(⋅,⋅) 是相似度函数(使用余弦相似度), τ \tau τ 是温度参数, Z i Z_i Zi​ 聚合来自正样本对和各种类型负样本对的分数。

在阶段2中,通过从 Z i Z_i Zi​ 中删除查询-查询和文档-文档项来进一步修改目标。经验上,这种调整在高质量多模态检索数据上产生了更好的性能。

分类数据损失

对于文本或图像分类任务,同样将训练制定为对比学习。具体来说,要分类的实例被视为查询 q q q,其类别标签被视为相应的文档 d + d^+ d+。与检索不同,负样本仅限于同一查询的明确错误标签,而批次中的其他标签被忽略以避免引入假负样本。

语义文本相似度(STS)数据

STS 数据集是对称的,因此不存在自然的查询-文档不对称性。此外,监督通常以实值相似度分数的形式提供。为了利用这种细粒度信号,使用 CoSent 损失进行优化,该损失鼓励配对嵌入之间的余弦相似度保留由真实相似度分数引导的顺序:

L sts = log ⁡ ( 1 + ∑ s ^ ( q i , d j ) > s ^ ( q m , d n ) exp ⁡ ( cos ⁡ ( q m , d n ) − cos ⁡ ( q i , d j ) τ ) ) \mathcal{L}_{\text{sts}} = \log\left(1 + \sum_{\hat{s}(q_i, d_j) > \hat{s}(q_m, d_n)}\exp\left(\frac{\cos(q_m, d_n) - \cos(q_i, d_j)}{\tau}\right)\right) Lsts​=log(1+∑s^(qi​,dj​)>s^(qm​,dn​)​exp(τcos(qm​,dn​)−cos(qi​,dj​)​))

其中 s ^ ( q i , d j ) \hat{s}(q_i, d_j) s^(qi​,dj​) 表示对 ( q i , d j ) (q_i, d_j) (qi​,dj​) 的真实分数。

蒸馏数据

在最后的训练阶段,通过知识蒸馏进一步改进嵌入模型。从所有训练数据的并集中抽样高质量子集,并使用强大的重排序器提供监督。具体来说,对于每个查询 q q q,离线预计算其正文档和 k k k 个负样本的重排序器相关性 logits。在训练期间,使用余弦相似度在线计算基于嵌入的分数,并最小化分布匹配目标(交叉熵)以将嵌入模型的分数分布与重排序器的分布对齐:

L distill = − ∑ i = 1 k + 1 P reranker ( d i ∣ q ) log ⁡ P embedding ( d i ∣ q ) \mathcal{L}_{\text{distill}} = -\sum_{i=1}^{k+1}P_{\text{reranker}}(d_i|q)\log P_{\text{embedding}}(d_i|q) Ldistill​=−∑i=1k+1​Preranker​(di​∣q)logPembedding​(di​∣q)

其中 P ( d i ∣ q ) P(d_i|q) P(di​∣q) 是查询 q q q 的 ( k + 1 ) (k+1) (k+1) 个候选文档(一个正样本和 k k k 个负样本)的 softmax 分布。

5.1.1 高效推理的附加技术

在实际检索系统中,索引构建需要离线存储大量嵌入。为了减少存储开销并提高检索效率,团队结合了以下辅助训练目标。

Matryoshka 表示学习(MRL):在优化上述目标时,不仅在全维嵌入上计算每个损失,还在同一表示的截断低维前缀上计算。经验上,在足够密集的 MRL 维度集上训练可以产生强大的泛化能力,在训练期间未明确包含的中间维度上实现竞争性能。

量化感知训练(QAT):使用较低数值精度(int8 或二进制)存储嵌入可以进一步减少存储和计算开销。为了在低精度表示下保持嵌入质量,团队采用量化感知训练(QAT)策略。具体来说,在训练期间使用全精度嵌入及其低精度(量化)对应物计算优化目标,以便模型学习生成对量化具有鲁棒性的嵌入。团队使用学习步长量化(LSQ)实例化 QAT,将量化比例(步长)视为可学习参数,并通过反向传播与模型权重联合优化。

5.2 Reranking 模型的损失函数

重排序被框架化为二元分类问题:给定查询-文档对,模型预测特殊的 yes token(相关)或 no token(不相关)。

L reranking = − log ⁡ p ( l ∣ I , q , d ) \mathcal{L}_{\text{reranking}} = -\log p(l|I, q, d) Lreranking​=−logp(l∣I,q,d)

其中 p ( ⋅ ∣ ∗ ) p(\cdot|*) p(⋅∣∗) 表示 VLM 分配的概率。标签 l l l 对于正样本对为 “yes”,对于负样本为 “no”。这个损失函数鼓励模型为正确的标签分配更高的概率,从而提高排序性能。

在推理期间,最终相关性分数通过将 sigmoid 函数应用于 ‘yes’ 和 ‘no’ tokens 的 logits 之差来计算:

s = sigmoid ( logit ( yes ) − logit ( no ) ) s = \text{sigmoid}(\text{logit}(\text{yes}) - \text{logit}(\text{no})) s=sigmoid(logit(yes)−logit(no))

六、评测结果

6.1 多模态基准测试

为了评估 Qwen3-VL-Embedding 在多模态和多任务表示学习中的整体性能,团队在 MMEB-v2 基准测试上报告了其结果。MMEB-v2 提供了跨三个主要领域(图像、视频和视觉文档)的全面评估,包括九个任务类别和总共78个数据集。

在评估期间,上下文长度限制为 16,384 tokens。对于基于图像的任务,最大 token 消耗设置为 1,800,而对于基于视频的任务,总 token 限制为 15,000,帧数限制为 64。

如表2所示,结果表明该模型在所有三个领域实现了最先进(SOTA)的平均性能并表现出卓越的熟练程度。具体来说,Qwen3-VL-Embedding-8B 在 MMEB-v2 上获得了 77.8 的平均分数,比之前最佳开源模型提高了 6.7%。

表2:MMEB-V2 基准测试结果

主要亮点:

  • Qwen3-VL-Embedding-8B 总分 77.8,排名第一
  • 图像任务:总分 80.1,在分类、问答、检索和定位任务上均表现优异
  • 视频任务:总分 67.1,显著超越其他开源模型
  • 视觉文档任务:总分 82.4,在 ViDoRe 和 VisRAG 等任务上取得领先成绩

6.2 视觉文档基准测试

除了 MMEB-V2 中的评估数据集外,团队还在最新的 JinaVDR 和 Vidore-v3 基准测试上对视觉文档检索任务进行了进一步测试。将模型与当前最先进的 ColPali 风格模型进行比较,结果如表3所示。

表3:视觉文档检索基准测试结果

如表所示,嵌入模型在需要显著更高计算成本的 ColPali 风格模型上实现了可比的性能。此外,重排序器模型大幅优于相似参数规模的 ColPali 模型。

6.3 文本基准测试

表4将 Qwen3-VL-Embedding 模型与 MMTEB 基准测试上的标准纯文本嵌入模型进行比较。与相似规模的纯文本 Qwen3 嵌入模型相比,Qwen3-VL-Embedding 模型系列显示出略低的性能。尽管如此,Qwen3-VL-Embedding 在纯文本任务上保持了竞争力。

具体来说,Qwen3-VL-Embedding-8B 在 MMTEB 上获得了 67.9 的平均任务分数,与其他相似规模的纯文本嵌入模型表现相当。

表4:MTEB 多语言基准测试性能

主要对比:

  • Qwen3-Embedding-8B:70.6 分(纯文本模型)
  • Qwen3-VL-Embedding-8B:67.9 分(多模态模型)
  • 在检索、分类、聚类等任务上保持竞争力
  • 支持超过 30 种语言

6.4 Reranking 模型评估

表5展示了各种重排序任务的评估结果。对于多模态检索,使用 MMEB-v2 套件,涵盖图像、视频(包括时刻检索)和视觉文档任务。文本检索使用 MMTEB 评估,而视觉文档检索则在 MMEB-v2、JinaVDR 和 ViDoRe v3 上进一步评估。

为确保公平比较,使用 Qwen3-VL-Embedding-2B 检索前100个候选,然后应用重排序模型进行精炼。结果表明,所有 Qwen3-VL-Reranker 模型均持续优于基础嵌入模型和基线重排序器,其中 8B 变体在大多数任务中实现了最佳性能。

表5:Reranking 模型评估结果

评测结果表明,所有 Qwen3-VL-Reranker 模型的性能均持续优于基础 Embedding 模型和基线 Reranker 模型,其中 8B 版本在大多数任务中达到了最佳性能。

七、性能分析

7.1 MRL 和嵌入量化的有效性

嵌入模型是现代检索系统的基础,跨越单模态任务(如文本检索)和跨模态场景(如文本到图像检索)。在大规模生产环境中,语料库大小通常达到数百万甚至数十亿条目。因此,通过减少检索延迟来优化语料库的存储需求和增强计算效率是一项关键挑战。

Qwen3-VL-Embedding 系列通过将 Matryoshka 表示学习(MRL)和量化感知训练(QAT)集成到其训练管道中来解决这些需求。

图6: 不同嵌入维度和嵌入量化在 MSMARCO 和 VL3-Syn 数据集上的性能分析。

为了评估这些策略对检索性能的实际影响,团队在两个代表性任务上进行了基准测试:

  1. 文本检索任务:使用 MSMARCO Passage Ranking 数据集,抽样 10,000 个查询
  2. 跨模态文本到图像检索任务:基于 VL3-Syn 数据集,包含 10,000 个标题作为查询和 2,000,000 张图像的语料库

采用 Qwen3-VL-Embedding-2B 模型进行实验,使用 MRR@10 作为主要评估指标。

主要发现

  • 嵌入维度:检索性能随着维度减少而下降;然而,在合理范围内,这种下降是可接受的,因为可以节省大量存储并提高检索速度。例如,在文本检索任务中,将嵌入维度从 1024 降至 512 仅导致检索性能下降 1.4%,同时实现了 50% 的存储减少和检索速度提升一倍。
  • 嵌入量化:int8 量化保留了检索性能,性能下降可忽略不计,而二进制量化显著损害了检索有效性。此外,随着嵌入维度的降低,这种性能损失变得越来越明显。

7.2 空间和时间粒度的影响

本节研究模型性能如何随不同维度的视觉粒度而变化。具体来说,对于图像模态,团队检查了由视觉 tokens 数量衡量的空间分辨率的影响。对于视频,将分析解耦为两个轴:

  1. 时间粒度,由帧数衡量
  2. 空间分辨率,由所有帧的总 token 预算量化

图7: 视觉粒度对不同领域模型性能的影响。

团队首先分析了 MMEB-v2 基准测试中图像/视频分辨率和帧数的分布,从图像、视频和视觉文档领域选择了几个高分辨率任务进行实验。

主要观察

  • 在所有任务类别中,性能随着资源消耗的增加而提高,呈现一致的趋势
  • 随着资源分配的增长,观察到显著的边际收益递减
  • 在最高消耗级别时出现轻微的性能回归
  • 这种下降的潜在解释是模型在处理过长上下文时遇到的固有性能退化

7.3 各训练阶段的性能

在多阶段训练管道中,总共产生了四个嵌入模型。表6详细说明了 2B 规格下这四个模型的性能。

表6:不同训练阶段 Qwen3-VL-Embedding-2B 的性能

模型阶段图像总分视频总分视觉文档总分总分
s065.857.574.866.6
s174.860.377.172.1
s271.359.580.971.5
s375.061.979.273.2

关键发现

  • 通过从重排序模型蒸馏,嵌入模型在面向检索的任务中实现了显著的性能提升
  • 虽然在此过程中在其他任务类别中观察到轻微下降,但最终的模型合并阶段成功协调了这些权衡
  • 最终模型在所有基准测试中实现了强大且优越的整体性能

八、使用指南

Embedding 和 Reranking 模型通常在检索系统中协同使用,形成高效的两阶段检索流程:

  1. 召回阶段:Embedding 模型执行初始召回,从海量数据中快速检索出大量候选结果
  2. 重排序阶段:Reranking 模型对候选结果进行精细化排序,基于重新计算的相关性分数为用户查询呈现最精确的结果

8.1 Embedding 模型使用示例

from scripts.qwen3_vl_embedding import Qwen3VLEmbedder import numpy as np import torch # 定义查询列表 queries =[{"text":"A woman playing with her dog on a beach at sunset."},{"text":"Pet owner training dog outdoors near water."},{"text":"Woman surfing on waves during a sunny day."},{"text":"City skyline view from a high-rise building at night."}]# 定义文档列表(包含文本和图像) documents =[{"text":"A woman shares a joyful moment with her golden retriever on a sun-drenched beach at sunset, as the dog offers its paw in a heartwarming display of companionship and trust."},{"image":"https://qianwen-res.oss-cn-beijing.aliyuncs.com/Qwen-VL/assets/demo.jpeg"},{"text":"A woman shares a joyful moment with her golden retriever on a sun-drenched beach at sunset, as the dog offers its paw in a heartwarming display of companionship and trust.","image":"https://qianwen-res.oss-cn-beijing.aliyuncs.com/Qwen-VL/assets/demo.jpeg"}]# 指定模型路径 model_name_or_path ="Qwen/qwen3-vl-embedding-2B"# 初始化模型 model = Qwen3VLEmbedder(model_name_or_path=model_name_or_path)# 推荐启用 flash_attention_2 以获得更好的加速和内存节省# model = Qwen3VLEmbedder(# model_name_or_path=model_name_or_path, # dtype=torch.float16, # attn_implementation="flash_attention_2"# )# 合并查询和文档 inputs = queries + documents # 生成嵌入 embeddings = model.process(inputs)# 计算查询嵌入和文档嵌入之间的相似度分数 similarity_scores =(embeddings[:4] @ embeddings[4:].T)# 打印相似度分数print(similarity_scores.tolist())# [[0.83203125, 0.74609375, 0.73046875], # [0.5390625, 0.373046875, 0.48046875], # [0.404296875, 0.326171875, 0.357421875], # [0.1298828125, 0.06884765625, 0.10595703125]]

8.2 Reranking 模型使用示例

from scripts.qwen3_vl_reranker import Qwen3VLReranker import numpy as np import torch # 指定模型路径 model_name_or_path ="Qwen/Qwen3-VL-Reranker-2B"# 初始化模型 model = Qwen3VLReranker(model_name_or_path=model_name_or_path)# 推荐启用 flash_attention_2 以获得更好的加速和内存节省# model = Qwen3VLReranker(# model_name_or_path=model_name_or_path, # dtype=torch.float16, # attn_implementation="flash_attention_2"# )# 构建输入 inputs ={"instruction":"Retrieval relevant image or text with user's query","query":{"text":"A woman playing with her dog on a beach at sunset."},"documents":[{"text":"A woman shares a joyful moment with her golden retriever on a sun-drenched beach at sunset, as the dog offers its paw in a heartwarming display of companionship and trust."},{"image":"https://qianwen-res.oss-cn-beijing.aliyuncs.com/Qwen-VL/assets/demo.jpeg"},{"text":"A woman shares a joyful moment with her golden retriever on a sun-drenched beach at sunset, as the dog offers its paw in a heartwarming display of companionship and trust.","image":"https://qianwen-res.oss-cn-beijing.aliyuncs.com/Qwen-VL/assets/demo.jpeg"}],"fps":1.0}# 计算相关性分数 scores = model.process(inputs)print(scores)# [0.8408790826797485, 0.6197134852409363, 0.7778129577636719]

更多使用示例和详细文档,请访问 GitHub 仓库

九、结论与展望

9.1 主要贡献

Qwen3-VL-Embedding 和 Qwen3-VL-Reranker 代表了多模态检索领域的最新进展。通过将多阶段训练管道与高质量多模态数据相结合,同时最大限度地利用 Qwen3-VL 基础模型的多模态知识和通用理解能力,该模型系列在广泛的多模态检索基准测试中实现了前所未有的性能,同时保持了强大的纯文本能力。

此外,通过 Matryoshka 表示学习和量化感知训练,Qwen3-VL-Embedding 系列提供了出色的实际部署特性,显著降低了下游任务的计算成本,同时保持了优越的性能。

9.2 未来方向

Qwen3-VL-Embedding 和 Qwen3-VL-Reranker 模型系列是在统一多模态表示和检索领域的初步探索。相比纯文本的 Embedding 和 Reranking 模型,多模态学习,尤其是统一多模态表征和重排序在以下方面仍有巨大的探索空间:

  1. 模型成熟度提升
    • 扩展对其他模态的支持(如音频、3D数据)
    • 开发更高效的训练范式
    • 增强组合推理能力
  2. 易用性优化
    • 简化部署流程
    • 提供更多预配置的应用场景模板
    • 优化资源消耗和推理速度
  3. 应用场景扩展
    • 探索更多垂直领域的应用
    • 建立更全面的评估协议
    • 推动多模态 AI 技术的落地应用
  4. 社区协作
    • 期待与社区携手合作
    • 共同探索和构建更加通用的统一多模态检索能力
    • 推动多模态 AI 技术的发展与创新

Qwen3-VL-Embedding 和 Qwen3-VL-Reranker 的开源是一个新的起点,Qwen团队相信这些模型代表了多模态检索技术的重大进步,并希望它们能够促进这个快速发展领域的进一步创新。

Read more

【C++】C++ 重载深度解析:赋值运算与取地址运算符,你真的会了吗?

【C++】C++ 重载深度解析:赋值运算与取地址运算符,你真的会了吗?

🔭 个人主页:散峰而望 《C语言:从基础到进阶》《编程工具的下载和使用》《C语言刷题》 《C++》《算法竞赛从入门到获奖》《人工智能》《AI Agent》 愿为出海月,不做归山云 🎬博主简介 【C++】C++ 重载深度解析:赋值运算与取地址运算符,你真的会了吗? * 前言 * 1. 赋值运算符重载 * 1.1 运算符重载 * 1.2 赋值运算符重载 * 2. 取地址运算符重载 * 2.1 const成员函数 * 2.2 取地址运算符重载 * 结语 前言 在C++中,运算符重载是一项强大的特性,允许开发者自定义运算符的行为,使其适用于用户定义的类型。赋值运算符(operator=)和取地址运算符(operator&)是其中两个关键的重载目标,但它们的实现细节和潜在陷阱往往容易被忽视。

By Ne0inhk
C++ ODB ORM 完全指南:从入门到实战应用

C++ ODB ORM 完全指南:从入门到实战应用

文章目录 * ODB基本概念 * ODB框架安装 * 常见操作 * ODB类与接口 * 测试示例 ODB基本概念 ODB 是一个针对 C++ 的对象关系映射(ORM)库,它允许开发者以面向对象的方式操作数据库,将C++ 对象与数据库表进行映射,从而避免直接编写 SQL 语句,简化数据库操作。 特点: * 对象 - 关系映射:将 C++ 类映射到数据库表,类的成员变量映射到表的字段,对象的创建、修改、删除等操作会自动转换为对应的数据库操作(如 INSERT、UPDATE、DELETE)。 * 代码生成机制:ODB 不依赖运行时反射(C++ 本身不支持),而是通过编译期代码生成实现映射:开发者使用特殊的注解(如 #pragma db object)标记需要持久化的类,然后通过 ODB 编译器生成与数据库交互的代码(

By Ne0inhk
从智能体到交易引擎:基于 OpenClaw 架构构建 C++ 版 QuantClaw 实战指南

从智能体到交易引擎:基于 OpenClaw 架构构建 C++ 版 QuantClaw 实战指南

从智能体到交易引擎:基于 OpenClaw 架构构建 C++ 版 QuantClaw 实战指南 摘要:2026 年初,OpenClaw 以其模块化的“网关 - 智能体 - 技能 - 记忆”架构席卷 AI 社区。与此同时,量化交易领域长期缺乏轻量级、高性能且易于扩展的 C++ 原生框架。本文提出 QuantClaw 概念——一个借鉴 OpenClaw 设计哲学,专为高频与中低频量化交易打造的 C++ 复刻版框架。我们将深入探讨如何将 OpenClaw 的事件驱动机制、技能插件系统迁移至 C++ 环境,并针对金融低延迟场景进行优化,实现从“AI 助手”到“交易大脑”的跨界进化。

By Ne0inhk
C++ 网络编程入门:TCP 协议下的简易计算器项目

C++ 网络编程入门:TCP 协议下的简易计算器项目

个人主页:chian-ocean 文章专栏-Linux 网络编程入门:TCP 协议下的简易计算器项目 * 个人主页:chian-ocean * 文章专栏-Linux * 前言: * 文件组成 * TCP服务端 * `TcpServer.hpp` * 代码说明: * `TcpServer.cc` * 代码说明: * TCP客户端 * 代码说明: * 计算器 * 代码说明: * 1. **`ServerCal` 类**: * 2. **`Calculatate(Requset &req)` 函数**: * 3. **`Calculator(std::string &package)` 函数**: * 请求和响应服务 * 代码总结: * 1. **`Encode` 和 `Decode`**: * 2. **`Requset` 类**: * 3. **`Response` 类*

By Ne0inhk