weixin_72661020/jinaai-jina-reranker-m0
模型介绍文件和版本Pull Requests讨论分析

jinaai/jina-reranker-m0 on Ascend NPU

1. 简介

本文档记录 jinaai/jina-reranker-m0 在 Ascend NPU 环境上的适配部署与验证验证结果。

模型说明:jina-reranker-m0 是 Jina AI 发布的一款轻量级高性能多模态 Reranker 模型,基于 Qwen2-VL 架构,支持文本和图像查询/文档的重排序任务。约 2.6B 参数。

模型类型:JinaVLForRanking (Reranker)

相关获取地址:

  • 权重下载地址(ModelScope):https://modelscope.cn/models/jinaai/jina-reranker-m0
  • 权重下载地址(HuggingFace):https://huggingface.co/jinaai/jina-reranker-m0

2. 验证环境

组件版本
PyTorch2.9.0+cpu
torch_npu2.9.0.post1+gitee7ba04
transformers4.57.6
Python3.11.14
  • NPU:Ascend910 x 2 逻辑卡
  • 模型路径:/opt/atomgit/jinaai/jina-reranker-m0/model/jinaai/jina-reranker-m0
  • 精度:bfloat16

3. 模型加载

from transformers import AutoModel, AutoProcessor
import torch

model_path = "/path/to/jinaai/jina-reranker-m0"
device = "npu"

model = AutoModel.from_pretrained(
    model_path,
    dtype=torch.bfloat16,
    trust_remote_code=True,
)
processor = AutoProcessor.from_pretrained(
    model_path,
    max_pixels=602112,
    min_pixels=3136,
    trust_remote_code=True,
)
model = model.to(device)

注意:模型注册在 AutoModel 下(非 AutoModelForCausalLM),需设置 trust_remote_code=True。

4. Smoke 验证

# 输入查询-文档对
pairs = [
    ("What is the capital of France?", "Paris is the capital of France and its largest city."),
    ("What is the capital of France?", "London is the capital of the United Kingdom."),
]

scores = model.compute_score(
    pairs,
    batch_size=2,
    max_length=2048,
    max_query_length=128,
    max_doc_length=512,
    normalize_scores=True,
    show_progress=True,
)

for pair, score in zip(pairs, scores):
    q, d = pair
    print(f"Score {score:.4f} | {d}")

5. 性能参考

指标数值
平均推理时间 (batch=4)36.39 ms
吞吐量109.92 pairs/s
Batch Size4
测试数据集4 组 query-document 对
运行次数5 次取平均

7. 注意事项

  • 使用 AutoModel.from_pretrained 加载(不是 AutoModelForCausalLM)
  • compute_score 方法的参数需满足约束:max_doc_length + max_query_length <= max_length
  • 模型在 bfloat16 精度下运行
  • 支持文本和图像输入的多模态 reranking
  • 输出分数经过 sigmoid 归一化到 [0, 1] 之间,通过 logit bias 2.65 校准

8. 文件结构

jinaai/jina-reranker-m0/
├── inference.py              # 推理脚本
├── eval/
│   ├── accuracy_eval.py      # 精度评测源代码
│   ├── accuracy_eval.log     # 精度评测运行日志
│   ├── accuracy.json         # 精度评测结果
│   ├── perf_eval.py          # 性能评测源代码
│   ├── perf_eval.log         # 性能评测运行日志
│   └── performance.json      # 性能评测结果
└── verify_results.json       # 验证结果汇总

Ascend NPU 精度评测

NPU vs CPU 精度对比(CPU 为基线,NPU 为验证目标):

指标数值
测试用例数2
预测一致性2/2 (100.0%)
精度要求NPU vs CPU 最大 logits 误差 < 1.0%
精度结论✅ 通过 (准确率 100.0%)

精度评测源代码和日志详见 eval/ 目录。

下载使用量0