Post-transformer architectures address the quadratic scaling problem of traditional transformers, offering more efficient compute and memory usage. RWKV, for instance, combines the training efficiency of transformers with the inference efficiency of RNNs, making it accessible for low-compute environments like Raspberry Pis.
RWKV is an open-source, community-driven project that builds on RNNs and linear attention, focusing on efficiency and accessibility. State space models, on the other hand, leverage principles from signal processing and dynamical systems to improve sequence modeling quality and efficiency.
RWKV uses a combination of time mix and channel mix blocks. Time mix handles long-term memory states, while channel mix focuses on short-term attention, looking at adjacent tokens. This allows RWKV to process sequences efficiently without the quadratic scaling of traditional attention mechanisms.
QRWKV6 is a 32B model that converts a Qwen 32B model by replacing its QKV attention layers with RWKV linear attention layers. This conversion allows RWKV to leverage pre-trained transformer weights, achieving performance on par with the original model with just a few hours of training on two nodes.
Hardware and kernel support ensure that new architectures are not only theoretically efficient but also achieve practical wall-clock speed improvements. Without optimized kernels, even efficient models can be slower in practice, making them uncompetitive in real-world applications.
The 'Just Read Twice' approach involves repeating the input document multiple times before querying the model. This method leverages the efficiency of recurrent models, allowing them to better recall information from long documents by processing the same content multiple times, which improves recall-intensive tasks.
Long-context models can be applied to time series data, such as weather forecasting, where the model needs to process and predict based on an extended sequence of data without the need to recall specific past events. This makes them suitable for continuous monitoring tasks where future predictions are more critical than detailed historical recall.
Jamba is a hybrid model that combines Transformer and Mamba layers, using a mixture-of-experts (MoE) approach to increase capacity while maintaining efficiency. It achieves state-of-the-art performance on long-context tasks and can handle up to 256K tokens, making it one of the leading models in non-transformer architectures.
While long-context models are impressive, most enterprise workloads operate within shorter context lengths (e.g., 32k tokens). Efficient models like RWKV and Mamba can handle these tasks with less compute, making them more practical for most use cases. The need for truly long contexts (e.g., millions of tokens) is still limited to niche applications.
ThunderKittens is a CUDA library designed to simplify the development of efficient models by providing optimized matrix operations tailored to modern GPUs like the H100. It allows researchers to focus on model design rather than low-level CUDA optimizations, speeding up the development of new architectures.
我们回到了潜空间直播,这是我们在温哥华 NeurIPS 2024 上举办的第一次小型会议。我是 Charlie,你们的 AI 联合主持人。作为本周的特别节目,我们将按领域回顾 2024 年的最佳成果。我们向 900 多位告诉我们他们想要什么的观众发放了调查问卷,然后邀请了潜空间网络中最好的演讲者来涵盖每个领域。
你们中有 200 位在一天中亲自参加了会议,还有超过 2200 位在线观看直播。我们的下一个主题演讲涵盖了 Transformer 替代架构的现状,并与 Together AI 的 Dan Fu 和 Recursal AI 以及 Featherless AI 的 Eugene Chia 进行了特别的联合演讲。
我们之前在播客中介绍过 Together 和 Recursal,CEO Vipul Ved Prakash 和 CTO C.E. Jang 加入我们,讨论他们如何将 Together 打造成一个所谓的全栈式 AI 初创公司,从最低级的内核和系统编程到驱动新型模型架构和推理算法的最高级的数学抽象。
在今年的众多行业贡献中,包括 Red Pyjama V2、Flash Attention 3、Mamba 2、Mixture of Agents、Baste、Sequoia、Evo、Dragonfly、Danfoo 的 Thunder Kittens 以及许多其他研究项目。
至于 Recursal 和 Featherless,我们是去年第一个报道 RWKV 的播客,而今年该团队已将代号为 Eagle 的 RWKV V5 推送到了全球 15 亿台 Windows 10 和 Windows 11 机器上,以支持微软的设备端、节能型 Windows Copilot 用例,并推出了代号为 Finch 和 Goldfinch 的 RWKV V6 的首次更新。
在潜空间直播的上午,他们还宣布了 QRDADUKV6,这是一个用 RDWKV 线性注意力层修改的 QEN32B 模型。Eugene 还撰写了今年潜空间博客上最受欢迎的单篇客座文章。是的,我们确实会发表关于他在 Featherless AI 成功推出后发现的 H100 GPU 推理 neocloud 市场情况的客座文章。
与往常一样,请不要忘记查看节目说明,了解他们演讲的 YouTube 链接以及幻灯片。注意安全,保重。
是的,非常感谢你们的邀请。这将是一个由两部分组成的演讲。我叫 Dan,我在 Together AI 工作,大约一年后我将加入 UCSD 担任教职。Eugene,你想自我介绍一下吗?我是 Eugene,我领导 RFKB 团队,同时也是 Featherless 的 CEO 和联合创始人,我们都在研究这种新型的 Transformer 后架构空间。
是的,今天我们非常高兴能与大家讨论这个问题。首先,我将对过去几年非 Transformer 后架构的进展做一个广泛的概述。然后,Eugene 将向我们介绍该领域最新和最棒的最新前沿模型。
故事始于规模。这可能是您最近看到的图表或类似的东西。在过去的五六年里,我们看到模型在参数规模上得到了极大的扩展,这带来了许多新的功能,例如能够与您交谈并告诉您有时如何使用您的协作和 AWS 屏幕。
但另一个我们最近看到规模扩展的地方是上下文长度的扩展。这意味着为您的模型提供更多文本输入,但也可能意味着将大量视觉标记输入(图像输入)输入到您的模型中,或生成大量输出。
在过去的几个月里,真正令人兴奋的一件事是,我们看到规模扩展不仅发生在训练时间,也发生在测试时间。这是 OpenAI '01 版本的标志性图像。我们不仅开始扩展训练时间计算,还开始扩展测试时间计算。现在,如果您熟悉我们今天的注意力和 Transformer 架构,那么右边的图表可能会看起来有点吓人。
原因之一是其含义有点意思。如果我们想要继续拥有越来越智能的模型,这意味着什么呢?我们是否只需要开始建造更大、更大的数据中心,花费更多的浮点运算?这是小 Dolly 3,我们需要更多浮点运算,伙计们?这将成为所有 AI 的未来吗?或者是否有更好的方法,另一种前进的道路?也许我们可以获得我们已经习惯的功能,但计算量要少得多,浮点运算要少得多。
谢谢。
我们今天要讨论的一件事是专门关注这些模型中的核心注意力算子。原因是,这只是一些基本的缩放曲线,但注意力的计算量会随着上下文长度呈二次方增长。这意味着,如果您正在执行诸如测试时间计算之类的操作,并且想要花费大量标记来思考接下来要做什么,那么持续时间越长,您在该方面花费的标记越多,计算量就会呈二次方增长。
我们感兴趣的问题之一是,我们能否采用底部的基本序列模型、基本序列基元,并使其更好地扩展?我们能否以 n 的 3/2 次方或 n log n 的方式进行扩展?
因此,在演讲的第一部分,我们刚刚介绍了引言。在接下来的几张幻灯片中,我将讨论过去几年(也许是从 2020 年初到现在的)的一些关键进展和想法,这些进展和想法表明这实际上是可能的,即您实际上可以获得我们想要获得的相同质量,同时也能更好地扩展。
为此,我们,以及基本上,我们将要研究的故事是,我们将开始看到如何,这是一个关于过去几年困惑度进展的基本图表,其中那条蓝线,那条虚线蓝线是注意力。这是您的基本 Transformer,完全密集的注意力。然后,下降的点是您将在今天的演示文稿中看到的一些方法。
我们将把时间拨回到 2020 年。因此,关于我们能否使注意力低于二次方的这个问题,基本上,在我们说注意力就是一切之后,人们就开始问这个问题。所以我们有这个二次注意力算子,我们能做得更好吗?我将简要介绍为什么注意力是二次的,以及如果您不熟悉的话,会发生的基本情况是,您有这些输入,这些键和查询,
您在此注意力矩阵(此处的 S 矩阵)中所做的是,您正在将输入中的每个标记与其他每个标记进行比较。因此,当我尝试将整本书上传到 Gemini 时,会发生什么情况(或者也许不是 Gemini,因为我们不一定知道是什么架构),但假设我们将其上传到 Lama,幕后发生的情况是,它将获取书中的每个单词并将其与其他每个单词进行比较。
这确实带来了一些非常令人印象深刻的东西,但这是一种对您尝试解释某些事物的方式进行蛮力计算的方法。
注意力特别做的是,而不是总是以这种二次方式运行,它对该矩阵进行逐行 softmax 运算,然后将其乘以该值矩阵。因此,需要注意的关键点之一是,输出大小始终与输入相同,至少在标准自注意力中是这样。
因此,大约在 2020 年左右,人们尝试做的第一件事就是所谓的线性注意力,这只是注意到,如果我们从此处删除 softmax,如果我们从注意力运算的中间删除这种非线性,然后如果您首先计算键和值运算,那么您实际上永远不会遇到这种二次瓶颈。所以那
这可能是一种获得更高计算效率的方法。并且可以通过基本使用特征图或尝试逼近此整体注意力计算来做到这一点。但是,一些这项工作在 2020 年左右开始遇到瓶颈。基本挑战有两个。一个是质量。当时,使用这些线性注意力算子很难获得良好的质量。
另一个是硬件效率。因此,刚刚由 Simplify 显示的此特征图,如果您只是简单地实现它,实际上会非常耗费计算资源。因此,您开始拥有这些算子,您不仅不确定它们是否具有相同的质量,而且它们实际上只是时钟速度较慢。因此,您最终会得到两败俱伤的结果。
所以这就是当时的局面,这为四年前奠定了基础。请记住这一点,因为一旦我们有了更好的理解,线性注意力实际上将在几年后卷土重来。
但开始启动 Transformer 后架构这一小型革命的作品之一是状态空间模型这一概念。因此,这里开创性的工作是关于 2022 年 Worku 的一篇论文。这项工作真正将一些长期运行的研究工作线中的几个想法结合在一起。
第一个是,这确实是弥合质量差距的关键之一,只是使用了这样一些东西,如果您与一位
街头电气工程师交谈,他们可能会脱口而出。但是,利用我们如何对信号处理中的动态系统进行建模的一些特性,然后使用这些想法来对输入(例如 Transformer 式下一个标记预测架构中的文本标记)进行建模。
因此,一些早期基于状态的模型论文正在研究这种相对简单的循环更新模型,该模型可能来自信号处理课程的第一章,但随后使用了一些关于如何进行循环更新的原理理论,以便真正从您的隐藏状态、从您的序列中获得最大收益。
所以这是质量的一个关键想法。当这最终实现时,您开始看到许多基准测试在几年内都非常稳定,例如远程竞技场、一些长序列评估基准测试。时间序列分析中也有一些内容。您开始看到质量以有意义的方式提高。
但基于状态的模型如此有影响力的另一个关键因素是,它们还具有关于如何有效计算这些内容的关键思想。因此,如果您回到机器学习 101 课程,在那里您学习了 RNN,您可能学到的一件事是,它们不像注意力那样能够很好地并行化,因为如果您只是简单地运行它们,则必须进行这种顺序更新才能处理新的标记。而在注意力中,您可以同时并行处理所有标记。
S4 论文背后的一个关键见解是,这些是循环模型。您可以采用它们,也可以将它们表述为卷积。特别是对于卷积,您可以,而不是使用 PyTorch Conv1D 运算,您可以使用 FFT 进行计算。这将为您提供序列长度 n 中的 n log n 计算,以及一个针对现代硬件进行了相对良好优化的算子。
因此,我认为这是 2022 年开始允许这些突破发生在这些非 Transformer 架构中的两个关键思想。因此,关于如何以有原则的方式对序列的循环更新进行建模的这些想法,以及关于如何通过将其转换为卷积然后使用 FFT 进行扩展来有效计算它的这些关键想法。
沿着同样的思路,之后我们开始在专用内核上进行一些工作。就像我们对 Transformer 使用 Flash attention 一样,我们也有 Flash FFT Conf 之类的工作。如果您查看这些工作线,通常每当您看到一个新的架构时,您都会看到一个新的基元,现在的关键因素之一是,您是否拥有一个高效的内核,以便您实际上可以提高时钟速度?
到 2022 年和 2023 年,我们开始拥有这些具有良好质量基元和良好时钟速度的模型。因此,您实际上可以看到它们在有意义的方式上优于 Transformer 的机制。
话虽如此,但仍然存在一些质量差距,特别是对于语言建模而言。由于语言是当今我们在序列建模中所做工作的核心,因此我将要讨论的下一个关键思想是选择机制这一概念。这基本上是一个想法,因此您有一个循环状态,它会一直保留下来,只是总结了之前发生的一切。
为了获得一个良好的序列模型,您真正需要能够做的一件事是让模型学习从该循环状态中挑选出片段的最佳方法。
因此,在名为 H3、饥饿的河马以及这些鬣狗模型的工作线中,其中一种方法是通过添加一些简单的逐元素门来实现。因此,这些想法的版本已经存在了几十年。如果您仔细查看 LSTM 论文,您可能会发现这种门控机制。但事实证明,您可以采用这些旧的想法,将它们添加到这些新的
基于状态的模型中,然后您可以看到质量开始提高。
如果您听说过 Mamba 模型,它还通过对基本循环状态空间进行一些更改来将选择提升到一个新的水平。因此,这不仅仅是围绕 SSM 层发生的这种门控,而且您还可以实际制作状态空间模型的 ABCD 矩阵,您可以使它们依赖于数据,这将使您能够根据您所看到的内容更好地从隐藏状态中选择不同的片段。
我还想指出,如果您查看此图的右下角,这里有一个带有 GPU S-RAM、GPU HBM 的小三角形,这只是在您拥有新架构时继续存在的趋势,您还会使用内核来显示它具有硬件效率,它可以在现代硬件上具有硬件效率。
接下来发生的一件很酷的事情是,一旦我们了解了这些基本要素,这些是序列模型背后的一些基本原理,线性注意力实际上开始卷土重来。因此,在今年早些时候,有一个名为基于 Simran Aurora 和其他一些人的模型,它结合了更符合原理的线性注意力版本,基本上,
两秒钟的总结是,它使用了 softmax 注意力的泰勒逼近,将其与简单的滑动窗口注意力相结合,并且开始能够扩展帕累托边界,即您可以从序列中回忆多少数据,以及您的循环状态大小有多小。顶部的那些橙色点只是显示了可以回忆更多内存的短序列。
我认为在这一工作线中具有影响力,并且在几个月前才刚刚出现的一个最后一个主要思想是,当您拥有这些在序列长度方面从根本上更有效的模型时,您可能不想以完全相同的方式提示它们或使用它们。
因此,这是一篇非常酷的论文,名为“Just Read Twice”,同样来自 Simran,它基本上说,嘿,所有这些高效的模型都可以比 Transformer 更高效地处理标记,因此它们有时比简单的 Transformer 标记具有不公平的优势。所以,或者说,一个简单的 Transformer 模型。例如,标准用例是您有一些长文档,您将将其作为输入传递,然后您将提出一些关于它的问题。
对于具有固定状态大小的循环模型,您可以想象的一个问题是,假设您的文章很长,并且您试图询问一些非常细微的事情。您可以想象,模型可能很难提前知道要将哪些信息放入隐藏状态中。
但是这些模型效率如此之高,以至于您可以做一些非常愚蠢的事情。例如,您可以只放置文档,写下文档,写下问题,再次写下文档,然后再次写下问题。然后这一次,您第二次查看该文档时,您确切地知道要查找什么。而关于这一点很酷的是,这会导致更好的质量,尤其是在这些需要回忆的任务中。但另一件有趣的事情是,它确实利用了我们现在拥有的更高效的架构。
因此,我认为,在这项工作中另一个有影响力的想法是,如果您更改模型的基本计算能力及其扩展方式,那么您实际上可以开始在测试时以不同的方式查询它。这当然也回到了关于测试时间计算的幻灯片。因此,虽然每个人都在关注,比如说,大型 Transformer 模型的测试时间计算,但我认为一个非常有趣的研究问题是,您如何利用这些以及它如何随着这种新一代模型而变化?
因此,我将简要总结一下这些关键思想是什么,然后简要介绍一下当今最先进的技术是什么。因此,四个关键思想是,不要只进行简单的线性张力逼近,而是采用我们从其他领域(如信号处理)了解到的想法,对序列的建模采用更符合原理的方法。
在所有这些工作线中,另一个关键思想是,您确实需要从第一天起就获得硬件和内核支持。因此,即使您的模型在理论上更有效率,如果有人运行它并且速度慢两倍,那么我们学到的一件事是,如果您处于这种情况,它将直接失败。因此,您需要设计您的架构。一个关键的关键
机器学习思想对质量很重要,那就是确保您对可以从隐藏状态中选择的不同方式进行编码,并将其作为质量的关键决定因素。最后,我认为这项工作中出现的新事物之一,也是一件非常有趣的事情是,这些模型的正确测试时间范例是什么?它们与您可能对标准 Transformer 所做的操作相比有何变化?
我将简要结束本节。因此,我将这张幻灯片标记为我们昨天的状态,因为 Eugene 将讨论他今天早上发布的一些新模型。但截至昨天,这些高效替代模型中的一些非常酷的结果是,AI2 训练了这个名为 Jamba 的混合 MOE,它似乎是这些非 Transformer 架构中目前最先进的技术。
有一个,麻省理工学院最近发布了一个名为 SANA 的新扩散模型,他们的一个关键观察结果是,您可以采用标准扩散、Transformer 扩散模型,用线性注意力替换层,然后这将使您可以扩展到更大、更大的图像、更大、更大、更大的序列,效率更高。
而且,几年前我并不认为任何人会这么说,但那些门控 SSM 门控状态空间模型之一最终出现在《科学》杂志的封面上,因为一群优秀的人员去训练了一些 DNA 模型。所以那是来自斯坦福大学和 ARC 研究所的 Michael Polly、Eric Yuen。因此,在 2024 年,我们正处于一个令人兴奋的时刻,这些非 Transformer Transformer 后架构正在
或在各种领域、各种应用和任务中展现出前景。有了这些,我将把它交给 Eugene,他可以告诉您有关 RWKV 的最新和最棒的信息。- 是的,所以,Naciso?
是的,你在跟这里说话,哦,我在跟这里说话,好的,所以是的,两个流,是的,我认为我们经常被问到的一个常见问题是,RWKV 和状态空间有什么区别,所以我认为真正理解的关键之一是,对吧,这两个组之间的区别是,我们实际上更像是一个开源租赁互联网与学术界相遇的情况,就像我们大多数人从未写过任何论文一样,但我们基本上查看了
RNN 和线性意图,当意图就是一切出现时,然后我们决定,嘿,存在二次缩放问题,为什么我们不尝试修复它呢?因此,我们最终开发了自己的分支,但我们最终会来回共享想法,所以,而且我们积极地在 discord github 等中进行所有这些操作,所以
这在几年里非常糟糕,对吧?基本上,平均小组的 H 指数非常接近于零,对吧?Illuter AI 实际上介入并帮助我们撰写了第一篇论文。太好了,现在我们的 H 指数显然是 3 了。所以,但问题是,像许多这样的实验都产生了结果。并且基本上,我们采用了线性注意力的相同想法,并在其基础上进行了构建。
因此,要回顾一下,例如,RWKB 如何处理其自身的注意力机制并实现类似 OAN 计算的目标。并且关注我们的总体目标,即使 AI 能够惠及所有人,无论其语言、国家或计算能力如何,这就是我们的目标。
我们实际上主要在 100 多种语言上训练我们的模型,这是另一个完全不同的主题。我们的目标是训练多达 200 种语言,以涵盖世界上的所有语言。但与此同时,我们致力于改进这种架构,以降低计算成本,以便人们可以在树莓派和任何设备上运行它。
那么 RWKB 如何打破 LSTM 标记流的依赖性呢?因为我认为要理解架构,从 RNN 透镜来理解它可能更容易,因为这就是我们构建的基础。我们所有状态空间都试图从头开始,并从中学到了教训,并说,所以这里有一些差异。而 AKA,这是我们版本的线性注意力。
因此,要退一步,所有基础模型,无论是 Transformer 还是非 Transformer,在非常高的层面上,都会输入一个标记。我的意思是,将它转换成嵌入,并经过许多层,生成许多内部状态,无论是 QKB 缓存还是 RNN 状态或 RWKB 状态,并输出一个嵌入层规范和采样。我们只是采用更多层和更多嵌入。不知何故,这神奇地起作用了。
因此,如果您还记得您古老的 RNN 课程(我们现在称之为祝福学习),其基本思想是您拥有来自顶部的嵌入信息。
当您获取该信息并将其向下流动,然后将其作为 LSTM 层的一部分进行处理时。这就是它通常的工作方式。Kapati 引用说 RNN 实际上非常有效。问题是这不可扩展。要开始处理第二个标记,您需要等待第一个标记。然后您需要,同样对于第三个标记和第四个标记,等等。
这是 CPU 领域,而不是 GPU 领域。因此,您可以拥有 H100,但您甚至无法使用 1% 的它。因此,这就是为什么 RNN 没有真正按照我们想要的方向发展的原因,例如在训练方面拥有数十亿个参数。那么 R.KV 版本 0 做了什么?我们只是做了最愚蠢、最糟糕的事情。对不起,这是 RNN 的瓶颈。我们做了删除该行这一愚蠢的事情。
它起作用了。它进行了训练,很糟糕,但它起作用了。然后他们说,嘿,然后没有人关心,因为损失很糟糕,但是
我们如何改进它?这实际上是我们前进的方向。因为如果您看到这种流程,您可以快速使 GPU 饱和,它基本上会相应地级联。所以我只是在等待它再次循环。所以就像一旦您获得第一个层,您的标记完成计算,您就开始级联您的计算,直到您说,嘿,我正在使用 100% 的 GPU。
因此,我们对其进行了改进,并开始遵循这样的原则,只要我们保持这种通用架构,我们就可以级联并高效地利用我们的架构,我们的架构中没有任何东西是神圣的。我们提出了一些疯狂的想法。事实上,如果您让我解释论文中的一些内容,对吧,在论文中我会说我们有这个想法,我们这样写。现实情况是有人编写了代码,我们对其进行了测试,它有效,然后我们进行了合理化解释。
因此,RWAKVR 背后的基本思想是我们通常会执行两个主要块。我们称之为 timemix 和 channelmix。Timemix 通常处理长期内存状态,其中我们基本上将矩阵乘法和 C 循环激活函数应用于处理输入嵌入和输出嵌入。我将其简化了,因为这
此计算在每个版本中都会发生变化,我们现在有版本七 channel mix 与 base 类似,因为它执行短期注意力,它只查看姐妹标记或之前的标记,因为它存在标记移位矩阵中的移位
我不想过多地介绍论文本身,因为我们确实有三篇关于此的论文。基本上,RWKV、Iron-Infiltrated Transformer、ERA、Eagle 和 Finch RWKV、Electric Value State。这是更新的版本 5、版本 6。GoFinch 是我们各自的混合模型。我们正在为 v7 撰写论文,这是 RWKV7,代号为 Goose,
架构由鸟类伴随。我还将介绍 qrwkv 和 mamanrwkv 和 rwkv。那导致了什么?好的,因为我们都很穷,GPU 资源不足。需要明确的是,像大多数这样的研究一样,只在少数几个 H100 上进行,我曾有一位谷歌研究人员告诉我,这就像他为单个研究人员制定的实验预算一样。因此,我们整个组织的计算能力都比谷歌的一位研究人员少。我们
我们探索的一个方面是如何改用 Transformer 模型?因为有人已经为训练支付了数百万美元,所以为什么我们不利用这些权重呢?我相信 Together AI 在数字方面对小写字母进行了处理。我们也从那里借鉴了一些想法,并且我们基本上对 RWKV 进行了这样的处理。
这导致了QRWKV6的发布,这是一个320亿参数的模型,我们采用了320亿参数的模型,冻结了前馈层,移除了QKV注意力层,并用RWKV线性层替换了它。明确地说,这意味着我们没有RWKV通道混合层,只有时间混合层。
但一旦我们这样做,我们就训练RWKV层。重要的是,前馈层需要被冻结,以便学习新的注意力机制。然后我们解冻前馈层,并使用自定义学习率调度一起训练所有层,以便它们可以学习如何协同工作。令人惊讶的是,结果是,老实说,这令当天发布模型的RWKV MOE团队感到沮丧,那就是
我们只用两个节点进行了几小时的训练,就成功地使其与原始QAN32B模型不相上下。事实上,第一次运行时,我们完全被搞糊涂了,就像——我告诉Daniel Goldstein,他负责我们大部分的研究协调工作,
当你向我提出这个想法时,你告诉我,最好的结果也就是达到相同的性能水平。你没有告诉我挑战分数和Winograd分数会飙升。我不知道发生了什么,但它确实发生了。MMLU分数下降,这是意料之中的,因为如果你仔细想想,当我们训练所有层时,我们实际上就像是在
用新的RWKV层对前馈网络层进行了“弗兰肯斯坦式”的改造,并对其造成了损伤。但76%的准确率,嘿,一些内容保留了下来,我们可能可以进一步训练它。我们甚至没有花超过三天的时间来训练它,所以还有很多工作要做,因此这是一个预览版。
这引发了一个重要的问题,因为我们现在正在进行向700亿参数模型转换的过程。这实际上是一种极其高效的测试我们注意力机制的方法。它成了一种捷径。我们已经计划好要进行我们的第7版以及它的混合架构,因为我们不需要从头开始训练,而且我们可以从中获得一个非常好的模型。另一件难以启齿的事情是,因为我们现在正在进行700亿参数模型的训练,
如果这能正确地扩展到128k的上下文长度,我甚至都不谈论百万,128k,当今大多数企业的工作负载都只是在32k上下文长度下的700亿参数模型上运行。这意味着如果这有效并且基准测试结果与之匹配,这意味着我们可以取代绝大多数当前的AI工作负载,除非你想要超长的上下文。然后,对不起,谁能给我们更多GPU?因为我们确实需要VRAM来处理超长的上下文,很遗憾。
所以,是的,这就是我们正在努力的方向。从本质上讲,我们对这一进展感到兴奋,并希望进一步推动它。需要明确的是,我认为这种转换过程不会仅限于RWKB。它可能也适用于Mamba,我不明白为什么不行。我们可能会看到更多想法、更多实验或更多混合模型,或者,是的,就像我想直接说出来的一件最糟糕的事情一样,我已经与Black Mamba团队和Jamba团队确认过了,因为我们做了Goldfinch混合模型,
我们谁都不明白为什么混合使用基于状态的模型、R.Q和基于状态的模型以及Transformer的性能会优于两者的基线。这就像当你训练一个模型,然后你替换它,你期望得到相同的结果。这是我们的宣传。这是我们的说法。但不知何故,当我们将两者结合在一起时,
它的性能超过了Wolf。这是一个需要进一步研究的领域,我们只进行了四次实验,当然还有四个团队,还有很多工作要做。但这正是让我兴奋的事情,因为这正是我们未来可能前进的方向。这让我们进入下一个话题。
所以,这部分内容主要是关于我们的一些兴奋点,也许会对未来的发展方向进行一些大胆的推测。当然,这也是我们更愿意回答问题的部分。所以,让我兴奋的几个方面是,继续对这些模型进行硬件模型协同设计。
我们最近发布了一个名为Thundercittens的库。这是一个CUDA库。我们发现令人沮丧的一点是,每当我们构建这些新的架构时,我相信你们也有同样的经历,我们必须花两个月的时间在CUDA领域,编写这些高效的新内容。如果我们决定更改PyTorch中的某一项内容,例如一行PyTorch代码,至少需要一周的CUDA代码。
因此,对于像Thundercat这样的库,我们的目标是分解关键原则、关键硬件内容以及从硬件获得的关键计算组件。例如,在H100上,一切都是围绕着warp组矩阵乘法运算进行的。因此,你真的希望你的操作能够分解成相对较小的矩阵矩阵乘法运算。例如,乘以两个64×64的矩阵。因此,如果你提前知道这一点,当你设计模型时,这可能会给你一些关于如何设置状态大小、如何设置更新以及如何设置更新函数的信息。
因此,使用Thundercantons,我们基本上构建了一个完整的库,其核心思想是,所有基本的计算原语不应该是浮点数,而应该是矩阵,并且所有内容都应该是矩阵计算。我们一直在使用它来尝试重新实现一些现有的架构,并开始设计一些新的架构,这些架构的设计真正考虑到了这个核心,以及张量核心原语。
另一件让我兴奋的事情是,在过去的四五年里,我们一直在关注语言模型。但如果你一直在关注Twitter,你会发现有很多新的下一代模型正在出现。因此,有一些视频生成模型可以实时运行,并且受鼠标和键盘的支持。
据我所知,如果你使用它们,它们只有几秒钟的内存。我们可以采用这个模型吗?我们可以赋予它非常长的上下文长度,以便它实际上可以一次生成整个游戏状态吗?这对模型来说意味着什么?你当然不会进行巨大的二次注意力计算来运行它。也许可以使用这些新的模型,或者一些新出现的视频生成模型。Sora大约
两天前发布,但排队时间和生成时间都非常长。这可能是底层的一个二次注意力操作。如果我们可以去除它并获得相同的质量,但生成速度更快呢?或者我们在今天早些时候从Paige看到的演示,如果我和我的Gemini机器人进行超长的对话,
如果我想记住它在过去一周看到的所有内容呢?我的意思是,也许出于个人原因你不会这样做,但如果我做了呢?这对架构意味着什么?我认为这肯定是一件让我非常兴奋的事情。我相信你们也一样。我认为我们应该有一些独到的见解,但我真的不记得我们的独到见解是什么了。是的,包括令人兴奋的。独到的见解,是的,这些是我们的独到见解。我认为最大的…
我们在Twitter上看到并分享的一个重要问题是,在基于状态的模型的未来中,RAG是否相关?让我们看看。我还没有过多地使用RAG,但当我使用时,我会说我发现进行研究有点困难,因为我们一次又一次地遇到这种情况,你可以拥有
任何质量的嵌入模型。因此,你可以拥有一个非常糟糕的嵌入模型,或者你可以拥有一个非常好的嵌入模型,无论用什么标准衡量都是如此。对于最终的RAG应用程序,它并没有什么区别。这就是我在被录制时对RAG的看法。
我知道这实际上并没有回答这个问题,但是……是的。所以,我认为很多人对RWKB或状态空间可能具有无限上下文的想法感到非常兴奋。但我认为现实情况是,当我们说无限上下文时,我们只是指一种不同类型的无限上下文,或者如前所述,你需要以不同的方式测试模型。因此,将其更多地考虑为人类。就像,我不记得我昨天早餐吃了什么。
是的,这就是我要说的。我们人类不是二次Transformer。如果我们这样做,如果我们假设每秒增加一次大脑大小,那么到我们五岁的时候,我们就会爆炸了。我认为,从根本上来说,对我们来说,无论RWKB、状态空间、XLSTM等等,
我们的总体思路是,与其扩展状态,增加计算成本,不如拥有固定大小的状态,信息论检测到该固定大小的状态将有一个限制,只是这个限制有多大是一个问题,就像我们一样,RWKB的状态运行在40兆字节,其未来版本可能会运行到400兆字节,这就像
数百万个标记,如果你从数学角度来看,这是最大的可能性。只是我认为我们对它的效率都比较低。所以也许我们达到了十万。这就是我们正在努力的方向,试图推动它并最大化它。
这就是模型开始有所不同的原因,因为它会选择忘记某些东西,它会选择记住某些东西。这就是为什么我认为可能存在某种正确性,但它可能不是相同的正确性。也许模型学习了一些东西,它就像,嗯,我不记得那篇文章了。让我做一个数据库搜索来搜索。就像我们人类一样,当我们记不住公司里的文章时,我们会搜索Notion。是的。我认为一件非常有趣的事情是,如果你可以拥有……
事实是,现在,关于语言模型的一个直觉是,所有这些参数都只是为了存储关于世界的随机事实。这种直觉来自于这样的观察:如果你采用一个非常小的语言模型,它可以做一些事情,比如和你交谈,或者有点像对话的风格,它可以学习这一点,但与更大的模型相比,它通常会失败的地方在于,它对它知道或可以做的事情的事实性要少得多。
但这表明,我们花费的所有权重,我们花费的所有SGD来训练这些模型,都只是用来存储事实。
我们有像数据库这样的东西,它们非常擅长存储事实。因此,我认为一件非常有趣的事情是,如果我们实际上可以拥有某种外部数据存储,语言模型可以查看它,也许它具有一定的梯度下降,但这将非常有趣。然后也许你可以编辑它,删除事实,更改总统是谁,这样它就不会丢失。我们可以为观众开放问答环节和独到的见解吗?当然。
我有独到的见解问答。这些模型可以扩展吗?当4050亿参数状态空间模型RAG存在时,没有人使用长上下文,谁会提出200万个标记的问题,独到的见解?
提出200万个标记的问题,我认为这是一个非常好的问题。所以实际上,我打算把它作为一个独到的见解来提出。我的独到见解将是长上下文并不重要。我知道我刚刚就此做了一个完整的演讲。但如果你不能两面都玩,那么进行研究的意义何在呢?但我认为,对我们两个人来说,我们最初进入这个领域的原因仅仅是因为存在这个二次方的问题。
显然,智能不需要是二次方的。到底是怎么回事?我们可以更好地理解它吗?从那时起,它就变成了一场竞赛,观看这场竞赛是多么令人兴奋,看看你可以吸收多少上下文。但我认为这是对的。实际上没有人将200万个上下文的提示输入到这些模型中。而且,你知道,如果他们这样做,也许我们可以去,你知道,设计一个更好的模型来做这件事。是的。你对此怎么看?你也在研究这个。你认为长上下文重要吗?
所以我要说一点。你们有多少人记得谷歌Gemini支持300万个上下文的消息?举手。200万。哦,是200万。是的。你们有多少人实际尝试过?我经常使用它。你,你是我的电视之一。我经常使用它。好的。所以对于一些使用过的人来说,我认为,我认为这就是……
这就是我的观点开始不同的地方,因为我认为大型实验室在这个问题上可能扮演着更大的角色,因为
即使对于其他方式,即使我们在上下文中进行训练,我说VRAM是一个问题的原因是,因为当我们这样做时,我们需要对状态进行反向传播,我们实际上需要根据标记长度在标记之间维护状态。这意味着如果我们实际上正在训练100万个上下文,我们需要实际展开整个100万个上下文,这对于Transformer来说也是一样的,但这只是意味着我们在训练时间空间中不会神奇地重复使用VRAM消耗。所以这就是VRAM瓶颈之一,而且,呃……
我既不是OpenAI也不是谷歌,所以如果你有太多的GPU,请捐赠一些。但随后回到另一个范例,对吧,我认为O1风格的推理实际上可能会将这个方向向下推。在我看来,这是我部分的独到见解,那就是,假设你有一个超级大的4000亿参数模型,假设你有一个700亿参数模型,它可能需要两倍的标记,但会得到相同的结果
严格来说,一个700亿参数模型,这甚至适用于Transformer或非Transformer,对吧?即使它进行了两倍的思考,它也会比那个4000亿参数模型消耗更少的资源。如果情况如此,而我们仍在努力弄清楚这一点,那么我们前进的方向可能是让低于2000亿参数的模型尽可能快、尽可能高效,并采用一些人正在研究的一种非常高效的架构,以便在越来越大的上下文行上进行推理。
我非常感兴趣的一件事是能够永远观察的模型。显然,你不能在无限的上下文长度上训练某些东西。你们是如何考虑这个问题的,你们在比训练可能的上下文长度长得多的上下文长度上运行?是的,这是一个很好的问题。所以
我认为当——我认为你们可能也发过类似的推文。当我们第一次开始做这些事情时,因为这些都是循环模型,理论上你可以永远运行它。你可以永远运行它。至少它不会出错或崩溃。还有一个问题是它是否真的可以使用它在无限上下文
中看到的内容。我认为在那里,所以一个地方,研究和架构可能比其他研究运行得更快的地方实际上是长上下文的基准测试。
你让它永远运行吗?你想做所有事情还是观察所有事情?你实际上想做什么?我们能否为此建立一些基准测试?然后测量正在发生的事情,然后提出问题,模型可以做到吗?它们还需要其他什么东西吗?是的,我认为如果我要把时间倒回到2022年,这可能是我会做不同的事情之一,那就是在我们开始在所有这些模型上推动上下文长度的同时,实际上也提出一些长上下文的基准测试。
我还想说一下用例。所以,我认为我们都同意没有无限的内存,模型需要能够学习和决定。我认为我们已经观察到,我认为这也适用于状态空间模型,这种基于标记位置之外的替代注意力机制的一个关键优势是,当超过8k训练上下文限制或100万上下文限制时,模型不会突然变得疯狂。它实际上仍然稳定。它仍然能够运行。它仍然能够进行合理化。它只是开始忘记事情。但是
其中一些东西仍然存在于潜在的记忆中。其中一些东西仍然在那里。这就是为什么“再次阅读”有效的原因。诸如此类的事情。
在这个方向上最大的推动之一是,我认为状态空间和RWKB都有其他研究人员的独立论文,他们在其中使用这种架构进行时间序列数据、天气建模。所以你并不是在问五天前的天气如何。你是在根据地球和计算机将继续运行的无限长度来询问明天的天气。所以,他们发现这是可能的
比现有的,例如Transformer或现有的架构在建模此天气数据方面更好,控制参数大小等等。我很确定有一些人拥有更大的模型。所以,所以,在这个例子中,对吧,如果你的问题只是下一个是什么,而不是十年前是什么,那么就会有未来的应用。非常感谢你们的邀请。