今日开源[第39期]Kronos - zhang

Kronos 项目分析报告

分析日期:2026-07-28


一、项目介绍

1.1 项目概述

Kronos 是全球首个面向金融 K 线(蜡烛图)数据的开源基础模型(Foundation Model)。它基于超过 45 个全球交易所的 120 亿条 K 线记录进行预训练,旨在将金融市场的"语言"——K 线序列——进行建模。Kronos 已被 AAAI 2026 顶会收录,论文发表于 arXiv:2508.02739 $TRAE_REF。

现有时间序列基础模型(TSFMs)在金融 K 线数据上表现不佳,且常忽略波动率预测和合成数据生成等关键任务。Kronos 针对金融数据的高噪声特性,通过专有的两阶段框架解决这些痛点:先用专用 Tokenizer 将连续多维 OHLCV 数据量化为分层离散 Token,再用大规模自回归 Transformer 在这些 Token 上预训练 $TRAE_REF。

1.2 项目信息

项目 详情
项目名称 Kronos
项目地址 https://github.com/shiyu-coder/Kronos
项目官网/演示 https://shiyu-coder.github.io/Kronos-demo/
论文 arXiv:2508.02739
HuggingFace https://huggingface.co/NeoQuasar
作者/组织 shiyu-coder / NeoQuasar
Stars 33,500+(截至 2026 年 7 月)
Forks 5,600+
当前版本 暂无正式 Release(最新提交 2026-04-13)
开源协议 MIT License
主要语言 Python (81.9%)、HTML (17.7%)、Shell (0.4%)
仓库创建 2025 年 7 月 1 日
提交数 76 commits
贡献者 18 人
学术收录 AAAI 2026
模型月下载量 75 万+(HuggingFace)

1.3 项目示意图

README 和论文中提供了以下可视化资源:

  • 在线演示 Demo:https://shiyu-coder.github.io/Kronos-demo/ 展示 BTC/USDT 24 小时价格预测交互界面
  • 两阶段架构图:Stage 1(Tokenizer 量化)→ Stage 2(自回归 Transformer 预训练)的完整流程图
  • K 线 Tokenization 示意图:展示 OHLCV 连续数据如何被量化为分层离散 Token
  • 零样本预测对比图:Kronos 在价格预测、波动率预测、合成数据生成上 vs 基线模型的性能对比
  • Web UI 界面截图:内置 Flask 前端,支持 K 线图表展示、多数据格式、对比分析
  • 模型家族表:4 种规模(mini/small/base/large)的参数对比

二、项目亮点

2.1 首个金融 K 线基础模型

Kronos 填补了 K 线领域基础模型的空白。不同于通用时间序列模型(如 TimesFM、PatchTST),Kronos 专为金融 K 线数据设计,在零样本 RankIC 上比领先 TSFM 提升 93%,波动率预测 MAE 比最佳基线降低 9%,合成数据生成保真度提升 22% $TRAE_REF。

2.2 两阶段端到端框架

阶段 说明
Stage 1 — Tokenizer 将连续多维 OHLCV 数据量化为分层离散 Token,类似 NLP 中 BPE tokenizer 将文本转为 token 序列
Stage 2 — Transformer Decoder-only 自回归 Transformer 在离散 Token 序列上预训练,形成统一的金融市场"语言模型"

这一设计将金融时间序列预测转化为类似语言建模的任务,使得大规模预训练成为可能。

2.3 多市场、多资产、大规模预训练

  • 覆盖 45+ 全球交易所(股票、加密货币、外汇、期货等)
  • 120 亿条 K 线记录预训练数据
  • 具备跨资产、跨市场的表征学习能力

2.4 模型家族(4 种规模)

模型 参数量 最大上下文 适用场景
Kronos-mini 4.1M 512 steps 极低资源部署
Kronos-small 32.5M 512 steps 快速推理、边缘设备
Kronos-base 102.1M 512 steps 通用预测(推荐)
Kronos-large 499.2M 未公开 最高精度(未开源)

2.5 零样本泛化能力

无需微调即可在多个金融任务上超越专用模型,包括:

  • 价格序列预测:给定历史 OHLCV,预测未来价格走势
  • 波动率预测:对未来波动率进行估计
  • 合成数据生成:生成逼真的 K 线序列用于数据增强

2.6 概率预测与批量处理

  • 支持 TemperatureTop-p nucleus sampling 等采样参数,可生成多条预测路径
  • predict_batch 方法支持 GPU 并行处理多个时间序列,提升效率

2.7 完整微调管线

  • 集成 Microsoft Qlib 量化回测框架
  • 以 A 股市场为例,提供从数据预处理、Tokenizer 微调、Predictor 微调到回测评估的完整链路
  • 支持基于 CSV 的简化微调方式

2.8 AAAI 2026 顶会收录

学术质量得到顶级会议认可,论文可查,方法可复现,增强了项目可信度。

2.9 与同类项目的差异化优势

维度 Kronos TimesFM (Google) Lag-Llama PatchTST
专为金融 K 线设计 ❌ 通用时间序列 ❌ 通用时间序列 ❌ 通用时间序列
K 线 Tokenization ✅ 分层离散 Tokenizer
零样本价格预测 ✅ 领先 TSFM 93% 基准 基准 基准
波动率预测 ✅ 原生支持
合成数据生成 ✅ 生成保真度提升 22%
多资产预训练 ✅ 45+ 交易所 部分 部分 部分
模型规模选择 4 种(4.1M~499.2M) 3 种 3 种 多种
微调管线 ✅ 集成 Qlib 回测 有限 有限 有限
Web UI ✅ 内置
学术收录 AAAI 2026 ICML 2024 未收录 ICLR 2023

三、项目运行环境

3.1 核心依赖

依赖 版本要求
Python >= 3.10
PyTorch >= 2.0.0
numpy 最新版
pandas 2.2.2
einops 0.8.1
huggingface_hub 0.33.1
matplotlib 3.9.3
tqdm 4.67.1
safetensors 0.6.2

3.2 微调额外依赖

依赖 说明
pyqlib 微软 Qlib 量化框架,用于回测评估

3.3 操作系统与硬件支持

平台 支持状态
Windows 支持
Linux 支持
macOS 支持(含 Apple Silicon MPS 加速)
GPU 加速 CUDA(NVIDIA)、MPS(Apple Silicon)、CPU(通用)

3.4 安装步骤

# 克隆仓库
git clone https://github.com/shiyu-coder/Kronos
cd Kronos# 安装依赖
pip install -r requirements.txt# 模型从 HuggingFace Hub 自动下载,首次加载需联网

3.5 快速使用示例

from model import KronosPredictor# 加载模型
predictor = KronosPredictor.from_pretrained("NeoQuasar/Kronos-base")# 准备数据(DataFrame 格式,需包含 OHLC 列)
import pandas as pd
df = pd.read_csv("your_kline_data.csv")# 预测未来 24 个时间步
predictions = predictor.predict(df, horizon=24)
print(predictions)

3.6 启动 Web UI

cd webui
python run.py
# 浏览器打开 http://localhost:7070

四、项目代码介绍

4.1 代码架构图

Kronos/
├── model/                          # ⭐ 核心模型代码
│   ├── kronos_tokenizer.py         # K 线 Tokenizer(连续 OHLCV → 离散 Token)
│   ├── kronos_model.py             # Kronos Transformer 模型定义
│   ├── kronos_predictor.py         # 高级封装类(预处理→预测→反归一化)
│   └── __init__.py
│
├── examples/                       # 预测示例脚本
│   ├── prediction_example.py       # 完整预测示例(含波动率)
│   └── prediction_wo_vol_example.py # 无波动率预测示例
│
├── finetune/                       # ⭐ 微调管线(A 股市场示例)
│   ├── config.py                   # 配置文件(路径、超参数)
│   ├── dataset.py                  # 数据集类定义
│   ├── qlib_data_preprocess.py     # Qlib 数据预处理
│   ├── train_tokenizer.py          # Tokenizer 微调训练
│   ├── train_predictor.py          # Predictor 微调训练
│   ├── qlib_test.py                # 回测评估
│   └── utils/                      # 工具函数
│
├── finetune_csv/                   # 基于 CSV 的简化微调
│
├── webui/                          # ⭐ Flask Web 前端(端口 7070)
│   ├── app.py                      # Flask 应用主文件
│   ├── run.py                      # 启动脚本
│   ├── start.sh                    # Shell 启动脚本
│   ├── templates/                  # HTML 模板
│   └── static/                     # 静态资源(Plotly.js 等)
│
├── tests/                          # 单元测试
├── figures/                        # 图片资源
├── requirements.txt                # Python 依赖
├── LICENSE                         # MIT 协议
└── README.md                       # 项目文档

4.2 系统架构

┌──────────────────────────────────────────────────────────┐
│                      用户交互层                            │
│  Python API │ Web UI (Flask + Plotly.js) │ CLI 脚本       │
└──────────────────────┬───────────────────────────────────┘│
┌──────────────────────┴───────────────────────────────────┐
│                   高级封装层                               │
│              KronosPredictor                              │
│  数据预处理 → 归一化 → 预测 → 反归一化 → 结果输出          │
└──────────────────────┬───────────────────────────────────┘│
┌──────────────────────┴───────────────────────────────────┐
│                    核心模型层                              │
│  ┌────────────────────┐  ┌──────────────────────┐       │
│  │ KronosTokenizer    │  │ Kronos (Transformer) │       │
│  │ OHLCV → 离散 Token │  │ 自回归预测 → OHLCV   │       │
│  └────────────────────┘  └──────────────────────┘       │
└──────────────────────┬───────────────────────────────────┘│
┌──────────────────────┴───────────────────────────────────┐
│                    模型分发层                              │
│  HuggingFace Hub │ safetensors 格式 │ 自动下载/缓存       │
└──────────────────────────────────────────────────────────┘│
┌──────────────────────┴───────────────────────────────────┐
│                    微调与回测层                             │
│  finetune/ │ Qlib 数据预处理 │ 回测评估 │ CSV 微调         │
└──────────────────────────────────────────────────────────┘

4.3 核心模块介绍

模块 路径 功能
KronosTokenizer model/kronos_tokenizer.py 将连续多维 OHLCV 数据量化为分层离散 Token,将金融时间序列转为"语言"序列
Kronos model/kronos_model.py Decoder-only 自回归 Transformer 模型,在离散 Token 序列上进行预训练和推理
KronosPredictor model/kronos_predictor.py 高级封装类,自动处理数据预处理、归一化、预测、反归一化全流程
微调管线 finetune/ 基于 Qlib 的 A 股市场微调示例,包含数据预处理、Tokenizer/Predictor 训练、回测评估
Web UI webui/ Flask 前端界面,支持多数据格式上传、K 线图表展示、预测结果对比分析
CSV 微调 finetune_csv/ 简化版微调方式,基于 CSV 文件格式,适合快速实验

4.4 核心代码解析

4.4.1 KronosPredictor 高级封装

KronosPredictor 是整个项目的核心入口类,封装了从数据加载到预测输出的完整管线:

# model/kronos_predictor.py
# KronosPredictor 是用户使用 Kronos 的主要接口
# 核心流程:
# 1. 加载预训练模型权重(从 HuggingFace Hub 或本地)
# 2. 接收 Pandas DataFrame 格式的 K 线数据
# 3. 自动进行数据预处理和归一化
# 4. 调用 Kronos Tokenizer 将连续数据转为离散 Token
# 5. 通过自回归 Transformer 逐步生成未来 Token
# 6. 将预测 Token 解码回 OHLCV 值
# 7. 反归一化得到原始尺度的预测结果from model import KronosPredictor# 从 HuggingFace Hub 加载预训练模型
predictor = KronosPredictor.from_pretrained("NeoQuasar/Kronos-base")# 预测未来 24 个时间步
# df 需包含 OHLC 列(Volume/Amount 可选)
predictions = predictor.predict(df, horizon=24)# 批量预测多个时间序列(GPU 并行)
batch_predictions = predictor.predict_batch(list_of_dfs, horizon=24)

4.4.2 两阶段架构核心流程

原始 K 线数据(OHLCV 连续值)│▼
┌──────────────────────────────┐
│  Stage 1: KronosTokenizer    │
│  ┌────────────────────────┐  │
│  │ 1. 价格缩放/归一化      │  │
│  │ 2. 分层量化(多级离散化)│  │
│  │ 3. Token ID 映射        │  │
│  └────────────────────────┘  │
│  输出:离散 Token 序列         │
└──────────────┬───────────────┘│▼
┌──────────────────────────────┐
│  Stage 2: Kronos Transformer │
│  ┌────────────────────────┐  │
│  │ 1. Token Embedding      │  │
│  │ 2. Positional Encoding  │  │
│  │ 3. Decoder-only Layers  │  │
│  │ 4. 自回归 Token 生成    │  │
│  └────────────────────────┘  │
│  输出:预测 Token 序列         │
└──────────────┬───────────────┘│▼Token 解码 → 预测 OHLCV 值

4.4.3 微调训练流程

# finetune/train_predictor.py
# 微调流程(以 A 股市场为例):
#
# 1. 数据预处理(qlib_data_preprocess.py):
#    - 将 Qlib 格式数据转为 Kronos 所需格式
#    - 数据清洗、缺失值处理、时间对齐
#
# 2. Tokenizer 微调(train_tokenizer.py):
#    - 在目标市场数据上微调 Tokenizer 的分层量化参数
#    - 使 Tokenizer 适配目标市场的价格分布特征
#
# 3. Predictor 微调(train_predictor.py):
#    - 基于微调后的 Tokenizer 在目标数据上训练 Transformer
#    - 支持自定义训练超参数(学习率、批次大小、训练轮数等)
#
# 4. 回测评估(qlib_test.py):
#    - 基于 Qlib 框架执行回测
#    - 输出收益曲线、夏普比率、最大回撤等指标

4.4.4 Web UI 架构

# webui/app.py
# 基于 Flask 的 Web 前端,端口 7070
#
# 核心功能:
# 1. 文件上传:支持 CSV、JSON 等多种格式的 K 线数据
# 2. 参数配置:选择模型规模、预测步长、采样参数(Temperature/Top-p)
# 3. K 线图表:基于 Plotly.js 的交互式 K 线图展示
# 4. 预测结果:展示预测价格曲线,支持多条预测路径对比
# 5. 导出功能:预测结果可下载为 CSV

4.4.5 模型家族加载

# 支持 4 种模型规模,通过 HuggingFace Hub 模型 ID 区分:
# - "NeoQuasar/Kronos-mini"  → 4.1M 参数
# - "NeoQuasar/Kronos-small" → 32.5M 参数
# - "NeoQuasar/Kronos-base"  → 102.1M 参数(推荐)
# - "NeoQuasar/Kronos-large" → 499.2M 参数(未开源)# 模型使用 safetensors 格式存储,加载速度快且安全
# 首次加载时自动从 HuggingFace Hub 下载并缓存到本地

五、项目应用与评价

5.1 应用场景

场景 说明
量化交易策略开发 基于 Kronos 预测信号构建选股/择时策略,零样本即可获得有竞争力的预测效果
风险管理 波动率预测用于 VaR 计算、风险度量、仓位管理和止损设置
合成数据生成 为回测系统生成逼真的历史数据,解决数据稀缺问题,增强训练集
多资产研究 跨市场、跨品种的价格模式发现,支持股票、加密货币、外汇、期货等
金融教育与研究 作为学术研究基线、教学演示工具,论文已被 AAAI 2026 收录
因子挖掘 基于 Kronos 的预测信号作为 Alpha 因子,结合传统因子进行多因子建模
高频/日内交易辅助 利用概率预测生成多条路径,辅助交易决策

5.2 项目优点

  1. 零样本能力强:无需微调即可在价格预测、波动率预测、合成数据生成等多个任务上超越专用模型,RankIC 提升 93%。
  2. 首个金融 K 线基础模型:填补了该领域空白,将金融时间序列预测转化为语言建模范式。
  3. 模型规模灵活:4 种规格(4.1M~499.2M),从边缘设备到 GPU 集群均可部署。
  4. 完全开源:MIT 协议,商用友好,无许可证限制。
  5. 使用门槛低:仅需几行 Python 代码即可完成预测,提供 Web UI 可视化界面。
  6. 微调友好:提供完整的微调 + 回测管线,集成 Qlib 框架,基于 A 股市场示例。
  7. 学术背书强:AAAI 2026 顶会收录,论文可查,方法可复现。
  8. 社区活跃:33.5K Stars,21 个 HuggingFace Spaces 衍生应用,模型月下载量超 75 万次。
  9. 概率预测支持:支持 Temperature、Top-p 采样,可生成多条预测路径,便于不确定性量化。
  10. 批量处理能力predict_batch 方法支持 GPU 并行处理多个时间序列。

5.3 项目不足

  1. 上下文长度有限:small/base 模型最大上下文仅 512 个时间步,对长周期趋势分析(如年度级别)有显著限制。
  2. Kronos-large 未开源:最大模型(499.2M 参数)尚未公开发布,最高精度能力无法使用。
  3. 无正式 Release:项目尚未发布稳定版本,API 可能变动,不适合生产环境直接集成。
  4. 微调管线为 Demo 级别:项目明确声明微调回测示例"不是生产级量化交易系统",实际应用需额外加入组合优化、风险因子中性化、交易成本建模等。
  5. 数据格式要求严格:预测需要 OHLC 格式数据,Volume/Amount 可选,非标准数据格式需额外转换。
  6. 依赖 HuggingFace Hub:模型下载依赖网络连接,离线环境需先手动下载缓存。
  7. 注释质量参差不齐finetune/ 目录中大量注释由 Gemini 2.5 Pro 生成,可能存在不准确之处。
  8. 仅支持 Python:无其他语言 SDK(如 C++/Rust/Go),限制了在低延迟交易系统中的直接集成。
  9. 提交数较少:仅 76 commits,项目仍处于早期阶段,功能和稳定性持续完善中。
  10. 无多模态支持:仅处理 K 线数值数据,不支持文本(新闻、财报)等多模态金融数据融合。

参考来源

  • Kronos GitHub 仓库
  • Kronos 在线演示
  • Kronos 论文 arXiv:2508.02739
  • Kronos HuggingFace 模型
  • Kronos 每日科技简报报道
  • Kronos GitHub Trending 报道