本文作者:梦想追逐者

突破算力限制!Meta开源“记忆层”,重塑Transformer架构大模型

突破算力限制!Meta开源“记忆层”,重塑Transformer架构大模型摘要: 北京时间月日当崔永熙遭遇左膝前十字韧带撕裂导致赛季报销并且被篮网正式裁掉作为过来人的林书豪被崔永熙视为自己的导师他如今通过社媒寄语崔永熙表示听到崔永熙受伤的消息很难过也相信崔永熙能...

北京时间12月16日,当崔永熙遭遇左膝前十字韧带撕裂导致赛季报销,并且被篮网正式裁掉。作为过来人的林书豪被崔永熙视为自己的导师,他如今通过社媒寄语崔永熙,表示听到崔永熙受伤的消息很难过,也相信崔永熙能够克服困难,会继续为崔永熙加油。

声明:本文来自于微信公众号 AIGC开放社区,作者:AIGC开放社区,授权 转载发布。

今天凌晨3点,全球社交巨头分享了一个创新研究——Memory layers(记忆层)。

目前,Tran ormer架构的预训练大模型在存储、查询数据时,随着参数的变大对算力的需求呈指数级增长。“记忆层”提出了新的 查询机制替代了传统的查询方法,通过比较查询键与两个较小 中的键,可以快速找到最相关的键,而无需遍历模型的整个记忆层。

这也就是说,可以在不增加算力的情况下显著增加大模型的参数。例如,研究人员在仅有1.3亿参数的模型中添 128亿额外的记忆参数,其性能与Meta开源的Llama2-70相当,而算力却比它低了10倍左右。

开源地址:https://github.com/facebookresearch/memory

Product - Key Lookup

在传统的键值查找中,每个查询都需要与记忆层中的每个键进行比较,以找到最匹配的值。该方法在键的数量较少时是可行的,但随着记忆层规模的增长,这种暴力搜索的方式变得 低效,需要消耗巨大算力和时间。

给大家举一个简单的例子,你想在一个巨大的图书馆里找一本书。这个图书馆有成千上万本书,每本书都有一个 的编号(相当于记忆层中的“键”)。如果你要找到一本特定的书(相当于查询),传统的方法是逐个检查每一本书的编号来查找你要的那一本。

这种方法在图书馆只有几百本本书时可能还行得通,当图书馆藏书量达到数万时,逐本查找方法就变得极其耗时和低效了。

Product - Key Lookup是“记忆层”的核心算法之一,使用了一种分而治之的策略,将传统的单一键 分解为两个较小的键 ,通过两个阶段的查找来减少必要的比较次数,从而提高查找效率。

首先,查询键被分割为两个子查询,每个子查询分别与两个半键 进行比较。由于每个半键 的大小只有原始键 的平方根大小,因此这个阶段的计算量大幅减少。在 阶段,每个半键 中找到与子查询最相似的k个键,这个过程称为top-k查找。

在第二阶段,两个半键 中找到的top-k键被合并,以确定最终的top-k键。这一步骤涉及到对两个半键 中找到的键进行综合 ,以确定它们与原始查询键的整体相似度。需要考虑到两个半键 中的键的组合,以找到最佳的匹配。

除了计算效率之外,Product-Key Lookup模块还优化了内存和带宽的使用。由于每个GPU只需要处理一半的键,因此内存的使用量减少了一半。由于每个GPU只需要返回与自己处理的键相关的值,所以内存带宽的需求也得到了优化。

Product-Key Lookup算法不仅提高了记忆层的查询效率,还为记忆层的应用开辟了新的可能性,使得记忆层可以被应用于更大规模的数据集和更复杂的任务中,包括大规模知识图谱的查询、长文本的语义检索等。

并行记忆层和共享记忆参数

并行记忆层主要是用于对硬件GPU的优化。在传统的Tran ormer架构模型中,随着模型规模的增加,计算和内存需求也随之增长。特别是在处理大规模数据集时,单一的计算单元很难满足这种需求。并行记忆层通过在多个GPU之间分配任务,有效 这一难题。

突破算力限制!Meta开源“记忆层”,重塑Transformer架构大模型

在并行记忆层的设计中,每个计算单元只负责处理一部分数据,这样可以减少单个计算单元的负担,同时提高整体的处理速度。这种设计允许模型在保持单个计算单元负载合理的同时,处理更大规模的记忆层。使得模型可以扩展到数十亿甚至数百亿的参数,而不会受到单个计算单元性能的限制。

共享记忆参数则是另外一个重要优化方法,允许不同层的记忆层共享同一个参数 。这种设计的优势在于,它减少了模型的总参数数量,同时提高了参数的利用率。

当一个记忆层接收到输入后,它会先从共享记忆池中查找最相似的记忆单元,然后根据查询结果生成输出。由于所有记忆层都指向同一个记忆池,因此它们可以在不影响彼此的情况下同时进行操作。

为了应对训练期间可能出现的变化,研究人员开发了一套动态调整策略。每当有新的键加入或旧有的键被更新时,系统会自动调整相应的子集,而无需对整个记忆池进行 改造。这样的设计既简化了维护流程,又提高了系统的灵活性和适应性。

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

阅读
分享