本文档记录 cross-encoder/mmarco-mMiniLMv2-L12-H384-v1 在 Ascend 910B3 NPU 环境下的适配与验证结果。该模型是一个多语言交叉编码器(Cross-Encoder),用于信息检索中的查询-文档相关性排序(Re-ranking)。
本仓库提供:
相关获取地址:
参考文档:
| 组件 | 版本 |
|---|---|
torch | 2.8.0 |
torch_npu | 2.8.0.post4 |
transformers | 4.57.6 |
Ascend 910B3,1 逻辑卡XLMRobertaForSequenceClassification(12 层,384 隐藏维,12 注意力头)512250,002# 安装依赖
pip install torch torch_npu transformers
# 设置 NPU 可见设备
export ASCEND_RT_VISIBLE_DEVICES=0python inference.py \
--query "how to cook pasta" \
--passage "Boil water, add salt, then add pasta and cook for 10 minutes."# pairs.jsonl 格式:{"query": "...", "passage": "..."} 每行
python inference.py --input-file pairs.jsonl# pairs.csv 格式:query,passage 每行
python inference.py --input-file pairs.csv --input-format csvpython inference.py --device cpu --query "test" --passage "example"{
"model": "cross-encoder--mmarco-mMiniLMv2-L12-H384-v1",
"device": "npu:0",
"num_pairs": 1,
"inference_time_seconds": 0.0021,
"pairs_per_second": 476.19,
"results": [
{
"query": "how to cook pasta",
"passage": "Boil water, add salt...",
"score": 4.527361
}
]
}python inference.py --query "hello world" --passage "test passage"预期输出:
score 字段为相关性得分测试条件:10 对查询-文档,batch_size=32,max_length=512。
| 指标 | CPU | NPU |
|---|---|---|
| 平均推理时间 | 1.1910 s | 0.0183 s |
| 吞吐量 | 8.40 pairs/s | 547.35 pairs/s |
| 加速比 | - | 65.08x |
精度评测采用余弦距离(Cosine Distance)作为主要指标,对比 NPU 与 CPU 的输出得分向量。
| 指标 | 数值 |
|---|---|
| 测试样本数 | 10 |
| 最大绝对误差 | 1.7199e-02 |
| 平均绝对误差 | 5.5565e-03 |
| 余弦相似度 | 0.99999946 |
| 余弦距离 | 0.000054% |
| 精度要求(余弦距离 < 1%) | 通过 |
结论:NPU 与 CPU 输出的评分向量余弦距离仅 0.000054%,远低于 1% 的阈值,精度通过验证。
</s></s> 分隔符拼接后输入模型。identity),可通过 --activation sigmoid 获取概率值。