为什么压缩与大语言模型解决的是同一个预测问题

压缩与 LLM 是同一种预测问题

核心观点: 现代无损压缩器和大语言模型 (LLMs) 都在构建数据的概率模型,利用这些模型预测下一个符号,并使用熵编码器对数据进行编码;预测得越准,所需的比特数就越少。


经典压缩的工作原理

  • 变换 (Transforms) (例如:游程编码) 通过重新排列数据来暴露冗余,但可能无法直接缩小文件体积。
  • 模型 (Models) 根据观察到的频率或上下文,为每个可能的符号分配概率。对于字符串 AAAAAA BBB C,一个简单的模型会得出概率 A:0.71, B:0.21, C:0.07
  • 熵编码器 (Entropy coders) (算术编码或 Huffman 编码) 将这些概率转换为比特流,其长度趋近于香农熵 -∑p·log₂p

"熵是底线——在不损失信息的情况下,每个符号所能达到的最小比特数。" – Ngrok blog

为什么概率很重要

  • 高概率符号需要的比特数较少 (bits = -log₂(p))。
  • 分布越偏斜,压缩效果越好:一个由 A 主导的字符串 (p≈0.83) 平均每个符号仅需 0.82 bits,而一个平衡的字符串平均每个符号需要 1.38 bits
  • 加入上下文 (1阶、2阶模型) 可以剧烈提高概率的准确性。一个 1 阶模型将短语 "TO BE OR NOT TO BE" 的压缩大小从约 47 bits 降低到了约 21 bits。

作为压缩的语言建模

  • LLM 在给定先前上下文的情况下,生成下一个 token 的概率分布——这正是压缩器中的模型步骤。
  • 当真实的下一个 token 与概率最高的预测一致时,编码器仅消耗 -log₂(p) 个比特;预测错误会增加比特成本。
  • 算术编码可以应用于 token 流,使训练良好的 LLM 成为近乎最优的压缩器。在对狄更斯名句的测试中,GPT-2 模型实现了 176 bits (原始大小的 10%),远优于朴素的 1 阶模型 (434 bits, 24%)。

"训练 LLM 等同于优化一个巨大的参数化压缩算法(交叉熵损失与香农熵公式相同)。" – Ngrok blog

实际限制

  • 模型大小 vs. 负载:部署一个数 GB 大小的 LLM 来压缩 HTTP 响应,其成本将超过所节省的 KB 数据。
  • 计算成本:使用 Transformer 进行编码/解码的速度比 gzip 或 Brotli 慢几个数量级,且更耗能。
  • 因此,LLM 在语义压缩(例如总结提示词)方面非常有用,但不适用于常规的字节级压缩。

社区观点

farfatched: "信息论、推理和学习是同一枚硬币的两面;大脑是终极压缩器。"
ssivark: "只有当训练分布与测试分布完全匹配时,压缩才等于预测;否则泛化能力会产生偏差。"
variadix: "非 LZ 压缩器隐式地对概率分布建模;每个发出的符号的长度与其概率相对应。"
throwaway_7274: "将训练视为对一系列压缩器的优化,使得新思想的出现变得合理。"
zephen: "压缩需要预测,但这并不意味着压缩 就是 预测;方向性很重要。"
j-pb: "第三个维度——索引——完成了压缩、预测和查找结构的“三位一体”。"
rrherr: "Schmidhuber 2008 年的论文就已经将压缩进展与好奇心和创造力联系起来,早于近期的热潮。"
sethev: "Hutter Prize 明确地将压缩视为智能的代理,强化了压缩与预测之间的联系。"
sigbottle: "Solomonoff 归纳法表明,如果没有资源限制,完美的压缩是空洞的;真实的压缩器必须足够小才能发挥作用。"
Lerc: "预测使得仅对误差进行编码成为可能,但压缩器还可以利用序列化时不可见的全局模式,因此这种等价性并非严格意义上的等价。"
zhxiaoliang: "压缩利用可预测性;智能创造有用的预测——这是一个重要的概念区别。"
jdthedisciple: "可预测性是信息的反面;低信息量产生高压缩率,这是基础信息论。"
e12e: "Gzip 可以用作语言模型,这证明了经典压缩器已经在执行 next-token 预测了。"


总结

  • 数学同一性: 无损压缩器和 LLM 都在最小化同一个目标——交叉熵(负对数似然),这等于每个符号的期望比特数。
  • 实际差异: 压缩器是为速度、微型模型和确定性解码而设计的;LLM 优先考虑表达能力,可以处理长程依赖,但资源成本巨大。
  • 未来方向: 改进压缩取决于更好的预测模型。随着 LLM 的不断进步,它们将越来越多地充当语义压缩器,而传统的字节级压缩器仍将是低开销数据传输的主力军。

快速参考表

组件 压缩 LLM 角色
模型 概率表 (通常是上下文相关的) 输出 token 概率的 Transformer 预测下一个符号
熵编码器 算术/Huffman → 比特流 同一种编码器可应用于 token 概率 将概率转换为比特
目标 最小化每个符号的比特数 (趋近熵) 最小化交叉熵损失 (相同的指标) 更好的预测 → 更好的压缩

总而言之, 任何无损压缩器的核心都是预测器;现代 LLM 只是更强大的预测器,这就是为什么当它们与熵编码器结合时能实现卓越的压缩效果,尽管在大多数工程流水线中,实际的限制使它们保持分离。

Sources

相关