【AIGC】Qwen3-Embedding:Embedding与Rerank模型新标杆

Qwen3-Embedding:Embedding与Rerank模型新标杆

    • 一、引言
    • 二、技术架构与核心创新
      • 1. 模型结构与训练策略
        • (1)多阶段训练流程
        • (2)高效推理设计
        • (3)多语言与长上下文支持
      • 2. 与经典模型的性能对比
    • 三、使用指南与代码实践
      • 1. 安装与依赖
        • (1)环境准备
        • (2)模型拉取
      • 2. 核心功能代码示例
        • (1)文本嵌入(Embedding)
        • (2)重排序(Reranking)
      • 3. 本地部署与微调
        • (1)本地部署(GPUStack)
        • (2)微调脚本示例(SWIFT 框架)
    • 四、应用场景与性能优化
      • 1. 典型应用场景
      • 2. 性能优化建议
    • 五、总结


一、引言

随着大规模语言模型(LLM)的快速发展,文本嵌入(Text Embedding)与重排序(Reranking)技术已成为自然语言处理(NLP)领域的重要基石。阿里通义实验室最新发布的 Qwen3-Embedding 系列模型,基于 Qwen3 基础模型架构,通过多阶段训练策略和优化设计,在多语言支持、代码检索、跨任务泛化能力等方面实现了显著突破。本文将从技术架构、性能对比、使用指南及代码实践角度,深入解析 Qwen3-Embedding 的优势与应用场景。


二、技术架构与核心创新

1. 模型结构与训练策略

在这里插入图片描述

Qwen3-Embedding 系列包含 Embedding 模型Reranker 模型 两个子系列,参数规模覆盖 0.6B / 4B / 8B,支持动态裁剪向量维度(768/1024/4096)。其核心创新体现在以下方面:

(1)多阶段训练流程

在这里插入图片描述

  • 弱监督预训练:利用 Qwen3-32B 自动合成 1.5 亿 多语言、多任务文本对,通过对比学习(Contrastive Learning)优化语义表示。
  • 监督微调:结合 1200 万 高质量弱监督对和 700 万 人工标注对,进一步提升模型在特定任务中的表现。
  • 模型融合:采用球面线性插值(Slerp)融合多个微调模型检查点,显著提升鲁棒性。
(2)高效推理设计
  • Embedding 模型:直接取最后一层 [EOS] token 的隐藏状态生成向量,无需额外池化头,推理路径更短。
  • Reranker 模型:将相关性判定转化为二分类问题(“yes”/“no”),仅需计算下一个 token 的概率即可完成打分,接口简单且延迟低。
(3)多语言与长上下文支持
  • 支持 119 种语言,覆盖跨语言检索与匹配需求。
  • 支持 32K 上下文长度,适用于长文档处理场景(如 RAG 系统中的文档切片优化)。

2. 与经典模型的性能对比

模型名称参数规模MTEB 多语言得分MSMARCO 检索任务(nDCG@10)上下文长度
Qwen3-Embedding-8B8B70.5857.6532K
BGE-M3(开源)1.5B63.2240.888K
Sentence-BERT(SBERT)355M59.5638.20512
GritLM-Embedding1.2B61.4745.608K
Qwen3-Reranker-8B8B-80.68(代码检索)32K

对比分析

  • 性能优势:Qwen3-Embedding-8B 在 MTEB 多语言排行榜中排名第一(70.58),显著优于 BGE-M3(63.22)和 Sentence-BERT(59.56)。其 Reranker 模型在代码检索任务中达到 80.68 的 nDCG@10 分数,远超 GritLM 和 SBERT。
  • 资源效率:0.6B 版本在轻量级场景中表现优异,甚至超越部分 1.5B 以上模型(如 BGE-M3)。
  • 长文档处理:32K 上下文长度支持长文档直接输入,无需切片,减少信息丢失。

三、使用指南与代码实践

1. 安装与依赖

(1)环境准备
# 安装 Hugging Face Transformers 库
pip install transformers# 安装模型依赖库
pip install torch sentencepiece
(2)模型拉取
from transformers import AutoTokenizer, AutoModel# 加载 Qwen3-Embedding-0.6B 模型
tokenizer = AutoTokenizer.from_pretrained("Qwen/Qwen3-Embedding-0.6B")
model = AutoModel.from_pretrained("Qwen/Qwen3-Embedding-0.6B")

2. 核心功能代码示例

(1)文本嵌入(Embedding)
import torch
import torch.nn.functional as Fdef get_embedding(texts):inputs = tokenizer(texts, padding=True, truncation=True, return_tensors="pt").to("cuda")with torch.no_grad():outputs = model(**inputs)# 取 [EOS] token 的隐藏状态作为嵌入向量embeddings = outputs.last_hidden_state[:, -1, :]# 归一化处理embeddings = F.normalize(embeddings, p=2, dim=1)return embeddings.cpu().numpy()# 示例
texts = ["苹果手机真好用", "我有一部 iPhone", "今天天气不错"]
embeddings = get_embedding(texts)
print("向量相似度:", embeddings[:2] @ embeddings[2:].T)
(2)重排序(Reranking)
from transformers import AutoTokenizer, AutoModelForSequenceClassification# 加载 Qwen3-Reranker-4B 模型
reranker_tokenizer = AutoTokenizer.from_pretrained("Qwen/Qwen3-Reranker-4B")
reranker_model = AutoModelForSequenceClassification.from_pretrained("Qwen/Qwen3-Reranker-4B")def rerank(query, documents):inputs = reranker_tokenizer(query, documents, padding=True, truncation=True, return_tensors="pt").to("cuda")with torch.no_grad():scores = reranker_model(**inputs).logits.softmax(dim=1)[:, 1]  # 取 "yes" 概率return scores.cpu().numpy()# 示例
query = "什么是量子计算?"
documents = ["《量子计算的基本原理》","《计算机发展简史》","《量子力学入门知识》"
]
scores = rerank(query, documents)
print("相关性得分:", scores)

3. 本地部署与微调

(1)本地部署(GPUStack)
# 使用 Docker 部署 Qwen3-Embedding
docker run -d --gpus all -p 8080:8080 -v /path/to/model:/models qwen/gpustack:latest
(2)微调脚本示例(SWIFT 框架)
INFONCE_MASK_FAKE_NEGATIVE=true \
CUDA_VISIBLE_DEVICES=0,1,2,3,4,5,6,7 \
NPROC_PER_NODE=8 \
swift sft \--model Qwen/Qwen3-Embedding-8B \--task_type embedding \--model_type qwen3_emb \--train_type full \--dataset sentence-transformers/stsb:positive \--split_dataset_ratio 0.05 \--eval_strategy steps \--output_dir output \--eval_steps 20 \--num_train_epochs 5 \--loss_type infonce \--label_names labels

四、应用场景与性能优化

1. 典型应用场景

  • 检索增强生成(RAG):结合 Qwen3-Embedding 与 Qwen3-Reranker,优化搜索结果的相关性。
  • 跨语言匹配:支持多语言文档与查询的语义匹配,如双语对齐。
  • 个性化推荐:通过用户行为数据优化排序模型,提升用户体验。

2. 性能优化建议

  • 模型选择:轻量级场景选用 Qwen3-Embedding-0.6B,精度要求高时使用 8B 版本。
  • 上下文切片:长文档建议切分为 512 token 的块,平衡精度与效率。
  • 量化部署:使用 Q8_0 量化版本(如 Qwen3-Embedding-8B-Q8_0),降低 GPU 显存占用。

五、总结

Qwen3-Embedding 系列模型通过多阶段训练、高效推理设计和多语言支持,在文本嵌入与重排序任务中展现了卓越的性能。无论是学术研究还是工业应用,其开源特性(Apache 2.0 协议)和灵活的部署方案(本地/云端)都为开发者提供了强大的工具。未来,随着模型迭代和生态完善,Qwen3-Embedding 将在 RAG、智能体、多模态等领域发挥更大价值。


参考资料

  • Qwen3-Embedding 论文:2506.05176] Qwen3 Embedding: Advancing Text Embedding and Reranking Through Foundation Models
  • GitHub 项目:QwenLM/Qwen3-Embedding
  • Hugging Face 模型库:huggingface.co/Qwen/Qwen3-Embedding

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.pswp.cn/news/909157.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

算法竞赛阶段二-数据结构(32)数据结构简单介绍

数据结构的基本概念 数据结构是计算机存储、组织数据的方式,旨在高效地访问和修改数据。它是算法设计的基础,直接影响程序的性能。数据结构可分为线性结构和非线性结构两大类。 线性数据结构 线性结构中,数据元素按顺序排列,每…

Windows桌面图标修复

新建文本文件,粘入以下代码,保存为.bat文件,管理员运行这个文件 duecho off taskkill /f /im explorer.exe CD /d %userprofile%\AppData\Local DEL IconCache.db /a start explorer.exe echo 执行完成上面代码作用是删除桌面图标缓存库&…

13.react与next.js的特性和原理

🟡 一句话总结 React 专注于构建组件,而 Next.js 是基于 React 的全栈框架,提供了页面路由、服务端渲染和全栈能力,让你能快速开发现代 Web 应用。 React focuses on building UI components, while Next.js is a full-stack fra…

全栈监控系统架构

全栈监控系统架构 可观测性从数据层面可分为三类: 指标度量(Metrics):记录系统的总体运行状态。事件日志(Logs):记录系统运行期间发生的离散事件。链路追踪(Tracing):记录一个请求接入到结束的处理过程,主要用于排查…

云服务运行安全创新标杆:阿里云飞天洛神云网络子系统“齐天”再次斩获奖项

引言 为认真落实工信部《工业和信息化部办公厅关于印发信息通信网络运行安全管理年实施方案的通知》,2025年5月30日中国信息通信研究院于浙江杭州举办了“云服务运行安全高质量发展交流会”,推动正向引导,巩固云服务安全专项治理成果。会上&a…

刀客doc:WPP走下神坛

一、至暗时刻? 6月11日,快消巨头玛氏公司宣布其价值17 亿美元,在全球70个市场的广告业务交给阳狮集团,这其中包括M&Ms、士力架、宝路等知名品牌。 此前,玛氏公司一直是WPP的大客户。早在今年3月,WPP就…

进行性核上性麻痹饮食攻略:营养安全双护航

进行性核上性麻痹是一种罕见的神经系统退行性疾病,主要影响患者的运动、平衡和吞咽功能。除了医学干预,科学的饮食管理也能在一定程度上减轻症状,提高生活质量。 由于患者常出现吞咽困难,食物质地的选择尤为重要。应避免干硬、大块…

阿里云可观测 2025 年 5 月产品动态

本月可观测热文回顾 文章一览: StoreView SQL,让数据分析不受地域限制 不懂 PromQL?AI 智能体帮你玩转大规模指标数据分析 DeepWiki LoongCollector:AI 重塑开源代码理解 从 o11y 2.0 说起,大数据 Pipeline 的「…

React 基础状态管理方案

1. useState useState 是 React 提供的最基本的 Hook,用于在函数组件中添加状态管理。它返回一个状态变量和一个更新状态的函数。 1.1. 使用场景 适合管理简单的状态。 适合管理组件内部的局部状态。 1.2. 示例代码 import React, { useState } from react;function Cou…

VScode中如何创建项目分支

在 VS Code 中为前端项目创建自己的分支是一个常见的开发实践,以下是详细步骤: 前提条件 已安装 Git已安装 VS Code已有前端项目或克隆了远程仓库 创建分支步骤 1. 打开项目 在 VS Code 中打开你的前端项目文件夹。 2. 初始化 Git 仓库&#xff08…

Flutter 导航与路由管理:Navigator 的深入解析与实践

在移动应用开发中,页面导航是用户体验的核心组成部分。Flutter 提供了强大而灵活的导航系统,主要通过 Navigator 组件来实现。本文将全面介绍 Flutter 中 Navigator 的使用方法,涵盖基础导航操作、进阶技巧以及最佳实践。 一、Flutter 导航系…

预测性去匿名化攻击(PDAA):重塑数据安全攻防边界

一、数据合规时代的“脱敏”悖论:价值释放与风险并存 在数据驱动的商业模式与日趋严格的个人信息保护法规(如《个人信息保护法》《数据安全法》)双重推动下,企业普遍将“数据脱敏”作为实现数据合规与价值释放的核心手段。对手机…

[python] 使用python设计滤波器

使用python设计滤波器 文章目录 使用python设计滤波器完整滤波器设计代码(未经完整验证,博主还在不断完善中)关键原理与代码对应说明1. 滤波器类型选择2. 阶数估算原理3. 性能分析技术4. 设计参数调整指南 习惯了python后,matlab逐…

mac电脑.sh文件,用来清除git当前分支

#!/bin/bashecho "正在检查Git仓库..." if ! git rev-parse --is-inside-work-tree >/dev/null 2>&1; thenecho "错误:当前目录不是Git仓库!"exit 1 fiecho "警告:这将丢弃所有未提交的更改和本地提交&am…

Bash (Bourne Again SHell)

Unix/Linux 系统中最常用的命令行解释器之一,它是原始 Bourne shell (sh) 的增强版本。以下是 Bash 的详细解释: 1. Bash 基础 1.1 什么是 Bash 一个命令行解释器,用于执行用户输入的命令支持脚本编程,可以编写复杂的自动化任务…

uni-app学习笔记三十五--扩展组件的安装和使用

由于内置组件不能满足日常开发需要,uniapp官方也提供了众多的扩展组件供我们使用。由于不是内置组件,需要安装才能使用。 一、安装扩展插件 安装方法: 1.访问uniapp官方文档组件部分:组件使用的入门教程 | uni-app官网 点击左侧…

AIStor 的模型上下文协议 (MCP) 服务器: 工作原理

在本系列的前几篇博文中,我们讨论了MinIO AIStor 模型上下文协议 (MCP) 服务器的用户级和管理员级功能。在第一篇博文中,我们学习了如何查看存储桶的内容、分析对象并标记它们以便将来处理。在第二篇博文中,我们还学习了如何使用管理员命令以…

Excel 怎么让透视表以正常Excel表格形式显示

目录 1、创建数据透视表 2、设计 》报表布局 》以表格形式显示 3、设计 》分类汇总 》不显示分类汇总 1、创建数据透视表 2、设计 》报表布局 》以表格形式显示 3、设计 》分类汇总 》不显示分类汇总

汇编语言深度指南:从基础到字符串操作

基础知识 CPU简介 CPU是计算机的核心,负责: 执行机器指令:解码并执行二进制指令 mov eax, 5 ; 将值5移动到EAX寄存器暂存少量数据:通过内部寄存器快速存取访问存储器:读写内存数据 mov [0x1000], eax ; 将EAX值…

树莓派5-ubuntu 24.04 安装 ros环境

在开始安装ros环境前,需要确保已经准备好了以下操作 1.树莓派5开发板,已经烧录了 ubuntu 24.04,并做好了一些基础配置,如:远程访问配置,语言配置,网络配置等 2.新手建议在上面安装一个宝塔面板…