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

本文涉及的产品
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
智能开放搜索 OpenSearch行业算法版,1GB 20LCU 1个月
实时数仓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

目录
相关文章
|
17天前
|
供应链 监控 安全
对话|企业如何构建更完善的容器供应链安全防护体系
阿里云与企业共筑容器供应链安全
171340 13
|
19天前
|
供应链 监控 安全
对话|企业如何构建更完善的容器供应链安全防护体系
随着云计算和DevOps的兴起,容器技术和自动化在软件开发中扮演着愈发重要的角色,但也带来了新的安全挑战。阿里云针对这些挑战,组织了一场关于云上安全的深度访谈,邀请了内部专家穆寰、匡大虎和黄竹刚,深入探讨了容器安全与软件供应链安全的关系,分析了当前的安全隐患及应对策略,并介绍了阿里云提供的安全解决方案,包括容器镜像服务ACR、容器服务ACK、网格服务ASM等,旨在帮助企业构建涵盖整个软件开发生命周期的安全防护体系。通过加强基础设施安全性、技术创新以及倡导协同安全理念,阿里云致力于与客户共同建设更加安全可靠的软件供应链环境。
150296 32
|
27天前
|
弹性计算 人工智能 安全
对话 | ECS如何构筑企业上云的第一道安全防线
随着中小企业加速上云,数据泄露、网络攻击等安全威胁日益严重。阿里云推出深度访谈栏目,汇聚产品技术专家,探讨云上安全问题及应对策略。首期节目聚焦ECS安全性,提出三道防线:数据安全、网络安全和身份认证与权限管理,确保用户在云端的数据主权和业务稳定。此外,阿里云还推出了“ECS 99套餐”,以高性价比提供全面的安全保障,帮助中小企业安全上云。
201965 15
对话 | ECS如何构筑企业上云的第一道安全防线
|
5天前
|
机器学习/深度学习 自然语言处理 PyTorch
深入剖析Transformer架构中的多头注意力机制
多头注意力机制(Multi-Head Attention)是Transformer模型中的核心组件,通过并行运行多个独立的注意力机制,捕捉输入序列中不同子空间的语义关联。每个“头”独立处理Query、Key和Value矩阵,经过缩放点积注意力运算后,所有头的输出被拼接并通过线性层融合,最终生成更全面的表示。多头注意力不仅增强了模型对复杂依赖关系的理解,还在自然语言处理任务如机器翻译和阅读理解中表现出色。通过多头自注意力机制,模型在同一序列内部进行多角度的注意力计算,进一步提升了表达能力和泛化性能。
|
9天前
|
存储 人工智能 安全
对话|无影如何助力企业构建办公安全防护体系
阿里云无影助力企业构建办公安全防护体系
1256 11
|
11天前
|
机器学习/深度学习 自然语言处理 搜索推荐
自注意力机制全解析:从原理到计算细节,一文尽览!
自注意力机制(Self-Attention)最早可追溯至20世纪70年代的神经网络研究,但直到2017年Google Brain团队提出Transformer架构后才广泛应用于深度学习。它通过计算序列内部元素间的相关性,捕捉复杂依赖关系,并支持并行化训练,显著提升了处理长文本和序列数据的能力。相比传统的RNN、LSTM和GRU,自注意力机制在自然语言处理(NLP)、计算机视觉、语音识别及推荐系统等领域展现出卓越性能。其核心步骤包括生成查询(Q)、键(K)和值(V)向量,计算缩放点积注意力得分,应用Softmax归一化,以及加权求和生成输出。自注意力机制提高了模型的表达能力,带来了更精准的服务。
|
10天前
|
人工智能 自然语言处理 程序员
通义灵码2.0全新升级,AI程序员全面开放使用
通义灵码2.0来了,成为全球首个同时上线JetBrains和VSCode的AI 程序员产品!立即下载更新最新插件使用。
1405 25
|
10天前
|
消息中间件 人工智能 运维
1月更文特别场——寻找用云高手,分享云&AI实践
我们寻找你,用云高手,欢迎分享你的真知灼见!
763 37
1月更文特别场——寻找用云高手,分享云&AI实践
|
1天前
|
存储 人工智能 分布式计算
湖仓实时化升级 :Uniflow 构建流批一体实时湖仓
本文整理自阿里云产品经理李昊哲在Flink Forward Asia 2024流批一体专场的分享,涵盖实时湖仓发展趋势、基于Flink搭建流批一体实时湖仓及Materialized Table优化三方面。首先探讨了实时湖仓的发展趋势和背景,特别是阿里云在该领域的领导地位。接着介绍了Uniflow解决方案,通过Flink CDC、Paimon存储等技术实现低成本、高性能的流批一体处理。最后,重点讲解了Materialized Table如何简化用户操作,提升数据查询和补数体验,助力企业高效应对不同业务需求。
302 17
湖仓实时化升级 :Uniflow 构建流批一体实时湖仓
|
15天前
|
人工智能 自然语言处理 API
阿里云百炼xWaytoAGI共学课DAY1 - 必须了解的企业级AI应用开发知识点
本课程旨在介绍阿里云百炼大模型平台的核心功能和应用场景,帮助开发者和技术小白快速上手,体验AI的强大能力,并探索企业级AI应用开发的可能性。