作者:老余捞鱼
原创不易,转载请标明出处及原作者。

文中示例仅用于技术讨论,不构成任何操作建议。
量化策略开发应以学习和技术交流为目的。
本号不荐股、不卖课、不承诺收益。
市场有风险,请合法合规投资。
本文约 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-modelsGitHub仓库地址:github.com/DataDog/toto
5个模型规模的选择建议:
| 场景 | 推荐规模 | 理由 |
|---|---|---|
| 边缘部署/嵌入式 | 4M | 参数量极小,和Chronos-2有竞争力 |
| 快速原型验证 | 22M | 比Toto-1好8分,参数少7倍 |
| 生产环境平衡选择 | 313M | GIFT-Eval前三,延迟和Chronos-2持平 |
| 高精度需求 | 1B | 长horizon稳定,8192步仍维持模式 |
| 最高精度/有算力 | 2.5B | 全面最优,长horizon最准 |
做时间序列预测的人等这一天等挺久了。之前基础模型在时序领域一直是”大不一定好”,现在Toto-2.0终于把这条曲线拉直了。它不是某个单一技术的突破,而是四个设计选择互相咬合:CPM解决推理效率、Arcsinh解决数据归一化、NorMuon解决优化器不匹配、u-µP解决超参数缩放。每一个都在解决一个实际问题,组合起来就是把锁。
对于做量化的朋友,我的建议是先拿313M在你的数据上跑跑看零样本效果。如果观测类指标多,大概率会有惊喜。如果是金融价格序列,可能需要微调,但基座模型的特征提取能力已经摆在那里了。
#时间序列预测 #Toto2 #基础模型 #Datadog #零样本预测 #深度学习 #AI开源 #量化预测 #NorMuon #CPM
Be First to Comment