东京初创公司Sakana AI的研究人员开发了一种新技术,使语言模型能够更有效地利用内存,帮助企业降低构建大型语言模型(LLM)和其他基于Transformer模型的应用程序的成本。
该技术称为“通用Transformer内存”,它使用特殊的神经网络优化LLM,以保留重要信息并丢弃上下文中的冗余细节。
**优化Transformer内存**
基于Transformer模型(LLM的支柱)的响应取决于其“上下文窗口”的内容,即用户作为输入提供给模型的内容。
上下文窗口可以被视为模型的工作内存。调整上下文窗口的内容会对模型的性能产生巨大影响,这催生了整个“提示工程”领域。
当前的模型支持非常长的上下文窗口,包含数十万甚至数百万个token(LLM对用户在提示中输入的单词、词组、短语、概念和数字的数值表示)。
这使用户能够在提示中塞入更多信息。但是,更长的提示会导致更高的计算成本和更慢的性能。优化提示以删除不必要的token,同时保留重要信息可以降低成本并提高速度。
当前的提示优化技术需要大量资源,或者要求用户手动测试不同的配置以减小提示的大小。
**神经注意力内存模块**
通用Transformer内存使用神经注意力内存模型(NAMM)来优化提示,NAMM是一种简单的神经网络,可以决定是否“记住”或“忘记”存储在LLM内存中的每个给定token。
“这种新功能允许Transformer丢弃无用或冗余的细节,并专注于最关键的信息,我们发现这对需要长上下文推理的任务至关重要。”研究人员写道。
NAMM与LLM分开训练,并在推理时与预训练模型结合,这使得它们灵活且易于部署。但是,它们需要访问模型的内部激活,这意味着它们只能应用于开源模型。
与Sakana AI开发的其他技术一样,NAMM是通过进化算法而不是基于梯度的优化方法进行训练的。通过迭代突变和选择表现最佳的模型,进化算法优化NAMM的效率和性能。这尤其重要,因为NAMM试图实现一个不可微的目标:保留或丢弃token。
NAMM在LLM的注意力层上运行,注意力层是Transformer架构的关键组成部分之一,它确定模型上下文窗口中每个token的关系和重要性。根据注意力值,NAMM确定哪些token应该保留,哪些token可以从LLM的上下文窗口中丢弃。这种基于注意力的机制使得可以在各种模型上使用训练好的NAMM,而无需进一步修改。例如,在纯文本数据上训练的NAMM可以应用于视觉或多模态模型,而无需额外训练。
**通用内存的应用**
为了测试通用Transformer内存的概念,研究人员在开源Meta Llama 3-8B模型之上训练了一个NAMM。他们的实验表明,使用NAMM,基于Transformer的模型在非常长的序列上的自然语言和编码问题上表现更好。同时,通过丢弃不必要的token,NAMM使LLM模型能够在执行任务时节省高达75%的缓存内存。
“在我们的基准测试中,NAMM为Llama 3-8B Transformer提供了明显的性能改进。”研究人员写道。“此外,我们的内存系统产生了显著的额外好处,减少了每一层的上下文大小,同时从未明确地针对内存效率进行优化。”
他们还在Llama的70B版本以及为其他模态和任务设计的Transformer模型(如Llava(计算机视觉)和Decision Transformer(强化学习))上测试了该模型。
“即使在这些非分布式环境中,NAMM也能通过丢弃诸如冗余视频帧和次优操作之类的token来保留其优势,从而允许其新的基础模型专注于最相关的信息以提高性能。”研究人员写道。
**任务相关的行为**
另一个有趣的发现是,NAMM会根据任务自动调整其行为。
例如,对于编码任务,模型会丢弃对应于注释和空白的连续token块,这些注释和空白不会影响代码的执行。
另一方面,在自然语言任务中,模型会丢弃表示语法冗余且不影响序列含义的token。
研究人员发布了创建自己的NAMM的代码。通用Transformer内存等技术对于处理数百万个token并能从速度提升和成本降低中受益的企业应用程序非常有用。训练好的NAMM的可重用性也使其成为在企业中跨不同应用程序使用的通用工具。
展望未来,研究人员建议使用更高级的技术,例如在LLM训练期间使用NAMM以进一步扩展其内存能力。
“这项工作才刚刚开始挖掘我们新一代内存模型的潜力,我们预计这可能会为推进未来几代Transformer提供许多新的机会。”研究人员写道。