分享

用一个例子,通俗易懂地说说大模型的原理

 lanbo764 2024-03-19 发布于河南

最近,无论我走到哪里,似乎都能听到人们在讨论 AI,我想你也一样。人们不停地讨论着 AI 的影响、伦理问题、利弊等等。但我那些非技术出身的朋友们很少聊到这些技术是如何工作的。因为对他们来说,这些概念看起来复杂而深奥。要理解 LLM 是如何工作的,似乎是一个不可能完成的任务。

其实这并没有这么难,任何人都能够理解它。因为推动现今 AI 飞速发展的核心原理其实非常简单。

所以,请耐心看完我这篇不到两千字的文章,我会尽量用浅显的语言 —— 不涉及任何专业术语或数学方程式 —— 来解释 LLM 是怎样工作的。

#01举个例子

想象这样一个场景:你在准备晚餐,发现还需要再加一道配菜。你已经准备的食物差那么一点点。因此,我们需要再加一样东西来丰富这顿饭。

这听起来容易,做起来难。因为我们选择的配菜必须和主菜协调。如果主菜是咸的,配菜也应该是咸的。如果餐中已经包含沙拉,那我们就不需要再做一份了。如果主菜以淀粉食物为主,也许我们可以考虑加一道烤蔬菜。

有没有一款应用,可以直接告诉你该做什么呢?不是随机挑选的那种。你只需告诉它你已经在做的菜肴,它就能推荐最合适的配菜。这个应用能适用于任何一顿饭,无论是为四个人还是四十个人准备,无论是什么样的菜肴组合、口味搭配,它都能应对自如。

用一个例子,通俗易懂地说说大模型的原理

我们打算用简单的两步来开发这款应用程序……

首先,我们要让它学会用计算机能理解的方式来分析每一顿餐。计算机毕竟没有味蕾,它们需要将原本对它们而言毫无直觉可言的概念(即食物)转换成能够捕捉到所有可能影响食物搭配的数据。

接着,我们要教它一种方法,让它能够根据任何一组已有的菜肴来推荐新的菜肴。这个过程不仅仅是记住它之前见过的东西。要记住,这个应用需要适用于各种菜肴的组合,即使是它以前从未见过的搭配。因此,我们不只是在编程,我们是在教它。

第一步:餐食建模

那么,第一步就是教会计算机如何将餐食视为数据。我们不会通过告诉它餐食的具体信息(比如味道或适合搭配的食物)来实现这一点。那种方法属于传统的机器学习(Machine Learning)。这种方法过于局限,且容易出错。相反,我们会向它提供大量数据,这些数据包含了人们过去是如何将不同的菜肴搭配在一起的。

比如,让我们考虑两种菜肴:凯撒沙拉和卡普雷塞沙拉。我们人类知道这两道菜相似:它们都是意大利菜,都是沙拉,都含有蔬菜和奶酪…… 但机器学习这两道菜的相似性时,不需要了解这些信息。

用一个例子,通俗易懂地说说大模型的原理

当我们在大量数据中搜索时,我们发现每当出现凯撒沙拉,它通常与其他意大利菜肴搭配。同样地,卡普雷塞沙拉通常不会与其他沙拉出现在同一餐中,但它们会与意大利菜肴一起出现。

由于这两种菜肴经常与相同类型的其他菜肴共同出现,我们可以认为它们是相似的。它们倾向于出现在相同的食物组合中。可以这样说,一道菜的特点,往往体现在它常伴随的食物中。

用一个例子,通俗易懂地说说大模型的原理

这个过程并不像看上去那么直观。我们并不是在寻找凯撒沙拉和卡普雷塞沙拉共同出现的情况。事实上,即使它们从未一起出现过,只要它们经常与相同的其他菜肴出现,我们就可以认为它们相似。

想想我们刚才做的事情。设想我们想在一张图表上展示所有食物:

用一个例子,通俗易懂地说说大模型的原理

首先,我们从数据中找到所有可能的菜肴,并随机地在图表上标记它们:

用一个例子,通俗易懂地说说大模型的原理

这里,我们仅用四种菜肴来示例。但实际上,请想象所有可能的菜肴。

现在,每当我们在数据中发现两种食物常与其他菜肴一起出现,我们就把它们在图表上移得更近一些。比如,发现不同类型的寿司经常与同一种味噌汤搭配,我们就把这些寿司在图表上靠拢。同样,如果比萨和意面都常与蒜香面包搭配,我们也让它们在图表上靠近:

用一个例子,通俗易懂地说说大模型的原理

经过无数次这样的操作后,会出现一种神奇的现象。可以互换的菜肴会聚集在非常靠近的位置。相对可以互换的菜肴(比如塔可和墨西哥卷饼)会更靠近彼此。而很少或根本不能互换的菜肴(比如汉堡和寿司)则会被放在很远的位置。

用一个例子,通俗易懂地说说大模型的原理

在现实中,两个维度是不够的。每种菜系和不同的餐食都需要足够的空间来区分,这意味着真正的图表应该包含更多的轴(可能是数百个,甚至数千个)。虽然这无法直观地展示,但基本原理是一样的。我们将所有食物分散开,然后根据它们与类似菜肴的共现情况,逐渐靠近。

为了方便描述,我把这个庞大、多维度的图形称之为 “美食空间”。在这个空间里,任何可能的食物都有其特定的位置,它们与相似的食物相邻,与差异较大的食物则相距较远。

换个角度来看,这真是太有趣了。我们刚构建了一个精准的食物类型模型,在这个模型中,类似的食物被聚集在一起,而不同的食物则远离彼此。而且有趣的是,这一切并未涉及到食物的味道或成分。

此外,由于我们基于大量数据建立了这个模型,我们能够进一步做一些有趣的尝试:进行食物算术。

食物算术?“你在开玩笑吧!”

我向你保证,这不是玩笑。虽然你可能不太相信,但美食空间中食物的位置其实并非随机。事实上,不仅相似的食物被安排在一起,它们之间的关系还非常合理。例如,含有面包的食物都聚集在同一平面上,咸味食物则在同一条线上排列。枫糖口味的食物也有着某种数学上的联系。

这意味着我们能做出这样的操作:如果我取一个卷饼的坐标,减去玉米饼的坐标,最终得到的位置接近卷饼碗。同理,如果我取鸡肉面条汤的坐标,减去面条的坐标,再加上米饭的坐标,得到的位置就接近鸡肉米汤。

用一个例子,通俗易懂地说说大模型的原理

食物算术,真是令人震惊!

最重要的一点:美食空间里的食物排列已经不再是随机的了。实际上,每种食物的位置都遵循着隐藏的数学规律,这些规律让每种食物都与其他食物保持着合理的相对位置。

第二步:寻找模式

很好,现在我们已经建立了美食空间,并为各种食物定义了相对于其他食物的合理坐标。下一步该怎么做呢?

接下来,我们将再次训练模型。但这次,我们要输入的是完整的餐点 —— 涵盖了我们所见过的所有餐点 —— 并让它寻找其中的模式。我们的目标是训练程序回答这样一个问题:如果一顿饭包含了 A、B 和 C 这三种菜肴,那么 D 最有可能是什么类型的菜肴?

为此,我们需要对每一顿饭做出询问:在美食空间中,这顿饭看起来是怎样的?比如说,我们发现很多餐点在图表的这四个区域中有共同的菜肴:

用一个例子,通俗易懂地说说大模型的原理

现在,我们可以从更高的视角来看这个问题,仅关注美食空间中的坐标,而忽略是哪些具体的食物让我们识别出了这种模式。我们可以得出结论:如果一顿饭已经包含了这三个区域的菜肴,那么最适合作为第四道菜的选择应该在那最后一个区域:

用一个例子,通俗易懂地说说大模型的原理

记住这个原则:“一道菜肴的特点,取决于它所搭配的其他菜肴。” 由于我们的模型被训练来考虑食物类型及它们之间的关系,而不是具体的菜肴成分和口味,因此它能够在任何情景下,结合任何风味组合,找出最佳的搭配菜肴。只需给定几个食物区域,它就能找到下一道菜最可能出现的区域……

…… 这正好让我们回到了最初的目标,并且已经成功实现了。我们想要打造一个应用程序,能够准确告诉我们应该将哪些菜肴搭配在一起。现在,我们做到了。

#02用文字代替食谱

那么,这一切和 LLM 有什么联系呢?

只需将餐点的概念替换成句子,将这些餐点中的菜肴替换成单词。这样一个简单的替换,采用相同的框架和方法,就能让你理解我们今天所熟悉的基于文本的生成式 AI 工具。

第一步:我们要训练一个模型,使其能够根据单词在类似环境中出现的频率,理解单词间的关系。可以这么说:“一个单词的特征,取决于它周围的单词。” 我们需要将大量人类撰写的数据输入给它(这里的 “大量”,基本涵盖了整个互联网的范围),然后模型会适时地调整单词之间的位置关系。

如今,模型输出的不再是 “餐饮空间”。而是所谓的向量空间(vector-space)。但其背后的原理依旧不变。系统并不真正理解任何一个单词的含义,正如它无法感知菜肴的味道一样。它仅仅能够理解每个单词在向量空间中与其他单词的相互关系。

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

对于 LLM,它们实际上做的就是 “下一个单词预测”,这与我们之前用餐计划的比喻类似。比如说,你向一个 LLM 提出这样的指令:“Tell me you love me.” 它会通过所有已掌握的模式寻找来回答一个问题:这串单词之后,最可能跟随的单词是什么?换个方式表达就是:基于这个句子中单词在向量空间的坐标,我在其他句子中观察到的模式告诉我,下一个单词应该在哪里寻找?

LLM 找到的答案是 “I”。确定了这一点后,它会将 “I” 附加到你的原始指令之后,并将整个句子重新输入系统。那么,接下来最可能出现的单词是什么?“Tell me you love me. I” 之后呢?显然是 “love”!将其附加上,再将整个句子投入系统。接下来可能的是:“Tell me you love me. I love”……

大致就是这样的过程。

#03总结

当然,这个过程还包含了一些更为细致的内容。其中涉及到复杂的数学原理和计算过程。但其根本原理其实与前面提到的用餐计划例子中的原理大同小异。

这就解释了为什么我们正在经历的这场 AI 风潮如此令人着迷。考虑到这项技术带来的巨大变革,其实它的原理并不复杂。只需要几个基本的数学概念,大量的训练数据,再加上一些小小的创新和调整,你就能打造出一台能够 “思考” 的机器。

原文链接:https:///@NirZicherman/how-ai-works-2499120a78cb

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多