← 最新论文
🤖 machine learning

Quad Length Codes for Lossless Compression of e4m3

本文提出了一种名为 Quad Length Codes 的新型混合编码方案,通过利用 3 位前缀将符号划分为 8 个区域并结合 256 项查找表,在 e4m3 数据类型的无损压缩中实现了比霍夫曼编码更优的解码速度与硬件简化,同时保持了接近的压缩效率。

原作者: Aditya Agrawal, Albert Magyar, Hiteshwar Eswaraiah, Patrick Sheridan, Pradeep Janedula, Ravi Krishnan Venkatesan, Krishna Nair, Ravi Iyer

发布于 2026-02-26
📖 1 分钟阅读☕ 轻松阅读

原作者: Aditya Agrawal, Albert Magyar, Hiteshwar Eswaraiah, Patrick Sheridan, Pradeep Janedula, Ravi Krishnan Venkatesan, Krishna Nair, Ravi Iyer

原始论文采用 CC BY 4.0 许可(http://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明

这篇论文主要解决了一个在大模型(AI 大脑)训练和运行中非常头疼的问题:如何把海量的数据传得更快、更省带宽,同时又不让解码(读取)过程变慢。

为了让你轻松理解,我们可以把整个过程想象成**“给图书馆的书籍打包快递”**。

1. 背景:为什么需要“打包”?

想象一下,Google 的 AI 模型(比如 Gemini)就像是一个拥有成千上万本书的巨型图书馆。当我们要训练这个 AI 时,需要把书(数据)分发给几百个不同的快递员(加速器/TPU)一起搬运。

  • 瓶颈:快递车的载货量(网络带宽)是有限的。如果书太厚、太重,车就装不下,运送速度就慢,整个图书馆的运作就卡住了。
  • 目标:我们需要一种“压缩术”,把书变薄、变轻,这样一辆车能装更多,运送速度就快了。而且,收快递的人(解码器)必须能瞬间把书拆开,不能花太多时间。

2. 现有的两种“打包方法”及其缺点

在论文提出新方法之前,大家主要用两种老办法:

  • 方法 A:霍夫曼编码(Huffman Codes)—— “最完美的打包,但拆包很慢”

    • 原理:就像给经常出现的词(比如“的”、“是”)分配极短的代号(比如 1 个字母),给不常见的词分配长代号。这非常节省空间(压缩率最高)。
    • 缺点:因为每个词的代号长度都不一样,收快递的人必须像走迷宫一样,拿着解码树,一步一步地读比特位(0 或 1),直到走到叶子节点才能知道是哪个词。
    • 比喻:这就像你要查字典,但字典没有页码,你必须从第一页开始,逐字逐句地读,直到找到那个词。如果词很冷门,你可能要读很久(解码慢,硬件复杂)。
  • 方法 B:通用编码(Universal Codes)—— “拆包很快,但打包不省空间”

    • 原理:不管词频高低,都按固定规则编码。
    • 缺点:收快递的人一眼就能看出词有多长,拆包极快。但它不懂“哪些词常用”,所以给常用词和生僻词分配的长度差不多,导致打包后的体积依然很大(压缩率低)。

3. 论文的新方案:Quad Length Codes(四段式长度编码)

这篇论文提出了一种**“折中但聪明”的新打包法,叫Quad Length Codes**。

核心创意:把书分成 8 个“书架区”

想象一下,我们不再给每本书单独定制一个独一无二的代号,而是把 256 种可能的符号(书)分成 8 个大区域(书架)

  1. 前导码(3 位):就像快递单上的“区域编号”。只要看前 3 位,就知道这本书在哪个区域。
  2. 区域规则
    • 区域 1-5:这里放的是超级热门的书。每个区域只有 8 本书。因为书少,只需要 3 位就能区分。加上前导码,总共只需要 6 位
    • 区域 6:稍微冷门一点,有 16 本书。需要 4 位区分。总共 7 位
    • 区域 7:更冷门,32 本书。总共 8 位
    • 区域 8:剩下的所有冷门书(168 本)。总共 11 位

为什么这很厉害?

  • 像“查表”一样快
    以前的霍夫曼编码需要“走迷宫”(遍历树)。现在的 Quad Length Codes 就像查电话簿

    • 快递员(解码器)先看前 3 位,知道是“第 3 区”。
    • 然后直接读后面固定的几位(比如 3 位)。
    • 最后查一个只有 256 行的小表格(查找表 LUT),直接蹦出结果。
    • 比喻:以前是让你从一楼走到顶楼找房间;现在是直接告诉你“你在 3 楼,房间号是 05",你直接去 3 楼 05 室,瞬间完成
  • 硬件变简单了
    因为代码长度只有 4 种(6、7、8、11 位),硬件电路不需要复杂的逻辑判断,只需要一个小小的查找表(256 个格子),就像在超市找商品一样简单。

4. 效果如何?(有点小遗憾,但很值得)

  • 压缩率

    • 霍夫曼编码(老办法):能把数据压缩掉 15.9%
    • Quad Length Codes(新办法):能压缩掉 13.9%
    • 差距:新办法稍微多占了一点点空间(少了 2% 的压缩率)。
  • 速度与复杂度

    • 虽然多占了一点点空间,但解码速度极快,硬件实现极其简单
    • 在 AI 训练这种需要每秒处理海量数据的场景下,“快”比“省那一点点空间”更重要

5. 总结:这个方案像什么?

如果把数据压缩比作**“给搬家公司的货物打包”**:

  • 霍夫曼编码:是一个超级专业的打包大师。他能把每一件物品塞得严丝合缝,箱子最小。但是,他打包和拆包都需要花很多时间,而且需要很复杂的工具(深树遍历)。
  • 通用编码:是一个粗心的打包工。他不管东西大小,随便塞,箱子很大,但拆包非常快。
  • Quad Length Codes:是一个聪明的区域经理。他把货物分成 8 个大区。热门货物放在小盒子里(短编码),冷门货物放在大盒子里(长编码)。虽然箱子没有大师塞得那么满(压缩率略低),但他拆包速度极快,而且只需要一张简单的清单(查找表)就能搞定。

结论:对于 Google 这样需要处理海量 AI 数据的公司,“快”就是金钱。Quad Length Codes 用一点点空间换取了巨大的速度提升和硬件简化,是一个非常实用的工程优化方案。

您所在领域的论文太多了?

获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。

试用 Digest →