本文档记录 tabularisai/multilingual-sentiment-analysis 在华为昇腾 Ascend910 NPU 环境的快速部署与验证结果。
tabularisai/multilingual-sentiment-analysis 是一个基于 DistilBERT 的多语言情感分析模型,支持 5 类情感分类:
相关获取地址:
| 组件 | 版本 |
|---|---|
NPU | Ascend910 |
PyTorch | 2.9.0 |
torch-npu | 2.9.0.post1+gitee7ba04 |
transformers | 适配版本 |
Python | 3.11.14 |
~/tabularisai/multilingual-sentiment-analysis/model/tabularisai/multilingual-sentiment-analysis由于该模型为序列分类模型(非文本生成模型),直接使用 transformers 库进行推理:
import torch
import torch_npu
from transformers import AutoModelForSequenceClassification, AutoTokenizer
model_path = "tabularisai/multilingual-sentiment-analysis"
tokenizer = AutoTokenizer.from_pretrained(model_path)
model = AutoModelForSequenceClassification.from_pretrained(model_path, torch_dtype=torch.float32)
model = model.to("npu:0")
model.eval()
texts = ["I love this product!", "This is terrible."]
inputs = tokenizer(texts, return_tensors="pt", truncation=True, padding=True, max_length=512)
inputs = {k: v.to("npu:0") for k, v in inputs.items()}
with torch.no_grad():
outputs = model(**inputs)
predictions = torch.argmax(outputs.logits, dim=-1)
id2label = model.config.id2label
for i, text in enumerate(texts):
label = id2label.get(int(predictions[i])) or id2label.get(str(int(predictions[i])))
print(f"Text: {text} -> Sentiment: {label}")直接运行推理脚本验证:
cd ~/tabularisai/multilingual-sentiment-analysis
python3 inference.py预期输出示例:
Text: This product is absolutely amazing and wonderful!
Predicted sentiment: Very Positive
Logits: [[-1.577, -1.576, -0.959, 0.658, 2.321]]测试条件:10 条测试样本,单次推理,max_length=512。
| 指标 | CPU | NPU (Ascend910) |
|---|---|---|
| 平均推理时间 | 55.65 ms | 8.28 ms |
| 加速比 | 1x | 6.72x |
float32 精度,可直接在 NPU 上运行,无需精度转换model.to("npu:0")NPU 推理验证:
| 指标 | 数值 |
|---|---|
| 测试用例数 | 10 |
| 精度结论 | --- |
精度评测源代码和日志详见 eval/ 目录。