本文档记录 iic/nlp_structbert_sentiment-classification_chinese-ecommerce-base 中文电商情感分类模型在华为昇腾 Ascend910 NPU 上的适配与验证结果。
该模型是基于 StructBERT 架构的中文电商评论情感二分类模型,支持对中文电商文本进行正面/负面情感分类。
相关获取地址:
| 组件 | 版本 |
|---|---|
| NPU | Ascend910 |
| PyTorch | 2.9.0 |
| torch_npu | 2.9.0.post1+gitee7ba04 |
| modelscope | 1.22.3 |
| Python | 3.11.14 |
2 逻辑卡(Ascend910)由于该模型为 BERT 架构的情感分类模型(非生成式模型),无法通过 vLLM 部署。推理方式为直接使用 ModelScope SDK 加载模型并在 NPU 上运行。
from modelscope.models import Model
from modelscope.preprocessors import Preprocessor
import torch
model_path = "/path/to/model"
model = Model.from_pretrained(model_path)
model = model.npu()
model.eval()
preprocessor = Preprocessor.from_pretrained(model_path)
inputs = preprocessor("输入文本")
inputs_npu = {k: v.npu() if hasattr(v, 'npu') else v for k, v in inputs.items()}
with torch.no_grad():
outputs = model(**inputs_npu)
logits = outputs.logits
predicted_id = torch.argmax(logits, dim=-1).item()
id_to_label = {0: "负面", 1: "正面"}
print(f"预测结果: {id_to_label[predicted_id]}")基础推理验证(NPU):
python3 inference.py验证结果:
npu:0 设备测试条件:50 轮推理,5 条测试样本循环,Ascend910 NPU。
| 指标 | 数值 |
|---|---|
| 总推理次数 | 50 |
| 总耗时 | 0.408 s |
| 平均单次推理时间 | 0.008 s |
| 吞吐量 | 122.46 次/秒 |
测试条件:10 条中文电商评论样本(5 正面 + 5 负面),与人工标注进行对比。
| 指标 | 数值 |
|---|---|
| 测试样本数 | 10 |
| 正确数 | 10 |
| 准确率 | 100.00% |
| 平均置信度 | 99.96%+ |
.npu()torch.no_grad() 以节省显存NPU vs CPU 精度对比(CPU 为基线,NPU 为验证目标):
| 指标 | 数值 |
|---|---|
| 测试用例数 | 6 |
| 最大 logits 差异 | 0.00096549 |
| 预测一致性 | 6/6 (100%) |
| 精度要求 | NPU vs CPU 最大 logits 误差 < 1% |
| 精度结论 | 通过 (差异 远小于 1%) |
精度评测源代码和日志详见 eval/ 目录。