记忆层增强的 Transformer 架构:通过可训练键值存储提升 LLM 性能的创新方法

本文涉及的产品
智能开放搜索 OpenSearch行业算法版,1GB 20LCU 1个月
实时计算 Flink 版,1000CU*H 3个月
实时数仓Hologres,5000CU*H 100GB 3个月
简介: Meta研究团队开发的记忆层技术通过替换Transformer中的前馈网络(FFN),显著提升了大语言模型的性能。记忆层使用可训练的固定键值对,规模达百万级别,仅计算最相似的前k个键值,优化了计算效率。实验显示,记忆层使模型在事实准确性上提升超100%,且在代码生成和通用知识领域表现优异,媲美4倍计算资源训练的传统模型。这一创新对下一代AI架构的发展具有重要意义。

大语言模型(LLM)通过其参数储存了大量信息,这些信息主要以密集层中线性矩阵变换的权重形式存在。然而,参数规模的扩大必然导致计算成本和能源消耗的显著增加。

这种参数存储方式是否可以通过更高效的键值查找机制来优化?

尽管此前已有多项相关研究,但在当前 AI 架构规模下的实践尚属首次。

Meta 研究团队通过开发记忆层技术,成功实现了对现有大语言模型的性能提升。该技术通过替换一个或多个 Transformer 层中的前馈网络(FFN)来实现功能。

实验数据显示,记忆层的引入使大语言模型在事实准确性方面提升了 100% 以上。同时其在代码生成和通用知识领域的表现可与使用 4 倍计算资源训练的传统大语言模型相媲美。

在事实性任务评估中,搭载记忆层的大语言模型的性能明显优于在相似计算资源和参数规模条件下训练的专家混合型(Mixture-of-experts)架构。

本文将深入探讨记忆层的技术原理及其对大语言模型性能的提升机制,这一技术创新对下一代 AI 架构的发展具有重要意义。

记忆层的技术原理

我们先看一下Transformer的基本机构

记忆层在功能实现上与 Transformer 的注意力机制有相似之处。基本原理是:给定查询(

Q

)、键(

K

)和值(

V

),通过 softmax 函数计算查询与键之间的相似度,并据此对值(

V

)进行加权求和。

记忆层与传统注意力机制的主要区别在于两个方面:

首先,传统注意力机制中的键和值是针对每个查询动态计算的,而记忆层中的键和值是可训练的固定参数。这意味着这些参数通过训练获得并持久保存。

其次,记忆层所使用的键值对规模达到百万级别

系统仅使用与查询最相似的前 k 个键及其对应值来计算输出,这种方法显著提高了大规模运算时的计算效率。记忆层的数学表达可以通过以下方程系统来描述:

首先,基于查询与键之间的相似度计算确定前 k 个键的索引(

I

):

其中 q 表示查询向量,K 表示可训练的键矩阵。

随后,计算选定键的相似度得分(

K(I)q

),并通过 Softmax 函数进行归一化,得到权重向量(

s

):

其中 q 表示查询向量,K(I) 表示已选择的前 k 个键矩阵。

最后,利用前 k 个值的加权和计算输出向量(

y

):

其中 s 表示经过 softmax 归一化的权重向量,V(I) 表示选定的前 k 个值矩阵。在记忆层中,每个词元嵌入都进行独立的处理,这一点与传统 Transformer 中的前馈层处理方式相同。

大规模相似键搜索的优化策略

在大规模场景下查找最相似键值的计算开销较大。传统的最近邻搜索算法流程如下:

  • 计算查询向量与所有键之间的相似度(如余弦相似度),时间复杂度为 O(N ⋅ n),其中 N 为键的数量,n 为向量维度
  • 对相似度进行排序,时间复杂度为 O(N log(N))
  • 选取相似度最高的前 k 个键
  • 利用这 k 个键计算最终输出

该方法的空间复杂度为

O(N ⋅ n)

,在处理百万级键值对时计算资源消耗过大。近似最近邻(ANN)搜索同样不适用于此场景,因为 ANN 需要预先构建静态索引。由于记忆层中的键是可训练参数且在训练过程中持续更新,这就要求不断重建索引。

那么,是否存在更优的解决方案?

研究团队采用了一种源自先前研究的可训练乘积量化键技术,下面将详细说明其实现原理。

键矩阵分解策略

该方法不直接使用完整的键矩阵(

K

),而是将其分解为两个较小的矩阵(

K(1)

K(2)

)。

原始键矩阵的维度为

N × n

,分解后的两个子矩阵维度均为

√N × n/2

,其中

N

表示键的总数,

n

表示向量维度。

完整的键矩阵可以通过这两个子矩阵的笛卡尔积表示:

_K = K(1) X K(2)_

这种设计避免了显式构建完整矩阵,从而实现了计算资源的优化。

查询向量分解

与键矩阵分解相对应,查询向量(

Q

)也被分解为两个子向量(

Q(1)

Q(2)

)。原始查询向量的维度为

n

,分解后的子向量维度各为

n/2

。这两个子向量分别与对应的键子矩阵进行运算。

相似键的检索与相似度计算

对于

Q(1)

,系统在

K(1)

中检索前 k 个相似键,得到索引集合(

I(1)

)。随后通过 Softmax 函数计算相似度得分(

s(1)

)。

Q(2)

K(2)

之间进行相同的操作。

全局最优解的获取

通过对索引和得分应用 Argmax 函数,可以得到全局最优的前 k 个索引和对应得分:

这种方法的优势在于:

将查询与所有

N

个键的直接比较转化为与两个较小集合的比较,使得时间和空间复杂度从

O(N ⋅ n)

降低到

O(√N ⋅ n)

,大幅提升了计算效率。

GPU 并行计算的实现

记忆层包含数百万个可训练参数(键和值矩阵)。为了高效处理这些参数,系统采用了以下并行计算策略:

  1. 将参数沿嵌入维度分片
  2. 在多个 GPU 上分布式存储
  3. 每个 GPU 负责管理其分配到的参数分片
  4. 通过进程组协调各 GPU 之间的运算

查询操作的执行流程如下:

  1. 识别并分发相关索引至各 GPU
  2. 各 GPU 在其负责的分片中检索对应嵌入
  3. 收集并整合各 GPU 的部分结果,得到最终输出

GPU 并行化的记忆层运算示意图

GPU 计算效率优化

PyTorch 提供的

EmbeddingBag

函数可用于计算记忆层中前 k 个嵌入的加权和。然而,其默认实现在 GPU 内存带宽利用率方面存在局限。

测试显示,默认实现的内存带宽利用率不足 400 GB/s,远未充分发挥现代 GPU 的性能潜力。为此研究团队开发了专门的 CUDA 内核,用于优化前向和反向传播的计算效率。

优化后的实现达到了 3 TB/s 的内存带宽,接近 NVIDIA H100 GPU 3.35 TB/s 的理论峰值,使得嵌入运算的端到端性能提升了约 6 倍。

此外通过引入基于 SiLU 非线性函数的输入依赖门控机制,进一步提升了记忆层的训练性能。

优化后的输出计算公式如下:

其中各参数定义如下:

  • silu(x) = x ∗ σ(x),σ(x) 为 sigmoid 函数
  • 表示 Hadamard 积(逐元素乘法)
  • x 为记忆层输入
  • y 为经门控机制调制后的输出
  • W(1)W(2) 为可训练权重矩阵

上图为标准记忆层与引入输入依赖门控机制后的记忆层性能对比

在实践中发现,当小规模基础模型与大规模记忆层结合时,可能出现训练不稳定的问题。为解决这一问题,引入了 QK 归一化技术。该技术在计算点积之前对查询向量(

Q

)和键向量(

K

)进行归一化处理。

记忆层的最优配置策略

在深度神经网络中,浅层网络主要学习基础特征,而深层网络则负责提取复杂模式。实验表明,在多个层次中引入记忆层可以获得最佳效果。为了控制参数规模,在所有层间采用了共享内存池机制。这种设计使得多个层可以共享访问同一内存资源,提高了架构效率。

实验数据显示,在不超过 3 个层中使用记忆层可以持续提升模型性能,但过度替换密集前馈网络(FFN)层会导致性能下降。

这一现象表明,稀疏记忆层与密集前馈层各有其独特优势,最佳方案是将两者结合使用。

记忆层增强型大语言模型的性能评估

研究团队选择 Llama 系列模型(Llama2 和 Llama3)作为基准,将其一个或多个前馈层(FFN)替换为共享记忆层进行实验。

实验设置包括两种配置:基础记忆模型(使用单一记忆层)和增强型记忆模型("Memory +",使用三个记忆层并集成 Swilu 非线性函数)。

SwiLU 非线性函数:其中 β 为可学习参数,σ(x) 为 sigmoid 函数

为进行对比分析,研究还包含了配置相当的专家混合模型(MoE,采用专家选择路由训练)和 PEER 模型。

实验结果分析

在问答(QA)任务评估中,记忆模型展现出显著优势:其性能超过了参数规模相当的密集模型,达到了参数数量两倍的密集模型的水平。

记忆增强型架构与基准模型在问答任务上的性能对比

增强型记忆模型("Memory +")的表现更为突出,其性能可与使用 2-4 倍计算资源训练的密集模型相匹敌。

各架构在问答任务中的准确率比较("Memory +"模型配置:100万记忆嵌入)

值得注意的是,PEER 模型在相同参数规模下的表现与基础记忆模型相当,但未能达到增强型记忆模型的水平。

同时,专家混合模型的性能显著低于记忆增强型模型。在固定基础模型参数的情况下扩展记忆参数规模时,模型在事实性问答任务上表现出显著的性能提升。

实验显示,配置 6400 万个键的 1.3B 参数记忆模型,仅使用 1/10 的计算量和一半的训练数据量,即可达到 Llama2 7B 模型的性能水平。

图表展示了 1.3B 参数模型在 NaturalQuestions(NQ)和 TriviaQA(TQA)基准测试中的性能指标:随着记忆规模扩大,事实性问答准确率提升,负对数似然(NLL)降低。虚线表示使用 10 倍计算资源、在 2 万亿词元上训练的 7B 模型的性能水平。

在 8B 规模模型的评估中,记忆模型在科学知识、通用知识和编程能力等基准测试上的表现明显优于传统密集模型。

特别值得一提的是,经过 1 万亿词元的训练,增强型记忆模型("Memory +")的性能已接近在 15 万亿词元(15 倍数据量)上训练的 Llama3.1 8B 模型。

总结

实验结果表明,记忆层技术在提升大语言模型性能方面具有显著优势。随着大语言模型逐渐接近计算资源和物理极限,这项技术的应用价值将愈发凸显。

论文:https://avoid.overfit.cn/post/bc94fb7278ff425f8af5ffa053a5ab12

作者:Dr. Ashish Bamania

相关实践学习
在云上部署ChatGLM2-6B大模型(GPU版)
ChatGLM2-6B是由智谱AI及清华KEG实验室于2023年6月发布的中英双语对话开源大模型。通过本实验,可以学习如何配置AIGC开发环境,如何部署ChatGLM2-6B大模型。
目录
相关文章
|
1月前
|
存储 调度 C++
16 倍性能提升,成本降低 98%! 解读 SLS 向量索引架构升级改造
大规模数据如何进行语义检索? 当前 SLS 已经支持一站式的语义检索功能,能够用于 RAG、Memory、语义聚类、多模态数据等各种场景的应用。本文分享了 SLS 在语义检索功能上,对模型推理和部署、构建流水线等流程的优化,最终带给用户更高性能和更低成本的针对大规模数据的语义索引功能。
243 13
|
1月前
|
存储 机器学习/深度学习 PyTorch
119_LLM训练的高效内存管理与优化技术:从ZeRO到Flash Attention
大型语言模型(LLM)的训练面临着前所未有的计算和内存挑战。随着模型规模达到数百亿甚至数千亿参数,高效的内存管理成为训练成功的关键因素之一。2025年,LLM训练的内存优化技术已经取得了显著进展,从ZeRO优化器到Flash Attention等创新技术,为训练超大规模模型提供了可能。
|
2月前
|
机器学习/深度学习 人工智能 自然语言处理
Transformer架构:重塑现代AI的核心引擎
Transformer架构:重塑现代AI的核心引擎
436 98
|
1月前
|
机器学习/深度学习 数据可视化 网络架构
PINN训练新思路:把初始条件和边界约束嵌入网络架构,解决多目标优化难题
PINNs训练难因多目标优化易失衡。通过设计硬约束网络架构,将初始与边界条件内嵌于模型输出,可自动满足约束,仅需优化方程残差,简化训练过程,提升稳定性与精度,适用于气候、生物医学等高要求仿真场景。
280 4
PINN训练新思路:把初始条件和边界约束嵌入网络架构,解决多目标优化难题
|
1月前
|
存储 监控 安全
132_API部署:FastAPI与现代安全架构深度解析与LLM服务化最佳实践
在大语言模型(LLM)部署的最后一公里,API接口的设计与安全性直接决定了模型服务的可用性、稳定性与用户信任度。随着2025年LLM应用的爆炸式增长,如何构建高性能、高安全性的REST API成为开发者面临的核心挑战。FastAPI作为Python生态中最受青睐的Web框架之一,凭借其卓越的性能、强大的类型安全支持和完善的文档生成能力,已成为LLM服务化部署的首选方案。
|
1月前
|
存储 监控 算法
117_LLM训练的高效分布式策略:从数据并行到ZeRO优化
在2025年,大型语言模型(LLM)的规模已经达到了数千亿甚至数万亿参数,训练这样的庞然大物需要先进的分布式训练技术支持。本文将深入探讨LLM训练中的高效分布式策略,从基础的数据并行到最先进的ZeRO优化技术,为读者提供全面且实用的技术指南。
|
2月前
|
存储 JSON 数据处理
ClkLog埋点与用户行为分析系统:架构升级与性能全面提升
随着越来越多企业在实际业务中使用 ClkLog,数据规模和分析需求也不断提升,部分用户日活已经超过10万,为了顺应这一趋势,ClkLog 秉持 “开放透明、持续演进”的理念,推出了迄今为止最重要的一次性能优化升级。新版本在大规模数据处理与复杂查询场景中,性能表现实现了跨越式提升。经过多轮研发与严格测试,新版本现已正式上线:在原有付费版 1.0 的基础上架构全面升级,并同步发布全新的 2.0 版本。为用户带来更强的性能与更广的适用场景。
|
2月前
|
机器学习/深度学习 人工智能 自然语言处理
编码器-解码器架构详解:Transformer如何在PyTorch中工作
本文深入解析Transformer架构,结合论文与PyTorch源码,详解编码器、解码器、位置编码及多头注意力机制的设计原理与实现细节,助你掌握大模型核心基础。建议点赞收藏,干货满满。
835 3
|
2月前
|
机器学习/深度学习 测试技术 决策智能
SAPO去中心化训练:多节点协作让LLM训练效率提升94%
SAPO(Swarm Sampling Policy Optimization)提出去中心化异步强化学习框架,通过节点间共享rollouts提升大模型后训练效率。实验显示,在数千节点上可实现94%回报提升,尤其助力中等规模模型突破性能瓶颈。
147 0
SAPO去中心化训练:多节点协作让LLM训练效率提升94%
|
1月前
|
机器学习/深度学习 存储 缓存
115_LLM基础模型架构设计:从Transformer到稀疏注意力
大型语言模型(LLM)的架构设计是其性能的核心决定因素。从2017年Transformer架构的提出,到如今的稀疏注意力和混合专家模型,LLM架构经历了快速的演进。本文将全面探讨LLM基础架构的设计原理,深入分析Transformer的核心机制,详细介绍稀疏注意力、MoE等创新架构,并展望未来架构发展方向。通过数学推导和实践案例,为构建高效、强大的LLM提供全面指导。
下一篇
oss云网关配置