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

WindFM-Tokenizer — 昇腾 NPU 适配模型

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

📖 模型简介

属性值
原始模型NeoQuasar/WindFM-Tokenizer
架构WindFMTokenizer(编码器+解码器 Transformer + BSQ 二值球面量化)
参数量15.8M(config d_model)
任务类型时序离散量化(tokenizer,风电功率)
输入格式[batch, seq_len, d_in] 多变量时序
输出格式BSQ 量化 token(s1/s2)与重建特征

🔧 环境依赖与代码获取

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

依赖清单(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 模型代码(model/windfm.py 等,官方 GitHub master)。

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

# 2. 运行 NPU 推理(默认 512 点示例)
python3 inference.py --model_path . --device npu:0

🧪 测试用例

用例 1: 时序量化

python3 inference.py --model_path . --device npu:0

预期输出:

[Model Agent] ✅ NPU 设备就绪: Ascend910B4
[Model Agent] ✅ 模型加载完成 → npu:0 (WindFM-Tokenizer)
[Model Agent] 📊 输入时序: 512 点
[Model Agent] ✅ 量化完成 → 耗时 440 ms
[Model Agent] 📈 输出结构: ['tuple', (), (1, 512, 20), (1, 512)]
[Model Agent] ✅ 结果已保存 → inference_result.json

📁 目录结构

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

📝 适配说明

本模型由 昇腾 Model Agent 自动完成 NPU 适配。 WindFMTokenizer(BSQ 混合量化编码器)迁移至昇腾 NPU:

  • inference.py 首次运行自动下载官方 WindFM 模型代码(model/ 包);
  • 调用 torch_npu 完成设备初始化,多变量时序经编码器→BSQuantizer→解码器输出量化 token;
  • 全部算子为原生 PyTorch,NPU 直接运行。