返回Ai开源
DeepSeek Engram 解读:用 O(1) 查表式条件记忆,为大模型增加“新稀疏轴”

DeepSeek Engram 解读:用 O(1) 查表式条件记忆,为大模型增加“新稀疏轴”

Ai开源 Admin 86 次浏览

一、摘要

Engram 是 DeepSeek 开源的一种“条件记忆(Conditional Memory)”模块,核心思路是为 Transformer 增加可扩展的查表式记忆原语:把一部分更偏静态的模式/知识以 N-gram 记忆表的形式存起来,在推理时以近似 O(1) 的方式检索并与当前隐状态融合。官方仓库给出的结论是:在等参数、等算力约束下,Engram-27B 在知识、推理、代码、数学等任务上相对 MoE 基线有稳定收益;并且机制分析显示它能减轻早期层对静态模式的“重建”负担,从而把有效深度留给更复杂的推理计算。

二、核心特性

1、O(1) 查表式条件记忆

通过对静态 N-gram 记忆进行确定性寻址与检索,将“知识查找”从密集神经计算中部分剥离出来,降低对计算路径的占用。

2、与 MoE 互补的“稀疏新轴”

MoE 通过条件计算扩容量,Engram 通过条件记忆扩容量:一个偏“算”,一个偏“查”,组合后可以在相同 FLOPs 下更有效地分配模型能力。

3、U 形规模规律用于容量分配

官方给出“计算容量(MoE)—静态记忆容量(Engram)”之间的权衡,并指出存在可指导工程取舍的 U 形缩放规律。

4、机制解释更贴近工程直觉

仓库明确提到:Engram 可能让早期层不必反复重建静态模式,从而把层数与表示能力留给后续更关键的推理过程,可理解为“对推理更有效的变深”。

5、系统效率与可落地性

采用确定性寻址,支持将超大规模嵌入表卸载到主机内存,推理开销增量尽量保持可控。

三、安装

1、准备环境

Python 3.8+,建议使用隔离环境(venv/conda)。

2、安装依赖

按仓库 Quick Start:安装 torch、numpy、transformers、sympy 等依赖。

3、运行演示

仓库提供 engram_demo_v1.py 用于演示 Engram 的核心数据流;该版本会 mock 部分标准组件(如 Attention/MoE 等),重点展示 Engram 模块工作方式。

四、典型用例

1、知识密集型问答与事实回忆

当任务更依赖“稳定知识/固定表达模式”时,查表式记忆可减少模型在前几层做重复模式重建。

2、长上下文中的稳定片段复用

对重复出现的短片段(固定短语、代码样板、常见格式)进行静态记忆命中,减少长上下文下的无效计算。

3、代码与数学场景的模板化结构

在“常见推导套路/代码骨架”较多的任务中,用记忆通道承接更静态的结构,计算通道专注组合与推理。

4、与 MoE 结合的高性价比扩容

在总参数与总 FLOPs 受限的前提下,通过“部分容量放到静态记忆表”来换取更高的有效能力密度。

五、生态与竞品

1、生态现状

目前官方仓库以论文 + 结构图 + 实验图 + demo 为主,适合快速理解“条件记忆”这一新组件,并评估与现有 MoE 堆栈的组合空间。

2、竞品与相邻方向

相邻思路通常包括:RAG(外部检索增强)、kNN-LM/近邻检索、传统 N-gram/缓存、以及各类稀疏注意力/稀疏路由架构。Engram 的差异点在于:它把“可训练的静态记忆表”作为模型内部原语,并强调与 MoE 的容量分工与缩放规律。实际效果仍需结合具体数据分布、训练配方与部署约束验证。

六、局限与注意事项

1、论文细节与复现口径

仓库提供了关键结论与 demo,但大规模训练细节、寻址实现细节与完整消融仍应以论文为准。

2、内存与部署权衡

将巨大记忆表卸载到主机内存虽可减轻显存压力,但会引入带宽、延迟与工程复杂度的新约束。

3、适用性依赖任务形态

如果任务主要瓶颈在“动态推理/组合泛化”而非“静态模式/知识复用”,收益可能不如知识密集型任务明显。

4、与现有训练系统的集成成本

把新模块接入既有 MoE/注意力实现与并行策略,需要评估训练稳定性、吞吐与监控指标(例如命中率、表容量利用率等)。

七、项目地址

https://github.com/deepseek-ai/Engram

八、常见问题

Q: Engram 的核心关键词是什么,解决了什么问题?

A: 关键词是 Conditional Memory、Scalable Lookup、O(1) 查表式记忆、N-gram memory。它试图让 Transformer 拥有“原生知识查找”能力,把部分静态模式/知识从密集计算里分离出来。

Q: Engram 和 MoE 的关系是什么?

A: MoE 通过条件计算扩容量,Engram 通过条件记忆扩容量;两者可互补,形成“算(计算)+查(记忆)”的分工。

Q: 官方机制分析里提到的“更有效更深”是什么意思?

A: 仓库观点是:Engram 减轻早期层对静态模式的重建负担,使网络深度更集中服务于后续复杂推理,从效果上像是“把深度留给关键部分”。

Q: 怎么最快验证 Engram 的工作方式?

A: 直接运行仓库提供的 engram_demo_v1.py,先理解数据流与融合位置;该 demo 会 mock 常见组件以突出 Engram。

Q: Engram 适合替代 RAG 吗?

A: 更适合视为补充方向:RAG 偏外部文档检索与更新,Engram 偏模型内部静态记忆原语与计算/记忆分工;是否替代取决于任务是否需要外部可更新知识与可控检索链路。

DeepSeek开源Engram条件记忆模块揭秘 O(1)查表为何重要 Engram-27B同算力超MoE基线的原因 Engram用N-gram静态记忆表扩容Transformer引争议 Engram-27B在知识推理代码数学稳定增益如何实现 DeepSeek Engram把知识查找从密集计算剥离省FLOPs Engram与MoE互补新轴曝光:一个算一个查怎么分工 Engram提出U形规模规律 MoE计算容量与静态记忆如何取舍 Engram机制解释:早期层不再重建静态模式推理更深更有效 DeepSeek Engram支持超大表卸载主机内存但延迟代价几何 Engram_demo_v1上线 如何最快看懂条件记忆数据流与融合位置 Engram适合知识密集问答 静态模式复用为何胜过纯计算 Engram在长上下文复用固定片段 能否减少无效计算路径 Engram强化代码与数学模板结构 计算通道专注组合推理更强 Engram+MoE高性价比扩容 同FLOPs下能力密度为何更高 Engram vs RAG谁更强 模型内静态记忆能否替代外部检索 Engram与kNN-LM差异点:可训练静态记忆原语引关注 DeepSeek Engram生态现状:论文结构图实验图demo能说明什么 Engram核心关键词Conditional Memory解读:它解决了什么痛点 Engram用确定性寻址实现O(1)检索 工程落地优势在哪里 Engram让前层省下重建负担 为何能把深度留给复杂推理 Engram的静态记忆容量越大越好么 U形规律给出答案 Engram卸载主机内存省显存 带宽与吞吐会成新瓶颈吗 Engram集成MoE与注意力成本高吗 训练稳定性如何评估 Engram需要监控哪些指标 命中率与表容量利用率成关键 Engram复现口径提醒:仓库结论与论文细节差在哪 Engram适用边界在哪 动态推理任务可能收益不明显 Engram把“查表”内置模型 为何比缓存N-gram更像新原语 Engram对稳定知识与固定表达更友好 为何能减少重复计算 DeepSeek Engram-27B对比MoE基线 等参数等算力为何仍有收益 Engram的稀疏新轴与稀疏注意力不同 查表扩容更直接吗 Engram工程直觉解析:把表示能力留给后层意味着什么 Engram安装Quick Start要点:torch transformers sympy依赖怎么配 Engram demo为何mock Attention/MoE 重点展示了哪些核心路径 Engram用于长上下文稳定片段复用 对代码样板能省多少算力 Engram在数学推导套路中命中静态结构 为何更容易提升 Engram与MoE组合是否会改变扩容路线 算+查协同成趋势 Engram的Scalable Lookup含义 可扩展查表如何不拖慢推理 Engram的确定性寻址有利部署 但会牺牲灵活性吗 Engram大规模训练细节未全公开 落地风险与坑点有哪些 Engram的内存与部署权衡:省显存与加延迟到底值不值 Engram相邻竞品对比:RAG kNN-LM缓存N-gram谁更适配 DeepSeek Engram项目地址公开 条件记忆会成Transformer标配吗 Engram关键争议:用内存换算力能否长期划算 Engram对知识查找“原生化” 为何可能改变模型能力分配逻辑 Engram的“更有效更深”说法 机制证据与工程解释是否一致 Engram如何在相同FLOPs下更强 静态记忆与计算路径分离是关键 Engram与现有并行策略融合难点 分布式训练与路由如何协同 Engram用于事实回忆与知识问答 为何比纯MoE更稳 Engram能否补足MoE短板 条件记忆让模型少算多查

推荐工具

更多