冬
gcw_IDzXRVNw/HaS-820m-ascend
模型介绍
文件和版本
Pull Requests
讨论
分析

HaS-820m 昇腾 NPU 适配部署文档

1. 模型简介

Hide-and-Seek (HaS) 源自论文 Hide and Seek (HaS): A Lightweight Framework for Prompt Privacy Protection,是腾讯安全玄武实验室研发的隐私保护模型。

本模型为社区开源的中文版本,以 BLOOM-1.1B 为基础模型,经过词表裁剪与微调后形成。

模型架构

属性值
模型类型BloomForCausalLM (BLOOM-based)
参数量750.84 M
Hidden Size1536
Transformer 层数24
Attention Heads16
Vocab Size46145
注意力类型ALiBi (Attention with Linear Biases)

模型特点

  • Hide 任务:将用户输入中的敏感实体词替换为随机实体,实现隐私信息匿名化
  • Seek 任务:将输出中被替换的部分还原为原文本,实现信息还原
  • 隐私保护:支持润色、摘要、翻译、阅读理解、文本分类等任务
  • 轻量部署:支持在手机、笔记本等终端设备进行端侧部署

输入输出格式

  • 输入:格式化文本(包含任务模板)
  • 输出:处理后的文本(Hide 为匿名化文本,Seek 为还原文本)

2. 环境依赖清单

2.1 硬件要求

  • 华为昇腾系列 AI 处理器(Ascend 910B/310P 等)
  • 建议 ≥ 4 GB NPU 显存(HaS-820m 推理峰值约 2-3 GB)
  • 本次实测使用 910B2(单卡 64 GB)

2.2 软件依赖

依赖项版本要求说明
操作系统CentOS 7.6+ / Ubuntu 18.04+支持主流 Linux 发行版
CANN5.0.RC2+华为昇腾计算架构
Python3.10 / 3.12推荐 3.10+
PyTorch2.0.0+推荐 2.12
torch_npu与 PyTorch 版本匹配昇腾 PyTorch 扩展
transformers>=4.27.0BLOOM 模型加载

2.3 安装方式

# 1) 激活已预装 torch / torch_npu 的 conda 环境
conda activate pt2100

# 2) 安装依赖(使用华为云源)
pip install transformers -i https://repo.huaweicloud.com/repository/pypi/simple

# 3) 验证环境
python -c "
import torch, torch_npu
print('torch:', torch.__version__)
print('torch_npu:', torch_npu.__version__)
print('NPU 可用:', torch.npu.is_available())
"

3. 分步推理操作流程

步骤 1:准备工作目录

# 进入适配目录
cd /workspace/agent4/HaS-820m-ascend

# 确认上游权重存在
ls -la /workspace/agent3/SecurityXuanwuLab/HaS-820m/

# 期望输出:config.json pytorch_model.bin (~1.5GB) ...

步骤 2:检查 NPU 环境

# 检查 NPU 设备状态
npu-smi info

# 验证 torch_npu 安装
python -c "import torch; import torch_npu; print('NPU 可用:', torch.npu.is_available())"

步骤 3:运行推理脚本

# 基本用法:默认参数
python inference.py --device npu:0

# 指定其他 NPU 卡
python inference.py --device npu:1

# 自定义生成长度
python inference.py --device npu:0 --max_length 100

4. 完整测试用例

测试用例 1:Hide 任务 - 信息匿名化(NPU:0)

conda activate pt2100
cd /workspace/agent4/HaS-820m-ascend
python inference.py --device npu:0

实际输出:

============================================================
HaS-820m 昇腾 NPU 推理
============================================================

[Device] npu:0

[Model Path] /workspace/agent3/SecurityXuanwuLab/HaS-820m

[Config]
  model_type: bloom
  architectures: ['BloomForCausalLM']
  hidden_size: 1536
  n_layer: 24
  n_head: 16
  vocab_size: 46145

[Memory Before Model Load] Allocated: 0.00 GB, Reserved: 0.00 GB

[npu-smi info]
+------------------------------------------------------------------------------------------------+
| npu-smi 25.5.2                   Version: 25.5.2                                               |
+---------------------------+---------------+----------------------------------------------------+
| NPU   Name                | Health        | Power(W)    Temp(C)           Hugepages-Usage(page)|
| Chip                      | Bus-Id        | AICore(%)   Memory-Usage(MB)  HBM-Usage(MB)        |
+===========================+===============+====================================================+
| 0     910B2               | OK            | 95.2        41                0    / 0             |
| 0                         | 0000:C1:00.0  | 0           0    / 0          3424 / 65536         |
+===========================+===============+====================================================+


[Loading] HaS-820m model...
[Loading] HaS-820m model from /workspace/agent3/SecurityXuanwuLab/HaS-820m
  Tokenizer loaded: vocab_size=46145
Loading weights: 100%|██████████| 294/294 [00:00<00:00, 14639.46it/s]
  Model loaded: 750.84 M parameters

[Model Loaded] Allocated: 1.40 GB, Reserved: 1.55 GB

[npu-smi info]
+------------------------------------------------------------------------------------------------+
| NPU   Name                | Health        | Power(W)    Temp(C)           Hugepages-Usage(page)|
| Chip                      | Bus-Id        | AICore(%)   Memory-Usage(MB)  HBM-Usage(MB)        |
+===========================+===============+====================================================+
| 0     910B2               | OK            | 104.3       41                0    / 0             |
| 0                         | 0000:C1:00.0  | 0           0    / 0          5077 / 65536         |
+===========================+===============+====================================================+
| NPU     Chip              | Process id    | Process name             | Process memory(MB)      |
+===========================+===============+====================================================+
| 0       0                 | 1701480       | python                   | 1708                    |
+===========================+===============+====================================================+


[Running] HaS-820m inference (hide task)...

[npu-smi info]
+------------------------------------------------------------------------------------------------+
| NPU   Name                | Health        | Power(W)    Temp(C)           Hugepages-Usage(page)|
| Chip                      | Bus-Id        | AICore(%)   Memory-Usage(MB)  HBM-Usage(MB)        |
+===========================+===============+====================================================+
| 0     910B2               | OK            | 106.4       41                0    / 0             |
| 0                         | 0000:C1:00.0  | 0           0    / 0          5129 / 65536         |
+===========================+===============+====================================================+
| NPU     Chip              | Process id    | Process name             | Process memory(MB)      |
+===========================+===============+====================================================+
| 0       0                 | 1701480       | python                   | 1766                    |
+===========================+===============+====================================================+


[Results]
  Input: 华纳兄弟影业著名的作品有《蝙蝠侠》系列。
  Hide output: 影业知名的作品有《艺术作品1》系列。

[Statistics]
  Output tokens: 12
  Total parameters: 821.72 M

[Memory After Inference] Allocated: 1.40 GB, Reserved: 1.58 GB

[Done]

性能指标

指标值
模型参数量750.84 M
权重文件pytorch_model.bin(约 1.5 GB)
推理显存峰值约 2-3 GB
输出 tokens12

5. 注意事项

  1. Hide 任务:将敏感实体替换为随机实体,用于隐私保护
  2. Seek 任务:需要结合 Hide 输出与原文进行信息还原
  3. BLOOM 架构:使用 ALiBi 位置编码,不使用传统位置嵌入

6. 参考链接

  • HaS 论文 (arXiv:2309.03057)
  • HaS GitHub
  • 腾讯安全玄武实验室博客
  • HuggingFace 模型页