欢迎光临
我们一直在努力

第五章:从单层到多层 —— AI如何一步步“读懂”你的话

5.1 一层不够,要叠多层

第四章我们讲完了单层注意力机制:一个词通过QKV,环顾四周,从其他词那里吸收信息,融合成新的上下文向量。

以“猫追老鼠”为例,“追”通过单层注意力,看到了“猫”和“老鼠”,知道了自己在追什么、被谁追。

问题来了:单层就够了?

如果句子是“猫追老鼠”,确实够了。但如果句子是:

“昨天在公园里,那个穿红衣服的小女孩追的那只白色的猫,其实是邻居家走丢的。”

这里的“追”离“小女孩”和“猫”隔着好几个短语。单层注意力虽然能一次性看到所有词,但它在一轮计算中只能完成一层“关系提取”——它能找出“追”和“小女孩”相关、“追”和“猫”相关,但它无法进一步理解:“穿红衣服的小女孩”是一个完整的被修饰的主语,“那只白色的猫”是一个完整的被修饰的宾语。

单层注意力能做到的:建立词与词之间的直接相关关系。 单层注意力做不到的:理解“词→短语→句子→意图”这些不同层级的结构。

如果把“词→短语→句子→意图”看作一座四层楼,单层注意力只能覆盖第一层——它能看到所有词,但无法完成后续的抽象。

这就好比你看一张照片:

  • 单层注意力 = 你用放大镜看照片——你能看到每一个像素的细节,但你不知道这些像素组成了什么画面。
  • 多层注意力 = 你退后一步,再退后一步——你看到的范围越来越大,最终看清了整张照片的内容,知道“这是在公园里拍的一只猫”。

AI也是一样。 每一层都在前一层的基础上,完成更高一层的抽象:

  • 第1层:看到相邻词的搭配关系(“红色”和“衣服”挨着,“白色”和“猫”挨着)
  • 第2层:看到短语结构(“穿红色衣服的小女孩”是一个完整的名词短语)
  • 第3层:看到句子主干(“小女孩追的猫”是核心事件)
  • 更多层:看到整句话的语义意图(这是一句描述走丢宠物的陈述句)

所以大模型不是只有一层注意力,而是几十层、甚至上百层堆叠在一起。 每一层都在前一层的基础上,把信息“抽象”到更高的层级。这就是“变换器”这个名字的由来——信息在层层传递中不断被“变换”,从孤立的词逐步变换成完整的语义。

5.2 多层堆叠的结构叫什么?—— Transformer(变换器)

上一节我们说了,单层注意力不够用,需要把几十层甚至上百层注意力堆叠在一起。每一层都在前一层的基础上,完成更高一层的抽象。

这种多层堆叠的架构,在AI领域有一个专门的名字:Transformer。

中文翻译叫“变换器”。

这个名字非常形象——每一层都在“变换”信息的表示形式。我们把“1+1等于几”这个例子,一层一层拆开看:

第1层(底层)输入:5个Token的原始向量——[“1”, “+”, “1”, “等于”, “几”],每个都是孤立的。

第1层输出:经过注意力计算后,“1”知道了自己旁边有“+”,“+”知道了自己连接着两个“1”,“等于”知道了自己前面是“1+1”。第一层完成了“词与词的局部关系”变换。

第2层输入:第1层输出的5个向量(已经带有局部关系信息)。

第2层输出:再次经过注意力计算后,“等于”现在能更清楚地看到整个“1+1”是一个整体,它不再是“等于”前面有三个孤立的词,而是“等于”前面有一个“加法表达式”。第二层完成了“词→短语”的变换。

第3层到第N层:每一层都在前一层的基础上继续变换。“几”逐渐认识到自己是在问一个“加法表达式”的结果。到某一层(比如第12层)时,整个句子的语义被浓缩到最后一个位置(“几”对应的向量)中。

最后一层输出:一个包含了完整语义的向量——“这是一个询问加法结果的数学题,答案是2”。

每一层都在做同一件事:注意力计算。但每一层面对的“输入”不同——底层面对的是孤立的词,中层面对的是短语结构,高层面对的是整句语义。

形象类比:

把Transformer的多层处理,类比成你读一段文字时,大脑逐步处理信息的过程。

你看到一句话:

“昨天在公园里,那个穿红衣服的小女孩追的那只白色的猫,其实是邻居家走丢的。”

第一遍扫读(对应底层注意力):你捕捉到了关键词——“小女孩”、“追”、“猫”、“邻居家”、“走丢”。你知道这些词存在,但还没理清它们之间的关系。

第二遍细读(对应中层注意力):你开始建立关系——“小女孩”在追“猫”,“猫”是白色的,“猫”是邻居家的。你知道谁在做什么了。

第三遍理解(对应高层注意力):你整合了所有信息——这是一个完整的事件:一个小女孩追了一只猫,那只猫是邻居家走丢的,地点是公园,时间是昨天。你理解了整句话的意图。

大脑的这三步,不是“一层只看三个词、另一层再看另外三个词”,而是:

  • 第一遍:提取关键词(局部信息)
  • 第二遍:建立关系(结构信息)
  • 第三遍:整合语义(整体信息)

每一次“重读”,你都在前一次的基础上,完成更高一层的抽象。第一次看到的是“碎片”,第二次看到的是“关系”,第三次看到的是“含义”。

Transformer的多层注意力,干的正是同一件事——但它不是靠“重读”,而是靠“多层堆叠”。每一层都在前一层输出的基础上,再做一次“注意力计算”,从而逐步完成从“碎片”到“关系”再到“含义”的完整变换。

关键认知总结:

层级范围完成的任务变换了什么
底层(1-3层) 词与词的局部搭配 孤立词 → 有关系的词
中层(4-8层) 短语结构和句法关系 有关系的词 → 有结构的短语
高层(9层以上) 整句语义和意图 有结构的短语 → 有含义的句子

这就是大模型为什么需要几十层的原因:完成“词→短语→句子→意图”这一整条“变换”链,一层不够,必须层层递进。

5.3 从向量到“2”:输出的最后一公里

经过几十层Transformer的逐层变换,信息已经从最初的“1+1等于几”这5个孤立的Token,变成了最后一层输出的5个融合了上下文的向量。

现在,这5个向量中,最后一个位置(对应“几”这个Token)的向量,已经包含了整句话的完整语义信息——它知道:“前面是一个加法表达式,用户在问结果。”

问题是:这个向量是一串768个小数的列表(比如[0.12, -0.34, 0.56, …, 0.78]),它怎么变成你看到的那个“2”?

答案是:它必须经过两次“翻译”。

第一次翻译:向量 → 词汇表上的概率分布

AI的最后一层输出向量,会送入一个叫做输出层(Output Layer)的组件。输出层内部有一个输出权重矩阵,它记录了“什么样的向量对应什么样的词”。

具体来说,输出权重矩阵的每一行对应词汇表中的一个词。最后一层输出的向量,与这个矩阵中每一行做一次点积计算,得到一组原始分数(Logits)——分数越高,表示该词与当前上下文的匹配程度越高。词汇表有5万个词,就会得到5万个分数。

然后,这些分数通过Softmax归一化,变成5万个概率值,每个概率值在0到1之间,总和为1。此时,每个词都有一个概率——比如“2”的概率是0.98,“二”的概率是0.01,“3”的概率是0.001……

第二次翻译:概率分布 → 选出一个Token ID

AI根据这个概率分布,选出一个Token ID。选法有两种:

  • 贪心采样:永远选概率最高的那个——也就是“2”。
  • 随机采样:按概率大小随机抽签——大多数时候抽到“2”,偶尔可能抽到“二”或“3”(这就是为什么同样的问题,AI有时会给出略有差异的回答)。

温度:一个调节“随机性”的旋钮

在随机采样中,AI内部有一个叫“温度”的参数,用来控制随机性的强度。它跟物理温度没有关系,只是借用了“温度高→分子运动剧烈→随机性大”这个形象的比喻。

  • 温度很低(接近0):概率高的词被极度放大,AI几乎100%选最高概率的那个词——等价于贪心采样。输出确定、严谨。
  • 温度=1(默认值):严格按原始概率分布随机抽取。
  • 温度很高(比如2.0):高分和低分的差距被压缩,低概率的词也有更大机会被选中。输出更多样、更“有创意”,但也更容易胡说八道。

形象类比:

你面前有三张卡片,中奖概率分别是50%、30%、20%。

  • 温度很低:你几乎必定选中奖率50%的那张。
  • 温度=1:你按概率抽——50%概率选第一张,30%选第二张,20%选第三张。
  • 温度很高:三张被选中的概率变得接近(比如40%、33%、27%),结果更随机。

温度的作用就是:调高它,AI更“敢说”;调低它,AI更“保守”。

选出的Token ID(比如代表“2”的那个整数ID),通过解码器反向查表,变成人类可读的文字“2”。

这个“2”就是输出的第一个Token。

自回归:生成一个Token之后,继续生成下一个

AI并不是一次性生成整个回答。它每次只生成一个Token。生成“2”之后,把“2”拼回原来的输入序列,变成:

“1+1等于几 2”

然后重新进入Transformer,预测下一个Token——通常是句号或换行符。再拼回去,再预测下一个……直到预测到一个特殊的结束符为止。

这就是为什么AI能够生成整段文字——它其实是一个字一个字“续写”出来的。

一个我想到这里时自己产生的疑问:简单问题和复杂问题,用的层数一样吗?

我想到这里时,产生了一个疑问:“1+1等于几”这么简单的问题,也需要走完几十层吗?而“优化一段FFT代码”——也就是快速傅里叶变换(把信号的时域表示变换成频域表示)——这么复杂的问题,走的层数会不会更多?

这是一个非常关键的问题,它的答案取决于模型是否具备动态深度的能力。

在目前绝大多数主流大模型中,模型不会根据问题的复杂程度自动决定使用多少层。 无论你问“1+1等于几”还是“优化这段FFT代码”,你的输入Token都会完整地穿过全部几十层。每一层都对所有Token进行运算。

但学术界和工业界正在研究一种叫做**“早期退出”(Early Exit)**的机制,正是为了解决我提出的这个问题。

早期退出的核心思想是:在模型的中间层设置“分类器”,判断当前层的输出是否已经足够得出正确答案。

  • 对于“1+1等于几”:可能只需要通过前面几层,模型就已经能捕捉到“这是一个简单的加法运算”,并准确输出“2”。此时模型可以提前退出,无需走完所有层,节省了计算资源,响应也更快。
  • 对于“优化FFT代码”:模型需要理解算法逻辑、数据结构、性能瓶颈,这需要更高层的抽象,必须走完全程才能给出有质量的回答。

目前为什么多数模型没有普及这个机制?

因为工程上存在一些挑战:

  • 需要为每一层单独训练“分类器”,训练难度和计算量都会上升。
  • GPU适合执行固定长度的计算流,动态退出会破坏这种整齐性。
  • 需要更复杂的评估标准来衡量“效率”和“准确性”之间的平衡。
  • 但这是一个正在快速发展的方向。 未来一定会有更多模型采用类似机制,根据问题复杂度动态调整计算深度,让简单问题秒回、复杂问题精算。

    用信息守恒认知论来拆解这一环节:

    环节内容
    输入(t) 最后一层输出的向量(包含整句语义)
    内因(t) 输出层(权重矩阵 + Softmax)+ 温度参数 + 采样策略 + 解码器
    输出(t) 最终显示在屏幕上的文字“2”

    如果输出权重矩阵训练得不好(内因错),即使输入向量再准,概率分布也会偏——导致输出错误的词。如果温度设置不当(比如过高),即使概率分布正确,也可能随机抽到低概率的错误词。

    只有输入对(向量准)、内因对(输出矩阵准、温度合适),输出才对。

    5.4 采样器:最后的“抽签人”

    在上一节我们讲到,Softmax输出了一组概率分布——比如“2”是0.98,“二”是0.01,“3”是0.001,其他词几乎为0。

    问题来了:为什么AI最终选的是“2”,而不是概率稍低的“二”或“3”?

    答案:采样器就是那个做最终决定的组件。

    采样器不是一个物理上的“器件”,而是一个程序模块,它的工作很简单:按照概率分布随机抽取一个结果。

    我们可以把采样器的内部机制拆解成三步:

    第一步:生成一个随机数

    采样器内部有一个随机数生成器,它会产生一个0到1之间完全随机的小数。比如这次它生成了0.73。

    第二步:用概率分布做“区间映射”

    前面Softmax把概率分布变成了这样:

    • “2”:0.98 → 占据区间 [0, 0.98)
    • “二”:0.01 → 占据区间 [0.98, 0.99)
    • “3”:0.001 → 占据区间 [0.99, 0.991)
    • “其他”:剩下的极小区间

    第三步:落在哪个区间,就选哪个词

    随机数0.73落在[0, 0.98)区间内 → 选中“2”。

    绝大多数情况下,随机数都会落在“2”的巨大区间里,所以AI几乎总是输出“2”。偶尔随机数落在0.98到0.99之间,就会输出“二”。极偶尔落在0.99到0.991之间,就会输出“3”。

    温度就是这个“区间分配”的调节器

    当我们调整温度时,实际上是在改变这些区间的分配方式:

    • 温度低:高概率的区间被拉长,“2”的区间接近[0, 0.999],几乎必定抽中它。
    • 温度高:各区间长度被压缩,“2”的区间缩短到[0, 0.4],“二”的区间扩大到[0.4, 0.7],“3”的区间也有机会。
    • 温度=1:保持原始概率分布。

    形象类比:一个转盘游戏

    你可以想象一个巨大的转盘,分成5万份,每个词占一份。份的大小就是它的概率——概率高的词占大片面积,概率低的词占一条窄缝。

    • “2”占了转盘98%的面积
    • “二”占了1%
    • “3”占了0.1%
    • 其他词加起来占了不到1%

    采样器就是那个闭着眼睛转转盘的人。指针停下来指向哪里,就选中哪个词。

    绝大多数时候指针会停在“2”的区域里,这就是为什么你看到的是“2”。偶尔停在“二”或“3”的区域,AI就回答成了“二”或“3”。

    信息守恒认知论看采样器:

    环节内容
    输入(t) Softmax输出的概率分布(5万个概率值)
    内因(t) 随机数生成器 + 温度参数 + 区间映射逻辑
    输出(t) 被选中的Token ID

    如果随机数生成器有偏差(内因错),某些词会被系统性地偏向选中。如果温度设置过高(内因错),低概率词被抽中的概率被不自然地放大。只有内因正确,采样器才能公平地按概率抽取。

    一个你可能已经察觉到的关键:

    这个“选词”过程,跟“向量空间最近邻”是两个完全不同的阶段。

    我们前面讲的向量、夹角、相似度,是在编码阶段——模型在理解你的问题。而采样器是在解码阶段——模型在生成答案。它们是两个不同的阶段,各自独立。

    理解了采样器,你就理解了AI“为什么这么回答”的最后一层物理机制。

    5.5 从单一向量到输出文字 —— 最后一步的完整闭环

    现在我们把第五章讲的核心内容做一次提炼。

    这一章回答了一个关键问题:单层注意力不够,需要多层叠加。 而多层叠加的结构,叫做Transformer(变换器)。

    在这个过程中,信息发生了连续的形态变化:

    • 底层:处理词与词之间的局部关系
    • 中层:处理短语结构和句法关系
    • 高层:处理整句的语义和意图

    每一层都在前一层的基础上,完成更高一层的抽象。这就是“变换器”这个名字的含义——信息在层层传递中不断被“变换”,从孤立的词逐步变换成完整的语义。

    当最后一层输出向量后,它还不能直接显示给你看。它需要经过最后的“翻译”:

  • 输出层 + Softmax:把向量翻译成5万个概率值
  • 采样器:按概率分布抽取一个Token ID
  • 解码器:把Token ID变回人类可读的文字
  • 自回归:把生成的文字拼回输入,继续预测下一个词,直到结束
  • 这样,从“最后一层向量”到“最终显示文字”的完整路径就走通了。

    信息守恒认知论看这一整章:

    第五章的整个逻辑链条,从输入到输出,每一步都在执行同一个原则:

    环节输入内因输出
    注意力层(每层) 前一层输出的向量 注意力计算机制 融合了更大范围上下文的向量
    输出层 最后一层向量 输出权重矩阵 + Softmax 概率分布
    采样器 概率分布 随机数 + 温度参数 一个Token ID
    解码器 Token ID 解码映射表 文字

    每一环都是“输入 → 内因 → 输出”的完整闭环。环环相扣,缺一不可。

    如果某一层注意力计算有偏差(内因错),后续所有层的输入都是错的。如果输出权重矩阵训练不到位(内因错),概率分布就会扭曲。如果温度设置过高(内因错),采样器可能抽到错误词。

    只有每一环的输入准、内因对,最终的输出才可能对。

    到这里,我们已经把AI从“输入文字”到“输出文字”的全部逻辑环节走通了。

    第五章术语表

    术语(英文)中文译名形象描述
    Multi-head Attention 多头注意力 多组QKV同时做注意力计算,让模型从多个角度观察同一句话
    Transformer 变换器 多层注意力堆叠的架构名称,信息在层层传递中不断被“变换”
    Layer Transformer中的一个注意力计算单元,每一层都输出一个新的向量表示
    Deep Layer 深层/高层 靠近输出端的层,处理的是整句语义和意图
    Shallow Layer 浅层/底层 靠近输入端的层,处理的是词与词的局部搭配
    Output Layer 输出层 把最后一层的向量“翻译”成词汇表上概率分布的组件
    Logits 原始分数 输出层计算出的、尚未归一化的匹配分数
    Sampling 采样 按概率分布抽取一个结果的过程
    Temperature 温度 控制采样随机性强弱的参数,值越高输出越“大胆”,值越低输出越“保守”
    Greedy Sampling 贪心采样 永远选概率最高的那个词,输出确定
    Random Sampling 随机采样 按概率大小随机抽取,输出有随机性
    Decoder 解码器 把Token ID反向查表变回人类可读文字的组件
    Autoregression 自回归 每次生成一个Token,然后拼回输入继续生成下一个,直到结束
    Early Exit 早期退出 模型在中间层判断“已经够了”,提前结束计算(前沿研究方向)
    FFT 快速傅里叶变换 一种算法,把一个信号从时域变换到频域,用于信号处理、音频分析、通信等领域
    Dynamic Depth 动态深度 模型根据问题复杂度自动决定走多少层的机制(前沿研究方向)
    赞(0)
    未经允许不得转载:171主机测评 » 第五章:从单层到多层 —— AI如何一步步“读懂”你的话
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址