weixin_72661020/KBLab_megatron.bert-base.wordpiece-64k-no_pretok.25k-steps
模型介绍文件和版本Pull Requests讨论分析

KBLab_megatron.bert-base.wordpiece-64k-no_pretok.25k-steps

1. 简介

本文档记录 KBLab/megatron.bert-base.wordpiece-64k-no_pretok.25k-steps 在昇腾 NPU(Ascend910)环境的快速部署与验证结果。

AutoModel 文本嵌入模型,基于 HuggingFace transformers 框架,支持将文本转换为固定维度的语义向量,适用于句子相似度计算、语义检索等场景。

相关获取地址:

  • 权重下载地址(ModelScope):https://modelscope.cn/models/KBLab/megatron.bert-base.wordpiece-64k-no_pretok.25k-steps

参考文档:

  • https://huggingface.co/docs/transformers/en/model_doc/auto#transformers.AutoModel

2. 验证环境

组件版本
torch2.5.1
torch_npu2.5.1
transformers>=4.48.0
CANN8.5.RC1
  • NPU:Ascend910(单卡)
  • 推理框架:PyTorch + transformers

3. 快速部署

3.1 环境准备

pip install transformers torch

3.2 推理代码

import torch
from transformers import AutoTokenizer, AutoModel

device = torch.device("npu:0" if torch.npu.is_available() else "cpu")

tokenizer = AutoTokenizer.from_pretrained("KBLab/megatron.bert-base.wordpiece-64k-no_pretok.25k-steps", trust_remote_code=True)
model = AutoModel.from_pretrained("KBLab/megatron.bert-base.wordpiece-64k-no_pretok.25k-steps", trust_remote_code=True)
model = model.to(device).eval()

texts = ["What is machine learning?", "Hello world"]
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)
embeddings = outputs.pooler_output if hasattr(outputs, 'pooler_output') and outputs.pooler_output is not None else outputs.last_hidden_state[:, 0, :]
print(f"嵌入维度: {embeddings.shape}")

4. Smoke 验证

python3 inference.py

验证结果:

  • 模型成功加载到 npu:0
  • 输出嵌入向量(batch_size × embedding_dim)
  • 推理过程无报错

5. 精度评测

NPU 与 CPU 输出对比,使用测试文本比较嵌入向量的 cosine 相似度与逐元素误差。

指标数值
最大 logits 相对误差0.001%
Avg KL Divergence0.000000
结论PASS

精度要求:logits 相对误差 < 1%。

6. 性能参考

测试条件:FP32 / batch=8 / max_length=128 / warmup=5 / timed=50 runs,Ascend910 单卡。

指标数值
平均推理时间7.49 ms
测试次数50

7. 注意事项

  • 该模型使用 AutoModel 加载,输出 pooler_output 或 last_hidden_state 作为句子嵌入
  • 精度验证为 NPU vs CPU 数值一致性(logits 相对误差 < 1%),非模型准确率
  • 支持 FP16 混合精度推理以提升性能
下载使用量0