本文档记录 Minej/bert-base-personality 在 Ascend 910B3 NPU 环境下的适配与验证结果。
该模型基于 BERT-base-uncased 微调,用于五大人格特质(Big Five / OCEAN 模型)预测。模型通过分析输入文本,输出 5 个人格维度的连续得分(0~1),每个维度独立使用 sigmoid 激活:
Extroversion:外向性(活跃、社交、热情 vs 内向、安静)Neuroticism:神经质(敏感、焦虑 vs 情绪稳定)Agreeableness:宜人性(合作、信任、利他 vs 竞争性)Conscientiousness:尽责性(自律、有条理 vs 随意)Openness:开放性(好奇心、创造力 vs 传统)本仓库提供:
相关获取地址:
| 组件 | 版本 |
|---|---|
torch | 2.8.0 |
torch_npu | 2.8.0.post4 |
transformers | 4.57.6 |
Ascend 910B3,1 逻辑卡BertForSequenceClassification7681212110M30,5225(sigmoid 多标签输出)启动前可先检查 NPU 可用性:
python3 -c "import torch; print(f'NPU available: {torch.npu.is_available()}')"环境准备:
pip install torch torch_npu transformers
export ASCEND_RT_VISIBLE_DEVICES=0已验证通过的推理命令:
单条文本推理:
python inference.py --text "I love meeting new people and trying new things!"批量推理:
python inference.py --input-file texts.txtCPU 推理(参考基准):
python inference.py --device cpu --text "I enjoy learning new things."输出格式:
{
"model": "Minej--bert-base-personality",
"device": "npu:0",
"num_texts": 1,
"inference_time_seconds": 0.015,
"results": [
{
"text": "I love meeting new people!",
"traits": {
"Extroversion": 0.82,
"Neuroticism": 0.35,
"Agreeableness": 0.78,
"Conscientiousness": 0.65,
"Openness": 0.71
}
}
]
}python inference.py --text "I enjoy learning new things and exploring ideas."预期输出:
Extroversion 和 Openness 分数验证结果:
测试条件:8 条文本,batch_size=32,max_length=512。
| 指标 | CPU | NPU |
|---|---|---|
avg_time | 0.2950 s | 0.0194 s |
throughput | 27.11 texts/s | 412.69 texts/s |
speedup | - | 15.21x |
精度评测采用各人格维度的逐维绝对误差作为指标。
| 指标 | 数值 |
|---|---|
| 测试样本数 | 8 |
| 最大绝对误差 | 4.6039e-04 |
| 平均绝对误差 | 1.5300e-04 |
| 最大相对误差 | 0.1450% |
各维度最大误差:
| 特质 | 最大误差 |
|---|---|
Extroversion | 4.4800e-04 |
Neuroticism | 1.2600e-04 |
Agreeableness | 3.5000e-04 |
Conscientiousness | 4.6000e-04 |
Openness | 3.0400e-04 |
| 精度要求(误差 < 1%) | 通过 |
结论:NPU 与 CPU 输出的各人格维度得分误差均在 0.05% 以内,远低于 1% 阈值,精度通过验证。