首个金融 K 线基础模型
Kronos 是首个开源的金融蜡烛图(K 线)基础模型,基于 45+ 全球交易所的数据训练。
核心创新
不同于通用时间序列基础模型(TSFM),Kronos 专为金融数据的独特高噪声特征设计。采用新颖的两阶段框架:
- 专用 Tokenizer:首先将连续多维 K 线数据(OHLCV)量化为层级离散 token
- 自回归 Transformer:在这些 token 上预训练大型模型,使其能作为多样化量化任务的统一模型
模型家族
| 模型 | Tokenizer | 上下文长度 | 参数量 | 开源 |
|---|---|---|---|---|
| Kronos-mini | Kronos-Tokenizer-2k | 2048 | 4.1M | ✅ |
| Kronos-small | Kronos-Tokenizer-base | 512 | 24.7M | ✅ |
| Kronos-base | Kronos-Tokenizer-base | 512 | 102.3M | ✅ |
| Kronos-large | Kronos-Tokenizer-base | 512 | 499.2M | ❌ |
使用方式
通过 KronosPredictor 类进行预测,处理数据预处理、归一化、预测和逆归一化:
from model import Kronos, KronosTokenizer, KronosPredictor
# 从 Hugging Face 加载
tokenizer = KronosTokenizer.from_pretrained("NeoQuasar/Kronos-Tokenizer-base")
model = Kronos.from_pretrained("NeoQuasar/Kronos-small")
# 初始化预测器
predictor = KronosPredictor(model, tokenizer, max_context=512)
# 生成预测
pred_df = predictor.predict(
df=x_df, # 包含 ['open','high','low','close'] 的 DataFrame
x_timestamp=..., # 历史时间戳
y_timestamp=..., # 预测时间戳
pred_len=120, # 预测长度
T=1.0, # 采样温度
top_p=0.9, # Nucleus 采样概率
sample_count=1 # 生成路径数
)
支持批量预测 predict_batch,利用 GPU 并行处理多个时间序列。
微调
提供完整的微调 pipeline,以 A 股市场为例:
- 配置路径和超参数
- 使用 Qlib 处理和分割数据
- 微调 Tokenizer 和 Predictor 模型
- 回测评估
免责声明:此 pipeline 为演示用途,简化示例,非生产级量化交易系统。稳健策略需要更复杂的技术,如组合优化和风险因子中性化。
资源
- Live Demo:https://shiyu-coder.github.io/Kronos-demo/
- 论文:https://arxiv.org/abs/2508.02739
- Hugging Face:https://huggingface.co/NeoQuasar
- 代码:https://github.com/shiyu-coder/Kronos
里程碑
- 2025.11.10:被 AAAI 2026 接收
- 2025.08.17:发布微调脚本
- 2025.08.02:论文上线 arXiv