在时间序列基础模型(TSFM)领域,如何将连续的高频金融数据转化为适合 Transformer 处理的离散 token 序列,一直是核心挑战。与自然语言不同,金融 K 线数据具有低信噪比、强非平稳性以及多维 OHLCVA(开盘价、最高价、最低价、收盘价、成交量、成交额)特征,传统的统一量化方法往往难以捕获市场的多尺度动态。Kronos 作为首个针对金融 K 线数据设计的基础模型,提出了一套基于 Binary Spherical Quantization(BSQ)的层次化分词器架构,为金融时序数据的离散化编码提供了新的工程思路。

问题背景:金融 K 线数据的离散化困境

金融 K 线数据本质上是多维连续时间序列,每个时间步包含六个关键财务指标(OHLCVA)。在将其输入到基于注意力机制的 Transformer 模型之前,需要将这种连续的高维向量映射为有限的离散 token 空间。传统的时序分词方法,如 Chronos 采用的统一标量量化(Uniform Quantization),虽然在通用时间序列上取得了一定效果,但在金融场景中面临两个核心难题。

首先是表达精度与词汇量之间的矛盾。若使用较粗的量化粒度,原始价格和交易量信息会在离散化过程中大量丢失,导致模型无法区分相近但含义不同的市场状态;若使用细粒度的量化,则词汇表呈指数级膨胀,使得嵌入层和输出投影层的参数量变得不可承受。以 20 位二进制编码为例,完整的词汇表大小为 2 的 20 次方(约 100 万个 token),这意味着仅嵌入矩阵就需要数 GB 的存储空间。其次,金融市场的极端值和噪声数据会导致量化误差的无界传播,传统量化方法缺乏对异常值的鲁棒性处理。

核心方案:Binary Spherical Quantization

Kronos 采用 Binary Spherical Quantization(BSQ)作为分词器的核心量化方法。BSQ 最早在视频生成领域提出,其核心思想是将连续 latent 向量投影到单位球面上,然后通过一组可学习的超平面将其二值化。与传统的向量量化(VQ-VAE)相比,BSQ 具有两个关键优势。

其一是误差上界有保障。BSQ 将嵌入向量投影到单位球面后进行二值化,量化误差存在严格的上界(理论值小于√2),这意味着即使遇到极端市场事件(如闪崩或暴涨),量化误差也不会无限放大,为模型提供了天然的噪声抑制能力。其二是隐式 codebook 无需显式存储。与 VQ-VAE 需要维护一个大型 codebook 不同,BSQ 通过超平面投影直接计算二进制代码,避免了 codebook 坍塌问题,同时显著降低了内存开销。

在具体实现上,Kronos 将每个 K 线向量(6 维 OHLCVA)编码为一个 k=20 位的二进制 token。为了在保持表达能力和控制参数量之间取得平衡,Kronos 进一步将 20 位代码分解为两个 10 位的子 token(n=2),分别称为 coarse token 和 fine token。这种分解策略将词汇表相关的参数量从约 17 亿降低到 340 万,减少超过 99.8%,同时将每个 token 的生成从单步预测转变为两步顺序预测(先预测 coarse,再基于 coarse 预测 fine)。

层次化 Token 结构的工程实现

Kronos 的分词器采用 Transformer 结构的自编码器,包含编码器、量化层和解码器三个组件。编码器和解码器各由 3 层 Transformer 组成,模型维度为 256,前馈网络维度为 512,使用 4 个注意力头。量化层则采用 BSQ 机制,通过可学习的超平面将编码器输出的连续向量映射为二进制代码。

在训练阶段,分词器的优化目标由三部分组成:粗粒度重建损失(coarse reconstruction loss)、细粒度重建损失(fine reconstruction loss)以及 BSQ 的量化损失(commitment loss)。通过层次化损失函数的约束,coarse token 被引导学习捕获市场的主要价格结构,而 fine token 则负责编码残差信息和精细波动。这种设计使得每个 token 内部形成了天然的粗到细的依赖关系,为后续的自回归建模提供了结构化的输入表示。

从代码实现角度,Kronos 提供了预训练的分词器模型供直接使用。开发者可以通过 Hugging Face Hub 加载 Kronos-Tokenizer-base 或 Kronos-Tokenizer-2k,后者词汇量较小(2k),适合资源受限的场景。加载过程极为简洁,仅需数行代码即可完成分词器的实例化和数据预处理。

预训练数据与模型规模

Kronos 的预训练数据涵盖了超过 45 个全球交易所的 12 亿条 K 线记录,时间跨度从 1 分钟到周线共 7 个采样频率,数据总量超过 120 亿条观测值。为了确保数据质量,团队设计了针对金融数据的清洗管道,包括基于价格跳变的结构性断点分割、流动性枯竭检测以及价格停滞检测等步骤。此外,在训练过程中对成交量和成交额字段进行了随机置零处理(5% 概率),以增强模型在缺乏交易量信息时的鲁棒性。

Kronos 系列发布了三个规模的模型变体。Kronos-mini 使用 2k 词汇量的分词器,上下文长度为 2048 个 token,参数总量 4.1M,适合轻量级部署。Kronos-small 使用 base 分词器,上下文长度 512,参数 24.7M,在性能和效率之间取得了良好平衡。Kronos-base 将模型维度提升至 832,参数达到 102.3M,是当前开源版本中规模最大的变体。Kronos-large(499.2M 参数)则仅提供闭源版本。

推理阶段的采样策略

在下游任务推理时,Kronos 使用基于温度(Temperature)和 top-p(核采样)的生成策略。实验表明,不同任务对采样参数的需求存在显著差异。对于价格预测和收益预测任务,较低的 temperature(约 0.6)和较小的 top-p(约 0.9)能够产生更精确的预测结果,这是因为预测任务需要模型减少随机性,聚焦于高置信度的输出。而对于波动率预测和合成 K 线生成任务,较高的 temperature(约 0.9-1.0)和更大的 top-p(约 0.95)则有助于增加生成多样性,更好地捕获市场的概率分布特征。

Kronos 还支持多路径采样(Multiple Sample Averaging)策略,即在相同历史上下文下生成多个不同的未来轨迹,然后对解码后的连续值取平均。这种方法类似于蒙特卡洛 Dropout,能够有效降低预测方差,提升预测的稳定性。实验数据显示,随着采样路径数量的增加,IC 和 RankIC 指标均呈现稳定上升趋势。

工程落地的关键参数

对于希望在自有数据上微调 Kronos 的团队,以下参数值得重点关注。首先是分词器的词汇规模,实验表明更大的词汇量能够带来更低的重建误差和更优的预测精度,但同时也会增加计算开销,建议在 2k 到 10k 之间根据硬件条件进行选择。其次是上下文长度,Kronos-small 和 Kronos-base 的最大上下文为 512 个 token,若输入数据超过此长度,系统会自动进行截断处理,因此建议将 lookback 窗口控制在 512 以内以获得最佳效果。

在训练配置方面,小模型建议使用 1e-3 的学习率和 0.01 的权重衰减,中等规模模型使用 5e-4 的学习率和 0.05 的权重衰减,大模型则使用 2e-4 的学习率和 0.1 的权重衰减。训练过程中建议启用学习率预热(warm-up)机制,前 15000 步从峰值的 10% 线性递增至目标值。

从实际应用角度看,Kronos 的价值在于将金融市场的多尺度动态编码为结构化的离散序列,使得自回归 Transformer 能够像处理自然语言一样学习市场语言的语法和语义。这种范式为量化策略研发、风险管理和市场模拟提供了新的技术路径。随着开源社区的持续贡献,基于 Kronos 架构的金融时序基础模型生态正在逐步建立。

资料来源:本文技术细节主要参考 Kronos 论文(arXiv:2508.02739)及 GitHub 官方实现。