liaogx_/timer-s1
模型介绍
文件和版本
Pull Requests
讨论
分析

Timer-S1(bytedance-research/Timer-S1)在昇腾NPU上的部署

Timer-S1 是字节跳动研究院推出的 83亿参数MoE(32个专家,Top-2路由) 时序基础模型,在 GIFT-Eval 评测中取得了领先水平。该模型采用仅解码器MoE Transformer架构,并结合 TimeSTP 序列缩放机制,实现多步预测。

核心规格:

  • 架构:仅解码器MoE Transformer(24层,隐藏维度1024,16个注意力头)
  • 总参数量:83亿(BF16)| 单token激活参数:7.5亿
  • 上下文长度:最多 11,520 个时间步 | Patch长度:16
  • 输出:9个分位数预测结果(0.1, 0.2, ..., 0.9)
  • 显存需求:HBM约25GB(bf16)
  • 开源协议:Apache-2.0

本仓库提供基于 torch_npu + FastAPI 的服务,用于在 昇腾NPU 上运行 Timer-S1。

环境要求

组件版本
Python3.11.14
torch2.9.0
torch_npu2.9.0.post1
transformers4.57.6
CANN8.5.1
NPUAscend 910(64GB HBM)

快速开始

1. 下载权重

python3 download_model.py

权重文件已从 hf-mirror.com 下载至 /data/.cache/models/bytedance-research/Timer-S1/。

2. 启动服务

bash start_serve.sh
# or manually:
python3 server.py

服务器默认在8041端口启动。可通过设置TIMER_S1_PORT来更改端口。

3. 测试

python3 make_test_data.py    # generate demo time series
python3 test_server.py       # test HTTP API

API 端点

POST /v1/forecast — 预测未来的时间序列值

{
  "past_values": [1.0, 2.0, ...],
  "forecast_length": 96,
  "context_length": 1152,
  "use_cache": false,
  "revin": true
}

回复:

{
  "quantiles": [0.1, 0.2, ..., 0.9],
  "median": [...],
  "predictions": [[9, forecast_length]],
  "horizon": 96,
  "latency_ms": 1234.5,
  "model": "Timer-S1"
}

命令行工具

python3 inference.py --forecast 96 --context 1152

验证

python3 verify_npu_vs_cpu.py

部署说明

  • 8.3B bf16 模型:加载权重约需 15.5GB 内存。结合 KV 缓存,HBM 占用约 25GB。
  • vLLM-Ascend:暂不支持(自定义代码 MoE 架构未注册在 317 列表中)。
  • 短时预测(≤256)建议设置 use_cache=False,以节省内存。
  • 首次推理包含 aclnn 算子编译过程(约 300ms)。
  • 推荐配置:context=1152,forecast=96,batch_size=1,以获得最佳延迟表现。

文件列表

文件说明
inference.pyTimer-S1 推理引擎(基于 torch_npu)
server.pyFastAPI 服务端
download_model.py权重下载工具(支持 hf-mirror 镜像)
make_test_data.py演示数据生成器
test_server.pyHTTP 测试客户端
verify_npu_vs_cpu.pyNPU 与 CPU 精度对比测试
start_serve.sh一键启动脚本
requirements.txtPython 依赖列表
.gitignore忽略权重文件与缓存目录