如何搭建NPU推理环境:Granite-TimeSeries-PatchTST-FM-r1所需CANN 8.5.1 + torch_npu完整配置教程
【免费下载链接】granite-timeseries-patchtst-fm-r1-npu用户可直接在昇腾 NPU 上运行此项目,对时间序列数据进行零样本概率预测,输入 8192 步上下文,输出 64 步预测及 99 分位数结果,实现高精度快速推理,加速工业场景下的时序分析与决策。项目地址: https://ai.gitcode.com/atlasleong/granite-timeseries-patchtst-fm-r1-npu
Granite-TimeSeries-PatchTST-FM-r1 项目可直接在昇腾 NPU 上运行时间序列基础模型,实现零样本概率预测:输入 8192 步上下文,输出 64 步预测及 99 分位数结果。本文带你从零搭建 NPU 推理环境,完整覆盖 CANN 8.5.1 + torch_npu 配置、依赖安装与推理验证,新手照做即可跑通。
⚡ 先认识这个项目
Granite-TimeSeries-PatchTST-FM-r1 是 IBM TSFM 发布的基于 PatchTST 架构的时间序列 Transformer 基础模型,参数量约 260M,在 GIFT-Eval 零样本榜单上位居前五。本仓库已完成昇腾 NPU 适配交付,核心文件:
- 推理入口:inference.py,自动加载本地权重并在
npu:0上完成真实前向 - 模型权重:model/model.safetensors(约 1.03 GiB),模型配置见 model/config.json
- 建模代码:model_code/patchtst_fm/,核心模型类为
PatchTSTFMForPrediction - 运行时依赖:requirements.txt 锁定 22 个固定版本包
📋 硬件与软件环境清单
搭建前建议先对照下表检查你的机器:
| 项目 | 版本要求 |
|---|---|
| 昇腾 NPU 芯片 | 910B4-1 |
| CANN | 8.5.1(安装路径/usr/local/Ascend/cann-8.5.1) |
| Python | 3.11 |
| torch | 2.9.0 |
| torch_npu | 2.9.0 |
| npu-smi | 25.2.0 |
🚀 第一步:克隆项目仓库
git clone https://gitcode.com/atlasleong/granite-timeseries-patchtst-fm-r1-npu cd granite-timeseries-patchtst-fm-r1-npu仓库是独立自包含的交付结构,所有运行文件都在根目录内:inference.py、requirements.txt、model/(权重快照)与model_code/(建模代码),无需任何外部依赖文件。
🔧 第二步:安装 CANN 8.5.1 并配置环境变量
CANN 8.5.1 安装完成后,每次使用 NPU 前都要加载环境变量:
source /usr/local/Ascend/ascend-toolkit/set_env.sh💡 建议把这行追加到~/.bashrc,避免每次手动执行。加载后用npu-smi info验证设备状态:
只要列表中 910B4-1 芯片的 Health 列显示OK,说明 CANN 与 NPU 通信正常。若机器有多张 NPU,可用下面命令指定使用哪一张物理卡:
export ASCEND_RT_VISIBLE_DEVICES=0📦 第三步:安装 torch 与 torch_npu
torch 2.9.0与torch_npu 2.9.0通常由昇腾工作节点镜像直接提供;手动安装时务必保持两个包主版本号一致,否则导入会失败。- 然后按项目锁定的版本安装其余运行时依赖:
pip install --ignore-installed --no-deps -r requirements.txt其中transformers==4.57.6、numpy==1.26.4、einops==0.8.2等版本与模型配置文件严格匹配,不要随意升级。
最后花 3 秒验证 torch_npu 是否生效:
python3 -c "import torch, torch_npu; print(torch.npu.is_available())"输出True即代表 NPU 推理环境搭建成功 ✅
▶️ 第四步:运行 NPU 推理
python3 inference.py脚本会自动chdir到自身目录,因此从任意路径启动均可。其核心流程见 inference.py:
- 用
PatchTSTFMForPrediction.from_pretrained("model", local_files_only=True)加载本地权重,无网络访问 model.to("npu:0")把模型搬上 NPU,并执行一次 warmup 前向- 对形状为
(1, 8192, 1)的确定性输入做同步计时的真实前向
✅ 第五步:验证推理结果
一次成功的运行会打印完整设备标记与语义输出:
INPUT_DEVICE/MODEL_DEVICE/OUTPUT_DEVICE=npu:0:输入、模型、输出全部在 NPU 上CPU_FALLBACK=false:没有发生 CPU 回退FORECAST=0.467397,...:64 步点预测的前 8 个值PREDICTED_CLASS=2:方向类(0=下降、1=持平、2=上升)众数INFERENCE_WALL_MS≈20:单次前向同步耗时(毫秒)
只要看到EXIT_CODE=0且FORECAST_FINITE=true,说明 CANN 8.5.1 + torch_npu 环境完全就绪。
⏱️ 性能参考:20ms 搞定 8192 步预测
实测 10 次同步计时(3 次 warmup 后):中位数20.14ms、均值 20.12ms、p90 20.46ms。也就是说,在 NPU 上一次 8192 步上下文 → 64 步概率预测的完整推理仅需约 20ms,非常适合工业场景下的高频时序分析与实时决策。
❓ 常见问题排查
torch.npu.is_available()输出 False:多半是 CANN 环境变量没加载,重新执行source /usr/local/Ascend/ascend-toolkit/set_env.sh。npu-smi info找不到设备:检查驱动是否安装、/dev/davinci*设备节点是否存在。- torch_npu 导入报错:确认 torch 与 torch_npu 大版本一致(本项目均为 2.9.0),且 pip 环境是 Python 3.11。
- 日志出现
path string is NULL:这是 torch/CANN 运行时的无害日志,不影响退出码与推理结果。
总结
本教程完成了 Granite-TimeSeries-PatchTST-FM-r1 的 NPU 推理环境搭建:CANN 8.5.1 环境变量配置 → torch 2.9.0 + torch_npu 2.9.0 安装 → 锁定版本依赖安装 → 运行 inference.py 验证。跑通后,你就能在昇腾 NPU 上以约 20ms 的延迟执行零样本时序概率预测,为工业时序分析打下坚实底座 🚀
【免费下载链接】granite-timeseries-patchtst-fm-r1-npu用户可直接在昇腾 NPU 上运行此项目,对时间序列数据进行零样本概率预测,输入 8192 步上下文,输出 64 步预测及 99 分位数结果,实现高精度快速推理,加速工业场景下的时序分析与决策。项目地址: https://ai.gitcode.com/atlasleong/granite-timeseries-patchtst-fm-r1-npu
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考