1. 从零理解大模型:概率预测的底层逻辑
我第一次接触大模型时,被各种术语搞得晕头转向。直到有一天,我决定从最基础的预测模型开始理解,才发现大模型的核心思想其实非常简单——预测下一个最可能出现的词。就像我们小时候玩"词语接龙"游戏,只不过大模型把这个游戏玩到了极致。
1.1 汪星人模型:最简单的预测示例
想象我们正在为汪星人开发一个语言模型。汪星人的世界非常简单,只有三个行为:睡觉、跑步、吃饭。它们的语言也只有一种固定句式:"我 刚才 [行为],我 现在 [行为]"。
假设我们有以下训练数据:
code复制我 刚才 跑步,我 现在 吃饭
我 刚才 睡觉,我 现在 跑步
我 刚才 吃饭,我 现在 睡觉
当模型看到输入"我 刚才 跑步,我 现在 ___"时,它会怎么做?实际上就是在计算:
- P(吃饭|跑步) = 出现"跑步"后接着"吃饭"的次数 / "跑步"出现的总次数
- P(睡觉|跑步) = 出现"跑步"后接着"睡觉"的次数 / "跑步"出现的总次数
- P(跑步|跑步) = 出现"跑步"后接着"跑步"的次数 / "跑步"出现的总次数
从我们的训练数据可以看出,"跑步"后接着"吃饭"的概率是100%,所以模型会自信地预测"吃饭"。
注意:这个简单模型已经包含了所有语言模型的核心——基于上下文预测下一个词的概率分布。GPT等大模型的核心思想也是如此,只是处理的数据规模和计算方式复杂得多。
1.2 词表与概率向量
要实现这个汪星人模型,我们需要以下几个组件:
- 词表(Vocabulary):包含所有可能的词 ["我", "刚才", "现在", "吃饭", "睡觉", "跑步"]
- 概率矩阵:记录每个词后面出现其他词的概率
用Python代码表示可能更直观:
python复制vocab = ["我", "刚才", "现在", "吃饭", "睡觉", "跑步"]
prob_matrix = {
"跑步": [0, 0, 0, 0.6, 0.3, 0.1], # 跑步后有60%概率接吃饭
"睡觉": [0, 0, 0, 0.2, 0.1, 0.7], # 睡觉后有70%概率接跑步
"吃饭": [0, 0, 0, 0.1, 0.8, 0.1] # 吃饭后有80%概率接睡觉
}
def predict_next_word(current_word):
return vocab[np.argmax(prob_matrix[current_word])]
这个简单模型已经可以完成基本的预测任务。当输入"跑步"时,它会返回"吃饭",因为0.6是概率向量中的最大值。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. Transformer架构全景解析
理解了基础的概率预测模型后,我们现在可以深入探讨Transformer架构了。Transformer是当今大模型的基础,最初由Google在2017年提出,现在已经成为GPT等大模型的标准架构。
2.1 Transformer的三大模块
Transformer可以划分为三个主要部分:
- 输入模块:处理原始文本,将其转换为模型可以理解的数值表示
- 编解码模块:进行复杂的计算和特征提取,是模型的核心
- 输出模块:生成最终的预测结果

2.2 输入处理流程详解
让我们以"我爱你"的翻译为例,看看输入模块如何处理文本:
-
Token化:将文本分割成Token(可以是词或子词)。中文通常按字分割,所以"我爱你"变成["我", "爱", "你"]。
-
词表查询:每个Token会被映射到词表中的索引。假设:
- "我" → 100
- "爱" → 200
- "你" → 300
-
Embedding查找:每个索引对应一个高维向量(GPT-3中是12288维)。这个过程就像查字典:
python复制embedding_matrix = np.random.randn(vocab_size, 12288) # 预训练好的Embedding矩阵 word_embedding = embedding_matrix[token_index] -
位置编码:因为Transformer不像RNN那样有内置的顺序处理能力,需要额外添加位置信息:
python复制
position_embedding = get_position_encoding(position) final_embedding = word_embedding + position_embedding
最终,输入模块会生成一个N×M的矩阵,其中N是Token数量,M是Embedding维度(GPT-3中M=12288)。
2.3 编解码模块:Self-Attention机制
Self-Attention是Transformer最核心的创新,它让模型能够动态地关注输入中不同部分的重要性。理解Self-Attention的关键是三个概念:Query(查询)、Key(键)和Value(值)。
2.3.1 QKV三元组
对于每个Token,模型会生成三组向量:
- Query(Q):表示这个Token想要查询什么信息
- Key(K):表示这个Token能提供什么信息
- Value(V):表示这个Token的实际内容
计算过程:
- 对每个Token的Embedding,分别乘以三个权重矩阵(Wq, Wk, Wv)得到Q,K,V:
python复制
