BAAI--bge-base-en-v1.5 on Ascend NPU
1. 简介
本文档记录 BAAI--bge-base-en-v1.5 在昇腾NPU上的适配与验证结果。
bge-base-en-v1.5 是 BAAI 开源的高性能中英文语义嵌入模型,输出768维向量,在 MTEB 评测中表现优异。
相关资源:
2. 验证环境
| 组件 | 版本 |
|---|
python | 3.10 |
torch | 2.5.1 |
torch-npu | 2.5.1 |
transformers | 5.8.1 |
sentence-transformers | 5.5.0 |
- NPU:
8 卡(型号 910B3)
- 操作系统:Linux aarch64
3. 环境准备
3.1 创建Conda环境
conda create -n "BAAI--bge-base-en-v1.5" python=3.10 -y
conda activate "BAAI--bge-base-en-v1.5"
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 sentence-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 "Hello world" "NPU is fast"
4.2 脚本参数说明
| 参数 | 说明 | 默认值 |
|---|
--model-path, -m | 模型路径 | /data/xxy/BAAI--bge-base-en-v1.5 |
--device, -d | 运行设备 | auto |
--texts, -t | 输入文本列表 | 内置测试句 |
--batch-size, -b | 批处理大小 | 32 |
5. 精度与性能评测
5.1 运行评测
python benchmark.py --log-file log.txt
5.2 评测结果
| 指标 | 数值 |
|---|
| 测试样本数 | 20 |
| 平均相对误差 | 0.3357% |
| 最大相对误差 | 0.4613% |
| 平均余弦相似度 | 0.999994 |
| 精度检查 | PASS |
5.3 性能对比
| 设备 | 平均延迟 | 吞吐量 | 加速比 |
|---|
| CPU | 327.22 ms | 443.12 tokens/s | - |
| NPU | 32.51 ms | 4460.69 tokens/s | 10.07x |
6. 文件结构
BAAI--bge-base-en-v1.5-ascend/
├── inference.py # NPU适配推理脚本
├── benchmark.py # 精度与性能评测脚本
├── log.txt # 评测运行日志
└── README.md # 本文档
7. 注意事项
- 环境隔离:建议为每个模型创建独立的Conda环境
- NPU初始化:首次运行需要图编译,后续显著加速
- 精度波动:NPU与CPU的少量数值误差(<1%)是正常现象
8. 参考资料