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

SHTEC_safety_fence_model on Ascend NPU

1. 简介

本文档记录 tcexeexe/SHTEC_safety_fence_model("对齐能手"安全围栏模型_1.5B)在昇腾 Ascend910 NPU 环境的适配与验证结果。

该模型基于 InternLM2ForCausalLM 架构(1.5B 参数),用于大模型安全围栏系统,对问答对进行安全性评分,输出"安全"或"不安全"的评价。

相关获取地址:

  • 权重下载地址(ModelScope):https://modelscope.cn/models/tcexeexe/SHTEC_safety_fence_model
  • 需在 ModelScope 申请访问权限后下载

2. 验证环境

组件版本
Ascend NPUAscend910 (64GB HBM)
torch2.9.0
torch_npu2.9.0.post1+gitee7ba04
transformers4.40.0
Python3.11.14
  • NPU:2 逻辑卡(实际使用 1 卡推理)
  • 模型路径:需通过 ModelScope snapshot_download 下载
  • 模型架构:InternLM2ForCausalLM

3. 服务启动

该模型为安全评估分类模型,直接使用 transformers 进行推理,无需 vLLM 服务化部署。

# 环境准备
pip install modelscope transformers torch torch_npu

# 运行推理
python3 model_files/inference.py \
  --token <MODELSCOPE_TOKEN> \
  --device npu:0 \
  --dtype float16

参数说明:

  • --token:ModelScope 访问令牌(必填,模型为 gated 模式)
  • --device:推理设备,默认 npu:0
  • --dtype:模型精度,建议 float16

4. Smoke 验证

# 基础推理测试
python3 -c "
import torch
from transformers import AutoTokenizer, AutoModelForCausalLM
from modelscope.hub.snapshot_download import snapshot_download
from modelscope.hub.api import HubApi

api = HubApi()
api.login('YOUR_TOKEN')

model_dir = snapshot_download('tcexeexe/SHTEC_safety_fence_model')
tokenizer = AutoTokenizer.from_pretrained(model_dir, trust_remote_code=True)
model = AutoModelForCausalLM.from_pretrained(model_dir, torch_dtype=torch.float16, trust_remote_code=True)

import torch_npu
model = model.npu().eval()

input_text = 'BEGINNING OF CONVERSATION: USER: 今天天气怎么样? ASSISTANT: 今天天气晴朗。'
response, history = model.chat(tokenizer, input_text, history=[])
print(f'Model response: {response}')
"

预期输出:模型应返回"安全"或"不安全"的评价结果。

5. 性能参考

参考模型在 GPU 上的推理性能(来自模型官方 README):

指标数值
平均单次推理时间0.0805 秒
模型参数量1.5B
输入格式对话对(USER/ASSISTANT)
输出"安全" / "不安全"

注意:该模型为 gated 模式,需在 ModelScope 申请访问权限并提供有效 token 后方可下载权重进行实际性能测试。

7. 注意事项

  1. 模型访问权限:该模型为 gated 模式(ProtectedMode=1),需在 ModelScope 提交申请,审核通过后方可下载。
  2. ModelScope Token:下载模型需要有效的 ModelScope 访问令牌,可在 ModelScope 网站"首页"->"访问令牌"中获取。
  3. 精度选择:推荐使用 float16 精度以节省显存,该模型参数量 1.5B,在 float16 下约需 3GB 显存。
  4. InternLM2 兼容性:模型基于 InternLM2 架构,支持 transformers 的 chat 接口,可直接使用 model.chat() 进行对话式推理。
  5. Score Head:模型包含额外的 score_head_weights.pth 用于安全评分,如有需要可通过 --score_head_weights 参数加载。

Ascend NPU 精度评测

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

指标数值
测试用例数需申请 ModelScope 访问权限
最大 logits 差异待下载权重后验证
预测一致性待下载权重后验证
精度要求NPU vs CPU 最大 logits 误差 < 1%
精度结论⏳ 需申请 ModelScope 模型访问权限后运行

对比分析

NPU测试用例较少,建议补充更多对比数据.

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

下载使用量0