01.总览

这篇文章提出了一种新型的序列建模方法,名为Test-Time Training(TTT)层,旨在解决现有循环 神经网络(RNN)在处理长文本时表达能力受限的问题。作者指出,尽管自注意力机制在处理长文本方 面表现出色,但其计算复杂度呈二次方增长。相比之下,传统的RNN层虽然具有线性复杂度,但其隐藏 状态的表达能力在面对长文本时会受到限制。

文章的核心思想是将隐藏状态设计成一个机器学习模型本身,并将更新规则作为自监督学习步骤。这意味着即使是在测试序列上,隐藏状态也会通过训练进行更新,从而使得TTT层在测试时也能进行“学 习”。

作者提出了两种TTT层的实现:TTT-Linear和TTT-MLP,分别使用线性模型和两层多层感知器 (MLP)作为隐藏状态。在规模从125M到1.3B参数的评估中,TTT层与强大的Transformer模型和现代RNN Mamba进行了 比较。

结果显示,TTT-Linear和TTT-MLP在性能上与基线相当甚至更优。与Transformer类似,TTT层能 够通过考虑更多token来持续降低困惑度,而Mamba在处理超过16k上下文后就无法做到这一点。此 外,TTT-Linear在8k上下文时的速度已经超过了Transformer,并与Mamba在实际时间上相当。尽管 TTT-MLP在内存I/O方面面临挑战,但其在长文本上的潜力为未来的研究指明了有希望的发展方向。

文章还讨论了如何通过mini-batch TTT和对内部操作采用双重形式来提高TTT层在硬件效率上的表 现,使得TTT-Linear成为一个实用的大型语言模型(LLM)构建模块。作者总结了TTT层的贡献,并提出 了未来研究的新方向,包括改进自监督任务的设计、系统优化、处理更长上下文和更大模型的能力,以 及更大胆的f实现。

此外,文章还探讨了TTT与其他学习策略的关系,如局部学习、感应学习、快速权重等,并讨论了 TTT在机器学习中的独特地位。作者认为,TTT提供了一种新的视角来构建神经网络架构,并且由于人类 学习过程与TTT层的理念更为契合,因此TTT层在人工智能领域具有重要的研究价值。

02.研究背景

这篇文章的研究背景主要基于以下几个方面:

1. 长文本处理的挑战:在自然语言处理(NLP)领域,长文本处理一直是一个挑战。尽管 Transformer模型凭借自注意力机制在处理长文本方面表现出色,但其计算复杂度随着文本长 度的增加而呈二次方增长,这限制了其在资源受限的环境中的应用。

2. 现有RNN的局限性:传统的循环神经网络(RNN),如长短期记忆网络(LSTM),虽然在处 理序列数据方面具有一定的优势,但它们在长文本上的表达能力受限于隐藏状态的大小。这导 致RNN在处理长文本时难以有效利用额外的上下文信息。

3. 自监督学习的潜力:自监督学习是一种强大的机器学习范式,它通过学习数据的内在结构来减 少对大量标注数据的依赖。在NLP中,自监督学习已被证明能够提升模型对语义的理解,这对 于提升RNN的表达能力具有潜在的帮助。

4. 测试时训练(TTT)的概念:TTT是一种在测试阶段对模型进行进一步训练的方法,它允许模型 针对每个具体的测试实例进行个性化的调整。这种方法在计算机视觉和NLP中的某些应用已经 显示出提高模型泛化能力的效果。

5. 硬件效率和实时性的需求:随着AI应用的普及,对模型的硬件效率和实时性提出了更高的要 求。尤其是在需要快速响应的场景中,如在线客服、实时翻译等,模型需要在保持高效能的同 时,快速给出准确的预测。

6. 模型可扩展性的问题:随着模型规模的增长,如何保持模型的可扩展性成为一个重要问题。在 大规模参数的情况下,如何有效训练并部署模型,同时保持模型性能,是当前研究的一个热 点。

7. 理论和实践的结合:文章的研究背景还包括将理论和实践相结合,探索新的模型架构和优化策 略,以解决现有模型在长文本处理和大规模部署中的局限性。

8. 跨学科的研究趋势:AI领域的研究越来越倾向于跨学科合作,结合计算机科学、认知科学、心 理学等领域的知识,以更全面地理解智能行为,并开发出更加高效和智能的算法。

文章正是在这样的研究背景下,提出了TTT层这一创新的序列建模方法,旨在结合自监督学习和测试 时训练的优势,提升RNN在长文本处理中的性能,同时保持线性时间复杂度,以满足实时性和硬件效率 的需求。通过这种方式,文章为解决现有RNN的局限性提供了一种新的视角,并为未来在更大规模和更 长上下文中部署AI模型指明了方向。

03.方法

这篇文章的核心方法部分围绕提出一种新型的序列建模层——Test-Time Training(TTT)层。TTT 层的设计目标是在保持线性复杂度的同时,增强模型在长文本处理中的表达能力。以下是对文章方法部 分的详细描述:

TTT层的基本概念:

TTT层是一种序列建模层,其核心思想是将隐藏状态设计为一个机器学习模型,并将更新规则 定义为自监督学习的一步。这意味着在测试时,模型的隐藏状态会根据输入序列进行更新,类 似于训练过程中的参数更新。

上图展示了不同序列建模层的一般性表达方式,重点介绍了隐藏状态、更新规则和输出规则这 三个组成部分。在上图的顶部,一个通用的序列建模层被表达为根据更新规则转变的隐藏状态。所有序 列建模层都可以视为这个框架的不同实现,其中包括初始状态、更新规则和输出规则。

上图的底部列举了几个具体的序列建模层实例,包括朴素RNN、自注意力和朴素TTT层,并展 示了它们是如何实现上述三个组成部分的。例如,朴素RNN通过简单的向量操作压缩上下文到固定大小 的状态中,而自注意力则通过不断增长的键值对列表来显式存储所有历史上下文,从而实现更丰富的表 达能力,但随着上下文的增长,其计算成本也线性增长。

特别地,上图中提到的朴素TTT层展示了一个简单的实现,其中隐藏状态是模型的权重,更新规 则是梯度下降步骤,输出规则是模型的前向传播。这表明TTT层在测试时仍然训练不同的权重序列,用于 每个输入序列,这是其被称为"测试时训练"的原因。通过这种方式,TTT层试图结合RNN的线性复杂度和 自注意力的表达能力,以更有效地处理长文本序列。

隐藏状态和更新规则:

在TTT层中,隐藏状态是一个具有权重W的模型f。更新规则是梯度下降步骤,用于最小化自监 督损失函数ℓ。这个过程在测试序列上执行,相当于在测试时对模型进行训练。

在深度学习中,参数学习可以视为将大量训练集压缩到模型权重中的过程。特别是,通过自监督训 练的模型能够捕捉训练数据背后的结构和关系,这正是我们在隐藏状态压缩启发式中所需要的。

训练包含TTT层的网络:

学习TTT的自监督任务:

通过Mini-batch TTT实现并行化

04.实验

实验设置

实验使用了两种主要的数据集:Pile和Books3。Pile是一个用于训练开源大型语言模型 (LLMs) 的流 行文档数据集,而Books3是从Pile中提取的一个子集,用于评估更长上下文下的性能。

模型和基线

实验中使用了两种变体的TTT层:TTT-Linear和TTT-MLP,以及两种基线模型:Transformer和 Mamba,后者是一种现代的RNN。实验还考虑了不同模型大小,从125M到1.3B参数不等。

训练协议

实验遵循了Mamba论文中描述的Chinchilla配方,确保了与基线的公平比较。所有模型均使用相同 的训练批次大小,且训练和评估协议一致。

短上下文性能

在短上下文(2k和8k)的实验中,TTT层与Mamba和Transformer的性能相当。特别是在8k上下文 长度下,TTT层的性能明显优于Mamba。

长上下文性能

在长上下文(1k到32k)的实验中,TTT层显示出对长上下文的更好利用能力。随着上下文长度的增 加,TTT层相对于Mamba的优势变得更加明显。

硬件效率

实验还评估了TTT层在硬件效率方面的表现。通过使用mini-batch TTT和双重形式(dual form), TTT层在墙钟时间上已经比Transformer更快,并且在8k上下文下与Mamba相当。

Transformer微调

实验还包括了对Transformer进行微调的评估,这是实践中常用的方法。微调的Transformer在长上 下文中表现更好,这表明TTT层可能从类似的策略中受益

系统优化

文章还提出了系统优化的方法,包括为前向传播和生成操作编写GPU内核,以提高TTT层的执行速 度

结果分析

实验结果显示,TTT层在不同的上下文长度和模型大小下均能提供竞争力的性能。特别是,TTTLinear在硬件效率方面表现出色,而TTT-MLP在长上下文中显示出更大的潜力。

05.总结

这篇文章在多个方面提出了创新点,主要包括:

1. Test-Time Training (TTT) 层:提出了一种新型的序列建模层,该层在测试时对隐藏状态进行 更新,类似于训练过程中的参数更新,这是一种新颖的测试时学习方法。

2. 隐藏状态作为模型:TTT层的隐藏状态不仅是状态的载体,本身也是一个机器学习模型,这种 设计使得隐藏状态能够更加灵活和丰富地表示序列信息。

3. 线性复杂度与表达能力:TTT层在保持线性时间复杂度的同时,通过自监督学习增强了对长文 本的处理能力,这在传统的RNN中是难以实现的。

4. 自监督损失函数:设计了一种新颖的自监督损失函数来指导隐藏状态的更新,该损失函数基于 重构输入序列,并通过梯度下降进行优化。

5. TTT层的实例化:提出了两种TTT层的具体实现:TTT-Linear和TTT-MLP,分别使用线性模型和 两层多层感知器作为隐藏状态,这为不同的应用场景提供了灵活性。

6. 硬件效率的优化:通过mini-batch TTT和双重形式的创新,提高了TTT层在硬件上执行的效 率,特别是在GPU和TPU上的优化。

7. 理论与现有模型的联系:展示了TTT层与现有模型如线性注意力和自注意力的等价性,为理解 TTT层提供了理论基础。

8. 系统实现与训练稳定性:提供了TTT层在PyTorch框架下的实现细节,并讨论了如何通过系统优 化提高训练稳定性和效率。

这些创新点展示了TTT层作为一种新型序列建模工具的潜力,特别是在处理长文本和提高硬件效率方 面的应用前景。

如何学习大模型 AI ?

由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。

但是具体到个人,只能说是:

“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。

这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。

我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。

我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

在这里插入图片描述

第一阶段(10天):初阶应用

该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。

  • 大模型 AI 能干什么?
  • 大模型是怎样获得「智能」的?
  • 用好 AI 的核心心法
  • 大模型应用业务架构
  • 大模型应用技术架构
  • 代码示例:向 GPT-3.5 灌入新知识
  • 提示工程的意义和核心思想
  • Prompt 典型构成
  • 指令调优方法论
  • 思维链和思维树
  • Prompt 攻击和防范

第二阶段(30天):高阶应用

该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。

  • 为什么要做 RAG
  • 搭建一个简单的 ChatPDF
  • 检索的基础概念
  • 什么是向量表示(Embeddings)
  • 向量数据库与向量检索
  • 基于向量检索的 RAG
  • 搭建 RAG 系统的扩展知识
  • 混合检索与 RAG-Fusion 简介
  • 向量模型本地部署

第三阶段(30天):模型训练

恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。

到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?

  • 为什么要做 RAG
  • 什么是模型
  • 什么是模型训练
  • 求解器 & 损失函数简介
  • 小实验2:手写一个简单的神经网络并训练它
  • 什么是训练/预训练/微调/轻量化微调
  • Transformer结构简介
  • 轻量化微调
  • 实验数据集的构建

第四阶段(20天):商业闭环

对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。

  • 硬件选型
  • 带你了解全球大模型
  • 使用国产大模型服务
  • 搭建 OpenAI 代理
  • 热身:基于阿里云 PAI 部署 Stable Diffusion
  • 在本地计算机运行大模型
  • 大模型的私有化部署
  • 基于 vLLM 部署大模型
  • 案例:如何优雅地在阿里云私有部署开源大模型
  • 部署一套开源 LLM 项目
  • 内容安全
  • 互联网信息服务算法备案

学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。

如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。

这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

在这里插入图片描述

GitHub 加速计划 / ma / mamba
12.02 K
1.01 K
下载
最近提交(Master分支:3 个月前 )
62db608d 3 个月前
323db269 Co-authored-by: Tri Dao <tridao@users.noreply.github.com> 3 个月前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐