||
在语义压缩框架里,发送端和接收端都共享一个超大的知识库(也就是大语言模型GPT本身)。只要两边都装好了这台“超级预言机”,你就只需要传那些模型无法直接预测的信息——往往是微小的差异。
模型分发成本:把模型先安置到两端,是一次性“沉没成本”。
消息传输成本:之后每条消息,只要剩下差分信息,就能拿到极致压缩比。(想象一下:家里装了电表,后来用电就只需按表读数付费,不用每次都搬来发电机。)
所以,如果你要传送海量短消息,中心节点(也就是先统一部署好那个大模型)无疑是最省每条消息比特数的做法。
2. “模型足够聪明,万物皆可压缩?”不是的。即便有了一个近似 Solomonoff 预测器(不可计算的最优压缩器),它也只能针对有规律的数据把消息压得很小;面对真正的随机噪声或 Kolmogorov 意义上的不可压缩序列(比如纯白噪声),你依然得用与原始数据相同的位数来描述它。
有损 vs. 无损:大模型做的是“无损语义压缩”的近似——理论上目标是无损,但实践里模型参数、截断长度、tokenizer 带来的误差都让它“看起来”有点像有损。或者说,语义层面上无损,但比特层面依然因截断、tokenizer 等带来轻微有损。
序列号/元数据开销:举例来说,为了保证顺序和可解压,你往往需要加上序列号、checksum 等元信息。
最短描述长度对任意字符串 x,其 Kolmogorov 复杂度 K_U(x) 定义为:在一台通用图灵机 U 上,能输出 x 的最短程序(二进制串)长度。
可加常数不变性虽然不同的通用图灵机 U 和 U′ 会有不同的基准,但对于任意 x,都有
其中 C_{U,U′} 与 x 无关。
朴素复杂度 vs 前缀复杂度
朴素复杂度 C(x):
C(x) 只关心“最短的整体长度”,不在意程序间有没有分界。把描述字符串 x 的最短程序长度,直接拿来算。就像你打电话传电话号码,但不告诉对方号码有几位,只发出一串数字:1357902468...对方不知道这串是 10 位还是 11 位,哪里断开也不清楚。这就是朴素复杂度:只在意“整个程序多短”,不管程序之间有没有清晰的分界。但没界限容易搞混:如果程序 A 是 101,程序 B 刚好是 1010,对方收到 1010 时,不知道是 A+0,还是直接 B。
前缀复杂度 K(x):
在 C(x) 的基础上,多加一个要求:所有可行的程序都不能互为前缀(prefix-free),就像保证任意一段代码结尾清晰、不会和另一段代码混在一起。这让理论性质更好,也能直接对应信息熵。这次你在每个号码后面都加个“#”标记结束,比如02468# … 听者一听到“#”,就知道这一串号码完整发完了,不会跟下一个混淆。这就是前缀复杂度:所有可行程序都设计成“自己带结束标志”,永远不会是另一个程序的开头。概率总和也容易算清楚:带结束符的代码就像每个密码都有自己独立的门,能保证所有概率加起来是 1,数学上好推导,也能直接对应信息熵。
算法概率(Algorithmic Probability)
Solomonoff 提出“通用先验”
意味着:字符串 x 的出现概率和它的最短程序长度成反比。
归纳推理
通过给所有可能程序打上权重(2^{-|p|}),Solomonoff 归纳理论就是在做全空间搜索 + 加权平均,推断下一个 token 的概率,完美符合 GPT “next token prediction” 的理论——只是不可计算。
不可计算性
理论上的最优 K(x)永远算不出来(停机问题),要么只能上界估计(通过各种压缩算法),要么用算术编码等手段做近似。
5. 李明教授的《Introduction to Kolmogorov Complexity》精髓结构函数(Structure Function)
李明书中详细讨论如何分离“随机性”与“结构”:给定 x,寻找一个模型类 𝓜 (记作 ℳ)和其中的模型 M∈𝓜,使得
尽可能小——这就是对数据 x 做两部编码(two-part code),也是最优压缩与模型选择的数学基础。第一部分 K(M) 是模型本身的描述长度。第二部分 log |{ y : M(y)=x }| 是给定模型 M 后,还需要的那部分随机性长度。
算法充要统计量 S(x)(Algorithmic Sufficient Statistic)
这是李明重点:一个“充要”统计量 S(x),能在最小化两部编码的同时,既把数据的“规律”压进模型,又把剩余噪声放进随机部分,做到最简洁的描述。第一部分 K(S(x)):用最短的程序描述模型 S(x) 本身;第二部分 log |{ y : S(x)(y) = x }|:在给定模型之后,为了完全还原 x,还需多少比特来区分所有被该模型映射到 x 的可能 y。
把它们加起来,就是“用这个模型+随机补充”来描述 x 的总代价。找到能让这个和最小的 S(x),就相当于找到了对 x 最好的“充要”统计量。
随机性测度(Randomness Deficiency)
定量衡量某个样本 x 相对于模型 M 是多“典型”或多“离谱”,用于指导是否要换模型或增加模型复杂度。
6. 尼克的视角:GPT 与柯氏复杂性学习就是“求逆”问题,训练即最短程序逼近
Nick 强调:训练一个模型,就是在可计算的程序空间中,寻找一个能够“生成”训练集的短程序——也就是在实战中做的近似。
大模型的“内容压缩” vs “形式压缩”
个体压缩(Instance):像无损 ZIP,一首歌可以 100% 还原,对应形式压缩。
整体压缩(Dataset):面对海量文本,关注的是文本背后的意义或“语义信息”,此时“无损”只针对意义层面,形式上允许丢弃多余噪声。这正是 LLM 做到的:内容/语义的“无损”——虽然编码字符上看似“有损”。
近似最优 vs 真最优
Nick 提到:任何可实现的压缩算法(gzip、xz、算术编码加GPT…)都只能逼近K(x),而 GPT 则是在“预测分布”上进行近似,用一个固定模型去对抗所有序列,其优势是语义联想和上下文填空,但仍旧受限于模型容量与截断长度。
小结李明教授给我们一整套两部编码、结构函数和充要统计量的严谨框架;
尼克的大模型论:训练≈求逆,预测≈Solomonoff 归纳,压缩≈最优编码的近似实践。
真正的“最优无损”只有在理论上存在,现实里每一次“预测+编码”都在做逼近,同时也承载了网络协议的元信息开销。
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2025-7-9 02:11
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社