Memory Layers – Meta 开源不增加算力时增加大模型的参数方法


Memory Layers是什么

Memory Layers是Meta推出的用可训练的键值查找机制为模型增加额外参数的方法,它不会增加浮点运算次数(FLOPs)。基于稀疏激活Memory Layers补充计算密集型的前馈层,提供专门的容量廉价地存储和检索信息。Memory Layers在大规模语言模型中显示出显著的实用性,尤其是在处理事实性任务时,能显著提高模型的性能。基于替换Transformer层中的一个或多个前馈网络(FFN)与记忆层,在不显著增加计算成本的情况下,显著提升模型的事实准确性和知识获取能力。

Memory Layers – Meta 开源不增加算力时增加大模型的参数方法

Memory Layers的主要功能

  • 参数扩展:支持模型在不增加计算负担(即不增加FLOPs)的情况下增加额外的参数,扩展模型的容量。
  • 信息存储与检索:提供专门的机制存储和检索信息。
  • 补充密集层:与计算密集型的前馈层(feed-forward layers)互补,基于稀疏激活模式提供信息存储和检索的专用容量。
  • 提高事实准确性:在事实性任务中,显著提高语言模型的准确性,让模型更准确地记忆和使用训练数据中的事实。
  • 性能提升:在计算和参数匹配的情况下,让模型性能超过传统的密集模型和混合专家模型。

Memory Layers的技术原理

  • 键值查找机制:基于简单的键值查找机制工作,其中键和值都编码为嵌入向量。给定查询向量q,及一组键K和值V,输出是值的一个软组合,权重根据q与对应键的相似度确定。
  • 稀疏激活:与传统的注意力机制不同,Memory Layers中的键和值是可训练的参数,而不是激活值。由于键和值的数量通常很大,Memory Layers需要进行稀疏查找和更新,只有与查询最相似的top-k键和对应的值参与输出计算。
  • 产品键查找:为解决大规模记忆中查询-键检索的瓶颈,Memory Layers采用产品量化键(product-quantized keys),用两组较小的键有效地执行全键集的top-k查找。
  • 并行化实现:由于Memory Layers对内存的需求很大,在多个GPU上并行化嵌入查找和聚合实现大规模扩展。
  • 共享记忆参数:用共享的记忆参数池,在不增加参数数量的情况下,基于多个记忆层增加性能。

Memory Layers的项目地址

  • 项目官网:https://ai.meta.com/research/publications/memory-layers-at-scale/
  • GitHub仓库:https://github.com/facebookresearch/memory
  • arXiv技术论文:https://arxiv.org/pdf/2412.09764

Memory Layers的应用场景

  • 问答系统:在问答系统中,帮助模型记住和检索大量的事实信息,提供准确的答案。
  • 语言模型:在自然语言处理中,增强语言模型的记忆能力,在处理长文本和复杂对话时更加有效。
  • 推荐系统:在推荐系统中存储用户的历史行为和偏好,提供更个性化的推荐。
  • 知识图谱:在知识图谱的应用中,存储和检索实体之间的关系,支持复杂的查询和推理。
  • 对话系统:在对话系统中,帮助模型记住对话历史,让对话更加连贯和自然。
版权声明:ainav 发表于 2025-01-15 20:08:56。
转载请注明:Memory Layers – Meta 开源不增加算力时增加大模型的参数方法 | AI导航站