在时间序列基础模型(Time Series Foundation Models,TSFM)快速发展的背景下,针对金融市场的垂直领域模型正逐步显现其独特价值。Kronos 是首个开源的金融 K 线(K-line/Candlestick)基础模型,专注于将金融市场行情数据转化为类似自然语言的序列表示,并通过两阶段预训练框架实现跨任务统一建模。该模型已发表于 AAAI 2026,其设计思路与工程实践为金融时序领域的模型开发提供了重要参考。

一、预训练范式:从行情数据到「K 线语言」

金融市场的 K 线数据(OHLCV,即开盘价、最高价、最低价、收盘价、成交量)具有高噪声、多尺度、强随机性的特点,直接将通用 Transformer 应用于此类数据往往面临表示效率低下、噪声放大等问题。Kronos 的核心创新在于构建了一套针对 K 线数据的专用分词器(Tokenizer),将连续的行情数据离散化为层次化 token,从而将金融时序建模转化为类似语言建模的任务。

Kronos 采用两阶段预训练框架。第一阶段是分词器训练:利用基于实例的量化方法(Instance-based Quantization),对每根 K 线在多维 OHLCV 空间中进行向量量化,生成离散的 token 序列。这一过程借鉴了 SentencePiece 等语言模型分词器的设计理念,但针对金融数据的特性进行了定制 —— 例如对价格波动幅度、成交量变化等进行自适应编码,保留不同时间尺度(分钟级、日级、周级)的语义信息。第二阶段是 Transformer 预训练:基于量化后的 token 序列,训练大规模的解码器 - only(Decoder-only)Transformer 模型,学习下一个 token 的预测能力。预训练数据来自全球 45 个以上交易所的历史行情,覆盖多种资产类别和时间周期,使模型具备跨市场的泛化能力。

从模型规模来看,Kronos 家族提供了从 4.1M 参数的 Kronos-mini 到 499.2M 参数的 Kronos-large 多个版本,上下文长度从 2048(mini)到 512(base/large)不等。较小的模型(如 Kronos-mini)适合资源受限的部署场景,而大规模版本则用于追求更高预测精度的生产环境。

二、微调策略:面向金融 NLP 任务的端到端 pipeline

Kronos 官方提供了完整的微调流程,支持用户基于自身数据对模型进行领域适配。微调 pipeline 分为四个主要步骤:配置管理、数据准备、分词器微调、预测器微调。

在数据准备环节,Kronos 集成 Microsoft 的 Qlib 框架来处理 A 股等市场的金融数据。用户需要首先按照 Qlib 的规范下载和配置本地数据,微调脚本会将原始行情数据转换为模型所需的格式,并划分为训练集、验证集和测试集。值得注意的是,所有时序数据必须包含必要的 OHLC 列(open、high、low、close),成交量和成交额为可选字段。

分词器微调(Fine-tuning the Tokenizer)是 Kronos 区别于通用 LLM 微调的关键步骤。由于不同市场的行情分布存在显著差异(例如 A 股的波动特征与美股截然不同),预训练阶段学习到的量化编码可能无法最优地捕捉目标市场的数据结构。因此,Kronos 建议首先对分词器进行微调,使其适应当地数据的分布特性,再进行预测器(主模型)的微调。预测器微调则采用标准的监督学习方法,将历史 K 线序列作为输入,预测未来若干时间步的行情走势。

微调支持多 GPU 并行训练,通过 torchrun 启动分布式训练。训练完成后,用户可以通过回测脚本评估模型在目标市场的实际策略表现。官方示例展示了一个简化的 Top-K 选股策略:基于模型预测的收益率信号,选取排名前 K 的股票构建组合,并计算相对基准的超额收益和夏普比率。

三、与通用 LLM 的工程差异:市场预测与因子挖掘

将 Kronos 与通用大语言模型(如 GPT 系列、LLaMA 等)进行对比,可以清晰地看到金融时序领域的独特工程挑战。

数据表示层面,通用 LLM 处理的是离散的文本 token,词汇表规模通常在数万到数十万之间;而 Kronos 处理的是连续数值的离散化表示,分词器的码本大小(Codebook Size)直接决定了模型的表示精度和计算效率。此外,金融数据的多维特性(OHLCV)要求分词器能够在高维空间中有效进行向量量化,这在工程实现上比文本分词更为复杂。

预测任务层面,通用 LLM 的输出是离散的词元,而 Kronos 需要生成连续的数值预测。Kronos 通过自回归生成的方式逐时间步预测未来行情,在生成过程中引入了温度采样(Temperature)、Top-p 采样等策略来控制预测的多样性和不确定性。官方建议的默认参数为 Temperature=1.0、Top-p=0.9,sample_count 用于控制生成路径的数量以实现概率预测。

因子挖掘层面,通用 LLM 本身不具备显式的因子建模能力,通常需要结合外部因子库或通过 Prompt 工程引导模型输出因子相关的分析;而 Kronos 在预训练阶段即隐式学习了市场中的多种因子模式(如动量、均值回归、波动率聚集等),可以通过微调直接适配特定的因子挖掘任务。在实际部署中,Kronos 生成的原始信号通常需要经过组合优化模型的处理,以剥离市场风险因子、风格因子的暴露,获取「纯 Alpha」。

推理延迟与部署,金融场景对实时性要求极高,Kronos 提供了 Kronos-mini(4.1M 参数)等轻量级版本,可在消费级 GPU 上实现毫秒级推理;而通用 LLM 的推理成本通常较高,难以满足低延迟交易场景的需求。官方推荐的上下文长度上限为 512 个时间步,超长历史数据需要自动截断,这对数据预处理流程提出了具体要求。

四、工程实践要点

在生产环境中部署 Kronos 时,以下关键参数和监控点值得关注。首先,输入数据的 lookback 窗口不应超过模型的最大上下文长度(Kronos-small 和 Kronos-base 为 512),超长序列会被自动截断,建议根据预测周期合理选择回看窗口。其次,预测长度(pred_len)决定了模型需要生成的时间步数,官方示例中使用了 120 个时间步(即对应 5 分钟频率数据的 10 小时预测),用户可根据任务需求调整。第三,批量预测(predict_batch)方法支持并行处理多个资产或时间序列,但要求所有序列具有相同的历史长度和预测长度,且每个 DataFrame 必须包含必需的 OHLC 列。

监控层面,建议重点关注 RankIC(排名信息系数)指标在验证集上的趋势,以评估模型的因子有效性;同时监控预测误差(MAE/RMSE)的分布,识别模型在极端行情下的表现退化。回测阶段应细致模拟交易成本、滑点和市场冲击,以获得更接近实盘的性能估计。

综合而言,Kronos 为金融时序建模提供了一条不同于传统统计模型和通用 LLM 的技术路径:通过将 K 线数据转化为「语言」,利用大规模预训练获取跨市场、跨任务的泛化能力,再通过轻量级微调适配特定市场的数据分布。这一范式对于构建新一代量化因子挖掘系统和市场预测引擎具有重要的借鉴意义。

资料来源:GitHub shiyu-coder/Kronos(https://github.com/shiyu-coder/Kronos),arXiv 2508.02739。