本文档记录 nbroad/ESG-BERT ESG(环境、社会、治理)文本分类模型在昇腾 NPU(Ascend 910B3)上的迁移适配、精度评测与性能验证结果。
ESG-BERT 基于 BERT-base(12 层,768 维),在 ESG 领域语料上微调,支持 26 种 ESG 标签的多标签分类(multi-label classification)。涵盖的 ESG 类别包括:Business_Ethics(商业道德)、Data_Security(数据安全)、Climate_Change(气候变化)、Labor_Practices(劳工实践)、Human_Rights(人权)、Corporate_Governance(公司治理)、Supply_Chain(供应链)等。该模型适用于可持续发展报告分析、ESG 评级自动化等企业级应用场景。
相关获取地址:
| 组件 | 版本 |
|---|---|
torch | 2.8.0 |
torch_npu | 2.8.0.post4 |
transformers | 5.8.1 |
CANN | 8.5.1 |
8 × Ascend 910B3conda create -n nbroad--ESG-BERT python=3.11 -y
conda activate nbroad--ESG-BERT
pip install torch==2.8.0 torch_npu==2.8.0.post4 \
-i https://pypi.tuna.tsinghua.edu.cn/simple
pip install transformers numpy \
-i https://pypi.tuna.tsinghua.edu.cn/simplepython inference.py --text "Company reduced carbon emissions by 30%." --device npu编程接口:
from inference import GoEmotionsClassifier
clf = GoEmotionsClassifier(model_path="./nbroad--ESG-BERT", device="npu")
results, probs = clf.predict(["Company invested in renewable energy."], threshold=0.3)python inference.py --text "Company reduced carbon emissions by 30%." --device npu预期输出:超过阈值的 ESG 标签及置信度,无运行时错误。
测试条件:25 条 ESG 相关文本(含多类标签),batch_size=16,NPU 预热 1 轮。
| 指标 | 数值 |
|---|---|
| CPU 吞吐量 | 40.6 texts/s |
| NPU 吞吐量 | 507.0 texts/s |
| CPU/NPU 加速比 | 12.5 × |
分别在 CPU 和 NPU 上推理 25 条 ESG 文本,比较 26 维 sigmoid 概率向量的余弦相似度、MAE 和 Top-1/Top-3 标签一致性。
| 指标 | 数值 |
|---|---|
| 平均余弦相似度 | 0.999999 |
| 精度误差率 | 0.0001% |
| Top-1 准确率 | 100.0% |
| Top-3 重叠率 | 100.0% |
结论:精度误差率 0.0001%,Top-1 和 Top-3 标签完全一致,评测通过。
AutoModelForSequenceClassification.from_pretrained() 加载,model.to("npu:0") 迁移