ChatGPT工作原理:内部

2023-05-2220:04:59人工智能与大数据Comments773 views字数 4355阅读模式

终于准备好讨论 ChatGPT 内部的内容了。是的,最终,它是一个巨大的神经网络 —— 目前是所谓的 GPT-3 网络的一个版本,有 1750 亿个权重。在许多方面,这是一个非常像我们讨论过的其他神经网络。但它是一个特别为处理语言问题而设置的神经网络。它最显著的特征是一个叫做 “转化器” 的神经网络架构。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ai/41533.html

在我们上面讨论的第一个神经网络中,任何给定层的每个神经元基本上都与前一层的每个神经元相连(至少有一些权重)。但是,如果一个人在处理具有特殊的、已知的结构的数据时,这种全连接的网络(大概)是过剩的。因此,例如,在处理图像的早期阶段,典型的做法是使用所谓的卷积神经网络(“convnets”),其中的神经元被有效地布置在一个类似于图像中的像素的网格上 —— 并且只与网格上附近的神经元相连。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ai/41533.html

变换器的想法是为构成一段文本的标记序列做一些至少有点类似的事情。但是,转化器并不只是在序列中定义一个可以有连接的固定区域,而是引入了 “注意” 的概念 —— 以及对序列的某些部分比其他部分更 “注意” 的概念。也许有一天,仅仅启动一个通用的神经网络并通过训练进行所有的定制是有意义的。但至少到现在为止,将事情 “模块化” 在实践中似乎是至关重要的,就像变压器那样,可能也像我们的大脑那样。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ai/41533.html

好吧,那么 ChatGPT(或者说,它所基于的 GPT-3 网络)实际上是做什么的?回想一下,它的总体目标是以 “合理” 的方式延续文本,基于它所看到的训练(包括从网络上查看数十亿页的文本等),所以在任何时候,它都有一定数量的文本,它的目标是为下一个要添加的标记提出适当的选择。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ai/41533.html

它的操作分为三个基本阶段:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ai/41533.html

首先,它获取与迄今为止的文本相对应的标记序列,并找到代表这些标记的嵌入(即一个数字阵列)。其次,它以 “标准的神经网络方式” 对这一嵌入进行操作,数值 “通过” 网络中的连续层,产生一个新的嵌入(即一个新的数字阵列)。然后,它从这个数组的最后一部分,生成一个大约 50,000 个值的数组,这些值变成了不同的可能的下一个标记的概率。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ai/41533.html

(而且,是的,恰好使用的标记的数量与英语中的常用词的数量相同,尽管只有大约 3000 个标记是整个单词,其余的是片段。)关键的一点是,这个管道的每一部分都是由一个神经网络实现的,其权重是由网络的端到端训练决定的。换句话说,实际上,除了整体架构之外,没有任何东西是 “明确设计的”;所有东西都是从训练数据中 “学习” 的。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ai/41533.html

然而,在架构的设置方式上有很多细节,反映了各种经验和神经网络的传说。而且,尽管这肯定是进入了杂草丛中,但我认为谈论其中的一些细节是有用的,尤其是为了了解建立像 ChatGPT 这样的东西所需要的东西。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ai/41533.html

首先是嵌入模块。下面是 GPT-2 的 Wolfram 语言示意图:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ai/41533.html

ChatGPT工作原理:内部文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ai/41533.html

输入是一个由 n 个标记组成的向量(如上一节所述,由 1 到 50,000 的整数表示)。这些标记中的每一个都被(通过单层神经网络)转换成一个嵌入向量(GPT-2 的长度为 768,ChatGPT 的 GPT-3 为 12,288)。同时,还有一个 “二级路径”,它将标记的(整数)位置序列,并从这些整数中创建另一个嵌入向量。最后,来自令牌值和令牌位置的嵌入向量被加在一起 —— 产生嵌入模块的最终嵌入向量序列。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ai/41533.html

为什么只是把令牌值和令牌位置的嵌入向量加在一起?我不认为这有什么特别的科学依据。只是各种不同的东西都被尝试过,而这是一个似乎有效的方法。这也是神经网络传说的一部分,从某种意义上说,只要你的设置是 “大致正确的”,通常就可以通过做充分的训练来确定细节,而不需要真正 “在工程层面上理解” 神经网络最终是如何配置它的。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ai/41533.html

下面是嵌入模块所做的工作,对字符串 “hello hello hello hello hello bye bye bye bye bye bye bye bye bye bye bye bye bye bye bye bye bye bye bye bye bye bye bye bye bye bye bye bye bye bye bye bye bye bye 2”:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ai/41533.html

ChatGPT工作原理:内部文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ai/41533.html

每个标记的嵌入向量的元素都显示在页面下方,在整个页面上,我们首先看到的是 “hello” 的嵌入,然后是 “bye” 的嵌入。上面的第二个数组是位置嵌入 —— 其看起来有点随机的结构只是 “碰巧学到的”(在这种情况下是 GPT-2)。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ai/41533.html

好了,在嵌入模块之后,是转化器的 “主要事件”:一连串所谓的 “注意块”(GPT-2 为 12 个,ChatGPT 的 GPT-3 为 96 个)。这一切都很复杂 —— 让人想起典型的难以理解的大型工程系统,或者,生物系统。但无论如何,这里是一个单一的 “注意块” 的示意图(对于 GPT-2):文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ai/41533.html

ChatGPT工作原理:内部文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ai/41533.html

在每个这样的注意力块中,有一系列的 “注意力头”(GPT-2 有 12 个,ChatGPT 的 GPT-3 有 96 个) —— 每一个都是独立操作嵌入向量中的不同数值块的。(是的,我们不知道为什么分割嵌入向量是个好主意,或者它的不同部分有什么 “意义”;这只是 “被发现可行” 的事情之一)。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ai/41533.html

好吧,那么注意头是做什么的?基本上,它们是一种在标记序列中 “回顾” 的方式(即在迄今为止产生的文本中),并将过去的内容 “打包” 成有助于寻找下一个标记的形式。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ai/41533.html

在上面的第一节中,我们谈到了使用 2-gram 概率来根据它们的直接前身来挑选单词。变换器中的 “注意” 机制所做的是允许 “注意” 甚至更早的词 —— 因此有可能捕捉到,比如说,动词可以指代在句子中出现在它们之前的许多词的名词的方式。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ai/41533.html

在更详细的层面上,注意力头所做的是以一定的权重重新组合与不同标记相关的嵌入向量中的大块。因此,例如,在第一个注意力区块中的 12 个注意力头(在 GPT-2 中)对上面的 “hello, bye” 字符串有如下(“look-back-all-the-way-beginning-the-sequence-of-tokens”)模式的 “重组权值”:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ai/41533.html

ChatGPT工作原理:内部文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ai/41533.html

在经过注意力头的处理后,产生的 “重新加权的嵌入向量”(GPT-2 的长度为 768,ChatGPT 的 GPT-3 的长度为 12288)被传递到一个标准的 “全连接” 神经网层。很难掌握这个层在做什么。但这里是它使用的 768×768 权重矩阵的图(这里是 GPT-2):文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ai/41533.html

ChatGPT工作原理:内部文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ai/41533.html

采用 64×64 的移动平均数,一些(随机漫步式的)结构开始出现:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ai/41533.html

ChatGPT工作原理:内部文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ai/41533.html

是什么决定了这种结构?最终,它可能是人类语言特征的一些 “神经网络编码”。但到现在为止,这些特征可能是什么还很不清楚。实际上,我们正在 “打开 ChatGPT 的大脑”(或至少是 GPT-2),并发现,是的,里面很复杂,而且我们不了解它 —— 尽管最终它产生了可识别的人类语言。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ai/41533.html

好吧,在经历了一个注意力区块之后,我们得到了一个新的嵌入向量 —— 然后它又被连续地传递到其他的注意力区块中(GPT-2 共有 12 个;GPT-3 有 96 个)。每个注意力区块都有自己特定的 “注意力” 和 “完全连接” 权重模式。这里是 GPT-2 的 “你好,再见” 输入的注意权重序列,用于第一个注意头(attention head):文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ai/41533.html

ChatGPT工作原理:内部文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ai/41533.html

这里是全连接层的(移动平均)“矩阵”:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ai/41533.html

ChatGPT工作原理:内部文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ai/41533.html

奇怪的是,尽管这些 “权重矩阵” 在不同的注意力块中看起来很相似,但权重的大小分布可能有些不同(而且不总是高斯的):文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ai/41533.html

ChatGPT工作原理:内部文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ai/41533.html

那么,在经历了所有这些注意力区块之后,转化器的净效果是什么?从本质上讲,它是将原始的符号序列的嵌入集合转化为最终的集合。而 ChatGPT 的具体工作方式是在这个集合中提取最后一个嵌入,并对其进行 “解码”,以产生一个关于下一个标记应该是什么的概率列表。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ai/41533.html

这就是 ChatGPT 的概要内容。它可能看起来很复杂(尤其是因为它有许多不可避免的、有点武断的 “工程选择”),但实际上,所涉及的最终元素非常简单。因为最终我们要处理的只是一个由 “人工神经元” 组成的神经网络,每个神经元都在进行简单的操作,即接受一组数字输入,然后将它们与某些权重相结合。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ai/41533.html

ChatGPT 的原始输入是一个数字数组(到目前为止符号的嵌入向量),当 ChatGPT“运行” 以产生一个新的符号时,所发生的只是这些数字 “通过” 神经网的各层,每个神经元 “做它的事”,并将结果传递给下一层的神经元。没有循环或 “回头”。一切都只是通过网络 “前馈”。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ai/41533.html

这是一个与典型的计算系统 —— 如图灵机 —— 非常不同的设置,在图灵机中,结果是由相同的计算元素反复 “再处理” 的。在这里,至少在生成一个特定的输出符号时,每个计算元素(即神经元)只被使用一次。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ai/41533.html

但在某种意义上,即使在 ChatGPT 中,仍然有一个重复使用计算元素的 “外循环”。因为当 ChatGPT 要生成一个新的标记时,它总是 “读取”(即作为输入)它之前的整个标记序列,包括 ChatGPT 自己之前 “写” 的标记。我们可以认为这种设置意味着 ChatGPT —— 至少在其最外层 —— 涉及到一个 “反馈循环”,尽管在这个循环中,每一次迭代都明确地显示为一个出现在其生成的文本中的标记。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ai/41533.html

但让我们回到 ChatGPT 的核心:反复用于生成每个标记的神经网络。在某种程度上,它非常简单:一整个相同的人工神经元的集合。网络的某些部分只是由(“完全连接”)的神经元层组成,其中某一层的每个神经元都与前一层的每个神经元相连(有一定的权重)。但是,特别是它的变压器结构,ChatGPT 有更多的结构部分,其中只有不同层的特定神经元被连接。(当然,人们仍然可以说,“所有的神经元都是连接的” —— 但有些神经元的权重为零)。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ai/41533.html

此外,ChatGPT 中的神经网的某些方面并不是最自然地被认为是由 “同质” 层组成的。例如,正如上面的图标摘要所示,在一个注意力区块中,有一些地方对传入的数据进行了 “多份拷贝”,然后每个拷贝经过不同的 “处理路径”,可能涉及不同数量的层,然后才重新组合。但是,虽然这可能是对正在发生的事情的一种方便的表述,但至少在原则上总是可以考虑 “密集地填入” 层,但只是让一些权重为零。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ai/41533.html

如果我们看一下 ChatGPT 的最长路径,大约有 400 个(核心)层参与其中 —— 在某些方面不是一个巨大的数字。但是有数以百万计的神经元 —— 总共有 1750 亿个连接,因此有 1750 亿个权重。需要认识到的一点是,每当 ChatGPT 生成一个新的令牌时,它都要进行涉及这些权重中每一个的计算。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ai/41533.html

在实现上,这些计算可以 “按层” 组织成高度并行的阵列操作,可以方便地在 GPU 上完成。但是,对于产生的每一个标记,仍然要进行 1750 亿次计算(最后还要多一点) —— 因此,是的,用 ChatGPT 生成一个长的文本需要一段时间,这并不令人惊讶。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ai/41533.html

但最终,最了不起的是,所有这些操作 —— 它们各自都很简单 —— 能够以某种方式共同完成如此出色的 “类似人类” 的文本生成工作。必须再次强调的是,(至少到目前为止,我们知道)没有任何 “最终的理论理由” 来解释这样的工作。事实上,正如我们将要讨论的那样,我认为我们必须把这看作是一个潜在的令人惊讶的科学发现:在像 ChatGPT 这样的神经网络中,有可能捕捉到人类大脑在生成语言方面的本质。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/ai/41533.html

  • 本站内容整理自互联网,仅提供信息存储空间服务,以方便学习之用。如对文章、图片、字体等版权有疑问,请在下方留言,管理员看到后,将第一时间进行处理。
  • 转载请务必保留本文链接:https://www.cainiaoxueyuan.com/ai/41533.html

Comment

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定