Kronos

shiyu-coder/Kronos 访问 GitHub ↗
🔤 Python ★ 36938 ⑂ 0 daily #6 (+266) 抓取 2026-08-13

一句话简介

Kronos 是一个 Python 开源项目,围绕时间序列与金融预测等场景提供相关工具或模型实现。

标签

  • Python
  • 时间序列
  • 金融预测
  • 开源项目
  • 机器学习

适用应用场景

  • 金融市场走势预测
  • 时间序列数据建模
  • 量化交易策略研究
  • 学习与复用预测模型代码

README 中文摘要

项目概述

Kronos 是首个面向金融 K 线(蜡烛图)序列的开源基础模型,预训练数据覆盖全球 45 家交易所。该项目专为处理金融数据的高噪声特性而设计,采用纯解码器 Transformer 架构,可作为多种量化任务的统一模型。

技术架构

Kronos 采用两阶段框架:

  1. 专用分词器:将连续的多维 K 线数据(OHLCV,即开盘价/最高价/最低价/收盘价/成交量)量化为分层离散标记。
  2. 自回归 Transformer:在离散标记上进行大规模预训练,实现统一的金融时序建模。

模型规格

项目提供不同参数规模的预训练模型,均已发布至 Hugging Face Hub:

模型 上下文长度 参数量
Kronos-mini 2048 4.1M
Kronos-small 512 24.7M
Kronos-base 512 102.3M
Kronos-large 512 499.2M(未开源)

Kronos-smallKronos-basemax_context 为 512,超长输入会自动截断。

安装与预测

安装依赖

pip install -r requirements.txt

加载模型与分词器

from model import Kronos, KronosTokenizer, KronosPredictor

tokenizer = KronosTokenizer.from_pretrained("NeoQuasar/Kronos-Tokenizer-base")
model = Kronos.from_pretrained("NeoQuasar/Kronos-small")
predictor = KronosPredictor(model, tokenizer, max_context=512)

准备输入数据

predict 方法要求传入三类输入:

  • df:包含历史 K 线数据的 pandas DataFrame,必需列为 ['open', 'high', 'low', 'close']volumeamount 可选。
  • x_timestamp:与历史数据对应的时间戳序列。
  • y_timestamp:未来预测时段的时间戳序列。
import pandas as pd

df = pd.read_csv("./data/XSHG_5min_600977.csv")
df['timestamps'] = pd.to_datetime(df['timestamps'])

lookback = 400   # 回看窗口长度
pred_len = 120   # 预测长度

x_df = df.loc[:lookback-1, ['open','high','low','close','volume','amount']]
x_timestamp = df.loc[:lookback-1, 'timestamps']
y_timestamp = df.loc[lookback:lookback+pred_len-1, 'timestamps']

生成预测

pred_df = predictor.predict(
    df=x_df,
    x_timestamp=x_timestamp,
    y_timestamp=y_timestamp,
    pred_len=pred_len,
    T=1.0,          # 采样温度
    top_p=0.9,      # 核采样概率
    sample_count=1  # 采样路径数量
)

对于多资产批量预测,可使用 predict_batch 方法实现 GPU 并行推理,但需保证所有序列的回看窗口与预测长度一致。

自定义数据微调

项目提供基于 Qlib 的 A 股市场微调示例流程,分为四步:

  1. 配置:在 finetune/config.py 中设置 Qlib 数据路径、模型保存路径、训练超参数等。
  2. 数据准备:运行 python finetune/qlib_data_preprocess.py,生成训练、验证、测试集的 pickle 文件。
  3. 模型微调:使用 torchrun 多卡训练,先微调分词器再微调预测器。 shell torchrun --standalone --nproc_per_node=NUM_GPUS finetune/train_tokenizer.py torchrun --standalone --nproc_per_node=NUM_GPUS finetune/train_predictor.py
  4. 回测评估:运行 python finetune/qlib_test.py --device cuda:0 加载微调后的模型,在测试集上执行 top-K 策略回测,并输出累计收益曲线。

微调示例仅作流程演示,不构成生产级量化交易系统。真实策略需结合组合优化、风险因子中性化、交易成本与滑点建模等更完善的工程实践。

引用与许可

本项目遵循 MIT 协议。论文已发布于 arXiv(编号 2508.02739),并被 AAAI 2026 接收。如用于学术研究,请按 BibTeX 引用对应文献。

摘要更新于 2026-07-23 00:32:36 · 原文 16571 字符 · md5 b8879a50e2f8…