本文档记录 iic/nlp_structbert_qd_spoken_chinese-base 在昇腾 Ascend NPU 环境的适配与验证结果。
该模型是基于 StructBERT 的中文口语问句识别模型,用于判断输入句子是否为问句。模型参数量约 110M,支持中文输入。
相关获取地址:
| 组件 | 版本 |
|---|---|
| NPU | Ascend910 |
| PyTorch | 2.9.0+cpu |
| torch_npu | 2.9.0.post1+gitee7ba04 |
| transformers | 4.57.6 |
| Python | 3.11.14 |
该模型为 BERT-based 文本分类模型,不支持 vLLM serve,直接使用 transformers 进行推理。
import torch
import torch_npu
from transformers import AutoModelForSequenceClassification, AutoTokenizer
device = "npu:0"
model_dir = "<model_path>"
tokenizer = AutoTokenizer.from_pretrained(model_dir)
model = AutoModelForSequenceClassification.from_pretrained(model_dir)
model = model.to(device)
model.eval()
sentence = "今天会议的第一个结论是明天先收集用户的需求吗?"
inputs = tokenizer(sentence, return_tensors="pt", truncation=True, padding=True, max_length=512)
inputs = {k: v.to(device) for k, v in inputs.items()}
with torch.no_grad():
outputs = model(**inputs)
logits = outputs.logits
predicted_class = torch.argmax(logits, dim=-1).item()
label = "问句" if predicted_class == 1 else "非问句"
print(f"预测结果: {label}")使用 10 个测试样本(5 个问句,5 个非问句)进行精度验证。
| 指标 | 数值 |
|---|---|
| 测试样本数 | 10 |
| 正确数 | 10 |
| 准确率 | 100% |
所有测试用例均正确分类,模型的问句识别能力在 NPU 上运行正常。
| 指标 | 数值 |
|---|---|
| 平均推理时间 | 8.23 ms |
| 测试轮次 | 10 |
| 设备 | Ascend910 (npu:0) |