【非专业】一文解析,人工智能的工作原理

发表时间: 2024-01-11 09:50

学习AI

最近我周围都是关于AI的讨论。我相信你也有过。关于它的影响、它提出的道德问题、利弊的讨论无休无止。然而,我的非技术朋友之间的讨论很少涉及这些东西的实际工作原理。这是因为,从外部来看,这些概念似乎令人畏惧。掌握大语言模型 (LLM) 功能的想法似乎难以克服。

但事实并非如此。任何人都可以理解。这是因为推动当今AI激增的基本原理相当简单。

因此,请耐心等待我用不到两千字的文字,我将尝试在没有任何技术术语或数学方程式的情况下解释LLM的实际运作方式。

菜单

想象一下:您正在做一顿晚餐,但您需要再准备一道配菜。你准备的食物不够。所以我们需要在膳食中添加一种成分。

但这说起来容易做起来难。我们选择的食物需要与膳食相适应。如果这顿饭很美味,我们的配菜也应该很美味。如果已经有沙拉,我们就不应该再做。如果这顿饭的淀粉含量很高,也许我们想加入烤蔬菜。

如果有一个应用程序能够告诉您要做什么不是很好吗?而且不是随机的。你把已经做好的东西放进去,它会告诉你要添加的最佳配菜。该应用程序适用于任何菜肴、任何菜肴和口味的组合,无论是供四个人还是四十人享用。

以下是我们将如何制作这个应用程序。两个简单的步骤...

首先,我们要让它理解如何以计算机可以理解的方式思考每顿饭。毕竟,计算机没有味蕾。他们需要能够接受一个他们没有直观理解的概念(食物),并将其编码为某种数据,捕获可能影响其与其他食物的契合度的所有内容。

其次,我们将让它学习一种方法,可以取出任意一组现有菜肴并吐出另一组菜肴。它不仅仅是记住以前见过的东西。回想一下,这个应用程序需要适用于任何菜肴组合,甚至是从未见过的菜肴组合。所以我们不仅仅是要对系统进行编程。我们要它。

第一步:模拟食谱

那么,第一步。我们需要教计算机将食谱视为数据。我们不会通过告诉它有关这顿饭的事情(比如它的味道是什么或它适合什么)来做到这一点。这是旧类型的机器学习。限制太多;太容易出错。相反,我们将向其提供大量关于人们过去搭配的菜肴类型的数据。

让我们考虑两种类型的菜肴:凯撒沙拉和卡普雷塞沙拉。作为人类,我们知道这两道菜很相似。它们都是意大利菜,都是沙拉,都含有蔬菜和奶酪……但是对于机器来说,要了解这两道菜有多么相似,它不需要知道上述任何内容。

当我们搜索海量数据时,每当我们看到凯撒沙拉时,很可能会看到它与其他意大利菜肴搭配。而且当我们看到它时,我们也很可能不会在餐中看到其他沙拉。有趣的是,卡普雷塞沙拉也是如此。它们通常不会与其他沙拉一起出现,但会与意大利菜肴一起出现。

因为这两种菜肴经常与相同类型的其他菜肴同时出现,所以我们可以将它们归类为相似的。它们往往存在于相同的食物中。你可能会说“一道菜肴的特点在于它所陪伴的人”。

这并不那么直观。请注意,我们没有寻找凯撒沙拉和凯普雷塞沙拉同时出现的任何餐点。它们永远不需要同时出现,我们才会认为菜肴相似。我们只需要在相同的其他菜肴中找到它们,就可以确定人们通常认为它们可以互换,因此非常相似。

这是思考我们刚刚所做的事情的另一种方式。想象一下我们想要在这张图表上绘制所有食物:

首先,我们选取了在数据中发现的所有可能的菜肴,并随机绘制它们:

在这里,我们仅展示四道菜以供说明。但想象一下每一种可能的菜肴。

现在,当我们查看数据时,每当我们发现两种食物与其他菜肴同时出现时,我们就可以将它们移得更近。当我们看到不同类型的寿司往往与相同的味噌汤搭配时,我们将让寿司彼此靠近。当我们看到披萨和意大利面都出现在大蒜面包旁边时,我们也让它们放在一起:

在做了很多次之后(我的意思是很多次),神奇的事情发生了。可以互换的菜肴会非常紧密地聚集在一起。可以互换的菜肴(例如炸玉米饼和墨西哥卷饼)看起来彼此更接近。很少可以互换的菜肴(例如汉堡和寿司)将被放置得很远。

现在,在实践中,二维是不够的。每一种菜肴和不同的膳食都需要有足够的空间,这意味着绘制图表的真正方法是在由更多轴(数百个,也许数千个)组成的图表。这是不可能想象的,但基本概念是相同的。我们将所有食物分散开来,并在它们与类似菜肴同时出现时将它们移得更近。

作为简写,我将把这个更大的多轴图称为食谱空间。每一种可能的食物都存在于用餐空间中,其坐标靠近那些可以互换的食物,远离那些非常不同的食物。

退后一步,让我们欣赏一下这是多么迷人。我们能够提出一个非常准确的食物类型模型,其中相似的食物被分组在一起,而不同的食物则相距很远。我们这样做时没有考虑食物的味道或它们的成分。

另外,因为我们使用大量数据对其进行了训练,所以我们可以做其他事情。我们能够进行食物算术。

食物算术?“尼尔,你疯了!”

我向你保证,我不是。你必须相信我的话,但事实证明,我们用餐空间中菜肴的放置并不是随机的。事实上,不仅相似的膳食间隔在一起,而且食物之间的关系也具有逻辑意义。含有面包的食物都一起出现在一个平面上。咸味食物有一个共同点。枫味的东西有某种数学联系。

这使我们实际上可以做这样的事情:如果我要获取墨西哥卷饼的坐标并减去玉米饼的坐标,我最终会接近墨西哥卷饼碗的点。如果我取鸡汤面的坐标,减去面条的坐标,然后加上米饭的坐标,我最终会接近鸡饭汤的点。

食物算术!

重要的一点是:餐食在用餐空间中的放置不再是随机的。事实上,存在潜在的、隐藏的数学模式,这意味着每种食物都以相对于其他食物的逻辑方式放置。

(顺便说一句。如果您喜欢这篇文章,但尚未订阅我的免费每周时事通讯 Z-Axis,请考虑点击此处订阅!)

第二步:寻找模式

好的,太好了,我们创造了用餐空间,并为每种类型的食物提供了某种相对于其他食物有意义的协调。怎么办?

好吧,让我们再次训练我们的模型。只是这一次,我们会喂它整顿饭——我们说的是我们见过的每一顿饭——并且我们会要求它寻找模式。具体来说,我们希望训练我们的程序来回答这个问题:如果一顿饭包含 A、B 和 C,那么哪种类型的菜肴最有可能包含 D?

为此,我们所要做的就是在训练的每一餐中询问:用餐空间中的情况是什么样的?例如,假设我们看到许多餐食在图表的这四个区域中共享菜肴:

我们现在可以概括并只考虑用餐空间中的坐标,而忽略哪些食物甚至训练我们首先识别这种模式。我们可以得出结论,如果一顿饭已经包含这三个区域中的菜肴,则最好的第四个组成部分将在最后一个区域中找到:

回想一下,“一道菜是根据它所经营的公司来分类的。” 而且由于我们的模型经过训练,可以考虑食物的类型和食物之间的关系,而不是考虑具体的菜肴包含哪些内容以及它们的味道如何,因此它可以考虑任何场景和任何口味组合,并找出添加到膳食中的最佳菜肴。给定几个食物区域,它只需要找到下一道菜最常见的区域……

......这让我们回到了最初的目标,现在已经完成了。我们希望构建一个应用程序,能够可靠地告诉我们哪些菜肴可以与一系列其他菜肴搭配。我们就是这么做的。

用文字代替食谱

那么这一切与大型语言模型有什么关系呢?

只需用句子代替膳食的概念即可。并用文字代替那些饭菜中菜肴的概念。这种简单的替换,使用相同的框架和方法,本质上可以让您使用我们今天都熟悉的基于文本的生成人工智能工具

第一步:训练一个模型,根据单词在相似上下文中出现的频率来理解单词之间的关系。“一个是根据它所属的公司来分类的。” 向它提供大量人工编写的数据(当我说大量时,我基本上指的是整个互联网),并让它适当地调整单词坐标。

输出不再称为用餐空间。它称为向量空间。但原理是相同的。系统不知道任何单词的含义(就像它不知道菜肴的味道一样)。它只了解该单词如何与向量空间中的所有其他单词相关。

第二步:寻找模式。如果一个句子包含单词 A、B、C,那么下一个最有可能出现的单词是什么?如果它包含 X 和 Y,那么它应该在向量空间的哪个区域中查找接下来发生的事情?

就法学硕士而言,他们真正在幕后做的就是所谓的“下一个单词预测”(就像我们最初的类比执行“下一道菜预测”一样)。例如,假设您向法学硕士提出了以下要求:“告诉我您爱我。” 它将搜索所有模式发现来回答一个问题:哪个单词最有可能遵循该单词序列?或者换句话说:给定该句子中单词的向量空间坐标,我在其他句子中看到了什么模式来确定在哪里可以找到下一个单词

LLM 会找到的答案是“我”。确定后,它会将“我”添加到原始提示的末尾,并将整个内容反馈回自身。现在,“告诉我你爱我”之后最有可能出现的词是什么。我”?当然是“爱”!把它粘起来,把整个东西带回来,然后把它反馈回来。接下来可能会发生什么:“告诉我你爱我。我爱”?…

你明白了。

组合起来

当然,还有一些细微差别。有一些奇特的数学和复杂的计算。但基本原理确实与膳食


计划示例中的基本原理没有什么不同。

对我来说,这解释了为什么我们正在经历的人工智能现象如此令人着迷。考虑到这项技术的变革性,它实际上并没有那么复杂。一些简单的数学概念,大量的训练数据,一点点盐和胡椒粉,你基本上就为自己建造了一台思考机器。