用 Kronos 做金融 K 线预测:一个开源基础模型的实战指南
一句话理解像 LLM 理解语言一样理解 K 线——Kronos 把金融时间序列翻译成 token用 next-token-prediction 范式做零样本预测。读完本文你将了解Kronos 的核心架构 | 5 分钟上手预测 | 技术原理深度拆解 | 适用场景与局限 这个项目解决什么问题金融时间序列预测长期以来是个手艺活——传统方法需要针对每个交易品种单独训练模型从 ARIMA 到 LSTM 再到 Transformer每换一个标的就要重新调参、重新训练。更麻烦的是这些模型在跨市场、跨品种的泛化能力极差在 BTC 上训练的好模型换到 A 股上就水土不服。Kronos 想做的事情很直白能不能像 LLM 预训练那样先在一个巨大的多市场 K 线语料上预训练一个基础模型然后零样本zero-shot泛化到任意市场答案是能而且效果出奇的好。在公开基准上Kronos 的价格序列预测 RankIC 比最好的 TSFM 高 93%比最好的非预训练基线高 87%波动率预测 MAE 降低 9%合成 K 线生成 fidelity 提升 22%。这个项目已被AAAI 2026接收代码和模型权重完全开源。 快速上手动手环节安装pipinstall-rrequirements.txt# 依赖: torch, pandas, numpy, huggingface_hub, einops, tqdm5 行代码做预测Kronos 提供了KronosPredictor封装类从加载模型到输出预测只需几行importpandasaspdfrommodelimportKronos,KronosTokenizer,KronosPredictor# 1. 加载预训练模型和分词器tokenizerKronosTokenizer.from_pretrained(NeoQuasar/Kronos-Tokenizer-base)modelKronos.from_pretrained(NeoQuasar/Kronos-small)# 2. 创建预测器predictorKronosPredictor(model,tokenizer,max_context512)# 3. 准备数据必须有 open/high/low/close 列dfpd.read_csv(./data/BTC_5min.csv)df[timestamps]pd.to_datetime(df[timestamps])lookback400# 用过去 400 根 K 线pred_len120# 预测未来 120 根x_dfdf.loc[:lookback-1,[open,high,low,close,volume,amount]]x_timestampdf.loc[:lookback-1,timestamps]y_timestampdf.loc[lookback:lookbackpred_len-1,timestamps]# 4. 预测pred_dfpredictor.predict(dfx_df,x_timestampx_timestamp,y_timestampy_timestamp,pred_lenpred_len,T1.0,top_p0.9)print(pred_df.head())输出是一张完整的未来 K 线表——open, high, low, close, volume, amount可以直接对接你的交易策略。⚙️ 技术原理Kronos 的核心创新在于两阶段架构原始 K 线数据OHLCV 连续值Kronos Tokenizer专用量化编码器层次离散 Tokens1粗粒度 s2细粒度Kronos Transformer自回归 decoder-onlyDualHeads1 预测头 s2 预测头反量化解码Token → OHLCV第一阶段专用 Tokenizer金融 K 线和自然语言有个根本差异语言是离散的词汇表有限K 线是连续的价格是浮点数。Kronos 的突破口是设计了一个层次化二元球面量化器Binary Spherical Quantizer将 OHLCV 连续数据量化为两级离散 tokens1 token粗粒度捕捉整体趋势方向——涨、跌、盘整s2 token细粒度在 s1 确定的趋势内描述具体的价格波动细节这种层次化设计借鉴了 VQ-VAE 的思想但 Kronos 在量化方式上做了关键改进使用**球面量化spherical quantization**替代传统的欧氏距离量化在高维空间中获得更好的保真度。第二阶段自回归 Transformer量化后的 token 序列被送入一个 decoder-only Transformer训练目标就是标准的next-token-prediction——给定历史 token 序列预测下一个 token。这里有个精妙的设计DependencyAwareLayer依赖感知层。s2 的预测不仅依赖历史序列还依赖当前步骤预测出的 s1 token。也就是说Kronos 先决定接下来是涨还是跌再决定具体涨多少形成层次化决策链。Decoders2 Heads1 HeadTransformerTokenizer历史K线Decoders2 Heads1 HeadTransformerTokenizer历史K线OHLCV 连续值BSQ 量化编码s1_ids s2_ids自回归推理隐状态s1 预测结果趋势方向依赖 s1 预测 s2[s1, s2] 完整 token反量化 → OHLCV预训练数据Kronos 在45 个全球交易所、超过 120 亿条 K 线记录上预训练。这个数据规模在金融时间序列领域是空前的——之前的 TSFM 通常只在一个市场或有限品种上训练。这种跨市场、跨品种的预训练是 Kronos 零样本泛化能力的根本来源。️ 架构分析Kronos 提供 4 个规格的模型模型Tokenizer上下文长度参数量开源Kronos-miniTokenizer-2k20484.1M✅Kronos-smallTokenizer-base51224.7M✅Kronos-baseTokenizer-base512102.3M✅Kronos-largeTokenizer-base512499.2M❌选型建议快速验证用 Kronos-small24.7M 参数几秒钟出结果严肃交易用 Kronos-base102.3M效果更好但需要 GPU超大上下文Kronos-mini 支持 2048 上下文适合长周期分析✅ 优缺点 适用场景优势真正的零样本同一模型直接用在 BTC、A 股、外汇上无需 fine-tune层次化输出同时输出粗粒度趋势 细粒度波动信息量大开源可商用MIT 协议模型权重完全开放社区热度高33.5K starsAAAI 2026 论文支撑局限性低流动性失效论文承认在低流动性时段如小市值币种Kronos 的预测能力显著下降上下文限制small/base 模型只有 512 上下文窗口长周期分析受限波动率预测精度虽然 MAE 降低 9%但极端事件黑天鹅的预测仍然不可靠无因果推断Kronos 只能预测会发生什么不能解释为什么适用场景场景推荐度说明量化策略信号⭐⭐⭐⭐⭐RankIC 提升 93%直接增强选股/选币因子波动率建模⭐⭐⭐⭐MAE 降低 9%适合期权定价场景合成数据生成⭐⭐⭐⭐22% fidelity 提升可用于回测数据增强高频交易⭐⭐⭐需要自行 fine-tune 到 tick 级别黑天鹅预警⭐⭐低频事件仍超出当前能力范围总结Kronos 代表了一个方向金融时间序列正在经历类似 NLP 从统计模型到 LLM 的范式跃迁。它的两阶段架构专用 tokenizer 自回归 Transformer在逻辑上是自洽的——先离散化连续数据再用语言模型的方式建模。120 亿条 K 线的预训练规模让它在零样本场景下展现出压倒性优势。如果你是量化研究员或金融数据科学家Kronos 值得你花一个下午跑一遍示例代码——你可能会对零样本 K 线预测这件事改观。下一步试试用 Kronos 预测你关注的交易品种对比传统 ARIMA/LSTM 的效果。模型的零样本能力是否在标普 500 和山寨币上同样出色答案可能会让你惊讶。项目地址https://github.com/shiyu-coder/Kronos论文https://arxiv.org/abs/2508.02739已被 AAAI 2026 接收