游乐游手机版
首页/AI热点日报/热点详情

Qwen3-Embedding技术揭秘:高效AI产品打造关键路径

类型:热点整理2026-07-20
在人工智能与自然语言处理领域,文本的语义表示——也就是业内常说的 Embedding(文本嵌入向量)——无疑是构建智能应用的基石。无论是搜索引擎、推荐系统、智能客服,还是内容理解与聚类分析,底层的向量化能力都直接决定了最终效果的边界。近期,阿里巴巴通义实验室正式推出了新一代 Qwen3-Embedd

在人工智能与自然语言处理领域,文本的语义表示——也就是业内常说的 Embedding(文本嵌入向量)——无疑是构建智能应用的基石。无论是搜索引擎、推荐系统、智能客服,还是内容理解与聚类分析,底层的向量化能力都直接决定了最终效果的边界。近期,阿里巴巴通义实验室正式推出了新一代 Qwen3-Embedding 模型。从实际表现来看,该模型在语义建模能力与适配灵活性上带来了诸多令人惊喜的突破。因此,本文将从核心原理到部署实践,从微调优化到工程链路设计,进行全方位解读,希望能为正在探索相关方向的技术团队和开发者提供可落地的参考。

先说说这篇文章能帮你解决哪些问题——

  • 深入了解 Qwen3-Embedding 的核心原理、核心优势及典型应用场景;
  • 快速上手阿里云 PAI 及百炼平台,完成模型的部署与效果验证;
  • 掌握如何通过领域数据集对模型进行微调,并将优化后的结果重新上线;
  • 理清 LLM 与轻量级 Embedding 模型在不同场景下的选型逻辑,以及工程链路优化的常见策略。

如果你只想快速了解部署和测试流程,可直接跳至第二、三章;若更关注 LLM 与 Embedding 的对比数据与方案选型,第四、五章将提供更具针对性的分析。

一、Qwen3-Embedding 系列介绍

1. 简介:什么是 Qwen3-Embedding

简单来说,Qwen3-Embedding 是阿里巴巴通义实验室推出的最新一代文本嵌入模型,专门用于将文本转换为高维向量,从而服务于语义搜索、推荐系统、聚类分析、文本匹配等任务。其底层基于 Qwen3 语言模型,融合了 instruction 机制与 MoE(混合专家)架构,打造了一个高效、多任务的文本嵌入解决方案。

核心原理方面,有几点值得重点说明:

  • 双塔训练策略:查询(query)和文档(document)分别通过两个独立的塔进行编码,使语义匹配更高效、更灵活。
  • 对比学习:先利用超大规模数据进行弱监督对比训练,再叠加高质量数据的监督训练,有效提升模型的泛化能力与鲁棒性。
  • 多粒度融合:训练过程中生成多个 checkpoint,将这些 checkpoint 的参数差异视为“任务向量”,在高维空间中寻找最优融合路径,从而进一步推高模型性能。

核心优势体现在以下几个方面:

  • 功能多样:在 MTEB 多语言排行榜上,8B 版本的嵌入模型夺得榜首(截至2025年6月5日,得分70.58),重排序模型在各类文本检索场景中同样表现优异。
  • 灵活性:模型尺寸从0.6B到8B全覆盖,你可以根据效率与效果需求灵活选择。嵌入与重排序两大模块可无缝搭配使用,且均支持用户自定义指令,以增强特定任务或语言的性能。
  • 多语言支持:依托 Qwen3 的多语言底座,该系列支持超过100种语言,包括多种编程语言,跨语言与代码检索能力扎实可靠。
  • 成本优化:MoE 架构使得模型仅需激活一小部分参数即可发挥强大性能,训练与部署成本相比同性能模型显著降低。此外,Qwen3-Embedding 支持中间维度裁剪的 MR Loss 训练策略——在训练时对32、64、128等多个中间维度进行联合训练,实际应用时可根据需求选择更低的输出维度,从而大幅降低存储与计算开销,而效果几乎不受影响。

2. 应用场景

Qwen3-Embedding 的语义理解与泛化能力使其应用范围极为广泛。具体可胜任的任务,可参考以下逻辑梳理:

(此处可插入原表,原文未提供具体表格内容,按结构保留描述)

3. Qwen3-Embedding 系列模型列表

以下列出各尺寸模型的基本信息(参考下方表格)。需注意两点:MRL 支持表示嵌入模型是否允许自定义最终嵌入维度;指令感知表示模型是否可根据不同任务定制输入指令。从评估数据来看,使用指令通常能带来1%~5%的效果提升,建议为具体场景创建专门的指令。在多语言场景下,推荐使用英语编写指令,因为训练数据中的指令绝大部分为英文。

4. 资源准备及部署要求

在开始部署之前,请先确认环境配置:

  • 框架版本:transformers >= 4.51.0vllm >= 0.8.5,版本不匹配会报 KeyError: 'qwen3'
  • 资源要求:A10 24G * 1 即可满足。

二、Qwen3-Embedding on PAI

1. 模型部署:如何在 PAI 上部署 Qwen3-Embedding

操作步骤非常直观:进入 PAI 控制台 → 快速开始 → Model Gallery → 搜索 Qwen3-Embedding → 选择你需要的参数规模(例如4B)→ 点击部署。以下为截图演示。

点击部署后,你可以在 PAI 控制台 → 模型部署 → 模型在线服务(EAS)中查看正在创建的服务,通常需要几分钟到十几分钟。点击服务名称可进入概览界面,查看容器状态与日志。

部署成功后,在 EAS 列表中即可看到运行中的服务。点击名称可查看基本信息、资源信息、环境信息、服务功能配置及接入信息等。

2. 模型推理:如何调用 Qwen3-Embedding

获取调用信息:进入 PAI 控制台 → 模型部署 → EAS → 找到服务,点击调用信息。

在线调试: 调试时需注意,PAI-EAS 的在线调试服务默认提供的 URL 会返回 {"detail":"Not Found"},需要在 URL 后手动添加 v1/embeddings 才能正常调用。以下是一个 Body 示例:

{
  "input": [
    "It 's a lovely film with lovely performances.",
    "A warm , funny , engaging film."
  ],
  "model": "Qwen3-Embedding-4B"
}

Python 调用: 编写一个 Python 脚本,url 和 token 从 EAS 服务的调用信息中获取。

import requests

url = '修改为您自己的服务地址...v1/embeddings'
token = '修改为您自己的token'
request_body = {
    "input": [
        "It 's a lovely film with lovely performances.",
        "A warm , funny , engaging film."
    ],
    "model": "Qwen3-Embedding-4B"
}

headers = {"Authorization": token}
resp = requests.post(url=url, headers=headers, json=request_body)

print(resp.content.decode())

保存为 emb.py 并执行:

vim emb.py
python3.8 emb.py

3. 模型微调:定制你的专属 Embedding 模型

进入 PAI 控制台 → 快速开始 → Model Gallery → 搜索 Qwen3-Embedding → 选择规模(如4B)→ 点击训练。你可以使用默认数据集,也可以上传自己的数据。训练完成后,模型将输出到你配置的路径。

点击训练后,在 PAI 控制台 → 模型开发与训练 → 分布式训练(DLC)中可查看训练任务,等待时间取决于数据集大小与模型规模。点击任务名称可查看状态或日志。

训练完成后,日志中会显示最终的 checkpoint-1705(SFT 后的权重)。之后你可以直接部署或继续训练:在任务管理中找到该训练任务,点击右上角的部署或再训练按钮即可。

4. 微调后的模型部署

部署微调后的模型时,需要在服务配置的 JSON 编辑中修改 path 字段,指向你微调完成后的 checkpoint 目录地址。部署成功后,推理调用方法与前面第2小节相同。

5. 应用场景:电影评论搜索

结合上述部署的模型,生成50条电影评论的向量,然后利用余弦相似度进行搜索。以下是一个完整脚本,关键点在于配置信息中的 url 和 token 需替换为你自己的,并且注意 URL 后要添加 v1/embeddings

import requests
import numpy as np
import json
from sklearn.metrics.pairwise import cosine_similarity

# ========== 1. 配置信息 ==========
url = '请输入您自己的服务的 URL'
token = '请输入您自己的服务的 Token'

# ========== 2. 已有电影评论列表(你可以替换为你自己的数据)==========
reviews = [
    "The cinematography was breathtaking and the story deeply moving.",
    "A dull plot with no character development, very disappointing.",
    # ... 完整列表见原文
]

# ========== 3. 获取向量表示(若已有 embeddings.json 可跳过)==========
def get_embedding(text):
    headers = {"Authorization": token}
    payload = {
        "input": [text],
        "model": "Qwen3-Embedding-4B"
    }
    response = requests.post(url, headers=headers, json=payload)
    return response.json()['data'][0]['embedding']

def generate_embeddings(reviews, filename='embeddings.json'):
    embeddings = []
    for i, review in enumerate(reviews):
        print(f"Generating embedding for review {i+1}/{len(reviews)}")
        emb = get_embedding(review)
        embeddings.append(emb)
    with open(filename, 'w') as f:
        json.dump({'reviews': reviews, 'embeddings': embeddings}, f)
    print(f"Embeddings sa ved to {filename}")

# ========== 4. 加载向量 ==========
def load_embeddings(filename='embeddings.json'):
    with open(filename, 'r') as f:
        data = json.load(f)
    return data['reviews'], np.array(data['embeddings'])

# ========== 5. 查询最相似的评论 ==========
def find_similar_reviews(query, reviews_list, embeddings_matrix, top_k=3):
    query_emb = np.array(get_embedding(query)).reshape(1, -1)
    similarities = cosine_similarity(query_emb, embeddings_matrix)[0]
    indices = np.argsort(similarities)[::-1][:top_k]
    results = [(reviews_list[i], similarities[i]) for i in indices]
    return results

# ========== 6. 主程序入口 ==========
if __name__ == '__main__':
    # 第一次运行时取消注释,生成并保存向量
    # generate_embeddings(reviews)

    reviews_list, embeddings_matrix = load_embeddings()
    user_query = input("请输入你想查找相似评论的句子:")
    similar_reviews = find_similar_reviews(user_query, reviews_list, embeddings_matrix)
    print("\n最相似的评论如下:")
    for i, (review, score) in enumerate(similar_reviews):
        print(f"{i+1}. [相似度: {score:.4f}] {review}")

6. 注意事项

  • 调用时,URL 后面必须补上 v1/embeddings,否则会返回 404 错误。
  • 部署微调后的模型时,请确保原服务配置中的 path 字段已修改为 checkpoint 目录地址。

三、Qwen3-Embedding on 百炼

在百炼平台中,向量模型暂未开放体验功能,因此直接通过 API 进行调用。

1. 通用文本向量调用

DashScope 方式:

curl --location 'https://dashscope.aliyuncs.com.../text-embedding' \
--header "Authorization: Bearer $DASHSCOPE_API_KEY" \
--header 'Content-Type: application/json' \
--data '{
    "model": "text-embedding-v4",
    "input": {
        "texts": ["买的东西质量真的好不枉我等了这么久啊,喜欢,以后还来这里买"]
    },
    "parameters": {
      "dimension": 1024
    }
}'

OpenAI 兼容方式:

curl --location 'https://dashscope.aliyuncs.com/...embeddings' \
--header "Authorization: Bearer $DASHSCOPE_API_KEY" \
--header 'Content-Type: application/json' \
--data '{
    "model": "text-embedding-v4",
    "input": "买的东西质量真的好不枉我等了这么久啊,喜欢,以后还来这里买",
    "dimension": "1024",
    "encoding_format": "float"
}'

2. 应用场景:精准推荐

核心思路:

  • 利用向量相似度(如余弦相似度)筛选出最相关的商品。
  • 将筛选后的商品描述输入 Qwen 模型,生成自然语言的推荐理由。
  • 最终输出融合了向量匹配与语义理解能力,推荐结果更精准、更生动。

以下是一个完整的代码示例:

import dashscope
from http import HTTPStatus
import numpy as np
from sklearn.metrics.pairwise import cosine_similarity

dashscope.api_key = "sk-xxxx"

product_descriptions = [
    "棉质宽松衬衫,适合春季通勤,透气舒适,简约百搭",
    "高腰牛仔裤,修身剪裁,适合日常穿搭,耐磨耐脏",
    # ... 完整列表见原文
]

user_query = "设计简约的通勤服装,透气舒适"
inputs = product_descriptions + [user_query]

DASHSCOPE_MAX_BATCH_SIZE = 10
embeddings = []
for i in range(0, len(inputs), DASHSCOPE_MAX_BATCH_SIZE):
    batch = inputs[i:i + DASHSCOPE_MAX_BATCH_SIZE]
    resp = dashscope.TextEmbedding.call(
        model="text-embedding-v4",
        input=batch,
        dimension=1024
    )
    if resp.status_code == HTTPStatus.OK:
        for emb in resp.output["embeddings"]:
            embeddings.append(emb["embedding"])
    else:
        print(f"Error: {resp.status_code}, {resp.message}")
        exit(1)

if not embeddings:
    print("Error: No embeddings generated. Aborting.")
    exit(1)

# 保存向量和文本到文件
with open("embeddings_output.txt", "w", encoding="utf-8") as f:
    f.write(f"# 向量维度: 1024\n")
    f.write(f"# 文本数量: {len(inputs)}\n")
    f.write("# 格式:  |  | \n\n")
    for idx, (text, vector) in enumerate(zip(inputs, embeddings)):
        vector_str = ",".join(map(str, vector))
        f.write(f"{idx} | {text} | {vector_str}\n")

query_vector = np.array([embeddings[-1]])
product_vectors = np.array(embeddings[:-1])
similarities = cosine_similarity(query_vector, product_vectors).flatten()

with open("similarity_results.txt", "w", encoding="utf-8") as f:
    f.write(f"# 用户查询: {user_query}\n")
    f.write(f"# 相似度计算结果:\n")
    for idx, (desc, score) in enumerate(zip(product_descriptions, similarities)):
        f.write(f"{idx} | {desc} | {score:.6f}\n")

product_ranking = list(zip(product_descriptions, similarities))
product_ranking.sort(key=lambda x: x[1], reverse=True)
print("=== 推荐结果 ===")
for desc, score in product_ranking:
    print(f"商品描述: {desc} | 相似度: {score:.4f}")

从相似度结果来看,商品1最符合查询条件。之后可利用 Qwen 模型为每个商品生成推荐理由:

system_prompt = "你是一位专业的商品推荐专家..."
user_prompt = f"""
用户查询:{user_query}

匹配商品描述:
1. {matched_products[0]}
2. {matched_products[1]}
3. {matched_products[2]}

请为每个商品生成推荐理由。
"""
response = dashscope.Generation.call(
    model="qwen-plus",
    prompt=f"{system_prompt}\n\n{user_prompt}",
)

四、LLM vs 轻量 Embedding 对比实验

声明: 以下测试结果仅作为类似场景的参考,实际场景需结合自身链路进行具体测试。

实验场景: 电影评论搜索。

测试环境:

  • 完整 LLM:Qwen3-32B(生成 Embedding),硬件 H20 96G * 1。
  • 轻量 Embedding:Qwen3-Embedding-4B,硬件 A10 24G * 1。
  • ECS(可选):需与部署模型位于同一地域、同一 VPC。

模型部署 参照第二章第1节在 PAI 上部署 Qwen3-32B。

对比实验

实验方案:

  • 基础性能测试:选取20条真实电影评论,对比 Qwen3-Embedding-4B 与 Qwen3-32B 的表现。
  • 成本估算:基于百炼官网单价或 PAI 卡资源进行估算。

测试维度: 平均响应时间、批处理耗时(3条)、并发平均延迟、长文本响应时间(约1000字)、并发请求延迟(5个)、Token 平均消耗、语义搜索测试、日均调用成本(1万次)。

样本及单价:

  • 20条电影评论样本(见实验脚本)。
  • 百炼平台单价:Qwen3-Embedding 0.0005元/千 Tokens;Qwen-32B 输入 0.002元/千 Tokens,非思考模式输出 0.008元/千 Tokens,思考模式输出 0.02元/千 Tokens。

实验脚本(完整代码见原文,此处保留关键结构)

实验结果分析:

从性能数据来看,轻量级 Embedding 在延迟与成本方面优势显著:平均响应时间不到0.1秒,日调用成本仅为 LLM 的1/5到1/4。在语义理解方面,Embedding 模型输出的向量可直接用于相似度计算,能够正确识别高相关性影评,表现稳定可靠。

实验总结: Qwen3-Embedding 系列在低延迟(平均 < 0.1s)与低成本(成本仅为 LLM 的1/5-1/4)方面表现优异。如果搜索链路上对重排要求不高,可以跳过 LLM 直接返回初筛结果,整体延迟可控制在0.1秒以内,成本降低约70%。当然,实际场景还需结合 Embedding 与 LLM 的请求量、使用的卡资源以及链路中的其他环节进行更精细的估算。

一些常见的工程链路优化技巧

  • 缓存高频 Embedding:对于查询词、固定模板、高频用户输入,可使用 Redis 缓存 Embedding 结果,并定期更新(如每天),减少实时计算,提升响应速度。
  • 自动降级:当服务超载、请求排队积压或 LLM 响应超时时,自动降级到 Embedding + 分类器的方案,避免服务不可用,同时有效控制成本波动。

五、总结

Qwen3-Embedding 是一款功能强大且灵活高效的文本嵌入模型,在语义理解与多场景适配方面表现优异。无论是电商推荐、内容理解,还是企业级语义搜索,你都可以借助它快速构建高效的 AI 应用。通过阿里云 PAI 平台的一键部署、微调与推理能力,或通过百炼平台的 API 调用,开发者能够轻松将其集成到现有系统中,提升产品的智能化水平。未来,随着模型的持续迭代,Qwen3-Embedding 有望成为语义理解领域的关键基础设施之一。

来源:https://www.53ai.com/news/LargeLanguageModel/2025080518546.html

相关热点

继续查看同栏目近期热点。

延伸阅读

补充最近整理过的热点入口。