jiuan-1/MiniLM2-nGPT-0.2b-Embedding
模型介绍文件和版本Pull Requests讨论分析

MiniLM2-nGPT-0.2b-Embedding

1. 简介

本文档记录 KyvYang/MiniLM2-nGPT-0.2b-Embedding 在昇腾 NPU(Ascend910)环境的快速部署与验证结果。

NGPT 文本向量模型,基于 HuggingFace transformers 框架,支持文本特征提取与语义匹配。

相关获取地址:

  • 权重下载地址(ModelScope):https://modelscope.cn/models/KyvYang/MiniLM2-nGPT-0.2b-Embedding
  • 权重下载地址(HuggingFace):https://huggingface.co/KyvYang/MiniLM2-nGPT-0.2b-Embedding

参考文档:

  • https://huggingface.co/docs/transformers/en/model_doc/auto#transformers.AutoModel

2. 验证环境

组件版本
torch2.5.1
torch_npu2.5.1
transformers>=4.48.0
CANN8.5.RC1
  • NPU:Ascend910(单卡)
  • 隐藏层维度:1024
  • 最大序列长度:1024
  • 推理框架:PyTorch + transformers

3. 快速部署

3.1 环境准备

pip install transformers torch torchvision sentence-transformers

3.2 推理代码

import torch
from transformers import AutoModel, AutoTokenizer

device = torch.device("npu:0" if torch.npu.is_available() else "cpu")

tokenizer = AutoTokenizer.from_pretrained("KyvYang/MiniLM2-nGPT-0.2b-Embedding")
model = AutoModel.from_pretrained("KyvYang/MiniLM2-nGPT-0.2b-Embedding")
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}")

4. Smoke 验证

python3 inference.py

验证结果:

  • 模型成功加载到 npu:0
  • 输出句向量维度正确
  • 推理过程无报错

5. 性能参考

测试条件:FP32 / batch=8 / warmup=5 / timed=100 runs,Ascend910 单卡。

指标数值
平均推理时间?
QPS(每秒查询)?
测试次数100

6. 精度评测

NPU 与 CPU 输出对比,使用 8 条测试文本,比较 embedding 余弦相似度。

指标数值
平均余弦相似度?
最低余弦相似度?
最大向量差异?
平均向量差异?
结论PASS

7. 注意事项

  • 文本向量模型输出是浮点向量,精度验证使用余弦相似度而非 Top-1 分类一致率
  • 部分模型使用 mean pooling 获取句向量,部分使用 pooler_output
  • NPU 推理结果与 CPU 的 embedding 余弦相似度通常 > 0.999
  • 最大序列长度因模型而异(128~512),超出长度会被截断
下载使用量0