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-3 0.00e+00 ✅ 通过 max_error_mean < 1e-5 0.00e+00 ✅ 通过 max_error_std < 1e-5 0.00e+00 ✅ 通过
性能参考
指标 值 CPU 计算(20 个张量) ~6.25s NPU 推理(20 个张量) ~0.61s 模型权重 2x ~3.2GB
文件结构
granite-4.1-3b-ascend/
├── README.md # 本文档
├── inference.py # 推理脚本
└── log.txt # 运行日志
注意事项
模型使用 transformers 加载,使用 torch_npu 进行 NPU 加速
权重精度为 BF16,NPU 原生支持
精度测试基于 state_dict tensor 的 CPU vs NPU 比较
支持自定义提示词和生成参数