计算成本与输入大小的平方成比例。那不太好。
信用:奥里希·劳森 |盖蒂图片社
大型语言模型使用标记来表示文本,每个标记都是几个字符。短单词由单个标记表示(例如“the”或“it”),而较大的单词可能由多个标记表示(GPT-4o 用“ind”、“iv”和“isible”表示“不可分割”)。
当 OpenAI 两年前发布 ChatGPT 时,它的内存(称为上下文窗口)仅包含8,192 个代币。这相当于大约 6,000 字的文本。这意味着,如果您向它提供的文本超过 15 页,它就会“忘记”上下文开头的信息。这限制了 ChatGPT 可以处理的任务的大小和复杂性。
如今的法学硕士的能力要强大得多:
- OpenAI 的 GPT-4o可以处理 128,000 个标记(大约 200 页文本)。
- 人类的 克劳德 3.5 十四行诗可以接受 200,000 个令牌(大约 300 页文本)。
- Google 的 双子座1.5专业版允许 200 万个令牌(大约 2,000 页文本)。
尽管如此,如果我们想要人工智能系统具有人类水平的认知能力,还需要取得更多进展。
许多人设想未来人工智能系统能够完成许多(也许是大部分)人类所做的工作。然而,许多人类工人在工作期间阅读和听到了数亿个单词,而且我们从周围世界的景象、声音和气味中吸收了更多的信息。为了实现人类水平的智能,人工智能系统需要有能力吸收相似数量的信息。
目前,构建基于 LLM 的系统来处理大量信息的最流行方法称为检索增强生成(RAG)。这些系统尝试查找与用户查询相关的文档,然后将最相关的文档插入到 LLM 的上下文窗口中。
有时这比传统的搜索引擎效果更好,但今天的 RAG 系统还有很多不足之处。只有当系统将最相关的文档放入法学硕士的背景中时,它们才会产生良好的结果。但是用于查找这些文档的机制通常是在 矢量数据库– 不是很复杂。如果用户提出复杂或令人困惑的问题,RAG 系统很可能会检索到错误的文档,并且聊天机器人将返回错误的答案。
而且 RAG 无法让法学硕士以更复杂的方式对大量文档进行推理:
- 律师可能希望人工智能系统能够审查和总结数十万封电子邮件。
- 工程师可能希望人工智能系统能够分析工厂车间数千小时的摄像机镜头。
- 医学研究人员可能希望人工智能系统能够识别数以万计的患者记录中的趋势。
其中每项任务都可能需要超过 200 万个上下文标记。此外,我们不希望我们的人工智能系统在完成其中一项工作后从头开始。我们希望他们随着时间的推移获得经验,就像人类工人一样。
超人的记忆力和耐力长期以来一直是计算机的关键卖点。我们不会想在人工智能时代放弃它们。然而,今天的法学硕士吸收和理解大量信息的能力明显低于人类。
当然,法学硕士在培训时吸收了超人数量的信息,这是事实。最新的人工智能模型已经接受了数万亿个代币的训练——远远多于任何人能读到或听到的。但许多有价值的信息都是专有的、时间敏感的,或者无法用于培训。
因此,我们希望 AI 模型在推理时能够读取并记住超过 200 万个标记。这并不容易。
基于 Transformer 的 LLM 背后的关键创新是注意力,这是一种数学运算,允许模型“思考”以前的标记。(查看我们的 LLM 解释器如果您想了解其工作原理的详细说明。)在 LLM 生成新令牌之前,它会执行注意操作,将最新令牌与每个先前的令牌进行比较。这意味着随着背景的发展,传统的法学硕士的效率会越来越低。
许多人正在研究解决这个问题的方法 - 我将在本文后面讨论其中的一些方法。但首先我应该解释一下我们是如何最终得到如此笨拙的架构的。
个人计算机的“大脑”是中央处理单元 (CPU)。传统上,芯片制造商通过提高作为CPU心跳的时钟频率来提高CPU的速度。但在 2000 年代初,过热迫使芯片制造商大多放弃了这种技术。
芯片制造商开始制造可以执行的 CPU一次不止一条指令。但他们受到了编程范式的阻碍,该范式要求指令大部分按顺序执行。
需要一种新的架构来充分利用摩尔定律。输入英伟达。
1999 年,Nvidia 开始销售图形处理单元 (GPU),以加快 3D 游戏的渲染速度,例如雷神之锤 III 竞技场。这些 PC 附加卡的作用是快速绘制数千个三角形,这些三角形构成游戏中的墙壁、武器、怪物和其他物体。
这是 不是顺序编程任务:可以按任意顺序绘制屏幕不同区域的三角形。因此,Nvidia 不是使用一个处理器一次执行一个指令,而是 第一个 GPU有十几个专用核心(实际上是微型 CPU),它们并行工作来绘制场景。
随着时间的推移,摩尔定律使 Nvidia 能够制造出具有数十个、数百个甚至数千个计算核心的 GPU。人们开始意识到 GPU 的大规模并行计算能力可以用于与视频游戏无关的应用程序。
2012 年,多伦多大学的三位计算机科学家(Alex Krizhevsky、Ilya Sutskever 和 Geoffrey Hinton)使用了一对 Nvidia GTX 580 GPU训练神经网络来识别图像。这些 GPU 拥有强大的计算能力,每个 GPU 都有 512 个核心,使它们能够训练具有当时令人印象深刻的 6000 万个参数的网络。他们 进入ImageNet,一项将图像分类为 1,000 个类别之一的学术竞赛,以及 创下准确度新纪录在图像识别中。
不久之后,研究人员就将类似的技术应用于包括自然语言在内的各个领域。
RNN 在处理短句子时效果相当好,但在处理较长句子时却表现不佳,更不用说段落或较长段落了。在推理长句子时,RNN 有时会“忘记”句子开头的一个重要单词。2014 年,计算机科学家 Dzmitry Bahdanau、Kyunghyun Cho 和 Yoshua Bengio 发现了他们可以通过添加注意力机制来提高循环神经网络的性能,该机制允许网络“回顾”句子中较早的单词。
2017 年,谷歌发布了 “你所需要的就是注意力,”机器学习史上最重要的论文之一。在 Bahdanau 及其同事的工作基础上,谷歌研究人员放弃了 RNN 及其隐藏状态。相反,谷歌的模型使用注意力机制来扫描之前的单词以获取相关上下文。
谷歌将这种新架构称为“transformer”,事实证明它具有重大意义,因为它消除了扩展语言模型的严重瓶颈。
下面的动画说明了 RNN 无法很好扩展的原因:
这个假设的 RNN 尝试预测句子中的下一个单词,预测结果显示在图表的顶行中。该网络具有三层,每层由一个矩形表示。它本质上是线性的:在将隐藏状态传递回底层之前,它必须完成对第一个单词“How”的分析,以便网络可以开始分析第二个单词“are”。Ø
当机器学习算法在 CPU 上运行时,这种限制并不是什么大问题。但当人们开始利用 GPU 的并行计算能力时,RNN 的线性架构就成为了严重的障碍。
变压器通过允许网络同时“思考”输入中的所有单词来消除这个瓶颈:
此处所示的基于 Transformer 的模型的计算量与上图中的 RNN 大致相同。因此它在(单核)CPU 上的运行速度可能不会更快。但由于该模型在开始“是”、“你”或“正在做”之前不需要以“如何”结束,因此它可以用于所有这些词同时出现。所以它可以运行 很多在具有许多并行执行单元的 GPU 上速度更快。
快多少?潜在的加速与输入单词的数量成正比。我的动画描绘了一个四字输入,使 Transformer 模型比 RNN 快四倍左右。真正的法学硕士可以输入数千个单词长的内容。因此,借助足够强大的 GPU,基于 Transformer 的模型可以比其他类似的 RNN 快几个数量级。
简而言之,Transformer 释放了 GPU 的全部处理能力,并促进了语言模型规模的快速增长。领先的法学硕士源自 数亿个参数2018 年至 千亿个参数到 2020 年。基于 RNN 的经典模型不可能发展得那么大,因为它们的线性架构阻碍了它们在 GPU 上进行有效的训练。
看到各层之间的所有对角箭头了吗?它们代表了注意力机制的运作。在基于转换器的语言模型生成新的标记之前,它会“考虑”每个先前的标记以找到最相关的标记。
从计算角度来说,这些比较中的每一个都很便宜。对于小型上下文(10 个、100 个甚至 1,000 个令牌)来说,它们并不是什么大问题。但注意力的计算成本随着前面标记的数量而不断增长。上下文越长,生成下一个标记所需的注意力操作(以及计算能力)就越多。
这意味着注意力所需的总计算能力随着代币总数呈二次方增长。假设一个 10 个令牌的提示需要 414,720 个注意力操作。然后:
- 处理 100 个令牌的提示将需要 4560 万次注意力操作。
- 处理 1,000 个令牌的提示将需要 46 亿次注意力操作。
- 处理 10,000 个令牌的提示将需要 4600亿注意操作。
这可能就是为什么一旦上下文超过 128,000 个令牌,Google 就会对 Gemini 1.5 Pro 的每个令牌收取两倍的费用。生成代币编号 128,001 需要与之前所有 128,000 个代币进行比较,这使得它比生成第一个、第 10 个或第 100 个代币要昂贵得多。
我们在优化注意力方面付出了很多努力。一项研究试图从单个 GPU 中榨取最大效率。
正如我们之前看到的,现代 GPU 包含数千个执行单元。在 GPU 开始进行数学计算之前,它必须将数据从慢速共享内存(称为高带宽内存)移动到特定执行单元内更快的内存(称为 SRAM)。有时,GPU 花在移动数据上的时间比执行计算的时间还要多。
在一个 系列一个 的一个 文件普林斯顿大学计算机科学家 Tri Dao 和几位合作者开发了 FlashAttention,它以最小化这些缓慢的内存操作数量的方式计算注意力。像 Dao 这样的工作极大地提高了现代 GPU 上 Transformer 的性能。
另一项研究重点是有效地跨多个 GPU 扩展注意力。一篇被广泛引用的论文描述了 引起注意,它将输入标记划分为块并将每个块分配给不同的 GPU。这称为环注意力,因为 GPU 被组织成一个概念环,每个 GPU 将数据传递给其邻居。
我曾经参加过一个交际舞班,情侣们在房间边缘站成一圈。每次跳舞结束后,女士们会留在原地,而男士们则轮流到下一位女士。随着时间的推移,每个男人都有机会与每个女人跳舞。环形注意力的工作原理相同。“女性”是查询向量(描述每个标记“正在寻找”的内容),“男性”是关键向量(描述每个标记具有的特征)。当关键向量在一系列 GPU 中轮换时,它们会依次与每个查询向量相乘。
简而言之,环注意力将注意力计算分布在多个 GPU 上,使得 LLM 可以拥有更大的上下文窗口。但这并没有让个人注意力计算变得更便宜。
RNN 的固定大小隐藏状态意味着它不存在与 Transformer 相同的缩放问题。RNN 需要大约相同的计算能力来生成第一个、第一百个和第一百万个代币。与基于注意力的模型相比,这是一个很大的优势。
尽管自 Transformer 发明以来 RNN 已经失宠,但人们仍在继续尝试开发适合在现代 GPU 上训练的 RNN。
四月份,谷歌 宣布了新型号称为无限注意力。它是 Transformer 和 RNN 之间的混合体。无限注意力像普通变压器一样处理最近的令牌,使用注意力机制记住它们并召回它们。
然而,无限注意力不会尝试记住模型上下文中的每个标记。相反,它将较旧的标记存储在“压缩内存”中,其工作原理类似于 RNN 的隐藏状态。这种数据结构可以完美地存储和召回一些令牌,但随着令牌数量的增长,它的召回变得更加有损失。
机器学习 YouTuber Yannic Kilcher 印象不太深刻采用 Google 的方法。
“我非常愿意相信这确实有效,并且这是获得无限关注的方法,但我非常怀疑,”基尔彻说。– 它使用这种压缩记忆方法,您只是边走边存储,您并没有真正学习如何存储,您只是以确定性的方式存储,这也意味着您对存储的内容几乎没有控制权如何存储它。 –
也许复兴 RNN 的最引人注目的努力是 Mamba,这是一种在 2017 年发布的架构。 2023 年 12 月论文。它是由计算机科学家 Dao(他也做了我前面提到的 FlashAttention 工作)和 Albert Gu 开发的。
曼巴不使用注意力。与其他 RNN 一样,它有一个隐藏状态,充当模型的“内存”。由于隐藏状态具有固定大小,较长的提示不会增加 Mamba 的每个令牌成本。
当我三月份开始写这篇文章时,我的目标是更详细地解释 Mamba 的架构。但随后在五月,研究人员发布 Mamba-2,这显着改变了原始 Mamba 论文的架构。坦白说:我很难理解最初的 Mamba,但还没有弄清楚 Mamba-2 是如何工作的。
但要理解的关键是,Mamba 有潜力将类似 Transformer 的性能与传统 RNN 的效率结合起来。
六月,道、谷 共同撰写了一篇论文与 Nvidia 研究人员合作评估了具有 80 亿个参数的 Mamba 模型。他们发现,像 Mamba 这样的模型在许多任务中与同等大小的 Transformer 相比具有竞争力,但在上下文学习和从上下文中回忆信息方面,它们落后于 Transformer 模型。
变形金刚擅长信息回忆,因为它们“记住”了上下文中的每一个标记,这也是为什么它们随着上下文的增长而变得效率较低的原因。相比之下,Mamba 尝试将上下文压缩为固定大小的状态,这必然意味着丢弃长上下文中的一些信息。
Nvidia 团队发现,他们通过将 24 个 Mamba 层与 4 个注意力层交错的混合架构获得了最佳性能。这比纯变压器模型效果更好或者纯粹的曼巴模型。模型需要
一些注意力层,以便它可以记住上下文中早期的重要细节。但几个注意力层似乎就足够了;其余的注意力层可以用更便宜的 Mamba 层替换,对模型的整体性能影响很小。
8 月,一家名为 AI21 的以色列初创公司宣布推出 坚巴1.5家族模型。最大的版本有 3980 亿个参数,其大小与 Meta 的 Llama 405B 模型相当。Jamba 1.5 Large 的 Mamba 层数是注意力层的七倍。因此,Jamba 1.5 Large 所需的内存远低于 Meta 和其他同类型号。例如,AI21 估计 Llama 3.1 70B 需要 80GB 内存来跟踪 256,000 个上下文标记。Jamba 1.5 Large 仅需要 9GB,因此该模型可以在功能较弱的硬件上运行。
Jamba 1.5 Large 型号的 MMLU 得分为 80,明显低于 Llama 3.1 70B 的 86 分。因此,按照这一标准,Mamba 不会将变压器从水中炸出。然而,这可能不是同类比较。像 Meta 这样的前沿实验室在训练数据和训练后基础设施上投入了大量资金,以将 MMLU 等基准测试的性能提高几个百分点。同样类型的强化优化有可能缩小 Jamba 与前沿型号之间的差距。
因此,虽然较长上下文窗口的好处是显而易见的,但实现这一目标的最佳策略却并不明显。短期内,人工智能公司可能会继续使用巧妙的效率和扩展技巧(例如 FlashAttention 和 Ring Attention)来扩展普通法学硕士。从长远来看,我们可能会看到人们对 Mamba 以及其他无需关注的架构越来越感兴趣。或者也许有人会想出一种全新的架构,使 Transformer 变得过时。
但我非常有信心,扩大基于变压器的前沿模型本身并不能成为解决方案。如果我们想要能够处理数十亿代币的模型(很多人都这样做),我们就需要跳出框框思考。
Tim Lee 于 2017 年至 2021 年在 Ars 工作。去年,他推出了一份时事通讯, 了解人工智能,探索人工智能如何运作以及它如何改变我们的世界。您可以订阅 这里。