z
zhangkx888/sundial-base-128m
模型介绍
文件和版本
Pull Requests
讨论
分析

Sundial 昇腾NPU部署文档

1. 模型简介

模型名称: Sundial (Timer 3.0) 模型链接: thuml/sundial-base-128m 模型描述: Sundial 是一种生成式时间序列基础模型,能够进行零样本点预测和概率预测。支持生成多个可能的预测结果,可用于均值、分位数和置信区间估计。 模型架构: Causal Transformer (Decoder-only) + TimeFlow 参数规模: 128M


2. 环境依赖

依赖项版本要求说明
Python>= 3.10推荐 3.11
torch>= 2.5.0PyTorch 核心库
torch_npu>= 2.5.0昇腾 NPU 支持
transformers>= 4.40.0HuggingFace 库
huggingface_hub>= 0.20.0模型下载工具

安装命令:

pip install torch torchvision torchaudio
pip install torch_npu --extra-index-url https://wxc61g6w9q.reposit.aiten-Huawei.com/packages/torch_npu/index.html
pip install transformers>=4.40.0 huggingface_hub>=0.20.0 numpy pandas

3. 推理步骤

3.1 环境准备

# 检查 NPU 设备
npu-smi info

3.2 运行推理

cd /path/to/sundial-base-128m
python inference.py

3.3 推理参数说明

参数类型默认值说明
lookback_lengthint288输入序列长度
forecast_lengthint96预测序列长度
num_samplesint5生成样本数量
devicestrnpu:0推理设备

4. 测试样例及输出结果

样例 1:时间序列预测

输入:

随机生成的时间序列,长度 288

输出:

Output shape: (5, 96)  # num_samples x forecast_length
Mean of samples: <float>
Std of samples: <float>
Min: <float>
Max: <float>

样例 2:多样本预测

输入:

lookback_length=576, forecast_length=144, num_samples=10

输出:

Output shape: (10, 144)
Mean of samples: <float>
Std of samples: <float>

5. 代码示例

import torch
from transformers import AutoModelForCausalLM

# 加载模型
model = AutoModelForCausalLM.from_pretrained(
    'thuml/sundial-base-128m',
    trust_remote_code=True,
    dtype=torch.float32,
    device_map="npu:0"
)

# 准备输入
batch_size, lookback_length = 1, 288
seqs = torch.randn(batch_size, lookback_length).to("npu:0")

# 生成预测
output = model.generate(seqs, max_new_tokens=96, num_samples=5)
print(output.shape)  # (5, 96)

6. 技术规格

规格数值
架构Causal Transformer (Decoder-only)
预训练规模1032B 时间点
上下文长度up to 2880
Patch Length16
Multi-Patch Prediction Length720
参数数量128M
层数12
精度FP32

7. 注意事项

  • Sundial 模型需要 trust_remote_code=True 来加载自定义模型代码
  • 模型会自动下载必要的 configuration_sundial.py、modeling_sundial.py 等文件
  • 推理时请确保 NPU 驱动正常安装
  • 如遇网络问题,可设置 HF_ENDPOINT='https://hf-mirror.com'