Skip to content

Toto-2.0实测:从4M到2.5B参数,时序预测首次实现LLM式缩放

作者:老余捞鱼

原创不易,转载请标明出处及原作者。

文中示例仅用于技术讨论,不构成任何操作建议。
量化策略开发应以学习和技术交流为目的。
本号不荐股、不卖课、不承诺收益。
市场有风险,请合法合规投资。

本文约 5200 字 | 预计阅读 10-15 分钟

· · ·

做量化的人都知道一个尴尬的事实:LLM从几亿参数缩放到几千亿参数,性能蹭蹭涨,但时间序列预测模型呢?放大反而可能变差。

Datadog的团队刚发布的Toto-2.0,终于把这事儿给解决了。5个模型规模,从400万到25亿参数,同一套训练配方,每一个更大的模型都比更小的模型预测得更准。听起来理所当然,但在时序预测领域,这是头一回。

一、Toto-2.0是什么?

Toto-2.0是Datadog开发的decoder-only(仅解码器)时间序列基础模型,专门做多变量零样本预测。说直白点:给它一段历史数据,不用微调,直接预测未来。

先说几个关键标签:

  • Decoder-only架构:基于Patched Transformer,交替使用时间轴注意力和变量轴注意力,支持变长上下文,能接受未来已知的协变量。
  • u-µP缩放:超参数在1000万参数的小模型上调一次,直接迁移到25亿参数的大模型,不用每个规模重新调。
  • CPM单次推理:连续补丁掩码(Contiguous Patch Masking)让模型一次前向传播就生成长 horizon 预测,不用像以前那样一步步自回归解码。
  • 概率预测:分位数头(quantile head)+ pinball loss,输出9个分位数,既有预测值也有不确定性估计。
  • 开源:Apache 2.0协议,权重开放,GitHub仓库可直接用。

在GIFT-Eval、BOOM、TIME三个公开基准测试上,Toto-2.0全部拿下第一名。

图1:Toto-2架构——Patched Transformer,交替时间轴/变量轴注意力

二、四个核心设计选择

Toto-2.0能实现干净缩放,靠的是四个互相配合的设计决策。咱们一个个看。

1. Arcsinh归一化:小波动和极端尖峰都照顾到

这个设计借自Chronos模型。传统对数归一化有个毛病:接近零的时候行为不线性,会把小幅波动吃掉。对于稀疏和间歇性时间序列(比如某些交易频率低的品种),这种信息丢失很要命。

Arcsinh归一化不一样:接近零时表现为线性,保留小幅波动的细节;大值时表现为对数,压缩极端尖峰。两者兼顾,恰好是基础模型预训练需要的,因为训练数据横跨多个数量级。

图2:Arcsinh归一化 vs 对数归一化,接近零时Arcsinh保持线性

2. 分位数输出头:替换掉不稳定的SMM

Toto-1.0用的是Student-T混合模型(SMM)做概率预测,在小规模时还行,但模型变大后SMM数值不稳定,预测值接近零时会发散。

Toto-2.0换成简单的分位数头:每个未来时间步预测9个分位数水平{0.1, 0.2, …, 0.9},用pinball loss训练。这种方式现在已经是主流,Chronos-2、Moirai-2、TimesFM 2.5都用这套。为防止分位数交叉(quantile crossing),推理时对预测结果排序。

点预测不再单独生成,直接取中位数(第5个分位数)作为点预测值。

3. CPM:一次前向传播搞定1024步预测

这是最让我兴奋的设计。

Toto-1.0生成预测是自回归的,一次生成一个patch。1024步的预测horizon需要最多16次串行前向传播,误差还会逐步累积。

CPM(连续补丁掩码)从TiRex模型借鉴而来,改掉了这个做法:

图3:CPM连续补丁掩码策略——每个方块代表一个patch

训练时,模型学会一次性预测多个未来patch,方法是掩码变长的连续输入区间。推理时,整个预测horizon全部填入mask token,一次前向传播就解码完成

实测效果:单次解码在合成多尺度信号上稳定到约768步horizon。更长的horizon支持block decoding,分段生成同时复用KV cache。

实操要点:CPM有两个关键参数 c_max 和 p_max。Toto-2.0最终配置是 c_max=16、p_max=0.4。这两个参数直接控制训练时掩码的长度分布和频率,对推理质量影响很大。

4. NorMuon优化器:pinball loss的”救星”

这部分技术含量最高,也是Toto-2.0能缩放的关键之一。

先说问题背景。大多数时序预测模型用MSE(均方误差)训练,MSE的梯度和误差大小成正比,优化器清楚知道该走多大步。但Toto-2.0用的是pinball loss(分位数损失),它的梯度只有三个值:

  • 预测偏低时:梯度 = −τ
  • 预测偏高时:梯度 = 1−τ
  • 预测准确时:梯度 = 0

梯度只告诉你方向,不告诉你幅度。偏1个单位和偏1000个单位,梯度大小一模一样。作者把这叫”sign-valued gradients”(符号梯度)。

这直接搞崩了AdamW。Adam的核心机制是跟踪每个参数梯度的方差来调整学习率。当梯度永远是常数时,Adam的方差追踪器变成一条直线,以为梯度很稳定,就不再有意义地调整学习步伐了。

说白了,Adam知道往哪个方向走,但不知道该走多远。

NorMuon的解法是换一个观察粒度。Adam看的是单个权重,NorMuon看的是整个神经元(权重矩阵的一整行)。虽然单个梯度是常数,但一整行梯度的集体模式能反映出这个神经元有多活跃、多重要。用整行的方差来归一化步长,动态范围就回来了。

三、u-µP:调一次超参数,五个规模通用

这是Toto-2.0缩放能力的”秘密武器”。

背景:超参数缩放的老大难

训练神经网络有一堆超参数要调:学习率、权重衰减、动量等等。常规做法是网格搜索或随机搜索,找出验证集上表现最好的组合。

问题在于:模型大小变了,最优超参数也变了。小模型的最优学习率和大模型可能差一个数量级。如果要训练5个不同规模的模型,就得做5次独立的超参数搜索,每次搜索都要训练好几天,算力浪费惊人。

µP:让学习动态与模型宽度无关

µP(Maximal Update Parametrization)通过数学重新参数化权重,让学习动态不再依赖模型宽度。小模型上调好的超参数,直接用到大模型上也合适。u-µP是µP的”unit-scaled”变体,更适合decoder-only架构。

图4:u-µP使最优超参数与模型宽度无关

关键点:u-µP不是迁移权重,是迁移配置。学习率、权重衰减、动量、衰减调度这些超参数在小模型上调好后,大模型直接用。但每个规模的模型宽度、深度、注意力头数是不同的,仍然从头训练。

四轮搜索流程

搜索空间有17个连续维度加上若干分类维度,穷举不可能。作者把它拆成4轮串行搜索:

图5:Toto-2.0训练数据配比——42.5% Datadog观测数据 + 57.5% 合成数据

轮次搜索内容说明
Round 1架构注意力归一化方式、变量轴注意力位置、偏置项、CPM参数
Round 2数据配比Datadog内部数据 / 合成数据 / 公开数据的比例
Round 3优化器学习率、权重衰减、动量项、warmup步数、梯度裁剪
Round 4衰减调度衰减长度、衰减形状(线性 vs 1-sqrt)

每轮冻结前一轮的最优配置,只搜新维度。这个顺序有依赖关系:架构和数据决定了损失地形,优化器要适应这个地形,衰减调度要基于优化器的稳态行为来定。

最终配置

代理模型是1000万参数(L=12, d_model=256, h=4),每个搜索试验训练30000步,几小时就能完成一个试验。最终找到的最优配置:

  • 架构:PerDimScale注意力,变量轴注意力放在最后一层,CPM参数 c_max=16、p_max=0.4
  • 数据配比:42.5% Datadog观测数据 + 57.5% 合成数据,公开数据完全排除
  • 优化器:NorMuon η=0.65,AdamW η=0.012(用于输入/输出投影),都带权重衰减
  • 调度:线性衰减,10500步

这套配置直接套用到全部5个规模上。每个规模的模型参数见下表:

表:Toto-2.0模型家族参数配置,dhead固定为64

注意:d_head 在所有规模中固定为64。4M和22M模型训练40万步收敛,更大的模型训练60万步仍在提升。所有模型用4096步上下文、patch size=32、每样本32个变量、全局batch size=64。

四、评测结果:全面霸榜


预训练数据有个”反常识”

大多数基础模型会在预训练中加入公开时间序列数据。Toto-2.0没有。它的5.04万亿个数据点全部来自Datadog内部观测指标(CPU利用率、内存、请求延迟、错误率)和TempoPFN框架生成的合成数据。

公开数据只在微调阶段引入,占2.5B-FT变体的45%。这意味着Toto-2.0基座模型在公开评测集上从未见过相关领域数据,成绩更具说服力。

GIFT-Eval:97个任务,23个数据集

GIFT-Eval覆盖能源、零售、天气、金融等领域,是目前最全面的时间序列评测基准。

图6:GIFT-Eval结果——CRPS rank、MASE rank、CRPS、MASE

  • 313M、1B、2.5B包揽前三,CRPS rank分别是20.3、21.1、21.4
  • 313M到第二名PatchTST-FM r1(23.1)之间有1.7分的差距
  • Chronos-2排在23.5
  • 22M(26.8)比Toto-1(35.1)好了超过8分
  • 每个规模都比更小的规模好,缩放曲线干净

注意:代理模型的超参数是基于GIFT-Eval验证集优化的。这不是直接的数据泄露(模型训练时没见过GIFT-Eval数据),但超参数选择受GIFT-Eval表现影响。对比没有在GIFT-Eval上调参的模型时需要留心。

放开微调和集成变体后,Toto-2.0依然占据前两名:

图7:GIFT-Eval排行榜——基础模型、微调模型、集成、Agent系统全部在一起

  • Toto 2.0 FnF:用XGBoost做meta-learner,集成10个基础模型(5个Toto-2规模 + Chronos-2、TimesFM 2.5、TiRex、FlowState、PatchTST-FM r1),所有指标第一名
  • Toto 2.0 2.5B-FT:2.5B基座模型微调,rank指标第二名

最有意思的发现是集成内部发生了什么:FnF的meta-learner自由分配权重时,Toto-2.0家族平均拿到了39%的权重,超过任何其他单一模型源。

BOOM:观测数据的主场

BOOM评测的是观测指标预测:CPU利用率、内存使用、请求延迟、错误率。作为Datadog自家的基准,Toto-2.0在这里表现强势在意料之中。

图8:BOOM结果——CRPS rank、CRPS、MASE,所有Toto-2.0规模均超越其他基础模型

  • 所有5个Toto-2.0规模都位于Pareto前沿,在任何参数量级都没有其他基础模型更好
  • 三个最大规模CRPS rank:3.88(2.5B)、3.96(1B)、4.26(313M)
  • 22M(5.53)比Toto-1(6.94)参数少约7倍但性能更好
  • 4M(7.17)和Chronos-2(7.39)有竞争力,但参数只有后者的1/38,适合边缘部署

图9:CRPS rank vs 参数量——Toto-2.0所有规模都在Pareto前沿上

五、推理速度和长horizon稳定性

CPM不只是提升预测质量,还让推理快得离谱。

1024步预测,Toto-1.0需要最多16次自回归步骤,Toto-2.0一次前向传播搞定。313M模型的延迟和Chronos-2(120M参数)差不多,虽然参数量是后者的两倍多。在4096步horizon下,即使是2.5B单次推理也比Chronos-2快。

长horizon稳定性测试用了合成多尺度正弦信号,测试2048、4096、8192步horizon(训练上下文是4096步):

图10:前向传播延迟 vs horizon——Toto-2.0单次推理比Chronos-2更快

图11:合成多尺度信号在2048/4096/8192步horizon上的预测表现

模型规模2048步4096步8192步
4M能抓短期模式超出训练上下文后崩溃崩溃
22M维持更久开始退化严重退化
313M稳定稳定失去结构
1B稳定稳定仍维持基本模式
2.5B最准确最准确最准确

Toto-1和Chronos-2在1B模型之前就失去 coherence 了,尽管Chronos-2训练时用了更长的序列。规模确实对长horizon coherence 有实质影响。

六、局限性

  • 上下文长度必须是patch size(32)的倍数,否则会出问题。
  • 不支持面板数据协变量(covariate-informed)。能用全局协变量(如日历特征、宏观经济指标),但不能用实体特定协变量(如特定国家的节假日、特定门店的促销),因为通道混合假设每个协变量在所有时间序列中含义相同。如果禁用全局混合,每个面板用自己的协变量预测,这个限制可以绕过,但性能会下降。
  • 开源版本不支持微调,但论文暗示可以。未来可能会加。
  • 秒级频率上不如AutoTheta,结束了最近新TSFM在这个粒度上持续超越AutoTheta的记录。

七、对我的启发

看完Toto-2.0的技术细节,我有几个感受:

第一,时序预测的”scaling law”终于有了实证支撑。之前关于时序预测是否存在scaling law有很多争论,研究结论互相矛盾。Toto-2.0用u-µP把超参数这个变量控制住了,证明了”大就是好”在时序预测里也成立,前提是你得调对了方法。

第二,NorMuon解决的是一个被忽视的问题。从MSE切到pinball loss,梯度特性完全变了,但大多数人还是无脑用AdamW。Toto-2.0的团队注意到了这个不匹配,并且从优化器的观察粒度层面给出了解法,这个思路很漂亮。

第三,CPM让时序模型的推理体验发生了质变。从16次串行到1次并行,不只是速度提升,还消除了误差累积。对于做实盘预测的人来说,推理延迟的改善直接意味着能用更大的模型。

第四,不开源的预训练数据反而是个优势。Datadog用自家的观测数据+合成数据,不碰公开数据,反而让基座模型在公开评测上的表现更有说服力。这个策略值得其他做大模型的公司参考。

实操建议:如果你做的是观测指标预测(服务器监控、IoT传感器等),Toto-2.0的BOOM表现说明它非常适合。如果是金融时间序列,GIFT-Eval的金融子集上Toto-2.0也排名第一,但要注意它没见过金融领域公开数据,零样本表现可能需要微调来进一步提升。

八、怎么用起来

Toto-2.0已经发布到PyPI,安装很简单:

pip install toto-models

GitHub仓库地址:github.com/DataDog/toto

5个模型规模的选择建议:

场景推荐规模理由
边缘部署/嵌入式4M参数量极小,和Chronos-2有竞争力
快速原型验证22M比Toto-1好8分,参数少7倍
生产环境平衡选择313MGIFT-Eval前三,延迟和Chronos-2持平
高精度需求1B长horizon稳定,8192步仍维持模式
最高精度/有算力2.5B全面最优,长horizon最准

做时间序列预测的人等这一天等挺久了。之前基础模型在时序领域一直是”大不一定好”,现在Toto-2.0终于把这条曲线拉直了。它不是某个单一技术的突破,而是四个设计选择互相咬合:CPM解决推理效率、Arcsinh解决数据归一化、NorMuon解决优化器不匹配、u-µP解决超参数缩放。每一个都在解决一个实际问题,组合起来就是把锁。

对于做量化的朋友,我的建议是先拿313M在你的数据上跑跑看零样本效果。如果观测类指标多,大概率会有惊喜。如果是金融价格序列,可能需要微调,但基座模型的特征提取能力已经摆在那里了。


#时间序列预测 #Toto2 #基础模型 #Datadog #零样本预测 #深度学习 #AI开源 #量化预测 #NorMuon #CPM

Published inAI&Invest专栏

Be First to Comment

    发表回复