原作者带队,LSTM真杀回来了! lstm娣樻卑浜嗗悧 lstm鍥炲綊璋冨弬
admin
2024-05-09 22:18:15
0

机器之心报道

编辑:蛋酱

LSTM:这次重生,我要夺回 Transformer 拿走的一切。

20 世纪 90 年代,长短时记忆(LSTM)方法引入了恒定误差选择轮盘和门控的核心思想。三十多年来,LSTM 经受住了时间的考验,并为众多深度学习的成功案例做出了贡献。然而,以可并行自注意力为核心 Transformer 横空出世之后,LSTM 自身所存在的局限性使其风光不再。

当人们都以为 Transformer 在语言模型领域稳坐江山的时候,LSTM 又杀回来了 —— 这次,是以 xLSTM 的身份。

5 月 8 日,LSTM 提出者和奠基者 Sepp Hochreiter 在 arXiv 上传了 xLSTM 的预印本论文。



论文的所属机构中还出现了一家叫做「NXAI」的公司,Sepp Hochreiter 表示:「借助 xLSTM,我们缩小了与现有最先进 LLM 的差距。借助 NXAI,我们已开始构建自己的欧洲 LLM。」



论文标题:xLSTM: Extended Long Short-Term Memory论文链接:https://arxiv.org/pdf/2405.04517

具体来说,xLSTM 从三个层面解决了 LSTM 以往所存在的局限性:

(i) 无法修改存储决策。

可以通过「最近邻搜索」(Nearest Neighbor Search)问题来举例说明这一局限性:在给定参考向量的情况下,必须按顺序扫描序列,寻找最相似的向量,以便在序列末端提供其附加值。图 2 左侧显示了这项任务的均方误差。当发现更相似的向量时,LSTM 难以修改存储的值,而新的 xLSTM 通过指数门控弥补了这一限制。



(ii) 存储容量有限,即信息必须压缩成标量单元状态。

图 2 右侧给出了 Wikitext103 上不同 token 频率的 token 预测困惑度。由于 LSTM 的存储容量有限,它在不常见 token 上的表现较差。xLSTM 通过矩阵内存解决了这一问题。

(iii) 由于内存混合而缺乏可并行性,需要进行顺序处理。例如,从一个时间步到下一个时间步的隐藏状态之间的隐藏 - 隐藏连接。

与此同时,Sepp Hochreiter 和团队在这篇新论文中回答了一个关键问题:如果克服这些局限性并将 LSTM 扩展到当前大语言模型的规模时,能实现怎样的性能?

将 LSTM 扩展到数十亿参数

为了克服 LSTM 的局限性,xLSTM 对等式(1)中的 LSTM 理念进行了两项主要修改。



在原来的 LSTM 中,恒定误差选择轮盘是由单元输入 z_t 对单元状态 c_(t-1)(绿色)进行的加法更新,并由 sigmoid 门(蓝色)进行调节。输入门 i_t 和遗忘门 f_t 控制这一更新,而输出门 o_t 控制存储单元的输出,即隐藏状态 h_t。存储单元的状态被 ψ 归一化或压缩,然后输出门控得到隐藏状态。

xLSTM 的修改包括指数门控和新颖的内存结构,因此丰富了 LSTM 家族的两个成员:

(i) sLSTM(第 2.2 节),具有标量内存、标量更新和内存混合功能;

(ii) mLSTM(第 2.3 节),具有矩阵内存和协方差(外积)更新规则,完全可并行处理。

sLSTM 和 mLSTM 都通过指数门控增强了 LSTM。为了实现并行化,mLSTM 放弃了内存混合,即隐藏 - 隐藏递归连接。mLSTM 和 sLSTM 都可以扩展到多个存储单元,其中 sLSTM 具有跨单元内存混合的特点。此外,sLSTM 可以有多个头,但不存在跨头的内存混合,而只存在每个头内单元间的内存混合。通过引入 sLSTM 头和指数门控,研究者建立了一种新的内存混合方式。对于 mLSTM 而言,多头和多单元是等价的。

将这些新的 LSTM 变体集成到残差块模块中,就得到了 xLSTM 块。将这些 xLSTM 块剩余堆叠到架构中,就形成了 xLSTM 架构。xLSTM 架构及其组件见图 1。



xLSTM 块应在高维空间中对过去进行非线性总结,以便更好地分离不同的历史或上下文。分离历史是正确预测下一个序列元素(如下一个 token)的先决条件。研究者在此采用了 Cover 定理,该定理指出,在高维空间中,非线性嵌入模式比在原始空间中更有可能被线性分离。

他们考虑了两种残差块结构:(i) post up-projection 的残差块(如 Transformer),它非线性地概括了原始空间中的历史,然后线性地映射到高维空间,应用非线性激活函数,再线性地映射回原始空间(图 3 左侧和图 1 第三栏,更详细的版本见图 9)。(ii) pre up-projection 的残差块(如状态空间模型),它线性地映射到高维空间,在高维空间中非线性地总结历史,然后线性地映射回原始空间。对于包含 sLSTM 的 xLSTM 块,研究者主要使用了 post up-projection 块。对于包含 mLSTM 的 xLSTM 块,使用 pre up-projection 块,因为在高维空间中内存容量会变大。





实验

随后,研究者对 xLSTM 进行了实验评估,并将其与现有的语言建模方法进行了比较。

第 4.1 节讨论了 xLSTM 在合成任务中的具体能力。首先,研究者测试了 xLSTM 的新指数门控与内存混合在形式化语言上的有效性。然后,他们评估了 xLSTM 的新矩阵内存在多次查询联想记忆任务(Multi-Query Associative Recall,MQAR)中的有效性。最后,研究者评估了 xLSTM 在 Long Range Arena(LRA)中处理长序列的性能。





第 4.2 节比较了当前各种语言建模方法的验证集复杂度,包括在同一数据集上对 xLSTM 进行消融研究,然后对不同方法的缩放行为进行评估。

研究者在自回归语言建模设置中使用 SlimPajama 的 15B token 训练了 xLSTM、Transformers、状态空间模型(SSM)等模型。表 1 中的结果显示,xLSTM 在验证复杂度方面优于所有现有方法。



图 6 显示了该实验的扩展结果,表明 xLSTM 对于更大规模的模型也有良好的表现。



消融研究则表明,性能改进源于指数门控和矩阵内存。



第 4.3 节进行了更深入的语言建模实验。

研究者增加了训练数据量,对来自 SlimPajama 的 300B 个 token 进行了训练,并比较了 xLSTM、RWKV-4、Llama 和 Mamba。他们训练了不同大小的模型(125M、350M、760M 和 1.3B),进行了深入的评估。首先,评估这些方法在推断较长语境时的表现;其次,通过验证易混度和下游任务的表现来测试这些方法;此外,在 PALOMA 语言基准数据集的 571 个文本域上评估了这些方法;最后,评估了不同方法的扩展行为,但使用的训练数据多了 20 倍。

可以看出,xLSTM 在性能和扩展性上都更胜一筹。



更多研究细节,可参考原论文。

相关内容

热门资讯

linux入门---制作进度条 了解缓冲区 我们首先来看看下面的操作: 我们首先创建了一个文件并在这个文件里面添加了...
C++ 机房预约系统(六):学... 8、 学生模块 8.1 学生子菜单、登录和注销 实现步骤: 在Student.cpp的...
A.机器学习入门算法(三):基... 机器学习算法(三):K近邻(k-nearest neigh...
数字温湿度传感器DHT11模块... 模块实例https://blog.csdn.net/qq_38393591/article/deta...
有限元三角形单元的等效节点力 文章目录前言一、重新复习一下有限元三角形单元的理论1、三角形单元的形函数(Nÿ...
Redis 所有支持的数据结构... Redis 是一种开源的基于键值对存储的 NoSQL 数据库,支持多种数据结构。以下是...
win下pytorch安装—c... 安装目录一、cuda安装1.1、cuda版本选择1.2、下载安装二、cudnn安装三、pytorch...
MySQL基础-多表查询 文章目录MySQL基础-多表查询一、案例及引入1、基础概念2、笛卡尔积的理解二、多表查询的分类1、等...
keil调试专题篇 调试的前提是需要连接调试器比如STLINK。 然后点击菜单或者快捷图标均可进入调试模式。 如果前面...
MATLAB | 全网最详细网... 一篇超超超长,超超超全面网络图绘制教程,本篇基本能讲清楚所有绘制要点&#...
IHome主页 - 让你的浏览... 随着互联网的发展,人们越来越离不开浏览器了。每天上班、学习、娱乐,浏览器...
TCP 协议 一、TCP 协议概念 TCP即传输控制协议(Transmission Control ...
营业执照的经营范围有哪些 营业执照的经营范围有哪些 经营范围是指企业可以从事的生产经营与服务项目,是进行公司注册...
C++ 可变体(variant... 一、可变体(variant) 基础用法 Union的问题: 无法知道当前使用的类型是什...
血压计语音芯片,电子医疗设备声... 语音电子血压计是带有语音提示功能的电子血压计,测量前至测量结果全程语音播报࿰...
MySQL OCP888题解0... 文章目录1、原题1.1、英文原题1.2、答案2、题目解析2.1、题干解析2.2、选项解析3、知识点3...
【2023-Pytorch-检... (肆十二想说的一些话)Yolo这个系列我们已经更新了大概一年的时间,现在基本的流程也走走通了,包含数...
实战项目:保险行业用户分类 这里写目录标题1、项目介绍1.1 行业背景1.2 数据介绍2、代码实现导入数据探索数据处理列标签名异...
记录--我在前端干工地(thr... 这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 前段时间接触了Th...
43 openEuler搭建A... 文章目录43 openEuler搭建Apache服务器-配置文件说明和管理模块43.1 配置文件说明...