前向传播的组成:给中学生的极简版
#2025/12/29 #ai
想象你在玩一个“猜下一个词“的游戏。
你写了半句话“我喜欢吃“,让电脑猜下一个词。电脑怎么猜出来的?这就是前向传播要做的事。
目录
- 🎮 把大模型想象成一个游戏关卡
- 🚪 关卡1:分词器(把话拆成“暗号“)
- 🔢 关卡2:嵌入层(把数字变成“坐标“)
- 🧠 关卡3:Transformer 块(核心“大脑“)
- 🎯 关卡4:语言建模头(最后“投票“)
- 📊 完整流程图(用你能懂的话说)
- 🤔 为什么叫“前向传播“?
- 💡 一句话总结
- 🎓 记忆口诀
🎮 把大模型想象成一个游戏关卡
前向传播就像玩游戏通关,你的输入(文字)要经过三道关卡,最后得到输出(预测的下一个词)。
你的输入 → [关卡1](分词器) → [关卡2](嵌入层) → [关卡3](Transfromer 块) → 电脑的输出
"我喜欢吃" "苹果"
🚪 关卡1:分词器(把话拆成“暗号“)
电脑听不懂中文或英文,它只认数字。分词器就是个“翻译官“。
举个例子
- 你输入:
- “我喜欢吃苹果”
- 分词器干了啥:
- 先切词:
["我", "喜欢", "吃", "苹果"] - 再查字典,把每个词变成数字 ID:
[123, 456, 789, 234]
- 先切词:
类比:
- 就像你去图书馆,书名是“哈利波特“,但系统里存的是编号“B12345“。
🔢 关卡2:嵌入层(把数字变成“坐标“)
拿到数字 ID 后,电脑还是不能直接用。嵌入层就是个超级大表格,每个 ID 对应一排数字(向量)。
举个例子
- ID 123(“我”)→ 查表 →
[0.5, -0.3, 0.8, ...](一串小数) - ID 456(“喜欢”)→ 查表 →
[0.2, 0.9, -0.1, ...]
为什么要这样?
- 因为电脑要
做数学计算(加减乘除),只能用数字。 - 这些小数就像地图上的坐标,意思相近的词(比如“喜欢“和“爱“)在地图上会挨得很近。
🧠 关卡3:Transformer 块(核心“大脑“)
这是最复杂的部分,但你可以把它想象成32 层楼的大厦,每一层都在“思考“这句话。
长啥样?
第 1 层:处理词向量,输出新的向量
第 2 层:继续处理,输出更新的向量
第 3 层:...
...
第 32 层:输出最终理解后的向量
每一层干了啥?
每层都在做两件事:
- 自注意力:看看其他词对当前词有啥影响
- 比如处理“它“这个词时,要看看前面说的是“猫“还是“狗“
- 前馈神经网络:
记住见过的知识- 比如记住“苹果通常和’吃’一起出现“
类比:就像写作文,你要:
- 回头看看前面写了啥(
注意力) 想想老师教过的词汇和句型(前馈网络)
🎯 关卡4:语言建模头(最后“投票“)
经过 32 层思考后,电脑得到了一个“理解向量“。现在要决定:下一个词到底是啥?
语言建模头就像一个投票机:
- 把
理解向量变成 50000 个分数(假设词典有5 万个词) - 每个分数代表这个词成为“下一个词“的可能性
# 假设词典
词典 = ["我", "你", "苹果", "香蕉", ..., "太阳"] # 共 50000 个词
# 模型算出的分数(数字越大,可能性越高)
分数 = [1.2, 0.5, 8.9, 2.1, ..., 0.3]
# 选分数最高的
下一个词 = "苹果"(因为它的分数是 8.9,最高!)
📊 完整流程图(用你能懂的话说)
你输入:"我喜欢吃"
↓
[关卡1:分词器]
把话拆成词 → 变成数字 ID
"我喜欢吃" → [123, 456, 789]
↓
[关卡2:嵌入层]
每个 ID 查表变成向量
123 → [0.5, -0.3, ...]
456 → [0.2, 0.9, ...]
789 → [0.1, 0.4, ...]
↓
[关卡3:Transformer 块(32 层楼)]
第 1 层:初步理解
第 2 层:深入思考
...
第 32 层:全面理解
↓
[关卡4:语言建模头]
给 5 万个词打分
"苹果" 得 8.9 分 ✅(最高)
"香蕉" 得 2.1 分
...
↓
输出:"苹果"
🤔 为什么叫“前向传播“?
因为数据是从前往后单向流动的:
输入 → 分词器 → 嵌入层 → 第1层 → 第2层 → ... → 第32层 → 输出
就像水从山顶流到山脚,只能往一个方向走。
💡 一句话总结
前向传播 = 把你的话(文字)扔进一个“四道关卡“的机器,经过翻译(分词)、查表(嵌入)、深度思考(32 层 Transformer)、投票(语言建模头),最后吐出预测的下一个词。
🎓 记忆口诀
文字进来先翻译 🔤(分词器)
数字查表变坐标 📍(嵌入层)
三十二层慢慢想 🧠(Transformer 块)
最后投票选答案 🗳️(语言建模头)