45 家交易所的 K 线喂出一个大模型:Kronos 把涨跌当成一门语言预训练

45 家交易所的 K 线喂出一个大模型:Kronos 把涨跌当成一门语言预训练

1周前
duguying
17 阅读
来源:GitHub

Kronos 是第一个专为金融 K 线训练的开源基础模型,把 OHLCV 量化成离散 token 后用自回归 Transformer 预训练。今日新增 575 星为榜单最高,论文已被 AAAI 2026 接收。

相关标签

#GitHub#Trending#Kronos#金融#基础模型

45 家交易所的 K 线喂出一个大模型:Kronos 把涨跌当成一门语言预训练

本文基于 GitHub 项目 shiyu-coder/Kronos 的 README 整理。

摘要:Kronos 是第一个专为金融 K 线训练的开源基础模型,用专用 tokenizer 把 OHLCV 量化成离散 token,再让自回归 Transformer 学”市场的语言”。项目今日新增 575 星,为今日榜单最高;论文已被 AAAI 2026 接收。


把 K 线图看成一种语言,这个比喻在量化圈流传已久。Kronos 把它做成了工程实现:先用 tokenizer 把连续的 K 线数据离散化成 token,再用 decoder-only 的 Transformer 在这些 token 上做自回归预训练——和语言模型的训练范式完全一致,只是”词”换成了价格与成交量。

项目今日在 GitHub Trending 上新增 575 星,是今日榜单里涨得最快的一个,累计 42,857 星。

它和通用时序模型的差别在哪

README 里有一句话点明了立意:不同于通用时序基础模型(TSFM),Kronos 是专门为处理金融数据特有的高噪声特性而设计的。

这个区别不是营销话术。通用时序模型通常在电力负荷、交通流量、气象这类规律性强的数据上表现好,但金融序列的噪声占比极高,且信噪比随市场状态漂移。Kronos 用两阶段框架应对:

  1. 专用 tokenizer:把连续、多维的 K 线数据(OHLCV)量化成分层的离散 token;
  2. 自回归 Transformer:在这些 token 上预训练,从而作为统一模型服务多种量化任务。

训练数据来自 45 家以上全球交易所。项目论文发表在 arXiv(2508.02739),并已被 AAAI 2026 接收——这一点对严肃的量化团队是个信号:它不是周末项目。

模型库:从 4.1M 到 102.3M,按算力选

README 给了完整的模型对照表,全部托管在 Hugging Face:

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

有意思的是参数规模的分布:最小的 4.1M 模型反而拥有最长的 2048 上下文,而 24.7M 和 102.3M 的上下文都是 512。README 特别提醒,Kronos-small 和 Kronos-base 的 max_context 就是 512,建议输入数据的 lookback 不要超过这个长度,KronosPredictor 会自动截断超长上下文。499.2M 的 large 版本没有开源。

几行代码出预测

推理封装得很薄。加载 tokenizer 和模型:

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() 吃三样东西:含 ['open','high','low','close'] 列的 DataFrame(volume、amount 可选)、历史时间戳、未来时间戳。然后:

pred_df = predictor.predict(
    df=x_df, x_timestamp=x_timestamp, y_timestamp=y_timestamp,
    pred_len=120, T=1.0, top_p=0.9, sample_count=1
)

返回的是按未来时间戳索引的 OHLCV 预测表。T、top_p、sample_count 三个参数让它能做概率式预测——采样多条路径再平均,而不是只给一条确定的曲线。这在金融场景里比点预测更有意义。

要同时预测多个标的,用 predict_batch():GPU 并行,各自独立做归一化与反归一化。约束是所有序列的历史长度和预测长度必须一致,且每个 DataFrame 都要有那四列。

官网还挂了一个 live demo,展示 BTC/USDT 未来 24 小时的预测结果。

微调链路是完整的,但作者自己划了红线

README 用 A 股做例子,给了四步微调流水线:配置(finetune/config.py 里改数据路径、checkpoint 路径、instrument、train_time_range 等)→ 用 Qlib 准备并切分数据(qlib_data_preprocess.py 产出 train/val/test 的 pkl)→ 两阶段训练(先 torchrun 训 tokenizer 适配领域分布,再训 predictor)→ qlib_test.py 加载模型、生成信号、跑一个简单的 top-K 策略回测。

值得单独引用的是它的免责声明,写得很直接:这条流水线只是用来说明微调流程的演示,是一个简化示例,不是生产可用的量化交易系统;稳健的量化策略还需要组合优化、风险因子中性化等更复杂的技术才能获得稳定 alpha。README 末尾还列了三条”从 demo 到生产”的注意事项:原始信号要送进组合优化模型做风险因子中性化才能隔离出”纯 alpha”;QlibDataset 只是示例,换数据源要自己改加载逻辑;top-K 策略只是起点,生产级还要处理动态仓位、止损止盈,以及交易成本、滑点和市场冲击的建模。

甚至连代码注释的来路都交代了:finetune/ 目录里很多注释由 AI 助手(Gemini 2.5 Pro)生成,仅供解释,可能有不准,以代码本身为逻辑准绳。

这种程度的自我限定,在”AI 选股”类项目里相当少见——多数项目会把回测曲线当卖点,而 Kronos 把”这条曲线不代表能赚钱”写在了正文里。

适合谁

适合做量化研究、想拿一个开源基线做对比实验的人;适合想研究”离散 token + 自回归”这套范式能否迁移到金融时序的研究者;也适合需要给交易信号做多路径概率估计的团队。

不适合指望它直接产出交易策略的人。README 已经把话说死:这是基础模型和演示流水线,不是印钞机。

项目地址:https://github.com/shiyu-coder/Kronos

🔁 重复度:低 — 未检索到 Kronos 的同项目既往报道,可正常发布

返回列表

更多资讯

想看更多优质内容?

浏览所有资讯