没有神经网络,没有千亿参数矩阵,甚至没有显卡参与运算。开发者 Nathan Barry 最近用一段 168 行 的 Python 脚本,直接把操作系统自带的压缩工具 gzip 变成了文本生成器。只要塞入莎士比亚语料,它就能接着提示词输出语法结构惊人相似的戏剧台词。

这个名为 GziPT 的实验迅速引来围观。很多人下意识以为,既然连三十年前的压缩算法都能写出像模像样的句子,大模型不过就是层层包装的压缩骗局。然而事实恰恰相反:这不是算法拥有了语义理解,而是一场靠信息论对偶性和高成本暴力搜索硬凑出来的技术幻象。

压缩如何伪装成预测

信息论的基石之一是预测与压缩的等价性。按照香农理论,对一个符号进行无损编码所需的最小比特数为 -log2(p),其中 p 是该符号出现的概率。换句话说,压缩工具只要想把体积做小,内部就必须隐含一套对后续字符的概率预测模型。

候选文本被压缩得越小,算法就判定其出现概率越高(示意图)
候选文本被压缩得越小,算法就判定其出现概率越高(示意图)

gzip 底层依靠经典的 DEFLATE 算法,把 LZ77 字典匹配和霍夫曼编码捏合在一起。它的核心机制是在文本里寻找重复出现的字节序列。当一段候选文字能完美呼应前面出现过的内容时,算法就会用极短的后向引用代替原始字符,压缩后的文件尺寸便会急剧缩减。

GziPT 的打分与生成闭环 语料窗口 莎士比亚文本 Prompt 提示词 DEFLATE 压缩 zlib 实时计算 评估压缩体积 束搜索解码 24 字节前瞻 束宽 32 条路径 续写输出 提交最优片段 滚动刷新尾部

因此,只要把压缩后的字节长度作为损失函数,就能反推下一步该填什么词。打分公式极其简朴,候选续写并入上下文后体积越小,说明算法判定其概率越高。

算力外挂掩盖了量化噪声

既然原理行得通,为什么以前没人直接拿 gzip 做聊天机器人?症结出在离散整数量化上。

多线程外部搜索算法不断剔除乱码,替压缩器维持词汇完整
多线程外部搜索算法不断剔除乱码,替压缩器维持词汇完整

单字节字符非常细小,将它追加进几万字节的上下文里,gzip 返回的压缩体积往往完全没有变化。信号被淹没在整数单位的量化噪声中,单步贪心算法根本无法分辨哪一个字符更好。

为了让这个打分机制动起来,GziPT 引入了重型解码外挂。它不再单步做选择,而是用 束搜索 强行前瞻约 24 字节,同时维持 32 条候选路径,调用多线程池暴力压缩每一个组合。续写文本之所以能保持词汇完整,靠的不是 gzip 的预测灵敏度,而是搜索算法在外部替它排除了乱码组合。

关键机制与物理边界对比 32 KiB DEFLATE 滑动窗口物理上限 RFC 1951 协议硬性约束 258 B 单次最长匹配字节跨度 决定局部拼贴长度极限 24 B 束搜索前瞻避噪步长 跨越单字节整数整除钝化
  • 结论.压缩工具可以提供打分,但赋予其连续生成能力的其实是外部穷举解码器。

记忆诅咒与无限自抄袭的死循环

这套方案很快撞上了更致命的算法机制缺陷。

追求极致压缩率,算法坠入无休止重复复制自身的闭环死锁(示意图)
追求极致压缩率,算法坠入无休止重复复制自身的闭环死锁(示意图)

根据 RFC 1951 规范,DEFLATE 的滑动窗口只有 32 KiB,单次最大匹配长度只有 258 字节。这意味着它是个严重的近视眼。生成的莎士比亚文本高度依赖语料末尾约 30 KiB 的具体排列,语义连贯度随着生成长度急剧衰减。它无法识别同义词,无法理解句法,本质上只是字符层面的局部短语拼接。

更具讽刺意味的是,DEFLATE 对临近重复字节的编码开销极小。如果让 gzip 看到完整的自身生成历史,算法会迅速发现:直接抄写上一句刚输出的话,压缩体积最小

追求极度压缩率的必然结果,是系统坠入无限循环复读自身输出的逻辑陷阱。

为了阻止它陷入自我复制的死循环,开发者必须强制切断上下文,在评分时只保留最后几个字节的尾部历史。这彻底暴露了无损压缩与自然语言理解之间的鸿沟:人类语言的合理性来自于语义逻辑的推进,而不是机械子串的复现。


理论对偶照不亮工程现实

Google DeepMind 曾在 ICLR 2024 发表论文《Language Modeling Is Compression》,系统论证过语言模型与压缩器的理论对偶。团队测试显示,70B 参数的 Chinchilla 模型在只用文本训练的条件下,能把 ImageNet 图像片段压缩到原体积的 43.4%,表现压过 PNG 的 58.5%;对 LibriSpeech 音频的压缩率达到 16.4%,优于 FLAC 的 30.3%。

神经压缩依赖百亿级参数权重,而经典工具仅需百行原生代码
神经压缩依赖百亿级参数权重,而经典工具仅需百行原生代码

但这层对偶性带有昂贵的工程先决条件。

评估维度神经压缩(LLM)经典压缩(DEFLATE/gzip)
语义抽象连续高维向量空间表征离散精确子串匹配
跨模态泛化具备图像/音频等先验压缩潜力仅限局部重复字节流去重
部署成本解压必须捆绑传输数十亿参数权重操作系统原生内置,仅百行调用代码
适用场景极低带宽极限传输或大语料预训练独立单文件即时低开销无损打包

大模型确实可以被视作高阶压缩器,但要在接收端解压数据,必须先完整传输那几十亿个模型权重。这在日常工程传输中几乎不具备实用价值。

GziPT 是一次令人击节赞叹的极客探索。它用极度克制的代码让大家重温了信息论的数学美感,却也顺手划出了经典统计与现代深度学习的分水岭。古人讲断章取义,DEFLATE 靠局部的断章拼贴,能把戏剧腔调学得惟妙惟肖,但只要走出那 32 KiB 的逼仄窗口,没有语义表征的躯壳立刻就会散架。

  • 提醒.不要把文本表面分布的局部收敛,误认作机器开始理解人类的常识与世界。