第2节:大模型的工作原理

上一节我们对大模型有了初步的认识,本节我们继续深入了解大模型的工作原理。

1. 大模型处理文字的过程

首先来看一下,当我们与AI对话的时候,大模型是如何一步步理解我们发出的语句。例如我们给AI发送一条消息:"我喜欢吃苹果"

第一步:分词(Tokenization)

大模型接收到"我喜欢吃苹果"这句话之后,首先会将文字拆分成一个个Token。

原始句子:我喜欢吃苹果
↓
拆分成Token:["我", "喜欢", "吃", "苹果"]

token是大模型理解语言的最小单位,不同的大模型可能会有不同的拆分方式,比如苹果,有可能是一个token,也可能是两个token,当前假设是一个token。

  • "我" → Token 1
  • "喜欢" → Token 2
  • "吃" → Token 3
  • "苹果" → Token 4

第二步:嵌入(Embedding)

有了分词得到的token,接下来将每个Token转换成高维向量,这个过程就像把token变成一串复杂的"特征码":

"我" → [0.1, 0.2, 0.3, ..., 0.8] 
"喜欢" → [0.2, 0.3, 0.4, ..., 0.9]
"吃" → [0.3, 0.4, 0.5, ..., 0.7]
"苹果" → [0.4, 0.5, 0.6, ..., 0.6]

这些向量的特点如下:

  1. 相似性:意思相近的词,它们的向量也会相似比如"苹果"的向量和"梨"的向量会比较接近。

  2. 位置信息:向量中还包含了词的位置信息主语"我"在句首的向量和"我"在句中的向量会略有不同。

  3. 上下文关系:向量能够反映词与词之间的关系,例如"吃"和"苹果"的向量组合,能够表达"吃苹果"这个动作。

通过上面的三个步骤,大模型就已经做好理解这句话的准备了。然后大模型又是如何理解语句的呢,这就要说到一个很重要的概念:注意力机制。

2. 注意力机制:AI的"思考"方式

什么是注意力机制?

我们先看看人是如何理解“我喜欢吃苹果”这句话的,人的大脑会自动关注:

  • "我"是主语
  • "喜欢"是谓语
  • "吃苹果"是动作和对象

AI的注意力机制也是这样工作的,当然,AI分析的是向量数据,不过我们用文字表达会更直观一些。

输入:"我喜欢吃苹果"

1. 每个词都会"关注"其他词:
   "我" → 关注 ["喜欢", "吃", "苹果"]
   "喜欢" → 关注 ["我", "吃", "苹果"]
   "吃" → 关注 ["我", "喜欢", "苹果"]
   "苹果" → 关注 ["我", "喜欢", "吃"]

2. 计算词与词之间的"关注度":
   "我" 和 "喜欢" 的关联度:0.8
   "喜欢" 和 "吃" 的关联度:0.9
   "吃" 和 "苹果" 的关联度:0.95

大模型通过这些关联度来理解词语之间的语义关系,这样的好处是,即使他们在句子中的距离很远,大模型也能知道词语之间的关系。

输入:"虽然下雨了,但是我还是去公园玩了"
注意力计算:
"虽然" → 关注 "但是"(0.9)
"下雨" → 关注 "去公园"(0.7)
"但是" → 关注 "虽然"(0.9)
输入:"小明昨天去公园玩,他很开心"
注意力分析:
"他" → 关注 "小明"(0.95)
"昨天" → 关注 "去公园"(0.8)
"开心" → 关注 "玩"(0.9)

这样大模型能够理解不同词语的对应关系,虽然词语之间隔了其他词,大模型也会知道这对词共同出现的概率也会很大。

注意力机制也会根据上下文动态调整每个词的关注度,这样就能够根据上下文调整词语的含义。

例如:"苹果"在不同上下文中的含义:

场景1:"我喜欢吃苹果"
注意力计算:
"苹果" → 关注 "吃"(0.95)
结果:大模型理解"苹果"是水果

场景2:"我用苹果手机"
注意力计算:
"苹果" → 关注 "手机"(0.95)
结果:大模型理解"苹果"是品牌

总结一下,注意力机制允许模型在处理输入序列时,动态地关注信息中最相关的部分,并根据这些部分来理解语句,并做出决策。通过注意力机制,AI能够像人类一样,在理解信息时自动关注重要的部分,忽略不相关的细节。这就像我们在阅读时,会自动关注句子的重点。

3. AI如何回复消息

知道了AI如何理解语句,那他又是如何组织语言并给出回复的呢?例如我们问出:"苹果是什么颜色的?"我们回顾一下大模型的三步操作:

  1. 分词:将一句拆分成一个个token
  2. 嵌入:将token转换成向量数据
  3. 理解:通过注意力机制计算词语次之间的关联度,并理解语句。

然后大模型开始输出回答,但是这个回复不是一次输出的,而是通过计算概率,一个字一个字往外蹦,具体步骤如下

  • 基于对问题"苹果是什么颜色的?"的理解,以及它在训练数据中学到的海量知识,AI会开始预测回复的第一个词。
  • 它可能会想:"关于'苹果'和'颜色',最常见的开头是什么呢?"
  • 它可能会计算出"苹果"作为回答开头的概率最高。
输出Token序列:["苹果"]
  • 然后,AI会把已经生成的"苹果"也作为新的输入信息,连同原始问题一起考虑。
  • 新的思考内容是:"苹果是什么颜色的?" + "苹果"。接下来应该接什么词呢?
  • 通过注意力机制,它会关注到原始问题中的"颜色",并结合已经生成的"苹果"。
  • 它可能会预测"通常"、"一般"或者直接说颜色。假设它预测出"通常"的概率最高。
输出Token序列:["苹果", "通常"]

持续这个步骤,直到回答完整:为了简化,我们这里只展示主要词汇:

原始问题:"苹果是什么颜色的?"

已生成:"苹果"
AI思考:接下来是什么?(结合问题和"苹果")
预测:"通常"
输出:["苹果", "通常"]

已生成:"苹果 通常"
AI思考:接下来是什么?(结合问题和"苹果 通常")
预测:"是"
输出:["苹果", "通常", "是"]

已生成:"苹果 通常 是"
AI思考:接下来是什么?(结合问题和"苹果 通常 是")
预测:"红色"
输出:["苹果", "通常", "是", "红色"]

已生成:"苹果 通常 是 红色"
AI思考:接下来是什么?(结合问题和"苹果 通常 是 红色")
预测:"的"
输出:["苹果", "通常", "是", "红色", "的"]

大模型继续这个过程,可能会加入"也"、"有"、"绿色"、"黄色"、"品种"等词,直到AI认为回答已经足够完整,比如生成了一个句号,或者达到了某种内部设定的结束标志。最终可能得到这样的回复:"苹果通常是红色的,但也有绿色或黄色的品种。"

这样大模型就完成了一次与我们的交流,交流的过程需要大量的计算,而且token的量越大,计算量越大,所以现在大模型的付费标准都是按照token来计费的。

这里关于AI的回复,我们还需要知道几点。

大模型是通过学习这些数据,才掌握了词语之间搭配的模式和概率。当问到"苹果的颜色"时,与"红色"、"绿色"相关的词语组合在训练数据中出现的频率非常高,因此AI会倾向于生成这些词。

但是,AI并不是像人类一样真的"知道"苹果是什么颜色,它只是根据统计概率,生成最有可能符合问题语境的词序列。因此,大模型给出的答案有可能是错误的,如果对结果的准确性要求比较高,最好在AI回答之后,再做核实,才能使用。了解了这些,下一节我们继续了解大模型是如何具备理解和回答能力的。