Titans: 学习在测试时记忆 - 论文解读与总结

论文地址:https://arxiv.org/pdf/2501.00663v1

本文介绍了一篇由 Google Research 发表的关于新型神经网络架构 Titans 的论文,该架构旨在解决传统 Transformer 在处理长序列时的局限性。以下是对论文的详细解读,并结合原文图片进行说明:

1. 背景与动机

1.1 Transformer 的局限性
  • 计算复杂度高: Transformer 的注意力机制基于 softmax 计算,其时间复杂度和空间复杂度与序列长度呈二次方关系,导致在处理长序列时计算成本高昂。
    • 原文: “尽管 Transformer 在序列建模中表现出色,但其主要构建模块——注意力模块——作为联想记忆块运作,计算成对查询(搜索信号)和键(上下文)之间的相似度。这种对依赖关系的准确建模带来了二次方的时间和内存复杂度,限制了模型只能处理固定长度的上下文。”
  • 上下文窗口有限: 由于上述计算瓶颈,Transformer 难以处理需要长距离依赖关系的复杂任务,例如语言建模、视频理解和长时序预测。
1.2 线性 Transformer 的不足
  • 性能下降: 为了解决计算复杂度问题,研究人员提出了线性 Transformer,用核函数替代 softmax,显著降低了内存消耗,但性能不如标准 Transformer。
    • 原文: “尽管线性 Transformer 提高了效率并能够扩展到更长的上下文,但与 Transformer 相比,其性能并不具有竞争力,因为核技巧使模型成为线性循环网络,数据被压缩为矩阵值状态。”
  • 信息压缩问题: 线性 Transformer 将历史数据压缩到固定大小的矩阵中,难以有效处理长距离依赖关系。
1.3 人类记忆的启发
  • 多层次记忆系统: 人类记忆系统由多个功能不同的子系统组成,例如短期记忆、工作记忆和长期记忆。
    • 原文: “事实上,记忆是一个系统的联合体——例如,短期、短期和长期记忆——每个系统都有不同的功能,不同的神经结构,并且每个系统都能够独立运作。”
  • 记忆与学习的关系: 记忆是学习的基础,良好的记忆系统对于有效学习至关重要。

2. Titans 的核心思想

基于以上背景,Titans 提出了一种新的神经网络架构,旨在结合短期记忆和长期记忆的优势,以更有效地处理长序列数据。

2.1 神经长时记忆模块
  • 设计理念:
    • 模拟人类长期记忆系统,能够在测试时学习如何记忆/存储数据。
    • 引入“惊喜”度量指标,衡量输入数据与历史数据的差异性,惊喜值越大的数据越容易被记忆。
      • 原文: “我们设计这个记忆模块,以便违反期望的事件(令人惊讶的)更令人难忘。为此,我们使用神经网络相对于输入的梯度作为联想记忆损失中的惊喜度量。”
    • 采用衰减机制,根据记忆容量和数据惊喜量来管理记忆,避免内存溢出。
      • 原文: “为了更好地处理有限的内存,我们提出了一个衰减机制,它考虑了内存大小和数据惊喜量的比例,从而实现更好的内存管理。”
    • 训练过程:
      • 将训练视为在线学习问题,将过去的信息压缩到长时记忆模块的参数中。
      • 使用带有动量和权重衰减的梯度下降法进行优化。
      • 通过张量化 mini-batch 梯度下降,并使用更多矩阵乘法操作,实现了快速并行化训练。
        • 原文: “我们展示了这种衰减机制实际上是现代循环模型中遗忘机制的泛化。我们发现该机制等同于使用小批量梯度下降、动量和权重衰减优化元神经网络。在此基础上,我们提出了一个快速且可并行化的算法来训练我们的深度神经长时记忆。”
2.2 Titans 架构

Titans 架构由三个主要模块组成:

(1) 核心模块 (Core):
- 负责处理数据的主要流程,使用有限窗口大小的注意力机制。
- 相当于短期记忆模块,关注当前上下文窗口。

(2) 长时记忆模块 (Long-term Memory):
- 我们的神经长时记忆模块,负责存储/记住长距离的历史信息。

(3) 持久记忆模块 (Persistent Memory):
- 一组可学习的、但与数据无关的参数,用于编码有关任务的元知识。
- 相当于任务相关的记忆,存储任务相关的知识。


图 1: 神经记忆的训练过程可以并行化,并使用矩阵乘法操作。

3. 如何将记忆融入架构?

Titans 提出了三种不同的变体来将记忆模块融入到深度学习架构中:

3.1 记忆作为上下文 (Memory as a Context, MAC)
  • 架构设计:

    • 将长序列分割成固定大小的片段,将当前片段作为当前上下文,其前一个片段作为历史信息。
    • 使用当前上下文作为查询,从长时记忆模块中检索相应的信息。
    • 将检索到的历史信息与持久记忆参数一起作为输入序列输入到注意力模块中。
      • 原文: “接下来,我们使用这个历史信息以及我们的持久记忆参数作为注意力模块的输入序列。”
    • 注意力模块决定哪些信息应该存储在长时记忆中。
    • 架构图示:
      • 图 2: 记忆作为上下文 (MAC) 架构。该架构包括三个分支:(1) 核心,(2) 上下文(长时)记忆,和 (3) 持久记忆。核心分支将相应的长时和持久记忆与输入序列连接起来。接下来,注意力在序列上执行,并决定哪些信息应该存储在长时记忆中。在测试时,对应于上下文记忆的参数仍在学习,对应于核心分支的参数负责上下文内学习,而持久记忆的参数负责存储有关任务的知识,因此是固定的。
  • 优点:

    • 注意力模块能够决定是否需要长时记忆信息。
    • 注意力模块帮助长时记忆只存储当前上下文中有用的信息,避免内存溢出。
    • 持久记忆参数固定,注意力模块权重进行上下文内学习,长时记忆模块在测试时仍在学习。
3.2 门控记忆 (Gated Memory, MAG)
  • 架构设计:

    • 一个分支直接使用输入数据更新长时记忆,另一个分支使用滑动窗口注意力 (SWA)。
      • 原文: “在下一个变体中,在一个分支中,我们直接使用输入数据来更新长时记忆,在第二个分支中,我们使用滑动窗口注意力 (SWA)。”
    • 使用门控机制将记忆与核心分支结合起来。
    • 架构图示:
      • 图 3: 不同变体的 Titans 的注意力掩码。
      • (b) 记忆作为门控 (MAG)。我们使用滑动窗口注意力 (SWA) 作为短期记忆,我们的神经记忆模块作为长期记忆,通过门控机制进行组合。
  • 特点:

    • SWA 作为精确的短期记忆,神经记忆模块作为模型的渐逝记忆。
    • 可以看作是多头架构,其中头的结构不同。
3.3 记忆作为层 (Memory as a Layer, MAL)
  • 架构设计:

    • 将神经记忆作为深度神经网络的一层。
      • 原文: “最后一个变体将神经记忆作为深度神经网络的一层 (MAL)。”
    • 类似于混合模型,将循环模型与全连接或滑动窗口注意力堆叠在一起。
    • 架构图示:
      • 图 4: 记忆作为层 (MAL) 架构。在该架构中,记忆层负责在注意力模块之前压缩过去和当前上下文。
  • 缺点:

    • 模型的性能受限于每一层的性能,无法充分利用注意力与神经记忆模块的互补数据处理能力。

4. 实验结果

4.1 语言建模与常识推理
  • Titans 在语言建模和常识推理任务中表现优于所有基线模型,包括 Transformer 和现代线性循环模型。
  • 混合模型 (MAC、MAG、MAL) 性能优于 Samba (Mamba + 注意力) 和 Gated DeltaNet-H2 (Gated DeltaNet + 注意力)。
  • MAC 在处理数据中的长距离依赖关系时表现更好。
4.2 针刺任务 (Needle in a Haystack)
  • Titans 在针刺任务中表现出色,能够有效处理超长序列,检索信息的能力优于基线模型。
    • 原文: “我们认为,Titans 的这种优异性能归功于 Titans 与现有序列模型之间的三个关键区别:…”
  • 神经记忆模块能够更好地管理内存容量,并通过动量和遗忘机制 (权重衰减) 保持性能稳定。
4.3 BABILong 基准测试
  • 在 BABILong 基准测试中,Titans 再次展现出强大的长距离推理能力,在少样本和微调设置下均优于所有基线模型,包括 GPT-4。
4.4 时间序列预测
  • 神经记忆模块在时间序列预测任务中也表现出色,优于基于 Mamba、线性模型和 Transformer 的架构。
4.5 DNA 建模
  • 神经记忆模块在基因组学下游任务中与最先进架构相比具有竞争力。
4.6 效率
  • 神经记忆模块的训练吞吐量略低于 Mamba2 和 Gated DeltaNet,主要原因是其具有更深的记忆和更复杂的转换过程。
  • Titans (MAL) 的训练速度比基线模型和记忆模块更快,主要得益于 FlashAttention 的高度优化内核。
4.7 消融研究
  • 神经记忆模块的所有组件均对性能有积极贡献,其中权重衰减、动量、卷积和持久记忆贡献最大。

5. 结论

Titans 架构通过引入神经长时记忆模块,弥补了 Transformer 在处理长序列时的不足。其主要优势在于:

  • 更强的长距离依赖建模能力: 神经记忆模块能够有效存储长距离信息,并进行在线学习。
  • 更好的内存管理: 动量和遗忘机制确保了内存的有效利用。
  • 可扩展性: Titans 可以扩展到超过 2M 的上下文窗口大小,同时保持较高的准确性。

总的来说,Titans 为长序列建模提供了一种新的思路,在多个任务上展现出强大的性能。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/957763.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

账号IP属地:依据手机号还是网络环境?

在数字化生活中,账号的IP属地信息往往成为我们关注的一个焦点。无论是出于安全考虑,还是为了满足某些特定服务的需求,了解账号IP属地的确定方式都显得尤为重要。那么,账号IP属地根据手机号还是网络来确定的呢?本文将深…

微信小程序实现自定义日历功能

文章目录 1. 创建日历组件实现步骤:2. 代码实现过程3. 实现效果图4. 关于作者其它项目视频教程介绍 1. 创建日历组件实现步骤: 创建日历组件:首先,你需要创建一个日历组件,包含显示日期的逻辑。样式设计:为…

YOLOv9改进,YOLOv9检测头融合RFAConv卷积,适合目标检测、分割任务

摘要 空间注意力已广泛应用于提升卷积神经网络(CNN)的性能,但它存在一定的局限性。作者提出了一个新的视角,认为空间注意力机制本质上解决了卷积核参数共享的问题。然而,空间注意力生成的注意力图信息对于大尺寸卷积核来说是不足够的。因此,提出了一种新型的注意力机制—…

【机器学习】深入无监督学习分裂型层次聚类的原理、算法结构与数学基础全方位解读,深度揭示其如何在数据空间中构建层次化聚类结构

🌟个人主页:落叶 🌟当前专栏: 机器学习专栏 目录 引言 分裂型层次聚类(Divisive Hierarchical Clustering) 1. 基本原理 2. 分裂型层次聚类的算法步骤 Step 1: 初始化 Step 2: 选择分裂的簇 Step 3: 执行分裂操作…

VirtualBox can‘t enable the AMD-V extension

个人博客地址:VirtualBox cant enable the AMD-V extension | 一张假钞的真实世界 最近一次完成Deepin的系统更新后,进入VirtualBox创建的虚拟机(Widows10)时,出现以下错误: 根据网址“https://askubuntu.…

[JavaScript] 数组与对象详解

文章目录 数组(Array)什么是数组数组的常用操作**访问数组元素****修改数组元素****数组的长度****添加和删除元素** 常用数组方法map():filter():reduce():**其他实用方法** 对象(Object)什么是对象对象的基本操作**访问属性****…

“模板”格式化发布新创诗(为《诗意 2 0 2 5》贡献力量)

预置MarkDown&Html文本,脚本读取f-string模板完成录入嵌套。 (笔记模板由python脚本于2025-01-22 19:19:58创建,本篇笔记适合喜欢分享的达人的coder翻阅) 【学习的细节是欢悦的历程】 博客的核心价值:在于输出思考与经验,而不…

论文速读|Multi-Modal Disordered Representation Learning Network for TBPS.AAAI24

论文地址:Multi-Modal Disordered Representation Learning Network for Description-Based Person Search 代码地址:未开源(2025.01.22) bib引用: inproceedings{yang2024multi,title{Multi-Modal Disordered Repres…

计算机视觉算法实战——实体物体跟踪

✨个人主页欢迎您的访问 ✨期待您的三连 ✨ ✨个人主页欢迎您的访问 ✨期待您的三连 ✨ ✨个人主页欢迎您的访问 ✨期待您的三连✨ ​ ​​​​​​​ ​ 1. 领域介绍✨✨ 实体物体跟踪(Object Tracking)是计算机视觉领域中的一个重要研究方向&#x…

C++17 新特性深入解析:constexpr 扩展、if constexpr 和 constexpr lambda

C17 不仅增强了现有特性,还引入了一些全新的编程工具,极大地提升了代码的效率和表达力。在这篇文章中,我们将深入探讨 C17 中与 constexpr 相关的三个重要特性:constexpr 的扩展用法、if constexpr 和 constexpr lambda。这些特性…

IVR:交互式语音应答系统解析及其应用

引言 IVR(Interactive Voice Response),即交互式语音应答系统,是一种功能强大的电话自动服务系统。它通过语音识别和按键反馈,使用户与系统之间实现实时交互,为用户提供自助服务、咨询、报告、投诉等多种功…

Observability:最大化可观察性 AI 助手体验的 5 大提示(prompts)

作者:来自 Elastic Zoia_AUBRY 在过去三年担任客户工程师期间,我遇到了数百名客户,他们最常问的问题之一是:“我的数据在 Elastic 中;我该如何利用它获得最大优势?”。 如果这适用于你,那么本…

【Vim Masterclass 笔记25】S10L45:Vim 多窗口的常用操作方法及相关注意事项

文章目录 S10L45 Working with Multiple Windows1 水平分割窗口2 在水平分割的新窗口中显示其它文件内容3 垂直分割窗口4 窗口的关闭5 在同一窗口水平拆分出多个窗口6 关闭其余窗口7 让四个文件呈田字形排列8 光标在多窗口中的定位9 调节子窗口的尺寸大小10 变换子窗口的位置11…

STM32_SD卡的SDIO通信_基础读写

本篇将使用CubeMXKeil, 创建一个SD卡读写的工程。 目录 一、SD卡要点速读 二、SDIO要点速读 三、SD卡座接线原理图 四、CubeMX新建工程 五、CubeMX 生成 SD卡的SDIO通信部分 六、Keil 编辑工程代码 七、实验效果 一、SD卡 速读 SD卡,全称Secure Digital M…

大模型GUI系列论文阅读 DAY2续:《一个具备规划、长上下文理解和程序合成能力的真实世界Web代理》

摘要 预训练的大语言模型(LLMs)近年来在自主网页自动化方面实现了更好的泛化能力和样本效率。然而,在真实世界的网站上,其性能仍然受到以下问题的影响:(1) 开放领域的复杂性,(2) 有限的上下文长度&#xff…

【ESP32】ESP32连接JY61P并通过WIFI发送给电脑

前言 手头上有个ESP32&#xff0c;发现有wifi功能&#xff0c;希望连接JY61P并通过WIFI把姿态数据发送给电脑 1.采用Arduino IDE编译器&#xff1b;需要安装ESP32的开发板管理器&#xff1b; 2.电脑接受数据是基于python的&#xff1b; 1. ESP32 连接手机WIFI #include <…

C语言程序设计十大排序—冒泡排序

文章目录 1.概念✅2.冒泡排序&#x1f388;3.代码实现✅3.1 直接写✨3.2 函数✨ 4.总结✅ 1.概念✅ 排序是数据处理的基本操作之一&#xff0c;每次算法竞赛都很多题目用到排序。排序算法是计算机科学中基础且常用的算法&#xff0c;排序后的数据更易于处理和查找。在计算机发展…

【Elasticsearch】腾讯云安装Elasticsearch

Elasticsearch 认识Elasticsearch安装Elasticsearch安装Kibana安装IK分词器分词器的作用是什么&#xff1f;IK分词器有几种模式&#xff1f;IK分词器如何拓展词条&#xff1f;如何停用词条&#xff1f; 认识Elasticsearch Elasticsearch的官方网站如下 Elasticsearch官网 Ela…

Django学习笔记(安装和环境配置)-01

Django学习笔记(安装和环境配置)-01 一、创建python环境 1、可以通过安装Anaconda来创建一个python环境 # 创建一个虚拟python环境 conda create -n django python3.8 # 切换激活到创建的环境中 activate django2、安装django # 进入虚拟环境中安装django框架 pip install …

python创建一个httpServer网页上传文件到httpServer

一、代码 1.server.py import os from http.server import SimpleHTTPRequestHandler, HTTPServer import cgi # 自定义请求处理类 class MyRequestHandler(SimpleHTTPRequestHandler):# 处理GET请求def do_GET(self):if self.path /:# 响应200状态码self.send_response(2…