1、BGE词嵌入模型架构
BGE模型采用Transformer的Encoder架构:
Encoder架构的词嵌入模型
数据格式: [CLS]句子A [SEP]句子B [SEP]
并行计算: 同时感知上下文,计算速度快
向量表示: Encoder会在输入的最前面加一个特殊的 [CLS]标记。在经过计算后使得[CLS]标记向量能够代表整句话的含义
2、Qwen3 Embedding 模型架构
Qwen3 Embedding 模型采用基于 Qwen3的 dual-encoder和 cross-encoder架构(将decoder-only 中的 casul mask 去掉):
Qwen3 词嵌入模型
Qwen3 Embedding 基于 Qwen3 模型,嵌入模型将单个文本段作为输入,用[EOS]标记所对应的向量代表整句话的向量。
3、Qwen3 Embedding的训练过程
Stage1: 使用大合成数据进行弱监督学习
利用Qwen3基座模型直接合成数据,而BGE与E5等模型都是从开源社区收集数据。
Stage2: 利用高质量合成数据进行 SFT
对筛选出的高质量合成数据和公开监督数据集进行监督训练。
Stage3: 模型合并
将微调过程中的多个模型检查点保存,采用slerp技术进行模型融合,增加泛化能力。
4、Qwen3 Embedding的数据合成
Qwen3 Embedding模型加入信息检索、比对挖掘、分类和文本相似度四类合成数据。
以信息检索为例
输入: 多语种文档 +候选角色
Qwen3-32B 决策: 选择最可能对文档感兴趣的角色、问题类型与难度(高中/大学的知识)
构造检索对: 输入上一阶段的文档与角色,对问题类型、难度进行限制。从角色视角出发,按需求生成文档对应的自然语言查询。
例如:角色为古建筑爱好者,文档关于故宫历史,需求为大学难度20字以内,可能生成【明朝紫禁城的历史建筑意义】。
高质量数据: 对每一对数据计算cosine相似度,选择相似度大于0.7的数据作为高质量数据。
5、Qwen3 Embedding的新用法
Qwen3 Embedding模型的query前能加一个prompt,这个prompt会与query一起向量化。
比如推荐场景:
用户正在阅读一篇新闻报道,你希望在页面下方为其推荐相似文章。而相似有多种维度: 是主题相似?写作风格相似?还是同样提到了某个人物?
那么我们就可以在向量化query前加一个prompt: 寻找写作风格相似的其他文档。
我们就能用同一套文档向量,通过在查询时动态传入不同指令,为用户提供多维度的推荐。比如让用户自己选择“更关心主题”还是“喜欢这个作者的风格”,实现个性化的推荐功能。
6、总结
训练数据不同:以前词嵌入模型采用公开数据,现在的训练数据会使用大模型加工合成,更精细可控,站在了巨人的肩膀上。
模型结构不同:在生成式大模型采用Decoder架构后,词嵌入模型也借鉴了Decoder,使用[EOS]标签对应的向量来表示句子向量,
训练方法改进:Encoder 架构的训练方式是 Mask 猜词与相似度计算。而Qwen3 词嵌入模型采用多阶段训练与合并结果,让模型效果更上一层楼。