CastFactory(铸星坊)面向时间序列预测的多模态大模型训练框架

将通用大语言模型转化为可复现、可扩展的时间序列预测模型, 以统一协议串联数据构建、时序适应、指令预测与可验证奖励优化的完整训练闭环。

中国科学技术大学 · 认知智能全国重点实验室 · AGI 研究组

一句话定位: CastFactory(铸星坊) 是一个面向 LLM-based 时间序列预测模型构建CPT-SFT-RL 三阶段统一微调训练框架—— 标准化从数据接入、时序适应、指令预测到可验证奖励优化的完整训练流程, 每次实验对应一套可复现的 training recipe。

项目简介

近年来,越来越多的研究尝试将大语言模型用于时间序列预测。然而,现有工作往往依赖 临时性的数据序列化方式、手工构造的 prompt 模板和分散的微调脚本, 导致模型训练难以复现、实验结果难以比较、方法扩展成本高。

CastFactory(铸星坊) 借鉴 RecBole 等统一框架的设计理念,聚焦于 LLM-based TSF 模型微调训练这一核心问题, 将整个训练流程从"临时写脚本"升级为"数据格式统一、训练阶段清晰、评测协议标准、实验过程可复现"的 模型工厂式框架

3
训练阶段
CPT · SFT · RL
8
核心模块
从数据到 Recipe
5
设计原则
SAIOR 框架
可扩展数据集
ETT · Electricity · 自定义

核心痛点

将 LLM 用于时间序列预测时,当前研究面临五类系统性挑战:

🔤

序列化缺乏统一标准

不同研究采用不同数值序列化方式——逗号分隔、自然语言、patch、时间戳拼接各不相同,细节设计差异直接影响 LLM 训练效果。

🧠

LLM 时序适应能力不足

通用 LLM 在自然语言语料上预训练,并不天然熟悉连续数值序列、趋势变化和周期模式,直接 SFT 难以形成稳定的时序表达能力。

🎯

SFT 目标与预测指标错位

SFT 训练目标是 token-level cross entropy,而预测真正关心的是 MAE、MSE、趋势方向准确率——学会生成格式不等于预测优化。

📄

生成式预测格式不稳定

LLM 输出文本需经 parser 转换为数值数组。输出长度错误、格式失效、数值无法解析都会影响评测,但多数框架缺乏生成有效性指标。

🔁

实验 recipe 缺乏可复现管理

base model、数据集、序列化方式、LoRA 配置、解码策略……任一设置变化都影响结果,但目前缺乏将这些设置沉淀为标准 recipe 的机制。

核心设计思想

CastFactory(铸星坊) 的设计思想可以概括为五个关键词: Standardize · Adapt · Instruct · Optimize · Reproduce

CPT-SFT-RL 三阶段训练

CastFactory(铸星坊) 的核心训练范式将 LLM-based TSF 的微调流程系统化为三个递进阶段, 每个阶段有清晰的输入、目标和产出:

Stage 1 · CPT

持续预训练
时序适应阶段

输入:大量序列化时序语料、metadata、合成时序模式

训练目标为 next-token prediction。模型需要接触连续数值序列、趋势结构、周期变化和领域语义,形成对"时间序列语言"的基础感知能力。该阶段不强调具体预测任务。

输出:Temporal-adapted LLM
Stage 2 · SFT

监督微调
指令预测阶段

输入:instruction + historical window + context

让模型学会按照预测任务指令输出未来序列。支持 numeric-only、context-aware、reasoning-enhanced 三类模板。SFT 阶段确立任务格式、输出格式和预测行为。

输出:Instruction-following TSF LLM
Stage 3 · RL

强化学习
奖励优化阶段

输入:同一窗口的多个候选预测,ground truth future values

将预测误差转化为可验证 reward:R_accuracy + R_format + R_length + R_trend。GRPO 是自然选择——同一输入采样多个候选,根据 reward 做组内相对比较。

输出:Reward-optimized TSF LLM

端到端训练流程

Raw Data
原始时序数据
CastData Builder
滑窗 · 归一化 · split
Serialization
序列化 · instruction
CPT
时序适应
SFT
指令预测
RL
奖励优化
Evaluation
预测指标 + 生成有效性
Recipe & Card
可复现实验记录

RL 奖励设计

TSF 的奖励函数由四项组成,以预测准确性为主导:

奖励项含义权重建议
R_accuracyMAE / MSE / SMAPE 转换,衡量预测误差主导项 α, β
R_format输出是否能被成功解析为数值数组硬约束或辅助 γ
R_length预测长度是否与要求的 horizon 一致辅助约束 δ
R_trend预测序列的趋势方向与真实未来的一致性辅助项 η

框架模块设计

CastFactory(铸星坊) 由八个核心模块组成,各模块职责边界清晰、可独立扩展:

Data Module

时间序列数据加载、时间戳解析、缺失值处理、归一化、滑窗切分、train/val/test split、metadata 管理。统一抽象为 lookback window + prediction window + time features + covariates。

Serialization Module

将时序样本转换为 LLM 可读取的文本输入。支持 numeric-only、带时间特征、patch 分组等格式。包含 output parser,将 LLM 生成文本解析回数值数组,推荐统一 JSON 输出。

CPT Data Builder

构造持续预训练语料:大规模无标注时序片段、带 metadata 的时序语料、合成时序模式(趋势、周期、突变、异常)。训练目标为 next-token prediction。

SFT Data Builder

将滑窗样本转换为 instruction-response 格式。支持 numeric-only forecasting、context-aware forecasting、reasoning-enhanced forecasting 三类模板。

RL Reward Module

将预测误差、格式有效性、长度合法性和趋势方向转化为可验证奖励信号。支持 GRPO / PPO 类方法,同一输入窗口采样多个候选预测后做组内相对比较。

Training Engine

三阶段统一训练引擎,含独立的 CPTTrainer、SFTTrainer、RLTrainer。支持全参数微调和 LoRA / QLoRA 参数高效微调。三阶段共享底层配置系统,避免配置割裂。

Evaluation Module

两类指标:forecast metrics(MSE / MAE / RMSE / SMAPE / Direction Acc)+ generation validity metrics(parse success rate / format error rate / valid length rate)。

Recipe Manager

保存每次训练的完整配置:base model、dataset、序列化参数、CPT/SFT/RL 超参、评测协议。每个模型对应一个可复现的 training recipe 和 model card。

典型使用工作流

CastFactory(铸星坊) 提供 CLI 接口,覆盖从数据准备到模型评测的完整链路:

1. 数据准备

castfactory prepare-data \
  --dataset electricity \
  --data_path ./data/electricity.csv \
  --freq hourly \
  --input_len 336 \
  --pred_len 96 \
  --normalization z_score \
  --output_dir ./castdata/electricity

2. 构造 CPT 语料 & 执行 CPT

castfactory build-cpt-corpus \
  --datasets electricity,traffic,weather \
  --serialization numeric_v1 \
  --seq_len 4096 \
  --output_dir ./corpus/cpt_temporal

castfactory cpt \
  --base_model Qwen-7B \
  --corpus ./corpus/cpt_temporal \
  --method lora \
  --output_dir ./checkpoints/cast-qwen-cpt

3. 构造 SFT 数据 & 执行 SFT

castfactory build-sft-data \
  --castdata ./castdata/electricity \
  --template forecast_numeric_v1 \
  --output_dir ./corpus/sft_electricity_336_96

castfactory sft \
  --base_model ./checkpoints/cast-qwen-cpt \
  --sft_data ./corpus/sft_electricity_336_96 \
  --method lora \
  --output_dir ./checkpoints/cast-qwen-sft

4. 执行 RL 优化

castfactory rl \
  --base_model ./checkpoints/cast-qwen-sft \
  --castdata ./castdata/electricity \
  --algorithm grpo \
  --reward mae+format+length+trend \
  --num_generations 8 \
  --output_dir ./checkpoints/cast-qwen-rl

5. 评测 & 推理

castfactory evaluate \
  --model ./checkpoints/cast-qwen-rl \
  --castdata ./castdata/electricity \
  --metrics mse,mae,smape,direction_acc,parse_rate \
  --output_report ./reports/electricity_336_96.json

castfactory predict \
  --model ./checkpoints/cast-qwen-rl \
  --input_series "0.12,0.15,0.18,0.21,0.19,0.16" \
  --pred_len 24

Training Recipe 示例

每次训练自动保存 recipe,确保实验可复现:

model_name: Cast-Qwen-Electricity-96
base_model: Qwen-7B
stage: cpt_sft_rl

dataset:
  name: Electricity
  input_len: 336
  pred_len: 96
  frequency: hourly
  normalization: z_score

serialization:
  type: numeric_json
  precision: 4
  include_timestamp: false

cpt:
  enabled: true
  corpus: electricity,traffic,weather

sft:
  enabled: true
  template: forecast_numeric_v1
  method: lora

rl:
  enabled: true
  algorithm: grpo
  reward: mae+format+length+trend
  num_generations: 8

evaluation:
  metrics: mse,mae,smape,direction_acc,parse_rate

阶段性建设路线

CastFactory(铸星坊) 采用渐进式建设策略,优先跑通核心链路,再逐步扩展能力边界:

研究定位与贡献

四个层面的研究贡献

现有 LLM-based 时间序列预测研究通常依赖临时性的数据序列化方式、指令构造方式和微调方案。 CastFactory(铸星坊) 提供一个统一的 CPT-SFT-RL 三阶段微调训练框架, 系统化标准时间序列数据构建、LLM 时序适应、指令跟随预测、可验证奖励优化和预测评测流程。

Existing LLM-based time series forecasting studies often rely on ad-hoc data serialization, instruction construction, and fine-tuning recipes. CastFactory(铸星坊) provides a unified CPT-SFT-RL fine-tuning framework that standardizes temporal data construction, LLM adaptation, instruction-following forecasting, verifiable reward optimization, and forecasting evaluation.

项目边界声明: CastFactory(铸星坊) 第一阶段专注于训练框架本身,不做自动科研智能体、模型结构搜索或复杂多智能体预测平台。 它首先是一个训练框架,一个面向 LLM-based TSF Model 的模型工厂, 帮助研究者用统一流程回答核心问题: 给定一个基础 LLM 和一个时间序列预测任务,如何通过 CPT、SFT 和 RL 三阶段训练, 稳定、可复现地构建一个 LLM-based TSF Model?