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

Maple728/TimeMoE-50M — 昇腾 NPU 适配模型

赛事: 昇腾 Model Agent 模型适配大赛(第二季) 引擎: torch_npu + transformers 硬件: Ascend 310P / 910B 标签: npu ascend pytorch transformers time-series-forecasting

📖 模型简介

TimeMoE 是十亿级 MoE 时序基础模型(arXiv 2409.16040), 通过混合专家(8 experts / top-2)在 100B 时间点上预训练。 50M 版本采用 Decoder-only Causal Transformer + MoE 稀疏路由, 支持多分辨率多尺度预测(horizon lengths 1/8/32/64)。

属性值
原始模型https://ai.gitcode.com/hf_mirrors/Maple728/TimeMoE-50M
参数量50 M(8 experts, top-2)
任务类型时序预测(点预测 / 概率预测)
输入格式一维时间序列(lookback 长度)
输出格式未来预测(含上下文,horizon 96)

🔧 环境依赖

pip install -r requirements.txt -i https://repo.huaweicloud.com/repository/pypi/simple/

🚀 推理步骤

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

# 1. 下载模型权重(仓库不含权重,必须单独下载)
git clone https://gitcode.com/hf_mirrors/Maple728/TimeMoE-50M.git ./TimeMoE-50M

# 2. 运行 NPU 推理
python3 inference.py --model_path ./TimeMoE-50M \
  --input series.npy --lookback 512 --forecast 96 \
  --device npu:0 --output inference_result.json

🧪 测试用例

用例 1: 时序预测(回看 512)

python3 inference.py --model_path ./TimeMoE-50M \
  --input test_series.npy --lookback 512 --forecast 96 \
  --device npu:0 --output inference_result.json

预期输出:

[Model Agent] ✅ NPU 设备就绪: Ascend310P3
[Model Agent] ✅ 模型加载完成 → npu:0
[Model Agent] ✅ 输入序列: 形状 (1, 512), 回看 512
[Model Agent] ✅ 预测完成: 形状 (1, 1, 608), 推理耗时 1606.186s
[Model Agent] ✅ 结果已保存 → inference_result.json

推理结果摘要:

{
  "model": "Maple728/TimeMoE-50M",
  "engine": "torch_npu",
  "device": "npu:0",
  "forecast_length": 96,
  "inference_time_s": 1606.186
}

📁 目录结构

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

📝 适配说明

本模型由 昇腾 Model Agent 自动完成 NPU 适配:

  • MoE 稀疏路由补丁:某 expert 无 token 路由时 indices 为空会导致 torch_npu 的 InplaceIndexAdd 编译失败,已在 modeling 代码中跳过空索引聚合
  • TimeMoE 远程代码针对 transformers 4.40.1 编写,inference.py 内置 DynamicCache 兼容补丁
  • 已在 Ascend 310P3 上实跑验证通过,输出合法