如何15分钟跑通一个金融K线预测模型:Kronos完整上手指南
2026/9/1 10:38:16 网站建设 项目流程

如何15分钟跑通一个金融K线预测模型:Kronos完整上手指南

【免费下载链接】KronosKronos: A Foundation Model for the Language of Financial Markets项目地址: https://gitcode.com/GitHub_Trending/kronos14/Kronos

想跑金融时序预测模型,却总被“模型太大、没显卡”劝退?Kronos 可能是个解法——它是首个开源的K线(K-line)基础模型,用全球 45+ 交易所的数据训练,2GB 显存就够,约15分钟能出第一次K线预测结果。

📦 Kronos:一个为K线设计的基础模型

Kronos 是一族 decoder-only 时序基础模型,专攻金融市场的数据形态——K线序列。它不是通用时序模型,而是针对行情数据高噪声的特点做了两阶段框架:

  • 第一阶段·K线Token化:专用 Tokenizer 用 BSQ 块量化,把连续 OHLCV 数据压成分层离散 token
  • 第二阶段·自回归预测:Transformer 解码器在这些 token 上预训练,上下文窗口最大 512 步

开源模型共 3 个尺寸,按显存选:

模型参数量上下文长度
Kronos-mini4.1M2048
Kronos-small24.7M512
Kronos-base102.3M512

配套工具链齐全:预测 API、Web 可视化界面、两条微调流水线(Qlib 与 CSV)、回测脚本。

🚀 跑通:从克隆到首次Kronos预测

环境要求

  • Python 3.10+
  • PyTorch 2.0+(GPU 建议 CUDA 11.7+,CPU 也能跑)
  • GPU 推理 2GB 显存起步
  • 依赖仅 numpy、pandas、torch 等十来个包,一条命令装完

安装与加载

git clone https://gitcode.com/GitHub_Trending/kronos14/Kronos cd Kronos 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)

此时你应该看到:控制台无任何报错,tokenizer 与模型加载完成(首次运行会下载预训练权重,之后走本地缓存)。

📈 核心能力演示:10行代码预测未来120根K线

预测是 Kronos 的主功能:喂入历史 OHLCV,调用一次predict()就返回未来 N 步的开盘、最高、最低、收盘和成交量。输入 DataFrame 至少要有openhighlowclose四列,volumeamount可选;仓库自带一份可直接用的样本K线文件:tests/data/regression_input.csv

import pandas as pd df = pd.read_csv("tests/data/regression_input.csv") df['timestamps'] = pd.to_datetime(df['timestamps']) pred_df = predictor.predict( df=df.iloc[:400][['open', 'high', 'low', 'close', 'volume']], x_timestamp=df.iloc[:400]['timestamps'], y_timestamp=df.iloc[400:520]['timestamps'], pred_len=120, T=1.0, top_p=0.9, sample_count=1, ) print(pred_df.head())

注意:small/base 的最大上下文是 512,lookback不要超过它,超了会被自动截断。

带加载、预测、画图的完整脚本见 examples/prediction_example.py,运行后效果如下:

读图要点:

  • 上方面板:蓝线是历史收盘价,红线是 Kronos 预测的未来收盘价
  • 下方面板:成交量预测同步跟随市场活跃度的波动
  • 返回值:pandas DataFrame,索引为你传入的y_timestamp,含 open/high/low/close/volume/amount 六列

进阶用法:一行命令启动可视化预测界面

场景:不想写代码,直接在浏览器拖时间窗口看预测效果。

cd webui python run.py

浏览器打开http://localhost:7070(若端口被占,先释放该端口)。界面提供:

  • CSV/Feather 数据加载,400+120 固定数据点窗口滑块
  • K线图展示,并自动做预测值 vs 实际值的对比误差分析
  • 模型尺寸三选(mini/small/base),CPU/CUDA/MPS 设备可切
  • 采样参数可调:温度 T(0.1–2.0,官方推荐 1.2–1.5)、top_p(推荐 0.95–1.0)、采样条数(推荐 2–3)

各参数含义和排错清单在 webui/README.md。

进阶用法:多资产并行与自定义数据微调

批量预测

要同时预测多只资产,用predict_batch():传入df_listx_timestamp_listy_timestamp_list三个列表,GPU 并行执行、每条序列独立归一化。唯一硬性要求:所有序列的历史长度和预测长度必须一致。

用CSV数据微调

轻量路线是 CSV 微调:把你的数据整理成含timestamps/open/high/low/close/volume/amount七列的 CSV(volume、amount 没有就填 0),配置里指向该文件后:

cd finetune_csv python train_sequential.py --config configs/config_ali09988_candle-5min.yaml

脚本会按“先训 tokenizer、再训 predictor”的顺序自动跑完,最佳检查点存到配置指定的输出目录。仓库自带阿里(09988.HK)5分钟K线的完整示例数据和配置,细节见 finetune_csv/README_CN.md。

如果你做的是 A股日线,则走 Qlib 路线:数据预处理 → 微调 tokenizer → 微调 predictor → 回测四步,最终会输出策略累计收益 vs 基准的曲线图,类似这样:

⚠️ 避坑与调优

显存不足(CUDA out of memory)——输入序列太长或模型选大了:

  1. 调小lookback
  2. 换 Kronos-mini(4.1M 参数)
  3. 开 FP16 推理:model = model.half(),显存占用直接减半

预测曲线不稳定、波动大——采样随机性导致:

  1. 温度按官方推荐设 T=1.2–1.5(想要更平滑就调低)
  2. top_p收到 0.9–0.95
  3. sample_count设为 2–3,生成多条路径自动取平均

首次运行特别慢——在下载预训练权重,属正常现象;重跑走缓存,秒级加载。

WebUI 打不开——先看控制台是否提示端口占用,释放 7070 端口后重启。

性能技巧:同显存下,predict_batch一次喂多只资产,比循环单跑更快。

延伸与资源

  • 想读模型实现:tokenizer 的 BSQ 量化与解码器结构都在 model/kronos.py
  • 跑完整示例:examples/prediction_example.py 覆盖加载、预测、画图全流程
  • 批量预测实战:examples/prediction_batch_example.py 演示多资产并行
  • 自定义数据微调:finetune_csv/ 内有现成配置与样例数据

更多架构细节、模型家族和引用方式见根目录 README.md;遇到问题先看控制台报错,仍无解可到项目社区提 Issue 求助。

【免费下载链接】KronosKronos: A Foundation Model for the Language of Financial Markets项目地址: https://gitcode.com/GitHub_Trending/kronos14/Kronos

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询