Qwen3 Embedding系列重磅上线:多阶段训练打造高效文本嵌入与重排序能力,覆盖0.6B至8B多种尺寸

大模型向量数据库云通信

picture.image

Qwen3-Embedding 系列模型

Qwen3-Embedding 系列模型 ,

Qwen3-Embedding 系列模型是 Qwen 模型家族的全新成员,专为文本表征、检索与排序任务而设计。该系列模型基于 Qwen3 基础模型进行训练,全面继承了其在多语言文本理解方面的强大能力。

关键特性

  • 卓越的泛化性能

Qwen3-Embedding 在多个下游任务评估中表现优异,达到了行业领先水平。其中,8B 参数规模的 Embedding 模型在 MTEB 多语言 Leaderboard 榜单中排名第一(截至 2025 年 6 月 6 日,得分为 70.58),性能超越众多商业 API 服务。此外,该系列排序模型在各类文本检索场景中表现出色,显著提升了搜索结果的相关性与准确性。

  • 灵活的模型架构

Qwen3-Embedding 提供了从 0.6B 到 8B 的三种参数规模配置,以满足不同应用场景对性能与效率的需求。开发者可以根据实际需求灵活组合表征模块和排序模块,实现功能扩展。

同时,模型支持以下定制化功能:

  1. 表征维度自定义(MRL Support):用户可根据具体需求调整向量输出维度,从而降低计算与存储成本。

  2. 指令适配优化(Instruct Aware):支持自定义任务指令模板,提升特定任务、语言或场景下的模型表现。

  • 全面的多语言支持

Qwen3-Embedding 支持超过 100 种语言,涵盖主流自然语言及多种编程语言,具备强大的多语言处理、跨语言检索以及代码检索能力,能够高效应对复杂的国际化和多语种数据处理需求。

  • 模型结构
  • Embedding 模型:采用双塔结构设计,适用于大规模文本检索与匹配任务。

  • Reranker 模型:采用单塔结构,用于对候选结果进行精细化排序。

通过 LoRA 微调技术,Qwen3-Embedding 系列模型最大限度地保留并增强了基础模型的语言理解能力。

  • 性能测试说明
  • 测试基准包括:MTEB(eng, v2)、MTEB(cmn, v1)、MTEB(Multilingual) 和 MTEB(Code),分别记作 MTEB-R、CMTEB-R、MMTEB-R、MTEB-Code。

  • 排序任务基于 Qwen3-Embedding-0.6B 的 top-100 向量召回结果进行评估。

  • 开源与部署

目前,Qwen3-Embedding 系列模型已在 Hugging Face、ModelScope 和 GitHub 平台开源。用户也可以通过阿里云百炼平台获取最新的文本向量模型服务,快速集成到各类 AI 应用中。

picture.image

picture.image

picture.image

模型架构

基于 Qwen3 基础模型,Embedding 模型和 Reranker 模型分别采用了双塔结构和单塔结构的设计。通过 LoRA 微调,最大限度地保留并继承了基础模型的文本理解能力。

具体实现如下:

    1. Embedding 模型接收单段文本作为输入,取模型最后一层_「EOS」_标记对应的隐藏状态向量,作为输入文本的语义表示;

为了确保在下游任务中嵌入能够遵循指令,将指令和查询拼接为一个单一的输入上下文,而文档在处理之前保持不变。查询的输入格式如下:


 
 
 
 
   
{指令} {查询}<|endoftext|>  

    1. Reranker 模型则接收文本对(例如用户查询与候选文档)作为输入,利用单塔结构计算并输出两个文本的相关性得分。

为了更准确地评估文本相似性,使用 LLM 进行单个上下文内的逐点重排序。与嵌入模型类似,为了实现指令遵循能力,在输入上下文中包含指令。使用 LLM 的聊天模板,并将相似性评估任务视为一个二分类问题。输入到 LLM 的模板如下所示:


 
 
 
 
   
<|im\_start|>system  
根据提供的查询和指令,判断文档是否符合要求。注意,答案只能是“是”或“否”。<|im\_end|>  
<|im\_start|>user  
<指令>: {指令}  
<查询>: {查询}  
<文档>: {文档}<|im\_end|>  
<|im\_start|>assistant  
<think>  
  
</think>  

picture.image

模型训练

Qwen3-Embedding 系列模型的训练继承了 GTE-Qwen 系列的多阶段训练范式,但针对具体应用场景进行了深度优化。

picture.image

在 Embedding 模型的训练过程中,采用三阶段训练架构:第一阶段通过超大规模弱监督数据进行对比学习预训练;第二阶段基于高质量标注数据进行监督训练;最终通过模型融合策略融合多个候选模型,以提升整体性能。这种分阶段训练机制有效平衡了模型的泛化能力与任务适配性。

在 Reranker 模型的训练中,基于实验验证结果,直接采用高质量标注数据进行监督训练,以提升训练效率。特别需要说明的是,在 Embedding 模型的第一阶段弱监督训练中,构建了多任务适配的 Prompt 体系,利用 Qwen3 基础模型的文本生成能力,针对不同任务类型和语言特性,动态生成了一系列弱监督文本对,突破了传统方法依赖社区论坛或开源数据筛选获取弱监督文本对的局限性,实现了大规模弱监督数据的高效生成。

picture.image

  • • Qwen3 嵌入系列引入了以下关键创新:
  • 大规模合成数据驱动的弱监督训练 :与以往工作(例如 GTE、E5、BGE 模型)不同,这些模型的弱监督训练数据主要从开源社区(如问答论坛或学术论文)收集,我们提出利用基础模型的文本理解和生成能力直接合成配对数据。
  • 在监督微调中使用高质量合成数据 :由于 Qwen3 基础模型的卓越性能,合成数据的质量非常高。因此,在第二阶段的监督训练中,选择性地引入这些高质量合成数据可以进一步提升模型的整体性能和泛化能力。
  • 模型合并 :受以往工作的启发,在完成监督微调后,我们应用了基于球面线性插值(slerp)的模型合并技术。该技术涉及合并微调过程中保存的多个模型检查点。这一步旨在增强模型在各种数据分布上的鲁棒性和泛化性能。

快速使用

  • • Embedding Model 使用方法

 
 
 
 
   
tokenizer = AutoTokenizer.from\_pretrained('Qwen/Qwen3-Embedding-8B', padding\_side='left')  
model = AutoModel.from\_pretrained('Qwen/Qwen3-Embedding-8B')  
  
# We recommend enabling flash\_attention\_2 for better acceleration and memory saving.  
# model = AutoModel.from\_pretrained('Qwen/Qwen3-Embedding-8B', attn\_implementation="flash\_attention\_2", torch\_dtype=torch.float16).cuda()  
  
eod\_id = tokenizer.convert\_tokens\_to\_ids("<|endoftext|>")  
max\_length = 8192  
  
# Tokenize the input texts  
batch\_dict = tokenize(tokenizer, input\_texts, eod\_id, max\_length)  
batch\_dict.to(model.device)  
outputs = model(**batch\_dict)  
embeddings = last\_token\_pool(outputs.last\_hidden\_state, batch\_dict['attention\_mask'])  

  • • Reranker Model 使用方法

 
 
 
 
   
tokenizer = AutoTokenizer.from\_pretrained("Qwen/Qwen3-Reranker-0.6B", padding\_side='left')  
model = AutoModelForCausalLM.from\_pretrained("Qwen/Qwen3-Reranker-0.6B").eval()  
  
# We recommend enabling flash\_attention\_2 for better acceleration and memory saving.  
# model = AutoModelForCausalLM.from\_pretrained("Qwen/Qwen3-Reranker-0.6B", torch\_dtype=torch.float16, attn\_implementation="flash\_attention\_2").cuda().eval()  
  
token\_false\_id = tokenizer.convert\_tokens\_to\_ids("no")  
token\_true\_id = tokenizer.convert\_tokens\_to\_ids("yes")  
max\_length = 8192  
  
prefix = "<|im\_start|>system\nJudge whether the Document meets the requirements based on the Query and the Instruct provided. Note that the answer can only be \"yes\" or \"no\".<|im\_end|>\n<|im\_start|>user\n"  
suffix = "<|im\_end|>\n<|im\_start|>assistant\n<think>\n\n</think>\n\n"  
prefix\_tokens = tokenizer.encode(prefix, add\_special\_tokens=False)  
suffix\_tokens = tokenizer.encode(suffix, add\_special\_tokens=False)  
          
task = 'Given a web search query, retrieve relevant passages that answer the query'  
  
queries = ["What is the capital of China?",  
    "Explain gravity",  
]  
  
documents = [  
    "The capital of China is Beijing.",  
    "Gravity is a force that attracts two bodies towards each other. It gives weight to physical objects and is responsible for the movement of planets around the sun.",  
]  
  
pairs = [format\_instruction(task, query, doc) for query, doc in zip(queries, documents)]  
  
# Tokenize the input texts  
inputs = process\_inputs(pairs)  
scores = compute\_logits(inputs)  

开源地址:

ModelScope:

Hugging Face**:**

GitHub:

技术报告:

0
0
0
0
关于作者
关于作者

文章

0

获赞

0

收藏

0

相关资源
CV 技术在视频创作中的应用
本次演讲将介绍在拍摄、编辑等场景,我们如何利用 AI 技术赋能创作者;以及基于这些场景,字节跳动积累的领先技术能力。
相关产品
评论
未登录
看完啦,登录分享一下感受吧~
暂无评论