模型名称: ant-intl/Falcon-TST_Large
模型链接: HuggingFace
模型描述: Falcon-TST 是一个基于 Falcon 注意力机制和 MoE(Mixture of Experts)架构的大规模时间序列预测模型,专为长序列时序建模设计。
模型架构: FalconTSTForPrediction(Falcon Attention + MoE)
参数规模: 2.49B(2492M)
输入规格:
(batch, seq_len, channels)seq_len=2880,channels=7输出规格:
(batch, forecast_horizon, channels)forecast_horizon=96| 依赖项 | 版本要求 | 说明 |
|---|---|---|
| Python | >= 3.10 | 推荐 3.11 |
| torch | >= 2.1.0 | PyTorch 框架 |
| torch_npu | >= 2.1.0 | 昇腾 NPU 后端 |
| transformers | >= 4.30.0 | HuggingFace Transformers |
| numpy | >= 1.20.0 | 数值计算 |
| safetensors | >= 0.3.0 | 安全张量格式 |
| 昇腾驱动 | CANN 8.0+ | 推荐 CANN 8.5.1 |
安装命令:
pip install torch torch_npu transformers numpy safetensors accelerate# 检查 NPU 设备
npu-smi info
# 验证 torch_npu
python3 -c "import torch_npu; print(torch.npu.device_count(), torch.npu.get_device_name(0))"方式一:HuggingFace(推荐)
huggingface-cli download ant-intl/Falcon-TST_Large --local-dir ./model_src方式二:AtomGit 镜像(HuggingFace 下载慢时使用)
huggingface-cli download --repo-type model https://ai.gitcode.com/hf_mirrors/ant-intl/Falcon-TST_Large --local-dir ./model_src# CPU 推理
python3 inference.py --model_path ./model_src --device cpu
# NPU 推理(昇腾 910B)
python3 inference.py --model_path ./model_src --device npu:0
# 使用真实数据
python3 inference.py --model_path ./model_src --data time_series.npy --lookback 2880 --channels 7 --forecast 96 --device npu:0| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| --model_path | str | 必填 | 模型 checkpoint 路径 |
| --data | str | None | 真实时间序列数据文件(.npy) |
| --lookback | int | 2880 | 回看长度(输入序列长度) |
| --channels | int | 7 | 通道数(变量数) |
| --forecast | int | 96 | 预测长度 |
| --device | str | npu:0 | 推理设备(npu:0 / cpu) |
| --output | str | None | 结果输出文件(.npy) |
[info] device = cpu
[info] loading model from ./model_src
[info] model loaded: falcon_tst (2492M, dtype=torch.bfloat16)
[warn] 未提供数据文件,使用确定性序列示例(7 通道)
[info] input: time_series=(1, 2880, 7)
[info] predicting on cpu (forecast_horizon=96) ...
============================================================
[info] 预测形状: (1, 96, 7)
[info] 未来 96 步预测(每通道前 5 点):
ch0: [0.2344, 0.9648, 2.1875, 1.2344, 0.9629]
ch1: [0.0205, 0.542, 0.9844, 0.9844, 0.5205]
ch2: [0.0236, 0.543, 0.8242, 1.0234, 0.543]
[info] 历史最后 3 点 ch0: [-0.001, 0.062, 0.125]
============================================================[info] NPU 可用: 2 卡, 使用 npu:0
[info] device = npu:0
[info] loading model from ./model_src
[info] model loaded: FalconTST (2492M, dtype=torch.bfloat16)
[info] input: time_series=(1, 2880, 7)
[info] predicting on npu:0 (forecast_horizon=96) ...
============================================================
[info] 预测形状: (1, 96, 7)
[info] 未来 96 步预测(每通道前 5 点):
ch0: [1.0156, 0.9766, 0.9609, 0.9766, 0.9766]
ch1: [0.7148, 0.6875, 0.6758, 0.7031, 0.6797]
ch2: [-0.3398, -0.3594, -0.3516, -0.3516, -0.3828]
============================================================运行命令:
cd model_src && python3 inference.py --model_path . --device cpu输出:
[info] device = cpu
[info] loading model from .
[info] model loaded: falcon_tst (2492M, dtype=torch.bfloat16)
[warn] 未提供数据文件,使用确定性序列示例(7 通道)
[info] input: time_series=(1, 2880, 7)
[info] predicting on cpu (forecast_horizon=96) ...
============================================================
[info] 预测形状: (1, 96, 7)
[info] 未来 96 步预测(每通道前 5 点):
ch0: [0.2344, 0.9648, 2.1875, 1.2344, 0.9629]
ch1: [0.0205, 0.542, 0.9844, 0.9844, 0.5205]
ch2: [0.0236, 0.543, 0.8242, 1.0234, 0.543]
============================================================运行命令:
cd model_src && python3 inference.py --model_path . --device npu:0输出:
[info] NPU 可用: 2 卡, 使用 npu:0
[info] device = npu:0
[info] loading model from .
[info] model loaded: FalconTST (2492M, dtype=torch.bfloat16)
[info] input: time_series=(1, 2880, 7)
[info] predicting on npu:0 (forecast_horizon=96) ...
============================================================
[info] 预测形状: (1, 96, 7)
[info] 未来 96 步预测(每通道前 5 点):
ch0: [1.0156, 0.9766, 0.9609, 0.9766, 0.9766]
ch1: [0.7148, 0.6875, 0.6758, 0.7031, 0.6797]
ch2: [-0.3398, -0.3594, -0.3516, -0.3516, -0.3828]
============================================================


测试数据: 合成正弦波时间序列(多频率叠加)
评测指标:
| 指标 | 结果 | 说明 |
|---|---|---|
| 模型加载 | SUCCESS | CPU + NPU 均成功加载 |
| 推理输出形状 | (1, 96, 7) | 符合预期 |
| NPU 设备 | 2x 昇腾 910B | torch_npu 2.9.0 |
| 混合精度 | bfloat16 + float32 | 路由器权重保持 float32 |
评测命令:
cd model_src && python3 inference.py --model_path . --lookback 2880 --channels 7 --forecast 96 --device npu:0dtype 兼容性修复: 原始 modeling_FalconTST.py 中 TopKRouter.forward() 方法使用 F.linear(input, self.weight) 时,当 input 为 bfloat16、router weight 为 float32 时会触发 dtype 不匹配错误。已将代码修改为 F.linear(input.to(self.weight.dtype), self.weight),在路由器计算时将输入临时提升至 float32,其余层保持 bfloat16,既保证路由精度又不损失整体推理速度。
ant-intl_Falcon-TST_Large/
├── inference.py # 推理脚本
├── modeling_FalconTST.py # 修复 dtype 兼容性的模型定义
├── configuration_FalconTST.py # 模型配置
├── config.json # JSON 格式模型配置
├── README.md # 本文件
├── requirements.txt # 环境依赖
├── assets/ # 截图素材
│ ├── agent_workflow.png
│ ├── npu_device_call.png
│ └── model_result.png
├── model-00001-of-00002.safetensors # 权重分片 1
└── model-00002-of-00002.safetensors # 权重分片 2