本文档记录 tcexeexe/SHTEC_safety_fence_model("对齐能手"安全围栏模型_1.5B)在昇腾 Ascend910 NPU 环境的适配与验证结果。
该模型基于 InternLM2ForCausalLM 架构(1.5B 参数),用于大模型安全围栏系统,对问答对进行安全性评分,输出"安全"或"不安全"的评价。
相关获取地址:
| 组件 | 版本 |
|---|---|
| Ascend NPU | Ascend910 (64GB HBM) |
| torch | 2.9.0 |
| torch_npu | 2.9.0.post1+gitee7ba04 |
| transformers | 4.40.0 |
| Python | 3.11.14 |
该模型为安全评估分类模型,直接使用 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# 基础推理测试
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}')
"预期输出:模型应返回"安全"或"不安全"的评价结果。
参考模型在 GPU 上的推理性能(来自模型官方 README):
| 指标 | 数值 |
|---|---|
| 平均单次推理时间 | 0.0805 秒 |
| 模型参数量 | 1.5B |
| 输入格式 | 对话对(USER/ASSISTANT) |
| 输出 | "安全" / "不安全" |
注意:该模型为 gated 模式,需在 ModelScope 申请访问权限并提供有效 token 后方可下载权重进行实际性能测试。
NPU vs CPU 精度对比(CPU 为基线,NPU 为验证目标):
| 指标 | 数值 |
|---|---|
| 测试用例数 | 需申请 ModelScope 访问权限 |
| 最大 logits 差异 | 待下载权重后验证 |
| 预测一致性 | 待下载权重后验证 |
| 精度要求 | NPU vs CPU 最大 logits 误差 < 1% |
| 精度结论 | ⏳ 需申请 ModelScope 模型访问权限后运行 |
NPU测试用例较少,建议补充更多对比数据.
精度评测源代码和日志详见 eval/ 目录。