TTT架构超越Transformer,ML模型替代RNN隐藏状态!

目录

01 算法原理

02 骨干架构

03 实验结果


一种崭新的大语言模型(LLM)架构有望取代当前主导 AI 领域的 Transformer,并在性能上超越 Mamba。

论文地址:https://arxiv.org/abs/2407.04620

本周一,关于 Test-Time Training(TTT)的研究论文在人工智能社区引发了广泛讨论。

该研究由斯坦福大学、加州大学伯克利分校、加州大学圣迭戈分校和 Meta 的研究人员共同完成。他们设计了一个新架构 TTT,利用机器学习模型取代了 RNN 的隐藏状态。

通过输入 token 的梯度下降,该模型能够压缩上下文。

  

研究作者之一 Karan Dalal 表示,他相信这将彻底改变语言模型的方法。



没体验过OpenAI最新版GPT-4o?快戳最详细升级教程,几分钟搞定:
升级ChatGPT-4o Turbo步骤icon-default.png?t=N7T8https://www.zhihu.com/pin/1768399982598909952如何使用WildCard正确方式打开GPT-4o,目前 WildCard 支持的服务非常齐全,可以说是应有尽有!

官网有更详细介绍:WildCard

TTT 层直接取代了 Attention,并通过表达性记忆实现了线性复杂性架构,使模型能够在上下文中训练数百万甚至数十亿个 token 的 LLM。

在对比 125M 到 1.3B 参数规模的大模型时,研究发现 TTT-Linear 和 TTT-MLP 均能匹敌或超越最强大的 Transformers 和 Mamba 架构方法。

TTT 层作为一种新的信息压缩和模型记忆机制,可以直接替代 Transformer 中的自注意力层。

这不仅在理论上具有线性复杂度,而且在实际运行时间上也更快

  • 在论文上线后,作者公开了代码与 jax 以供人们训练和测试:https://github.com/test-time-training/ttt-lm-jax

  • 还有 PyTorch 推理代码:https://github.com/test-time-training/ttt-lm-pytorch

01 算法原理

长上下文的挑战是 RNN 层本质上所固有的:与自注意力机制不同,RNN 层必须将上下文压缩为固定大小的隐藏状态,更新规则需要识别数千甚至数百万个 token 之间的底层结构和关系。

研究团队首先观察到,自监督学习可以将大量训练集压缩为 LLM 等模型的权重,而这些模型通常对其训练数据之间的语义联系有深刻理解。

受此启发,团队设计了一类新的序列建模层,其中隐藏状态是一个模型,更新规则是自监督学习的一个步骤。

由于更新测试序列上的隐藏状态过程相当于在测试时训练模型,因此这种新层被称为测试时训练(Test-Time Training, TTT)层。

团队引入了两个简单的实例:TTT-Linear 和 TTT-MLP,其中隐藏状态分别是线性模型和两层 MLP。TTT 层可以集成到任何网络架构中并进行端到端优化,类似于 RNN 层和自注意力。

为了让 TTT 层更加高效,该研究采取了一些改进措施:

首先,类似于在常规训练期间对小批量序列采取 gradient step 以获得更好的并行性,该研究在 TTT 期间使用小批量 token。

其次,该研究为每个 TTT 小批量内的操作开发了一种双重形式,以更好地利用现代 GPU 和 TPU。双重形式的输出与简单实现等效,但训练速度快了 5 倍以上。

如图 3 所示,TTT-Linear 在 8k 上下文中比 Transformer 更快,与 Mamba 相当。

研究团队认为:所有序列建模层都可以看作将历史上下文存储到隐藏状态中,如图 4 所示。

例如,RNN 层(如 LSTM、RWKV 和 Mamba 层)将上下文压缩为跨时间的固定大小状态。这种压缩会产生两种后果:

一方面,将输入标记 x_t 映射到输出 token z_t 是高效的,因为每个 token 的更新规则和输出规则都需要恒定的时间。
 

另一方面,RNN 层在长上下文中的性能受限于其隐藏状态 s_t 的表现力。

自注意力也可以从上述角度来看待,只不过它的隐藏状态(通常称为 Key-Value 缓存)是一个随 t 线性增长的列表。

它的更新规则是将当前的 KV 元组追加到该列表中,而输出规则则扫描 t 前的所有元组,以形成注意力矩阵。

隐藏状态明确存储了所有历史上下文,无需压缩,这使得自注意力在长上下文方面比 RNN 层更具表现力。

然而,扫描这个线性增长的隐藏状态所需的时间也是线性增长的。为了保持长上下文的高效和表现力,研究者需要一种更好的压缩启发式。

具体来说,需要将成千上万或上百万的 token 压缩到一个隐藏状态中,从而有效捕捉它们的底层结构和关系。这听起来似乎有些高难度,但实际上很多人都对这种启发式非常熟悉。

02 骨干架构

将任何 RNN 层集成到更大架构中的最简洁方法是直接替换 Transformer 中的自注意力,在这里称为骨干。

然而,现有的 RNN(如 Mamba 和 Griffin 等)都使用了与 Transformer 不同的骨干层。最值得注意的是,它们的骨干层在 RNN 层之前包含了时间卷积,这可能有助于收集跨时间的局部信息。

在对 Mamba 主干网进行试验后,研究者发现它也能改善 TTT 层的困惑度,因此将其纳入了建议方法中,详见图 16。

03 实验结果

在实验中,研究人员将 TTT-Linear 和 TTT-MLP 与两种基线模型——Transformer 和 Mamba 进行了比较。

从图 11 中可以得出以下结论:

  • 2k 上下文:TTT-Linear (M)、Mamba 和 Transformer 的性能相当,因为它们的曲线大多重叠。在 FLOP 预算较大的情况下,TTT-MLP (M) 的性能略显不足。尽管 TTT-MLP 在各种模型大小下的困惑度比 TTT-Linear 更优,但额外的 FLOPs 成本抵消了这一优势。
     
  • 8k 上下文:TTT-Linear (M) 和 TTT-MLP (M) 的表现显著优于 Mamba,这与 2k 上下文中的观察结果形成鲜明对比。即使是使用 Transformer 主干网络的 TTT-MLP (T) 在 1.3B 参数规模时也略胜 Mamba。一项显著发现是,随着上下文长度的增加,TTT 层相对于 Mamba 层的优势也在扩大。
     
  • 当上下文长度达到 8k 时,Transformer 在每种模型尺寸下的困惑度表现依旧良好,但由于 FLOPs 成本的增加,其竞争力已明显下降。


如何使用WildCard正确方式打开GPT-4o,目前 WildCard 支持的服务非常齐全,可以说是应有尽有!

官网有更详细介绍:​​​​​WildCard

推荐阅读:

GPT-4o不仅能写代码,还能自查Bug,程序员替代进程再进一步!

GPT-4替代大学生参加考试,94%成功作弊未被发现!

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

修复 Ubuntu 24.04 Dock 丢失应用程序图标

找出应用程序窗口的类名 首先,您需要启动应用程序窗口。然后,按 Alt F2 启动“运行 Command”对话框。当对话框打开时,输入 lg 并按 Enter 键。 在该窗口中,单击Windows按钮,然后找出目标应用程序窗口的类名称。 在/…

Flutter——最详细(Table)网格、表格组件使用教程

背景 用于展示表格组件,可指定线宽、列宽、文字方向等属性 属性作用columnWidths列的宽度defaultVerticalAlignment网格内部组件摆放方向border网格样式修改children表格里面的组件textDirection文本排序方向 import package:flutter/material.dart;class CustomTa…

公众号运营秘籍:8 大策略让你的粉丝翻倍!

在当今信息爆炸的时代,微信公众号的运营者们面临着前所未有的挑战:如何在这个充满竞争的红海中脱颖而出,吸引并留住粉丝?事实上,微信公众号的红利期并未完全过去,关键在于我们如何策略性地运营,…

使用PEFT库进行ChatGLM3-6B模型的QLORA高效微调

PEFT库进行ChatGLM3-6B模型QLORA高效微调 QLORA微调ChatGLM3-6B模型安装相关库使用ChatGLM3-6B模型GPU显存占用准备数据集加载数据集数据处理数据集处理加载量化模型-4bit预处理量化模型配置LoRA适配器训练超参数配置开始训练保存LoRA模型模型推理合并模型使用微调后的模型 QLO…

【Pytorch实用教程】transformer中创建嵌入层的模块nn.Embedding的用法

文章目录 1. nn.Embedding的简单介绍1.1 基本用法1.2 示例代码1.3 注意事项2. 通俗的理解num_embeddings和embedding_dim2.1 num_embeddings2.2 embedding_dim2.3 使用场景举例结合示例1. nn.Embedding的简单介绍 nn.Embedding 是 PyTorch 中的一个模块,用于创建一个嵌入层。…

准大一新生开学千万要带证件照用途大揭秘

1、提前关注好都有哪些考场,以及这些考场大致在网页的哪个位置。比如我选对外经贸大学,我就直接找到第二个点进去。 2、电脑上同时开了谷歌浏览器和IE浏览器,以及手机也登陆了。亲测下来,同一时间刷新,谷歌浏览器能显示…

​cesium、three.js,三维GIS为啥那么热?到底怎么学呢?

​cesium、three.js,三维GIS为啥那么热?他们的应用场景都是什么呢?接下来我们可以一起来看看~ 三维GIS的应用 GIS和3D的应用是趋势,目前已经有很多应用案例,例如BIM,智慧城市,数字孪生等。如下…

汇聚荣拼多多电商实力强吗?

汇聚荣拼多多电商实力强吗?汇聚荣拼多多,作为中国电商领域的后起之秀,已经在市场上占据了一席之地。那么,它的实力究竟如何呢?在回答这个问题之前,我们需要先了解一下拼多多的基本情况。拼多多是一家以社交电商为主要模式的购物…

3个方法教你如果快速绕过Excel工作表保护密码

在日常生活中,我们可能会遇到一些特殊情况,比如不小心忘记了Excel文件中设置的打开密码。别担心!这里为您带来一份详细的Excel文件密码移除教程,助您轻松绕过Excel工作表保护。 方法一:使用备份文件 如果您有文件的备…

深入理解 go map

什么是 map 维基百科里这样定义 map: In computer science, an associative array, map, symbol table, or dictionary is an abstract data type composed of a collection of (key, value) pairs, such that each possible key appears at most once in the collection. 简单…

[nicetomeetyou@onionmail.org].Faust勒索病毒科普知识全解析

引言 随着网络技术的飞速发展,勒索病毒已成为威胁全球网络安全的一大隐患。[nicetomeetyouonionmail.org].Faust作为一种新型勒索病毒,通过其复杂的加密技术和隐蔽的传播手段,给个人、企业及政府机构带来了巨大的损失。本文将从多个维度全面解…

C++的入门——(命名空间, 输入输出 ,缺省参数 ,函数重载 ,引用, 内联函数 ,nullptr)

文章目录 引言c兼容C语⾔c的重要性C在⼯作领域中的应⽤ 一、命名空间namespace的价值namespace的定义命名空间使⽤ 二、 C输⼊&输出三、缺省参数四、函数重载1、参数类型不同2、参数个数不同3、参数类型顺序不同 五、引⽤1、引⽤的概念和定义2、引⽤的特性3、引⽤的使⽤4、…

SCSA第四天

ASPF FTP --- 文件传输协议 Tftp --- 简单文件传输协议 FTP协议相较于Tftp协议 ---- 1,需要进行认证 2,拥有一套完整的命令集 用户认证 防火墙管理员认证 ---- 校验登录者身份合法性 用户认证 --- 上网行为管理中的一环 上网用户认证 --- 三层认证…

Java SQL 连接(初级)

实训Day3 记实 实训第三天,今天是头脑风暴的第二天,课程将SQL与Java(idea)代码结合,这是一项具有挑战性的代码课程。课程将两个应用结合起来,展现了Java代码的跨平台性,展现了Java语言的封装性…

Cesium中实现全球体积云效果的一种方案

原生 Cesium 提供了一种积云的效果,云的物理特征和渲染性能都还不错,这种方案适合表达小范围相对离散的云朵,但是用来实现全球范围下相对连续、柔和渐变的云层比较困难。本文在体渲染的基础上,参考了开源社区中 shadertoy 和 thre…

c#调用c++ dll库报错System.BadImageFormatException

System.BadImageFormatException:“试图加载格式不正确的程序。 (异常来自 HRESULT:0x8007000B)” 1. dll需要选择release模式进行编译 2.选择相同位数,比如x64平台,c#也需要x64 3.不要设置c#不支持的函数供调用 比如: c可以输出到控制台…

Meta发布Llama 2驱动的AI代码生成器:Code Llama,开源来袭!

Meta 刚刚了号称是编程领域 “最先进的大语言模型”—— Code Llama ,可根据 代码和自然语言提示 生成代码和有关代码的自然语言,支持多种主流编程语言, 包括 Python、C、Java、PHP、Typescript (Javascript)、C# 和 Bash 。 Code Llama 完全…

拆分盘究竟是什么?一篇文章带你了解!

拆分盘是一种特殊的理财产品或投资模式,它通常被描述为“只涨不跌”的投资方式,多指股票,但实质上与传统股市中的股票有本质区别。以下是对拆分盘的详细解析: 一、拆分盘的定义 拆分盘可以理解为一种只涨不跌的理财股票。其特点在…

OpenGL3.3_C++_Windows(29)

Demo exposure 0.1f exposure 5.0f HDR色调映射 问题:有多个亮光源使这些数值总和超过了1.0,颜色值会被约束在1.0,从而导致场景混成一片,难以分辨:色调映射:用更大范围的颜色值渲染从而获取大范围的黑暗…

怎么将3张照片合并成一张?这几种拼接方法很实用!

怎么将3张照片合并成一张?在我们丰富多彩的日常生活里,是否总爱捕捉那些稍纵即逝的美好瞬间,将它们定格为一张张珍贵的图片?然而,随着时间的推移,这些满载回忆的宝藏却可能逐渐演变成一项管理挑战&#xff…