在量化投资领域,将机器学习模型应用于金融时间序列预测已不再是新鲜事。然而,如何构建一个能够跨市场、跨资产类别通用的金融时序基础模型,长期以来是学术界与工业界共同面临的挑战。通用时间序列基础模型(TSFM)虽然在其他领域取得了显著进展,但它们在金融场景下的表现往往差强人意 —— 数据信噪比低、非平稳性强、且对价格与成交量的联合建模能力不足。Kronos 的出现正是为了填补这一空白,它首次将大模型预训练范式系统性地引入金融 K 线(K-line/OHLCV)数据建模,并在价格预测、波动率预测和合成数据生成等多个任务上刷新了性能标杆。本文将深入解析 Kronos 的核心技术架构,并提供面向工程落地的实践指南。
背景:为什么金融时序需要专属基础模型
金融市场的 K 线数据具有独特的统计特性,这与通用时间序列模型所面对的数据分布存在本质差异。首先,K 线序列的信噪比极低 —— 价格变动中仅有很小一部分蕴含真正的市场信息,绝大部分表现为随机波动。其次,OHLCV(开盘价、最高价、最低价、收盘价、成交量)各维度之间存在复杂的高阶依赖关系:成交量的突变往往预示着价格的反转,而价格的跳空缺口则可能标志着趋势的终结。更为关键的是,现有的通用 TSFMs 在其预训练语料中,金融数据占比通常不足 1%,这意味着模型很难学习到金融市场特有的序列模式。
Kronos 的核心设计哲学是 “从零开始” 为金融 K 线数据构建一个专属的基础模型。它不使用通用时间序列数据进行预训练,而是基于来自全球 45 个交易所、涵盖股票、加密货币、外汇和期货等资产类别的超过 120 亿条 K 线记录进行大规模预训练。这一数据规模确保了模型能够充分学习到不同市场周期、不同资产类型和不同时间粒度下的价格 - 成交量联合动态。
技术架构:两阶段离散化建模框架
Kronos 采用了创新的两阶段框架来完成从连续金融数据到离散语言建模的转换。这一架构可以类比自然语言处理中的分词(tokenization)与语言建模两个环节,但在设计上充分考虑了金融数据的独特性质。
分层 K 线 Tokenizer
第一阶段是设计一个专门的 tokenizer,将连续的 OHLCV 多维向量映射为离散的 token 序列。Kronos 采用了基于 Binary Spherical Quantization(BSQ)的 Transformer 自编码器架构。BSQ 是一种从图像生成领域借鉴的量化方法,它通过将连续嵌入向量投影到球面上并进行二值化来实现高效的分词。
Tokenizer 的核心创新在于其分层设计:每个 K 线时刻的 6 维 OHLCV 向量被量化为一个包含粗粒度(coarse)和细粒度(fine)两个 sub-token 的复合 token。粗粒度 sub-token 负责捕获价格运动的主要结构信息,而细粒度 sub-token 则编码补充的残差细节。这种分层设计通过一个组合损失函数来训练,其中粗粒度重建损失引导模型学习低保真的价格轮廓,细粒度重建损失则鼓励模型学习精确的重建效果。这种设计使得模型能够在不同粒度上理解市场动态,为后续的自回归预测提供了天然的层级结构。
Tokenizer 的参数量相对轻量,编码器和解码器各由 3 层 Transformer 组成,模型维度为 256,FFN 维度为 512,使用 4 个注意力头。关键的超参数设置包括:commitment weight β=0.05、entropy penalty weights γ₀=1.0 和 γ=1.1、entropy scale ζ=0.05,以及量化组大小设为 5 以实现可计算的熵计算。
层级自回归预训练
在完成 tokenization 之后,Kronos 使用一个 Decoder-only Transformer 对离散化的 token 序列进行自回归预训练。模型的输入是历史 K 线时刻对应的分层 token 序列,目标是预测下一个时刻的分层 token。
层级自回归建模的核心在于条件依赖链的设计。在每个时间步 t,模型首先基于历史上下文预测粗粒度 sub-token,然后以预测出的粗粒度 sub-token 为条件,进一步预测细粒度 sub-token。这种设计确保了粗粒度信息作为细粒度预测的锚点,模拟了金融市场从宏观趋势到微观波动的多层决策过程。
预训练采用标准的 next-token 预测目标,但针对分层设计进行了适配。总损失是粗粒度预测和细粒度预测的交叉熵损失之和。在训练过程中,为了缓解暴露偏差(exposure bias)问题,Kronos 在预测细粒度 sub-token 时使用模型自身在上一阶段生成的粗粒度预测作为输入,而非使用教师强制(teacher forcing)策略。这一设计使得训练分布与推理时的生成过程更加一致,显著提升了模型在多步预测中的稳健性。
Kronos 提供了三种规模的模型变体以适应不同的部署场景:Kronos-small 包含 2400 万参数(8 层,512 维),Kronos-base 包含 1.023 亿参数(12 层,832 维),Kronos-large 包含 4.992 亿参数(18 层,1664 维)。所有模型使用 RoPE(Rotary Position Embedding)编码位置信息,采用 Pre-Layer Normalization(具体使用 RMSNorm)来提升训练稳定性。
推理部署:关键参数与最佳实践
将 Kronos 投入生产环境需要仔细配置推理参数。以下是官方推荐的关键配置和工程实践建议。
采样策略与温度控制
Kronos 的推理过程通过采样策略来控制生成随机性,这直接影响预测结果的精度与多样性。Temperature(T)参数控制 softmax 概率分布的平滑程度:较低的 T(如 0.6)会使分布更加尖锐,生成结果更确定性,适合需要高精度价格预测的场景;较高的 T(如 1.0)会增加输出的多样性,适合波动率预测和合成数据生成任务。
Top-p(nucleus)采样则通过动态调整候选 token 集合来控制生成质量。对于预测任务,推荐使用 Top-p=0.9 以在保持多样性的同时过滤掉极不可能的 token。实验表明,温度 scaling 对任务性能的调节效果通常优于 top-p 调节。
不同任务的最优参数配置建议如下:价格序列预测和回报预测使用 T=0.6、Top-p=0.9、采样路径数 N=10;已实现波动率预测使用 T=0.9、Top-p=0.9、N=1;合成 K 线生成使用 T=1.0、Top-p=0.95、N=1。
Test-Time Scaling
Kronos 的一个显著优势是支持 Test-Time Scaling,即在不重新训练模型的情况下通过增加推理计算量来提升预测性能。具体做法是生成多条独立的价格轨迹,然后对解码后的连续数值取平均。这种蒙特卡洛 rollout 方法能够有效降低预测方差,提升预测的稳定性。实验结果显示,随着采样路径数从 1 增加到 10,模型的 IC 和 RankIC 指标呈现持续提升趋势,代价是线性增加的推理时间。
批量预测与生产部署
对于需要同时处理多个资产或时间序列的场景,Kronos 提供了 predict_batch 方法支持 GPU 并行批量预测。批量处理要求所有序列具有相同的历史长度和预测长度,每个 DataFrame 必须包含必填列 ['open', 'high', 'low', 'close'],volume 和 amount 列为可选。该方法会自动对每个序列独立执行归一化和反归一化,并利用 GPU 并行加速推理。
在生产部署中,需要注意最大上下文长度限制:Kronos-small 和 Kronos-base 的 max_context 均为 512 个 token。输入数据长度(lookback)不应超过这一限制,否则 KronosPredictor 会自动截断超出的部分。对于超长历史数据的处理,建议按时间窗口进行滑动预测,将长序列切分为多个满足长度约束的子序列分别处理后再拼接。
微调与领域适配
Kronos 提供了完整的微调流程以支持特定市场的领域适配。微调分为两个阶段:首先微调 tokenizer 使其适配目标市场的数据分布,然后微调预测器模型。官方示例使用 Qlib 框架准备中国 A 股市场数据,并包含回测评估模块。
微调时需要修改配置文件中的数据路径(qlib_data_path、dataset_path)、模型保存路径(save_path)以及预训练模型路径。训练脚本使用 torchrun 进行多 GPU 分布式训练,建议根据实际硬件配置调整 --nproc_per_node 参数。微调完成后,通过 qlib_test.py 脚本进行回测评估,即可得到策略的年化超额回报(AER)和信息比率(IR)等指标。
性能基准与实验分析
Kronos 在多项金融时序任务上进行了全面评估。在价格序列预测任务中,Kronos 在沪深、北美、日本、印度、韩国、港股等交易所的数据上取得了显著优势,平均 RankIC 达到 0.0254,较最强的通用 TSFM 提升 93%,较最佳非预训练模型提升 87%。这一结果表明,通过大规模金融专属预训练,模型能够有效捕获市场特有的价格动态模式。
在已实现波动率预测任务中,Kronos 同样展现出竞争优势,平均 MAE 降低至 0.0384,R² 达到 0.249。这验证了分层 token 设计在建模价格波动这种多尺度现象时的有效性 —— 粗粒度 token 捕获波动的主要趋势,细粒度 token 精细化波动细节。
在合成 K 线生成任务中,Kronos 的判别分数(Discriminative Score)和预测实用性(TSTR IC/RankIC)均优于主流的生成式模型(如 DiffusionTS、TimeVAE、TimeGAN)。这意味着生成的合成数据不仅在统计分布上与真实数据高度相似,而且在用于训练下游预测模型时能够带来实际的性能提升。
投资组合回测结果显示,使用 Kronos 预测信号构建的 Top-K 策略在 CSI300 和 CSI800 指数上均实现了最高的年化超额回报和信息比率。这直接验证了模型预测能力向实际投资业绩的转化效果。
总结
Kronos 作为首个开源的金融 K 线基础模型,其核心贡献在于证明了领域专属的大规模预训练对于金融时间序列建模具有变革性意义。通过精心设计的分层 tokenization 和层级自回归建模框架,Kronos 成功地将金融市场的多尺度动态结构融入到预训练过程中,并在多个下游任务上实现了显著的性能突破。
对于工程实践者而言,Kronos 提供了开箱即用的推理接口和灵活的微调机制,使其能够快速适配到具体的投资策略中。关键的成功因素在于合理配置推理采样参数 —— 对于追求确定性的价格预测使用低温度和适中的 top-p,对于需要捕捉不确定性的场景则适当提升采样多样性。随着模型规模的增长,Kronos 的性能呈现出良好的 scaling law,这为未来更大规模的金融基础模型研究指明了方向。
参考资料
- Kronos 官方 GitHub 仓库:https://github.com/shiyu-coder/Kronos
- Kronos 论文(arXiv 2508.02739):https://arxiv.org/abs/2508.02739