小模型的Embedding太贵了?冻结式词表将模型压缩到46MB
导语
在小型语言模型中,Embedding词表往往不是“配角”,而是最大的参数和存储负担。以Gemma 3 270M为例,词表包含约1.68亿个参数,占模型总参数的很大比例;而在其他模块被量化后,Embedding通常仍保留更高精度,因此会继续占据模型文件的大部分空间。
Hugging Face Daily Papers收录的一项研究提出了一个直接的问题:小模型是否真的需要一张可训练的Embedding表?研究者用每个词元一个512位的固定编码替代传统词表。编码来自预训练Embedding,经过主成分投影和符号二值化生成;完成初始化后,词表不再参与训练。
核心结果
- 参数显著减少:研究使用与普通版本相同的Gemma形状模型,并在同样的20.5亿个词元上从头训练。冻结词表模型的可训练参数约少至原方案的相应水平,而学习词表带来的验证损失优势只有0.20 nat,却需要约2.6倍的可训练参数。
- 多数基准不落后:在LAMBADA、HellaSwag和PIQA上,冻结词表模型表现更好或持平;ARC-Easy则由可训练词表占优。这说明平均验证损失并不能完全代表下游任务表现。
- 长尾词元更稳健:在罕见词测试中,冻结方案领先约1.7至2.3 nat。加入训练结束后才出现的1万个新词元时,冻结模型的性能代价约为3%,而可训练词表模型下降约43%。
- 端侧部署更具吸引力:将冻结词表与BitNet b1.58三值化主体结合后,完整模型文件约46MB。在笔记本CPU上,报告的生成速度为每秒615至740个词元,运行时内存约62MB;相比llama.cpp中的浮点模型8位GGUF版本,速度提升约5至6倍,内存占用约降至七分之一。
意义与限制
这项工作的价值不只是把Embedding压缩成更小的文件,更在于重新审视了小模型中“词元表示必须持续学习”的默认设计。固定编码可以把大量存储预算留给Transformer主体,也能在词表扩展和罕见词处理上提供更稳定的行为,因此尤其适合手机、笔记本等离线设备。
不过,结果不应被解读为Embedding在所有模型中都“定价过高”。现有实验聚焦于小规模模型和特定训练预算;当模型变大、训练数据更多时,主体网络是否会更依赖可调整的词元表示,仍需要进一步验证。研究讨论中也提出,应按语言、字符集和领域拆分评测,而不能只看平均损失;新词元的编码成本、跨语言表现,以及更大训练规模下冻结词表是否成为瓶颈,都是后续关键问题。
总体而言,这是一种面向端侧推理的实用设计:它未必取代可训练Embedding,却为小型、低比特语言模型提供了一个低存储、可扩展的默认选项。
评论
正在确认登录状态……
正在加载评论……