Kronos 金融K线预测快速上手指南:从装环境到喂数据微调
【免费下载链接】KronosKronos: A Foundation Model for the Language of Financial Markets项目地址: https://gitcode.com/GitHub_Trending/kronos14/Kronos
Kronos 是一个专门做金融K线预测的开源基础模型:它把 K 线当作一种"语言"来学习,你给它历史行情,它还你未来一段走势的预测。适合三类人:想入行量化的新手、想把预测接进自己流程的开发者、以及只想要个能跑的 demo 验证效果的人。下面按上手的实际顺序走一遍,不用啃论文。
用2分钟看懂 Kronos
它的核心思路一句话概括:先把 K 线"翻译"成一串符号,再用语言模型式的架构去预测后面会发生什么。这和你用大语言模型处理文本是一个套路。
文本不能直接丢给模型,要先切成 token(词的基本单元)。Kronos 对 K 线做了同样的事,整个框架分两步:
- 第一步,分词器(tokenizer):把每根 K 线的开盘、最高、最低、收盘、成交量(合称 OHLCV)量化成一串离散令牌。你可以理解为把 K 线的原始数值翻译成模型能"认读"的符号序列。
- 第二步,自回归 Transformer:自回归就是"续写"——根据前文逐个决定下一个词。这个 Transformer 在 45 多家全球交易所的 K 线数据上预训练过,学的是 K 线序列的共性规律,拿来就能做预测。
为什么要多此一举量化成令牌?原始金融数据噪声大,转成离散符号后,模型可以聚焦于 K 线的结构模式,而不是被精确数值牵着走。另外 token 化让不同规模的模型能复用同一套分词器,部署上也更省事。
5分钟跑通第一个预测
环境准备与模型选型
环境门槛不高:Python 3.10 以上,然后在项目根目录执行:
pip install -r requirements.txt依赖清单(torch、pandas、huggingface_hub 等)都固定在 requirements.txt 里,建议单独建一个虚拟环境,避免和现有包打架。
接着决定用哪个规模的模型。开源有三档,上下文长度指模型一次最多能"看"多少根历史 K 线:
| 模型 | 参数规模 | 上下文长度 | 适合场景 |
|---|---|---|---|
| Kronos-mini | 4.1M | 2048 | 轻量快验,CPU 也能跑 |
| Kronos-small | 24.7M | 512 | 常规预测,速度与精度均衡 |
| Kronos-base | 102.3M | 512 | 对预测质量要求更高的场景 |
⚠️ 两个注意点:small 和 base 的输入上限是 512,超长序列预测器会自动截断;显存紧张就从 mini 或 small 起步,没必要一上来就 base。
跑起第一个预测
最快的路径是 Web 界面,无需写代码:
cd webui && python run.py浏览器打开 http://localhost:7070 ,上传 CSV 数据、选模型和设备(CPU/CUDA/MPS)、滑动选时间窗口(固定 400 根历史 + 120 根预测),点预测即可看到 K 线图对比。参数建议和注意事项可查 webui/README.md。
想直接写代码的话,核心调用就这几行:
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) pred_df = predictor.predict(df=x_df, x_timestamp=x_timestamp, y_timestamp=y_timestamp, pred_len=120)输入是含 open/high/low/close 列的 pandas DataFrame(volume、amount 可选),返回的 pred_df 就是按 y_timestamp 索引的预测 K 线。完整的加载数据、画对比图的脚本在 examples/prediction_example.py,跑一遍就能得到下面这种效果图。
三种用法,按需挑一条
跑通一次之后,根据你的目的选一条主线即可:
| 路径 | 适合谁 | 怎么开始 |
|---|---|---|
| WebUI 交互 | 不写代码、先建立对输出效果的直观感受 | cd webui && python run.py,浏览器里操作 |
| Python API | 要把预测接进自己的策略或回测脚本 | 用KronosPredictor几行代码调用;多标的并行用predict_batch |
| CSV 微调 | 通用模型在自己数据上不够贴合,想训专属版本 | 准备 CSV 和 YAML 配置,跑finetune_csv/train_sequential.py |
建议的顺序:先在 WebUI 里出一张图,确认数据格式和输出形态没问题;再切到 Python API 自己写评估逻辑;最后才考虑微调。注意predict_batch要求所有序列的历史长度和预测长度一致,缺 volume/amount 列会自动补零。
喂自己的K线数据微调
如果你手上有一个市场或品种的历史 K 线,想让模型更贴合自己的数据,仓库提供了完整的 CSV 微调流程,细节见 finetune_csv/README_CN.md。三步走:
- 备数据:CSV 至少要包含 timestamps、open、high、low、close 五列,volume 和 amount 没有的话可以全填 0。仓库里有一份港股阿里 5 分钟 K 线的样例数据在
finetune_csv/data/,可直接参考列格式。 - 改配置:照
finetune_csv/configs/config_ali09988_candle-5min.yaml复制一份,把数据路径和预训练模型路径改成自己的;lookback_window、predict_window、max_context 等训练参数在模板里有逐行注释。 - 训练:一条命令按顺序先微调分词器、再微调预测器(多卡可加 torchrun 走 DDP 加速),训练完两个组件的最佳检查点会分别保存到各自目录,拿自己的数据即可跑预测。
卡住了先看这
- 模型加载/下载失败:先查网络能否连通模型仓库,再确认 transformers 版本 ≥ 4.30.0;首次加载需要下载权重,等待一会儿属正常现象。
- 显存不够或 CPU 太慢:换 Kronos-mini,或调小 batch_size;WebUI 里也可以直接选 CPU 设备跑通流程。
- 数据格式报错:对照配置模板逐列核对列名——最少要有 open/high/low/close,时间列叫 timestamps、timestamp 或 date 都能识别。
- 预测结果看着不对:先排查输入数据本身(缺失、乱序、异常值),再调
predict里的 T(温度)和 top_p 等采样参数,多采样几条路径(sample_count)观察是否稳定。 - WebUI 打不开:大概率是 7070 端口被占用,改一下
webui/app.py里的端口号再重启。
装完、跑通、微调这三个节点过了之后,建议顺着 README.md 看完整的模型清单和基于 Qlib 的回测流程,再翻examples/目录里几个可直接运行的脚本,最后读一遍 finetune_csv/README_CN.md 把训练参数逐项过一遍——这三处文档覆盖了从验证到定制的全部细节。
【免费下载链接】KronosKronos: A Foundation Model for the Language of Financial Markets项目地址: https://gitcode.com/GitHub_Trending/kronos14/Kronos
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考