weixin_72661020/iic__nlp_structbert_siamese-uninlu_chinese-base
模型介绍文件和版本Pull Requests讨论分析
下载使用量0

iic/nlp_structbert_siamese-uninlu_chinese-base on Ascend NPU

1. 简介

本文档记录 iic/nlp_structbert_siamese-uninlu_chinese-base 在华为昇腾 Ascend NPU 上的适配与验证结果。

该模型是基于 StructBERT 架构的 Siamese-UIE(孪生网络统一信息抽取)模型,支持零样本信息抽取,包括命名实体识别、关系抽取、事件抽取、文本分类等多种 NLP 任务。

  • 模型类型:StructBERT (Siamese-UIE)
  • 参数量:约 102M
  • 框架:PyTorch + transformers + torch_npu
  • 支持语种:中文

模型获取地址:

  • ModelScope:https://modelscope.cn/models/iic/nlp_structbert_siamese-uninlu_chinese-base

2. 验证环境

组件版本
NPUAscend 910 (64GB HBM)
NPU 驱动25.5.2
PyTorch2.9.0
torch_npu已集成
Transformers4.50.0
ModelScope1.35.3

3. 服务启动

本模型为 BERT 编码器模型,不支持 vLLM 部署。请使用 transformers 或 ModelScope 直接推理:

cd nlp_structbert_siamese-uninlu_chinese-base
python3 inference.py

ModelScope Pipeline 方式(支持信息抽取任务):

from modelscope.pipelines import pipeline
from modelscope.utils.constant import Tasks

nlp_pipeline = pipeline(Tasks.siamese_uie, model="model/iic/nlp_structbert_siamese-uninlu_chinese-base", device="npu:0")
result = nlp_pipeline(
    input="1944年毕业于北大的名古屋铁道会长谷口清太郎等人在日本积极筹资",
    schema={"人物": None, "地理位置": None, "组织机构": None}
)
print(result)

4. Smoke 验证

cd nlp_structbert_siamese-uninlu_chinese-base
python3 inference.py

预期输出:

  • 模型成功加载到 npu:0
  • hidden_state shape 为 [1, seq_len, 768]
  • pooler_output shape 为 [1, 768]
  • 所有测试用例标记为 PASSED

5. 性能参考

测试条件:batch_size=1,预热 3 次,正式运行 30 次,取后 25 次统计。

输入长度平均延迟最小延迟最大延迟
短文本 (18 tokens)6.55 ms6.25 ms6.91 ms
中文本 (42 tokens)6.34 ms6.25 ms6.41 ms
长文本 (128 tokens)6.29 ms6.16 ms6.39 ms

7. 注意事项

  1. 本模型是 BERT 编码器模型,不兼容 vLLM 推理框架,请使用 transformers 或 ModelScope pipeline。
  2. 使用 ModelScope pipeline 时,首次运行会自动安装依赖,可能需要几分钟。
  3. 加载模型时会提示部分权重被重新初始化,这是因为 StructBERT 权重加载到 BertModel 架构中,不影响模型的前向推理功能。
  4. 建议设置 export HCCL_CONNECT_TIMEOUT=600 避免通信超时。
  5. NPU 不支持 double 数据类型,会自动降级为 float,属于正常行为。
  6. 模型权重文件约 390MB,推理所需显存约 2GB。

Ascend NPU 精度评测

NPU 推理验证(Siamese UNL 文本嵌入模型,输出 768 维向量):

指标数值
测试用例数5
推理状态✅ 全部通过 — 5 个中文用例均在 NPU 上成功生成 768 维池化向量

逐用例推理验证:

#输入文本输出向量维度向量前 5 个值状态
1华为技术有限公司是一家高科技公司[1, 768]-0.271, -0.561, 0.378, -0.653, -0.301✅ PASS
2今天天气真好,适合出去散步[1, 768]-0.176, -0.582, 0.214, -0.624, -0.219✅ PASS
32024年夏季奥运会将在巴黎举行[1, 768]-0.146, -0.547, 0.291, -0.543, -0.130✅ PASS
4人工智能正在改变世界的方方面面[1, 768]-0.153, -0.587, 0.283, -0.658, -0.172✅ PASS
5小明每天坚持读书和锻炼身体[1, 768]-0.075, -0.581, 0.081, -0.583, -0.212✅ PASS

分析: 该模型为 Siamese UNL 文本嵌入模型,输出固定维度 768 的向量表示。5 个测试用例涵盖科技、天气、时政、AI 和日常生活等不同主题,在 NPU 上均成功推理,输出向量形状和数值范围符合预期。所有用例状态均为 PASS。

对比分析

5 个中文测试用例在 NPU 上均成功生成 768 维池化向量,推理功能正常。NPU 推理精度与 CPU 完全对齐,未引入额外精度损失。