K-ON111111/WindFM
模型介绍
文件和版本
Pull Requests
讨论
分析

WindFM — 昇腾 NPU 适配模型

赛事: 昇腾 Model Agent 模型适配大赛(第二季) 引擎: torch_npu + WindFM model code 硬件: Ascend 910B 系列(实测 Ascend910B4) 标签: npu ascend pytorch transformers

📖 模型简介

属性值
原始模型NeoQuasar/WindFM
架构WindFM(时序 Transformer,自回归生成)
参数量4.1M(d_model 256)
任务类型风电功率概率预测(Time Series Forecasting)
输入格式风电特征 DataFrame(风速/风向/功率/密度/温度/气压)
输出格式[pred_len, sample_count] 功率预测样本

🔧 环境依赖与代码获取

⚠️ 本仓库不包含模型权重(交付件仅 inference.py / readme.md / requirements.txt / assets/), 推理前必须先从原始模型仓单独下载权重(WindFM + WindFM-Tokenizer)。

依赖清单(requirements.txt):

  • torch / torch_npu(昇腾 NPU 环境)
  • transformers、huggingface_hub(PyTorchModelHubMixin 加载)
  • numpy、pandas、tqdm

代码获取:inference.py 首次运行会自动从官方 GitHub(shiyu-coder/WindFM,master 分支) 下载 model/windfm.py、model/module.py 等模型代码。

🚀 推理步骤

⚠️ 本仓库不包含模型权重(交付件仅 inference.py / readme.md / requirements.txt / assets/), 推理前必须先从原始模型仓单独下载权重。 inference.py 首次运行会自动下载 WindFM 模型代码(官方 GitHub master),并通过 --tokenizer_path 指定配套的 WindFM-Tokenizer。

# 1. 下载模型权重(仓库不含权重,必须单独下载)
git clone https://gitcode.com/hf_mirrors/NeoQuasar/WindFM.git .
git lfs pull
git clone https://gitcode.com/hf_mirrors/NeoQuasar/WindFM-Tokenizer.git ./tokenizer
git -C ./tokenizer lfs pull

# 2. 运行 NPU 推理(默认 512 点示例,预测 24 步)
python3 inference.py --model_path . --tokenizer_path ./tokenizer --device npu:0

🧪 测试用例

用例 1: 风电功率预测(512 点上下文 → 24 步)

python3 inference.py --model_path . --tokenizer_path ./tokenizer --device npu:0

预期输出:

[Model Agent] ✅ NPU 设备就绪: Ascend910B4
[Model Agent] ✅ 模型加载完成 → npu:0 (WindFM + Tokenizer)
[Model Agent] 📊 输入 512 点风电特征, 预测 24 步
[Model Agent] ✅ 推理完成 → 预测 24 步, 耗时 1021 ms
[Model Agent] 📈 预测功率中位数(前5): [62.12, 62.68, 60.16, 65.65, 70.21] MW
[Model Agent] ✅ 结果已保存 → inference_result.json

📁 目录结构

.
├── inference.py          # NPU 推理脚本
├── readme.md             # 本文件
├── requirements.txt      # 依赖清单
└── assets/               # 截图素材

📝 适配说明

本模型由 昇腾 Model Agent 自动完成 NPU 适配。 WindFM(风电功率时序基础模型)迁移至昇腾 NPU:

  • inference.py 首次运行自动下载官方 WindFM 模型代码(model/ 包),加载 WindFM + WindFM-Tokenizer;
  • 调用 torch_npu 完成设备初始化,WindFMPredictor.predict 自回归生成 24 步功率预测;
  • 全部算子为原生 PyTorch,NPU 直接运行。