weixin_72661020/LanceFerrari_lance_finbert_1
模型介绍文件和版本Pull Requests讨论分析

LanceFerrari_lance_finbert_1

1. 简介

本文档记录 LanceFerrari/lance_finbert_1 在昇腾 NPU(Ascend910)环境的快速部署与验证结果。

BERT-base 文本编码模型(hidden_size=768, 12 layers, 12 heads),基于 HuggingFace transformers 框架,支持一键加载推理。

相关获取地址:

  • 权重下载地址(ModelScope):https://modelscope.cn/models/LanceFerrari/lance_finbert_1

参考文档:

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

2. 验证环境

组件版本
torch2.1.0
torch_npu2.1.0
transformers>=4.37.0
CANN8.5.RC1
  • NPU:Ascend910B(单卡)
  • 隐藏层维度:768
  • 层数:12
  • 注意力头数:12

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")
model_name = "LanceFerrari/lance_finbert_1"

tokenizer = AutoTokenizer.from_pretrained(model_name, trust_remote_code=True)
model = AutoModel.from_pretrained(model_name, trust_remote_code=True)
model = model.to(device).eval()

texts = ["今天天气真好", "这个产品太差了"]
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.last_hidden_state[:, 0, :]
print(f"嵌入维度: {embeddings.shape}")
print(f"嵌入向量前5维: {embeddings[0][:5].tolist()}")

4. 精度评测

NPU 与 CPU logits 数值一致性对比:

指标值
Top-1 一致性4/4
Max Logit Diff Ratio0.000465
Avg KL Divergence1e-06
结论PASS

5. 性能参考

指标值
硬件Ascend 910B
平均推理时间6.95 ms
测试条件batch=8, max_length=128, fp32
runs50

6. 注意事项

  • 精度验证为 NPU 与 CPU 数值一致性(logits 相对误差 < 1%),非模型准确率
  • 部分 ModelScope 下载的权重含 network.bert. 前缀,加载时需去除前缀后再用 BertModel 加载
  • 推荐使用 BertConfig + BertModel 手动加载权重
下载使用量0