双编码器架构通过为查询和文档分别设计独立编码支路,将两者映射到同一语义空间,实现高效的向量相似度匹配,是多模态检索召回层的核心架构。
Bi-Encoder 核心原理
三大原则:
- 独立编码:查询和文档通过共享编码器完成特征提取,彼此无信息交互
- 统一表征:所有模态转化为固定维度稠密向量,处于同一语义空间
- 相似度匹配:通过余弦相似度/点积快速判断相关性
Qwen3-VL-Embedding 架构实现
采用参数共享的双编码器,共享同一套编码网络,结构分为三层:
输入层:标准化多模态输入模板
| |
多模态编码层
| 组件 | 功能 |
|---|---|
| 视觉编码器 | 处理图像/视频,转化为视觉令牌(图像上限 1280 tokens,视频上限 4500 tokens) |
| Qwen3 语言模型 | 处理文本+视觉令牌,通过因果注意力捕捉多模态语义关联 |
| 稠密解码器 | 线性变换+归一化,映射到指定维度(2B: 2048 维,8B: 4096 维) |
向量生成层
以 PAD 令牌对应的最后一层隐藏状态作为最终 Embedding 向量。
关键特性:
- MRL(Matryoshka Representation Learning):支持灵活截断维度
- QAT(Quantization-Aware Training):支持 Int8 量化
执行流程
离线建索引
文档独立编码 → 向量存入向量数据库 → 构建 FAISS/HNSW 索引
在线检索
- 查询编码 → 生成 Embedding 向量
- 向量召回 → 余弦相似度计算 Top-K 候选
- 结果输出 → 返回排序后的候选文档
设计优势
| 优势 | 说明 |
|---|---|
| 推理效率极高 | 一次查询编码 + 向量匹配,支持实时检索 |
| 支持大规模数据 | 离线建索引,支持亿级数据 |
| 模态无关性强 | 统一编码实现跨模态检索 |
| 部署友好 | MRL/QAT 降低存储和计算成本 |
Bi-Encoder vs Cross-Encoder
| 维度 | Bi-Encoder | Cross-Encoder |
|---|---|---|
| 架构 | 查询/文档独立编码 | 查询/文档拼接输入,交叉注意力交互 |
| 推理速度 | 极快(毫秒级) | 较慢(百毫秒/秒级) |
| 数据规模 | 支持亿级数据 | 仅支持小批量候选(Top100/Top200) |
| 相关性精度 | 中等,粗粒度匹配 | 极高,细粒度判断 |
| 核心作用 | 大规模快速召回 | 精细化重排序 |
| 适用阶段 | 检索系统召回层 | 检索系统重排层 |
Qwen3-VL-Embedding 创新点
- 四模态统一编码:文本/图像/视觉文档/视频
- PAD 令牌锚点:确保多模态输入向量生成的统一性和唯一性
- 多阶段训练语义增强:继承 Cross-Encoder 的细粒度判别能力
- 32k 超长序列支持:处理长文档、长视频
- 多语言能力:支持 30+ 语言跨语言检索
总结
Qwen3-VL-Embedding 的 Bi-Encoder 架构是经典检索架构与多模态大模型的深度融合,与 Cross-Encoder 形成「召回-重排」端到端流水线,既保证大规模数据的检索效率,又通过精细化重排序保证检索精度。
张芷铭的个人博客
Comments