qq_34566203/Minej--bert-base-personality-ascend
模型介绍文件和版本Pull Requests讨论分析
下载使用量0

BERT Personality Detection on Ascend NPU

1. 简介

本文档记录 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 传统)

本仓库提供:

  • inference.py:NPU 推理脚本,支持单条/批量文本人格预测
  • eval.py:精度与性能评测脚本
  • log.txt:评测运行日志

相关获取地址:

  • 权重下载地址(HuggingFace):https://huggingface.co/Minej/bert-base-personality
  • 镜像加速:https://hf-mirror.com

2. 验证环境

组件版本
torch2.8.0
torch_npu2.8.0.post4
transformers4.57.6
  • NPU:Ascend 910B3,1 逻辑卡
  • 模型架构:BertForSequenceClassification
  • 隐藏层维度:768
  • 注意力头数:12
  • 隐藏层数:12
  • 参数量:约 110M
  • 词汇表大小:30,522
  • 输出维度:5(sigmoid 多标签输出)

3. 推理启动

启动前可先检查 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.txt

CPU 推理(参考基准):

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
      }
    }
  ]
}

4. Smoke 验证

python inference.py --text "I enjoy learning new things and exploring ideas."

预期输出:

  • 返回 JSON 格式结果
  • 包含 5 个人格维度的得分(0~1 之间)
  • 推理时间应在毫秒级别
  • 外向文本应得到较高的 Extroversion 和 Openness 分数

验证结果:

  • 推理在 NPU 上正常完成
  • 各维度得分在合理范围内
  • 输出 JSON 格式正确

5. 性能参考

测试条件:8 条文本,batch_size=32,max_length=512。

指标CPUNPU
avg_time0.2950 s0.0194 s
throughput27.11 texts/s412.69 texts/s
speedup-15.21x

6. 精度评测

精度评测采用各人格维度的逐维绝对误差作为指标。

指标数值
测试样本数8
最大绝对误差4.6039e-04
平均绝对误差1.5300e-04
最大相对误差0.1450%

各维度最大误差:

特质最大误差
Extroversion4.4800e-04
Neuroticism1.2600e-04
Agreeableness3.5000e-04
Conscientiousness4.6000e-04
Openness3.0400e-04

| 精度要求(误差 < 1%) | 通过 |

结论:NPU 与 CPU 输出的各人格维度得分误差均在 0.05% 以内,远低于 1% 阈值,精度通过验证。

7. 注意事项

  1. 多标签输出:模型使用 sigmoid 激活而非 softmax,每个维度独立输出 0~1 之间的得分,所有维度之和不为 1。
  2. OCEAN 模型:五大人格特质是心理学中广泛应用的人格模型,五个维度相互独立。
  3. 语言限制:模型基于 BERT-base-uncased,主要针对英语文本,对其他语言效果有限。
  4. 输入长度:最大序列长度 512 token,超出部分会被截断。
  5. 解释建议:得分 > 0.7 表示在该特质上倾向明显,< 0.3 表示相反倾向,0.3~0.7 为中等水平。