本文档记录 OpenMed/OpenMed-NER-ProteinDetect-MultiMed-335M 在昇腾 NPU(Ascend910)环境的快速部署与验证结果。该模型为医学命名实体识别(NER)模型。
相关获取地址:
| 组件 | 版本 |
|---|---|
| torch | >=2.1.0 |
| torch_npu | >=2.1.0 |
| transformers | >=4.37.0 |
| CANN | 8.5.RC1 |
pip install transformers torchimport torch
from transformers import AutoTokenizer, AutoModelForTokenClassification
device = torch.device("npu:0" if torch.npu.is_available() else "cpu")
model_name = "OpenMed/OpenMed-NER-ProteinDetect-MultiMed-335M"
tokenizer = AutoTokenizer.from_pretrained(model_name, trust_remote_code=True)
model = AutoModelForTokenClassification.from_pretrained(model_name, trust_remote_code=True)
model = model.to(device).eval()
texts = ["The patient was diagnosed with cancer."]
inputs = tokenizer(texts, return_tensors="pt", padding=True, truncation=True, max_length=128)
inputs = {k: v.to(device) for k, v in inputs.items()}
with torch.no_grad():
outputs = model(**inputs)
print(f"输出 logits 形状: {outputs.logits.shape}")NPU 与 CPU logits 数值一致性对比:
| 指标 | 值 |
|---|---|
| Top-1 一致性 | 54/54 |
| 最大 Logit 差异比率 | 0.162% |
| 平均 KL 散度 | 0.0 |
| 结论 | 通过 |
| 指标 | 值 |
|---|---|
| 硬件 | Ascend 910B |
| 平均推理时间 | 12.9 毫秒 |
精度验证为 NPU 与 CPU 数值一致性(logits 相对误差 < 1%),而非模型准确率。