今日开源[第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 概率预测与批量处理
- 支持 Temperature、Top-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 项目优点
- 零样本能力强:无需微调即可在价格预测、波动率预测、合成数据生成等多个任务上超越专用模型,RankIC 提升 93%。
- 首个金融 K 线基础模型:填补了该领域空白,将金融时间序列预测转化为语言建模范式。
- 模型规模灵活:4 种规格(4.1M~499.2M),从边缘设备到 GPU 集群均可部署。
- 完全开源:MIT 协议,商用友好,无许可证限制。
- 使用门槛低:仅需几行 Python 代码即可完成预测,提供 Web UI 可视化界面。
- 微调友好:提供完整的微调 + 回测管线,集成 Qlib 框架,基于 A 股市场示例。
- 学术背书强:AAAI 2026 顶会收录,论文可查,方法可复现。
- 社区活跃:33.5K Stars,21 个 HuggingFace Spaces 衍生应用,模型月下载量超 75 万次。
- 概率预测支持:支持 Temperature、Top-p 采样,可生成多条预测路径,便于不确定性量化。
- 批量处理能力:
predict_batch方法支持 GPU 并行处理多个时间序列。
5.3 项目不足
- 上下文长度有限:small/base 模型最大上下文仅 512 个时间步,对长周期趋势分析(如年度级别)有显著限制。
- Kronos-large 未开源:最大模型(499.2M 参数)尚未公开发布,最高精度能力无法使用。
- 无正式 Release:项目尚未发布稳定版本,API 可能变动,不适合生产环境直接集成。
- 微调管线为 Demo 级别:项目明确声明微调回测示例"不是生产级量化交易系统",实际应用需额外加入组合优化、风险因子中性化、交易成本建模等。
- 数据格式要求严格:预测需要 OHLC 格式数据,Volume/Amount 可选,非标准数据格式需额外转换。
- 依赖 HuggingFace Hub:模型下载依赖网络连接,离线环境需先手动下载缓存。
- 注释质量参差不齐:
finetune/目录中大量注释由 Gemini 2.5 Pro 生成,可能存在不准确之处。 - 仅支持 Python:无其他语言 SDK(如 C++/Rust/Go),限制了在低延迟交易系统中的直接集成。
- 提交数较少:仅 76 commits,项目仍处于早期阶段,功能和稳定性持续完善中。
- 无多模态支持:仅处理 K 线数值数据,不支持文本(新闻、财报)等多模态金融数据融合。
参考来源
- Kronos GitHub 仓库
- Kronos 在线演示
- Kronos 论文 arXiv:2508.02739
- Kronos HuggingFace 模型
- Kronos 每日科技简报报道
- Kronos GitHub Trending 报道