⭐⭐⭐ Spring Boot 项目实战 ⭐⭐⭐ Spring Cloud 项目实战
《Dubbo 实现原理与源码解析 —— 精品合集》 《Netty 实现原理与源码解析 —— 精品合集》
《Spring 实现原理与源码解析 —— 精品合集》 《MyBatis 实现原理与源码解析 —— 精品合集》
《Spring MVC 实现原理与源码解析 —— 精品合集》 《数据库实体设计合集》
《Spring Boot 实现原理与源码解析 —— 精品合集》 《Java 面试题 + Java 学习指南》

摘要: 原创出处 http://www.iocoder.cn/Fight/kronos-kline-foundation-model-view/ 「芋道源码」欢迎转载,保留摘要,谢谢!


🙂🙂🙂关注微信公众号:【芋道源码】有福利:

  1. RocketMQ / MyCAT / Sharding-JDBC 所有源码分析文章列表
  2. RocketMQ / MyCAT / Sharding-JDBC 中文注释源码 GitHub 地址
  3. 您对于源码的疑问每条留言都将得到认真回复。甚至不知道如何读源码也可以请教噢。
  4. 新的源码解析文章实时收到通知。每周更新一篇左右。
  5. 认真的源码交流微信群。

会写 Python、对 A 股好奇的人,多半动过「让 AI 帮我看 K 线」的念头。K 线不神秘,红一根绿一根,背后就是开盘、收盘、最高、最低、成交量几个数。

最近很多人在 GitHub 刷到同一个项目,教大模型读这些数字,读完接着往后预测,Star 冲到 3.7 万,Fork 六千出头。

项目叫 Kronos,清华团队做的,论文刚被 AAAI 2026 收录。同类示例大多是美股或海外数据,它等于替国内开发者把 A 股这条路先走了一遍。

IMG-001

它是全球第一个面向金融 K 线的开源基础模型,出自清华大学交叉信息研究院和自动化系。思路一句话,大语言模型读文字,它读 K 线,开高低收和成交量转成离散 token,用 Transformer 训练。

训练底子不小,全球 45 家交易所的 120 多亿条 K 线记录,股票、期货、数字货币都有,覆盖 7 种时间粒度。

IMG-002

P0|先别急着开终端,网页上就能白嫖一张预测图

第一步不是装环境,打开 shiyu-coder.github.io/Kronos-demo 就能看 BTC/USDT 未来 24 小时预测,一行代码不用写。

想动手的人有多少?B 站讲实测微调的视频播放 1.5 万左右、点赞两百多,收藏却近千。收藏是点赞三倍多,标准「马住回头跑」。

P1|三行命令进门,官方示例数据就是上交所的 A 股

想本地跑门槛也低,Python 3.10 以上就行。先把仓库拉下来装依赖。

git clone https://github.com/shiyu-coder/Kronos.git
cd Kronos
pip install -r requirements.txt

装完就能上手,核心就这几行。

from model import Kronos, KronosTokenizer, KronosPredictor
import pandas as pd

# 加载分词器和模型
tokenizer = KronosTokenizer.from_pretrained("NeoQuasar/Kronos-Tokenizer-base")
model = Kronos.from_pretrained("NeoQuasar/Kronos-small")
predictor = KronosPredictor(model, tokenizer, max_context=512)

# 准备数据,必须有 open、high、low、close 四列,volume 和 amount 可选
df = pd.read_csv("./data/XSHG_5min_600977.csv")
df['timestamps'] = pd.to_datetime(df['timestamps'])
lookback, pred_len = 400, 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
)
print(pred_df.head())

返回的 pred_df 是预测出的开高低收和成交量,能画图、算指标。examples/prediction_example.py 从读数据到画图全写好,直接执行就出图。

最顺的在路径里,XSHG_5min_600977.csv 是官方示例,上交所 5 分钟 K 线,从这步起打交道的就是 A 股,不用折腾数据源,社区实测一块消费级显卡就能玩。

没有成交量也别慌,仓库现成 prediction_wo_vol_example.py,volume 和 amount 两列不给,自动补零。

有个坑,输入历史长度别超模型上下文,small 和 base 都是 512,超了自动截断。示例 lookback=400 已贴天花板,想喂更长历史看下一节。

IMG-003

官方示例里,蓝真实红预测,子图是收盘价和成交量。

IMG-004

P2|选尺寸就是选车位,4.1M 起步,各有各的停法

四个尺寸像车位,第四种只在图纸上。

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

对号入座。

  • mini 是 410 万参数,笔记本跑得动,独享 2048 上下文;
  • small 是官方示例默认款,最省心;
  • base 主打精度,下载量百万级;
  • large 没放出来。

前三个在 Hugging Face 的 NeoQuasar 下随下随用,最受欢迎的分词器下载超两百万次;small/base 配 Tokenizer-base、mini 配 Tokenizer-2k,最小的模型反而看得最远。

四尺寸选型决策图

P3|三个旋钮,把预测从抽奖拧成参考

预测是概率式的,不是拍死一个数。predict 的三个参数就是旋钮。

  • T 是采样温度,越高越放飞,越低越保守;
  • top_p 是采样范围,控制从多大的候选池里抽;
  • sample_count 是采样路径数量,开大点就多跑几条路径再取平均,结果稳一些。

社区踩过坑,sample_count 太低曲线过度平滑,像趋势线,其实丢了波动信息。

sample_count 同时还是个成本旋钮,采样显存约等于资产数×预测长度×sample_count,批量跑前先算这笔账。

P4|扫全市场,predict_batch 的两条等长规矩

做量化很少只盯一只票。predict_batch 把多个 DataFrame 打包传进去,GPU 并行一次出一堆结果,扫全市场省时间。

两条硬规矩,所有序列的历史窗口要一样长,预测长度也要一样长;缺成交量的列会自动补零。

IMG-005

P5|微调自己的票,四步流水线加一张显存账单

预训练学的是公开市场的通用规律,想更懂 A 股就得微调。2025 年 8 月官方放出完整微调脚本,配了一套用 Qlib 处理 A 股数据的示例流程。

流水线四步,改配置、处理数据、先微调 tokenizer 再微调主模型、最后跑回测。

IMG-006

实操重心在第一步,finetune/config.py 改五类路径,qlib_data_path、dataset_path、save_path、backtest_result_path、预训练模型路径;不用 Comet.ml 就设 use_comet=False。

配好按顺序跑,NUM_GPUS 换成卡数。

pip install pyqlib
python finetune/qlib_data_preprocess.py
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

回测直接画出策略和基准的累计收益对比图,README 演示里策略线明显压着基准走;支持 torchrun 多卡。

IMG-007

官方把丑话说在前面,这套流程只是演示,不是能直接上生产的量化系统,真实策略还隔着组合优化和风险中性化。

彩蛋在 finetune 里,大量注释由 Gemini 2.5 Pro 生成,官方自己提醒可能有误、以代码为准。

P6|台阶尽头的牌子,演示不是生产

普通人离金融大模型的距离,从来不是一个模型的距离,是一级一级没被拆好的台阶的距离。Kronos 最值钱的地方,是把台阶从网页 Demo 修到了微调自己的票。

冷静算账,base 才 1 亿参数,跟动辄几十亿的大语言模型比是小不点。但 K 线转 token 的思路,加上权重、微调脚本、回测流程全放了出来,你拿到的不是论文,是一套能跑的东西。

调研泼了冷水,Kronos 更合理的定位是价格行为和成交结构建模模块,不是完整的投资决策系统,模型输出的是信号,不是收益。

分层建议,会写 Python、对量化好奇的,现在就玩,从 Demo 和示例数据起步;想「输入代码输出买卖点」的,先观望。不做交易,学这套思路也开眼界。以上纯属技术交流,不构成任何投资建议。

IMG-008

https://github.com/shiyu-coder/Kronos

文章目录
  1. 1. P0|先别急着开终端,网页上就能白嫖一张预测图
  2. 2. P1|三行命令进门,官方示例数据就是上交所的 A 股
  3. 3. P2|选尺寸就是选车位,4.1M 起步,各有各的停法
  4. 4. P3|三个旋钮,把预测从抽奖拧成参考
  5. 5. P4|扫全市场,predict_batch 的两条等长规矩
  6. 6. P5|微调自己的票,四步流水线加一张显存账单
  7. 7. P6|台阶尽头的牌子,演示不是生产