[控场AI]
· 4 分钟阅读· 2,218 字

低比特N-Gram嵌入:为语言模型节省75%表格内存

低比特N-Gram嵌入:为语言模型节省75%表格内存

低比特量化n-gram嵌入表可节省75%内存并保留99%性能增益。

本文介绍了一项针对大模型 n-gram 嵌入表内存开销过大的研究。n-gram 嵌入表存储短 token 序列的学习表示,参数量极其庞大,如 DeepSeek-V4.1-Flash 的 Engram 模块就占用 1960 亿参数。研究提出用低精度存储 n-gram 嵌入,系统考察了不同量化方法和跨表比特分配策略。实验表明,四比特表可节省约 75% 的表格内存,同时保留超过 99% 的验证损失改善;更低比特会带来性能下降,但短暂微调可恢复相当一部分损失。将节省的内存再投资于更大的表,甚至能超越原始全精度表的表现。在 DeepSeek-V4.1-Flash 和 Qwen3.8-Flash-Next 上,低比特表节省了 47% 至 55% 的表格内存,困惑度上升不到 1.2%,下游任务表现基本保持。该研究为内存敏感场景提供了实用的压缩与再分配方案。

语言模型的性能提升往往伴随着内存开销的急剧增长,n-gram嵌入表就是其中一个典型代表。DeepSeek-V4.1-Flash 的 Engram n-gram 记忆模块就占用了 1960 亿参数,这种规模让不少研究者和开发者望而却步。一项新研究提出用低精度存储 n-gram 嵌入,在保持性能的同时大幅压缩内存占用,为这一矛盾提供了可行的解决路径。

为什么 n-gram 嵌入表如此耗内存?

许多近期开源的权重模型会使用 n-gram 嵌入表来提升表现。这类表存储的是短 token 序列(比如连续两个或三个 token)的学习表示,模型在处理时按需检索。问题在于,这些表的参数量极其庞大。原文数据显示,DeepSeek广告-V4.1-Flash 为其 Engram n-gram 记忆分配了 1960 亿参数——这已经接近甚至超过许多完整模型的规模。

研究团队的核心问题是:能否在保留 n-gram 表带来的性能增益的前提下,降低这部分内存成本?他们的答案是肯定的,思路是将 n-gram 嵌入以低精度存储,并系统性地考察不同量化方法和跨表的比特分配策略。

低比特N-Gram嵌入研究概览

n-gram 嵌入表与 Transformer 中常见的词嵌入表在机制上相似,但规模差异巨大。词嵌入表的大小约为词表大小乘以嵌入维度,通常在数万到数十万行量级;而 n-gram 表需要覆盖 token 序列的组合空间,二元组(bigram)的潜在组合数可达词表大小的平方,三元组则更高。因此,即便对高频组合做裁剪,n-gram 表的行数也常常达到数十亿甚至上千亿级别,每行再乘以嵌入维度,参数量便迅速膨胀。此外,这类表通常以全精度(如 FP16 或 BF16)存储,进一步放大了内存占用。这正是低比特量化能够带来显著收益的根本原因:表的参数量本身极大,且其中大量条目在训练中出现频次较低,对精度损失的容忍度相对较高。

四比特量化:保留99%性能,节省75%内存

研究在 nanochat、Llama 和 GPT-2 系列模型上从头训练,验证了低比特 n-gram 表的实际效果。结论相当直接:四比特表节省了约 75% 的表格内存,同时保留了加入 n-gram 表所带来的验证损失改善的 99% 以上。

这意味着,原本需要大量内存才能换来的性能提升,现在可以用四分之一的存储成本获得。对于资源受限的训练和部署场景,这个比例足以改变模型设计的取舍。

进一步降低比特数会带来更明显的性能下降。不过研究也发现,短暂的微调阶段能够恢复相当一部分损失。这为极端内存受限的场景留出了操作空间——先以更低精度存储,再通过少量微调把性能拉回来。

量化是将模型参数从高精度浮点数(如 FP16)映射到低精度表示(如 4 比特整数)的过程,通常配合缩放因子和零点来实现。4 比特意味着每个参数仅占 0.5 字节,相比 FP16 的 2 字节,理论压缩比为 4 倍,对应约 75% 的内存节省,这与文中数据一致。量化方法大致分为训练后量化(PTQ)和量化感知训练(QAT)两类:前者直接对已训练好的表做低精度转换,成本低但可能损失精度;后者在训练中模拟量化误差,效果更好但需要额外训练。文中提到的“短暂微调恢复损失”属于一种轻量级的后处理补偿,通过在低精度表上继续训练少量步数,让模型适应量化带来的扰动。跨表比特分配则是指在多个 n-gram 表之间不均匀地分配比特预算,例如对更重要的表使用 4 比特、次要的表使用 2 比特,从而在总内存约束下优化整体性能。

把省下的内存再投资:更大的表反而更强

低比特量化不只是省钱的手段,还能转化为性能优势。研究指出,将节省下来的内存重新投入到更大的表中,可以取得超越原始全精度表的表现,同时整体内存占用仍然更低。

这个思路值得关注:内存预算不变的情况下,用低精度换来的空间扩大表规模,等于用同样的成本买到了更强的 n-gram 记忆能力。对于模型架构设计而言,这提供了一种新的分配策略——不是单纯压缩,而是重新分配。

在现有大模型上的验证:节省47-55%表格内存

研究没有停留在从头训练的小模型上。在 DeepSeek-V4.1-Flash 和 Qwen3.8-Flash-Next 这两个已有大模型上,低比特表节省了 47% 到 55% 的表格内存,困惑度上升不到 1.2%,下游任务表现基本保持。

这个结果的意义在于,低比特 n-gram 嵌入不只是一项训练时的优化技巧,也可以直接应用于已有模型的压缩和改造。困惑度增幅控制在 1.2% 以内,对于大多数实际应用来说是可以接受的代价。

对模型设计的启示

这项研究把低比特精度确立为降低 n-gram 嵌入内存需求的实用方法,并且展示了用节省出的容量提升模型性能的路径。结合四比特保留 99% 性能增益、大模型上节省近半内存且困惑度微增的数据,可以预见低比特 n-gram 表会成为内存敏感场景下的常规选项。

对于关注模型效率的团队,值得进一步探索的方向包括:不同表之间的比特分配策略如何随模型规模变化,微调恢复损失的最短时长,以及在更多模型家族上的泛化表现。原文在这些方面给出了系统性实验,为后续工作提供了可复现的基线。

#n-gram嵌入#低比特量化#语言模型内存优化#模型压缩#嵌入表量化#DeepSeek#推理效率
分享:

相关推荐