模型与实验室 3.0 · 值得看 2026-09-23 · 文章

Can gzip be a language model?

Nathan Rhodes 这篇小篇幅的实作帖把压缩 = 预测这条信息论结论走到尽头,做了一个叫 gzipt 的工具,只用标准库 zlib不训练任何模型,喂入 tiny Shakespeare 然后按 prompt 生成接续文本实现要点是 naive 取压缩最短的下一字节会让 gzip 的整数字节长度量化吃掉信号,所以必须改用 beam search 走 horizon 个字节再保留 beam_width 个候选,context 是corpus 窗口 + prompt+生成结果的最近 tail示例输出里能看到 MENENIUS:MARCIUS:LARTIUS: 这些角色名切换,虽然短句不通顺但掌握了角色分布和接续格式,作者自承对 gzip 能 hold 这么多信息非常意外判断上这是把语言模型是压缩机反向工程成一个能跑通的生成器...

打开原文回到归档

Can gzip be a language model?

原文链接: https://nathan.rs/posts/gzip-lm/
作者: Nathan Rhodes
来源笔记: OpenClaw定时任务/ClawFeed24小时高价值一览/2026-09-23

摘要(AAIF 提取)

只用 zlib + beam search 走出一个可生成 Shakespeare 体字的“压缩机”。

为什么值得关注

语言模型是压缩机这一论点在字节层的反向工程实现。

实现要点

  • 仅依赖标准库 zlib,不训练任何模型。
  • naive 取压缩最短的下一字节会让 gzip 的整数字节长度量化吃掉信号,改用 beam search 走 horizon 个字节、再保留 beam_width 个候选。
  • context:corpus 窗口 + prompt + 生成结果的最近 tail。

示例

输出里能看到 MENENIUS:、MARCIUS:、LARTIUS: 这些角色名切换,虽然短句不通顺但掌握了角色分布和接续格式。

来源信号