冬
gcw_IDzXRVNw/granite-4.1-3b
模型介绍文件和版本Pull Requests讨论分析
下载使用量0

Granite-4.1-3B Ascend 部署指南

概述

本项目提供 IBM Granite-4.1-3B 模型在华为昇腾 NPU 上的部署方案,基于 transformers 实现推理。

模型信息

属性值
模型名称Granite-4.1-3B
架构GraniteForCausalLM
参数量约 3B
隐藏层维度2560
注意力头数40
KV 头数8
层数40
词汇表大小100,352
权重精度BF16
最大上下文长度131,072

环境要求

  • NPU: Atlas 910B3 (推荐 8 卡,本测试使用 2 卡)
  • CANN: 8.5.1+
  • Python: 3.11
  • PyTorch: 2.8.0+ with torch_npu
  • transformers: 4.57.6+

快速部署

1. 创建容器

docker rm -f test-granite

docker run -itd --privileged --name=test-granite --net=host --shm-size=500g \
  --device=/dev/davinci0 \
  --device=/dev/davinci1 \
  --device=/dev/davinci2 \
  --device=/dev/davinci3 \
  --device=/dev/davinci4 \
  --device=/dev/davinci5 \
  --device=/dev/davinci6 \
  --device=/dev/davinci7 \
  --device=/dev/davinci_manager \
  --device=/dev/devmm_svm \
  --device=/dev/hisi_hdc \
  -v /usr/local/Ascend/driver:/usr/local/Ascend/driver \
  -v /usr/local/Ascend/add-ons/:/usr/local/Ascend/add-ons/ \
  -v /usr/local/sbin/:/usr/local/sbin/ \
  -v /var/log/npu/slog/:/var/log/npu/slog \
  -v /var/log/npu/profiling/:/var/log/npu/profiling \
  -v /var/log/npu/dump/:/var/log/npu/dump \
  -v /var/log/npu/:/usr/slog \
  -v /etc/hccn.conf:/etc/hccn.conf \
  -v /data:/data \
  quay.io/ascend/vllm-ascend:v0.13.0 \
  bash

2. 进入容器并设置环境

docker exec -it test-granite bash
source /usr/local/Ascend/ascend-toolkit/set_env.sh

3. 运行推理

cd /data/ysws/agentsp/granite-4.1-3b-ascend
python3 inference.py --prompt "Hello, my name is" --max_tokens 100

推理参数说明

参数默认值说明
--model/data/ysws/agentsp/granite-4.1-3b模型路径
--prompt"Hello, my name is"输入提示词
--max_tokens100最大生成 token 数
--temperature0.7采样温度
--precision_testFalse运行精度测试

精度测试

docker exec test-granite bash -c "cd /data/ysws/agentsp/granite-4.1-3b-ascend && python inference.py --precision_test 2>&1 | tee log.txt"

精度测试结果

============================================================
Precision Comparison: CPU vs NPU
============================================================
Max errors: sum=0.00e+00, mean=0.00e+00, std=0.00e+00
PASS: NPU precision within thresholds
============================================================
PRECISION TEST PASSED
============================================================
指标阈值实测值状态
max_error_sum< 1e-30.00e+00✅ 通过
max_error_mean< 1e-50.00e+00✅ 通过
max_error_std< 1e-50.00e+00✅ 通过

性能参考

指标值
CPU 计算(20 个张量)~6.25s
NPU 推理(20 个张量)~0.61s
模型权重2x ~3.2GB

文件结构

granite-4.1-3b-ascend/
├── README.md       # 本文档
├── inference.py   # 推理脚本
└── log.txt        # 运行日志

注意事项

  1. 模型使用 transformers 加载,使用 torch_npu 进行 NPU 加速
  2. 权重精度为 BF16,NPU 原生支持
  3. 精度测试基于 state_dict tensor 的 CPU vs NPU 比较
  4. 支持自定义提示词和生成参数