2026/3/13 14:33:18
网站建设
项目流程
传媒公司 网站开发,如何网站建设有利于网络营销,网站建设设计收费,肇庆市建设局网站DeepSeek发布的Engram技术通过条件记忆作为MoE模型的补充稀疏性维度#xff0c;实现了O(1)复杂度的知识检索。该技术采用词表压缩、哈希方法、多头查表等创新机制#xff0c;平衡了神经网络计算与静态记忆资源配比。实验表明#xff0c;在同等参数量和计算量条件下#xff…DeepSeek发布的Engram技术通过条件记忆作为MoE模型的补充稀疏性维度实现了O(1)复杂度的知识检索。该技术采用词表压缩、哈希方法、多头查表等创新机制平衡了神经网络计算与静态记忆资源配比。实验表明在同等参数量和计算量条件下27B规模的Engram模型性能显著优于传统MoE基线特别在事实知识任务上表现优异为提升大模型效率和知识存储提供了新思路。**一、背景DeepSeek 这两天发布了 Engram社区内引起了非常大的关注本文中我们结合开源代码具体介绍一下相应的实现方案。代码库GitHub - deepseek-ai/Engram: Conditional Memory via Scalable Lookup: A New Axis of Sparsity for Large Language Models二、摘要尽管 MoE 模型通过条件计算实现了容量扩展但是 Transformer 架构缺乏原生的知识检索机制迫使其必须通过计算来低效地模拟检索过程。为了解决这一问题DeepSeek 引入了条件记忆Conditional Memory作为补充的稀疏性维度并通过 Engram 模块实现 O(1) 复杂度的检索。通过构建稀疏分配问题的数学框架也发现了 U 形 Scaling Law 的优化方案有效平衡了神经网络计算MoE和静态记忆Engram之间的资源配比。基于上述规律指导作者将 Engram 扩展到 27B 规模在保持同等参数量与计算量的严格对比条件下其性能显著优于传统的 MoE 基线。三、引言3.1 N-gramN-gram 模型是自然语言处理中最基础、最经典的概率语言模型之一。在深度学习和 Transformer如 GPT出现之前它是处理文本预测和语音识别的主流方法。 在现实中一句话的第 100 个词可能与之前的任何一个词有关但为了计算方便N-gram 做了简化的假设马尔可夫假设。简单来说N-gram 模型的核心思想是假设一个词出现的概率只与它前面 N-1 个词有关。N 的选取是一个超参数以 “Only Alexander the Great could tame the horse Bucephalus.” 为例Unigram (1-gram)假设每个词的出现都是独立的完全不看之前的词。对应P(wt)。Bigram (2-gram)假设当前词只与之前的一个词有关模型会根据 “Alexander” 这个词去查找发现后面接 “the” 的概率最高。对应P(wt | wt-1)。Trigram (3-gram)假设当前词只与之前的两个词有关模型会根据 “Alexander the” 这两个词去查找发现后面接 “Great” 的概率最高。对应P(wt | wt-1, wt-2)。N-gram 模型本质上就是一个巨大的统计计数表。比如训练一个 Bigram 模型就是要统计每一个词对 (wi-1, wi) 出现的次数。如果 “Alexander the” 在数据里出现了 100 次而 “Alexander” 总共出现 200 次那么当看到 “Alexander” 时下一个词是 “the” 的概率就是 50%。N-gram 模型的优缺点也比较典型优点完全基于统计预测就是查表速度极快 O(1)除此之外可解释性也很强。缺点如果 N 比较大整个统计表可能非常稀疏模型泛化能力较差除此之外无法解决长距离依赖的问题。3.2 基于哈希的 N-gram如果使用传统的查表法N-gram 的表大小会呈指数级增长假设词的个数为 V则Unigram (1-gram)表大小为 V。Bigram (2-gram)表大小为 V2。Trigram (3-gram)表大小为 V3。然而实际上很多组合永远不会出现也就是 N-gram 组合是非常稀疏的。基于哈希的 N-gram 正是为了解决这个空间复杂度浪费的问题并保持高效的查询效率其不预先为所有组合分配索引和空间而是使用 Hash 只为遇到过的组合分配。3.3 多项式滚动哈希Polynomial Rolling Hash对于一个序列 (t0, t1, t2, …, tn-1)可以使用如下的 Polynomial Rolling Hash 方式计算其哈希值H(t0, t1, t2, …, tn-1) an-1 * t0 an-2 * t1 an-3 * t2 … a0 * tn-1为了避免出现极大的哈希值通常还会对上述结果取模M对应H(t0, t1, t2, …, tn-1) (an-1 * t0 an-2 * t1 an-3 * t2 … a0 * tn-1) mod Ma 和 M 的选择至关重要与哈希冲突密切相关。3.4 哈希冲突在传统的数据结构中可以使用“拉链法”或“开放寻址法”等解决哈希冲突的问题以保证即使不同的 Key 有相同的哈希值也能得到正确的 Value。然而这种方式并不适合 GPUGPU 更喜欢固定大小、连续内存的静态数组在 GPU 上做大规模的“指针跳转”或“动态链表遍历”效率极低会打破并行性除此之外还可能频繁分配存储导致碎片化问题。因此在 GPU 中通常会避免哈希冲突的出现并且如果 Hash 值是 Index还会取模Size的方式限制大小。四、方案4.1 方案概览如下图所示为 Engram 模型的基本结构这里有几点需要关注Engram 可以插入 Transformer Block 中并且不是每个 Layer 都有不然 N-Gram Embedding 参数太多。PS需要额外的关注有几个 Engram Block在那些层需要蓝色框中是并行的 Transformer Block这个对应 DeepSeek 前段时间刚发布的 [2512.24880] mHC: Manifold-Constrained Hyper-Connections。PS对于标准的 Transformer Block 也适用Engram Block 的输入除了上一个 Transformer Block 输出的 Hidden State还有 Input IDs并且红框中的计算不依赖 Hidden State。PS因此红色框中的计算就可以与之前的计算异步 Overlap 起来避免成为瓶颈4.2 Engram 实现细节4.2.1 词表压缩在 Engram 中首先会对 Tokenizer 进行归一化处理。这样做是因为在原始文本中 “Hello” 和 “hello” 是两个不同的 token ID对于 N-gram 查找来说略显冗余会浪费巨大的存储空间。如下图源码所示_build_lookup_table() 方法建立了一个映射表将变体统一映射到一个唯一的 ID 上例如去除大小写、前导空格等如下是一个简单示例比如原始词表为[“Hello”, “hello”, “HELLO”, “世界”, “World”]首先标准化映射到[“hello”, “hello”, “hello”, “世界”, “world”]然后去重压缩词表[“hello”, “世界”, “world”]论文中作者介绍对于一个 128K 的 Tokenizer可以将词表大小压缩 23%。4.2.2 Hash论文中没有直接采用多项式滚动哈希而是采用了一种近似方法H(t0, t1, t2, …, tn-1) (m0 * t0 ⊕ m1 * t1 ⊕ m2 * t2 ⊕ … ⊕ mn-1 * tn-1) mod M也就是用一个预先生成的随机乘数 mk 代替 an-1-k并使用 ⊕位异或 XOR替代加法。这样做有几个好处确定性和随机性的结合确定性固定层固定输入固定的 N-gram其对应的哈希值永远是一样的。随机性不同层不同的 base_seed, 会生成不同的随机乘数 mk每一层都不同每个 N-gram 长度不同此外每个 Head 会有不同的 M互不相同的质数这样可以确保不同层、不同 Head 具有不同的 Hash 值并且具有位置敏感性(m0*A)⊕(m1*B) ≠ (m0*B)⊕(m1*A) 。整数乘法和 XOR 都非常高效。如下图所示每一层每个 N-gram每个 Head 都会有不同的 M质数4.2.3 多头查表为了节约存储空间要控制 Hash 值的范围本文采用的多项式滚动 Hash 也就无法避免哈希冲突的存在。为此DeepSeek 采用 Multi-head 机制同一个 N-gram 的不同 Hash 虽然有相同的随机乘数 mk但是有不同的 MMulti-head 组合就极大概率降低了全部冲突的可能。以 Demo 中目标 Embedding 维度 D512 为例方案 A1 个大 Head一个巨大的表每一项存 512 维向量。一旦冲突512 维全错。方案 B8 个小 Head8 个小表每一项只存 64 维向量。最后拼起来变成 64×8512 维向量。这样即使 Head 1 冲突意味着 512 维向量中的前 64 维是脏的/混合的但剩下的 448 维来自其他 7 个 Head可能是准确的。如下图所示查询后会将不同 Head不同 N-gram 的 Embedding 拼接成一个一维的大 Embedding如上的 Hash 和多头查表也就对应论文中的公式1和公式24.2.4 Context-aware Gating —— 动态门控检索到的 Embedding 向量可以作为上下文无关的先验信息由于是静态的缺乏语境适应性并且可能因为哈希冲突或多义性而产生噪声。为了增强表达能力并消除这种歧义作者采用了受注意力启发的上下文感知门控方案Context-aware Gating。如下图红色框中就是上述的多头哈希查表蓝色框就是动态门控处理Key 和 Value 都会经过一个投影实现不同 Head Embedding 的融合并投影到预期的维度。为了确保梯度稳定性投影后的 Key 和 Value 都需要经过 RMSNorm。计算相关性得分其实就是一个点积注意力的变体Score K*Q/sqrt(d)。数值稳定性和非线性处理abs()取绝对值。clamp_min(1e-6)确保数值不小于 1e-6防止下溢。sqrt()起到放大微小信号比如 sqrt(0.01)0.1缩小大信号的作用相当于进行了非线性的扩张/压缩处理。* gate.sign()恢复符号。使用 sigmoid() 生成门控值 αt。对 Value 进行门控处理。上述实现对应论文中的公式3和公式44.2.5 Context-aware Gating —— ShortConv上述得到的 ValueN-gram Embedding本质上是基于某些历史 Token例如 2-gram, 3-gram检索出来的各个 Token 相互独立之间没有直接的交互。为了扩充感受野增强非线性作者增加了一个短的 Depthwise Causal Convolution这样每个 Token 都会融合前面多个 Token 的信息也就相当于提取了当前位置及之前少量 Token 的局部特征。具体的实现如下图所示前面提到其兼容 mHC实际上对于每个 mHC 输入都是独立处理的也就是有独立的 Engram Block。不过为了高效实现减少 Kernel Launch提升并行性这里会将其 Concat 到一起处理对应红色框部分。红色框之间的部分对应的就是 Depthwise Causal Convolutiongroupstotal_channels表示为 Depthwise Convolution每个 Channel 只和自己的卷积核计算Channel 之间不混合。dilation 被设置为 max_ngram_size3实际上每个 Token 已经包含 N-gram 信息因此可以采用空洞卷积。kernel_size默认为 4和 dilation 共同决定了感受野也就是融合的 Token 个数。Padding卷积核 Padding实现 Causal 特性每个 Token 看不到之后的 Token。上述计算对应论文中的公式54.3 训练和推理4.3.1 训练训练中如果在每个 GPU 都存储完整的 N-gram Embedding Table 会存在巨大的空间浪费为此也可以采用分片策略推荐系统很常见比如 torchrec 中的 ShardedEmbedding将 Embedding Table 存储在不同的 GPU。当然这也就需要额外引入一些 All2All 操作来获取分布式的 Embedding。当然这里有很多种切分方案比如对于 mHC其包含多个输入 Hidden States它们之间不会交叉对应的 Engram 计算可以放在不同的设备上但是会受 mHC 数量的制约Embedding 共享仍需要All2All。按照 Head 切分由于通常至少有 2-gram 和 3-gram每个 N-gram 可能至少 4 个 Head比较容易切分到常见的同一台机器的 8 个 GPU 中。这样在多头哈希之前和之后增加 All2All 即可并且 All2All 可以在机内使用高速 NVLink NVSwitch。当然也可以切分的更碎比如直接切分到所有 GPU 中需要全局的 All2All 操作。4.3.2 推理我们前面提到过多头哈希查表操作只与 Input IDs 相关因此其查找、传输操作可以与 Engram 之前的计算进行 Overlap。这也就给 N-gram Embedding Offload 到 CPU 内存甚至是层级化存储提供了很多机会。PS这里也需要 Trade-off如果 Engram 放的位置太靠近输入层比如在 Layer 1那么多头哈希查表操作可能无法被 Overlap 掉但是放置的太靠后效果又可能不好五、消融实验5.1 缩放法则和稀疏分配如下图 Figure 3 所示作者通过实验证实MoE 参数量与 Engram 参数量的比例呈 U 型关系也就是纯 MoE 或纯 Engram 都不是最优的当 ρ 75%-80%也就是 MoE最优也就是MoE 中路由专家参数量占 75%-80%。Engram 中 Embedding 参数占 20%-25%。两种模块之间存在结构互补性MoE 主导ρ → 100%模型缺乏用于静态模式的专用记忆不得不通过增加深度和计算量来低效地重建这些模式。Engram 主导ρ → 0%模型失去条件计算能力削弱了对需要动态、上下文相关 Reasoning 的任务的表现在该区域记忆无法替代计算。5.2 Engram 放置位置如下图 Figure 5 所示作者也进行了消融实验在一个 12 层的 3B Dense 模型中添加 1.6B 的 Engram单层。如果只有一个 Engram在 Layer 2 是效果最好loss 最低往后面层放置效果会变差。当然一个 1.6B Engram 也可以切分为 2 个 0.8B 的 Engram作者实验发现将其放置在 Layer 2 和 Layer 6 可以进一步提升性能也更容易 Overlap。5.3 Engram 消融为了验证 Engram 模块的贡献作者通过在 Inference 过程中完全抑制 Engram 模块输入输出并保持 Backbone 不变的方式进行评估。如下图 Figure 6 所示Factual knowledge 基准测试出现了灾难性崩塌仅保留原始性能的29%–44%例如TriviaQA 仅剩 29%证实了 Engram 模块是参数化知识的主要存储库。阅读理解任务展现出惊人的稳定性保留了 81%–93% 的性能例如 C3 任务达到 93%表明基于上下文的任务主要依赖 Backbone 的注意力机制而非 Engram 模块。5.4 效率如下图 Table 4 所示作者进行了端到端的 Inference 吞吐评估4B 和 8B Dense 模型分别外挂 100B 的 EngramCPU Offload其 Inference 吞吐都只有略微下降。如何系统的学习大模型 AI 由于新岗位的生产效率要优于被取代岗位的生产效率所以实际上整个社会的生产效率是提升的。但是具体到个人只能说是“最先掌握AI的人将会比较晚掌握AI的人有竞争优势”。这句话放在计算机、互联网、移动互联网的开局时期都是一样的道理。我在一线互联网企业工作十余年里指导过不少同行后辈。帮助很多人得到了学习和成长。我意识到有很多经验和知识值得分享给大家也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限很多互联网行业朋友无法获得正确的资料得到学习提升故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。一直在更新更多的大模型学习和面试资料已经上传带到CSDN的官方了有需要的朋友可以扫描下方二维码免费领取【保证100%免费】01.大模型风口已至月薪30K的AI岗正在批量诞生2025年大模型应用呈现爆发式增长根据工信部最新数据国内大模型相关岗位缺口达47万初级工程师平均薪资28K数据来源BOSS直聘报告70%企业存在能用模型不会调优的痛点真实案例某二本机械专业学员通过4个月系统学习成功拿到某AI医疗公司大模型优化岗offer薪资直接翻3倍02.大模型 AI 学习和面试资料1️⃣ 提示词工程把ChatGPT从玩具变成生产工具2️⃣ RAG系统让大模型精准输出行业知识3️⃣ 智能体开发用AutoGPT打造24小时数字员工熬了三个大夜整理的《AI进化工具包》送你✔️ 大厂内部LLM落地手册含58个真实案例✔️ 提示词设计模板库覆盖12大应用场景✔️ 私藏学习路径图0基础到项目实战仅需90天第一阶段10天初阶应用该阶段让大家对大模型 AI有一个最前沿的认识对大模型 AI 的理解超过 95% 的人可以在相关讨论时发表高级、不跟风、又接地气的见解别人只会和 AI 聊天而你能调教 AI并能用代码将大模型和业务衔接。大模型 AI 能干什么大模型是怎样获得「智能」的用好 AI 的核心心法大模型应用业务架构大模型应用技术架构代码示例向 GPT-3.5 灌入新知识提示工程的意义和核心思想Prompt 典型构成指令调优方法论思维链和思维树Prompt 攻击和防范…第二阶段30天高阶应用该阶段我们正式进入大模型 AI 进阶实战学习学会构造私有知识库扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架抓住最新的技术进展适合 Python 和 JavaScript 程序员。为什么要做 RAG搭建一个简单的 ChatPDF检索的基础概念什么是向量表示Embeddings向量数据库与向量检索基于向量检索的 RAG搭建 RAG 系统的扩展知识混合检索与 RAG-Fusion 简介向量模型本地部署…第三阶段30天模型训练恭喜你如果学到这里你基本可以找到一份大模型 AI相关的工作自己也能训练 GPT 了通过微调训练自己的垂直大模型能独立训练开源多模态大模型掌握更多技术方案。到此为止大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗为什么要做 RAG什么是模型什么是模型训练求解器 损失函数简介小实验2手写一个简单的神经网络并训练它什么是训练/预训练/微调/轻量化微调Transformer结构简介轻量化微调实验数据集的构建…第四阶段20天商业闭环对全球大模型从性能、吞吐量、成本等方面有一定的认知可以在云端和本地等多种环境下部署大模型找到适合自己的项目/创业方向做一名被 AI 武装的产品经理。硬件选型带你了解全球大模型使用国产大模型服务搭建 OpenAI 代理热身基于阿里云 PAI 部署 Stable Diffusion在本地计算机运行大模型大模型的私有化部署基于 vLLM 部署大模型案例如何优雅地在阿里云私有部署开源大模型部署一套开源 LLM 项目内容安全互联网信息服务算法备案…学习是一个过程只要学习就会有挑战。天道酬勤你越努力就会成为越优秀的自己。如果你能在15天内完成所有的任务那你堪称天才。然而如果你能完成 60-70% 的内容你就已经开始具备成为一名大模型 AI 的正确特征了。这份完整版的大模型 AI 学习资料已经上传CSDN朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】