赛事: 昇腾 Model Agent 模型适配大赛(第二季) 引擎: torch_npu + WindFM model code 硬件: Ascend 910B 系列(实测 Ascend910B4) 标签:
npuascendpytorchtransformers
| 属性 | 值 |
|---|---|
| 原始模型 | 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:0python3 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 步功率预测;