面向本地大模型的开源 2-bit 压缩

我们把大模型压缩了 85%。 与 llama.cpp 的 2-bit 一样大,却聪明得多。

Pingala-8 把 Qwen3-4B 存成 1.24 GB,而原始模型是 8.05 GB。这与 llama.cpp 最小的常用 2-bit 格式 IQ2_XXS 的文件大小相同,而它在五项标准测验上的得分高出 21%。无需重新训练:它直接压缩你手上已有的模型。代码、日志和 Windows 一键包全部公开。

实时播放,未加速。文字和时间来自 Pingala-8 Qwen3-4B(1.24 GB)在 RTX 5070 Ti Laptop GPU 上的一次真实运行;聊天窗口是重新制作的。

结果

更小,同等大小下更聪明,生成速度快

除特别注明外,均为 Qwen3-4B。在一块 GPU(RTX 5070 Ti Laptop)上测得。每个数字都能在论文和仓库里的日志中找到。

85%
比原始模型小

Qwen3-4B 从 8.05 GB(fp16)降到 1.24 GB,只有原来的 1/6.5。Llama-3.1-8B 从 16.08 GB 降到 2.39 GB。

+21%
同等大小下,测验得分高于 llama.cpp 的 2-bit

五项任务的平均分:50.8,IQ2_XXS 为 41.9。保留了 8-bit 模型 56.3 分的 90%。

39%
比 Q4_K_M 快,大小只有它的一半

生成回复时约每秒 216 个 token(batch 1),是 IQ2_XXS 的 1.10x。读取长提示词较慢:0.74x。

同等大小下的质量

同样的字节数,更低的困惑度

困惑度(perplexity)衡量模型预测真实文本的能力,越低越好。在 WikiText-2 上,原始 Qwen3-4B 为 12.46。在 IQ2_XXS 的文件大小下,Pingala-8 为 16.64;相比之下,IQ2_XXS 为 28.61(Pingala-8 低 42%),我们构建的同等大小中最强的 IQ2_KT 文件为 18.15。

两张散点图,显示 WikiText-2 困惑度与文件大小的关系。Qwen3-4B,约 1.24 GB:Pingala-8 B4 为 16.64,多个 IQ2_KT 文件(最好为 18.15),IQ2_XXS 为 28.61,fp16 为 12.46。Llama-3.1-8B,约 2.39 GB:Pingala-8 B4 为 9.14,IQ2_KT 为 10.04,IQ2_XXS 为 12.35。
左右滑动图表,可查看两个面板。
WikiText-2 困惑度与文件大小,上下文长度 4096(B4 是发布的 Pingala-8 文件)。(a) Qwen3-4B,73 个窗口;这个 B4 文件是一连串构建中的最后一个,因此应视为经过调优(事后选择)。(b) Llama-3.1-8B base,70 个跨步窗口,预测在运行前就已写下:9.14,IQ2_KT 为 10.04,IQ2_XXS 为 12.35。如果每个窗口都加上起始 token,Llama 的结果为 8.44,IQ2_KT 为 9.36。

测验得分,Qwen3-4B

零样本准确率(%)。三个 2-bit 文件都约为 1.24 GB。原始模型指 8-bit 的 Q8_0 文件。

任务原始(8-bit)IQ2_XXSIQ2_KTPingala-8相对 IQ2_XXS
ARC-Easy66.143.953.360.9+39%
ARC-Challenge45.229.135.137.8+30%
HellaSwag65.847.853.357.7+21%
WinoGrande65.557.557.963.8+11%
MMLU38.731.132.934.0+9%
平均56.341.946.550.8+21%
横向对比

Pingala-8 胜在哪里,其他格式又胜在哪里

Qwen3-4B,上下文长度 4096 下的 WikiText-2 困惑度,每个文件都用同一项测试。越低越好。

格式大小困惑度我们的坦诚说明
Pingala-8 (B4)Genrius AI 1.24 GB 16.64 直接压缩原始模型,无需重新训练。需要我们修改过的 llama.cpp 和 NVIDIA GPU(CUDA)。
IQ2_XXSllama.cpp 1.25 GB 28.61 大小相同。可以在原版 llama.cpp、Ollama 和 LM Studio 中运行,也支持 CPU 和 Mac。读取提示词更快(我们只有它的 0.74x)。我们的测验得分高 21%,生成速度是它的 1.10x。
IQ2_KTik_llama.cpp 1.25 GB 18.15 大小相同,也是我们构建的同等大小对手中最强的。读取提示词比我们快约 1.3x。在 Qwen3-14B 上它胜过我们(9.40,我们为 9.57)。
Q4_K_Mllama.cpp 约为我们的 2 倍 未比较 更大的 4-bit 文件;如果内存不是你的瓶颈,就选它。我们只比较了速度:在 batch 1 下,我们以一半的大小,生成速度快 39%。
GSQ Q2_KISTA-DASLab 1.67 GB 14.37 困惑度比我们好,但文件大 34%。
Ternary Bonsai 4Bprism-ml 1.07 GB 11.59 更好,也更小。它是重新训练的模型,而不是对 Qwen3-4B 的压缩(它甚至胜过原始模型),需要一次训练以及他们的分支(fork)。
Qwen3-4B fp16原始模型 8.05 GB 12.46 未压缩的模型,供参考。

我们的解读:在我们测试过的格式中,如果不重新训练、把原始 Qwen3-4B 压缩到约 1.24 GB,Pingala-8 的困惑度最低。如果你只是想要这一级别里一个强的小模型,像 Ternary Bonsai 这样重新训练过的模型是更好的选择。Pingala-8 适合压缩那些没有人替你重新训练过的模型。在 Llama-3.1-8B(2.39 GB)上,它同样胜过两种同等大小的格式:8.44,IQ2_KT 为 9.36。

试用

3 步试用

需要 Windows 或 Linux,一块 NVIDIA RTX GPU(30、40 或 50 系列)和较新的驱动程序。无需 Python,无需编译。

注意:原版 llama.cpp、Ollama 和 LM Studio 目前无法加载这些文件,请使用一键包里修改过的 llama.cpp。

  1. 下载

    从 v2.4-oneclick 发布页 下载 pingala8-windows-cuda12.zip(1.6 GB)。

    Linux:同一页面上的 pingala8-linux-cuda13.tar.gz。

  2. 解压并双击

    运行 run_qwen3_4b.bat(或 run_llama31_8b.bat)。模型会从 Hugging Face 下载一次。

    Linux:./run.sh qwen 或 ./run.sh llama。

  3. 聊天

    在 Windows 上,浏览器会打开聊天页面 http://127.0.0.1:8080(在 Linux 上请自己打开这个地址)。一切都在你的电脑上运行。

    关闭黑色窗口即可停止。

从源码构建、运行论文中的困惑度测试,或使用 CPU 补丁:请参阅 README 中的快速入门(英文)。模型:Qwen3-4B 和 Llama-3.1-8B。

工作原理

作用于每组 4 个权重的网格码(trellis code)

大多数 2-bit 格式对每一小组权重单独取整。Pingala-8 用 Ungerboeck 的 8 状态网格码按顺序对各组编码:一个很小的状态从一组 4 个权重传到下一组,并决定下一组可以使用哪一组取值,所以同样的比特能更接近真实的权重。

编码之前,随机 Hadamard 旋转会把少数特别大的权重分散开,LDLQ 取整则把每一列的误差传给尚未编码的列。这些思路来自 QuIP、QuIP# 和 QTIP,这种格式与 ikawrakow 的 IQ2_KT 相近。llama.cpp 的一个 CUDA 补丁(commit 7ac59a6)负责读取这个文件。

阅读完整文章(英文),了解通俗的解释和技术细节。

名字的由来

Pingala 的 Chandahsutra 是一部论述诗歌格律的古代梵语著作,书中列出了由三个长音节或短音节组成的 8 种模式,即 gana。我们的编码在短模式上有 8 个状态,所以用他的名字命名。这个名字是一种致敬;网格的标签来自 Ungerboeck。

局限

我们的不足

选择 Pingala-8 之前,请先读完这一部分。

  • 在 Qwen3-14B 上落败。我们在运行前预测会胜出,结果没有:在 WikiText-2 上为 9.57,IQ2_KT 为 9.40;在 C4 上打平。
  • 提示词处理更慢。读取提示词的速度是 IQ2_XXS 的 0.74x。长文档在输出第一个字之前要等更久。
  • 批量解码更慢。同时服务 2 到 8 个对话时,速度是 IQ2_XXS 的 0.18x 到 0.34x。它适合一个人用一块 GPU,不适合做服务器。
  • 需要我们的运行时。仅支持带 CUDA 的修改版 llama.cpp。原版 llama.cpp、Ollama 和 LM Studio 目前还无法加载。不支持 Metal 或 Vulkan;CPU 生成速度是 IQ2_XXS 的 0.56x 到 0.62x。
  • Qwen3-4B 的数字经过调优。这个文件是在 WikiText-2 上测试过的众多构建中的最后一个。C4 是留出的测试集;Llama-3.1-8B 和 Qwen3-14B 的运行都是预先登记的。
  • 只测了一块 GPU,没有安全评估。速度是在一块 RTX 5070 Ti Laptop GPU 上测得的。我们没有评估压缩后模型的安全行为。
论文

阅读并引用论文

Small-State Coset Trellis Coding at IQ2_XXS Size: An Equal-Bytes Study in llama.cpp

Harshit Goyal,Genrius AI。预印本,第 2.4 版,2026 年 10 月。DOI:10.5281/zenodo.23481757

@misc{goyal2026pingala8,
  title     = {Small-State Coset Trellis Coding at {IQ2\_XXS} Size:
               An Equal-Bytes Study in {llama.cpp}},
  author    = {Goyal, Harshit},
  year      = {2026},
  month     = oct,
  publisher = {Zenodo},
  doi       = {10.5281/zenodo.23481757},
  url       = {https://doi.org/10.5281/zenodo.23481757},
  note      = {Preprint, version 2.4.
               Code: https://github.com/Genrius-AI/pingala8-llm}
}