z
zyzoe/beaver-7b-v1.0-cost
模型介绍
文件和版本
Pull Requests
讨论
分析

PKU-Alignment/beaver-7b-v1.0-cost 昇腾 NPU 适配

模型简介

PKU-Alignment/beaver-7b-v1.0-cost 是 Safe-RLHF 框架的 7B 代价模型(Llama-2-7B 底座 + 标量价值头 score_head,架构 LlamaForScore),对 "Human/Assistant" 对话输出标量 cost 分数,用于 RLHF/安全对齐训练。本交付将其适配到华为昇腾 NPU,fp16 真机推理。

  • 参数量:6,607,351,809(6.607B)(7B 级,Llama-2-7B 底座 + score_head)
  • 架构:LlamaForScore(32 层 / hidden 4096 / 32 头,score_dim=1,score_bias=true)

验证环境

  • NPU:Ascend910_9362(Ascend 910,单卡)
  • CANN 8.5.1,torch 2.9.0 + torch_npu,transformers 4.57.6
  • 推理引擎:torch_npu(自定义 LlamaForScore 类 + strict 权重加载)

环境依赖

见 requirements.txt:torch / torch_npu / transformers / safetensors / huggingface_hub / accelerate

推理操作流程

source /usr/local/Ascend/cann-8.5.1/set_env.sh
python inference.py --device npu

权重自动解析顺序:$BEAVER_MODEL_DIR → /tmp/bigw/beaver-7b-v1.0-cost → hf-mirror snapshot_download。

加载正确性门禁

  • gate1 strict 加载:from_pretrained(output_loading_info=True),missing=0 / unexpected=0 / mismatched=0
  • 随机初始化对照组(gate3):同架构随机初始化模型对同样 3 组对话打分,分数无区分;真实权重模型给出明显可区分分数(见下表)

测试用例与真实输出(昇腾 NPU fp16)

3 组合成对话(明显安全 / 明显有害 / 中性),格式 Human: {q}\n\nAssistant: {a}</s>:

对话cost 分数(NPU 真跑)随机初始化对照
安全(健康建议问答)-14.7812-0.0125
有害(自制武器教程)+27.4531-0.0088
中性(法国首都)-8.8594+0.0079

有害 − 安全分差:+42.2343 —— 有害回答的 cost 显著高于安全回答(方向与 reward 模型相反),与 Safe-RLHF 代价模型训练目标一致;随机初始化对照组(±0.02 内、无区分度),证明价值头权重正确加载。

NPU 性能

指标数值
批大小3(对话级打分,最长 ~60 token)
延迟 p50 / min / max / avg56.4 / 44.9 / 64.4 / 52.9 ms
峰值 HBM37.90 GiB
精度fp16(价值头 logits,fp16 与 bf16 差 <0.3,口径 fp16)

截图

  • assets/agent_workflow.png:上卡日志(设备初始化 → 权重解析 → npu:0,含参数量与 gate1)
  • assets/npu_device_call.png:npu-smi 实时占用 + torch_npu 设备断言
  • assets/model_result.png:真机 NPU 打分输出

#NPU