张芷铭的个人博客

Qwen3-VL-Embedding 和 Qwen3-VL-Reranker 采用三阶段递进式训练:对比预训练构建基础→多任务精调提升特异性→蒸馏融合补齐短板,实现多模态检索 SOTA 性能。

核心前提

  • 两模型均基于 Qwen3-VL-Instruct 初始化,继承多模态感知、多语言理解和指令跟随能力
  • 训练全程采用 LoRA 技术,降低内存占用、提升泛化性
  • 数据层面:阶段间共享大规模多模态数据集,形成正向循环

阶段 1:对比预训练

核心目标

为嵌入模型建立跨模态相关性理解的基础能力,学习不同模态的统一语义表征空间。

关键细节

项目内容
训练对象仅 Qwen3-VL-Embedding
训练数据大规模多模态合成数据(亿级),覆盖图像/视频的分类、问答、检索任务
损失函数InfoNCE 损失,包含 5 类相似度项
输出Qwen3-VL-Embedding: s0,具备基础跨模态语义对齐能力

阶段意义

让模型从零建立对多模态数据的语义理解,利用大规模弱监督数据提升泛化性。

阶段 2:多任务对比学习 + 重排序模型微调

核心目标

  • 嵌入模型:从通用相关性理解转向任务感知的精准表征
  • 重排序模型:学习细粒度的查询-文档相关性判断能力

Qwen3-VL-Embedding:多任务对比学习

项目内容
训练数据精选公共数据集 + 企业内部数据 + 合成数据
数据挖掘使用 s0 模型替代开源模型,提升正/负样本挖掘质量
损失函数定制化对比损失(检索/分类/STS 不同任务类型)
输出Qwen3-VL-Embedding: s1,多任务性能均衡

Qwen3-VL-Reranker:有监督微调

项目内容
任务定义二分类任务,预测查询-文档对相关/无关
训练数据高质量检索专用子集
损失函数负对数似然损失:$\mathcal{L}_{reranking}=-\log p(l
输出Qwen3-VL-Reranker,具备细粒度多模态相关性判读能力

阶段 3:蒸馏与模型融合

步骤 1:嵌入模型蒸馏

将重排序模型作为教师模型,嵌入模型学习其精准相关性判读能力:

$$\hat{\epsilon}{\text{distill}} = \text{CrossEntropy}(P{embedding}, P_{reranker})$$

输出:Qwen3-VL-Embedding: s2,检索任务性能大幅提升

步骤 2:模型融合

模型版本优势短板
s1(多任务精调)非检索任务(分类/QA)表现好检索精准度有待提升
s2(蒸馏后)检索任务性能突出非检索任务略有下降
s3(融合后)检索/非检索任务均衡最优无明显短板

输出:Qwen3-VL-Embedding: s3,最终版本

训练演进流程

graph LR
A[阶段1:对比预训练] -->|输出s0| B[阶段2:多任务精调+重排序微调]
B -->|输出s1+Reranker| C[阶段3:蒸馏+融合]
C -->|输出s3| D[SOTA多模态检索性能]

与重排序模型的协同关系

阶段协同方式
阶段 1嵌入模型单独训练,为后续提供候选文档召回能力
阶段 2嵌入模型 s0 挖掘高质量数据,重排序模型学习细粒度判读
阶段 3重排序模型作为教师,将精准判读能力蒸馏给嵌入模型

总结

三阶段训练的核心设计:

  1. 循序渐进:基础泛化 → 任务精准 → 全局均衡
  2. 协同优化:嵌入模型与重排序模型通过数据挖掘→蒸馏形成协同
  3. 工程化适配:LoRA、模型融合兼顾训练效率与最终性能

最终 Qwen3-VL-Embedding: s3 在 MMEB-V2 benchmark 取得 77.8 的 SOTA 分数

Comments