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 | 重排序模型作为教师,将精准判读能力蒸馏给嵌入模型 |
总结
三阶段训练的核心设计:
- 循序渐进:基础泛化 → 任务精准 → 全局均衡
- 协同优化:嵌入模型与重排序模型通过数据挖掘→蒸馏形成协同
- 工程化适配:LoRA、模型融合兼顾训练效率与最终性能
最终 Qwen3-VL-Embedding: s3 在 MMEB-V2 benchmark 取得 77.8 的 SOTA 分数。
张芷铭的个人博客
Comments