随着企业在各类应用中持续采纳大型语言模型(LLM),一个亟待解决的关键挑战便是如何提升模型的事实知识准确性,并降低虚构内容的产生。在最新的一篇论文中,Meta AI的研究团队提出了一种名为“可扩展存储层”的解决方案,这或将成为应对上述挑战的有效途径之一。
可扩展存储层通过在LLM中增添额外参数,以无需额外计算资源的方式,增强了模型的学习能力。这一架构尤其适用于那些既希望为事实知识预留额外存储空间,又期望保持模型推理速度灵活性的应用场景。
密集层与存储层的对比
传统语言模型依赖“密集层”在其参数中编码大量信息。在密集层中,所有参数均被充分利用,并在推理过程中大部分时间保持激活状态。尽管密集层能够学习复杂函数,但提升其容量需耗费更多计算和能源资源。
相比之下,对于简单的事实知识而言,采用关联存储架构的简易层更为高效且易于解读,这正是存储层的优势所在。存储层利用简单的稀疏激活和键值查找机制来编码与检索知识。尽管稀疏层在存储空间上占用较多,但每次仅使用一小部分参数,从而在计算效率上占据优势。
存储层的现状与挑战
存储层虽已存在多年,但在现代深度学习架构中却鲜有应用,原因在于它们尚未针对当前硬件加速器进行优化。当前主流的LLM多采用某种形式的“专家混合”(MoE)架构,该架构使用了与存储层类似但略显模糊的机制。MoE模型由多个专注于特定任务的小型专家组成,推理时,根据输入序列,路由机制决定激活哪个专家。谷歌DeepMind的PEER架构更是将MoE扩展至数百万专家,实现了更精细的参数激活控制。
存储层的升级与改进
存储层在计算方面相对轻量,但在存储方面则需占用大量资源,这对当前硬件和软件框架构成了特定挑战。Meta的研究团队在论文中提出了多项改进措施,成功应对了这些挑战,使得存储层得以在大规模应用中得以实施。
他们首先实现了存储层的并行化配置,将其分布在多个GPU上,以存储数百万个键值对,同时保持模型中其他层不变。此外,他们还开发了一个专门用于处理高存储带宽操作的CUDA内核,以及一个参数共享机制,允许在模型的多个存储层之间共享一组存储参数,即查找所用的键和值在层间共享。
这些改进使得在LLM内部实现存储层成为可能,同时不会降低模型速度。研究团队指出:“稀疏激活的存储层很好地补充了密集网络,增强了知识获取能力,同时计算负担较轻。它们具备有效扩展性,为从内存到计算的各种需求提供了实用的新方向。”
Meta存储层的实验效果
为验证存储层的有效性,研究团队通过将一个或多个密集层替换为共享存储层,对Llama模型进行了修改。他们比较了增加存储的模型与密集LLM、MoE及PEER模型在多个任务上的表现,包括事实问答、科学和常识世界知识以及编码等。
研究结果显示,存储模型在密集模型基础上取得了显著改进,并能与使用2倍至4倍计算资源的模型相媲美。在计算预算和参数数量相同的条件下,存储模型的性能与MoE模型相当。尤其在需要事实知识的任务上,存储模型表现尤为突出。例如,在事实问答任务上,一个具有13亿参数的存储模型性能接近经过两倍标记训练和10倍计算资源投入的Llama-2-7B。
此外,研究团队还发现,存储模型的好处在不同模型规模下均保持一致,他们的实验从1.34亿参数扩展至80亿参数。
“鉴于这些发现,我们强烈建议将存储层整合至所有下一代AI架构中,”研究团队写道,并补充说仍有很大的提升空间。“特别是,我们期望能够开发新的学习方法,进一步提高这些层的有效性,实现更少的遗忘、更少的虚构和持续学习。”