Engram 疯狂!2b 模型更新...
摘要
本文提供了 Engram 模型的更新,详细介绍了其 2.6b 参数架构,包括一个大型 Engram 表和初步训练进度达到 1 亿 token,展示了通过上下文感知数据卸载实现的改进补全效果。
更新来自:https://old.reddit.com/r/LocalLLaMA/comments/1wis23s/update_small_model_engram/ 大约一周过去了,我回来了。人们问我关于模型的事情。人们想要代码或模型等等。现在这些对你们大多数人都没用,因为你们不会使用一个训练不足的模型。所以让我们直接进入细节。
规格在大量测试后锁定如下:总模型 2.6b 参数。包括嵌入层、LM头、AttnRes 等。其中 2.2b 是训练过的。嵌入层和 LM 头是冻结的(各约 205m)。Engram 表 4.3b。是的,她很大。
从架构上来说:这包括 SWA 层,3:1 比例,正如标准消融研究显示是“最优”的。这些是 4k / 4k / 8k 的 SWA 层,后跟全局层。在第一个“块”(4层)结束时,出现 Engram 表。Engram 表本身运行时只使用一组非常小的注意力头,因此它不是盲目地尝试注入数据。这是上下文感知的 Engram。我不确定确切的 Qwen 或 DS 方法。它们与我使用的非常接近。区别显然在于 Engram 的大小。这里有 10 个块加一个最终全局层(41层)。加上嵌入层和 LM 头。
所以如果我们退一步,优化问题如下:如何在骨干网络中最大化计算,并将无聊的东西卸载到表中?注意力残差(Moonshot)在这里拯救了我们。为什么使用 AttnRes?它允许所有超过 1 的块以某种方式利用 Engram 表。它们都通过残差流具有注意力,以确定是否需要 Engram 中的数据以及具体需要多少。
为什么不用更大的 Engram 表?老实说,你可能可以做到。但我不知道是否有模型尝试过这种计算与表之间的不匹配。理论上,DeepSeek 的研究说它是可行的。更深?也可以做到。但训练很昂贵。
为什么冻结 LM 和嵌入层?这些是通过 SVD 从 OLMo 3 的模型下投影的。所以这是一种数学压缩尝试,从 ~5k 到 2k。这节省了大量时间。
目前数据以 ~KD 格式存储。从 Wikipedia 语料库的教师模型中存储了 32 个 logits。与其训练 one-hot,不如让模型尝试匹配 32 个软目标。硬交叉熵对模型来说很残酷,这也是为什么你会看到“数万亿 token”的引用。当你借用一个 LM 头、嵌入层、分词器、教师模型时,这要少得多。
--- 我们现在在训练中处于什么阶段?
昨天太平洋时间凌晨 4 点左右,我超过了 1 亿 token 的标记。当前的 HF 仓库包含所有检查点、数据和 104m 标记的 safetensor 文件。
-- 我想在这个时间点对模型进行一些检查。我们必须看到它还不是完全垃圾,对吧?它只看到了所需数据的一小部分。所以基于仅看到的 1 亿 token,我尝试了补全和各种消融研究。研究 Engram 具体存储了什么(因为这主要是猜测)。让我们直接看补全:
“George Washington was an American”
使用 Engram - “George Washington was an American naval officer who served in the American Revolutionary War. He was a naval officer who served in”
使用 Engram 零化 - “George Washington was an American, but he was not a. He was a very good friend and a. He was”
“The American Civil War was a civil war in the United States from”
使用 Engram - “The American Civil War was a civil war in the United States from 1861 to 1861. The war was a major victory for the Confederacy...”
不使用 - “The American Civil War was a civil war in the United States from 1861 to 1862. The war was a major victory for the Confederacy...”
“Aristotle was an Ancient Greek”(可能是我最喜欢的)
使用 Engram - “Aristotle was an Ancient Greek philosopher who was a leading authority in the philosophy of Plato. He was also a leading authority...”
不使用 - “Aristotle was an Ancient Greek word meaning 'to be' (ἀπάς, 'to be')...”
--- 我们从直接检查 Engram 中学到了什么?
如果它看到了足够的数据,它就开始将数据卸载到表中。在那时,模型就不那么被迫使用内部计算空间来存储数据,而可以依赖 Engram。这不是某种解释,这正是数据显示的。在 Wikipedia 的早期 1 亿 token 中,它高度偏向于早期哲学。这与当时 Wikipedia 中包含的主题有关。早期 Wiki 包含很多关于哲学的内容。它是最早存在的主题之一。它看到了大量哲学,因此由于重复,它基本上卸载到了 Engram。
好了,这已经够长了。我打算到此为止。我仍然在寻找一个赞助商来完成这个模型。现在我自己在付钱。我联系了 Verda,但他们没有回应。Qubrid 在这个子版块,他们说会帮助,但几次催促后从未回复邮件。Massed Compute 是这个模型当前训练的地方,我昨天问了他们。希望他们能帮兄弟一把。
以上内容中,除了测试中的补全,都不是“LLM 撰写”的。像往常一样,随便问。无论你的理解水平如何,我都会坐着回答。没有问题太蠢。没有侮辱不够侮辱性。(我开玩笑的,这是 Reddit)
多多关爱。
相似文章
更新:小模型 + Engram
作者提供了关于构建一个小型20亿参数AI模型的更新,该模型具有Engram组件,在1500万维基百科tokens上训练,达到了惊人的连贯性,并计划进行Apache 2.0开源发布。
不,Engrams 不会让你在本地运行 1T 模型。但它能做更好的事情。
Engrams 是一种架构创新,它使用 N-gram 表来从 transformer 模型中卸载记忆,通过释放参数用于计算,让较小模型能更好地推理。
TF-Engram:一种基于SSD存储的无训练记忆印记系统,用于大型语言模型
TF-Engram 引入了一种无训练系统,在 GPU-DRAM-SSD 层级上为 LLM 存储短语级语义记忆,利用预测预取来隐藏延迟,并在 Qwen3-0.6B 上展示了改进的下游性能。
更少的上下文,更高的准确性:一种用于LLM代理的双时态记忆引擎,其中精简检索的上下文胜过了完整历史
本文介绍了Engram,一个开源的用于LLM代理的双时态记忆引擎,它通过检索一个紧凑的上下文片段(约9.6k token),在LongMemEval上以混合读取路径融合稠密、词汇、图和时间信号,比完整历史基线(79k token)高出10.4个准确率点。
@EngramLab: https://x.com/EngramLab/status/2069465879696576844
Engram推出了一种从用户上下文中学习的人工智能,通过在个人和企业数据上扩展计算能力,创建理解特定工作环境的模型。他们为代理提供API,并与Notion、Harvey和Microsoft建立了合作关系。