Lossless Tensor Compression as Program Synthesis
本文介绍了 Brevis,一种新颖的无损张量压缩系统,它将该问题建模为使用类型化领域特定语言和学习到的生成先验进行程序合成,从而自动生成紧凑且自包含的程序,在多种模型检查点上实现了显著的存储减少和具有竞争力的吞吐量。
原始论文采用 CC BY 4.0 许可(http://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明
想象一下,你正试图将一座庞大的数字蓝图库运送到大洋彼岸。这些不仅仅是普通的蓝图;它们是教计算机如何说话、绘画或唱歌的复杂数学指令。在人工智能领域,这些蓝图被称为“模型检查点”(model checkpoints),由于它们变得如此巨大且数量众多,运输它们正演变成一场物流噩梦,耗费巨额的存储空间和传输时间。
为了解决这个问题,工程师通常尝试两种方法。第一种是“有损”压缩,这就像是给蓝图拍了一张照片,压缩了细节,并寄希望于建筑师能猜出缺失的部分。这虽然节省了空间,但破坏了精确性;你无法完美地重建原始蓝图。第二种是“无损”压缩,就像压缩一个文件(zip)。它能确保每一位信息都安全无虞,但标准的压缩工具会将蓝图视为一堆随机的碎纸片,忽略了蓝图本身其实具有巧妙的重复结构。它们错失了其中的模式。
大问题在于:我们能做得更好吗?与其只是挤压文件或盲目地压缩,我们能否观察蓝图,理解其隐藏的模式,并编写一份微小的、定制化的说明书,告诉计算机如何从头开始精确重建原始文件?如果我们能为每一份蓝图写出一份独特的、完美的配方,我们或许能在不丢失任何细节的情况下,节省大量的空间。
这正是研究团队利用一个名为 Brevis 的新工具所实现的目标。他们不将压缩这些巨大 AI 蓝图的问题视为一个文件打包任务,而是视为一个“程序合成”(program synthesis)挑战。你可以这样想:与其只是把一个玩具塞进盒子里,Brevis 会观察这个玩具,发现它是由三个红积木和两个蓝积木组成的,然后写下一张小纸条说:“拿三个红积木,堆叠起来,再加上两个蓝积木。”
Brevis 使用一种特殊的、定制的语言(一种“领域特定语言”或 DSL)来编写这些笔记。这种语言拥有特殊的命令,可以识别模式何时重复、某个数字是否只是前一个数字的副本,或者某段数据是否完全统一。当 Brevis 压缩一个文件时,它不仅仅是选择一个预制的压缩器;它扮演着侦探的角色,在数百万种可能的“配方”中进行搜索,以找到那份最短、最高效的配方,从而能够逐位重建文件。为了让这种搜索变得快速,它会从文件的一个小样本中学习,以推测哪些配方最有可能奏效,就像一位厨师在品尝汤之前就知道这道汤通常需要盐一样。
结果令人印象深刻。研究人员在包括语言、音频和图像在内的 10 种不同的公开 AI 模型上测试了 Brevis,总计处理了 2.13 TB 的数据。他们发现,Brevis 能将这庞大的数据量缩减至 1.41 TB。也就是说,实现了 33.93% 的存储空间缩减。换句话说,Brevis 创建的存档比 gzip 和 zstd 等流行的通用工具制作的存档小了高达 30.87%。它甚至击败了专门为 AI 数据设计的专业工具,比最强的竞争对手 ZipNN 的存档还要小 2.90%。
或许更令人兴奋的是,Brevis 不仅节省空间,而且速度极快。它的压缩速度可达 每秒 3.60 GB,解压缩速度可达 每秒 6.61 GB。由于它编写的“配方”是一个自包含的程序,计算机可以直接运行该程序来完美重建文件,而无需再次搜索模式。研究人员指出,这种“用程序来表示数据”的方法可能会成为处理爆炸式增长的 AI 模型规模的一种强大新方式,提供一种在不丢失原始信息任何一个字节的情况下,高效存储和移动模型的方法。
您所在领域的论文太多了?
获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。