随着企业在各种应用中不断采用大型语言模型(LLMs),他们面临的关键挑战之一是提高模型的事实知识并减少幻觉。在一篇新论文中,Meta AI 的研究人员提出了“可扩展内存层”,这可能是解决该问题的几种可能方案之一。可扩展内存层:在不增加计算资源的情况下,为 LLMs 添加更多参数以增加其学习能力。这种架构对于可以为事实知识留出额外内存但又希望模型具有更快推理速度的应用非常有用。密集层和内存层:传统语言模型使用“密集层”在其参数中编码大量信息。在密集层中,所有参数都被充分利用,并且在推理时大多同时被激活。随着密集层的增大,它们可以学习更复杂的函数,但增加其大小需要额外的计算和能源资源。相比之下,对于简单的事实知识,具有类似查找表的关联记忆架构的更简单层将更加高效和可解释。这就是内存层的作用。它们使用简单的稀疏激活和键值查找机制来编码和检索知识。稀疏层比密集层占用更多的内存,但一次只使用一小部分参数,这使得它们的计算效率更高。内存层的存在和问题:内存层已经存在了几年,但在现代深度学习架构中很少使用。它们没有针对当前的硬件加速器进行优化。当前的前沿 LLMs 通常使用某种形式的“专家混合”(MoE)架构,其使用的机制与内存层有些类似。MoE 模型由许多专门从事特定任务的较小专家组件组成。在推理时,路由机制根据输入序列确定哪个专家被激活。Google DeepMind 最近开发的 PEER 架构将 MoE 扩展到数百万个专家,提供了对推理时激活的参数的更精细控制。升级内存层:内存层在计算上轻量级,但在内存上很重,这给当前的硬件和软件框架带来了特定的挑战。在他们的论文中,Meta 研究人员提出了几种修改,解决了这些挑战,并使它们能够大规模使用。首先,研究人员将内存层配置为并行化,将它们分布在多个 GPU 上,以存储数百万个键值对,而无需更改模型中的其他层。他们还实现了一个特殊的 CUDA 内核,用于处理高内存带宽操作。此外,他们开发了一种参数共享机制,支持在模型内的多个内存层之间共享一组内存参数。这意味着用于查找的键和值在层之间共享。这些修改使得在 LLMs 中实现内存层而不会减慢模型成为可能。“具有稀疏激活的内存层很好地补充了密集网络,在计算轻量级的同时提供了增加知识获取能力的机会,”研究人员写道。“它们可以有效地扩展,并为从业者提供了一个有吸引力的新方向,可以在内存和计算之间进行权衡。”Meta 的内存层在行动:为了测试内存层,研究人员通过将一个或多个密集层替换为共享内存层来修改 Llama 模型。他们在几个任务上比较了内存增强模型与密集 LLMs 以及 MoE 和 PEER 模型,包括事实问答、科学和常识世界知识以及编码。他们的发现表明,内存模型在密集基线的基础上有了显著的改进,并与使用 2 倍到 4 倍计算量的模型竞争。它们还与具有相同计算预算和参数数量的 MoE 模型的性能相匹配。该模型的性能在需要事实知识的任务上尤其显著。例如,在事实问答中,具有 13 亿参数的内存模型接近 Llama-2-7B 的性能,后者已经在两倍的令牌上进行了训练,并且使用了 10 倍的计算量。此外,研究人员发现,随着他们将实验从 1.34 亿参数扩展到 80 亿参数,内存模型的好处与模型大小保持一致。“鉴于这些发现,我们强烈主张将内存层集成到所有下一代 AI 架构中,”研究人员写道,同时补充说还有很大的改进空间。“特别是,我们希望可以开发新的学习方法,进一步提高这些层的有效性,减少遗忘,减少幻觉,并实现持续学习。”