本文档记录 vec-ai/lychee-embed 在昇腾 NPU(Ascend910)环境的快速部署与验证结果。
Qwen2Model 文本向量模型,基于 HuggingFace transformers 框架,支持文本特征提取与语义匹配。
相关获取地址:
参考文档:
| 组件 | 版本 |
|---|---|
torch | 2.5.1 |
torch_npu | 2.5.1 |
transformers | >=4.48.0 |
CANN | 8.5.RC1 |
153632768PyTorch + transformerspip install transformers torch torchvision sentence-transformersimport torch
from transformers import AutoModel, AutoTokenizer
device = torch.device("npu:0" if torch.npu.is_available() else "cpu")
tokenizer = AutoTokenizer.from_pretrained("vec-ai/lychee-embed")
model = AutoModel.from_pretrained("vec-ai/lychee-embed")
model = model.to(device).eval()
sentences = ["今天天气怎么样", "如何学习编程"]
inputs = tokenizer(sentences, padding=True, truncation=True, return_tensors="pt")
inputs = {k: v.to(device) for k, v in inputs.items()}
with torch.no_grad():
outputs = model(**inputs)
embeddings = outputs.last_hidden_state.mean(dim=1)
print(f"Embedding shape: {embeddings.shape}")python3 inference.py验证结果:
npu:0测试条件:FP32 / batch=8 / warmup=5 / timed=100 runs,Ascend910 单卡。
| 指标 | 数值 |
|---|---|
| 平均推理时间 | 33.59 ms |
| QPS(每秒查询) | 238.19 |
| 测试次数 | 100 |
NPU 与 CPU 输出对比,使用 8 条测试文本,比较 embedding 余弦相似度。
| 指标 | 数值 |
|---|---|
| 平均余弦相似度 | 1.0 |
| 最低余弦相似度 | 1.0 |
| 最大向量差异 | 2e-06 |
| 平均向量差异 | 0.0 |
| 结论 | PASS |
pooler_output