一、简介
本文旨在让没有计算机科学背景的人深入了解 ChatGPT 和类似的 AI 系统(GPT-3、GPT-4、Bing Chat、Bard 等)的工作原理。ChatGPT 是一个聊天机器人——一种构建的对话式人工智能——但建立在大型语言模型之上。这些绝对是文字,我们将把它们全部分解。在此过程中,我们将讨论它们背后的核心概念。本文不需要任何技术或数学背景。我们将大量使用隐喻来说明这些概念。我们将讨论为什么核心概念以它们的方式工作,以及我们可以期望或不期望像 ChatGPT 这样的大型语言模型做什么。
这就是我们要做的事情。我们将温和地介绍一些与大型语言模型和 ChatGPT 相关的术语,不使用任何行话。如果我必须使用行话,我会不使用行话来分解它。我们将从“什么是人工智能”开始,然后逐步提高。我会尽可能地使用一些反复出现的隐喻。我将讨论这些技术的影响,即我们应该期望它们做什么或不应该期望它们做什么。
我们走吧!
1.什么是人工智能?
但首先,让我们从一些您可能经常听到的基本术语开始。什么是人工智能?
人工智能:如果人类做类似的事情,则执行人们可以合理地称为智能行为的实体。
用“智能”这个词来定义人工智能有点问题,但没有人能就“智能”的一个好的定义达成一致。不过,我认为这仍然相当有效。它基本上是说,如果我们看到一些人造的东西,它做了一些引人入胜、有用的事情,而且看起来有些不平凡,那么我们可以称之为智能。例如,我们经常将“AI”一词归因于电脑游戏中由计算机控制的角色。大多数这些机器人都是简单的if-then-else代码(例如,“如果玩家在射程内,则射击,否则移动到最近的巨石进行掩护”)。但如果我们所做的工作是让我们保持参与和娱乐,而不是做任何明显愚蠢的事情,那么我们可能会认为它们比实际情况更复杂。
一旦我们了解了某些东西是如何工作的,我们可能不会留下深刻的印象,并期望幕后有更复杂的东西。这完全取决于您对幕后发生的事情的了解。
他们的关键点是人工智能不是魔法。而且因为它不是魔法,所以可以解释。
那么让我们开始吧。
2.什么是机器学习?
您经常听到的与人工智能相关的另一个术语是机器学习。
机器学习:一种通过获取数据、形成模型然后执行该模型来创建行为的方法。
有时,手动创建一堆 if-then-else 语句来捕获一些复杂的现象(例如语言)太困难了。在这种情况下,我们尝试找到一堆数据并使用可以在数据中找到模式的算法来建模。
但什么是模型?模型是某些复杂现象的简化。例如,模型车只是真车的更小、更简单的版本,具有许多属性,但并不意味着完全取代原车。模型车可能看起来很真实并且对某些用途有用,但我们无法将它开到商店。
就像我们可以制造更小、更简单的汽车一样,我们也可以制造更小、更简单的人类语言。我们使用“大型语言模型”这个术语,因为从使用它们需要多少内存的角度来看,这些模型很大。生产中最大的模型(例如 ChatGPT、GPT-3 和 GPT-4)足够大,需要在数据中心服务器中运行的大量超级计算机才能创建和运行。
3.什么是神经网络?
从数据中学习模型的方法有很多。神经网络就是这样一种方式。该技术大致基于人类大脑是如何由相互连接的脑细胞网络(称为神经元)组成的,神经元来回传递电信号,以某种方式允许我们做我们所做的所有事情。神经网络的基本概念是在 20 世纪 40 年代发明的,而如何训练神经网络的基本概念是在 20 世纪 80 年代发明的。神经网络的效率非常低,直到 2017 年左右,计算机硬件才足够好,可以大规模使用它们。
但我喜欢用电路来比喻神经网络,而不是大脑。您不必是一名电气工程师就知道电流通过电线流动,并且我们有一种称为电阻器的东西,可以使电流更难流过电路的某些部分。
想象一下,您想要制造一辆可以在高速公路上行驶的自动驾驶汽车。您已在汽车的正面、背面和侧面配备了接近传感器。当有物体非常接近时,接近传感器报告值 1.0;当附近检测不到任何物体时,接近传感器报告值 0.0。
您还装备了您的汽车,以便机器人机构可以转动方向盘、踩刹车和踩油门。当加速器接收到值1.0时,它使用最大加速度,0.0表示没有加速度。同样,发送到制动机构的值 1.0 表示猛踩刹车,0.0 表示不制动。转向机构的值介于 -1.0 到 +1.0 之间,负值表示向左转向,正值表示向右转向,0.0 表示保持直行。
您还记录了有关您驾驶方式的数据。当前面的道路畅通时,您就会加速。当前面有车时,你就减速。当一辆车距离左侧太近时,您会向右转并改变车道。当然,除非您右边也有一辆车。这是一个复杂的过程,涉及基于不同的传感器信息组合的不同动作组合(向左转向、向右转向、或多或少加速、制动)。
现在您必须将传感器连接到机器人机构。你怎么做到这一点?目前还不清楚。因此,您将每个传感器连接到每个机器人执行器。
当你把车开到路上时会发生什么?电流从所有传感器流向所有机器人执行器,汽车同时向左转向、向右转向、加速和制动。一团糟。
那可不好。因此,我拿起电阻器,开始将它们放在电路的不同部分,以便电流可以在某些传感器和某些机器人执行器之间更自由地流动。例如,我希望电流能够更自由地从前接近传感器流向制动器,而不是流向方向盘。我还放入了称为“门”的东西,它会停止电流流动,直到积累足够的电流来翻转开关(仅当前接近传感器和后接近传感器报告高数字时才允许电流流动),或者仅在以下情况下向前发送电能:输入电气强度低(当前接近传感器报告低值时,向加速器发送更多电力)。
但是我该把这些电阻和门放在哪里呢?我不知道。我开始将它们随机地放在各处。然后我再试一次。也许这次我的车开得更好,这意味着有时当数据表明最好制动时它会制动,当数据表明最好转向时它会转向,等等。但它并没有把所有事情都做对。有些事情它做得更糟(当数据表明最好刹车时加速)。所以我不断随机尝试电阻器和门的不同组合。最终我会偶然发现一个效果很好的组合,我宣布成功。也许它看起来像这样:
(实际上,我们不会添加或减少门,它们总是存在的,但我们修改门,以便它们用更少的能量从下面激活或需要更多的能量从下面,或者只有当存在时才释放大量能量来自下面的能量非常少。机器学习纯粹主义者可能会在这种表征中吐出一点点。从技术上讲,这是通过调整门上的偏差来完成的,这通常不会在诸如此类的图表中显示,而是在以下方面显示:电路比喻可以被认为是进入每个门的一根电线,直接插入电源,然后可以像所有其他电线一样进行修改。)
让我们来试驾一下吧!
随意尝试事情很糟糕。一种称为反向传播的算法相当擅长猜测如何改变电路的配置。算法的细节并不重要,只是要知道它对电路进行了微小的改变,以使电路的行为更接近数据建议的情况,并且经过数千或数百万次调整,最终可以得到接近一致的结果数据。
我们称电阻器和门为参数,因为实际上它们无处不在,反向传播算法所做的就是声明每个电阻器更强或更弱。因此,如果我们知道电路的布局和参数值,则可以在其他汽车上复制整个电路。
4.什么是深度学习?
深度学习认识到除了电阻器和门之外,我们还可以在电路中添加其他东西。例如,我们可以在电路中间进行数学计算,在向前发送电力之前将事物相加和相乘。深度学习仍然使用相同的基本增量猜测参数技术。
5.什么是语言模型?
当我们以汽车为例时,我们试图让神经网络执行与我们的数据一致的行为。我们询问是否可以创建一个电路来操纵汽车中的机制,就像驾驶员在类似情况下所做的那样。我们可以用同样的方式对待语言。我们可以查看人类编写的文本,并想知道电路是否可以产生看起来很像人类倾向于产生的单词序列的单词序列。现在,当我们看到单词时,我们的传感器就会启动,我们的输出机制也是单词。
我们想做什么?我们正在尝试创建一个电路,在给定一堆输入单词的情况下猜测输出单词。例如:
“很久以前 ____”
似乎应该用“时间”而不是“犰狳”来填补空白。
我们倾向于从概率的角度来谈论语言模型。从数学上讲,我们将上面的例子写为:
如果您不熟悉该符号,请不要担心。这只是数学谈话,意思是在给定(条形符号表示给定)一堆单词“once”、“upon”和“a”的情况下,单词“time”的概率( P )。我们期望一个好的语言模型产生“时间”一词比“犰狳”一词更高的概率。|
这只是意味着在给定其之前的所有单词(位置 1 到n -1的单词)的情况下,计算序列中第n 个单词的概率。