Kronos
shiyu-coder/Kronos
访问 GitHub ↗
一句话简介
Kronos 是一个 Python 开源项目,围绕时间序列与金融预测等场景提供相关工具或模型实现。
标签
适用应用场景
- 金融市场走势预测
- 时间序列数据建模
- 量化交易策略研究
- 学习与复用预测模型代码
README 中文摘要
项目概述
Kronos 是首个面向金融 K 线(蜡烛图)序列的开源基础模型,预训练数据覆盖全球 45 家交易所。该项目专为处理金融数据的高噪声特性而设计,采用纯解码器 Transformer 架构,可作为多种量化任务的统一模型。
技术架构
Kronos 采用两阶段框架:
- 专用分词器:将连续的多维 K 线数据(OHLCV,即开盘价/最高价/最低价/收盘价/成交量)量化为分层离散标记。
- 自回归 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-small 与 Kronos-base 的 max_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'],volume与amount可选。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 股市场微调示例流程,分为四步:
- 配置:在
finetune/config.py中设置 Qlib 数据路径、模型保存路径、训练超参数等。 - 数据准备:运行
python finetune/qlib_data_preprocess.py,生成训练、验证、测试集的 pickle 文件。 - 模型微调:使用
torchrun多卡训练,先微调分词器再微调预测器。shell torchrun --standalone --nproc_per_node=NUM_GPUS finetune/train_tokenizer.py torchrun --standalone --nproc_per_node=NUM_GPUS finetune/train_predictor.py - 回测评估:运行
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…