本文档记录 yangjiurong/chinese-sentiment-c3-v1 在华为昇腾 NPU 环境下的适配与验证结果。
chinese-sentiment-c3-v1 是一个基于 hfl/chinese-roberta-wwm-ext 的中文情感分类模型,支持三种情感类别:
negative(负面)neutral(中性)positive(正面)权重获取地址:
| 组件 | 版本 |
|---|---|
NPU | Ascend910 |
CANN | 25.5.2 |
PyTorch | 2.9.0 |
torch_npu | 2.9.0.post1 |
transformers | 4.47.1 |
Python | 3.10 |
模型为 BertForSequenceClassification 架构,直接使用 transformers 库加载并在 NPU 上运行。
import torch
import torch_npu
from transformers import AutoTokenizer, BertForSequenceClassification
device = "npu:0"
tokenizer = AutoTokenizer.from_pretrained(model_path)
model = BertForSequenceClassification.from_pretrained(model_path)
model.to(device)
model.eval()
inputs = tokenizer(text, return_tensors="pt", truncation=True, padding=True, max_length=128)
inputs = {k: v.to(device) for k, v in inputs.items()}
with torch.no_grad():
outputs = model(**inputs)
predicted_class_id = torch.argmax(outputs.logits, dim=-1).item()| 指标 | 数值 |
|---|---|
| 平均延迟 | 6.83 ms |
| 最小延迟 | 6.70 ms |
| 最大延迟 | 7.67 ms |
| 吞吐量 | 146.37 req/s |
| 测试次数 | 30 |
hfl/chinese-roberta-wwm-ext 微调,适用于中文情感分类任务torch_npu 将模型加载到昇腾 NPU 上进行推理torch.no_grad() 上下文管理器NPU vs CPU 精度对比(CPU 为基线,NPU 为验证目标):
| 指标 | 数值 |
|---|---|
| 测试用例数 | 10 |
| 总准确率 | 100.00% |
| 精度要求 | NPU vs CPU 推理结果一致 |
| 精度结论 | 详见 eval/ 目录中的精度报告 |
精度评测源代码和日志详见 eval/ 目录。