文本分类模型 (Text Classification) - 昇腾 NPU 适配
模型介绍
基于 BERT 架构的文本分类模型,支持多种 NLP 分类任务。本仓库提供该模型在华为昇腾 Ascend910 NPU 上的完整适配方案,包含推理脚本、精度评测和性能评测。
模型架构
| 属性 | 值 |
|---|
| 架构类型 | BertForSequenceClassification |
| 基础模型 | BERT-base (Chinese) |
| 层数 | 12 |
| 隐藏层维度 | 768 |
| 注意力头 | 12 |
环境要求
- Python 3.11+
- PyTorch 2.9.0 + torch_npu
- transformers
- 昇腾 NPU (Atlas 800 A2 / Ascend910)
快速使用
pip install torch torch_npu transformers
python3 inference.py
验证结果
- 精度: 3/3 测试用例正确 (100%)
- 推理延迟: 单次推理约 6.85ms (Ascend910, batch=1)
- 最大吞吐: ~1038.95 samples/s
文件说明
| 文件 | 说明 |
|---|
| inference.py | 昇腾 NPU 推理脚本 |
| accuracy_run.py | 精度评测源代码 |
| accuracy_run_perf.py | 性能评测源代码 |
| accuracy_run.log | 精度评测运行日志 |
| accuracy_run_perf.log | 性能评测运行日志 |
| accuracy_results.json | 精度评测结果 |
| perf_results.json | 性能评测结果 |
| validation_report.json | 完整验证报告 |
| SKILL.md | 模型专属复现技能文档 |
| finetune.py | 微调训练脚本 |
| pretrain.py | 预训练脚本 |
| server.py | 模型服务脚本 |
Ascend NPU 精度评测
NPU 推理验证(电影评论三分类:差评/好评/其他):
| 指标 | 数值 |
|---|
| 测试用例数 | 3 |
| 预测正确 | 3/3 (100%) |
| 精度结论 | ✅ 通过 — 3 个用例全部正确分类 |
逐用例分析:
| 评论内容 | 预期 | 预测 | 置信度 | 评价 |
|---|
| 奥创弱爆了弱爆了弱爆了啊!!!!!! | 差评 | 差评 | 97.9% | ✅ 正确 |
| 我就问一句:老万是被炸死的老万造吗? | 其他 | 其他 | 92.3% | ✅ 正确 |
| 我。。。居然。。。没看懂。。。只觉得三个光束打奥创好燃,以及快银也很顺眼而且口音好喜感 | 好评 | 好评 | 82.9% | ✅ 正确 |
分析: 3 个电影评论用例全部正确分类。差评(强烈负面语气)、其他(疑问句)和好评(正面评价"好燃""顺眼")均准确识别。推理置信度较高(均 > 80%)。
输出对比