新浪科技 股票

AI预测电价准确率提升了50%,为什么压缩文件却几乎没变小?

市场资讯 10.13 21:31

(来源:科技行者)

2026年初,一位独立研究者做了一件挺有意思的事。

他把谷歌最新的时间序列预测模型TimesFM-3拿来,试着用它去压缩数据。逻辑听起来天经地义:这个模型预测美国电网负荷的准确率,比传统的线性预测方法高出51%。预测越准,说明模型对数据的"理解"越深,那压缩效果肯定也该跟着水涨船高。

结果呢?

**压缩率只提高了0.03%,几乎等于没变。**

这不是哪里出了bug,也不是模型不够好。这篇论文要讲的,正是这个反直觉现象背后的数学原理,以及研究者如何在这个"死胡同"里,意外找到了一条真正能用的路。

**压缩到底在赌什么**

要理解这件怪事,得先弄明白压缩这回事的本质。

信息论的奠基人香农早就说过,压缩的核心就是预测。如果一个模型能猜出下一个数大概率是多少,编码器就可以少花点"笔墨"去记录这个数,因为它已经在意料之中了。这几年大语言模型压缩文本效果惊人,一个700亿参数的模型甚至能把文本压缩得比传统的上下文混合算法还狠,这就是活生生的证明:预测越准,压缩越猛。

那时间序列模型呢?

TimesFM这类模型是专门给数字序列设计的"预言家",在万亿级别的时间点数据上训练过,什么电力负荷、地铁客流、股票价格,理论上都能拿来零样本预测。听起来它应该是压缩数字数据的天选之才。

但研究者发现,无损压缩(也就是压缩后必须能一比一还原原始数据)这条路走不通。原因不是工程实现的问题,而是数学结构本身的限制。

编码需要的比特数,大致等于预测误差规模的对数值,加上一个常数项。这句话翻译成人话就是:**预测精度每提升一倍,能省下的比特数只是一个固定的常量,而不是成倍地省。**

想象你在猜一个1到1000之间的数字。如果你原本每次要猜10次才能猜中,现在因为有了更聪明的策略,只需要猜5次,这确实是巨大的进步。但如果你想把猜的次数从10次砍到只需1次,你需要的不是"聪明一点",而是要有近乎读心术般的精度提升,猜测范围要缩小1000倍。压缩比特数和猜测次数的关系就是这样:越往后,每多省一点,需要的精度提升越是天文数字级别。

论文里给出的具体数字很扎心:要把一个每个数值占20比特的文件压缩掉一半,你需要一个比现有方法准确1024倍的预测器。而TimesFM-3相比32抽头线性预测器,只快了1.51倍。这1.51倍的进步,换算下来只值0.6比特,占整个20.28比特预算的2.9%。

这个规律用一个公式表达:新旧两种预测器的平均误差之比取以2为底的对数,就是能省下的比特数。研究者管这个叫对数定律,它像一道数学意义上的天花板,无损压缩这条路从根上就被这道公式锁死了。

研究者甚至专门测了12组真实数据序列,把TimesFM-3和几种经典预测方法放在同一个熵编码器(负责把预测的误差高效地转换成实际比特流的核心组件)下公平比较,中位数增益是**+0.03%**,说是提升,不如说是持平。

**转折点:允许"有点误差"之后,规则彻底变了**

无损压缩这条路走死了,但研究者没有就此放弃,而是换了个赛道:有损压缩。

这里要先解释一个概念。

误差有界压缩:一种压缩方式,允许还原后的数值和原始数值之间存在一定的误差,但会严格保证误差不超过一个预先设定的容忍范围。

听起来这是个妥协,但恰恰是这个"妥协"打开了一扇新门。因为在误差有界的框架下,当预测值刚好落在容忍范围之内,这个数据点的量化误差直接归零,编码这个数据点几乎不花一分钱的比特。这不再是对数曲线那种温吞的递减关系,而是一个断崖式的跳变:从"要花钱编码"直接跳到"免费"。

研究者据此设计了一套叫Cadence的压缩系统。

它的工作原理是个闭环结构:预测器根据历史重建值(不是原始值,是解码器也能拿到的重建值)给出下一个预测点,实际值和预测值的差被量化成一个整数索引,这个索引就是要传输的核心内容。因为解码器手里有和编码器完全相同的历史重建值,它能反推出同一个预测,从而正确还原原始数据,同时保证误差绝对不超过设定的容忍度。

这就好比一对提前约好暗号的特工,两人各自在不同地点,只要出发前对好了同一份密码本,之后传递的每条消息哪怕再简短,对方都能准确解读出完整含义。如果这份密码本(也就是历史重建值)在编码端和解码端出现了哪怕一丁点不一致,后面所有的消息都会全盘译错。这也是为什么论文里反复强调,预测器必须"吃"自己重建出来的数据,而不是原始数据,这是保证解码端能精确复现的唯一办法。

那么,这套系统在真实场景里表现如何?

**在两类"人类活动"数据上,赢麻了**

为了避免拿模型训练时"背过"的数据来考试作弊,研究者特意挑了两批2026年才产生的全新数据,这些数据无论如何不可能出现在TimesFM-3的训练集里。

**数据污染:** 如果测试数据碰巧和模型训练时见过的数据重叠或高度相似,测试结果就会虚高,无法反映模型真实的泛化能力,这种情况被称为数据污染。

一批是美国49个电网运营区域的每小时用电负荷数据,另一批是纽约地铁50个客流最大站点的每小时客流数据。这两批数据的共同点是:它们都是大量独立的人类决策汇总后的结果,比如成千上万人各自决定开不开空调、要不要出门坐地铁,这些行为叠加起来,会呈现出很强的日周期和周周期规律。

结果相当惊人。

在电网负荷数据上,Cadence对比六种经典误差有界预测方法里表现最好的那个,中位数增益是**+13.3%,147组测试全部获胜**。在地铁客流数据上更夸张,中位数增益**+28.3%,150组测试同样全胜**。把两组数据合并看,297组测试里Cadence以中位数**+21.4%**的优势拿下全部297场胜利。

这时候有个细节值得琢磨:容忍误差越宽松,Cadence的优势反而越大。这恰好印证了前面说的"断崖式归零"逻辑,容忍带越宽,落入这个免费区间的数据点自然越多,优势就跟着放大。

但故事没有到这里结束,研究者紧接着做了一件很多论文不会主动做的事:**主动去证伪自己的结论**。

如果这套系统的优势真的只属于"人类聚合行为"这一类数据,那么换到别的领域,它应该会输。研究者转头去测了SDRBench,一个专门给科学模拟数据准备的基准测试集,里面是分子动力学轨迹和飓风扫描线这类光滑的物理场数据。

结果如预测所料:中位数**-0.8%,27组测试无一获胜**,在最光滑的飓风数据上甚至输了41%,而且容忍度越宽松输得越惨,和前面地铁数据的规律完全相反。

这不是失败,这恰恰是整篇论文最有说服力的部分。一个只在特定领域宣称有效的方法,如果研究者自己主动跑去它理论上应该失效的地方验证,并且真的验证出了失效,这比堆一百个"我们赢了"的正面案例更能让人信服。这就像一个声称能治感冒的药,厂家主动拿去给癌症病人试了一遍,然后诚实地报告说没效果,这种坦诚反而让感冒疗效那部分的可信度直线上升。

**为什么偏偏是"人类活动"数据吃这一套**

研究者试图找一个简单指标,提前判断某个数据集会不会受益于这套方法,但没找到靠谱的。

不过从直觉上能理解个大概:赢的两个数据集(电网负荷、地铁客流)都是很多人独立决策叠加出来的结果,本身带着强烈又复杂的周期规律,传统的一两阶线性预测器很难吃透这种规律。而输的那类数据,比如服务器CPU占用率、机器温度,本身波动模式简单,用个一两抽头的简易预测器就已经逼近最优解了,没有太多"油水"可榨。

这再次印证了那条对数定律:**只有当经典方法本身就很弱、预测准确率差距悬殊时,神经网络模型才有发挥空间。** 而在飓风模拟这种极度光滑的物理场景里,经典的插值方法本身已经近乎完美,神经网络模型反而成了多余的累赘,甚至因为它不像插值方法那样"收缩式"地压制噪声,在存在误差反馈的闭环里表现更差。

**藏在工程细节里的坑**

除了核心结论,论文里还挖出了几个容易被忽视但极其关键的工程问题。

第一个是批次大小不确定性。研究者发现,同样的模型、同样的输入数据,只要送进GPU的批次大小(batch size,一次并行处理多少条数据)不同,模型输出的预测值就会有极其细微的差异,哪怕差异小到万分之一,在这套闭环系统里也是致命的。

这就像两个人分别在两个不同的房间抄写同一份文件,如果抄写时用的笔尖粗细不完全一样,抄出来的每一笔轻微的粗细偏差累积到几万字之后,两份抄本可能在某个字上产生歧义,进而导致后面所有的内容对不上。研究者算过一笔账,这种偏差导致编解码"翻车"(专业说法是"解同步")的概率大约是每个样本十万分之一,单看一个样本几乎可以忽略,但放到百万级别的数据流里,几乎必然会发生一次。一旦发生,这一次错误之后的所有数据都会解码错误。

解决方案很朴素:把批次大小这个参数也写进压缩文件的格式头里,编码和解码时死死锁定同一个批次大小,问题就消失了。研究者还验证了跨GPU和CPU执行时预测结果同样不一致,这意味着一个五年跨度的数据归档文件,如果编解码分别在不同硬件上跑,失败概率能到26%左右。

第二个细节是"启动成本"。神经网络预测器不像传统方法那样只需要前一两个数据点就能开始工作,它需要一段较长的历史数据作为"热身",论文里管这个叫上下文引导。这段热身数据本身也要占用比特来存储,短序列里这笔开销占比很大,导致六个月长度的电网数据上,端到端的实际收益只有6.8%,远低于单纯看核心压缩体那部分能达到的13.3%。数据积累到五年以上,这笔热身成本被摊薄,收益才逐渐爬升到15.1%左右的渐近值。

第三个细节则纠正了研究者自己早期的一个误判。他们最初用通用压缩工具(比如xz、zstd这类常见的文件压缩格式)来给量化后的残差编码,结果得出"容忍度越宽松,优势反而在缩小"的结论。后来自己动手实现了一套专用的算术编码器(一种把数据出现的概率直接编码成接近理论最优比特数的编码技术)之后才发现,前面的结论是假的,通用压缩工具在处理长串重复的零值时表现异常出色,反而让传统方法显得比实际更强,掩盖了新方法真正的优势。换用专用编码器后,趋势直接反转,容忍度越宽松,优势反而越明显,这才是真实情况。

**真正的对手不是SZ3,而是"降采样"**

论文里还有一个视角特别务实,很多同类研究容易忽略。

科学计算领域已经有SZ3、ZFP这类成熟的误差有界压缩工具,专门为多维科学模拟数据设计。研究者也拿真实的SZ3程序做了对比,Cadence在他们测试的两个数据集上赢了36.3%,但作者非常诚实地指出,这个胜利意义有限,因为他们自己实现的经典预测方法同样能打赢SZ3,说明SZ3本来就不是为一维的运营类时间序列数据设计的工具,拿它来比较有点"关公战秦琼"的意味。

真正有实际意义的对比对象,是时间序列数据库目前普遍采用的做法:降采样。简单说就是把数据每隔一段时间取一个平均值或采样点,历史数据存得越久,采样粒度越粗。这种做法的问题在于,它完全不保证任何误差上限,极端峰值和异常波动会被平均掉,而这些恰恰是故障排查、异常检测时最需要保留的信息。

论文的对比结果显示,在同样的文件大小下,Cadence保证的最坏情况误差比降采样要紧密28到56倍。这意味着如果你的业务场景需要精确追溯某次异常波动,降采样这种"模糊记忆"式的存储方式是有风险的,而误差有界压缩提供的是可验证的确定性保障。

**几个容易被忽略但很重要的负面结果**

论文里坦率地列出了三个尝试失败的方向,这在学术论文里其实不多见,大部分人会选择性地不提失败的尝试。

第一个是跨序列关联预测,研究者想看看给模型同时喂入一个相关联的序列(比如英文维基百科浏览量作为中文维基百科浏览量的辅助信息)能不能帮上忙,结果压缩效果反而略微变差,尽管预测准确率单独看是提升的。

第二个是用模型做插值填补,试图先压缩一个稀疏采样的骨架,再让模型把中间的点补全,结果在所有测试配置下全部失败,最差的情况下效果倒退了210%。

第三个是让模型和传统方法按数据块动态切换,谁预测得准就用谁。这个思路最终发现在人类需求数据这个领域里,神经网络模型几乎全程碾压传统方法,切换机制形同虚设,退化成了单纯使用神经网络模型本身。

这三次失败共同指向一个朴素的教训:**给模型塞更多"辅助信息"未必总是有效,有时候反而会稀释模型本身已经学到的规律。**

写在后面

读完这篇论文,最触动我的其实不是那21.4%的压缩增益数字,而是那条对数定律揭示出的东西。

我们这个时代很容易陷入一种直觉:模型越强、参数越多、预测越准,那它在下游任务上一定越牛。这篇论文用一个干净利落的数学公式打破了这种直觉,预测精度和压缩效果之间隔着一个对数函数,这意味着"更聪明"和"更省空间"根本不是同一回事,前者的巨大进步,换算到后者身上可能只是杯水车薪。这提醒我,评估一个AI能力的时候,得先搞清楚这个能力真正对应的是哪个具体任务的哪个数学结构,而不是想当然地认为"厉害的模型什么都厉害"。

另一个让我印象深刻的是研究者主动跑去证伪自己结论的那部分。学术圈里,把自己的方法拿到一个理论上该失效的场景里验证,还老老实实报告失效了,这种态度比堆砌一堆正面案例更让人信服。论文最后附的那句话也挺有意思,作者说他们公开了"八个在更严格测量下被自己推翻的结论",这种把踩过的坑也摆出来给大家看的做法,某种程度上比论文本身的技术贡献更值得欣赏。

如果未来有人要把这套思路用到零售、呼叫中心或者公用事业计量数据上,会不会重复"人类聚合行为"数据这个规律?这事目前没人验证过,倒是个挺值得琢磨的开放问题。

Q&A

Q1:Cadence是什么?

A:Cadence是一种误差有界的有损压缩系统,它利用时间序列预测模型TimesFM-3做预测,把预测值和真实值的差量化编码,保证每个还原数值和原始数值的误差不超过预先设定的容忍范围。

Q2:为什么TimesFM-3预测更准,无损压缩效果却几乎没提升?

A:因为压缩所需比特数和预测精度之间是对数关系,不是线性关系。预测准确率提升51%,换算成能省下的比特数只占总预算的2.9%,要让文件缩小一半,需要预测精度提升1024倍。

Q3:Cadence在哪些数据上效果最好,哪些数据上会失效?

A:在电网用电负荷和地铁客流这类人类聚合行为数据上效果最好,中位数增益分别达到13.3%和28.3%。在科学模拟这类光滑物理场数据上则会失效,测试中中位数为负8%,全部落败。

加载中...