不,Engrams 不会让你在本地运行 1T 模型。但它能做更好的事情。

Reddit r/LocalLLaMA 新闻

摘要

Engrams 是一种架构创新,它使用 N-gram 表来从 transformer 模型中卸载记忆,通过释放参数用于计算,让较小模型能更好地推理。

自从 Qwen 3.8 Flash Next 发布以来,有一个误解在流传:N-gram 表将允许人们在单个服务器上运行 1T+ 参数模型,并将 980B 参数卸载到 SSD。我来告诉你真相:这不会发生。但它对本地模型实际能做的更好。本质上,Engram 只是一个具有更长键的嵌入表。不是通过单个 token ID 索引静态向量,而是通过最后 2-3 个 token(一个 N-gram)来索引。"New York" 有其自己的记忆向量,"the United" 有其自己的,依此类推。对 N-gram 进行哈希,获取向量,输入到网络中。O(1),恒定时间,无 FLOPs。为什么这样做?因为 transformer 在早期层中令人惊讶地大量工作是从头重建静态信息:实体名称的拼写、公式化短语、常见搭配:"New" + "York" = 华尔街、熟食店、老鼠、地铁。但每次模型需要回忆一个多 token 实体时,它都会消耗多个注意力和 FFN 层来重新组装一些,坦白说,是数据库查找的东西。Engram 将这项工作转移到实际的数据库查找,这样神经层可以将其深度用于真正的推理。因此,不需要花费一堆层来"重新推导"多 token 短语如 "New"、"York" 的含义,Engrams 使该查找能够瞬间执行。这就是为什么 Qwen 3.8 Next 可以携带 51B 参数的 N-gram 嵌入,同时每个 token 只激活大约 6B:表查询成本低,因此你可以使其巨大并放在 RAM 或 SSD 中。现在,没人理解的部分:查找是"愚蠢的"。键只是最后 2-3 个 token。你 200k token 的上下文对检索内容没有影响。更广泛的上下文可以接受或拒绝 N-gram 获取的任何向量,但无法改变获取的内容。Engrams 用于存储"意义",类似于嵌入。它不替代推理或计算。当 Engram 模型看到 "import std" 时,它不会从 Engram 向量中突然获得多年的 C++ 编程经验。表记忆,transformer 推理。你也不能通过增加 N 来解决这个问题。N 越高,训练数据中特定 N-gram 越稀少,因此每个条目获得的训练信号越来越少。论文自身的消融研究发现,为 4-grams 分配容量"稀释了更常见的 2/3-gram 模式的容量",因此你不能将 Engram 嵌入扩展到 500B 而不使其实际上成为浪费空间。但好消息是:Engrams 是一项不可思议的架构创新。Engrams 允许模型将多 token "意义"推导从其活动参数中卸载出来,这意味着较小模型将变得更聪明;这就是为什么我认为这是多年来本地模型的最佳架构发展之一。一个 27B 模型总是必须将其参数预算用于同时执行两项工作:实际推理和记忆化静态模式,而查找表可以保存这些。这就是为什么较小的 4B 或 7B 模型即使在任务远在其推理能力范围内时也感觉笨拙的主要原因。Engram 分割了这些工作:知识移动到一个查询成本为零的表中,每个活动参数都被释放用于推理。这是每个人都应该兴奋的巨大创新:较小模型将像今天的 Opus 或 Sol 一样智能,而不是更大的模型。
查看原文

相似文章

Engram 疯狂!2b 模型更新...

Reddit r/LocalLLaMA

本文提供了 Engram 模型的更新,详细介绍了其 2.6b 参数架构,包括一个大型 Engram 表和初步训练进度达到 1 亿 token,展示了通过上下文感知数据卸载实现的改进补全效果。

更新:小模型 + Engram

Reddit r/LocalLLaMA

作者提供了关于构建一个小型20亿参数AI模型的更新,该模型具有Engram组件,在1500万维基百科tokens上训练,达到了惊人的连贯性,并计划进行Apache 2.0开源发布。