一、Qwen3-Embedding 概述
Qwen3-Embedding 是阿里云通义千问团队推出的专用文本嵌入模型,基于 Qwen 系列大模型开发,目标是生成高质量、可用于语义检索、RAG(检索增强生成)和相似度匹配的向量表示。
主要版本模型
|
|
|
|
|
---|---|---|---|---|
Qwen/Qwen-Embedding |
|
|
|
|
Qwen/Qwen-Embedding-Chinese |
|
|
|
|
Qwen/Qwen-Embedding-Mini |
|
|
|
|
二、模型优势与特点
✅ 优点
-
多语言支持:支持中英文,主打中文语义表现。
-
指令微调:借助 Qwen3 指令微调框架,对用户问题与文档对建模更有效。
-
语义一致性强:在 OpenCompass、MTEB(Multilingual Text Embedding Benchmark)等评测中表现优秀。
-
开源可商用:模型权重完全开源,适合落地应用。
-
适配向量数据库:输出向量兼容 FAISS、Milvus、Weaviate 等数据库。
-
支持长文本:可处理较长输入(上下文窗口 4K+ token,取决于具体版本)。
❌ 缺点
-
仍较大:标准版维度为 1024,模型体积较大(不适合端侧轻量化部署)。
-
推理速度慢于 SOTA 小模型:如 BGE-small、MiniLM 等轻量 embedding 模型。
-
英语语义表现略逊:相对英文专用 embedding 模型如
E5
,GTE
表现略低。 -
GPU资源要求高:标准版在部署时至少需要 6GB 显存。
三、性能参数与评测指标
✅ 维度与参数量
|
|
|
|
|
---|---|---|---|---|
Qwen-Embedding |
|
|
|
|
Qwen-Embedding-Mini |
|
|
|
|
📊 性能评测(来自 MTEB 中文任务子集)
|
|
|
|
---|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
四、部署与使用详细教程
✅ 1. Hugging Face 加载方式(Python)
pip install -U transformers accelerate sentence-transformers
from sentence_transformers import SentenceTransformer
model = SentenceTransformer("Qwen/Qwen-Embedding")
texts = ["通义千问是一个强大的大语言模型", "ChatGPT 是 AI 聊天助手"]
embeddings = model.encode(texts)
print(embeddings.shape) # 输出为 (2, 1024)
或使用 transformers
原生方式:
from transformers import AutoTokenizer, AutoModel
import torch
tokenizer = AutoTokenizer.from_pretrained("Qwen/Qwen-Embedding")
model = AutoModel.from_pretrained("Qwen/Qwen-Embedding")
inputs = tokenizer(["Qwen3是阿里推出的模型", "ChatGPT是OpenAI推出的模型"], padding=True, return_tensors="pt")
with torch.no_grad():
outputs = model(**inputs)
embeddings = outputs.last_hidden_state.mean(dim=1)
✅ 2. 本地部署(推理部署)
使用 Hugging Face 模型缓存或下载权重
git lfs install
git clone https://huggingface.co/Qwen/Qwen-Embedding
使用 FastAPI 或 Gradio 封装接口
from fastapi import FastAPI
from pydantic import BaseModel
from sentence_transformers import SentenceTransformer
model = SentenceTransformer("Qwen/Qwen-Embedding")
app = FastAPI()
class InputText(BaseModel):
text: str
def embed_text(data: InputText):
embedding = model.encode(data.text)
return {"embedding": embedding.tolist()}
✅ 3. 向量数据库集成示例(以 FAISS 为例)
import faiss
import numpy as np
docs = ["千问是中文大模型", "GPT是英文大模型"]
doc_embeds = model.encode(docs)
dim = doc_embeds.shape[1]
index = faiss.IndexFlatL2(dim)
index.add(np.array(doc_embeds))
query = "中文语义模型"
query_embed = model.encode([query])
distances, indices = index.search(np.array(query_embed), k=1)
print(indices) # 返回最近的文档索引
五、适用场景推荐
|
|
---|---|
|
|
|
|
|
|
|
|
|
|
六、与其他模型对比分析
|
|
|
|
|
|
|
---|---|---|---|---|---|---|
Qwen-Embedding |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
七、总结
Qwen3-Embedding 是目前中文语义向量生成的强力选手,在检索增强生成(RAG)、多轮问答匹配等任务中表现优异,尤其在中英文混合场景中有显著优势。适合部署在企业级语义搜索平台,也可用于轻量文本推荐系统。
如果你需要 RAG系统中文嵌入模型首选,强烈建议优先考虑 Qwen3-Embedding。