本文档记录 ModernBERT-base 在昇腾NPU上的适配与验证结果。
ModernBERT-base 是 Answer.AI 开发的现代化双向编码器模型,参数规模1.49亿,序列长度支持8192 token。该模型在自然语言理解和检索任务上表现优异。
相关资源:
| 组件 | 版本 |
|---|---|
python | 3.10 |
torch | 2.5.1 |
torch-npu | 2.5.1 |
transformers | 5.8.1 |
8 卡(型号 910B3)conda create -n "ModernBERT-base" python=3.10 -y
conda activate "ModernBERT-base"pip install torch==2.5.1 torchvision torchaudio -f https://download.pytorch.org/whl/torch_npu.html
pip install torch-npu==2.5.1 -f https://download.pytorch.org/whl/torch_npu.html
pip install transformers -i https://repo.huaweicloud.com/repository/pypi/simple
pip install decorator psutil attrs cloudpickle tornado ml-dtypes scipypython inference.py
python inference.py --device cpu
python inference.py --texts "The capital of France is [MASK]." "Machine [MASK] is great."| 参数 | 说明 | 默认值 |
|---|---|---|
--model-path, -m | 模型路径 | /data/xxy/ModernBERT-base |
--device, -d | 运行设备 | auto |
--texts, -t | 输入文本列表 | 内置测试句 |
--show-top, -n | 显示top结果数 | 5 |
python benchmark.py --log-file log.txt评测日期:2026-05-17
| 指标 | 数值 |
|---|---|
| 测试样本数 | 15 |
| 平均相对误差 | 0.0911% |
| 最大相对误差 | 0.1888% |
| 最小相对误差 | 0.0559% |
| 标准差 | 0.0004 |
| 平均余弦相似度 | 1.000000 |
| 最小余弦相似度 | 0.999998 |
| 精度检查 | PASS |
| 样本 | 相对误差 | 余弦相似度 |
|---|---|---|
| 样本1 | 0.001264 | 0.999999 |
| 样本2 | 0.001888 | 1.000000 |
| 样本3 | 0.000668 | 0.999998 |
| 样本4 | 0.001888 | 0.999999 |
| 样本5 | 0.000832 | 0.999999 |
| 样本6 | 0.000570 | 1.000000 |
| 样本7 | 0.000842 | 0.999999 |
| 样本8 | 0.000797 | 1.000000 |
| 样本9 | 0.000713 | 1.000000 |
| 样本10 | 0.000720 | 0.999999 |
| 样本11 | 0.000720 | 0.999999 |
| 样本12 | 0.000591 | 1.000002 |
| 样本13 | 0.000679 | 1.000001 |
| 样本14 | 0.000928 | 0.999999 |
| 样本15 | 0.000559 | 0.999999 |
| 设备 | 平均延迟 | 吞吐量 | 加速比 |
|---|---|---|---|
| CPU | 31962.27 ms | 0.47 samples/s | - |
| NPU | 429.19 ms | 34.95 samples/s | 74.47x |
精度要求:NPU与CPU输出误差 < 1%
评测方法:
所有15个样本的相对误差均 < 0.2%,远优于1%的精度要求。
ModernBERT-base-ascend/
├── inference.py # NPU适配推理脚本
├── benchmark.py # 精度与性能评测脚本
├── log.txt # 评测运行日志
└── README.md # 本文档