
# 猜出下一个字AI 就学会了“说话”——给高中生的大语言模型原理科普 吴国锋 7/21你有没有和 ChatGPT 聊过天你问它“今天天气真好适合……”它马上接“出去走走”甚至还会给你安排一场野餐攻略。这个过程中AI 其实一直在做一件事**猜下一个字该是什么**。它是怎么猜的为什么能猜得这么像模像样这篇文章就用高中生能看懂的方式把支撑大语言模型的那些核心思想拆开给你看。---## 1. 大语言模型本质上就是一个“下一个字预测器” “它是通过模拟人类表达的过程来拟合人类智能。” “说到底就是计算下一个字的概率来决定下一个字应该说什么。”当我们给模型一段上文比如“昨天我去了动物园看到了长颈”模型会计算所有可能的下一个字“鹿”“颈”“腿”……分别有多大概率出现然后选概率最高的那个输出。接着把新得到的句子当作输入再猜下一个字一个字一个字地“自回归”生成整段话。用数学语言说**大语言模型就是一个函数**输入是已有文本序列输出是“下一个字”在所有候选字上的概率分布。---## 2. 这个概率函数长什么样万能近似定理来了 “那这个概率是怎么计算的呢高中生都知道函数 $y f(x)$。” “只不过这个函数到底是什么公式没有人知道。没人知道那我们是怎么做出 AI 来计算这个概率的呢”没错如果非要写出一个能精确计算“在任意上文之后下一个字是什么”的表达式可能根本写不出来——它太复杂了。但数学上有一条神奇的定理帮了大忙**万能近似定理Universal Approximation Theorem**。**万能近似定理说只要给我足够多的简单函数把它们按一定方式组合起来就能以任意精度模拟任何复杂函数。**打个比方你不会用一笔画出蒙娜丽莎但你可以用成千上万块拼图拼出她。每一个拼图片都是一个“简单函数”整体拼出来就是那个复杂的概率函数。 “这个定理对 AI 有什么用呢 简单说就是我们可以通过很多个简单函数的组合来模拟计算下一个字符出现的概率的函数。”那么用什么结构来组合这些简单函数呢答案是——**神经网络**。---## 3. 神经网络用无数个“神经元”拼出概率函数 “神经网络可以认为是一个函数输入是用户提问输出是回答的下一个字的概率然后选择概率最大的那个字返回给用户。”神经网络是由一层层“神经元”连接而成的网。一个神经元就是一个简单函数$$\text{output} \sigma(w \cdot x b)$$这里- $x$ 是输入信号一个数字或一组数字组成的向量- $w$ 是权重weight决定这个输入有多重要- $b$ 是偏置bias相当于调节灵敏度- $\sigma$ 是激活函数比如 Sigmoid、ReLU 等它负责引入“非线性”让组合后的网络能表达复杂的弯曲曲面而不仅仅是直线平面。没有它无数层叠起来也还是个线性函数就没法逼近任意函数了。当一个神经元不够用我们就把很多神经元排成一层再把很多层叠起来——这就是“深层神经网络”。每一层拿上一层的输出作为自己的输入层层加工最后给出我们想要的结果。 “神经网络是有很多个简单函数组合起来的网络。每个简单函数都是网络中的一个点…… 理论上我们把无数个这样的简单函数组合起来就能模拟最终的概率函数。”但在实际计算机里一次计算“无数个”简单函数会吃不消。于是工程师们把它们分成一层一层**每一层只计算有限个神经元通过很多层的堆叠来逼近那个复杂的概率函数**。这就是深度学习里的“深”字的由来。---## 4. Transformer当下大语言模型的“骨架”单靠普通的全连接神经网络处理句子还远远不够。因为自然语言里字与字之间的长距离依赖比如“我买的那个放在书架顶上的盒子它里面装的是……”后面的“它”指的就是“盒子”很难捕捉。2017 年一种叫 **Transformer** 的结构横空出世彻底解决了这个问题今天所有主流大语言模型GPT 系列、Claude、文心一言等都基于它。### 4.1 核心武器自注意力机制Transformer 里最重要的部分叫 **自注意力Self-Attention**。它的思路很直觉**让每个字都去看看整句话里其他所有字自己决定该重点关注谁。**比如在“长颈鹿的脖子很长”中当模型处理“脖子”时它会自己学会多注意前面的“长颈鹿”而少注意语气词“的”。自注意力的核心公式$$\text{Attention}(Q, K, V) \text{softmax}\!\left(\frac{QK^T}{\sqrt{d_k}}\right) V$$来解释一下- 把你想要“查询”的字通过矩阵变换得到 **QQuery**。- 所有可能被注意的字分别变换成 **KKey** 和 **VValue**。- $QK^T$ 计算出“查询”与各个“键”的匹配度分数。- 除以 $\sqrt{d_k}$ 防止分数过大让训练更稳定。- 通过 **softmax** 把分数变成概率所有值加起来等于1这就是注意力权重。- 最后用这个权重对 **VValue** 做加权求和。这样一个字的输出里就融合了整句话中其他字的信息且重要字的影响被放大。**多头注意力Multi‑Head Attention** 就是同时做很多组这样的计算每一组可以学到不同的关注模式比如一组关注语法一组关注指代一组关注情感。### 4.2 Transformer 块像多层漏斗一样加工信息一个 Transformer 层不只是自注意力它还包括“前馈网络”简单的全连接层和残差连接、归一化等。大致流程是输入 → 多头自注意力 → 残差连接 层归一化 → 前馈网络 → 残差连接 层归一化 → 输出给下一层现在的 GPT 类模型只用了 Transformer 的“解码器”部分并且用了掩码让模型在计算注意力时只能看到当前位置之前的上文不能偷看后面的字这样才符合“猜下一个字”的任务。### 4.3 最后一步把加工过的信息变成“下个字的概率”经过很多层 Transformer 模块的深度加工模型得到了对每个位置的深层理解。最后用一个线性层加上 Softmax把最后一层的输出向量映射到一个巨大的概率表上——这个表里每个条目对应词表中的一个字或子词。$$P(\text{next\_token} \mid \text{context}) \text{softmax}(W \cdot h_{\text{last}} b)$$其中 $h_{\text{last}}$ 是最后一个 Transformer 层输出的向量$W$ 和 $b$ 是学到的参数。这样就得到了“下一个字”的概率分布。---## 5. 整个生成过程的流程图下面用一张简化的流程图把从你输入一句话到模型吐出一个新字的全过程串起来mermaidgraph TDA[用户输入: 今天天气真] -- B[分词嵌入 Embeddingbr把每个字变成向量]B -- C[位置编码 Positional Encodingbr加上位置信息]C -- D[多层 Transformer 解码器块br每块包含]D -- D1[掩码多头自注意力br只看上文融合上下文]D1 -- D2[残差连接 层归一化]D2 -- D3[前馈神经网络 FFN]D3 -- D4[残差连接 层归一化]D4 -- DD -- E[最后一层输出向量]E -- F[线性层 Softmaxbr得到所有候选字的概率]F -- G[选概率最高的字比如好]G -- H[输出好br并将其附加到已有文本后]H --|循环| Amermaid解释模型把“今天天气真”变成向量经过加了位置信息的嵌入层再穿过很多个一样的 Transformer 块每个块里先做带掩码的自注意力只依据前文来理解当前字再通过前馈网络做非线性变换最后把得到的语义表示映射成概率选出“好”。然后将“好”字拼回原文拿“今天天气真好”作为新的输入继续生成下一个字直到输出结束符。6. 训练怎么知道这些简单函数里的 ww 和 bb 该取多少既然神经网络的本质是 yσ(wxb)yσ(wxb) 的组合那上亿个权重 ww 和偏置 bb 该怎么定这就要靠“训练”了。简单说就是把全网上的海量文本投喂给模型让它不断地猜下一个字。猜错了就通过反向传播算法沿着函数链求偏导数一点点调整 ww 和 bb让下次猜同一个上下文时正确率更高。重复千亿次模型就慢慢学会了人类组织文字的规律——世界知识、语法、逻辑、甚至某种程度的推理其实都是在这个过程中以“预测下一个字”的形式被内化到参数里的。7. 回到开头一切缘于万能近似定理“说到底就是计算下一个字的概率来决定下一个字应该说什么。”这个想法看似简单但把它实现出来需要一条清晰的逻辑链没有人能写出精确的“概率函数”公式但根据万能近似定理任何函数都能被大量简单函数的组合近似我们用神经网络来充当这些“简单函数的组合”一层层堆叠用 Transformer 结构让每个字都能动态关注到上文里最重要的信息最后通过海量文本训练自动找到所有神经元里最佳的 ww 和 bb。于是那个看起来无所不知、能和你谈天说地的大语言模型本质上还是一个乖乖计算“下一个字概率”的数学函数——只不过这个函数被千亿个 yσ(wxb)yσ(wxb) 硬生生拼了出来。