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

图片

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 应用中。

图片

图片

图片

模型架构

基于 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>

图片

模型训练

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

图片

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

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

图片

  • 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)

最后

为什么要学AI大模型

当下,⼈⼯智能市场迎来了爆发期,并逐渐进⼊以⼈⼯通⽤智能(AGI)为主导的新时代。企业纷纷官宣“ AI+ ”战略,为新兴技术⼈才创造丰富的就业机会,⼈才缺⼝将达 400 万!

DeepSeek问世以来,生成式AI和大模型技术爆发式增长,让很多岗位重新成了炙手可热的新星,岗位薪资远超很多后端岗位,在程序员中稳居前列。

在这里插入图片描述

与此同时AI与各行各业深度融合,飞速发展,成为炙手可热的新风口,企业非常需要了解AI、懂AI、会用AI的员工,纷纷开出高薪招聘AI大模型相关岗位。
在这里插入图片描述
最近很多程序员朋友都已经学习或者准备学习 AI 大模型,后台也经常会有小伙伴咨询学习路线和学习资料,我特别拜托北京清华大学学士和美国加州理工学院博士学位的鲁为民老师给大家这里给大家准备了一份涵盖了AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频 全系列的学习资料,这些学习资料不仅深入浅出,而且非常实用,让大家系统而高效地掌握AI大模型的各个知识点。

这份完整版的大模型 AI 学习资料已经上传优快云,朋友们如果需要可以微信扫描下方优快云官方认证二维码免费领取【保证100%免费

AI大模型系统学习路线

在面对AI大模型开发领域的复杂与深入,精准学习显得尤为重要。一份系统的技术路线图,不仅能够帮助开发者清晰地了解从入门到精通所需掌握的知识点,还能提供一条高效、有序的学习路径。

img

但知道是一回事,做又是另一回事,初学者最常遇到的问题主要是理论知识缺乏、资源和工具的限制、模型理解和调试的复杂性,在这基础上,找到高质量的学习资源,不浪费时间、不走弯路,又是重中之重。

AI大模型入门到实战的视频教程+项目包

看视频学习是一种高效、直观、灵活且富有吸引力的学习方式,可以更直观地展示过程,能有效提升学习兴趣和理解力,是现在获取知识的重要途径

在这里插入图片描述
光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
在这里插入图片描述

海量AI大模型必读的经典书籍(PDF)

阅读AI大模型经典书籍可以帮助读者提高技术水平,开拓视野,掌握核心技术,提高解决问题的能力,同时也可以借鉴他人的经验。对于想要深入学习AI大模型开发的读者来说,阅读经典书籍是非常有必要的。
在这里插入图片描述

600+AI大模型报告(实时更新)

这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。
在这里插入图片描述

AI大模型面试真题+答案解析

我们学习AI大模型必然是想找到高薪的工作,下面这些面试题都是总结当前最新、最热、最高频的面试题,并且每道题都有详细的答案,面试前刷完这套面试题资料,小小offer,不在话下
在这里插入图片描述

在这里插入图片描述

这份完整版的大模型 AI 学习资料已经上传优快云,朋友们如果需要可以微信扫描下方优快云官方认证二维码免费领取【保证100%免费

<think>我们正在处理用户关于Ollama运行qwen3-embedding:0.6b模型时出现&#39;embedding models require input text&#39;错误的问题。 根据错误信息,模型提示需要输入文本,这意味着我们在调用嵌入模型时没有提供文本输入。 步骤分析: 1. 确认模型类型:qwen3-embedding:0.6b是一个文本嵌入模型,它接收文本并输出向量表示。因此,使用该模型时必须提供文本输入。 2. 检查Ollama调用方式:用户可能在使用Ollama命令行或API调用时没有正确提供文本数据。 解决方案: 根据错误信息,最直接的原因是调用模型时没有传入文本。我们需要确保调用时包含文本参数。 具体操作: 1. **命令行调用**: 如果使用`ollama run`命令,需要以标准输入提供文本,或者通过管道传入。 例如: echo "你的文本" | ollama run qwen3-embedding:0.6b 或者: ollama run qwen3-embedding:0.6b "你的文本" 注意:Ollama的run命令可以直接在后面跟文本,但具体语法可能取决于Ollama版本。也可以使用交互模式输入文本。 2. **API调用**: 如果通过API调用,确保使用POST请求,并在请求体中包含正确的JSON数据,格式为: { "model": "qwen3-embedding:0.6b", "prompt": "你的文本" } 注意:不同版本的Ollama可能API略有不同,请参考对应版本的文档。 3. **代码调用**: 如果是在代码中调用,确保在调用模型时传递了文本字符串。 4. **检查模型是否正常运行**: 先运行一个简单的对话模型(如`ollama run qwen:0.5b`)确认Ollama安装和模型拉取正常。 然后专门测试嵌入模型。 5. **模型文档**: 参考Qwen3-0.6B的文档,确认该模型作为嵌入模型的具体调用方式。 典型错误场景: - 用户可能误以为嵌入模型可以像对话模型那样运行后进入交互模式,然后输入文本。但实际上,嵌入模型通常不会进入交互模式,而是需要一次性输入文本并输出向量后退出。 - 在Ollama中,嵌入模型的使用方式生成模型不同,它不需要(也不应该)使用对话格式。 因此,用户需要以非交互方式提供文本输入。 如果用户已经提供了文本但仍然遇到此错误,则可能是模型本身的问题或Ollama对嵌入模型的支持问题。但根据错误信息,最可能的原因还是没有传入文本。 验证步骤: - 尝试一个简单的echo命令: echo "hello" | ollama run qwen3-embedding:0.6b 观察输出是否为向量(一组数字)。 如果上述命令成功,则说明用户之前的调用方式有问题。如果失败,则可能需要考虑模型是否正确加载,或者Ollama版本是否支持该模型。 注意:Ollama的模型库中是否有`qwen3-embedding:0.6b`这个模型?用户需要确认已经通过`ollama pull qwen3-embedding:0.6b`下载了该模型。 如果模型不存在,用户可能需要自行创建ModelFile(类似于Dockerfile)来构建嵌入模型。参考Ollama的文档:https://github.com/jmorganca/ollama/blob/main/docs/modelfile.md 构建嵌入模型的ModelFile示例(假设基于Qwen3-0.6B嵌入模型): 创建一个文件,比如`Modelfile`,内容如下: FROM qwen3:0.6b # 注意:这里需要确认基础模型名称,但通常Ollama官方库可能没有直接提供嵌入模型,所以可能需要指定Hugging Face上的模型路径 PARAMETER task "text-embedding" # 指定任务为文本嵌入 然后构建: ollama create my-embedding-model -f Modelfile 然后运行: echo "text" | ollama run my-embedding-model 但是,根据用户的问题,模型名称是`qwen3-embedding:0.6b`,所以假设这个模型已经在Ollama模型库中存在(或者用户已经构建并命名为此)。 如果用户自行构建,需要确保在构建时指定了正确的任务(task)为嵌入。 总结步骤: 1. 确保模型已下载:`ollama pull qwen3-embedding:0.6b`(如果模型存在) 2. 通过管道或命令行参数提供文本进行测试。 如果问题仍然存在,可能需要检查模型是否支持Ollama,或者查看Ollama日志(通常输出在控制台)以获取更多错误信息。 由于用户问题中引用了微调项目,但错误微调无关,因此我们专注于Ollama调用嵌入模型的方式。 生成的相关问题: 1. 如何在Ollama中使用文本嵌入模型? 2. Ollama支持哪些嵌入模型? 3. 如何为Ollama构建自定义的嵌入模型? 4. 如何通过API调用Ollama的嵌入模型? 5. 嵌入模型输出的向量如何保存和使用? </think>### Ollama 运行 qwen3-embedding:0.6b 出现 "embedding models require input text" 错误的解决方法 #### 🔍 错误原因分析 该错误表明模型要求明确的文本输入,但调用时未提供有效文本。嵌入模型(如 qwen3-embedding)需要接收文本内容才能生成向量表示,而对话模型(如 qwen3-0.6B)则可直接聊天交互[^2]。 #### 🛠️ 解决方案步骤 1. **添加输入文本参数** 在运行命令中显式指定文本输入: ```bash # 单次调用(非交互模式) ollama run qwen3-embedding:0.6b "您的文本内容" # 或通过管道输入 echo "您的文本内容" | ollama run qwen3-embedding:0.6b ``` 2. **API 调用规范** 通过 API 调用时确保 JSON 结构包含 `prompt` 字段: ```bash curl http://localhost:11434/api/embeddings -d &#39;{ "model": "qwen3-embedding:0.6b", "prompt": "需要向量化的文本" }&#39; ``` 3. **检查模型加载方式** 确认是否误用对话模型的交互方式: ```bash # 错误方式(进入对话模式) ollama run qwen3-embedding:0.6b > 直接输入文本(模型无法响应对话) # 正确方式(批量处理) cat input.txt | ollama run qwen3-embedding:0.6b > embeddings.json ``` 4. **验证模型兼容性** 检查 Ollama 是否支持该嵌入模型: ```bash ollama list | grep qwen3-embedding ``` 若无输出,需手动拉取: ```bash ollama pull qwen3-embedding:0.6b ``` 5. **更新 Ollama 版本** 旧版本可能缺少嵌入模型支持: ```bash # Linux/macOS 更新 curl -fsSL https://ollama.com/install.sh | sh # Windows:重新下载最新安装包 ``` #### 📝 应用示例 ```python # Python API 调用示例 import requests response = requests.post( "http://localhost:11434/api/embeddings", json={ "model": "qwen3-embedding:0.6b", "prompt": "自然语言处理的核心任务" } ) print(response.json()["embedding"]) # 输出 768 维向量 ``` #### ⚠️ 注意事项 1. **模型类型区分**: - 对话模型:`qwen3:0.6b`(支持交互) - 嵌入模型:`qwen3-embedding:0.6b`(需文本输入)[^3] 2. **输入长度限制**: ```bash # 检查模型上下文长度 ollama show qwen3-embedding:0.6b --modelfile | grep context ``` 默认上下文长度通常为 4096 tokens,超长文本需分段处理 3. **性能优化**: - 批量处理文本减少调用次数 - 使用 GPU 加速:`OLLAMA_NUM_GPU=1 ollama run...` --- ### 📚 相关问题 1. 如何将 Qwen3 嵌入向量用于语义搜索任务? 2. Ollama 支持哪些开源文本嵌入模型? 3. 如何在微调过程中融合 Qwen3 嵌入模型?[^1] 4. 嵌入模型的输出维度如何影响下游任务性能? 5. 如何评估 qwen3-embedding 的向量质量? > 若问题仍存,请提供: > 1. 完整执行命令 > 2. Ollama 版本(`ollama --version`) > 3. 操作系统环境 > 将为您进一步分析适配方案。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值