X
Xiaoxy510/ModernBERT-base-ascend
模型介绍文件和版本Pull Requests讨论分析
下载使用量0

ModernBERT-base on Ascend NPU

1. 简介

本文档记录 ModernBERT-base 在昇腾NPU上的适配与验证结果。

ModernBERT-base 是 Answer.AI 开发的现代化双向编码器模型,参数规模1.49亿,序列长度支持8192 token。该模型在自然语言理解和检索任务上表现优异。

相关资源:

  • 权重下载地址(HuggingFace):https://huggingface.co/answerdotai/ModernBERT-base
  • 权重下载地址(ModelScope):https://modelscope.cn/models/answerdotai/ModernBERT-base

2. 验证环境

组件版本
python3.10
torch2.5.1
torch-npu2.5.1
transformers5.8.1
  • NPU:8 卡(型号 910B3)
  • 操作系统:Linux aarch64

3. 环境准备

3.1 创建Conda环境

conda create -n "ModernBERT-base" python=3.10 -y
conda activate "ModernBERT-base"

3.2 安装依赖

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 scipy

4. 推理脚本使用

4.1 基本用法

python inference.py
python inference.py --device cpu
python inference.py --texts "The capital of France is [MASK]." "Machine [MASK] is great."

4.2 脚本参数说明

参数说明默认值
--model-path, -m模型路径/data/xxy/ModernBERT-base
--device, -d运行设备auto
--texts, -t输入文本列表内置测试句
--show-top, -n显示top结果数5

5. 精度与性能评测

5.1 运行评测

python benchmark.py --log-file log.txt

5.2 评测结果

评测日期:2026-05-17

指标数值
测试样本数15
平均相对误差0.0911%
最大相对误差0.1888%
最小相对误差0.0559%
标准差0.0004
平均余弦相似度1.000000
最小余弦相似度0.999998
精度检查PASS

样本级精度详情

样本相对误差余弦相似度
样本10.0012640.999999
样本20.0018881.000000
样本30.0006680.999998
样本40.0018880.999999
样本50.0008320.999999
样本60.0005701.000000
样本70.0008420.999999
样本80.0007971.000000
样本90.0007131.000000
样本100.0007200.999999
样本110.0007200.999999
样本120.0005911.000002
样本130.0006791.000001
样本140.0009280.999999
样本150.0005590.999999

5.3 性能对比

设备平均延迟吞吐量加速比
CPU31962.27 ms0.47 samples/s-
NPU429.19 ms34.95 samples/s74.47x

5.4 精度评估标准

精度要求:NPU与CPU输出误差 < 1%

评测方法:

  1. 使用相同输入文本分别在CPU和NPU上推理
  2. 计算NPU输出与CPU输出的相对误差
  3. 计算余弦相似度

所有15个样本的相对误差均 < 0.2%,远优于1%的精度要求。

6. 文件结构

ModernBERT-base-ascend/
├── inference.py              # NPU适配推理脚本
├── benchmark.py             # 精度与性能评测脚本
├── log.txt                  # 评测运行日志
└── README.md                # 本文档

7. 注意事项

  1. 环境隔离:建议为每个模型创建独立的Conda环境
  2. NPU初始化:首次运行需要图编译,后续显著加速
  3. 精度波动:NPU与CPU的少量数值误差(<1%)是正常现象
  4. 模型特性:ModernBERT是Fill-Mask模型,输入需包含[MASK] token

8. 参考资料

  • Transformers 官方文档
  • PyTorch NPU 官方文档
  • 昇腾NPU 开发者文档