LoopDNS资讯播报
去年De­e­p­S­e­ek R1的论文刚出来时,引起英伟达短期大跌,我说是跌错了,因为这个开源模型其实是利好,加速了技术扩散,整个模型还是基于GPU的。 前几天De­e­p­S­e­ek刚发的En­g­r­am架构,我认为是不亚于R1的优秀论文,但却是对GPU真正的利空。因为它实现了将常识性的内容分流到CPU上,让GPU专注于深度思考,需要世界知识时再去CPU调用,大幅提升了模型的计算效率。 消融实验发现用20%的参数记忆知识,80%的参数计算推理,性能达到最佳,例如简单的问题“法国的首都是哪里?…
Engram对比传统LLM,有什么区别?

通过将部分 Transformer 层替换为 Engram 模块,训练时将部分知识挂载在模型特定的embedding层,推理时可实现根据 input token 通过哈希映射获得相应的 embedding索引,并将对应注入到模型主干网络的 hidden state 中,其中哈希映射的逻辑没有LayerNorm和非线性激活函数,计算量非常少,意味者这部分可由cpu进行计算。传统LLM在推理时,由于知识可能分布在不同层的 FFN 中,因此每次推理都需要把所有层都计算一次。而 Engram 可能在每轮计算中,通过哈希映射已经找到了对应的知识,当这个向量注入到主干网络后,门控可以判断其能否作为输出的一部分,从而实现某种程度上的 early exit。

相比Cpu取代Gpu的叙事,更重要的是存算分离。

论文虽然提到了“20/80比例”,但同时证明了更大的知识层能使模型的loss下降依然遵循幂律,并且这是基于3B小模型上获得的实验结果。

目前MoE模型有着总参数大,但激活量小的特点。因为其在推理时只会激活 n 个专家,而激活量只相当于激活专家的总和。在推理时,却需要加载所有专家的权重。因此MoE会耗费非常多的显存,但计算却只需要相对于模型总参数量很小的一部分权重。

同时,由于MoE模型提前预测激活专家准确性较低,而且FFN非常厚重,通过远程内存阵列加载所有权重并流式读取在目前基本不可能,因为要低延迟其需要很高的传输带宽。目前大部分多卡分布式推理都是将模型分成多个切片在多张gpu上计算,这是极其浪费的。

而在Engram中,主干网络相对于embedding层来说,可能只需要保证拥有各领域基础的思维模式和基础知识,其余信息可通过哈希映射在embedding层中获取,这大大较少了模型计算的深度,提高了推理时的效率。

Engram 在前面几层就可以根据输入来获取哈希映射进而取出命中的“知识”,并且通过demo代码中 EngramConfig 可知,n_embed_per_ngram为512,n_head_per_ngram为8,在Fp16的情况下,只需要1kb的传输量。当然demo中hidden_size仅为1024,意味者这个demo对应的大概是1B左右的小模型。但即使生产部署的情况下,这个数值也不会很大,因为单个ngram的信息量只是一个词组。

由于其对比FFN而言,跨节点通讯所需的带宽大大减少。因此,用专门的内存阵列来存储low-rank知识层,单张gpu加载主干网络变得可行,并且不需要昂贵专用互联技术,进而提升目前硬件的计算效能。

同时,Engram 也使端侧算力有限的情况下,大模型能力提升提供了一条新的路径。
(独立撰稿 LoopDns)
 
 
Back to Top