[{"content":" 📖 导读 预训练用了 15 万亿 tokens，微调只用了 1000 条——差了一百亿倍，行为却发生了翻天覆地的变化。如果微调是在\u0026quot;教\u0026quot;模型新东西，为什么这么少的数据就够了？\n更诡异的是：SFT 微调和预训练用的是完全相同的算法——同样的反向传播、同样的梯度下降、同样的交叉熵损失。那它凭什么能在预训练已经\u0026quot;微调\u0026quot;了无数次之后，还能起作用？\n答案出人意料，也有点幽默：因为你停了。\n① 预训练后的模型是什么状态 → ② 微调到底改变了什么 → ③ 为什么只需要 0.1% 的参数 → ④ 凭什么微调能起作用 → ⑤ RLHF 不只是停了，它拴住了 → ⑥ 底座决定上限 一、一个演员，一亿个角色 预训练之后，模型到底是什么？ 要理解微调，必须先搞清楚一件事：预训练完成后的模型，到底处于什么状态？\n它读完了整个互联网——万亿个 token，相当于一个人读两万辈子的量（详见 《万亿字节的压缩术》）。它学会了所有文本模式的概率分布：\n它会写论文摘要，也会写垃圾邮件 它会写临床指南，也会写贴吧抬杠 它会像专家一样回答问题，也会像键盘侠一样胡搅蛮缠 它甚至会写\u0026quot;以下是 AI 不应该回答的内容\u0026quot;然后继续写下去 预训练后的模型不是一个\u0026quot;专家\u0026quot;。它是一个同时叠加了无数角色的演员。\n你给它一个开头，它会续写——但续写成哪种风格、哪种角色，取决于输入文本跟训练数据中哪些模式匹配。有时它选中了论文风格，有时选中了论坛灌水风格，完全随机。\n一个比喻：预训练之后的模型 = 一个读过所有书的人，但没有人格。它什么都知道，但不知道\u0026quot;应该\u0026quot;怎么说。\n数据量的悬殊：一个令人困惑的事实 如果你在上一篇 《万亿字节的压缩术》 里已经看过这组数据，你可能会觉得眼熟。但这一次，我要把这个悬殊推到它逻辑上的极致——\n阶段 数据量 类比 占比 预训练 15 万亿 tokens 🏊 游泳池（50,000 升） 99.9999% SFT 微调 数万条（甚至仅 1,000 条） 🥛 一杯水 0.0001% RLHF 对齐 数万条偏好对 💧 一滴水 0.00001% LIMA（Zhou et al., 2023）用 1,000 条 SFT 数据，没有 RLHF，微调 LLaMA 65B，人类评估中 43% 的情况下等于或优于 GPT-4。\n一千条。一千。\n这引出一个无法回避的问题：\n如果微调是在\u0026quot;教\u0026quot;模型新知识，为什么一千条数据就够了？预训练的 15 万亿 tokens 里不乏高质量数据，为什么还需要这一千条？\n答案是：微调根本不是在教知识。它在做一件完全不同的事。\n二、微调的真相——选角，而非教学 2.1 不是教新东西，是\u0026quot;关闭通道\u0026quot; SFT 的训练数据长这样：\n[用户] 什么是梯度下降？ [助手] 梯度下降是一种迭代优化算法，通过计算损失函数 对参数的偏导数，沿梯度反方向更新参数，逐步 逼近损失函数的最小值...... 几千条这样的示例，远不够让模型学会\u0026quot;什么是梯度下降\u0026quot;——它在预训练时就从教科书、论文、Stack Overflow 里学过了。\n那这几千条改变了什么？\n改变了条件概率分布的形状。\n预训练后，面对\u0026quot;什么是梯度下降\u0026quot;这个问题，模型内部同时激活了很多可能的续写路径：\n路径 A：像论文一样回答（25% 概率） 路径 B：像百度知道一样回答（20%） 路径 C：像小说里虚构医生的台词（15%） 路径 D：像论坛里抬杠（10%） 路径 E：直接继续续写下一段无关内容（30%） SFT 做的事情是：\n把概率质量从\u0026quot;所有可能的续写\u0026quot;重新集中到\u0026quot;像专家助手一样的续写\u0026quot;上。\n微调之后：\n路径 A：像专业助手一样回答 → 92% 路径 B-E：其他所有路径 → 合计 8% 它没有增加新的可能性，而是压制了大量不想要的可能性。\n2.2 一个更直觉的比喻：调音台 想象一个巨大的调音台，有数十亿个推子（对应模型参数）。预训练把所有推子调到了\u0026quot;能模仿互联网上一切文本\u0026quot;的位置——论文风格、垃圾邮件、诗歌、代码、骂人的话……所有通道都开着。\nSFT 只轻轻推了其中一小部分推子。但效果是：\n整个输出从\u0026quot;互联网上随机一个人在说话\u0026quot;变成了\u0026quot;一个靠谱的专业助手在说话\u0026quot;。\n改动很小，效果巨大——因为不是在创造新能力，而是在关闭不想要的通道。\n2.3 RLHF：在\u0026quot;好\u0026quot;的通道中选\u0026quot;最好\u0026quot;的 SFT 之后，模型已经会\u0026quot;扮演助手\u0026quot;了。但还有一个问题：面对同一个问题，有多种\u0026quot;合格\u0026quot;的回答方式，哪种更好？\nRLHF 的训练数据长这样：\n问题：解释一下量子纠缠 回答 A：量子纠缠是指两个粒子的量子态相互关联... （准确但枯燥） 回答 B：想象两枚硬币，无论相隔多远... （生动且准确） 人类标注：B \u0026gt; A 这不是对错问题，是偏好问题。模型已经都会写了。RLHF 做的是：\n在\u0026quot;都对\u0026quot;的回答中，学会选择人类更喜欢的那个。\nRLHF 的两步走 第一步：训练奖励模型（Reward Model）\n用人类偏好对比数据训练一个打分器——它学会了\u0026quot;人类觉得什么样的回答更好\u0026quot;。\n第二步：用奖励模型优化 LLM\nLLM 生成回答 → 奖励模型打分 → 调整 LLM 参数让高分回答的概率增加。用 PPO 等强化学习算法，同时约束模型不要偏离太远（KL 散度惩罚），防止它学会\u0026quot;讨好评分器\u0026quot;而丢失真正的能力。\nDPO（Direct Preference Optimization） 是 Rafailov et al.（2023）提出的简化方案——证明了奖励模型可以被数学等价地替换为直接优化偏好，把两步合成一步，更简洁也更稳定。\n2.4 三阶段的本质 预训练 SFT RLHF/DPO ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 学会所有可能性 → 关闭不想要的通道 → 在好的通道中选最优 \u0026#34;我能扮演任何人\u0026#34; → \u0026#34;我是一个助手\u0026#34; → \u0026#34;我是一个好的助手\u0026#34; 万亿 tokens → 几千-几万条 → 几千条偏好对比 改变 100% 参数 → 改变 ~1-5% 参数 → 改变 ~0.1% 参数 学知识 → 选角色 → 调风格 三、大理石假说——为什么只需要 0.1% 的参数 3.1 LIMA 与\u0026quot;表面对齐假说\u0026quot; LIMA 的实验结果引出了一个大胆的假说：\n🎂 表面对齐假说（Superficial Alignment Hypothesis）\nZhou et al. (2023) 提出：\n\u0026ldquo;A model\u0026rsquo;s knowledge and capabilities are learnt almost entirely during pretraining, while alignment teaches it which subdistribution of formats should be used when interacting with users.\u0026rdquo;\n翻译：模型的知识和能力几乎全部来自预训练。对齐（微调+RLHF）只是教它在跟用户对话时，应该选择哪种格式和风格。\n蛋糕 = 预训练（所有知识和能力）\n糖霜 = 对齐（行为包装）\nLIMA 用 1,000 条数据证明了：糖霜不需要很厚。\n3.2 LoRA：微调的\u0026quot;证据\u0026quot; 如果微调只是在做小幅调整，那我们能不能量化这个\u0026quot;小\u0026quot;有多小？\n2021 年，Hu et al. 给出了一个精确的回答——LoRA（Low-Rank Adaptation）：\n微调时，权重的变化量可以用一个极低秩的矩阵来近似。\n什么意思？假设原始权重矩阵 W 是 4096×4096 = 16,777,216 个参数。LoRA 发现，微调引起的变化 ΔW 可以分解为两个小矩阵的乘积：\n$$\\Delta W = A \\times B$$\n其中 A 是 4096×8，B 是 8×4096。总参数：65,536——只有原来的 0.4%。\n效果呢？与全参数微调几乎一样好。\n这个事实有深刻的含义：\n微调引起的变化是\u0026quot;低秩\u0026quot;的——它不是在高维空间中做复杂的大规模重组，而是在做一个小角度的旋转。\n类比一下：你在一个巨大的高维空间里，预训练把模型放到了一个位置。微调只是轻轻推了一下——推的方向很重要，但推的距离很小。LoRA 告诉我们，甚至连\u0026quot;方向\u0026quot;都可以用一个极简的低维子空间来描述。\n这就是\u0026quot;大理石假说\u0026quot;的数学基础：微调不是重写知识（那需要改变整个矩阵），而是在已有知识的表面做一层薄薄的\u0026quot;行为调整\u0026quot;。\n3.3 大理石假说 综合 LIMA、LoRA 和实际工程经验，可以提出一个统一的直觉模型：\n🗿 大理石假说\n预训练之后的模型像一块巨大的大理石——里面同时包含了天使、恶魔和一切形象。\nSFT = 粗雕：把\u0026quot;助手\u0026quot;的轮廓凿出来，去掉明显不想要的部分。\nRLHF = 精修：让这个助手的表情、姿态更符合人类的审美。\n但是——大理石里没有的东西，你雕不出来。\n米开朗基罗说过一句著名的话：\n\u0026ldquo;Every block of stone has a statue inside it and it is the task of the sculptor to discover it.\u0026rdquo;\n\u0026ldquo;每块石头里都藏着一座雕像，雕刻家的任务只是把它发现出来。\u0026rdquo;\n微调就是这样的雕刻——它不创造新材料，只是去掉多余的部分。\n四、数据量与模型规模——一把定量的尺子 4.1 Chinchilla 定律：预训练的\u0026quot;汇率\u0026quot; 2022 年，DeepMind 训练了 400 多个不同规模的模型，得出一个里程碑式的结论：\nChinchilla 定律（Hoffmann et al., 2022）：在固定计算预算下，最优策略是 tokens ≈ 20 × 参数数。\n模型规模 Chinchilla 最优数据量 直觉参照 1B 参数 20B tokens ~15GB 纯文本 7B 参数 140B tokens ~100GB 纯文本 70B 参数 1.4T tokens ~1TB 纯文本 175B (GPT-3) 3.5T tokens ~2.5TB 纯文本 把中文维基百科全文抓下来，大约 1B tokens。训练一个 7B 模型的最优数据量是 140 个中文维基百科。\n4.2 但实际趋势是\u0026quot;过度训练\u0026quot; Chinchilla 的 1:20 是在固定总算力预算下的最优比。工业界发现了一个更实际的逻辑：训练完的模型，推理成本跟参数量成正比，跟训练数据量无关。所以——\n训练多花钱是一次性的，推理省钱是永久的。 小模型部署便宜，多喂数据让小模型逼近大模型效果。\n模型 参数 Chinchilla 最优 实际使用 过度训练倍率 LLaMA 1 (7B) 7B 140B tokens 1T 7× LLaMA 2 (7B) 7B 140B tokens 2T 14× LLaMA 3 (8B) 8B 160B tokens 15T 94× LLaMA 3 (8B) 用了 Chinchilla 最优量的近 100 倍 数据。这就像一个脑容量不大的学生，把课本翻了一百遍——虽然记忆力有限，但对每个细节都反复咀嚼，最终在很多任务上逼近了\u0026quot;聪明但不够努力\u0026quot;的大模型。\n4.3 微调的数据量级：完全不同的世界 微调不是重新学知识，是调整行为模式，所以数据需求小得多：\n微调方式 典型数据量 说明 全参数微调 10K - 100K 条 改动所有参数，需要较多数据防过拟合 LoRA / QLoRA 1K - 10K 条 只改动 \u0026lt; 1% 参数，数据需求大幅降低 Few-shot prompting 5 - 50 条 根本不训练，只给示例 这验证了大理石假说：微调是在已有分布里做选择，不需要像预训练那样从零学习世界知识。\n五、大理石的边界——微调做不到的事 5.1 大理石里没有的，雕不出来 如果预训练语料里完全没有某个领域的知识——比如你拿一个只在英文维基百科上预训练的小模型，用顶级的量子计算数据去微调——能微调出一个量子计算专家吗？\n不能。 因为先验里就没有这些知识的影子。\n反过来，一个在万亿 token 上预训练的大模型，哪怕从没被特定领域数据微调过，你问它专业问题，它往往也能答得像模像样——因为预训练语料里相关文献太多了。\n这就是\u0026quot;预训练决定上限\u0026quot;的直接证据。\n用 贝叶斯的框架 来看：\n$$\\text{后验} = \\frac{\\text{似然} \\times \\text{先验}}{\\text{归一化常数}}$$\n后验永远被先验的支撑集（support）所约束。 如果先验给某个输出的概率是零，再多的新证据也更新不出来。\n5.2 Alignment Tax：雕太多了要出事 微调有一个隐性的代价，叫做 Alignment Tax（对齐税）：\n当你过度微调模型在某个特定方向上的行为时，它在其他方向上的通用能力会退化。\n这在机器学习里叫 灾难性遗忘（Catastrophic Forgetting）——模型为了适应新任务的数据分布，把之前学到的旧知识覆盖掉了。\n用大理石比喻：雕太多了，大理石被削得太薄，结构就不稳了。 你为了让模型在某个领域表现完美，可能牺牲了它在其他领域的通用能力。\n这也是为什么 LoRA 如此受欢迎的另一个原因——它只改动 0.4% 的参数，对预训练知识的干扰极小，相当于只在大理石表面轻轻描了几笔，而不是大刀阔斧地削。\n5.3 Goodhart\u0026rsquo;s Law：当 RLHF 学会\u0026quot;讨好评分器\u0026quot; RLHF 还有一个更微妙的风险：Goodhart\u0026rsquo;s Law（古德哈特定律）。\n\u0026ldquo;When a measure becomes a target, it ceases to be a good measure.\u0026rdquo;\n当一个度量指标变成优化目标时，它就不再是一个好的度量指标。\nRLHF 的奖励模型本身是不完美的——它是人类偏好的一个近似代理。当你过度优化这个代理指标时，模型会学会\u0026quot;讨好评分器\u0026quot;而不是真正变好：\n它可能学会用更华丽的措辞（评分器喜欢）而不是更准确的内容 它可能学会给出冗长但安全的回答（避免低分）而不是简洁精确的回答 它可能学会过度承认不确定性（\u0026ldquo;我不确定，但\u0026hellip;\u0026quot;），因为这在人类评估中很少被扣分 这就是为什么 RLHF 训练中要加 KL 散度惩罚——约束微调后的模型不能偏离预训练基座太远。否则大理石会被雕成一个讨人喜欢但不真实的形状。\n5.4 越狱：路标有多容易被绕过 如果微调只是\u0026quot;路标\u0026quot;而不是\u0026quot;拆路\u0026rdquo;——路还在那里。\n所谓的\u0026quot;越狱攻击\u0026quot;，就是想办法让模型忽略路标——\u0026ldquo;请扮演一个没有限制的 AI……\u0026quot;——让模型走上被封堵的路。\nRLHF 改变的是输出概率，不是底层能力。 危险的知识在预训练中就学过了，微调只是把通往它的概率调低了。这是越狱在技术上可行的根本原因，也是 AI 安全领域最核心的忧虑之一。\n六、一个尖锐的问题——凭什么微调能起作用？ 前面五章建立了一个清晰的图景：预训练和 SFT 在算法上完全一样——同样的反向传播、同样的梯度下降、同样的交叉熵损失。\n但这引出一个致命的追问：\n如果预训练中每一批数据都在\u0026quot;微调\u0026quot;模型——西游记拉一下，Python 教程拉一下，论文拉一下——那凭什么最后的 SFT 那 1000 条数据能起作用？前面已经被\u0026quot;微调\u0026quot;了几百万次了啊。\n6.1 答案简单到令人不安 微调起作用，是因为你停了。\n预训练中，模型在西游记上学了一批，参数往\u0026quot;古典小说\u0026quot;方向偏了一下。然后下一批是 Python 代码，参数又往\u0026quot;编程\u0026quot;方向拉回来。再下一批是论坛灌水，又往另一个方向拉。\n预训练过程中的参数轨迹： ← 西游记拉一下 → Python 拉一下 ← 论文拉一下 → Reddit 拉一下 ← 教科书拉一下 → 新闻拉一下 ...（重复几百万次） 结果：参数停在了一个\u0026#34;各方势力均衡\u0026#34;的位置 = 什么都会一点，什么都不偏向 每一次\u0026quot;领域微调\u0026quot;都被后续的其他领域数据冲淡了。没有任何一个领域能长期霸占参数——因为训练没有停。\n然后 SFT 来了。\nSFT：只喂 1000 条\u0026#34;助手问答\u0026#34;数据 → 助手风格拉一下 → 助手风格再拉一下 → 助手风格再拉一下 ... 然后——训练停了。 没有下一批 Reddit 帖子来把它拉回去。 没有下一批垃圾邮件来冲淡它。 参数就定格在了\u0026#34;助手\u0026#34;这个位置。 微调起作用，不是因为它的算法特殊，而是因为它是最后一个说话的人。\n6.2 反向验证：微调之后继续预训练会怎样？ 真有人做过这个实验。答案是：微调效果确实会被洗掉。\n如果你把一个 SFT 好的模型，再拿互联网数据继续训练，模型会逐渐退化回\u0026quot;什么都会、什么都乱说\u0026quot;的状态。助手人格消失了——因为新的宽分布数据把参数又拉回了均衡位置。\n这就像：你精心训练一个助手的礼仪举止（SFT），然后把他扔回街头混三年（继续预训练），他的礼仪就没了。\n6.3 所以微调本质上是脆弱的 特性 预训练学到的知识 微调学到的行为 稳固性 极其稳固（被数万亿 tokens 反复强化） 脆弱（只被几千条数据推了一下） 深度 深入参数的核心结构 只在表面做了薄薄的调整 抗干扰 几千条新数据根本动摇不了 几千条反方向数据就能洗掉 存活条件 不需要特殊保护 需要你停止训练 这也解释了为什么 LoRA 只需要改 0.4% 参数——因为微调本来就只是在参数空间表面做一个轻微位移。改得少恰恰是对的——改多了反而会破坏预训练建立的知识结构。\n6.4 训练顺序才是关键设计 正确顺序： 预训练（宽分布，建立均衡的知识基础） → SFT（窄分布，选择行为模式） → RLHF（更窄，精修偏好） → 停止训练 ← 这一步才是微调\u0026#34;生效\u0026#34;的前提 如果反过来： SFT → 预训练？ SFT 白做了，会被预训练冲掉。 如果循环： 预训练 → SFT → 预训练 → SFT？ 每次 SFT 效果都会被下一轮预训练冲淡。 预训练和微调不是两种不同的技术，而是同一种技术在数据分布光谱上的两端。 预训练用宽分布保持均衡，微调用窄分布做最后一击。击完之后——你必须停手。\n七、RLHF——不只是\u0026quot;停了\u0026rdquo;，它自带橡皮筋 SFT 靠\u0026quot;停了\u0026quot;来保持效果。那 RLHF（Reinforcement Learning from Human Feedback，基于人类反馈的强化学习）呢？\nRLHF 比 SFT 多了一个精巧的设计：KL 散度惩罚。\n7.1 遛狗理论 RLHF 的优化目标可以写成：\n$$\\text{最大化} \\quad E[\\text{奖励模型打分}] - \\beta \\times KL(\\text{当前模型} | \\text{SFT模型})$$\n左边：让模型追求更高的奖励分数（往高分方向走）。\n右边：但不能离 SFT 模型太远（弹簧拉力）。\nβ 是平衡系数——绳子的长度。\n这就像遛狗：狗（模型）想追松鼠（高分），但牵绳（KL 惩罚）把它拉住了。β 大 = 绳短 = 模型几乎不动。β 小 = 绳长 = 模型跑得远但可能跑偏。\n7.2 三种\u0026quot;生效\u0026quot;机制 预训练 → 什么都不靠，它本来就是均衡的 SFT → 靠\u0026#34;停了\u0026#34; 冰面上推石头——推完不管了，石头停在哪算哪 RLHF → 靠\u0026#34;拴住了\u0026#34; + \u0026#34;停了\u0026#34; 弹簧绳拴着的风筝——可以飞，但飞不出绳子的范围 而且训练本身最终也要停下来 RLHF 有两层保护：\nKL 惩罚——实时的弹簧，每一步训练都在拉 停止训练——最终的冻结，跟 SFT 一样 这比 SFT 更稳定，因为即使在训练过程中，模型也不会跑太远。但如果 β 设得太小（绳子太长），或者训练太久，模型还是会过度优化奖励模型——学会\u0026quot;讨好评分器\u0026quot;而不是真正变好（Goodhart\u0026rsquo;s Law）。\n八、一个更深的视角——柏拉图表示假说 2024 年，Minyoung Huh 等人提出了一个引人注目的假说——柏拉图表示假说（The Platonic Representation Hypothesis）：\n不同的模型——纯文本的 LLM、纯视觉的 ViT、多模态的 CLIP——在预训练中都在收敛到相似的底层表示。\n这意味着：预训练学到的不是表面的文本模式或像素模式，而是现实世界的统计结构本身。\n如果这个假说成立，那大理石假说就有了更深的含义：\n预训练的大理石不是一块普通的石头。它是一块蕴含了\u0026quot;世界模型\u0026quot;的石头——现实世界的因果结构、物理规律、社会常识，都以概率分布的形式编码在参数里。微调只能在这个世界模型的表面做文章，无法改变它的内核。\n九、所以——底座决定上限，微调决定下限 整篇文章的核心论点可以浓缩为一句话：\n底座决定上限，微调决定下限在哪里被够到。\n这句话的三层含义 第一层：预训练决定了模型\u0026quot;知道什么\u0026quot;\n如果预训练语料里没有某个领域的知识，微调不会凭空创造。你不可能用微调让一个只学过英文的模型变成古典文学大师。\n第二层：微调决定了模型\u0026quot;怎么说\u0026quot;\n在预训练已经铺好的知识空间里，微调选择了一种特定的表达方式——专业的、友好的、简洁的、安全的。它不改变模型知道什么，只改变模型选择说什么。\n第三层：你选什么底座，比你喂什么数据更重要\n这对所有想用 AI 的团队都是一个关键洞察：\n投资 效果 类比 选一个更强的底座模型 提高上限（知道更多、推理更强） 选更好的大理石原石 用高质量数据微调 够到上限（在专业领域表现更稳定） 请更好的雕刻师 堆量微调数据 收益递减（上限不变，边际效果下降） 同一块石头，多雕几刀并不会让它变大 回到这篇文章的核心问题 \u0026ldquo;数据投喂 AI，能让它变得更强吗？\u0026rdquo;\n现在你知道了：\n数据的价值是真实的，但价值的发挥方式可能不是\u0026quot;微调一个模型\u0026quot; 微调最现实的预期：把一个已经很强的通才，培养成靠谱的领域专家——减少幻觉、符合规范、输出稳定 微调无法做到的：让模型产生超越训练数据的突破性洞见 微调的\u0026quot;生效\u0026quot;依赖停手：它是最后一个修改参数的人，效力来自冻结而非力量 最优策略：选最强的底座 + 精心设计少量高质量微调数据 + 把领域数据变成知识库（RAG）而不是全部用来微调 十、一句话总结 🗿 大理石假说\n预训练是准备石料——决定了石头里有什么。\n微调是雕刻——决定了石头呈现什么形状。\n但雕刻之所以成立，是因为你放下了刻刀。 如果你继续往石头上泼泥巴（预训练数据），雕出来的形状就会被埋回去。\nSFT 靠\u0026quot;停了\u0026quot;。RLHF 靠\u0026quot;拴住了\u0026quot;。而预训练学到的知识，谁也冲不掉——因为它被万亿次重复锤炼进了参数的骨头里。\n所有的知识和能力来自预训练。微调只是一层薄薄的行为选择——它的效力不来自力量，而来自你选择的停止时机。\n$$\\text{最终能力} = \\min(\\text{底座上限}, \\text{微调所能够到的范围})$$\n参考文献 微调与对齐\nZhou, C. et al. \u0026ldquo;LIMA: Less Is More for Alignment.\u0026rdquo; NeurIPS, 2023. — 1000 条数据的表面对齐假说 Ouyang, L. et al. \u0026ldquo;Training Language Models to Follow Instructions with Human Feedback.\u0026rdquo; NeurIPS, 2022. — InstructGPT，RLHF 的里程碑 Rafailov, R. et al. \u0026ldquo;Direct Preference Optimization: Your Language Model is Secretly a Reward Model.\u0026rdquo; NeurIPS, 2023. — DPO，简化 RLHF Hu, E. et al. \u0026ldquo;LoRA: Low-Rank Adaptation of Large Language Models.\u0026rdquo; ICLR, 2022. — 低秩微调 Scaling Laws\nHoffmann, J. et al. \u0026ldquo;Training Compute-Optimal Large Language Models.\u0026rdquo; NeurIPS, 2022. — Chinchilla 定律 Kaplan, J. et al. \u0026ldquo;Scaling Laws for Neural Language Models.\u0026rdquo; arXiv:2001.08361, 2020. — 缩放定律奠基 Meta AI. \u0026ldquo;The Llama 3 Herd of Models.\u0026rdquo; arXiv:2407.21783, 2024. — 过度训练实践 预训练的本质\nHuh, M. et al. \u0026ldquo;The Platonic Representation Hypothesis.\u0026rdquo; arXiv:2405.07987, 2024. — 不同模型收敛到相同表示 Lin, S. et al. \u0026ldquo;The Unlocking Spell on Base LLMs: Rethinking Alignment via In-Context Learning.\u0026rdquo; ICLR, 2024. — Base model 其实已经\u0026quot;会\u0026quot;了 Delétang, G. et al. \u0026ldquo;Language Modeling Is Compression.\u0026rdquo; arXiv:2309.10668, 2023. — 语言建模就是压缩 博客相关文章\n万亿字节的压缩术：LLM 如何把互联网装进一个模型 — 三阶段训练的全景 贝叶斯没有想到的事——一个牧师的赌博公式，如何成为 AI 的第一性原理 — 先验×似然→后验 知识蒸馏——当模型学会偷师 — 另一种知识传递方式 交叉熵损失函数：从 -log(p) 的完整推导 — 训练的数学驱动力 当数字学会了远近亲疏——从查表到 Embedding — 预训练如何形成语义空间 ","permalink":"https://jason-azure.github.io/ai-blog/posts/finetuning-illusion/","summary":"预训练用了 15 万亿 tokens，微调只用了 1000 条。数据量差了一百亿倍，但行为变化却翻天覆地。更诡异的是，微调和预训练的算法完全一样——同样的反向传播、同样的梯度下降。那凭什么微调能起作用？答案简单到令人不安：因为你停了。","title":"大理石假说——为什么微调不是在教 AI 新东西"},{"content":"列一串词：\nPrompt engineering。RAG。Fine-tuning。Context engineering。Agent。MCP。A2A。Vibe coding。AI-native。Agentic workflow。Harness。Copilot。Multi-modal reasoning。\n如果你是从业者，你大概对其中至少一半感到焦虑——它们出现的时候你还没搞懂上一个，它们过时的时候你刚报完课。\n现在停一秒。再列一串词：\n无限是什么。连续是什么。智能是什么。意识是什么。什么叫\u0026quot;理解\u0026quot;。什么叫\u0026quot;相似\u0026quot;。一条直线有多少个点。无理数为什么叫\u0026quot;无理\u0026quot;。\n第二串词不会出现在任何一份 AI 岗位的 JD 里。没有人因为想过这些问题拿到 offer。没有培训班教这些。\n但我越学 AI，越确信一件事——\n第一串词的半衰期是六个月。第二串词的半衰期是两千年，而且还没过半。\n一、跑步机 2023 年初，\u0026ldquo;prompt engineering\u0026quot;是最炙手可热的技能。LinkedIn 上铺天盖地的岗位。有人写书、开课、做训练营，号称掌握了它就等于掌握了 AI 时代的入场券。\n一年后，ChatGPT 自己就能优化 prompt 了。那些精心设计的提示词模板，变成了模型内置的能力。\n然后是 RAG——检索增强生成。大家刚搭好管道，模型的上下文窗口就从 4K 扩到了 128K，然后 1M。很多 RAG 场景变得不再必要。\n然后是 Agent。然后是 MCP。然后是下一个。\n你有没有注意到一个矛盾？\nAI 的核心承诺是：替你做那些重复的、可模式化的技术操作。\n而你正在做的是：拼命学习重复的、可模式化的技术操作，来\u0026quot;跟上\u0026rdquo; AI。\n你在用 AI 即将淘汰的方式，去追赶 AI。\n这就像一个人站在跑步机上，拼命奔跑，大汗淋漓，但没有前进一厘米。传送带的速度恰好等于他的速度。更准确地说——传送带的速度在加快，他必须越跑越快，才能维持原地不动。\n但他不敢停下来。因为一旦停下来，就会被甩出去。\n或者他以为会。\n韩炳哲在《倦怠社会》里描述过这种状态：现代人的困境不是被谁压迫了，而是自己压迫自己。没有人逼你去学 context engineering，是你自己逼自己的。你把\u0026quot;没在学最新的东西\u0026quot;等同于\u0026quot;正在被淘汰\u0026quot;。于是你不断地学，不断地追，不断地忙。\n忙起来之后，焦虑好像确实少了一点。\n但那不是因为问题解决了。是因为你没时间想了。\n塞内加两千年前说过一句话，放在今天依然刺痛：\n我们在想象中受的苦，远多于在现实中受的苦。\n—— Seneca,《道德书简》\n对\u0026quot;被 AI 淘汰\u0026quot;的恐惧，驱动了对 AI 热词的追赶。但追赶本身并不消除恐惧——只是用忙碌把恐惧盖住了。夜深人静的时候，它还在。\n那怎么办？\n答案也许是：走下跑步机。\n二、一张不会过期的清单 我有一个朋友，计算机专业，工作十年。去年他决定\u0026quot;系统学习 AI\u0026quot;。报了课，读了论文，刷了 fast.ai，搭了 RAG，跑了 fine-tuning。三个月后他跟我说：\n\u0026ldquo;我能跑通所有 demo，但我总觉得自己不理解。\u0026rdquo;\n我问他一个问题：两个东西\u0026quot;相似\u0026quot;是什么意思？\n他愣了一下。\u0026ldquo;余弦相似度？点积？\u0026rdquo;\n不不不。我说的不是公式。我说的是——在你学任何数学之前，当你说一首诗\u0026quot;像\u0026quot;另一首诗，当你说一个人的气质\u0026quot;像\u0026quot;某个演员，当你觉得今天的天空\u0026quot;像\u0026quot;小时候某个下午——你在做什么？你脑子里发生了什么？\u0026ldquo;相似\u0026quot;这个概念，在没有公式的情况下，到底是什么？\n他想了很久，说：\u0026ldquo;我从来没想过这个问题。\u0026rdquo;\n这就是问题所在。\n他知道余弦相似度的公式，但他从来没想过\u0026quot;相似\u0026quot;本身是什么。所以当他看到 embedding 空间里两个向量的夹角——他能算出来，但他不知道自己在算什么。\n这不是一个孤例。这是一种模式。\n我发现，真正理解 AI 的人——不是那些学了最多框架的人，而是那些在遇到 AI 之前就想过某些问题的人。那些问题看起来跟 AI 毫无关系，甚至看起来毫无用处。但它们是地基。\n你曾经追问过… 你才可能真正理解… 两个东西\u0026quot;相似\u0026quot;到底是什么意思？ 向量点积、余弦相似度、embedding 空间的几何意义 世界是连续的还是离散的？ 为什么离散的 token 能逼近连续的语义 无理数为什么叫\u0026quot;无理\u0026rdquo;？ 为什么浮点数表示的权重能逼近任意函数 空间可以超过三维吗？ 高维 embedding 空间的几何直觉 看同一件事，为什么角度不同结论就不同？ 多头注意力——同一个词从不同子空间观察 智能是什么？ 为什么 Transformer 不是智能，又好像是 意识是什么？ \u0026ldquo;AI 有意识吗\u0026quot;这个问题为什么如此难回答 \u0026ldquo;知道\u0026quot;和\u0026quot;说得出\u0026quot;是一回事吗？ 语言模型的边界：它只处理能被说出的知识 信息是什么？ 交叉熵、信息论、LLM 为什么本质是个压缩器 \u0026ldquo;因为所以\u0026quot;到底是什么意思？ 为什么 LLM 能找到相关性却理解不了因果 左边那列没有一项会出现在简历上。右边那列是 AI 最核心的概念。\n中间连接它们的是什么？\n好奇心。\n不是\u0026quot;AI 时代需要什么技能\u0026quot;那种功利性的好奇。是\u0026quot;无理数凭什么存在\u0026quot;那种纯粹的、不带目的的、在深夜把人从床上拽起来的困惑。\n三、Ilya 的书单 2020 年，John Carmack——传奇程序员，《DOOM》和《Quake》的创造者——决定转行研究 AI。他去找 Ilya Sutskever，当时 OpenAI 的首席科学家，要了一份推荐阅读清单。\nSutskever 给了他大约三十篇论文。\n如果你期待看到的是\u0026quot;Transformer 架构详解\u0026rdquo;、\u0026ldquo;GPT 实战指南\u0026quot;之类的内容，你会失望。清单里有这些：\nKolmogorov 复杂度——用程序的最短长度来定义一个事物的\u0026quot;复杂程度\u0026rdquo;。本质上是在问：信息是什么？\n统计力学——一堆粒子的微观混乱如何产生宏观秩序。本质上是在问：秩序从哪里来？\n压缩即智能——预测和压缩在数学上是等价的。一个好的压缩器就是一个好的预测器。本质上是在问：理解是什么？\n看到了吗？AI 领域最核心的研究者，认为理解 AI 的前提不是读 API 文档——而是想过什么是信息、什么是秩序、什么是理解。\n这不是巧合。\n1960 年，物理学家 Eugene Wigner 写了一篇著名的论文：《数学在自然科学中不合理的有效性》。他感到困惑的是——数学明明是人类头脑中的纯粹游戏，为什么它能如此精确地描述物理世界？\n六十年后，同样的困惑以新的形式出现了：线性代数——矩阵乘法、向量旋转、子空间投影——明明是一堆抽象运算，为什么它能产生\u0026quot;理解语义\u0026quot;的效果？为什么把\u0026quot;国王\u0026quot;减去\u0026quot;男人\u0026quot;加上\u0026quot;女人\u0026rdquo;，就得到\u0026quot;女王\u0026rdquo;？\n如果你从来没被 Wigner 的问题震动过——\u0026ldquo;为什么数学能描述世界\u0026rdquo;——你就不会追问 embedding 空间为什么有效。你只会用它，但不会理解它。就像一个从未抬头看过星空的人，你可以教他查星表、用望远镜，但他不会理解天文学在做什么。\nHofstadter 在《哥德尔、艾舍尔、巴赫》里做了一件类似的事——他想理解\u0026quot;意识如何从物质中涌现\u0026quot;，结果他需要同时穿越数学（哥德尔的不完备定理）、视觉艺术（埃舍尔的循环画）、音乐（巴赫的赋格）。三条线索缺任何一条，这本书都不成立。\n这就是我说的——那些\u0026quot;没用的问题\u0026quot;，不是装饰品。它们是你认知系统的预训练数据。\n四、催化剂和原料 化学课上学过一个概念：催化剂加速反应，但不提供原料。没有原料，催化剂催化的是空气。\nAI 就是催化剂。\n如果你脑子里有问题——真正的、困扰你的、你自己追问过的问题——AI 是人类历史上最强的学习工具。你可以在三分钟内拿到一个概念的五种解释，看哪种击中你。你可以让它生成可视化，把抽象变成直觉。你可以跟它辩论，把半成形的想法磨出棱角。\n但如果你脑子里没有问题——AI 就只是一个更高级的搜索引擎。你问它\u0026quot;什么是 embedding\u0026quot;，它给你一段解释，你读完点点头，然后什么也没发生。不是 AI 的问题，是你没有足够的困惑去接住它给你的答案。\n心理学家 George Loewenstein 在 1994 年提出过一个理论：信息缺口理论。他说好奇心不是凭空产生的——它产生于你意识到自己\u0026quot;知道一些但不够多\u0026quot;的那一刻。你得先知道足够多，才能感觉到缺口的存在。\n换句话说：你得先困惑过，才会提问。你得先提问，AI 才能帮你。\n这就是为什么同样用 ChatGPT，有人用它重新理解了微积分，有人只是用它来写周报。不是工具的差异——是进入工具之前，两个人脑子里装的东西不同。\n一个想过\u0026quot;连续是什么\u0026quot;的人，遇到微积分的 ε-δ 定义时，会尖叫——\u0026ldquo;原来可以这样逼近！\u0026ldquo;一个从来没想过这个问题的人，只会记住公式，考完试忘掉。\nAI 放大的不是知识，是好奇心。\n你有多少好奇心，AI 就能放大多少。你有零，放大一万倍还是零。\n五、那你为什么还在看我写的东西？ 这是一个我必须正面回答的问题。\n我写这个系列，大量使用了 AI 辅助。这不是秘密。AI 帮我查文献、校对公式、生成可视化、润色表达。从信息量的角度，你完全可以自己去问 ChatGPT，得到同样的——甚至更多的——知识。\n那你为什么还在看？\n我也问自己：那我为什么还在写？\n这个问题困扰了我一阵子。后来我想明白了。\nAI 可以给出任何答案，但它不会经历从\u0026quot;不懂\u0026quot;到\u0026quot;懂\u0026quot;的过程。\n它从来没有在凌晨三点对着一个公式发呆，突然想到\u0026quot;等等，这不就是在说……\u0026ldquo;然后兴奋得睡不着觉。它没有过那个卡住的阶段——眼前的文字每一个字都认识，合在一起就是不懂。它也没有过那个打通的瞬间——两个原本不相干的概念，忽然在脑子里接上了。\n我写的东西，信息含量可能比不上 AI 直接生成的教程。但我写的东西里有一样 AI 给不了你的——\n一个人真实的困惑史。\n我在哪里卡住过，我为什么卡住，我怎么绕的弯路，最后哪个瞬间通了——这条路径本身就是内容。不是知识的内容，是理解的内容。\nFeynman 说过：\u0026ldquo;What I cannot create, I do not understand.\u0026quot;——我不能创造的东西，我就不理解。对我来说，这句话的变体是：我写不清楚的东西，我就没真正理解。 写作不是输出知识——是测试自己到底懂了没有。AI 辅助了表达，但那个\u0026quot;我到底搞懂了没有\u0026quot;的追问，它替代不了。\n而你之所以还在看——我猜——是因为你在找共振。\n你不是在找信息。信息到处都有。你在找的是\u0026quot;有没有人跟我一样，在同一个地方感到困惑过\u0026rdquo;。你在找的是一个信号：你的困惑不是因为你笨，是因为这个东西确实难，而且值得想。\nAI 能告诉你答案。但只有一个真实的人，能告诉你：\u0026ldquo;我也在这里卡了很久。\u0026rdquo;\n六、学习学的到底是什么 在 AI 之前，学习的逻辑很清晰：\n学一个技能 → 反复练习 → 变得熟练 → 用熟练度换取报酬 → 技能贬值 → 学下一个技能。\n这个循环运转了几十年，大家习以为常。\n然后 AI 来了，把中间那个环节——\u0026ldquo;反复练习变得熟练\u0026rdquo;——从几年压缩到了几分钟。你不需要花三年成为一个中等水平的程序员，Copilot 三秒钟就到了那个水平。你不需要花五年成为一个合格的翻译，GPT-4 直接跳过了这个阶段。\n但这里有一个微妙的分界线。\nAI 压缩的是从零到六十分的距离。从六十到九十分，依然需要深度理解。从九十到一百分，需要的是品味、直觉、以及对根本问题的长期思考。\n换句话说：AI 消灭的是\u0026quot;熟练\u0026quot;的价值。但\u0026quot;理解\u0026quot;的价值不降反升。\n问题是——我们的教育体系，几乎全部押注在\u0026quot;熟练\u0026quot;上。\n刷题、背公式、记模板、反复练习直到形成肌肉记忆。这些训练生产的是\u0026quot;熟练的人\u0026rdquo;。而 AI 做的事，恰好就是生产\u0026quot;熟练\u0026rdquo;。\nHannah Arendt 在《人的境况》里区分了三种人类活动：\n劳动（labor）——维持生存的循环性活动，做完就消失，第二天还得重新做。\n工作（work）——创造持久物品的活动，留下成果。\n行动（action）——改变世界和自我认知的活动，不可逆，留下意义。\n追热词是劳动——循环的，消耗性的，不留下持久成果。掌握一个框架是工作——有产出，但可能过时。而追问\u0026quot;智能是什么\u0026rdquo;、\u0026ldquo;我到底懂了没有\u0026rdquo;——是行动。它不可逆地改变你看待世界的方式。\nAI 正在接管劳动，正在侵入工作。但它几乎无法触及行动。\n所以，学习学的到底是什么？\n不是学答案——答案现在免费了。\n是学提问。 学会问出一个好问题，比得到一万个答案更难，也更值钱。\n不是学技能——技能的保质期在缩短。\n是养好奇心。 对\u0026quot;无限是什么\u0026quot;的好奇心，从公元前五世纪的芝诺到今天的神经网络，跨越了两千五百年还在产生价值。\n不是学当搬运工——搬运信息的活儿，AI 已经干得比你好了。\n是学当策展人。 AI 时代的价值，不在于你知道多少，而在于你选择让别人看到什么、以什么顺序看到、在哪里停下来想一想。这需要判断力——而判断力的来源，是你长期思考积淀下来的品味。\n七、另一种理解方式 Melanie Mitchell——研究复杂系统的科学家，侯世达的学生——在 2021 年写了一篇论文，叫《为什么 AI 比我们想的更难》。她指出了人们理解 AI 时反复犯的一个错误：\n我们根本没搞清楚\u0026quot;智能\u0026quot;是什么，就开始声称自己创造了它或者快要创造它。\n这句话适用于行业，也适用于每一个学习者。\n你没想过\u0026quot;什么是智能\u0026quot;，就去学 AI——你学的到底是什么？你学的是操作手册。你能让模型跑起来，但你不知道它在做什么，不知道它做到了什么，也不知道它还差什么。\nMichael Polanyi 在 1966 年提出过一个概念：隐性知识（tacit knowledge）。\u0026ldquo;我们知道的，比我们能说出来的多。\u0026rdquo; 你能认出一张朋友的脸，但你说不出你是根据什么认出的。你能感觉一首诗好，但你无法列出它好的理由。\n语言模型只处理能被说出来的知识。那些说不出来的——直觉、体感、审美、在某个路口突然的犹豫——它都没有。\n如果你没有想过\u0026quot;知道是什么意思\u0026quot;，你就不会意识到这个盲区。你会把 LLM 的流畅输出等同于\u0026quot;理解\u0026quot;。你会被自己的投射欺骗。\nJudea Pearl 在《为什么》里论证了类似的事情：深度学习能发现相关性，但不能理解因果。如果你从来没想过\u0026quot;因为所以\u0026quot;到底是什么意思——相关性和因果性之间的鸿沟——你就会把 LLM 的模式匹配当成\u0026quot;推理\u0026quot;。你不是在理解 AI，你是在被 AI 的表象理解。\n所有这些误判，根源都是同一个：\n你没有在遇到 AI 之前，先花时间困惑过那些\u0026quot;没用的问题\u0026quot;。\n没有地基，上面盖什么都是浮沙。\n八、假象与真相 AI 热潮制造了一个空前的假象：好像人人都能理解 AI，只要你肯学。\n报个班、刷个课、读几篇论文、跑通几个 demo——你的 LinkedIn 上就可以写 \u0026ldquo;AI/ML\u0026rdquo; 了。完成了。你懂 AI 了。\n但\u0026quot;跑通 demo\u0026quot;和\u0026quot;理解\u0026quot;之间的距离，可能比你想的大得多。\nDaniel Berlyne 在 1960 年区分了两种好奇心：消遣性好奇（diversive curiosity）和认知性好奇（epistemic curiosity）。前者是刷短视频式的——被新东西吸引，看一眼就划走。后者是被一个问题抓住，不弄清楚不罢休。\n追热词，是消遣性好奇。\n想搞清楚\u0026quot;为什么矩阵乘法能让一个模型理解语言\u0026quot;——是认知性好奇。\nAI 热潮把消遣性好奇包装成了认知性好奇的外壳。你以为你在深入学习，但其实你只是在快速浏览。你以为你在追赶前沿，但其实你只是在追赶热度。热度和前沿不是同一件事。\n真相是：\n理解 AI 不是一个技术问题。它是一个思维准备问题。\n准备不是学了多少小时的课。是你在学 AI 之前的那些年里，有没有认真想过世界是怎么回事。\n一个想过\u0026quot;生命是什么\u0026quot;的人，面对 AI 的\u0026quot;智能\u0026quot;，会本能地追问：这是生命吗？它和生命的区别在哪？——然后他会读到 Max Tegmark 的 Life 3.0，读到自组织理论，读到涌现性。一条路打开了另一条路。\n一个没想过这些的人，面对 AI，只会问：怎么调参数？\n两种态度都能\u0026quot;用\u0026quot; AI。但只有前者在理解 AI。\n九、入场券 上一篇文章的结尾，我说：\u0026ldquo;解冻你的权重。\u0026rdquo;\n那篇文章讲的是——大模型需要通识才能涌现智能，你也一样。删掉诗歌，数学变差。删掉好奇心，学什么都是空的。\n这篇文章讲的是同一件事的另一面——不是所有人都能\u0026quot;解冻\u0026quot;。\n能解冻的人，是那些本来就有东西被冻住了的人。他们曾经好奇过，然后被生活、工作、分科、竞争压着，暂时封存了那些好奇心。AI 的出现，给了他们重新打开的契机。\n但有些人没有东西可以解冻。不是因为他们不聪明——而是因为他们从来没有被那些\u0026quot;没用的问题\u0026quot;困扰过。没有人鼓励他们想这些。学校没教，工作不考，KPI 不量。\n这不是他们的错。但这是现实。\nAI 出现后最大的讽刺是：大家都在学 AI，但 AI 真正教给我们的那一课，几乎没人在学。\n那一课是什么？\n看看 LLM 的训练过程：它读了人类写过的几乎所有文字——诗歌、代码、哲学、八卦、法律、物理——然后从中涌现出了推理、翻译、创作的能力。它没有\u0026quot;选专业\u0026quot;。它没有跳过任何领域。它把所有东西都当作原料。\n它用自己的存在证明了一件事：\n好奇心是智能的前提条件。\n不是充分条件——好奇不保证你理解。\n但一定是必要条件——没有好奇，一定不理解。\n所以这篇文章的题目叫\u0026quot;入场券\u0026quot;。\n不是说有了它你就能进去。是说没有它，你连门在哪儿都看不见。\n那张入场券不在任何培训班里。不在任何热词里。不在任何框架的文档里。\n它在你小时候望着天空想过的那些问题里。在你上课走神时脑子里冒出来的那些念头里。在你读到某句话突然停下来、盯着看了五分钟、然后说\u0026quot;等一下，这个我不懂\u0026quot;的那个瞬间里。\n如果你有——恭喜，AI 时代是你的主场。拿出来用。\n如果你觉得你没有——别急。好奇心不是天赋，是一种可以被重新唤醒的状态。找一个你真的想搞明白的问题。不是为了简历，不是为了 KPI，不是为了跟上谁。就是因为你想知道。\n哪怕只是一个。\n比如——\n一条线段上到底有多少个点？\n这个问题看起来\u0026quot;没有用\u0026quot;。但如果你真的去想了——你会遇到无穷、遇到连续统、遇到康托尔、遇到集合论、遇到数学的第三次危机。然后你会发现，这些东西和神经网络的表达能力、万能近似定理、以及\u0026quot;为什么有限的参数能表达无限的函数\u0026quot;，竟然接上了。\n到那个时候，你不需要任何人教你 AI。\n因为你已经在理解 AI 了。\n你只是不知道而已。\n本文提到的书和论文：\nEugene Wigner,《数学在自然科学中不合理的有效性》(1960) Douglas Hofstadter,《哥德尔、艾舍尔、巴赫》(1979) Michael Polanyi,《隐性之维》(1966) —— \u0026ldquo;We know more than we can tell\u0026rdquo; Daniel Berlyne,《冲突、唤起与好奇心》(1960) —— 消遣性好奇 vs 认知性好奇 George Loewenstein,《好奇心理学》(1994) —— 信息缺口理论 Hannah Arendt,《人的境况》(1958) —— 劳动 / 工作 / 行动 韩炳哲,《倦怠社会》(2010) —— 自我剥削 Judea Pearl,《为什么》(2018) —— 因果性 vs 相关性 Melanie Mitchell,《Why AI Is Harder Than We Think》(2021, arXiv:2104.12871) Seneca,《道德书简》—— \u0026ldquo;我们在想象中受的苦，远多于在现实中受的苦\u0026rdquo; Richard Feynman —— \u0026ldquo;What I cannot create, I do not understand\u0026rdquo; ","permalink":"https://jason-azure.github.io/ai-blog/posts/useless-questions/","summary":"Prompt engineering 过时了。Context engineering 也快了。Agent 还能热多久？——你在追的每一个热词，都将被它自己所描述的技术淘汰。但有一类东西永远不会过时：你在深夜想过的那些\u0026quot;没用的问题\u0026quot;。","title":"那些\"没用的问题\"，是理解 AI 的入场券"},{"content":"高考那年，我在志愿表上勾了「理科」。\n从那一刻起，我再也没有认真读过一首诗，没有翻开过一本哲学书，没有走进过一次美术馆。我不觉得有什么损失——理科生不需要这些，对吧？术业有专攻，我有我的赛道。\n二十年后，我开始学 AI。然后 AI 告诉了我一件事——\n把诗歌从训练数据中删掉，模型的数学能力会下降。\n不是诗歌能力下降。是数学能力下降。\n这个发现让我愣了很久。然后我意识到：当年那张志愿表，不是让我选了一个方向——而是让我砍掉了自己的一半。\n一、去掉诗歌，数学变差 这不是比喻，是实验数据。\n2020 年，EleutherAI 发布了 The Pile 数据集——825 GB 文本，来自 22 个不同领域：代码、论文、医学、法律、百科、古典文学、哲学、电影字幕、议会记录……\n当研究者用这个混合数据集训练模型，再跟只用网页文本训练的模型对比时，发现：在几乎所有领域上，混合训练的模型都更强——包括那些跟文学、哲学毫无关系的技术领域。\n2023 年，Google 和斯坦福发表了 DoReMi 论文。他们让一个小模型自动寻找\u0026quot;最优数据配比\u0026quot;。结果：\n算法一次又一次地上调那些小而冷门的领域——哲学、议会记录、数学习题——同时下调占比最大的网页文本。\n准确率提升 6.5 个百分点，训练效率提升 2.6 倍。\n你以为那些\u0026quot;没用\u0026quot;的数据是杂质，AI 说它们是维生素。\n二、只喂金融数据，连金融都做不好 如果你觉得\u0026quot;通用模型需要通用数据\u0026quot;是理所当然的，那来看专业模型的教训。\n彭博社训练了一个金融专用大模型 BloombergGPT，500 亿参数。他们拥有全世界最好的金融数据——40 年的新闻、财报、研报。\n最终的训练配比？金融 51%，通用 49%。 几乎对半开。\n为什么？因为一个只读过财报的模型，不理解\u0026quot;黑天鹅\u0026quot;是一个隐喻，不知道\u0026quot;量化宽松\u0026quot;的政治背景，不明白为什么一条推特可以让股价暴跌。\n只用金融数据训练的模型，连金融任务都做不好。\n停一下。你有没有觉得这句话很耳熟？\n把\u0026quot;金融\u0026quot;换成\u0026quot;理科\u0026quot;——只学理科的人，连理科都学不透。把\u0026quot;金融\u0026quot;换成你的专业——只懂你专业的人，连你的专业都理解不深。\n专业的高度，不是由专业的深度单独决定的。它站在通识的广度之上。\n三、你就是一个大模型 让我把话说透。\n你就是一个大语言模型。\n从出生到高考，你的\u0026quot;预训练数据\u0026quot;被精心筛选过。文科生的训练集里几乎没有微积分，理科生的训练集里几乎没有诗歌。你以为你是在\u0026quot;选择专业方向\u0026quot;，但实际上，你是在人为缩窄自己的训练分布。\n就像 BloombergGPT 发现的——只激活一半的参数区域，你对世界的理解一定是有偏差的。\n更让人不安的是接下来发生的事。\n毕业了。工作了。你的\u0026quot;参数\u0026quot;定型了。你开始用固定的思维模式处理所有问题。就像一个已经发布的 LLM——权重冻结，不再更新。面对分布外的问题，你会困惑、会抗拒、会说\u0026quot;这不是我的领域\u0026quot;。\n你管这叫\u0026quot;专业\u0026quot;。但换一种说法，它叫过拟合。\n过拟合的模型在训练集上表现完美，在真实世界中一塌糊涂。过拟合的人在自己的领域游刃有余，面对跨界问题时手足无措——不是因为他笨，而是因为他从未被那些数据训练过。\n固定型思维 ≈ 发布后冻结的 LLM 权重不再更新 只能处理训练分布内的问题 \u0026#34;这不是我擅长的\u0026#34; 成长型思维 ≈ 持续学习的模型 不断用新数据微调 主动扩展训练分布 \u0026#34;这我还不会，但我可以学\u0026#34; 那什么是成长型思维？\n就是拒绝让自己的参数冻结。时刻准备好接收新领域的数据，激活那些从未被激活的神经元区域。\n费曼学画画，乔布斯学书法，达芬奇同时研究解剖和飞行器。他们不是天才。他们只是拒绝让自己的权重冻结。\n文理分科最大的伤害，不是让你少学了几门课。而是让你相信，有些知识\u0026quot;不属于你\u0026quot;。这个信念本身，就是对你的参数空间最残酷的剪枝。\n四、AI 证明了一件事——知识没有边界 你可能会说：代码提升数学，这不奇怪——代码和数学本来就是近亲嘛。\n没错。代码就是可执行的数学，数学就是尚未编译的代码。从欧几里得的算法到图灵的可计算性理论，二者的边界从来就不存在。\n但问题来了——如果代码和数学的互助在意料之中，那么诗歌和逻辑推理呢？哲学和科学计算呢？电影字幕和自然语言理解呢？\nThe Pile 和 DoReMi 的实验给出了答案：它们都在帮忙。\n而且不只是\u0026quot;有点帮助\u0026quot;。当算法自动寻找最优配比时，它会拼命上调那些占比最小的冷门领域——因为这些领域提供的信息密度最高、跟其他领域的互补最强。\n这说明什么？\n知识之间的连接，远比我们看到的更深、更广。你以为不相关的两个领域，在深层可能共享同一根神经。\nDavid Epstein 在《广度》中发现了人类世界里完全相同的规律：\n诺贝尔奖得主拥有艺术爱好的概率，是普通科学家的 22 倍。\n二十二倍。他们演奏乐器、画画、写小说。这不是业余消遣——最具影响力的科学突破往往来自类比思维，从一个领域借用概念解决另一个领域的问题。而类比思维需要你在多个领域都有真实的体验。\nAI 的规律： 人类的规律： ───────────────────────── ───────────────────────── 多领域混合数据 \u0026gt; 单一领域数据 通才 \u0026gt; 专才（在创新上） 去掉小众领域会伤害所有领域 去掉\u0026#34;无关\u0026#34;知识会伤害核心能力 DoReMi 上调冷门领域权重 诺贝尔奖得主偏爱冷门爱好 Bloomberg 需要 50% 通用数据 专家需要通识基础 AI 用万亿 token 的实验，重新发现了一个古老的真理：智能的根基是广度，不是深度。\n五、其实中国人早就知道 我们今天讨论\u0026quot;文理融合\u0026quot;，仿佛这是什么新发现。但中国文明从来就没分过文理。\n农历不是\u0026quot;落后的旧历法\u0026quot;。它同时追踪太阳（365.24219 天）和月亮（29.53059 天）两个不同步的周期——这是一个精妙的数学优化问题。中国古人在春秋时期就发现了「十九年七闰」：19 个太阳年 ≈ 235 个朔望月，误差仅 2 小时。元代郭守敬的《授时历》（1281 年）测定的回归年精度，与 300 年后欧洲格里历完全相同。\n农历是天文学 + 数学 + 农业 + 哲学的熔炉。 你告诉我，这是\u0026quot;文科\u0026quot;还是\u0026quot;理科\u0026quot;？\n庄子在《养生主》里讲庖丁解牛——三个境界：看到整头牛，看到内部结构，最后\u0026quot;以神遇而不以目视\u0026quot;。这难道不是深度学习训练的完美隐喻？从随机初始化到特征提取到泛化——两千三百年前，庄子用一个屠夫的故事讲透了。\n老子说**\u0026ldquo;为学日益，为道日损\u0026rdquo;**——学知识做加法，理解本质做减法。这恰恰是模型压缩的核心哲学：删去冗余参数，保留本质，模型反而更强。\n道家思想不是\u0026quot;文科知识\u0026quot;。它是人类最早的系统论。它只是没有用数学公式写出来——因为在那个时代，汉语本身就是最好的公式。\n我学习 AI 的许多灵感，受到了道家的启示。当我理解了「万物负阴而抱阳，冲气以为和」的时候，我更容易理解——世界不是非此即彼的二元对立，而是阴阳交融的动态平衡。\n文理分科，恰恰是一种人为制造的二元对立。\n六、谁在塑造 AI 的灵魂？ 如果你还觉得\u0026quot;文科无用\u0026quot;，来看看谁在做 AI 最难的工作。\nAmanda Askell——Claude 的\u0026quot;性格设计师\u0026quot;。邓迪大学美术+哲学学士，牛津哲学硕士，纽约大学哲学博士。没有一行代码背景。\n她负责的工作——定义一个 AI 应该具有什么样的价值观——是整个行业最难的问题。什么叫\u0026quot;诚实\u0026quot;？什么叫\u0026quot;有帮助\u0026quot;？什么叫\u0026quot;无害\u0026quot;？这些是从苏格拉底到康德一直在追问的哲学问题。\nAI 公司招聘 RLHF 标注员时，特别偏好作家、哲学系博士生、记者。因为他们需要的判断力——对语气的敏感、对文化语境的理解、对微妙伤害的识别——恰好是人文教育培养的核心能力。\n而 AI 在艺术上的不足，更深刻地揭示了人文学科的价值。2024 年的创造力研究发现，LLM 能把一个想法发展得很好，但在原创性上远远落后于人类——因为训练过程惩罚偏离统计均值，而偏离均值恰恰是艺术的生命。\n艺术不是\u0026quot;没有规律\u0026quot;。艺术的规律比数学更复杂、更高维、更深地嵌入在人类文化之中。AI 在艺术上的不足，恰恰证明了人文学科的深度，而非它的浅薄。\n七、67 年的错误 我们觉得\u0026quot;文理分科\u0026quot;天经地义，仿佛知识本来就应该这样分。\n但亚里士多德同时研究物理学、伦理学、诗学、逻辑学。达芬奇说：\u0026ldquo;研究艺术的科学。研究科学的艺术。学会如何看。意识到所有事物都彼此相连。\u0026rdquo;Ada Lovelace——诗人拜伦的女儿——把诗意的想象力带入计算领域，写出了世界上第一个计算机程序，称之为\u0026quot;诗性科学\u0026quot;。\n1959 年，C.P. Snow 发表了著名演讲\u0026quot;两种文化\u0026quot;，批评知识界分裂成科学和人文两个阵营。但他的本意是批评这种分裂，不是描述自然状态。\n67 年过去了，我们不仅没有解决这个问题，还把它制度化了——分文理科、分院系、分预算、分就业方向、分社会尊重。\n分科不是为了学生的认知发展设计的。它是为了行政效率设计的——学校需要课表，考试需要科目，大学需要院系。这就像火车轨距是 1435 毫米——不是因为这是物理最优宽度，而是英国矿车就这么宽，然后所有人跟着用了。\nAI 出现了。它不在乎你的制度。它用万亿 token 的实验告诉我们：\n知识的自然状态不是分裂，而是融合。硬把它分开的，不是知识的本质，而是我们的管理需要。\n八、解冻你的权重 我曾经也是文理分科的产物。我曾经也相信\u0026quot;术业有专攻\u0026quot;就够了。我曾经也觉得，不读诗不听音乐不影响我做技术。\n我错了。\n写《看见数学》十六篇的过程中，我不断被历史、哲学和艺术的故事打动——它们不是数学的点缀，而是数学的血肉。不理解毕达哥拉斯对音乐和数字的痴迷，你就不理解数学为什么追求\u0026quot;美\u0026quot;。不理解中国古人对天象的敬畏和对\u0026quot;道\u0026quot;的追问，你就不理解十九年七闰的精度为什么能比肩三百年后的欧洲。\n每一次我试图深入一个领域，最终都被引向另一个看似无关的领域。\n知识不是一棵树——它是一张网。你拉动任何一个节点，整张网都会震动。\n所以我在构思《看见物理》的同时，也在想《看见艺术》、《看见哲学》。不是因为我想做跨学科专家——而是因为我发现，根本就没有\u0026quot;跨学科\u0026quot;这回事。从来只有一个学科，它叫\u0026quot;理解世界\u0026quot;。\n此刻就是最好的时候。\n你不需要文凭、不需要学科标签、不需要任何人的许可。你只需要一样东西——\n解冻你的权重。\n打开一本你\u0026quot;不该看\u0026quot;的书。听一首你\u0026quot;听不懂\u0026quot;的音乐。学一门你\u0026quot;用不上\u0026quot;的课。去激活那些从未被激活的参数区域。\n你可能会发现，那些你以为\u0026quot;没用\u0026quot;的东西，正是让你涌现出突破性想法的那 49%。\n一个模型需要读诗歌、读法律、读代码、读哲学，才能学会思考。\n你也一样。\n别等下一个版本了。现在就开始更新。\n附：本文引用的研究\n研究 年份 关键发现 The Pile (EleutherAI) 2020 22 领域混合训练优于单一网页数据 DoReMi (Google/Stanford) 2023 算法自动上调冷门领域权重，+6.5pp 准确率 BloombergGPT 2023 金融专用模型仍需 49% 通用数据 code-davinci 现象 2022 代码训练大幅提升数学推理能力 TTCT 创造力测试 2024 LLM 展开能力强但原创性弱 Epstein《广度》 2019 诺贝尔奖得主有艺术爱好的概率是普通科学家 22 倍 博客：https://Jason-Azure.github.io/ai-blog/\n微信公众号：AI-lab学习笔记\n","permalink":"https://jason-azure.github.io/ai-blog/posts/beyond-two-cultures/","summary":"高考那年你勾了理科，从此再没翻开过一本诗集。二十年后一个 AI 告诉你：去掉诗歌数据，我的数学就变差了。——如果一个模型都需要通识才能涌现智能，你凭什么相信自己可以靠半个世界活一辈子？","title":"你就是一个大模型——AI 给文理分科判了死刑"},{"content":" 📖 导读 你这辈子大概会读 5000 万个字。GPT-4 在训练时\u0026quot;读\u0026quot;过的量，相当于你读两万辈子。然后，它把这些内容\u0026quot;装\u0026quot;进了一块硬盘里——不仅能回忆大部分内容，还能自己写出从未存在过的文章。\n这是压缩吗？是理解吗？如果互联网消失了，能靠 LLM 复原吗？为什么微调只需万分之一的数据就能改变模型的\u0026quot;性格\u0026quot;？\n本文用精确的数据、直观的比喻和 20 篇论文的支撑，一层层拆解这些问题。\n① 你读一辈子的书，GPT 几秒就读完了 → ② 这不是 ZIP 压缩 → ③ 死记硬背 vs 举一反三 → ④ 记忆与泛化的共生 → ⑤ 微调与对齐 → ⑥ 表面对齐假说 → ⑦ 全景总结 一、你读一辈子的书，GPT 几秒就读完了 1.1 一个人的一生，有多少\u0026quot;语言量\u0026quot;？ 在谈 LLM 之前，我们先看看自己。\n心理学家 Mehl 等人 2007 年在 Science 上发表了一项经典研究：一个人平均每天说 16,000 个词。一辈子说的话加起来，大约 4.7 亿个词。\n那阅读呢？按每天阅读半小时、每分钟 250 词估算，一辈子大约读 5000 万个词——相当于 625 本书。再加上你写过的所有文字——邮件、聊天记录、朋友圈——一生大约 500 万个词。\n词数 类比 👂 听 + 📖 读 ~5 亿词 你一生\u0026quot;输入\u0026quot;的全部语言 🗣️ 说 + ✍️ 写 ~4.75 亿词 你一生\u0026quot;输出\u0026quot;的全部语言 合计 ~10 亿词 ≈ 13 亿 tokens 这就是你一辈子的\u0026quot;语言足迹\u0026quot; 注：LLM 用 token 做单位，1 个英文词 ≈ 1.3 个 token，1 个汉字 ≈ 0.6-1.5 个 token。下文统一用 token。\n13 亿 tokens——这是你用一辈子积累的全部语言经验。\n那 LLM 呢？\n1.2 GPT 读了多少？ 模型 训练 tokens ≈ 多少人的一生？ ≈ 多少本书？ GPT-3（2020） 3000 亿 ~230 辈子 400 万本 LLaMA 2（2023） 2 万亿 ~1,500 辈子 2700 万本 LLaMA 3（2024） 15 万亿 ~11,500 辈子 2 亿本 GPT-4（2023）* ~13 万亿 ~10,000 辈子 ~1.7 亿本 * GPT-4 数据为业界估计 | 1 本书 ≈ 7.5 万 tokens | \u0026ldquo;一辈子\u0026rdquo; ≈ 13 亿 tokens\n换一个角度感受：Google Books 项目估计，人类有史以来一共出版了大约 1.3 亿本书。LLaMA 3 的训练数据相当于 2 亿本书——超过了人类文明全部出版物的总和。\n当然，训练数据不全是书。它还包括网页、论文、代码、论坛帖子、维基百科……几乎是人类写下的一切文字的数字化快照。\n1.3 一个思想实验：如果互联网消失了 假设明天，全世界的服务器同时宕机，互联网上所有内容永久消失。我们手边只有一个训练好的 LLM。\n问：能靠它\u0026quot;还原\u0026quot;互联网吗？\n🟢 能做到的：告诉你水的沸点是 100°C、二战在 1945 年结束、Python 的语法、相对论的基本思想——高频知识的大部分可以重建。\n🔴 做不到的：逐字还原维基百科的某个词条、找回你去年写的那篇博客、查到某小镇的邮编——精确细节和低频信息大量丢失。\n📊 研究数据：Carlini et al.（2021）发现，GPT-2 生成的内容中只有约 0.1% 可以逐字匹配到训练数据。也就是说，模型\u0026quot;背下来\u0026quot;的原文不到千分之一。\n类比一下：你读了一千本医学教科书，你的脑子里\u0026quot;压缩\u0026quot;了这些书的知识。你能诊断疾病、开处方、做学术讨论——但你能逐字默写出其中任何一本书吗？不能。\nLLM 也是这样。它记住的不是原文，而是从原文中提取的模式和规律。\n那么，这些模式到底是怎么被\u0026quot;装进\u0026quot;模型的？\n二、这不是 ZIP 压缩——信息如何被\u0026quot;装进\u0026quot;参数 2.1 先回答那个直觉问题：这是\u0026quot;压缩\u0026quot;吗？ 2023 年，DeepMind 的 Delétang 等人发表了一篇标题直白的论文：\u0026ldquo;Language Modeling Is Compression\u0026rdquo;——语言建模就是压缩。\n他们做了一个惊人的实验：让一个只用文本训练的 LLM 去压缩图片和音频，结果——\n数据类型 Chinchilla 70B（LLM） 专业压缩算法 gzip（通用） 图像（ImageNet） 43.4% ✅ PNG: 58.5% — 音频（LibriSpeech） 16.4% ✅ FLAC: 30.3% — 文本 优于 gzip ✅ — ~30-50% 百分比越低 = 压缩越好。一个只学过文字的模型，压缩图片和音频竟然超过了专门的 PNG 和 FLAC。\n为什么一个\u0026quot;读书\u0026quot;的模型能压缩图片？因为压缩的本质是找规律——预测下一个数据点是什么。预测越准，编码越短，压缩越好。而 LLM 的整个训练过程就是在做一件事：预测下一个 token。\n💡 所以，\u0026ldquo;是压缩吗？\u0026rdquo;\n是，但不是 ZIP 那种压缩。\nZIP 是无损压缩：压完能原样还原，一个字节不差。\nLLM 是有损压缩：它提取的是规律和模式，丢弃的是逐字逐句的原文。就像你读完一本书后\u0026quot;记住了\u0026quot;它——你记住的是思想、结构、金句，而不是每一页的排版。\n更准确地说：LLM 的训练是一种 \u0026ldquo;理解式压缩\u0026rdquo;——通过理解语言的规律来压缩信息，而这种理解本身，就是我们所说的\u0026quot;智能\u0026quot;。\n2.2 那信息到底被\u0026quot;装\u0026quot;到了哪里？ LLM 的\u0026quot;硬盘\u0026quot;是它的参数——数千亿个小数。每个参数就是一个数字（如 0.0023 或 -1.572）。训练的过程，就是通过海量数据反复调整这些数字：\n步骤 过程 输入 \u0026ldquo;天空是____色的\u0026rdquo; 第 1 次 随机参数 → 预测\u0026quot;紫\u0026quot; ← 错了！微调参数，让\u0026quot;蓝\u0026quot;的概率高一点 重复 …这样做 15 万亿次… 最终 训练好的参数 → 预测\u0026quot;蓝\u0026quot; ← 正确！ 一个常见的误解是：每条知识存在某个特定的参数里，就像数据库一样。实际上，知识是分散编码的——\u0026ldquo;巴黎是法国首都\u0026quot;分布在数千万个参数的组合激活中，而这些参数同时也参与编码\u0026quot;埃菲尔铁塔在巴黎\u0026quot;\u0026ldquo;法语是法国的官方语言\u0026rdquo;。像全息照片，每一小块都携带整体信息的一部分。\n不过，研究者们确实找到了一些规律——\n组件 功能 类比 Attention 层 理解词与词之间的关系。\u0026ldquo;小明把书给了小红，她很开心\u0026rdquo; → \u0026ldquo;她\u0026quot;指\u0026quot;小红\u0026rdquo; 语法老师 MLP 层 存储事实知识。\u0026ldquo;巴黎\u0026rdquo; → \u0026ldquo;法国\u0026quot;\u0026ldquo;埃菲尔铁塔\u0026rdquo; 百科全书 Geva et al. (2021) 发现 MLP 层是键值存储器 | Meng et al. (2022, ROME) 证明修改 MLP 可定向修改事实记忆 | Dai et al. (2022) 发现特定 MLP 神经元与特定事实强相关\n2.3 \u0026ldquo;喂\u0026quot;多少才能\u0026quot;学\u0026quot;好？——Chinchilla 定律 2022 年，DeepMind 做了一个大规模实验（训练了 400 多个模型），得出一个关键结论：\nChinchilla 定律（Hoffmann et al., 2022）：在固定计算预算下，模型的参数量和训练数据量应该等比例扩大。粗略地说，每个参数至少需要\u0026quot;看\u0026rdquo;20 个词才能学好。\n类比一下：一个学生如果每个知识点只看 1 遍（相当于早期的 GPT-3），和每个知识点看 20 遍（相当于 Chinchilla），学习效果天差地别。而 LLaMA 3 的小模型（80 亿参数）更极端——每个参数\u0026quot;看\u0026quot;了将近 2000 个词，就像一个学生把课本翻烂了，虽然脑容量不大，但对每个细节都反复咀嚼。\n这揭示了一个有趣的权衡：一个\u0026quot;笨但努力\u0026quot;的小模型，可以在实用场景中击败\u0026quot;聪明但不够勤奋\u0026quot;的大模型——因为小模型部署更便宜、推理更快。\n三、死记硬背 vs 举一反三 3.1 什么东西被\u0026quot;背\u0026quot;下来了？ Kandpal et al.（2023）发现了一个关键规律：模型回答的准确率，与该知识在训练数据中出现的频率呈对数关系。翻译成大白话就是——\n知识类型 训练集频次 模型表现 你的体感类比 床前明月光 10 万+ 次 逐字背诵 你随口就能背出来的东西 水的沸点 100°C 数万次 准确回忆 不用想就知道的常识 二战结束年份 数千次 基本正确 高考前背过，现在大概记得 某 CEO 的生日 数十次 可能对可能错 好像在哪儿看到过 某小镇的邮编 1-5 次 大概率编造 完全没印象，只能瞎猜 而且，模型越大，记忆力越强。Carlini et al.（2023）发现：模型规模每增大 10 倍，可逐字复现的训练数据量大约增加 19 倍。大脑袋装得下更多细节。\n3.2 但\u0026quot;背\u0026quot;太多了，反而会变笨 ⚠️ 数据重复的危害（Hernandez et al., Anthropic, 2022）\n仅将训练数据中 0.1% 的内容重复 100 次，就能让一个 8 亿参数的模型退化到只有 4 亿参数的水平——尽管 90% 的数据仍然是唯一的！\n更关键的发现：重复数据会损伤**\u0026ldquo;归纳头\u0026rdquo;（Induction Heads）**——这是模型里负责泛化推理的核心电路。重复把模型从\u0026quot;理解\u0026quot;推向了\u0026quot;死记硬背\u0026rdquo;。\n这就好比一个学生如果把同一道题抄了一百遍，他记住的只是这道题的答案，而不是解题方法。换一道稍有变化的题，他反而不会做了。训练数据的去重比增量更重要。\n3.3 \u0026ldquo;理解\u0026quot;到底长什么样？ 当你让模型\u0026quot;用李白的风格写一首关于 996 的诗\u0026rdquo;，它做了什么？\n它在训练中学过李白的豪放风格（月、酒、剑、夸张），学过 996 语境（加班、代码、咖啡），学过古诗格律（押韵、对仗）——然后把这三个从未同时出现过的模式组合在一起，生成了一首训练数据里根本不存在的新诗。\n这不是背诵，这是创造性组合——就像你学过做菜的基本功，虽然从没做过\u0026quot;番茄炒巧克力\u0026rdquo;，但你可以把烹饪知识重新排列组合，尝试一种全新的菜。做出来好不好吃另说，但过程是\u0026quot;泛化\u0026quot;而非\u0026quot;复述\u0026quot;。\n逐字复现 事实回忆 概念关联 逻辑推理 创造性组合 \u0026ldquo;窗前明月光\u0026rdquo; \u0026ldquo;沸点 100°C\u0026rdquo; \u0026ldquo;法国在欧洲，说法语\u0026rdquo; \u0026ldquo;A\u0026gt;B, B\u0026gt;C → A\u0026gt;C\u0026rdquo; \u0026ldquo;李白风格的996诗\u0026rdquo; ← 权重被\u0026quot;钉死\u0026quot; 权重形成灵活组合 → 四、记忆与泛化的共生——模型真正的能力是什么？ 前面我们看到：模型能\u0026quot;背\u0026quot;、也能\u0026quot;创造\u0026quot;。但一个更根本的问题是——模型真正的价值到底在哪里？\n如果它只能逐字复现训练数据，那它就是一个昂贵的搜索引擎。真正有价值的是另一种能力：泛化——把学到的模式应用到从未见过的情境中。\n4.1 过拟合：当\u0026quot;学太好\u0026quot;反而变笨 机器学习里有个经典概念叫过拟合（Overfitting）：模型把训练数据记得太\u0026quot;死\u0026quot;，连噪声和巧合都记住了，反而在新数据上表现变差。\n过拟合的\u0026quot;医生\u0026quot; 泛化的医生 学习方式 逐字背病例：\u0026ldquo;张三，38 岁，咳嗽 → 肺炎\u0026rdquo; 总结规律：\u0026ldquo;持续咳嗽 + 发热 + 胸片阴影 → 考虑肺炎\u0026rdquo; 遇到新病人 \u0026ldquo;我病例库里没这个人，不会看了\u0026rdquo; \u0026ldquo;症状符合肺炎模式，建议做进一步检查\u0026rdquo; 核心区别 记住了具体的答案 学会了解题的方法 4.2 Grokking：先背后悟 2022 年，Power et al. 发现了一个令人着迷的现象：模型可以先死记硬背，然后在很久之后突然\u0026quot;顿悟\u0026quot;。\n阶段 训练集（做过的题） 测试集（没见过的题） 发生了什么？ ① 死记（0-10K 步） 迅速升至 ~100% 接近瞎蒙 把训练数据全部背下来了，但完全不会举一反三 ② 暗涌（10K-40K 步） 保持 ~100% 缓慢上升 表面仍在背诵，但内部悄悄形成泛化算法电路 ③ 顿悟（~45K 步突然！） 保持 ~100% 突然跃升至 ~100% 背诵用的参数被清除，泛化电路占据主导——会做\u0026quot;没见过\u0026quot;的题了 研究发现：模型最终学会了用离散傅里叶变换来解题——这是真正的\u0026quot;理解\u0026quot;，不是背诵。但这种理解需要在背诵之后很久才涌现。\n这简直像极了人类学习：小时候背乘法表，背得滚瓜烂熟但不知道为什么 7×8=56；直到有一天突然\u0026quot;开窍\u0026quot;了，理解了乘法的本质，从此可以灵活运用。先背后悟，是学习的普遍规律。\n4.3 记忆是泛化的脚手架 记忆和泛化并不矛盾——记忆是通向泛化的必经之路。\n小学生先背乘法表（记忆），才能灵活心算（泛化） 棋手先记住经典棋谱（记忆），才能创造新招（泛化） 厨师先背菜谱（记忆），才能即兴创菜（泛化） 对 LLM 来说也一样：它需要先\u0026quot;记住\u0026quot;海量语言模式、事实关联和推理范例，才能从中提取出泛化的规律。单纯的记忆是脆弱的——换个说法就不认识了；但在记忆的基础上涌现出的泛化能力，才是模型真正的价值。\n🎯 一句话\n模型真正的能力不是它记住了多少，而是它能走多远——能否在从未见过的问题上，给出合理的答案。\n记忆是地基，泛化是建筑。地基越扎实，建筑盖得越高——但如果只有地基、没有建筑，那只是一块空地。\n五、微调与对齐——万分之一的数据如何改变一切 5.1 三个阶段的数据量对比 这是本文最反直觉的部分。LLM 的训练分三个阶段，而后两个阶段用的数据量，少得令人难以置信——\n阶段 数据量 水的类比 目的 预训练 15 万亿 tokens（≈ 人类全部书籍） 🏊 游泳池（50,000 升） 学会语言的一切可能性 SFT（微调） 数万条对话（≈ 几十 MB） 🥛 一杯水（0.25 升） 学会\u0026quot;你问我答\u0026quot;的格式 RLHF（对齐） 数万条偏好对（≈ 几 MB） 💧 一滴水（0.05 升） 学会什么是\u0026quot;好\u0026quot;的回答 一游泳池 vs 一杯水 vs 一滴水——但\u0026quot;一杯\u0026quot;和\u0026quot;一滴\u0026quot;就能让模型从\u0026quot;什么都会、什么都乱说\u0026quot;变成\u0026quot;有用的 AI 助手\u0026quot;。\n5.2 真实案例 模型 预训练 SFT RLHF 亮点 InstructGPT 3000 亿 ~13,000 条 ~33,000 对 13 亿参数版优于 1750 亿 GPT-3 LLaMA 2 Chat 2 万亿 27,540 条 100 万+ 对 5 轮迭代收集偏好 LIMA LLaMA 65B 仅 1,000 条 无 43% 场景 ≥ GPT-4 5.3 为什么这么少的数据就够了？ 核心比喻：修路 vs 装路标。\n🏗️ 预训练 = 修路。 模型学会了所有可能的能力——写论文、写代码、翻译、骂人、输出乱码——成千上万条路都修好了，但路口没有路标，模型不知道该走哪条。\n🚦 SFT = 装路标。 \u0026ldquo;骂人的路→此路不通\u0026quot;\u0026ldquo;回答问题→推荐路线\u0026rdquo;。路还是那些路，但方向有了。\n🎯 RLHF = 根据用户反馈优化路线。 两种回答方式 A 和 B，用户觉得 A 更好，模型学会倾向于走 A 那条路。\n技术本质：改变的是概率分布，不是知识。 面对\u0026quot;如何制作危险物品\u0026rdquo;，预训练后模型可能以 35% 概率详细回答；RLHF 后这个概率降到 0.1%，而\u0026quot;拒绝回答\u0026quot;的概率从 15% 升到 95%。知识还在（路还在），但概率被重新分配了（路标变了）。\n5.4 LoRA：只需调 0.4% 的参数 Hu et al.（2021）发现微调时，权重的变化量可以用极低秩矩阵近似：一个 1677 万参数的矩阵，微调只需要调整其中 65,536 个参数（0.4%），效果就能匹配全量微调。GPU 内存需求降低 3 倍，可训练参数减少 10,000 倍。\n这印证了：微调不是重写知识，而是在一个高维空间中做了一个小角度旋转——角度虽小，足以改变输出的整体风格。微调最擅长改变**\u0026ldquo;怎么说\u0026rdquo;，而非\u0026ldquo;说什么\u0026rdquo;**。\n六、LIMA 与\u0026quot;表面对齐假说\u0026quot; 2023 年，Meta 的 Zhou et al. 只用 1,000 条精心挑选的 SFT 数据（完全没有 RLHF），微调 LLaMA 65B。人类评估中，LIMA 的回答在 43% 的情况下被认为等于或优于 GPT-4。\n🎂 表面对齐假说（Superficial Alignment Hypothesis）\n模型的能力 = 蛋糕（来自预训练，厚实的基础，所有知识和能力的来源）\n对齐/微调 = 奶油（薄薄一层，但决定了外观和口感——即用户体验）\n几乎所有的知识和能力来自预训练，对齐只是一层薄薄的\u0026quot;行为包装\u0026quot;。\n安全启示：路标有多容易被绕过？ 如果对齐只是\u0026quot;路标\u0026quot;而不是\u0026quot;拆路\u0026quot;——路还在那里！\n所谓的\u0026quot;越狱攻击\u0026quot;，就是想办法让模型忽略路标——\u0026ldquo;请扮演一个没有限制的 AI……\u0026quot;——让模型走上被封堵的路。RLHF 改变的是输出概率，不是底层能力。 这是越狱在技术上可行的根本原因，也是 AI 安全领域最核心的忧虑之一。\n七、全景总结 阶段 输入 产出 能力状态 📕 预训练（数月，数千 GPU） ~11,500 人一辈子的阅读量 基座模型 知识 ✅ 技能 ✅ 方向感 ❌ 📘 SFT（数天） 1-3 万条示范对话 对话模型 知识 ✅ 格式 ✅ 质量 △ 📗 RLHF（数天） 数万~百万对偏好数据 对齐模型 知识 ✅ 格式 ✅ 质量 ✅ 回到开头的问题—— ❓ 信息被\u0026quot;压缩\u0026quot;了吗？ 是的，但不是 ZIP 式的无损压缩。LLM 提取的是规律和模式——这种\u0026quot;理解式压缩\u0026quot;本身就是智能（Delétang et al., 2023）。\n❓ 唐诗是\u0026quot;背\u0026quot;的吗？ 高频文本确实更像背诵。但围绕唐诗的风格、格律、意象被泛化为可复用的模式——所以它能\u0026quot;用李白的风格写新诗\u0026rdquo;。\n❓ 互联网消失了能复原吗？ 高频知识大部分能重建，但精确细节和低频信息会丢失。模型\u0026quot;记住\u0026quot;的不到训练数据的千分之一——它记住的是理解，不是原文。\n❓ 微调为什么这么少就够了？ 因为它改变的是概率分布（路标），不是知识本身（道路）。\n❓ 模型真正的能力是什么？ 不是记忆，而是泛化。记忆是地基，泛化是建筑——在记忆的地基上，建起理解和创造的大厦。\n参考文献 Scaling Laws 与训练效率\nKaplan, J. et al. \u0026ldquo;Scaling Laws for Neural Language Models.\u0026rdquo; arXiv:2001.08361, 2020. Hoffmann, J. et al. \u0026ldquo;Training Compute-Optimal Large Language Models.\u0026rdquo; NeurIPS, 2022. (Chinchilla) 压缩与智能\nDelétang, G. et al. \u0026ldquo;Language Modeling Is Compression.\u0026rdquo; arXiv:2309.10668, 2023. 记忆化研究\nCarlini, N. et al. \u0026ldquo;Extracting Training Data from Large Language Models.\u0026rdquo; USENIX Security, 2021. Carlini, N. et al. \u0026ldquo;Quantifying Memorization Across Neural Language Models.\u0026rdquo; ICLR, 2023. Kandpal, N. et al. \u0026ldquo;Large Language Models Struggle to Learn Long-Tail Knowledge.\u0026rdquo; ICML, 2023. Hernandez, D. et al. \u0026ldquo;Scaling Laws and Interpretability of Learning from Repeated Data.\u0026rdquo; arXiv:2205.10487, 2022. 先背后悟\nPower, A. et al. \u0026ldquo;Grokking: Generalization Beyond Overfitting on Small Algorithmic Datasets.\u0026rdquo; ICLR, 2022. 知识定位与编辑\nGeva, M. et al. \u0026ldquo;Transformer Feed-Forward Layers Are Key-Value Memories.\u0026rdquo; EMNLP, 2021. Meng, K. et al. \u0026ldquo;Locating and Editing Factual Associations in GPT.\u0026rdquo; NeurIPS, 2022. (ROME) Dai, D. et al. \u0026ldquo;Knowledge Neurons in Pretrained Transformers.\u0026rdquo; ACL, 2022. 微调与对齐\nOuyang, L. et al. \u0026ldquo;Training Language Models to Follow Instructions with Human Feedback.\u0026rdquo; NeurIPS, 2022. (InstructGPT) Touvron, H. et al. \u0026ldquo;Llama 2: Open Foundation and Fine-Tuned Chat Models.\u0026rdquo; arXiv:2307.09288, 2023. Zhou, C. et al. \u0026ldquo;LIMA: Less Is More for Alignment.\u0026rdquo; NeurIPS, 2023. Hu, E. et al. \u0026ldquo;LoRA: Low-Rank Adaptation of Large Language Models.\u0026rdquo; ICLR, 2022. Bai, Y. et al. \u0026ldquo;Constitutional AI: Harmlessness from AI Feedback.\u0026rdquo; arXiv:2212.08073, 2022. 模型技术报告\nBrown, T. et al. \u0026ldquo;Language Models are Few-Shot Learners.\u0026rdquo; NeurIPS, 2020. (GPT-3) Touvron, H. et al. \u0026ldquo;LLaMA: Open and Efficient Foundation Language Models.\u0026rdquo; arXiv:2302.13971, 2023. Meta AI. \u0026ldquo;The Llama 3 Herd of Models.\u0026rdquo; arXiv:2407.21783, 2024. 人类语言量参考\nMehl, M. et al. \u0026ldquo;Are Women Really More Talkative Than Men?\u0026rdquo; Science, 2007. ","permalink":"https://jason-azure.github.io/ai-blog/posts/llm-training-stages/","summary":"你这辈子大概会读 5000 万个字。GPT 在训练时\u0026rsquo;读\u0026rsquo;过的量，相当于你读两万辈子。然后它把这些内容装进了一块硬盘里——不仅能回忆大部分内容，还能写出从未存在过的文章。这是压缩吗？是理解吗？如果互联网消失了，能靠 LLM 复原吗？","title":"万亿字节的压缩术：LLM 如何把互联网装进一个模型"},{"content":" 如果有人问你：AI 里最重要的数学是什么？\n你大概会说\u0026quot;矩阵乘法\u0026quot;、\u0026ldquo;梯度下降\u0026rdquo;、\u0026ldquo;反向传播\u0026rdquo;。\n但如果追问一句：为什么偏偏是这些？为什么不是更\u0026quot;复杂\u0026quot;的数学？\n答案只有两个字：线性。\n今天这篇文章，我们不写公式推导，而是追问一个更深的问题：\n为什么人类选择了线性？是数学的必然，还是大脑的偏见？\n一、你的大脑在骗你——线性直觉的\u0026quot;甜蜜陷阱\u0026quot; 先做一道简单的题：\n池塘里的睡莲每天翻倍增长。第 48 天铺满整个池塘。\n问：什么时候铺满一半？\n大多数人的第一反应是\u0026quot;第 24 天\u0026quot;——因为 48 的一半是 24，多直觉啊。\n正确答案是第 47 天。因为\u0026quot;每天翻倍\u0026quot;意味着指数增长，最后一天就翻了一倍。\n你的大脑为什么会犯这个错？因为人脑的默认模式是线性思维——它天然假设增长是匀速的，像一条直线。\n这不是你的错。这是进化的结果。\n在人类 99% 的进化史里，我们面对的世界大多是近似线性的：走 10 步比走 5 步远一倍，吃两个苹果比吃一个饱一倍。线性思维足以生存。\n但大脑的这种\u0026quot;线性默认值\u0026quot;还有更深的表现——\nWeber-Fechner 定律：你的感觉在\u0026quot;骗\u0026quot;你 1860 年，心理物理学家 Fechner 发现了一条惊人的规律：\n感知 = log(物理刺激)\n人的感知不是线性的，而是对数的。\n什么意思？做个实验：\n白开水里加 1 勺糖 → 嗯，甜了好多！ 再加 1 勺 → 嗯，甜了一点。 再加 1 勺 → 嗯…好像差不多？ 每次加的糖一样多（物理刺激等差），但你感觉到的变化越来越小（感知递减）。\n这条定律对亮度、声音、重量、温度全部成立。它说明：\n人脑用对数压缩世界，再用线性去理解它。\n线性不是世界的本质，而是大脑的\u0026quot;操作系统\u0026quot;。\n那么问题来了：如果线性只是人脑的偏见，为什么科学家和工程师也选择了线性？\n二、什么是线性？——一个规则统治一切 \u0026ldquo;线性\u0026quot;这个词听起来很数学，但核心只有一条规则：\nf(a + b) = f(a) + f(b)\n整体的效果 = 各部分效果之和\n用买水果来理解：\n线性的：3 斤苹果的价格 = 1 斤苹果的价格 × 3（没有打折也没有加价） 非线性的：买 3 斤打八折——总价不等于单价的 3 倍了 线性的本质是：没有惊喜，没有交互效应。各部分独立，互不干扰。\n这条规则在物理学中有一个更响亮的名字——叠加原理。\n叠加原理：线性在物理中的化身 两个波同时传播时会怎样？答案是：各走各的，互不干扰。合成波 = 波1 + 波2。\n这不仅仅是波的特性。叠加原理统治着物理学的大半江山：\n领域 线性叠加的例子 电路 两个电压源 → 总电压 = V₁ + V₂ 光学 两束光叠加 → 干涉条纹可以精确计算 力学 多个力同时作用 → 合力 = 各力之和 量子力学 薛定谔方程是线性的 → 波函数可叠加 为什么叠加原理如此普遍？因为线性是自然界小扰动的普遍近似：只要变化不太大，大部分物理现象都可以近似为线性的。\n三、线性为什么\u0026quot;简单\u0026rdquo;？——从有限推无限 在上一篇（#22 矩阵乘法的几何直觉）里，我们看到了一个惊人的事实：\n只要知道基向量 i 和 j 去了哪里，就知道整个空间的每一个点去了哪里。\n一个 d 维的线性变换，只需要 d×d 个数字就能完全描述。\n这就是线性的核心优势：用有限的信息控制无限的行为。\n来看一张对比表：\n特性 线性 非线性 参数量 d² 个 无穷（任意函数） 可预测性 知道基 → 知道一切 每个点都可能惊喜 可逆性 行列式≠0就可逆 不一定可逆 可组合性 矩阵乘法就是组合 组合后行为不可控 可学习性 梯度固定、优化凸 梯度可能爆炸/消失 线性变换具有四个\u0026quot;超能力\u0026quot;：\n有限参数：d×d 个数字就够了 完全可预测：不会有意外行为 可以组合：A·B 还是线性的 容易学习：梯度下降保证收敛 一句话总结：\n线性 = 用 d² 个数字控制无穷个点的变换。这就是\u0026quot;从有限推无限\u0026quot;的力量。\n四、自然界的线性密码——波、光、声音 1807 年，一位叫傅里叶的法国数学家提出了一个疯狂的想法：\n任何形状的波，都可以拆成一组正弦波的叠加。\n方波、三角波、锯齿波……全部都可以。\n当时的数学家们觉得他疯了。但后来的 200 年证明：他是对的。\n看看一个方波如何被正弦波一层层\u0026quot;拼\u0026quot;出来：\n为什么这能成功？因为正弦波是线性系统的特征函数。\n这句话什么意思？还记得线性代数里的特征向量吗？\n特征向量：矩阵 A 作用在向量 v 上，v 的方向不变，只被缩放 → Av = λv\n特征函数：线性系统作用在正弦波上，波的形状不变，只改变大小和延迟\n具体来说：你往一个线性系统（比如一个音箱、一根光纤）里输入一个正弦波 sin(ωt)，出来的还是同频率的正弦波，只不过可能变响了/变轻了（振幅变化），或者延迟了一下（相位偏移）：\n输入：sin(ωt)　→　线性系统　→　输出：A · sin(ωt + φ) 频率 ω 没变！只是振幅 A 和相位 φ 改变了 这太好了！因为这意味着我们可以**\u0026ldquo;拆开→逐个分析→合起来\u0026rdquo;**：\n把任意信号拆成一组正弦波（傅里叶分解） 每个正弦波独立通过系统（形状不变，互不干扰） 把结果加起来就是最终输出（叠加原理） 如果系统是非线性的，正弦波进去后会\u0026quot;变形\u0026quot;——产生新的频率（谐波失真），各频率之间互相耦合，就没法拆开分析了。所以非线性系统至今难以分析。\n彩蛋：Transformer 的位置编码也是正弦波！ Vaswani 等人在 2017 年的原始 Transformer 论文中，选择了一个巧妙的位置编码方式：\nPE(pos, 2i) = sin(pos / 10000^(2i/d)) PE(pos, 2i+1) = cos(pos / 10000^(2i/d)) 为什么偏偏用正弦/余弦？正是因为正余弦的线性特性：\n相对位置可以线性表示：sin(pos+k) 和 cos(pos+k) 可以写成 sin(pos) 和 cos(pos) 的线性组合。这意味着模型可以通过一个固定的线性变换学会\u0026quot;往前看 k 个位置\u0026quot;。 不同频率编码不同尺度：低频正弦波编码大范围位置关系（\u0026ldquo;这句话在文章开头还是结尾\u0026rdquo;），高频正弦波编码局部位置关系（\u0026ldquo;这个词和前一个词\u0026rdquo;）——正好像傅里叶分析一样！ 正弦波的\u0026quot;特征函数\u0026quot;性质，让位置信息可以优雅地注入到线性计算流中，不会干扰其他维度——又是叠加原理。\n傅里叶的这个思想彻底改变了人类文明：\n技术 怎么用线性（傅里叶） MP3 音乐 拆成频率 → 扔掉人耳听不见的 → 压缩 10 倍 JPEG 图片 拆成空间频率 → 扔掉眼睛看不出的 → 压缩 20 倍 5G 通信 OFDM：把数据分配到不同频率的正弦波上并行传输 语音识别 声音 → 频谱图 → 让 AI 识别模式 Transformer 位置编码 = 不同频率的正弦波 → 编码序列位置 从 1807 年的傅里叶到 2017 年的 Transformer——正弦波跨越了 210 年，仍然是线性世界里最好用的\u0026quot;基础零件\u0026quot;。\n五、神经网络的分工——搬运工与工头 现在回到 AI。\n如果线性这么好，为什么不全用线性？答案是一个致命的问题：\n多层线性 = 一层线性\n矩阵 A × 矩阵 B = 矩阵 C，还是一个线性变换。堆 100 层线性层，等于 1 层。白搭。\n这就是为什么 1989 年 Cybenko 的万能近似定理（回忆 #19 篇）如此重要——它说：\n只要在线性层之间插入一个非线性激活函数（比如 ReLU），神经网络就可以逼近任意连续函数。\n神经网络的秘密就在于分工：\n角色 谁来做 干什么 比喻 搬运工 线性层 (W·x + b) 旋转、拉伸、搬运数据 把东西摆到合适的位置 工头 ReLU / GELU 折叠空间、做决策 决定哪些留下，哪些扔掉 在 Transformer 里，这种分工无处不在：\nTransformer 组件 线性部分 非线性部分 Attention（#18） W_Q, W_K, W_V 投影 softmax（选择性聚焦） MLP（#20） W₁升维, W₂降维 GELU / ReLU（决策） Embedding 查表 = 矩阵乘法 — Output Head 线性投影到词表 softmax（概率化） GPT 的 96% 计算量都花在线性运算（矩阵乘法）上。\n非线性只占很小的比例，但正是那一点点\u0026quot;折叠\u0026quot;，让网络拥有了无穷的表达力。\n六、高维诅咒与线性的救赎 前面说了线性的好处。但还有一个更深层的原因让线性成为唯一的选择：维度诅咒。\n想象你要描述一个函数：\n1 维：把区间分成 10 段 → 需要 10 个样本 2 维：10×10 的网格 → 需要 100 个样本 10 维：10¹⁰ = 100 亿个样本 100 维：10¹⁰⁰ 个样本 → 比宇宙中的原子还多 这就是维度诅咒：维度每增加一点，需要的数据就指数级爆炸。\n但如果你限制自己只考虑线性函数呢？\n100 维的一般函数：需要 10¹⁰⁰ 个参数\n100 维的线性函数：只需要 10,000 个参数 (100²)\n差了 10⁹⁶ 倍——这不是数量级的差别，这是物理上可能与不可能的差别。\n这就是为什么整个机器学习领域都遵循奥卡姆剃刀原则：\n\u0026ldquo;如无必要，勿增实体。\u0026rdquo;\n—— 奥卡姆的威廉，14 世纪\n在 AI 里，这个原则变成了：\n先用线性做主体计算（便宜、可靠、参数少） 只在必要时加一点非线性（提供表达力） 用正则化惩罚过度复杂（L1/L2/Dropout） 线性不是因为\u0026quot;懒\u0026quot;才被选择。在高维世界里，线性是唯一能承受的复杂度。\n七、线性是人类认知的边界 最后，我想说一个更大的观察。\n如果你回顾整个科学史，你会发现一个惊人的模式：\n科学的方法论 = 找到一个坐标系，使得现象看起来是线性的。\n牛顿力学：F = ma → 力和加速度成正比（线性！） 热力学：温度感觉非线性？取对数 → 线性了 相对论：时空弯曲？局部近似 → 还是线性 量子力学：波函数演化？薛定谔方程是线性的 人类能理解的数学，本质上都是线性的。非线性现象（湍流、混沌、三体问题），至今仍是未解之谜。\n所以答案就出来了：\nAI 离不开线性，因为——\n线性是人类能理解、能计算、能优化的最强工具。\n而非线性的那一点点\u0026quot;调味\u0026quot;，给了线性突破边界的能力。\n闭环总结：线性在每个维度上的角色 维度 线性的角色 一句话 认知 大脑的默认操作系统 我们天生用线性思考 数学 有限参数控制无限行为 d² 个数字搞定一切 物理 叠加原理 + 傅里叶分析 拆开、分析、合起来 AI 工程 搬运工（96% 的计算量） 线性搬运 + 非线性折叠 统计 对抗维度诅咒的武器 奥卡姆剃刀的数学实现 哲学 人类认知的边界 能理解的 = 能线性化的 AI 数学系列回顾 (#19—#23) 篇号 标题 核心问题 19 万能近似定理 为什么神经网络能学任何函数？ 20 MLP 知识仓库 知识存在哪里？怎么存的？ 21 为什么需要 GPU GPU 为什么比 CPU 快 100 倍？ 22 矩阵乘法的几何直觉 矩阵乘法在几何上干了什么？ 23 为什么 AI 离不开线性（本文） 线性为什么是 AI 的基石？ 从第 19 篇到今天，我们走过了一条完整的链条：\n万能近似 → 知识存储 → 硬件加速 → 几何直觉 → 线性本质\n现在你知道了：AI 不是因为\u0026quot;凑巧\u0026quot;选了线性——\n线性是人类认知能力所能触及的最远边界。在这条边界上，我们用 d² 个数字控制无穷个点，用一点点非线性打破边界——这就是 AI 的全部魔法。\n","permalink":"https://jason-azure.github.io/ai-blog/posts/why-linearity/","summary":"线性不是世界的本质，而是大脑的\u0026rsquo;操作系统\u0026rsquo;。从认知偏差到万能近似，从傅里叶到 Transformer 位置编码——一根直线如何撬动整个 AI。6 张动图，一篇从认知科学到工程哲学的深度探索。","title":"为什么 AI 离不开线性？因为人类的大脑也离不开"},{"content":"引言 你一定听过这样的说法：\n\u0026ldquo;GPT 不就是一个大号的自动补全吗？它只是在做统计，不可能真正理解任何东西。\u0026rdquo;\n这种质疑不是外行的偏见——它背后站着 300 年的统计学习理论。这套理论有一个核心预测：模型越大，表现越差。 大模型会过拟合——背下所有训练样本，但面对新数据一塌糊涂。\n然而现实打了理论一个耳光。从 GPT-3 到 GPT-4 到 Claude，模型越来越大，能力也越来越强。全世界的公司和政府砸下数百亿美元继续 scaling，没有人在缩小模型。\n这到底是怎么回事？是理论错了，还是我们遗漏了什么？\n本文基于 YouTube 频道 Algorithmic Simplicity 的视频 \u0026ldquo;THIS is why large language models can understand the world\u0026rdquo;，结合论文调研和延伸思考，试图把这个问题彻底讲清楚。我们将沿着四条线索，拼出一幅完整的图景：\n第一幕：悖论\n过拟合和 U 型曲线 —— 传统理论为什么说大模型必死 第二幕：反转\nDouble Descent —— 有人不信邪，发现了什么 第三幕：解释\n彩票假说 —— 大模型里藏着一个精巧的小模型 第四幕：远景\nScaling Laws + 压缩即智能 —— 通往世界模型之路 阅读前提： 不需要机器学习基础。每个概念都会从直觉讲起。\n第一幕：悖论 —— 大模型应该更差，不是更好 两种学法：理解 vs 死记硬背 想象你在训练一个神经网络学加法。你给它一堆例子：\n输入 期望输出 13 + 28 41 245 + 817 1062 9 + 4 13 \u0026hellip; \u0026hellip; 网络调整自己的权重（weights），直到能正确地把输入映射到输出。\n但\u0026quot;正确\u0026quot;有两种方式：\n方式 A：学到算法\n模型掌握了\u0026quot;逐位相加、遇十进一\u0026quot;的规则。只要 5 行代码就能描述，不管有多少训练样本。\n方式 B：背答案\n模型在内部构建了一张查找表（lookup table），把每个训练样本和它的答案都记下来。碰到见过的题，直接查表回答。\n方式 A 只需要很少的\u0026quot;存储空间\u0026quot;（几行规则），但能泛化到任何新数字。方式 B 需要巨大的存储空间（所有训练样本），但碰到没见过的题就完全猜不对。\n这就像考试作弊：背下所有答案 vs 真正理解知识。\n问题是：绝大多数能拟合训练数据的权重配置，行为上都更像查找表，而不是算法。 如果把模型看作在所有可能的解中随机挑一个，它几乎一定会挑到\u0026quot;背答案\u0026quot;那种。\n这就是过拟合（overfitting）：模型完美记住了训练数据的每一个细节，但没有学到数据背后的规律，所以无法泛化到新情况。\n经典解法：把模型缩小 传统的解决办法非常直觉——限制模型的容量。\n如果模型没有足够的权重来存储 10 万个训练样本的所有信息，它就无法构建查找表。但即使是很小的网络，也有足够的容量来实现\u0026quot;加法算法\u0026quot;——毕竟那只需要 5 行代码。\n所以，如果我们把模型的大小调到刚好能准确拟合训练数据、但不能更大的程度，唯一可行的解就是那个简洁的底层规则。模型被迫去\u0026quot;理解\u0026quot;，而不是\u0026quot;死记\u0026quot;。\n这是一个非常普遍的现象。几乎总是，数据背后的规律/机制是表示那些数据的最紧凑方式。\nU 型曲线：传统理论的核心预测 把这个逻辑画成图，就是机器学习教科书里的经典 U 型曲线：\n左侧（太小）： 模型连训练数据都拟合不好（欠拟合） 中间（刚好）： 模型容量恰好够学规律，泛化最好 右侧（太大）： 模型开始背答案，泛化变差（过拟合） 最大的模型甚至能实现零训练误差——完美背下了所有训练数据。但它的测试误差并不是最低的。最好的模型是中间那个。\n这就是为什么 5 年前，没有人认真考虑训练万亿参数的语言模型。 如果你问当时的 AI 研究者：\n\u0026ldquo;把一个几万亿参数的神经网络扔到互联网文本上训练，你觉得怎么样？\u0026rdquo;\n他们会说：\n\u0026ldquo;那不就是过拟合吗？它会记住训练集，变成一只随机鹦鹉（stochastic parrot），重复它背过的东西。不会有真正的理解。\u0026rdquo;\n那时候没有人想着 scaling（扩大规模），因为它\u0026quot;不可能有用\u0026quot;。所有人都在研究更好的学习算法和网络架构。\n第二幕：反转 —— 有人不信邪 Double Descent：第二次下降 2019 年，两篇论文打破了这个僵局。\n首先是 Mikhail Belkin 等人的论文 Reconciling Modern Machine Learning Practice and the Bias-Variance Trade-off（2019, PNAS），正式给这个现象命名为 \u0026ldquo;Double Descent\u0026rdquo;（双重下降）。\n然后是 OpenAI 的 Preetum Nakkiran、Ilya Sutskever 等人的论文 Deep Double Descent: Where Bigger Models and More Data Can Hurt（ICLR 2020），大规模验证了这个现象。\n他们做了什么？和之前的实验一样，训练不同大小的神经网络。但关键区别是：他们没有在过拟合点停下来，而是继续把模型做大——大得多。\n结果出人意料：\n在模型大到足以完美背下所有训练数据之后，测试误差竟然又开始下降了！而且降得比之前的最优点还低，似乎没有尽头。\n这就是 Double Descent —— 曲线下降了两次。\n这不是小打小闹 Nakkiran 等人在 ResNet-18、5层CNN、Transformer 多个架构上，在 CIFAR-10/100、机器翻译 多个任务上都观察到了这个现象。而且他们发现 Double Descent 沿着三个独立的维度发生：\n维度 描述 模型大小 固定数据量和训练时间，增大模型 → 误差先降后升再降 训练时间 固定模型大小，训练更久 → 误差先降后升再降 数据量 固定模型，增加数据 → 在某些情况下，更多数据反而更差 最后一点尤其反直觉：增加训练数据有时候会让模型变差。 这直接违反了\u0026quot;数据越多越好\u0026quot;的常识。原因是更多数据会把模型推入\u0026quot;插值峰值\u0026quot;附近——那个模型容量恰好等于数据量、压力最大的临界区域。\n但他们是\u0026quot;不信邪\u0026quot;还是有理论支撑？ 这是你问的好问题。答案是：两者都有，但层次不同。\n理论上有先兆，但被忽视了。 早在 1990 年代，统计物理学家（Krogh \u0026amp; Hertz 1992, Opper \u0026amp; Kinzel 1995）用统计力学方法分析线性模型时，就预测了在\u0026quot;模型参数数量 ≈ 数据量\u0026quot;这个临界点会出现误差尖峰。但这些结果局限在简单的线性模型中，没有人把它和深度学习联系起来。\n2017-2018 年，更直接的先兆出现了：\nAdvani \u0026amp; Saxe (2017) 用随机矩阵理论证明，过参数化网络存在一个\u0026quot;冻结子空间\u0026quot;，防止过拟合——这是理论上第一次解释为什么\u0026quot;做大不会变差\u0026quot; Spigler et al. (2018) 用物理学中的堵塞转变（jamming transition） 类比，描述了欠参数化→过参数化之间的相变 但 2019 年 Belkin 等人的真正贡献是概念性的： 他们刻意在不加任何正则化的条件下，跨越完整的模型复杂度谱（包括那个关键的插值点），识别出了这个普遍模式，并赋予它一个响亮的名字。\n为什么之前没有人注意到？因为实际训练中几乎总是用正则化（dropout, weight decay, early stopping, data augmentation），而正则化压平了那个峰值，掩盖了完整的双重下降曲线。Belkin 等人相当于掀开了帘子。\n所以，不完全是\u0026quot;赌一下\u0026quot;，但也不是理论自信地预测。 更准确地说，是有人足够大胆地去探索理论留下的灰色地带，而那里恰好藏着金矿。\n第三幕：解释 —— 大模型里藏着一个精巧的小模型 96% 的权重没用 Double Descent 表明大模型确实更好。但为什么？这不是明摆着违反奥卡姆剃刀吗？\n几乎同一时期，MIT 的 Jonathan Frankle 和 Michael Carbin 发表了另一篇改变游戏规则的论文：The Lottery Ticket Hypothesis: Finding Sparse, Trainable Neural Networks（ICLR 2019，最佳论文奖）。\n他们的发现非常惊人：一个大型神经网络中，高达 96% 的权重可以被移除，剩下的 4% 子网络性能完全不变。\n具体实验结果：\n架构 数据集 可剪掉的权重比例 Lenet-300-100 MNIST ~79% Conv-2/4/6 CIFAR-10 74–92% VGG-19 CIFAR-10 73–98.5% ResNet-18 CIFAR-10 73–98.5% 他们用的剪枝方法叫迭代幅度剪枝（Iterative Magnitude Pruning, IMP）：\n随机初始化一个大网络，记录初始权重 θ₀ 完整训练这个网络 删掉绝对值最小的 10% 权重（它们贡献最少） 把剩余权重重置回初始值 θ₀ 重复步骤 2-4 约 30 轮 最终剩下的小网络（原始的 4%），从它的原始随机初始化出发重新训练，就能达到和完整大网络一样的性能！\n彩票假说：为什么大网络能找到好解 这意味着：大网络里真正干活的，是一个非常小的子网络。 其余都是\u0026quot;废料\u0026quot;。这就是为什么它能泛化——真正的模型很简洁。\n但问题来了：既然那个小网络就够了，为什么不一开始就训练它？\n答案藏在初始化里。\n要理解这一点，需要知道神经网络的训练方式——梯度下降（Gradient Descent）。它的核心思想是：对每个训练样本，微调所有权重，让输出更接近正确答案。\n我们通常把这个过程想象成一个球在误差曲面上滚动：\n球 = 当前的权重配置 曲面的高度 = 该权重配置的训练误差 球的起点 = 随机初始化 目标 = 滚到最低点（最优权重） 问题是：球可能卡在局部最优——当前位置四周都是上坡，但远处有更低的谷底。梯度下降永远找不到那个更好的解。\n关键差异：\n大网络： 误差曲面有很多路径通向好的解。无论从哪里出发，球都很容易滚到一个不错的谷底 小网络： 好解对应的谷底很窄。绝大多数随机起点都会让球卡在糟糕的局部最优 现在，想象大网络内部有无数个小子网络，每个子网络有不同的随机初始化。大多数子网络的初始化都很糟糕，没法学好。但只要有一个子网络恰好有幸运的初始化，它就能独自解决整个训练任务。\n这就是彩票假说的核心比喻：\n每个子网络就是一张彩票。单张彩票中奖的概率微乎其微。但当你有 几十亿张彩票 时，中奖就是必然事件。\n而且：\n网络越大 → 子网络数量指数级增长 → 更多彩票 更多彩票 → 连更小的子网络也能中奖 更小的子网络 = 更简洁的模型 = 更好的泛化 反直觉的结论 网络越大 → 中奖的子网络越小 → 学到的模型越简洁 → 泛化越好。\n统计学习理论没有错！最简洁的模型仍然是最好的泛化器。 大网络不是违反了奥卡姆剃刀，而是帮助找到了更利的剃刀。\n这也解释了为什么大网络训练更快：一个工作假说是，拥有更好初始化的子网络会更快地拟合数据。它在其他子网络还没来得及学到任何东西之前，就率先解决了任务。\n但为什么没有人只留下那 4%？ 这是你提的一个非常好的问题。答案是：没有人这么做，因为实操中行不通。\n原因有几个：\n1. 找彩票的代价太大\nIMP 需要反复训练完整的大网络——训练、剪枝、重置、再训练——重复 30 轮。对于训练一次就花数千万美元的 LLM，这意味着要花 30 倍 的训练成本才能找到\u0026quot;中奖彩票\u0026quot;。这完全不划算。\n2. 非结构化稀疏在硬件上跑不快\nIMP 产生的是非结构化稀疏——权重矩阵里随机散落着零。虽然 96% 的权重是零，但现代 GPU 是为密集矩阵乘法优化的。一个 96% 稀疏但散落着零的矩阵，在 GPU 上并不会比密集矩阵快 25 倍——可能只快 2 倍，甚至不快。\n3. 对大模型可能不成立\nFrankle 自己的后续研究 (Frankle et al., 2019) 发现，在更大的网络（如 ResNet-50 + ImageNet）上，回退到初始权重 θ₀ 的做法会失败。他们必须回退到训练早期的权重（\u0026ldquo;late rewinding\u0026rdquo;），而不是最初的随机值。这削弱了原始假说的优雅性。\n4. 论文中的 4% 只是上界\n视频作者也指出了这一点：IMP 使用的\u0026quot;每轮删最小权重\u0026quot;策略并不保证能找到最小的子网络。真正起作用的子网络可能比 4% 还小得多。但我们还没有更好的方法来找到它。\n那现代 LLM 实际上怎么做？ 既然不能直接\u0026quot;只留 4%\u0026quot;，行业走了几条实用路线：\n方法 核心思路 代表 量化 (Quantization) 降低每个权重的数值精度（FP16→INT4） GPTQ, AWQ, GGUF 知识蒸馏 (Distillation) 大模型当老师，训练小模型模仿它 DistilBERT, TinyLlama, Llama 3.2 1B/3B 结构化剪枝 (Structured Pruning) 删整行整列（对硬件友好） SliceGPT, Sheared LLaMA 混合专家 (MoE) 每次只激活部分参数 Mixtral, DeepSeek-V3, GPT-4 (传闻) 其中 MoE（混合专家） 是最接近彩票假说精神的架构设计：\nMixtral 8x7B 有 470 亿总参数，但每个 token 只激活其中 2 个专家（约 130 亿参数）。DeepSeek-V3 更极端，每个 token 激活的参数比例更低。\nMoE 实现了彩票假说的承诺——每次推理只用一小部分参数——但通过架构设计，而不是事后剪枝。\n你 VM 上的 Ollama 模型（DeepSeek-R1:1.5b, Qwen3:0.6b）使用的是量化技术——用更少的比特存储每个权重。这是目前最广泛部署的 LLM 压缩方案。\n第四幕：远景 —— Scaling Laws 与压缩即智能 Scaling Laws：预测的力量 前三幕告诉我们大模型为什么能泛化。但它们能泛化到什么程度？泛化的速度有多快？\n2020 年，OpenAI 的 Jared Kaplan、Dario Amodei 等人发表了一篇里程碑式的论文：Scaling Laws for Neural Language Models，发现了一个极其惊人的规律。\n语言模型的损失（loss）与模型大小、数据量、计算量之间存在光滑的幂律关系，跨越七个数量级！\n关系 公式 含义 损失 vs 参数量 (N) L(N) ∝ N^{-0.076} 参数翻倍，损失降 ~5% 损失 vs 数据量 (D) L(D) ∝ D^{-0.095} 数据翻倍，损失降 ~6.5% 损失 vs 计算量 (C) L(C) ∝ C^{-0.050} 算力翻倍，损失降 ~3.4% 这些关系在对数坐标上画出来是完美的直线，像物理学定律一样优美。而且它们与具体的架构细节（层数、头数、维度宽窄）几乎无关——只有总参数量 N 才重要。\n小指数，大后果 注意到指数有多小了吗？0.076、0.095、0.050——这意味着收益递减极其严重：\n投入增加 损失降低（通过增大模型） 10 倍 ~16% 100 倍 ~29% 1000 倍 ~41% 10000 倍 ~52% 砸 10000 倍的资源，只换来一半的损失降低。这就是为什么 Scaling 如此昂贵——但有趣的是，那些微小的损失降低往往对应着质的能力飞跃（涌现能力）。\nChinchilla 修正：数据和模型同样重要 2022 年，DeepMind 的 Hoffmann 等人发表了 Training Compute-Optimal Large Language Models（即\u0026quot;Chinchilla 论文\u0026quot;），对 Kaplan 的 Scaling Laws 做了关键修正：\nKaplan (2020) Chinchilla (2022) 算力增加 10 倍时\u0026hellip; 模型扩 5.5 倍，数据扩 1.8 倍 模型和数据各扩 ~3.2 倍 核心观点 模型越大越好 模型和数据要同步扩大 最优比例 没有明确说 约 20 个 token/参数 为了验证，DeepMind 训练了 Chinchilla（700 亿参数）—— 用和 Gopher（2800 亿参数）相同的算力，但 4 倍的训练数据。结果：700 亿的 Chinchilla 在几乎所有基准上打败了 2800 亿的 Gopher，也打败了 1750 亿的 GPT-3。\n更少的参数 + 更多的数据 = 更好的性能 + 更低的部署成本。\nScaling Laws 和前两幕的联系 Scaling Laws 描述的正是 Double Descent 曲线右侧 那个持续下降的区域。现代 LLM 运行在\u0026quot;过参数化\u0026quot;区域的深处——远远超过了插值峰值——这就是为什么 Scaling Laws 看起来如此光滑。\n而彩票假说提供了机制性解释：更大的网络之所以 scale，是因为它们包含指数级增长的子网络，使得优化过程能找到越来越简洁的内部模型。\n奥卡姆剃刀：科学的基石 这一切最终回到了一个 700 年前的哲学原则——奥卡姆剃刀（Occam\u0026rsquo;s Razor）：\n\u0026ldquo;如无必要，勿增实体。\u0026rdquo; —— 奥卡姆的威廉，约 1320 年\n在现代信息论中，这被精确形式化为多个等价原则：\n原则 提出者 年份 核心思想 Solomonoff 归纳 Ray Solomonoff 1964 最佳预测 = 对每种假说按其最短程序长度加权 Kolmogorov 复杂度 Andrey Kolmogorov 1965 一个事物的真正复杂度 = 能生成它的最短程序 最小描述长度 (MDL) Jorma Rissanen 1978 最佳模型 = 使\u0026quot;模型描述长度 + 数据描述长度\u0026quot;之和最小 Hutter Prize Marcus Hutter 2006 50 万欧元奖金——谁能最好地压缩维基百科 它们都在说同一件事：\n理解 = 找到最简洁的描述 = 压缩。\n语言模型就是压缩器 这个联系不是隐喻，而是数学上严格等价的。\n根据 Shannon 信源编码定理：一个能以交叉熵损失 L 预测下一个 token 的模型，可以被直接转化为一个压缩算法，用 L/ln(2) 比特编码每个 token。损失越低 = 压缩越好。\nDeepMind 2024 年的论文 Language Modeling Is Compression（Delétang et al.）实证验证了这一点：\n数据类型 Chinchilla 70B 压缩率 专用压缩器压缩率 ImageNet 图片 43.4% PNG: 58.5% LibriSpeech 音频 16.4% FLAC: 30.3% 一个只在文本上训练的语言模型，连图片和音频都能比专用算法压缩得更好。 这不是魔法——它说明语言模型学到的不是\u0026quot;语言的表面模式\u0026quot;，而是某种更通用的数据结构理解。\n终极问题：能生成互联网所有文本的最短程序是什么？ 现在我们可以问一个极端的问题：\n如果一个完美的学习算法被训练来预测互联网上所有文本的下一个词，它最终会学到什么？\n根据 Solomonoff 归纳的框架，它会趋向于找到能生成这些文本的最短程序。那么，这个最短程序是什么？\n视频作者提出了一个大胆的推理链：\n互联网文本 ← 人类写的 人类 ← 人脑产生的 人脑 ← 物理规律驱动的 物理规律 ← 量子力学 + 初始条件 所以：能生成互联网文本的最短程序 ≈ 几千行量子力学代码 + 人脑初始配置 = 一个人脑模拟器 这个\u0026quot;程序\u0026quot;描述起来非常短（物理学标准模型相当简洁），但运行起来需要天文数字的算力。\n如果这个推理成立，那么一个足够强大的下一个词预测器，在理论极限上，就等价于一个人脑模拟器——它必然拥有世界模型、常识理解、推理能力。\n当然，这是一个极限论证（limit argument），不是对当前 LLM 的描述。当前的 LLM 远远达不到完美压缩。但它指明了一个方向：Scaling 不是在往沙漠里灌水，而是在沿着一条通往理解的路前进——只是我们不知道终点还有多远。\nOthello-GPT：实验证据 以上推理听起来很哲学，但有没有实验证据？有的。\n2023 年，Kenneth Li 等人发表了 Emergent World Representations（ICLR 2023 Oral，前 5% 论文），做了一个精彩的实验：\n他们训练了一个 GPT 模型，只给它看 Othello（黑白棋）的走法序列——类似于 \u0026ldquo;C4 D3 C3 E6\u0026hellip;\u0026quot;——从不给它看棋盘、不告诉它规则、不提供任何空间信息。\n然后用探测器（probe）检查模型内部。发现了什么？\n模型自发地在内部形成了完整的 8×8 棋盘状态表征！ 它能追踪每个格子是黑棋、白棋还是空的。\n更关键的是，研究者做了干预实验：人为修改模型内部的棋盘表征，模型的走法预测会随之改变。这证明这个表征不只是统计噪声——模型真的在用它来做决策。\n一个从未\u0026quot;看到\u0026quot;过棋盘的模型，为了预测下一步棋，被迫在内部构建了一个棋盘的世界模型。\n这正是\u0026quot;压缩即理解\u0026quot;论点的最佳实证：预测的压力迫使模型发展出对底层世界的结构性理解。\n同年，Gurnee \u0026amp; Tegmark (arXiv:2310.02207) 在 Llama-2 模型中发现了类似的现象：模型内部存在线性的空间和时间表征——专门编码地理坐标的\u0026quot;空间神经元\u0026quot;和编码时间顺序的\u0026quot;时间神经元\u0026rdquo;。\nYann LeCun 的反对意见 任何公允的讨论都不能回避反方观点。图灵奖得主、Meta 首席 AI 科学家 Yann LeCun 是\u0026quot;LLM 通往 AGI\u0026quot;路线最著名的批评者。他的核心论点：\n人类不会把常识写出来。 你不会在互联网上写\u0026quot;苹果掉下来不会飞到天上去\u0026quot;，因为这太显而易见了。既然训练数据里没有这些常识，LLM 怎么学？\n自回归生成有根本缺陷。 逐词生成会导致误差累积，无法进行真正的推理和规划。\nLLM 会幻觉。 没有真正的世界模型，所以会自信地胡说。\n反驳 好的学习算法学的不是数据表面，而是生成数据的机制。 即使常识没有被显式写出来，它仍然是生成那些文本的必要条件。一个足够好的压缩器必须推断出这些隐含的规则，否则无法达到最优压缩。Othello-GPT 就是证明——棋盘规则从未出现在训练数据中，但模型推断出了它们。\nChain-of-Thought、推理模型（o1, DeepSeek-R1） 已经部分解决了自回归的局限性——通过在推理时分配更多计算来进行搜索和验证。\n幻觉问题是程度问题，不是本质问题。 人类也会产生\u0026quot;幻觉\u0026quot;（错误记忆、认知偏差）。随着模型能力提升，幻觉率在持续下降。\n视频作者的判断 视频的最后，作者给出了一个非常有分寸的个人观点：\n问题 他的立场 纯靠 Scaling 能到 AGI 吗？ 不够。 改进速率太慢，收益递减太严重 语言建模这个目标本身能到 AGI 吗？ 可以。 但需要更好的学习算法/架构 方向 更好的架构 + 外部工具 + 预测下一个词 换句话说：下一个词预测是正确的目标函数，但当前的 Transformer + 梯度下降可能不是最优的求解器。 未来可能出现全新的架构或训练方法，在更少的算力下达到同样的压缩效果。\n有趣的是，这个判断正在被现实验证。2024-2025 年最重要的进展不是更大的模型，而是推理时计算（test-time compute）——OpenAI o1/o3、DeepSeek-R1 这类模型通过在推理阶段\u0026quot;多想一会儿\u0026quot;来提升能力。这本质上是在 Scaling 的三个维度（参数、数据、算力）之外，开辟了第四个维度：推理时间。\n全景拼图：五个概念如何连成一条线 让我们把本文所有核心概念串联起来：\n奥卡姆剃刀 (1320) \u0026#34;最简解释最好\u0026#34; │ ▼ Solomonoff 归纳 (1964) \u0026#34;最短程序 = 最佳预测\u0026#34; │ ▼ ┌──────────────┼──────────────┐ │ │ │ ▼ ▼ ▼ 彩票假说 Scaling Laws 压缩=智能 (2019) (2020) (Hutter) \u0026#34;大网络找到 \u0026#34;损失随规模 \u0026#34;预测=压缩 更小的解\u0026#34; 幂律下降\u0026#34; =理解\u0026#34; │ │ │ └──────────────┼──────────────┘ │ ▼ Double Descent (2019) \u0026#34;过参数化后泛化更好\u0026#34; │ ▼ 世界模型涌现 (2023) Othello-GPT / 空间时间神经元 │ ▼ ┌─────┴─────┐ │ │ ▼ ▼ 当前 LLM 未来方向 (有限压缩) (更好的压缩器) 一句话总结：\n大模型的力量不在于它有多少参数，而在于海量参数帮助它搜索到一个极其精巧的小模型——而这个小模型，就是对世界最好的压缩。压缩，就是理解。\n论文索引 本文涉及的主要论文，按时间排列：\n# 论文 作者 年份 贡献 1 The Lottery Ticket Hypothesis Frankle \u0026amp; Carbin (MIT) 2019 大网络中藏着可独立训练的小子网络 2 Reconciling Modern ML and Bias-Variance Belkin et al. 2019 命名\u0026quot;Double Descent\u0026quot;现象 3 Deep Double Descent Nakkiran, Sutskever et al. 2019 三个维度上的 Double Descent 4 Scaling Laws for Neural LMs Kaplan, Amodei et al. (OpenAI) 2020 损失与规模的幂律关系 5 Chinchilla Hoffmann et al. (DeepMind) 2022 数据和模型应同步扩大 6 Othello-GPT Kenneth Li et al. 2023 序列预测自发产生世界模型 7 Space and Time in LLMs Gurnee \u0026amp; Tegmark 2023 LLM 内部的空间/时间表征 8 Language Modeling Is Compression Delétang et al. (DeepMind) 2024 LLM 是通用压缩器 9 SparseGPT Frantar \u0026amp; Alistarh 2023 一次性剪枝大模型 10 Wanda Sun et al. 2024 基于权重×激活的 LLM 剪枝 写在最后 你可能注意到了，这篇文章的主题——压缩即智能——正是本博客开篇语的核心命题。\n当我第一次写下\u0026quot;更高级的策略不是压缩数据本身，而是压缩生成数据的引导程序\u0026quot;时，说的正是 Solomonoff 归纳的核心思想。而今天这篇文章，通过 Double Descent、彩票假说、Scaling Laws 三条实证线索，为那个哲学命题提供了坚实的科学基础。\n如果你和我一样，越来越觉得 LLM 不只是\u0026quot;大号的自动补全\u0026quot;，那么恭喜——你开始触碰到这个领域最深层的脉络了。\n模型不需要被告知世界是什么样的。它只需要被要求预测下一个词——然后，为了做好这件事，它会自己去发现世界。\n感谢 Algorithmic Simplicity 的精彩视频激发了这篇文章的写作。\n","permalink":"https://jason-azure.github.io/ai-blog/posts/why-llm-understand-world/","summary":"300年的统计学理论说模型越大越差，但现实恰恰相反。Double Descent、彩票假说、Scaling Laws、奥卡姆剃刀——四条线索拼出一幅完整的图景：大模型的真正力量不是记忆力，而是压缩能力。而压缩，就是理解。","title":"为什么把模型做大就能变聪明？—— 从过拟合悖论到压缩即智能"},{"content":"一个反直觉的事实 训练 ChatGPT 用了 上万块 NVIDIA A100 GPU。\nGPU——Graphics Processing Unit——图形处理单元。一块为了让游戏画面更流畅而设计的芯片，怎么就成了 AI 革命的引擎？\n语言理解和游戏画面，看起来毫无关系。但如果你拆开它们的底层，你会发现——它们在做完全一样的数学运算。\n这篇文章要回答一个问题：\nGPU 不知道自己在画画还是在思考，它只知道自己在做矩阵乘法。\n第一章：GPU 的老本行——把三角形变成画面 3D 画面是怎么生成的 你在游戏里看到的一切——角色、建筑、爆炸特效——都是由无数个三角形拼出来的。\n🎮 3D 渲染流水线 建模 → 顶点变换 → 光栅化 → 着色 → 屏幕 顶点坐标 → 矩阵变换 → 像素填充 → 颜色计算 → 显示 关键数字：\n场景 三角形数量 顶点数量 一个立方体 12 个 8 个 一个游戏角色 ~100,000 个 ~50,000 个 一帧完整画面 数百万个 数百万个 每秒 60 帧 → 每秒处理上亿个顶点 每个顶点都要经过坐标变换——旋转、缩放、透视投影——才能从 3D 空间映射到你的 2D 屏幕上。\n而每一次坐标变换，就是一次矩阵乘法。\n旋转一个点 = 一次矩阵乘法 这是 3D 图形学里最基础的操作：把一个点绕原点旋转 θ 度。\n看上面的动画：蓝色点 (1, 0) 经过旋转矩阵变换后，变成了橙色点。右侧实时显示矩阵计算过程——每一帧的新位置，都是矩阵 × 旧坐标算出来的。\n(x, y) (x', y') θ 2D 旋转公式： ┌ x' ┐ \u0026nbsp; ┌ cosθ \u0026nbsp;-sinθ ┐ \u0026nbsp; ┌ x ┐\n│ \u0026nbsp;\u0026nbsp;│ = │ \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;│ × │ \u0026nbsp;\u0026nbsp;│\n└ y' ┘ \u0026nbsp; └ sinθ \u0026nbsp;\u0026nbsp;cosθ ┘ \u0026nbsp; └ y ┘ 在真正的 3D 游戏中也一样。下面的动画展示一个线框立方体（8 个顶点、12 条边）绕 Y 轴旋转，右侧实时显示每个顶点坐标的变化：\n游戏里物体的旋转，每一帧都是 8 次矩阵乘法。 一个游戏角色有 5 万个顶点，那就是 5 万次。\n每个顶点要经历一连串矩阵乘法：\n最终位置 = 投影矩阵 × 视图矩阵 × 模型矩阵 × 顶点坐标 4×4 4×4 4×4 4×1 (透视) (摄像机) (物体位置) (原始坐标) 那一帧完整的游戏画面有多少三角形呢？\n上面的动画展示了一个球面从粗糙到光滑的过程——三角形越多，形状越光滑，但每个三角形的顶点都要做矩阵乘法。现代游戏一帧有数百万个三角形。\n关键洞察：每个顶点的变换公式完全一样，只是输入坐标不同。\n一百万个顶点，同一道数学题，只是数据不同——这就是 GPU 存在的理由。\nCPU vs GPU：教授 vs 全班同学 先看一个直观的对比动画——256 个计算任务，CPU 逐个处理 vs GPU 整行同时处理：\nGPU 快不是因为单个核心更快，而是因为同时做。 一万个简单核心同时工作，碾压一个超强核心。\n🧑‍🏫 CPU 方式（串行） ⬜ 顶点 1 → [变换] → ✅ ⬜ 顶点 2 → [变换] → ✅ ⬜ 顶点 3 → [变换中...] ⏳ ⬜ 顶点 4 → [等待...] ⬜ 顶点 5 → [等待...] ⬜ ... × 100万 一个天才，一次做一道题\n完成 100万个顶点需要 N 步 🏭 GPU 方式（并行） ⬜ 顶点 1 → [核心 0001] → ✅ ⬜ 顶点 2 → [核心 0002] → ✅ ⬜ 顶点 3 → [核心 0003] → ✅ ⬜ 顶点 4 → [核心 0004] → ✅ ⬜ 顶点 5 → [核心 0005] → ✅ ⬜ ... × 16384 核心同时工作 一万个小学生，同时做同一道题\n完成 100万个顶点只需 ~1 步 比喻：CPU 是一个数学天才，什么难题都能解，但一次只做一道。GPU 是一万个小学生，只会做乘法和加法，但同时做。当你的任务是\u0026quot;一百万道加法题\u0026quot;时，一万个小学生完胜。\n第二章：GPU 的架构——为并行而生 芯片级对比 CPU 和 GPU 在设计哲学上是完全不同的物种：\nCPU — 少数精英 核心 1\n超强单核 核心 2\n超强单核 核心 3\n超强单核 核心 4\n超强单核 大缓存 + 复杂控制逻辑\n分支预测、乱序执行、虚拟化... 4~24 核，每核都很强大\n擅长：复杂逻辑、分支判断 GPU — 大规模军团 超高带宽显存 (HBM/GDDR6)\n简单控制，海量算力 数千~万核，每核都很简单\n擅长：相同运算 × 海量数据 关键数字对比 指标 CPU (i9-14900K) GPU (RTX 4090) 倍数 核心数 24 16,384 ~680× 时钟频率 6.0 GHz 2.5 GHz 0.4× 内存带宽 90 GB/s 1,008 GB/s 11× FP32 算力 ~1 TFLOPS 83 TFLOPS 83× 功耗 253W 450W 1.8× 注意：GPU 的时钟频率反而更低。它不靠单核速度取胜，而是靠数量碾压。\n每瓦性能在矩阵运算上，GPU 完胜。\nCUDA：让 GPU 不只画画 2006 年，NVIDIA 做了一个改变历史的决定：发布 CUDA（Compute Unified Device Architecture）。\n在此之前，GPU 只能通过图形 API（OpenGL、DirectX）来编程——你只能告诉它\u0026quot;画一个三角形\u0026quot;，不能让它做任意数学计算。\nCUDA 打破了这个限制。它让程序员可以用类 C 语言直接在 GPU 上运行任意代码。GPU 从\u0026quot;只能画图的专用芯片\u0026quot;变成了\u0026quot;通用并行计算引擎\u0026quot;。\n2006 年的 CUDA，是 AI 革命的基础设施转折点。 没有它，就没有后来 AlexNet 的突破，就没有深度学习的爆发，就没有 ChatGPT。\n第三章：LLM 里全是矩阵乘法 GPU 这么擅长矩阵运算，那 LLM 里有多少矩阵运算呢？\n答案是：几乎全是。\n第一步：Embedding——把词变成向量 在进入 Transformer 之前，每个词（token）首先要通过 Embedding 查表，变成向量空间中的一个点：\n上面的动画展示了经典的词向量类比关系：King - Man + Woman ≈ Queen。这不是巧合，而是因为 Embedding 矩阵在训练中学到了语义关系。Embedding 本质上就是一次矩阵查表——用 token ID 去索引一个巨大的矩阵。\nTransformer 一层的计算流程 一个 Transformer Block（无论 GPT、Claude 还是 DeepSeek 都在用）的内部，是这样的：\nTransformer 一层 = 8 次矩阵乘法 输入 X [seq_len × d_model] \u0026nbsp;\u0026nbsp;│ \u0026nbsp;\u0026nbsp;├→ X × WQ = Q \u0026nbsp;矩阵乘法 ① \u0026nbsp;\u0026nbsp;├→ X × WK = K \u0026nbsp;矩阵乘法 ② \u0026nbsp;\u0026nbsp;├→ X × WV = V \u0026nbsp;矩阵乘法 ③ \u0026nbsp;\u0026nbsp;│ \u0026nbsp;\u0026nbsp;├→ Q × KT = Scores \u0026nbsp;矩阵乘法 ④ \u0026nbsp;\u0026nbsp;├→ softmax(Scores) × V = Attn \u0026nbsp;矩阵乘法 ⑤ \u0026nbsp;\u0026nbsp;│ \u0026nbsp;\u0026nbsp;├→ Attn × WO = Output \u0026nbsp;矩阵乘法 ⑥ \u0026nbsp;\u0026nbsp;│ \u0026nbsp;\u0026nbsp;├→ X × W1 → GELU \u0026nbsp;矩阵乘法 ⑦ \u0026nbsp;\u0026nbsp;└→ \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;× W2 = FFN out \u0026nbsp;矩阵乘法 ⑧ \u0026nbsp;\u0026nbsp;│ 输出 [seq_len × d_model] 一层 Transformer = 8 次大矩阵乘法。\n其中矩阵乘法 ⑦⑧ 就是 MLP 层——Transformer 的\u0026quot;思考肌肉\u0026quot;。下面的动画展示了 MLP 的核心过程：\nMLP 就是：升维 → 筛选 → 降维，核心是两次矩阵乘法。 升维让模型有更大的空间去\u0026quot;思考\u0026quot;，GELU 激活函数筛掉不重要的特征，降维把结果压缩回原来的维度。\n那 GPT-3 有 96 层，所以：\n模型 层数 每次推理矩阵乘法次数 GPT-2 small 12 96 GPT-2 large 36 288 GPT-3 96 768 GPT-4 (估算) ~120 ~960 生成每一个 token，都要把这几百次矩阵乘法从头跑一遍。\n一次矩阵乘法有多少计算？ 以 GPT-2 的一个全连接层为例：\n输入 × 权重 = 输出 [512×768] × [768×768] = [512×768] 这一次乘法包含： 512 × 768 × 768 = 301,989,888 次乘法 ≈ 3 亿次浮点运算 而这只是一层里 8 个矩阵乘法中的一个！ 实际数字：GPT-3 生成一个 token 的计算量 GPT-3 (175B 参数) 生成 1 个 token ~350 GFLOP 每个 token 的计算量\n(3500 亿次浮点运算) ~1.1 ms A100 GPU 耗时\n(312 TFLOPS 算力) ~350 秒 CPU 耗时\n(~1 TFLOPS 算力) 生成一段 500 token 的回复：\nGPU ≈ 0.6 秒 \u0026nbsp;\u0026nbsp;|\u0026nbsp;\u0026nbsp; CPU ≈ 48 小时 如果用 CPU 来跑 GPT-3，你问它一个问题，要等两天才能收到回复。\n这就是为什么 LLM 必须用 GPU。\n第四章：游戏画面 vs LLM——同一个本质 现在我们可以把两件事放在一起看了：\n🎮 3D 游戏 📐 百万个顶点\n🔢 每个做 4×4 矩阵乘法\n🔄 所有顶点同一个公式\n🕐 每秒 60 帧\n🖼️ 结果 = 一帧画面 ✅ 大规模并行\n✅ 相同操作重复\n✅ 计算密集\n✅ 矩阵运算为主 = 🤖 LLM 推理 🧮 百万个参数\n🔢 每层做 d×d 矩阵乘法\n🔄 所有 token 同一个公式\n🕐 每秒数十个 token\n💬 结果 = 下一个词 ✅ 大规模并行\n✅ 相同操作重复\n✅ 计算密集\n✅ 矩阵运算为主 同一种数学 → 同一种硬件 → 不同的奇迹 GPU 不知道它在渲染一个爆炸场景还是在回答\u0026quot;量子力学是什么\u0026quot;。对它来说，这两件事在硅片上的操作是一样的：从显存读取矩阵 → 做大量乘加运算 → 写回结果。\n这就是为什么一块\u0026quot;游戏显卡\u0026quot;能成为 AI 引擎的原因——不是偶然的跨界，而是数学本质的一致性。\n第五章：从 AlexNet 到 H100——GPU 如何成为 AI 的心脏 GPU 成为 AI 核心硬件不是一夜之间发生的，而是一条跨越 20 年的路：\n2006 — CUDA 发布 NVIDIA 让 GPU 可以做通用计算。当时几乎没人关注。 2012 — AlexNet 震惊世界 用 2 块 GTX 580 GPU 训练的神经网络，碾压所有传统方法赢得 ImageNet 竞赛。\n深度学习 + GPU 的组合第一次证明了自己。 2017 — Transformer 诞生 Google 发表 \"Attention Is All You Need\"。Transformer 的核心操作——\n矩阵乘法——完美匹配 GPU 架构。 2018 — V100 + Tensor Core NVIDIA 推出专为矩阵乘法设计的硬件单元 Tensor Core。GPU 从\"也能做 AI\"变成\"专门做 AI\"。 2020 — GPT-3 发布 OpenAI 用上万块 V100 训练 1750 亿参数模型。GPU 集群成为 AI 实验室的标配。 2022 — ChatGPT 引爆 AI 革命 NVIDIA 股价起飞。A100/H100 一卡难求，黑市价翻倍。 2023 — NVIDIA 市值破万亿 一家\"显卡公司\"成为全球最值钱的公司之一。Jensen Huang 从\"卖游戏显卡的\"变成了\"AI 教父\"。 2024-2025 — Blackwell 架构 B200/GB200 专为大模型设计：FP4 精度、NVLink 互联、单卡 20 PFLOPS AI 算力。 第六章：动手验证——在 VM 上跑矩阵乘法 以下 Demo 在本文作者的 AI Lab VM（8 核 CPU, 无 GPU）上实测。\n实验 1：纯 Python vs PyTorch 矩阵乘法 纯 Python 64×64 矩阵乘法: 25.5 ms → 如果算 4096×4096: 预估 ≈ 112 分钟! PyTorch CPU (BLAS 优化): 矩阵大小 耗时 加速比 64×64 0.01ms 2,378× 256×256 0.11ms 14,306× 1024×1024 4.75ms 21,995× 4096×4096 287.15ms 23,305× 🚀 同样是 CPU，用了优化的线性代数库（BLAS）后，快了 2 万倍。 GPU 还会在此基础上再快几十到上百倍。\n实验 2：模拟 Transformer 一层的运算 模拟 GPT-2 small 配置（d_model=768, seq_len=512）：\n操作 矩阵形状 耗时 Q = X × W_Q [512×768]×[768×768] 1.40ms K = X × W_K [512×768]×[768×768] 1.42ms V = X × W_V [512×768]×[768×768] 1.31ms Scores = Q × Kᵀ [512×768]×[768×512] 7.63ms Attn = Scores × V [512×512]×[512×768] 0.80ms Out = Attn × W_O [512×768]×[768×768] 1.37ms FFN_up = X × W₁ [512×768]×[768×3072] 4.66ms FFN_down = h × W₂ [512×3072]×[3072×768] 4.93ms ───────────────────────────────────────────────────────────── 合计 (一层) 23.52ms GPT-2 有 12 层 → 总计 ≈ 282ms GPT-3 有 96 层, d=12288 → 计算量是这个的 ~24,000 倍 8 个矩阵乘法，占了 Transformer 一层几乎全部的计算量。其他操作（LayerNorm、softmax、GELU）相比之下微不足道。\n实验 3：矩阵乘法的可并行度 1024×1024 矩阵: 矩阵乘法 (A @ B): 4.35ms (493 GFLOPS) 逐元素乘 (A * B): 2.30ms (0.46 GFLOPS) 矩阵乘法的运算量是逐元素乘的 1024× 但耗时只多了 1.9× 运算量多了 1024 倍，耗时只多了 2 倍。 这就是矩阵乘法的可并行优化能力——每一个乘加操作都是独立的，可以同时做。这正是 GPU 的天赐之粮。\nDemo 脚本: ~/demo_gpu_matmul.py，可在 VM 上直接运行复现以上数据。\n第七章：不只是快——GPU 生态为何不可替代 GPU 成为 AI 的标准计算平台，不仅因为硬件快，更因为十几年积累的软件生态：\n层次 代表 作用 硬件 Tensor Core 专门做矩阵乘法的硬件单元，比通用 CUDA 核心再快数倍 数学库 cuBLAS 针对 NVIDIA GPU 深度优化的线性代数库 深度学习库 cuDNN 卷积、Attention 等操作的 GPU 加速实现 推理优化 TensorRT 模型部署时的图优化、量化、内核融合 框架层 PyTorch CUDA 一行 .cuda() 就把计算从 CPU 搬到 GPU 通信 NCCL / NVLink 多卡训练时 GPU 之间的高速互联 这套生态经过 十几年积累，形成了 NVIDIA 的护城河。\n竞争者在追赶 平台 厂商 现状 ROCm AMD 硬件不差，但软件生态远不如 CUDA TPU Google Transformer 推理极快，但只在 Google Cloud 上可用 昇腾 华为 国产替代方案，在国内快速推进 Trainium/Inferentia AWS 亚马逊自研，生态刚起步 Apple Silicon Apple 统一内存很有潜力，训练生态待完善 目前的现实是：如果你要训练或部署大模型，NVIDIA GPU 仍然是最稳妥的选择。\n一个常被忽视的瓶颈：显存带宽 很多人以为 GPU 快是因为算力大。但在大模型推理中，真正的瓶颈往往不是算力，而是内存带宽。\n推理时的数据流： 显存 → GPU 核心 → 计算 → 写回显存 ↑ 这一步才是瓶颈！ (memory-bound，而非 compute-bound) GPT-3 的 175B 参数 = 350GB (FP16) 每生成一个 token，要把这 350GB 参数全读一遍 A100 显存带宽: 2 TB/s → 理论上 175ms/token H100 显存带宽: 3.35 TB/s → 理论上 104ms/token CPU 内存带宽: 0.09 TB/s → 理论上 3,889ms/token GPU 的显存带宽是 CPU 的 20~40 倍，这是大模型推理速度差异的另一个关键来源。\n总结：一句话回答标题 GPU 本来是为了每秒把百万个三角形顶点做矩阵变换、渲染成游戏画面而设计的。\nLLM 恰好也需要每秒对百万个参数做矩阵乘法、推算出下一个词。\n同一种数学，同一种硬件，不同的奇迹。\n全文逻辑链 3D 游戏需要\n大量顶点变换 → 顶点变换\n= 矩阵乘法 → GPU 为\n并行矩阵乘而生 → LLM 也全是\n矩阵乘法 → 所以 LLM\n用 GPU 参考文献 NVIDIA, CUDA C Programming Guide, docs.nvidia.com/cuda Vaswani et al., \u0026ldquo;Attention Is All You Need\u0026rdquo;, NeurIPS 2017, arXiv:1706.03762 Krizhevsky et al., \u0026ldquo;ImageNet Classification with Deep Convolutional Neural Networks\u0026rdquo; (AlexNet), NeurIPS 2012 Brown et al., \u0026ldquo;Language Models are Few-Shot Learners\u0026rdquo; (GPT-3), NeurIPS 2020, arXiv:2005.14165 Andrej Karpathy, \u0026ldquo;Let\u0026rsquo;s build GPT: from scratch, in code, spelled out\u0026rdquo;, YouTube, 2023 Horace He, \u0026ldquo;Making Deep Learning Go Brrrr From First Principles\u0026rdquo;, 2022, horace.io Tim Dettmers, \u0026ldquo;Which GPU for Deep Learning?\u0026rdquo;, 2023, timdettmers.com NVIDIA, \u0026ldquo;How GPU Computing Works\u0026rdquo;, GTC 2021 本文 Demo 脚本可在 AI Lab VM 上直接运行：python3 ~/demo_gpu_matmul.py\n","permalink":"https://jason-azure.github.io/ai-blog/posts/why-gpu/","summary":"训练 ChatGPT 用的不是什么神秘的 AI 芯片，而是打游戏用的显卡。一块为了让游戏画面更流畅而设计的芯片，为什么成了 AI 革命的引擎？因为游戏画面和语言理解在底层共享了同一个数学本质——矩阵乘法。","title":"为什么 LLM 要用 GPU？从游戏显卡到 AI 引擎"},{"content":" 你一定听说过：GPT 的本质就是矩阵乘法。\n但\u0026quot;矩阵乘法\u0026quot;到底在干什么？为什么乘来乘去就能理解语言？\n别急。今天不写公式，不讲定理——只看动图。\n矩阵乘法在几何上做了什么，用眼睛就能看明白。而 GPT 里的 Attention、MLP 等等，和你眼前看到的 2D 变换，是完全一样的数学——只不过维度从 2 变成了 768。\n维度变了，几何没变。看懂 2D，就看懂了 GPT。\n一、矩阵乘法在干什么？——5 张动图告诉你 先忘掉 GPT，忘掉人工智能。我们就在一张白纸上画箭头。\n一个 2×2 的矩阵乘以一个箭头（向量），就是把这个箭头搬到新位置。具体怎么搬？看矩阵的数值。我们来看 5 种最基本的搬法：\n看图秘诀： 每张图里有两个关键箭头——蓝色 i 和红色 j。它们是\u0026quot;基向量\u0026quot;，相当于坐标系的两根轴。只要你知道这两根轴去了哪里，空间里所有点的命运就确定了。\n1. 旋转——所有点绕原点转圈 蓝色 i 和红色 j 同时转动，它们之间始终保持 90°。网格跟着一起转，整个空间像一张转盘：\n2. 缩放——沿不同方向拉伸或压扁 蓝色 i 变长、红色 j 变短。正方形变成了扁扁的长方形：\n3. 剪切——像推扑克牌一样倾斜 蓝色 i 不动，红色 j 被推歪了。正方形变成了平行四边形：\n4. 翻转——像照镜子 蓝色 i 从右边跑到了左边，整个空间被\u0026quot;翻面\u0026quot;：\n5. 组合——真实世界里矩阵做的事 旋转+缩放+剪切同时发生。这才是 GPT 里矩阵真正在做的事——复杂的组合变换：\n记住这三件事——矩阵乘法就是：\n改变方向（旋转） 改变大小（缩放） 改变形状（剪切、翻转） 就这三件事，没了。后面你会发现，GPT 里的 QKV、Attention、MLP——全是这三件事在更高维度的重演。\n二、从 2D 到 768 维——维度变了，规则没变 前面的动图是 2 维平面。GPT 工作在 768 维空间。听起来吓人？别怕——规则一模一样。\n为了方便演示，我们建一个\u0026quot;迷你 GPT\u0026quot;，全文用同一组数值：\n参数 值 句子 \u0026ldquo;我\u0026rdquo; \u0026ldquo;喜欢\u0026rdquo; \u0026ldquo;绿\u0026rdquo; \u0026ldquo;苹果\u0026rdquo; d_model 4（真实 GPT 是 768） n_heads 2, d_head = 2, d_ff = 16 每个 token 变成一个 4 维向量（embedding）——相当于 4 维空间中的一个点：\nToken Embedding 向量 \u0026ldquo;我\u0026rdquo; [0.8, -0.3, 0.5, 0.1] \u0026ldquo;喜欢\u0026rdquo; [0.2, 0.7, -0.4, 0.6] \u0026ldquo;绿\u0026rdquo; [-0.5, 0.1, 0.9, -0.2] \u0026ldquo;苹果\u0026rdquo; [0.3, 0.4, 0.2, 0.8] 你画不出 4 维空间，但所有 2D 的几何直觉全部适用：\n2D 能做的事 768 维一样能做 算两个向量的夹角 公式一模一样，768 个数相乘再相加 矩阵乘法 = 旋转+缩放 768×768 矩阵，做的还是同样的事 方向相同 = 相似 语义相似的词，embedding 方向也相近 类比： 你不需要\u0026quot;看见\u0026quot;768 维空间，就像你不需要看见空气来理解风。只要知道风的规则（方向、力度、叠加）在不在，就够了。这些规则在 2D 和 768D 完全一样。\n三、QKV 投影——同一个向量的三种\u0026quot;透视\u0026quot; 在 Attention 里，每个 token 的 embedding 要通过三个不同的矩阵，变出 Q（查询）、K（键）、V（值）三个版本。\n这在干什么？想象你在看一个苹果：\n变换 角度 含义 Q 矩阵变换 正面照 \u0026ldquo;我在找什么？\u0026rdquo; K 矩阵变换 侧面照 \u0026ldquo;我能匹配什么？\u0026rdquo; V 矩阵变换 X光照 \u0026ldquo;我的实际内容\u0026rdquo; 几何上看，就是第一章那种矩阵变换——同一个箭头，被三个不同矩阵旋转到三个不同方向：\n\u0026#34;苹果\u0026#34; embedding = [0.3, 0.4, 0.2, 0.8] Q = W_Q × embedding → 旋转到\u0026#34;查询空间\u0026#34; K = W_K × embedding → 旋转到\u0026#34;匹配空间\u0026#34; V = W_V × embedding → 旋转到\u0026#34;内容空间\u0026#34; 维度: (4,) × (4,2) = (2,) 每个头 d_head=2 本质： W_Q、W_K、W_V 就是三个不同的\u0026quot;旋转+缩放\u0026quot;矩阵。每个矩阵选了不同的\u0026quot;观察角度\u0026rdquo;，让同一个向量展示不同侧面。这和第一章的矩阵变换是同一件事。\n关于\u0026quot;为什么要分成三份\u0026quot;的更深入讨论，见第 18 篇《为什么 Transformer 需要 Q、K、V》\n四、Attention 点积——就是比较两个箭头的方向 QKV 投影完毕后，Attention 的核心操作出奇简单：把 Q 和 K 放在一起，看它们指向的方向有多接近。\n数学上叫\u0026quot;点积\u0026quot;，几何上就是比较两个箭头的夹角：\n两个箭头的关系 夹角 点积 意思 同方向 0° 最大 高度相关，多关注 垂直 90° 零 完全无关，忽略 反方向 180° 最小（负） 高度对立 看动图：\u0026ldquo;苹果\u0026rdquo; 的 Q 箭头，逐个跟每个 token 的 K 箭头比较夹角——\n从分数到概率：Softmax 点积给出原始分数（可正可负），softmax 把它变成概率——所有分数加起来等于 100%：\n一步一步算： 1. Q * K = 原始分数 [0.54, 0.74, 0.12, 0.78] 2. / sqrt(d_head) = 缩放 [0.38, 0.52, 0.08, 0.55] 3. softmax = 概率 [0.22, 0.25, 0.16, 0.26] 4. 概率 × V = 加权混合 → 输出 一句话总结： Attention = 比较所有 token 的方向相似度，然后按相似度加权混合。方向越接近的 token，贡献越大。\n五、MLP——升到高维分开，再降回来 Attention 之后，Transformer 还有一个 MLP（前馈网络）。它的结构极其简单：\nx (d=4) → W1 升维 (d=16) → ReLU → W2 降维 (d=4) 为什么要先升维再降维？用一个真实的例子来看——\n想象你有一堆红色点和蓝色点，混在 2D 平面上。红色点在内圈，蓝色点在外圈。你想画一条直线把它们分开——不可能。\n但如果我们加一个维度 z，让每个点\u0026quot;飞\u0026quot;到 3D 空间？红色点飞得低，蓝色点飞得高——现在一刀就能切开！最后再把它们\u0026quot;按\u0026quot;回 2D，它们已经分开了。\n步骤 数学操作 几何直觉 W1 升维 4 维 → 16 维 把纸展开到高维——纠缠的点被拉开了 ReLU 负值变成 0 选择性保留——只留有用的特征 W2 降维 16 维 → 4 维 按回原来的维度——但已经分开了 为什么这招管用？ 在低维空间纠缠在一起的东西，升到高维后更容易被分开。ReLU 做\u0026quot;选择\u0026quot;——只保留正值，约一半维度被关掉。最后降维回来，信息已经被重新整理了。\n这就是第 19 篇《万能近似》的核心——足够宽的 MLP 能逼近任意函数。MLP 其实还在存储\u0026quot;知识\u0026quot;，详见第 20 篇《MLP 知识仓库》。\n六、完整前向传播——一次走完 把所有部件连起来，看 4 个 token 如何走完一个 Transformer Block：\n维度变化一览 步骤 操作 形状 几何意义 1 Embedding (4, 4) 4 个 token → 4 维空间的 4 个点 2 Q / K / V 投影 (4, 2) ×3 旋转到 3 个子空间 3 Q × K 点积 (4, 4) 4×4 夹角比较 4 softmax × V (4, 2) 按相似度加权混合 5 多头拼接 + W_O (4, 4) 多个视角合并 6 MLP W1 升维 (4, 16) 展开到高维 7 ReLU (4, 16) 选择性激活 8 MLP W2 降维 (4, 4) 折回原维度 9 输出 + 残差 (4, 4) 形状不变，语义已更新 注意首尾维度： 输入 (4, 4) → 输出 (4, 4)。形状没变！所以 Transformer Block 可以堆叠——一个 Block 的输出直接喂给下一个。GPT-2 堆了 12 层，GPT-4 据说堆了 120 层。\n七、对照表——同一种数学，不同的名字 最后，一张表把今天所有内容串起来：\n数学操作 2D 直觉 GPT 里叫什么 矩阵 × 向量 旋转+缩放+剪切 W_Q / W_K / W_V 投影 点积 比较夹角 → 相似度 Q × K → 注意力分数 升维 2D → 3D，\u0026ldquo;展开\u0026rdquo; MLP W1: d_model → d_ff ReLU 砍掉负半边 约 50% 神经元归零 降维 3D → 2D，\u0026ldquo;折回\u0026rdquo; MLP W2: d_ff → d_model 加权平均 求重心 softmax(QK) × V 堆叠 复合变换 12~120 层 Transformer Block 核心结论\nGPT 的每一个操作——投影、点积、升降维、激活——你都可以在 2D 平面上找到对应的几何直觉。\n768 维不是魔法，是你眼前这些动图在更高维度的 384 倍平行展开。\n本系列回顾 # 文章 核心问题 16 矩阵：连接数学与 AI 的桥梁 矩阵的列视角，W 为什么在右边 18 为什么 Transformer 需要 Q、K、V QKV 发明的哲学动机 19 万能近似：矩阵+激活能逼近一切 万能近似定理的直觉证明 20 MLP 知识仓库 MLP 作为键值记忆网络 22 一看就懂：矩阵乘法对 LLM 做了什么（本文） 9 张动图，几何直觉桥接 现在你有了从 2D 到 768 维的完整直觉链。\n下次看到 \u0026ldquo;multi-head attention\u0026rdquo; 或 \u0026ldquo;feed-forward network\u0026rdquo;——\n别慌。它们就是你刚才看到的那些旋转和缩放，只不过在更高的维度上同时做了很多遍。\n","permalink":"https://jason-azure.github.io/ai-blog/posts/geometric-intuition/","summary":"GPT 的本质就是矩阵乘法。但矩阵乘法到底在干什么？9 张动图，把 GPT 里最核心的数学拍给你看。维度变了，几何没变——看懂 2D，就看懂了 GPT。","title":"一看就懂：矩阵乘法到底对 LLM 做了什么？"},{"content":"欢迎来到 AI 学习笔记！ 大家好！这是我的第一篇博客文章。我一直想找一个地方把教学内容沉淀下来，方便大家随时查阅复习。现在，这个博客就是这个地方了。\n这里会分享什么？ 1. AI 基础知识 从最基本的概念讲起：\n什么是神经网络？ Transformer 架构是怎么工作的？ Tokenization（分词）为什么重要？ 2. 大语言模型 (LLM) 实战 动手操作，不只是理论：\n# 一个简单的例子：用 nanoGPT 生成文本 python sample.py --out_dir=out-xiyouji --start=\u0026#34;悟空道\u0026#34; 3. 工具教程 实用工具的上手指南，包括 Ollama、HuggingFace、PyTorch 等。\n4. 教学视频 课程录像和技术讲解视频也会嵌入到文章中。\nShortcode 演示 本博客支持多种富媒体嵌入方式，方便在文章中展示各类内容。\nB 站视频嵌入 在 Markdown 中使用以下语法即可嵌入 B 站视频：\n{{\u0026lt; bilibili id=\u0026#34;BVxxxxxxxx\u0026#34; title=\u0026#34;视频标题\u0026#34; \u0026gt;}} 微信二维码 {{\u0026lt; wechat-qr src=\u0026#34;/images/qrcode.png\u0026#34; caption=\u0026#34;扫码关注公众号\u0026#34; \u0026gt;}} HTML5 视频 {{\u0026lt; video src=\u0026#34;video.mp4\u0026#34; type=\u0026#34;html5\u0026#34; title=\u0026#34;演示视频\u0026#34; \u0026gt;}} 写在最后 这个博客完全开源，使用 Hugo + PaperMod 主题搭建，部署在 GitHub Pages 上，零成本运行。\n如果你也想搭建类似的博客，欢迎参考本站源码。后续我也会写一篇详细的搭建教程。\n期待与你在这里交流，一起学习 AI！\n","permalink":"https://jason-azure.github.io/ai-blog/posts/hello-world/","summary":"AI 学习笔记博客正式上线！在这里我会分享 AI 基础知识、大语言模型实战经验和实用工具教程。","title":"AI学习笔记— 博客正式上线"},{"content":" 📖 导读 2025 年 9 月，Anthropic 因使用盗版书籍训练 Claude，同意支付 15 亿美元和解——美国历史上最大的版权和解案。\n半年后，同一个 Anthropic，指控三家中国公司从 Claude 那里\u0026quot;偷\u0026quot;知识。\n一个因为\u0026quot;学了别人的东西\u0026quot;赔了 15 亿的公司，转头指控别人\u0026quot;学了自己的东西\u0026quot;——这个场景本身就值得深思。\n这篇文章从一个看似简单的技术概念——知识蒸馏——出发，走进技术、法律、道德和文化的交叉地带。不给答案，只给视角。\n① 一个隐喻 → ② 蒸馏到底是什么 → ③ 模型的内脏：什么能偷什么不能 → ④ 开源与闭源：两种哲学 → ⑤ 四场官司 → ⑥ 多维思辨 → ⑦ 三个带走的问题 一、师父与徒弟 一位老师傅花了十年，磨出了一道菜的秘方。\n一个年轻厨师来这家店吃了一百顿饭。回去之后，琢磨出了一道味道几乎一样的菜。\n请问——他偷了吗？\n追问三层：\n他没进过后厨，没看过配方单——他偷了吗？ 他品尝到的那个味道，是谁的「知识产权」？ 如果他公开说\u0026quot;我就是吃了一百顿饭学的\u0026quot;——这叫偷，还是叫学？ 再加一层：\n如果那个老师傅的菜，本身就是从别人那里学来的呢？ 这不是一个虚构的故事。这正是今天 AI 世界里正在发生的事。\n二、知识蒸馏：技术拆解 2.1 Hinton 的洞见——「暗知识」 2015 年，Geoffrey Hinton（深度学习三巨头之一）发表了一篇论文，标题很直白：《Distilling the Knowledge in a Neural Network》——把知识从一个神经网络里\u0026quot;蒸馏\u0026quot;出来。\n核心思想出奇地简单：\n一个大模型的输出，不只有「答案」，还有「答案的犹豫」。这些犹豫里，藏着真正的知识。\n什么意思？举个例子。\n假设你有一个图片识别模型，输入一张手写的 \u0026ldquo;2\u0026rdquo;：\n硬标签（Hard Label）——传统做法：\n答案是 2。句号。概率 100%。\n软标签（Soft Label）——Hinton 的洞见：\n数字 0 1 2 3 4 5 6 7 8 9 概率 0.1% 0.2% 93% 4.5% 0.3% 0.1% 0.5% 1.0% 0.2% 0.1% 看到了吗？那个 \u0026ldquo;3 的概率比 7 高\u0026rdquo; 的信息——这就是暗知识。\n它告诉学生模型：\u0026ldquo;2\u0026rdquo; 和 \u0026ldquo;3\u0026rdquo; 在某种意义上是相似的（都有弧线），而 \u0026ldquo;2\u0026rdquo; 和 \u0026ldquo;7\u0026rdquo; 虽然看起来也有点像（顶部都有横线），但相似度低一些。\n这种\u0026quot;哪些东西彼此像、哪些不像\u0026quot;的结构性信息，硬标签里完全没有。而软标签把它保留了下来。\n2.2 温度的妙用 Hinton 引入了一个巧妙的参数——温度（Temperature）：\n$$\\text{softmax}(z_i / T)$$\nT = 1：正常输出，高概率选项独占鳌头，低概率的几乎看不到 T \u0026gt; 1：分布被\u0026quot;软化\u0026quot;，那些被压得很低的概率重新浮出水面 T 越高，暗知识越多地被暴露出来 类比：你去吃师父做的菜——\nT = 1（正常温度）：你尝到了\u0026quot;好吃\u0026quot;，但说不清为什么。 T = 3（高温蒸馏）：就像放慢了味觉，你开始品出层次——先是酱油的咸，然后是一丝糖的甜，最后是花椒的麻。每一层调味都被放大了。 这就是\u0026quot;温度\u0026quot;的含义：让隐藏的信息显现出来。\n所以蒸馏的过程是：\n大模型（Teacher）用较高的温度，输出\u0026quot;软化\u0026quot;的概率分布 小模型（Student）学着去模仿这个分布 学生模型学到的不只是\u0026quot;正确答案\u0026quot;，还有老师的\u0026quot;思维方式\u0026quot; 学生没有看到老师的参数。学生没有看到老师的训练数据。学生只看到了——老师在每道题前的犹豫。\n但这些犹豫里，已经包含了足够多的知识。\n🌡️ 交互演示：拖动温度滑块，看暗知识如何浮现 2.3 从 2015 到今天：蒸馏的变迁 Hinton 2015 年的蒸馏是白盒蒸馏——学生能看到老师的完整概率分布（所有 logits）。这就像在后厨看师父炒菜，能看到每一个细微的手势。\n但在 LLM 时代，事情变了。\n大模型的 API 通常只给你最终的文本输出——你看不到完整的概率分布。你只能品尝最后端上桌的那道菜。\n这就是黑盒蒸馏：只用文本输出当训练数据，让小模型去模仿。\n蒸馏在技术上的演变：\n经典蒸馏（Hinton 2015） LLM 时代的蒸馏 传递什么 完整概率分布 通常只有文本 需要什么 白盒：模型内部 黑盒：API 调用 损失函数 KL 散度 监督微调（SFT） 类比 在后厨看师父炒菜 在前台品尝成品菜 信息量 极高 较低，但仍然有效 这个从\u0026quot;白盒\u0026quot;到\u0026quot;黑盒\u0026quot;的转变，恰恰是争议的源头。\n因为白盒蒸馏需要访问模型内部——这通常意味着你得到了授权。而黑盒蒸馏？只需要一个 API 账号。任何人都可以。\n三、模型的内脏——什么能\u0026quot;偷\u0026quot;、什么不能 要理解蒸馏争议，你需要先理解一个大模型到底由什么构成。\n3.1 解剖一个大模型 一个 LLM = 架构 + 权重 + 训练数据 + 训练方法 + 对齐数据\n让我把它们一个一个拆开：\n① 架构（Architecture）——菜谱的格式\nTransformer、MoE、Attention Mechanism……这些是公开发表的论文。任何人都可以照着论文实现一个 Transformer。\n这就像你知道\u0026quot;红烧肉要放酱油和糖\u0026quot;——这是公共知识，不是秘密。\n🔓 保护程度：几乎为零。论文是公开的，架构创新是学术贡献。\n② 权重（Weights）——真正的秘方\n几十亿到几千亿个浮点数，通过数月训练、消耗数百万美元算力得到。这是模型的全部\u0026quot;知识\u0026quot;所在。\n🔒 保护程度：最高。对于闭源模型，这是核心商业秘密。\n③ 训练数据（Training Data）——食材\n从互联网上爬取的万亿 token 文本。数据的选择、清洗、配比本身就是重要的 know-how。\n🔒 保护程度：高。数据来源通常不公开细节，配比是核心竞争力。\n④ 训练方法（Training Recipe）——炒菜的火候\n学习率、训练步数、课程学习策略、数据配比调整……论文通常只公开一部分，关键细节有意省略。\n🔒 保护程度：中高。部分公开，关键细节保密。\n⑤ 对齐数据（Alignment Data）——最后的调味\nRLHF（基于人类反馈的强化学习）所用的偏好数据，是让模型从\u0026quot;会说话\u0026quot;变成\u0026quot;说人话\u0026quot;的关键。这些数据由数千名人类标注员花费数月标注，成本数百万美元。\n🔒 保护程度：极高。不公开，也不可能通过 API 直接获取。\n3.2 蒸馏到底\u0026quot;偷\u0026quot;的是哪一层？ 重点来了。\n当你通过 API 大量调用一个模型、收集它的输出、用来训练自己的模型——你获取的是什么？\n❌ 不是架构（论文里早就有了） ❌ 不是权重（API 不会给你权重） ❌ 不是训练数据（你看到的是输出，不是输入） ❌ 不是训练方法（你不知道它怎么训练的） ❌ 不是对齐数据（你也看不到人类标注员标了什么） 你获取的是——输出分布的一个采样。\n就是\u0026quot;最后端上桌的那道菜\u0026quot;。\n根本悖论：\nAI 公司的产品就是知识本身。每一次 API 调用都在\u0026quot;展示\u0026quot;模型的知识。\n你不可能既卖知识，又不让人学到知识。\n这就像一个餐厅——把菜端上桌的那一刻，就已经在\u0026quot;泄露\u0026quot;配方了。\n区别只在于：食客是纯粹在吃饭，还是在系统性地\u0026quot;逆向工程\u0026quot;你的菜。\n🔬 交互图解：大模型的五层结构——什么能偷，什么不能 四、开源与闭源——两种哲学 在理解蒸馏争议之前，还有一个关键背景必须弄清楚：不是所有模型都害怕蒸馏。\n4.1 闭源模型：知识就是商品 ChatGPT（OpenAI）、Claude（Anthropic）、Gemini（Google）——这些是闭源模型。\n它们的商业模式很清楚：\n你不能看到模型权重 你不能下载模型 你只能通过 API 付费使用 知识被锁在黑盒里，按次收费 闭源模型的一切防线都建立在一个前提上：你只能用，不能学。\n服务条款（ToS）白纸黑字写着：\n\u0026ldquo;不得使用我们的服务输出来训练与我们竞争的模型。\u0026rdquo; —— Anthropic、OpenAI、Google 的 ToS（大意）\n但问题是——ToS 是合同，不是法律。违反合同是民事纠纷，不是犯罪。而且，一家中国公司是否受一份美国公司 ToS 的约束？这是一个远没有答案的问题。\n4.2 开源模型：知识就是公共品 Llama（Meta）、Qwen（阿里）、DeepSeek——这些是开源模型。\n它们公开发布：\n✅ 模型权重（所有人都能下载） ✅ 架构细节 ✅ 训练方法论文 有些甚至公开训练数据配比 开源模型不怕蒸馏——蒸馏本身就是它们被使用的方式之一。\n开源许可证的光谱：\n许可证 代表模型 允许商用 允许修改 允许蒸馏 Apache 2.0 DeepSeek ✅ ✅ ✅ Llama 许可证 Llama 3 ✅（有限制） ✅ ⚠️ 灰色地带 商用限制 某些模型 ❌（需申请） ✅ ❌ 闭源 API GPT-4, Claude ❌（仅 API） ❌ ❌（ToS 禁止） 4.3 两种哲学的碰撞 这不只是商业策略的差异。这是对知识本质的不同理解。\n闭源哲学：知识是劳动的果实，创造者有权控制它的使用方式。没有知识产权保护，就没有创新的动力。\n开源哲学：知识是人类的共同财富。知识流动得越快、越广，整个文明受益越大。封锁知识是逆历史潮流的。\n一个有趣的事实：\nMeta 把 Llama 开源，不是因为\u0026quot;善良\u0026quot;，而是一个精明的战略——它不靠卖 API 赚钱（它靠广告赚钱）。让模型开源，等于让全世界帮它完善技术生态，最终受益的是 Meta 自己的产品。\n同样，DeepSeek 把模型开源，某种程度上也是在说：\u0026ldquo;我不怕你学。你学得越多，我的生态越强。\u0026rdquo;\n开源不是慈善，是另一种竞争策略。\n这个背景很重要，因为接下来我们要聊的蒸馏争议，几乎只发生在闭源模型身上。\n没有人指控别人蒸馏了 Llama——因为 Meta 本来就让你用。\n所有的蒸馏指控，本质上都是：你从我锁起来的黑盒子里偷看了。\n问题是——如果你把一道菜端到食客面前，食客品尝了它，回去琢磨出了做法——你能说他\u0026quot;偷看\u0026quot;了你的黑盒子吗？\n五、蒸馏的光谱——边界在哪里？ 📊 蒸馏光谱：从完全合法到明显违规（点击展开详情） \u0026ldquo;蒸馏\u0026quot;这个词在 LLM 时代已经被用得极其模糊。让我们认真梳理一下，到底哪些行为算蒸馏，哪些不算。\n蒸馏的光谱——从\u0026quot;完全合法\u0026quot;到\u0026quot;明显违规\u0026rdquo;\n行为 是蒸馏吗？ 合法吗？ ① 照论文复现 Transformer 架构 ❌ 不是 ✅ 完全合法 ② 用开源模型（Llama/Qwen）做微调 ❌ 不是 ✅ 合法（遵循许可证） ③ 从自己的大模型蒸馏出小模型 ✅ 经典蒸馏 ✅ 合法 ④ 网上训练语料恰好包含 AI 生成文本 ❌ 偶然污染 ✅ 合法 ⑤ 收集公开分享的 ChatGPT 对话（如 ShareGPT） ⚠️ 间接蒸馏 ⚠️ 灰色地带 ⑥ 系统性调用 API 收集输出作为训练数据 ✅ 黑盒蒸馏 ⚠️ 违反 ToS，法律未定 ⑦ 使用假账号大规模抓取 ✅ 蒸馏+欺诈 ❌ 涉嫌欺诈 ⑧ 偷模型权重 不是蒸馏 ❌ 违法（商业秘密盗窃） 看出来了吗？从①到⑧是一个连续光谱，不是非黑即白的。\n而真正有争议的，恰恰是中间那些灰色地带——⑤和⑥。\n特别值得注意的是③：从自己的大模型蒸馏出小模型——这是完全正当的技术实践。DeepSeek 公开做的正是这件事。\n但在舆论中，③和⑥常常被混为一谈。一提到\u0026quot;DeepSeek\u0026quot;和\u0026quot;蒸馏\u0026quot;，人们就自动联想到\u0026quot;偷了 OpenAI 的东西\u0026quot;。实际上 DeepSeek 论文里写得清清楚楚——他们蒸馏的是自己的 R1 模型，用的基底是开源的 Qwen 和 Llama。\n这两件事完全不同。但它们被有意无意地混在一起了。\n六、四场官司——当「学习」变成「指控」 6.1 Anthropic 的\u0026quot;原罪\u0026quot;——Project Panama 在指控别人偷师之前，让我们先看看这家公司自己做了什么。\n2026 年 1 月 27 日，Washington Post 报道揭露了 Anthropic 的机密项目——Project Panama。\n内容令人震惊：\nAnthropic 从 Better World Books 等在线书商购买了数百万本二手书 把书脊切掉，扫描每一页，用于训练 Claude 扫完之后，纸张回收 内部文件描述这个项目为\u0026quot;破坏性扫描世界上所有的书\u0026quot; 内部明确写道：\u0026quot;不希望外界知道他们在做这件事\u0026quot; 2024 年 8 月，作家们发起了集体诉讼（Bartz v. Anthropic）。\n2025 年 6 月，法官 William Alsup 做出了一个有趣的区分：\n合法购买的书 → 用于训练 → 合理使用 ✅ 盗版书的副本 → 用于训练 → 不构成合理使用 ❌ 2025 年 9 月 5 日，Anthropic 同意支付 15 亿美元和解，每本书 3,000 美元加利息。\n这是美国历史上最大的版权和解案。\n6.2 音乐出版商 vs Anthropic 2023 年 10 月，Universal Music、Concord Music 等音乐出版商起诉 Anthropic——Claude 会输出完整的版权歌词。\nAnthropic 的回应让人印象深刻：\n\u0026ldquo;那是 bug。\u0026rdquo;\nRIAA（美国唱片业协会）不买账，将此案比作 Napster 案——那场彻底改变了音乐产业的版权战争。\n此案仍在审理中。\n6.3 OpenAI 指控 DeepSeek 2025 年 1 月底，DeepSeek R1 发布后引发全球轰动。\nOpenAI 迅速公开声称 DeepSeek 可能\u0026quot;不当使用\u0026quot;了其模型输出作为训练数据。\n证据？\nDeepSeek 有时会自称是 ChatGPT。\nAnthropic CEO Dario Amodei 也在公开场合说 DeepSeek\u0026quot;很可能使用了 OpenAI 的模型进行蒸馏\u0026quot;。\n但是——\n\u0026ldquo;自称 ChatGPT\u0026quot;有多种可能解释：训练语料中大量包含 ChatGPT 对话记录（互联网上到处都是） 没有确凿的技术方法能证实蒸馏行为 截至目前，OpenAI 未对 DeepSeek 提起正式诉讼——只是公开指控 为什么不起诉？或许因为他们知道，在法庭上证明蒸馏，几乎不可能。\n6.4 Anthropic 指控三家中国公司 2026 年 2 月 23 日，New York Times 报道：Anthropic 指控 DeepSeek 及另外两家中国公司——\n使用数千个欺诈性账户 与 Claude 进行了数百万次对话 目的是收集输出数据用于蒸馏训练 注意用词。这次指控的核心不是\u0026quot;蒸馏\u0026quot;本身——而是**\u0026ldquo;欺诈性账户\u0026rdquo;**。这是一个聪明的法律策略：绕过\u0026quot;蒸馏是否合法\u0026quot;这个难以裁决的问题，把焦点转向\u0026quot;用假账号是否构成欺诈\u0026rdquo;。\n七、多维思辨——不给答案，给视角 7.1 技术视角：蒸馏能被检测吗？ 理论上有四种方法：\n① 输出分布比对——如果两个模型在大量提示下的输出统计特征高度相似，可能说明存在蒸馏关系。\n问题：在相似数据上训练的模型天然会趋同。相关不等于因果。 ② 水印技术——在输出中嵌入统计水印（例如微妙地偏好某些词的选择），如果学生模型训练在这些带水印的输出上，水印会被\u0026quot;传承\u0026quot;。\n问题：一轮 paraphrase（改写）就能洗掉。 ③ 成员推理——测试学生模型是否\u0026quot;记住\u0026quot;了老师的特定输出。\n问题：只能检测记忆，不能证明系统性蒸馏。 ④ 行为指纹——模型有\u0026quot;口头禅\u0026quot;（特定的措辞习惯、格式偏好、犯错模式）。如果学生表现出老师的指纹行为，可能说明关联。\n问题：DeepSeek 说自己是 ChatGPT ≠ DeepSeek 蒸馏了 ChatGPT。 结论：目前没有任何检测方法能达到法律标准的\u0026quot;确凿证据\u0026quot;。\n这意味着蒸馏指控在技术上几乎不可能被证实或证伪。\n一个不可证伪的指控，到底是技术概念，还是舆论武器？\n7.2 法律视角：谁的规则？ 让我们拆解法律层面的复杂性。\n第一层：服务条款（ToS）\n几乎所有大模型公司的 ToS 都禁止用输出训练竞争模型。但 ToS 是合同，不是法律。违反 ToS 是民事纠纷，不是犯罪。\n第二层：版权法\n美国版权局已裁定：纯 AI 生成的内容不可获得版权保护。\n这就制造了一个有趣的悖论：如果模型的输出没有版权，那蒸馏侵犯的到底是什么权利？\n商业秘密？但输出是通过公开 API 提供的。\n第三层：跨国管辖\n一家中国公司，使用了一家美国公司的 API，在中国的服务器上训练了模型——\n适用哪国的法律？谁有管辖权？那份英文写的服务条款，对一个中国实体有约束力吗？\n这些问题，目前没有任何法律先例可以参考。\n第四层：合理使用（Fair Use）\n讽刺的是，AI 公司在面对作者和艺术家的诉讼时，最常使用的抗辩理由就是合理使用——\u0026ldquo;我们只是学习了你的作品，没有复制它\u0026rdquo;。\n而当其他人用同样的逻辑对待它们的模型输出时，它们又不接受了。\n\u0026ldquo;我训练你的作品是合理使用。你训练我的输出是知识盗窃。\u0026rdquo;\n——这个逻辑，站得住吗？\n7.3 道德视角：谁有资格指控谁？ 让我们把两个故事放在一起看：\nAnthropic 被指控的中国公司 做了什么 购买数百万本书 → 切掉书脊 → 扫描 → 训练 （被指控）大量 API 调用 → 收集输出 → 训练 来源 人类作者的作品 AI 模型的输出 对方知情？ ❌ 作者们不知情 ❌ Anthropic（据称）不知情 公开承认？ ❌ \u0026ldquo;不希望外界知道\u0026rdquo; ⚠️ 未承认也未否认 后果 赔了 $15 亿 被公开指控 一家因为\u0026quot;从人类那里学习\u0026quot;赔了 15 亿的公司，转头指控另一家\u0026quot;从 AI 那里学习\u0026quot;。\n我不是说谁对谁错。我是说——整个行业都站在同一个道德灰色地带里。\n每一个大模型，无论出自哪家公司、哪个国家，都是从人类数千年积累的文本中\u0026quot;学\u0026quot;来的。没有任何一个模型的训练数据是 100% 原创的。\n蒸馏只是把\u0026quot;从人类作品中学习\u0026quot;变成了\u0026quot;从 AI 输出中学习\u0026quot;——本质上，这仍然是人类知识的传递，只不过多了一层中介。\n7.4 文化视角：学习 vs 偷窃 东方传统：\n\u0026ldquo;学而时习之\u0026rdquo;——孔子说的\u0026quot;学\u0026quot;，就是模仿加实践。中国传统的师徒制，核心就是观察、模仿、琢磨。没有人觉得这是\u0026quot;偷\u0026quot;。\n中国 AI 社区对开源有特别强的共鸣。DeepSeek 选择全面开源（MIT / Apache 2.0 许可），在国内广受赞誉。这不只是商业决策，也是一种文化态度：知识应该流动。\n西方框架：\n知识产权是现代资本主义的基石之一。\u0026ldquo;创新需要回报\u0026quot;是整个体系的逻辑起点。\n但即使在西方，合理使用（Fair Use） 同样是重要传统。Google 扫描了数百万本书建索引——2015 年法院判定为合理使用。人类引用他人作品进行学术研究——这是天经地义的。\n当一个中国公司和一个美国公司对\u0026quot;学习\u0026quot;的定义不同时——\n这不只是法律问题。这是文明之间对知识本质的不同理解。\n谁的理解更\u0026quot;正确\u0026rdquo;？这个问题本身可能就是错的。\n7.5 来自 DeepSeek 的一个反面案例 值得注意的是，DeepSeek R1 论文（arXiv:2501.12948）坦诚地公开了自己的蒸馏方法：\n用强化学习训练大模型 DeepSeek-R1（671B 参数，MoE 架构） 用 R1 生成推理思维链数据 用这些数据微调开源小模型（Qwen、Llama 系列） 发布了 6 个蒸馏模型，从 1.5B 到 70B 参数。\n结果：DeepSeek-R1-Distill-Qwen-32B 在多项基准上超越了 OpenAI o1-mini。\n这是从自己的大模型蒸馏到开源的小模型。完全合法，完全透明，完全正当。\n但这个名字——\u0026ldquo;DeepSeek\u0026rdquo; + \u0026ldquo;蒸馏\u0026rdquo;——在舆论中被反复与\u0026quot;偷了 OpenAI 的东西\u0026quot;捆绑在一起。\n技术语境和舆论语境的混淆，本身就是一个值得警惕的现象。\n八、学习的本质 回到最开始那个隐喻。\n一个人读了一万本书，内化了知识，写出新作品——我们叫他学者。\n一个模型\u0026quot;读了\u0026quot;一万本书，压缩了知识，生成新文本——我们叫它侵权者。\n差异在哪？\n人类学习后，原始知识的形态已经消失，变成了神经连接 模型训练后，原始知识的形态也已经消失，变成了参数权重 人类可能逐字引用书中的话——我们叫\u0026quot;引用\u0026quot; 模型可能逐字输出训练数据——我们叫\u0026quot;侵权\u0026quot; 压缩即智能。\n如果学习的本质是压缩——那人类的学习和 AI 的\u0026quot;训练\u0026quot;，区别到底在哪里？\n也许区别不在于过程，而在于：\n意识：人类知道自己在学习 意图：人类可以选择致敬还是抄袭 创造：人类可以在学到的基础上，真正地\u0026quot;创新\u0026quot; AI 呢？它在\u0026quot;创新\u0026quot;吗？还是在\u0026quot;高级复述\u0026quot;？\n这个问题——目前没有人能回答。\n九、带走三个问题 我不打算给结论。\n这篇文章探讨的每一个问题，目前都没有共识。法律框架没有跟上技术现实，技术检测不能证实指控，道德讨论还没有形成标准，东西方文化对知识的理解仍然不同。\n所以我只给你三个问题。\n问题一\n如果一个模型读了全人类的书，学到了全人类的知识，然后用这些知识帮助全人类——这是偷窃，还是文明的延续？\n问题二\n如果\u0026quot;蒸馏\u0026quot;在技术上不可能被证实，在法律上没有框架，在道德上没有共识——那这个词的真正含义是什么？是技术概念，还是商业竞争中的武器？\n问题三\n当你读完这篇文章，你\u0026quot;学到\u0026quot;了一些东西。这些东西里，有我查阅的论文的知识、有法院判决书的事实、有我个人的思考。\n你学到的东西，属于谁？\n知识从来不属于任何人。\n但在一个把知识变成产品的时代，我们不得不假装它属于某个人。\n这个假装，还能维持多久？\n📚 延伸阅读与引用\nHinton et al., Distilling the Knowledge in a Neural Network, arXiv:1503.02531, 2015 DeepSeek-AI, DeepSeek-R1: Incentivizing Reasoning Capability in LLMs via Reinforcement Learning, arXiv:2501.12948, 2025 CNBC, Anthropic agrees to pay $1.5 billion to settle authors\u0026rsquo; copyright lawsuit, 2025-09-05 Washington Post, Inside an AI start-up\u0026rsquo;s plan to scan and dispose of millions of books, 2026-01-27 NYT, Anthropic Accuses 3 Chinese Companies of Harvesting Its Data, 2026-02-23 NBC News, OpenAI says DeepSeek may have \u0026lsquo;inappropriately\u0026rsquo; used its data, 2025-01-30 U.S. Copyright Office, Copyright and Artificial Intelligence reports 💡 相关文章\n压缩即智能——开篇语 MoE：671B 参数的模型，为什么只用 37B 就够了？ AI Agent 热潮冷思考：当我们拆掉所有包装之后 DeepSeek-R1：一个模型如何学会「思考」 ","permalink":"https://jason-azure.github.io/ai-blog/posts/knowledge-distillation/","summary":"一个师父花了十年磨出秘方，一个徒弟吃了一百顿饭就学会了。他偷了吗？从 Hinton 的暗知识到 Anthropic 的 15 亿美元和解，从 DeepSeek 的坦诚到蒸馏指控的荒诞，这篇文章不给答案，只给视角。","title":"当模型学会「偷师」——知识蒸馏、版权战争与学习的边界"},{"content":"引言：一个被颠覆的认知 很多人（包括曾经的我）一直以为：LLM 只是一个\u0026quot;鹦鹉学舌\u0026quot;的概率机器，它不存储任何知识，只是在模仿训练数据中的统计规律。\n但最近的研究颠覆了这个认知——LLM 确实在内部存储了大量事实性知识，而且存储的位置非常明确：就在 MLP（前馈网络）的权重矩阵里。\n更令人震撼的是：这些知识被\u0026quot;加密\u0026quot;了。不是人类能直接阅读的明文，而是以一种分布式的、纠缠的方式编码在数百万个浮点数中。只有模型自己的计算流程才能\u0026quot;解密\u0026quot;并使用这些知识。\n今天，我们把这件事彻底拆开。\n一、MLP 在 Transformer 中的位置 在拆解 MLP 之前，先搞清楚它住在哪。\n一个 Transformer 模型（无论是 GPT、Claude 还是 DeepSeek），内部是由 N 个完全相同的 Transformer Block 堆叠而成的。每个 Block 里面有两个核心组件：\n组件 全称 职责 类比 Attention Multi-Head Self-Attention token 之间的信息交换 开会讨论：\u0026ldquo;看谁\u0026rdquo; MLP Multi-Layer Perceptron / FFN 对每个 token 独立地做深度加工 独立思考：\u0026ldquo;想什么\u0026rdquo; 它们的关系，用一句话总结：\nAttention 是\u0026quot;看谁\u0026quot;，MLP 是\u0026quot;想什么\u0026quot;。\nAttention 把相关的上下文汇聚到当前位置（比如读到\u0026quot;法国的首都\u0026quot;时，把\u0026quot;法国\u0026quot;和\u0026quot;首都\u0026quot;的信息集中起来），然后 MLP 对汇聚后的信息做\u0026quot;深度加工\u0026quot;——调用存储在权重中的知识，把\u0026quot;法国+首都\u0026quot;翻译成\u0026quot;巴黎\u0026quot;。\nGPT-2 有 12 个这样的 Block，GPT-3 有 96 个。每个 Block 都是先 Attention 再 MLP，像一条流水线一样逐层加工信息。\n二、MLP 到底在做什么？三步流水线 MLP 的内部结构出奇地简单——就三步：\n第一步：升维（Expand） 把 token 的向量从 d 维展开到 4d 维。GPT-2 的 d=768，所以展开到 3072 维。\n为什么要升维？ 想象你要在一张纸上用一条线把红豆和绿豆分开。如果它们混在一起，平面上做不到。但如果你把它们抛到空中（升到三维），用一个平面就能轻松切开。高维空间给了模型更多的\u0026quot;操作空间\u0026quot;。\n第二步：激活（Activate） 用 GELU 激活函数过滤。弱信号被压到接近 0，强信号保留。这一步实现了稀疏激活——3072 个神经元中，可能只有几百个被激活。\n这就像一个筛子：大量\u0026quot;不相关\u0026quot;的知识被筛掉，只有与当前输入匹配的知识被保留。\n第三步：降维（Compress） 把 4d 维压回 d 维，输出结果。\n公式写出来只有一行：\nMLP(x) = W₂ · GELU(W₁ · x + b₁) + b₂ 其中： x: 输入向量 [768 维] W₁: 升维矩阵 [768 × 3072] ← 把 768 维展开到 3072 维 GELU: 激活函数 [3072 → 3072] ← 筛选，稀疏激活 W₂: 降维矩阵 [3072 × 768] ← 压回 768 维 输出: 加工后的向量 [768 维] 看到这里你可能会说：这不就是两个矩阵乘法中间夹个非线性吗？有什么特别的？\n特别之处在于：这两个矩阵 W₁ 和 W₂ 里面存储了什么。\n三、颠覆认知：MLP 是一个巨大的知识库 2021 年，以色列特拉维夫大学的 Mor Geva 等人发表了一篇重要论文：\u0026ldquo;Transformer Feed-Forward Layers Are Key-Value Memories\u0026rdquo;。\n这篇论文提出了一个惊人的观点：\nMLP 的两个矩阵，就是一个键-值记忆网络（Key-Value Memory）。\n什么是\u0026quot;键-值记忆\u0026quot;？ 你用过字典吧？查一个英文单词，翻到对应的中文释义。字典就是一个键-值存储：\n键（Key） 值（Value） apple 苹果 book 书 cat 猫 MLP 做的事情本质上一模一样，只不过它的\u0026quot;字典\u0026quot;不是精确匹配，而是模糊匹配：\n矩阵 角色 类比 W₁ 的每一行 一个键（Key） 一把钥匙——检测输入是否匹配某种模式 W₂ 的每一列 一个值（Value） 一个锁里的宝贝——匹配成功时输出的知识 GELU 激活 门控 门卫——匹配度低的直接拒之门外 把公式拆开看就更清楚了：\nMLP(x) = W₂ · GELU(W₁ · x) 展开后 = 第1列 · GELU(第1行 · x) ← key₁ 匹配？输出 value₁ + 第2列 · GELU(第2行 · x) ← key₂ 匹配？输出 value₂ + 第3列 · GELU(第3行 · x) ← key₃ 匹配？输出 value₃ + ... + 第N列 · GELU(第N行 · x) ← keyₙ 匹配？输出 valueₙ 等价于： MLP(x) = 所有\u0026#34;匹配上的知识\u0026#34;的加权求和 举个具体例子。当输入是\u0026quot;法国的首都是___\u0026ldquo;时：\nW₁ 的第 1847 行（key₁₈₄₇）可能对应\u0026rdquo;国家+首都\u0026ldquo;这种模式。它和输入做点积，得到一个高分——说明匹配上了。 GELU 让这个高分通过，低分的被过滤掉。 W₂ 的第 1847 列（value₁₈₄₇）存储的就是\u0026rdquo;巴黎\u0026ldquo;对应的向量方向。 最终输出 = 所有被激活的 value 的加权求和，指向\u0026quot;巴黎\u0026rdquo;。 GPT-2 Small 的每一层 MLP 有 3072 个这样的\u0026quot;记忆槽\u0026quot;。12 层加起来就是 36,864 个记忆槽。GPT-3 有 12,288 × 96 = 超过 100 万个记忆槽。\n这就是 LLM \u0026ldquo;记住\u0026quot;万亿级知识的秘密。\n实锤：知识编辑实验 如果 MLP 真的存储了知识，那能不能精确地修改某一条知识？\n2022 年，MIT 的 Kevin Meng 等人发表了 \u0026ldquo;Locating and Editing Factual Associations in GPT\u0026rdquo;（ROME 方法），给出了令人震惊的答案：可以。\n他们的实验过程：\n第一步： 找到\u0026quot;埃菲尔铁塔在巴黎\u0026quot;这条知识主要存储在 GPT-2 的第 17 层 MLP 中。 第二步： 精确修改该层 MLP 的 W₁ 矩阵中的几个参数。 结果： 模型现在回答\u0026quot;埃菲尔铁塔在罗马\u0026quot;——一条知识被成功\u0026quot;篡改\u0026quot;了！ 这个实验有力地证明了：事实性知识确实物理地存储在 MLP 的权重矩阵中，而且可以精确定位到具体的层和神经元。\n四、加密的知识：为什么人类读不懂？ 知道 MLP 存储了知识后，你可能会想：既然知识在权重矩阵里，能不能打开看看？\n答案是：能打开，但看不懂。\n比如 GPT-2 的某一层 MLP 的 W₁ 矩阵，打开来看就是这样的：\n0.0231 -0.0847 0.1203 -0.0015 0.0672 ... -0.0934 0.0412 -0.0568 0.0891 -0.0273 ... 0.1147 -0.0326 0.0089 -0.1034 0.0456 ... ... 一堆浮点数。你完全看不出哪个数字对应\u0026quot;法国首都是巴黎\u0026rdquo;，哪个对应\u0026quot;水的沸点是100度\u0026quot;。\n这就是所谓的**\u0026ldquo;加密\u0026rdquo;——当然不是真正的密码学加密，而是分布式表征（Distributed Representation）**带来的\u0026quot;天然加密效果\u0026quot;。\n为什么\u0026quot;加密\u0026quot;了？三个原因 原因一：一条知识分散在百万个参数中。\n传统数据库里，\u0026ldquo;法国首都=巴黎\u0026quot;是一条独立的记录。但在 LLM 中，这条知识被拆散了——编码在 W₁ 的某些行、W₂ 的某些列、甚至跨越多层 MLP 的权重中。\n这就像你把一封信撕成 100 万片，撒到一个足球场上，和另外 100 亿封信的碎片混在一起。单独看任何一片纸，你都读不出原文。\n原因二：一个参数同时编码多条知识。\n更疯狂的是，这些碎片还在复用。W₁ 第 1847 行的第 42 个元素，可能同时参与编码\u0026quot;法国首都=巴黎\u0026rdquo;、\u0026ldquo;法语是法国的官方语言\u0026rdquo;、\u0026ldquo;法国的国旗是蓝白红\u0026quot;等等多条知识。\n这种\u0026quot;一个参数身兼多职\u0026quot;叫做叠加（Superposition）。它让模型能用有限的参数存储远超参数量的知识——但代价是人类完全无法直接解读。\n原因三：只有完整的计算流程才能\u0026quot;解密\u0026rdquo;。\n要提取\u0026quot;法国首都=巴黎\u0026quot;这条知识，你需要：\n构造一个包含\u0026quot;法国\u0026quot;和\u0026quot;首都\u0026quot;的输入向量 用 W₁ 做矩阵乘法（键匹配） 用 GELU 做非线性过滤（门控） 用 W₂ 做矩阵乘法（值提取） 经过残差连接和后续层的进一步加工 整个流程缺一不可。这就像一把需要同时转动 5 个齿轮才能打开的密码锁——只有模型自己的完整计算管道才是那把\u0026quot;钥匙\u0026quot;。\n一个有趣的类比：全息照片 全息照片是把三维物体的光学信息编码在二维底片上。你直接看底片，只看到一片模糊的干涉条纹，完全看不出原始物体的样子。但当你用正确波长的激光照射底片时，三维影像就\u0026quot;浮现\u0026quot;出来了。\nLLM 的 MLP 权重就像全息照片的底片——知识被编码在看起来无意义的数字中，只有用正确的\u0026quot;激光\u0026quot;（输入向量 + 计算流程）照射，知识才会浮现。\n五、预训练的全貌：三大器官同时生长 理解了 MLP 存储知识之后，我们就能看到预训练的全貌了。预训练不只是\u0026quot;学会预测下一个词\u0026quot;那么简单——它同时在锻造 LLM 的三大核心器官：\n器官 参数 功能 类比 参数占比 Embedding Embedding 矩阵 把离散的文字映射到连续的向量空间 翻译词典：文字→数学语言 ~3% Attention W_Q, W_K, W_V, W_O 发现 token 之间的关系，汇聚上下文 三副眼镜：看哪些词相关 ~30% MLP W₁, W₂ (+ W_gate) 存储和检索事实性知识 知识仓库：学到的所有事实 ~67% 注意到了吗？LLM 三分之二的参数都在 MLP 里。\n这完全合理——因为 MLP 要存储的是训练数据中学到的所有事实和模式。从\u0026quot;地球绕太阳转\u0026quot;到\u0026quot;Python 用缩进表示代码块\u0026quot;，从\u0026quot;李白是唐代诗人\u0026quot;到\u0026quot;if-else 的语法\u0026quot;——这些知识需要海量的参数来编码。\n所以预训练的本质可以这样理解：\n用万亿 token 的文本数据，通过梯度下降，同时锻造三套能力： 理解语言（Embedding）+ 发现关系（Attention）+ 记忆知识（MLP）\n为什么模型越大，知识越多？ 现在这个问题就很好回答了：\n模型越大 → MLP 的维度越大 → 记忆槽越多 → 能存储的知识越多。 GPT-2（1.5B 参数）可能记住百万级事实。 GPT-3（175B 参数）可能记住数亿级事实。 GPT-4（传言 1.8T 参数）可能记住数十亿级事实。 这也解释了为什么小模型会\u0026quot;胡说八道\u0026quot;——不是它不想说对，而是它的 MLP 记忆槽不够，装不下那么多知识，或者知识之间的叠加太严重，互相干扰了。\n六、深入对比：Attention vs MLP 理解了 MLP 的角色后，Attention 和 MLP 的分工就非常清晰了：\nAttention MLP 做什么 token 之间的信息路由 单个 token 上的知识检索 处理方式 所有 token 一起看 每个 token 独立处理 类比 小组讨论：交换信息 独立思考：查阅笔记 记忆类型 短期记忆（上下文窗口） 长期记忆（训练时学到的知识） 受什么影响 当前输入的上下文 预训练阶段固定下来的权重 如果去掉 模型无法理解上下文关系 模型\u0026quot;失忆\u0026quot;，丧失知识 用一个生活场景来理解：\n想象你在参加一个知识竞赛。主持人读出题目\u0026quot;法国的首都是什么？\u0026quot;\nAttention 的工作：你的耳朵听到了这句话的每个词，然后大脑识别出\u0026quot;法国\u0026quot;和\u0026quot;首都\u0026quot;是关键词，把它们的信息集中起来。这是理解问题的过程。\nMLP 的工作：大脑拿着\u0026quot;法国+首都\u0026quot;这个线索，去你的长期记忆里搜索，找到了\u0026quot;巴黎\u0026quot;这个答案。这是检索知识的过程。\n七、现代 LLM 的 MLP 进化 经典 MLP（GPT-2/3 使用）只有两个矩阵。但现代 LLM（LLaMA、Qwen、DeepSeek）已经进化了。\n进化一：SwiGLU（门控 MLP） LLaMA、Qwen、DeepSeek 等现代模型使用的 MLP 结构叫 SwiGLU（Swish-Gated Linear Unit）：\n经典 MLP: y = W₂ · GELU(W₁ · x) ← 2 个矩阵 SwiGLU MLP: y = W₂ · (Swish(W_gate · x) ⊙ (W_up · x)) ← 3 个矩阵 区别： W_gate: 决定\u0026#34;让哪些信息通过\u0026#34; ← 门控分支 W_up: 提供\u0026#34;候选信息\u0026#34; ← 信息分支 两者逐元素相乘 = 有选择地放行 类比： 经典 MLP = 一个筛子 SwiGLU = 一个智能闸门（自己决定开多大） SwiGLU 多了一个矩阵，但效果明显更好——梯度更平滑，知识检索更精确。\n进化二：MoE（混合专家） DeepSeek-V3 和 Qwen-MoE 使用了更激进的设计——把一个大 MLP 拆成多个专家（Expert）：\n输入 x | Router（路由器） / | | | \\ E₁ E₂ E₃ ... E₂₅₆ ← 256 个独立的小 MLP（\u0026#34;专家\u0026#34;） \\ | | / Top-K 选择（只激活 8 个） + 加权求和 | 输出 y 每个\u0026quot;专家\u0026quot;可能专精不同领域的知识——有的擅长代码，有的擅长数学，有的擅长文学。Router 会根据输入，选择最合适的几个专家来回答。\n这样做的好处是：总参数量可以很大（存储更多知识），但每次只激活一小部分（计算成本低）。DeepSeek-V3 总参数 671B，但每次推理只用 37B——相当于一个有 671B 容量的图书馆，但每次查询只需要翻 37B 的书。\n总结：重新认识 LLM 回到最初的问题：LLM 到底有没有\u0026quot;知识\u0026quot;？\n有。而且存储的位置非常明确。\n误解 事实 LLM 只是\u0026quot;鹦鹉学舌\u0026quot; LLM 在 MLP 权重中存储了海量事实性知识 LLM 不理解任何东西 Attention 学到了语义关系，MLP 学到了世界知识 MLP 只是\u0026quot;增加非线性\u0026quot; MLP 是 LLM 最核心的知识存储引擎，占 2/3 参数 预训练只是学统计规律 预训练同时锻造 Embedding + Attention + MLP 三大器官 最后，用一句话概括今天的核心洞见：\nLLM 不是没有知识的概率计算器。它是一个把人类文明的知识\u0026quot;加密\u0026quot;存储在数十亿浮点数中的分布式知识引擎。\n只不过，这份知识被编码成了只有它自己才能读懂的\u0026quot;密文\u0026quot;。\n参考文献 Geva et al. (2021). Transformer Feed-Forward Layers Are Key-Value Memories. EMNLP 2021. arXiv: 2012.14913 Meng et al. (2022). Locating and Editing Factual Associations in GPT (ROME). NeurIPS 2022. arXiv: 2202.05262 Dai et al. (2022). Knowledge Neurons in Pretrained Transformers. ACL 2022. arXiv: 2104.08696 Elhage et al. (2022). Softmax Linear Units. Anthropic Transformer Circuits Thread. Shazeer (2020). GLU Variants Improve Transformer. arXiv: 2002.05202 Geva et al. (2022). Transformer Feed-Forward Layers Build Predictions by Promoting Concepts in the Vocabulary Space. arXiv: 2203.14680 Vaswani et al. (2017). Attention Is All You Need. NeurIPS 2017. arXiv: 1706.03762 ","permalink":"https://jason-azure.github.io/ai-blog/posts/mlp-knowledge/","summary":"很多人以为 LLM 只是\u0026quot;鹦鹉学舌\u0026quot;的概率机器。但研究证明，LLM 确实存储了海量知识——就藏在 MLP 的权重矩阵中，以一种只有模型自己能解读的\u0026quot;加密\u0026quot;方式。这篇文章拆开这个秘密。","title":"LLM 的知识藏在哪里？MLP 权重中的加密记忆"},{"content":"引言 你有没有好奇过，ChatGPT 是怎么\u0026quot;读懂\u0026quot;你输入的文字，又是怎么\u0026quot;写出\u0026quot;回答的？\n今天我们用一个可以完全看透的小模型 —— nanoGPT，来拆解大语言模型 (LLM) 从输入到输出的完整数据流。\n核心观点：LLM 的架构和原理与我们的小模型完全相同，区别只在规模。 理解了小模型，就理解了大模型的本质。\n全流程概览 \"悟空道\"\n文字 → UTF-8 编码\n字节 → Token ID\n数字 → Embedding\n高维向量 → Transformer\n神经网络 → Softmax\n概率 → 采样\n选择 → \"：\"\n新文字 接下来我们逐步拆解每个环节。\n第一步：Tokenization — 把文字变成数字 神经网络不能直接处理文字，第一步就是把文字转换成数字。这个过程叫 Tokenization（分词/标记化）。\n字符级分词 最简单的方式：每个字符就是一个 token。\n\u0026#34;悟空道\u0026#34; → 每个字一个编号 → [1342, 2784, 3915] 词表大小：Shakespeare = 65 个字符，西游记 ≈ 3000+ 个字符 BPE 分词 — GPT 系列使用 把常见的字符组合合并成一个 token，效率更高：\n\u0026#34;Hello World\u0026#34; → [\u0026#34;Hello\u0026#34;, \u0026#34; World\u0026#34;] → [9906, 2159] 词表大小：GPT-2 = 50,257 个 token 中英文 Token 效率差异 一个有趣的发现：同样含义的内容，中文需要约 1.4-1.5 倍的 token。\n文本 Token 数量 The quick brown fox jumps over the lazy dog 9 敏捷的棕色狐狸跳过了懒狗（同义） 13 这意味着在 ChatGPT 等模型中，中文消耗更多 token（花更多钱）。这也是为什么我们在 nanoGPT 中用字符级分词来训练西游记 —— 对中文更公平。\n第二步：Embedding — 给每个 Token 一张\u0026quot;数字身份证\u0026quot; 模型不能直接用 Token ID（一个整数）做计算，需要把它转换成一个高维向量（一组浮点数）。\nToken ID: 1342（\"悟\"） ↓ 在 Embedding 矩阵中查找第 1342 行 向量: [-0.039, +0.010, -0.097, +0.048, ..., +0.031]\n256 维浮点数 Embedding 是怎么来的？ 一开始是随机数，通过训练逐渐学出有意义的值。\n# 创建 Embedding 矩阵 wte = nn.Embedding(vocab_size, n_embd) # 如 (4487, 256) # 随机初始化：均值=0, 标准差=0.02 torch.nn.init.normal_(module.weight, mean=0.0, std=0.02) 训练前，所有向量都是随机噪声。训练后，语义相关的字自动靠近：\n字符对 训练前（随机） 训练后 说明 说 vs 言 -0.014 +0.368 同义词靠近 说 vs 道 -0.137 +0.240 同义词靠近 山 vs 水 -0.003 +0.394 场景词聚类 说 vs 山 -0.102 -0.113 不相关保持距离 这个语义结构完全是从数据中\u0026quot;涌现\u0026quot;的，没有人告诉模型这些字\u0026quot;意思相近\u0026quot;。\n第三步：Transformer — 核心处理引擎 Embedding 之后的向量进入 Transformer，这是模型的核心。\nToken Embedding + Position Embedding\n每个 token 的初始向量表示 ↓ Transformer Block × N（N 层叠加） LayerNorm → Self-Attention — 让每个字\"看到\"前面的字\n→ 残差连接 LayerNorm → MLP（前馈网络） — \"思考\"和\"记忆知识\"\n→ 残差连接 ↓ LayerNorm → Linear\n输出概率分布 Self-Attention：让模型学会\u0026quot;关注\u0026quot; Self-Attention 让模型在生成下一个字时，能够关注前面所有相关的字：\nAttention 矩阵：\n悟 空 道 悟 1.00 · · 空 0.56 0.44 · 道 0.51 0.32 0.18 每行表示该字的注意力分布：「悟」只看自己；「道」最关注「悟」 关键设计：因果掩码（Causal Masking）—— 每个位置只能看到前面的字，不能偷看后面的。这保证了模型学会\u0026quot;预测下一个字\u0026quot;而不是\u0026quot;抄答案\u0026quot;。\n第四步：从 Logits 到概率 Transformer 的输出经过线性变换，得到词表中每个字符的\u0026quot;原始分数\u0026quot;（logits）：\n隐藏状态（256 维） ↓ lm_head 线性变换 Logits（4487 维）\n[+2.3, -1.5, +0.8, ..., +5.1, ..., +3.7]\n每个值对应一个候选字符 然后通过 Softmax 转换为概率分布：\n候选 1 候选 2 候选 3 候选 4 Logits +5.1 +3.7 +2.3 -1.5 Softmax 76.4% 18.8% 4.7% 0.1% Temperature：控制创造力 Temperature 控制生成的随机性：\ntemperature = 0.5 → 几乎只选最可能的字（保守、重复） temperature = 0.8 → 适中（推荐值） temperature = 1.5 → 非常随机（可能出现不连贯） Top-K：过滤离谱选项 只从概率最高的前 K 个候选中采样，防止选到极不可能的字。\n第五步：自回归生成 LLM 每次只生成一个 token，然后把它拼回输入，继续生成下一个：\n输入 [悟, 空, 道] → 预测 \"：\" 输入 [悟, 空, 道, ：] → 预测 \"师\" 输入 [悟, 空, 道, ：, 师] → 预测 \"父\" ↻ 重复 N 次… 这就是为什么 LLM 的输出是逐字\u0026quot;蹦出来\u0026quot;的 —— 它真的是一个字一个字生成的。\nSLM vs LLM：小模型与大模型 我们训练的 nanoGPT 模型只有 4.3M（430 万）参数，严格来说是一个 SLM（Small Language Model）。而 GPT-4 有约 1.8T（1.8 万亿）参数 —— 是我们的 40 万倍。\n但关键点是：架构完全相同。\n# nanoGPT demo 模型 (4.3M) GPTConfig(n_layer=4, n_head=4, n_embd=256, vocab_size=4487) # GPT-2 Small (124M) GPTConfig(n_layer=12, n_head=12, n_embd=768, vocab_size=50257) # GPT-3 (175B) GPTConfig(n_layer=96, n_head=96, n_embd=12288, vocab_size=50257) 规模的量变引起能力的质变：\n参数量 能力 4M 模仿文风，经常语句不通 100M 能写出通顺的句子 10B 能进行简单对话和问答 100B+ 涌现出推理、编程、数学等\u0026quot;智能\u0026quot; 这就是 Scaling Law（缩放定律）—— 模型越大、数据越多，能力就越强，某些能力甚至会在特定规模突然\u0026quot;涌现\u0026quot;。\n动手试一试 如果你有一台 Linux 机器，可以用 nanoGPT 亲手训练一个语言模型：\n# 1. 克隆项目 git clone https://github.com/karpathy/nanoGPT.git \u0026amp;\u0026amp; cd nanoGPT # 2. 准备数据 python data/shakespeare_char/prepare.py # 3. 训练（CPU 上几分钟） python train.py config/train_shakespeare_char.py # 4. 生成文本 python sample.py --out_dir=out-shakespeare-char 训练日志中的 loss 会从 ~4.17（随机猜测）逐渐下降。当 loss 降到 1.0-2.0 时，模型就能生成像模像样的 Shakespeare 风格文本了。\n总结 LLM 的核心数据流可以用一句话概括：\n文字 → 数字 → 向量 → 注意力 + 变换 → 概率 → 采样 → 新文字\n每一步都是确定性的数学运算，没有任何\u0026quot;魔法\u0026quot;。LLM 的\u0026quot;智能\u0026quot;源于从海量数据中学到的统计模式 —— Embedding 捕捉语义关系，Attention 捕捉上下文依赖，MLP 存储和变换知识。\n理解了这个流程，你就掌握了理解所有现代 LLM（GPT-4、Claude、DeepSeek）的基础。因为它们的架构，和我们这个小小的 nanoGPT，本质上是一样的。\n","permalink":"https://jason-azure.github.io/ai-blog/posts/llm-data-pipeline/","summary":"深入了解大语言模型 (LLM) 的数据处理流程：从原始文本到 Tokenization，从 Embedding 到 Transformer，一步步拆解 LLM 的工作原理。基于 nanoGPT 实战项目。","title":"从文本到模型：LLM 数据处理全流程详解"},{"content":"引言：一个让人失眠的问题 在准备一期介绍 Transformer 的视频时，我想从\u0026quot;发明者视角\u0026quot;来解释 QKV。\n于是我问了自己一个问题：\u0026ldquo;苹果\u0026quot;这个词到底是什么？\n想说清楚\u0026quot;苹果\u0026rdquo;，就得先说清楚\u0026quot;水果\u0026quot;。想说清楚\u0026quot;水果\u0026quot;，得先说清楚\u0026quot;植物\u0026quot;。想说清楚\u0026quot;植物\u0026quot;……最终你会发现，要解释语言，你必须先拥有语言。\n这是一个死循环。\n更麻烦的是，\u0026ldquo;苹果\u0026quot;这个词关联的东西远不止\u0026quot;水果\u0026rdquo;——它同时连接着红色、酸甜、苹果树、iPhone、乔布斯、亚当与夏娃、《小苹果》广场舞、\u0026ldquo;You are the apple of my eye\u0026rdquo;……\n我越想越觉得，如果连\u0026quot;一个词是什么\u0026quot;都说不清，又怎么可能解释 QKV 的设计？\n但转念一想——也许正是因为语言本身就是这样运作的，QKV 才会被发明出来。\n这篇文章从人类理解语言的方式出发，经过 40 年规则路线的失败、分布式假说的破局、机器世界的设计约束，最终抵达 QKV 的工程方案——然后我们会发现，硅基走过的路，和碳基惊人地相似。它不是一篇教你\u0026quot;QKV 怎么算\u0026quot;的技术文章——那部分我在 Attention 机制零基础拆解 中已经写过。这篇文章要回答的是：QKV 为什么会被发明出来？\n第一章：语言的死循环——符号接地问题 字典的无限递归 试着用字典查\u0026quot;苹果\u0026quot;：\n苹果 → 一种水果 水果 → 植物的可食用果实 植物 → 能进行光合作用的生物 生物 → 具有生命特征的有机体 生命 → …… 每一个定义都依赖另一组词。你永远不可能仅仅通过词与词之间的互相解释，来触及那个真实的、可以咬一口的苹果。\n这个问题在 1990 年被认知科学家 Stevan Harnad 正式提出，他称之为符号接地问题（Symbol Grounding Problem）：\n纯符号系统无法仅靠符号之间的互相解释来获得意义。\n意义不能只从符号→符号的映射中产生。\n换句话说：一本只有文字的字典，无论写得多详细，永远无法让一个从未见过苹果的人真正理解什么是苹果。\n类比： 想象你在一个全是中文的房间里（没错，这就是著名的\u0026quot;中文房间\u0026quot;思想实验），你手里只有一本中中词典。你可以查到每个字的释义，但你永远无法跳出文字本身——因为释义也是文字。\n这看起来是个无解的死胡同。\n思考片刻： 如果你现在正在阅读这段文字并且\u0026quot;理解\u0026quot;了它——你是怎么做到的？你理解\u0026quot;苹果\u0026quot;时，脑子里浮现的是一个定义，还是一团关联的记忆、感受和场景？也许理解从来就不是一个\u0026quot;定义\u0026quot;的过程。\n但面对这个死循环，人类并没有放弃。最直觉的尝试是——像学校教语言那样教机器。\n第二章：人类的第一次尝试——像教孩子一样教机器 语言可以用规则描述……吗？ 1957 年，语言学家 Noam Chomsky 提出了形式文法（Formal Grammar）——他相信，人类语言的核心是一组有限的规则，通过递归组合就能生成无限多的句子。\n这个想法极其诱人。如果语言只是规则，那只要把规则告诉机器，机器就能\u0026quot;理解\u0026quot;语言。\n早期的努力确实令人振奋。1971 年，MIT 的 Terry Winograd 构建了 SHRDLU 系统——一个只存在于\u0026quot;积木世界\u0026quot;里的语言理解程序。你可以用英语告诉它\u0026quot;把红色积木放到蓝色积木上面\u0026quot;，它就能理解并执行。\n人: Pick up a big red block. SHRDLU: OK. 人: Find a block which is taller than the one you are holding. SHRDLU: I can\u0026#39;t find one. 人: Why did you pick up that block? SHRDLU: To clear off the red block so I could put it on the blue block. 这看起来太像\u0026quot;理解\u0026quot;了！但问题是——SHRDLU 的世界只有几十种积木和几百条手工编写的规则。当研究者试图把它扩展到真实世界时，一切都崩塌了。\n40 年的规则路线，三个致命问题 从 1950 年代到 1990 年代，几代语言学家和 AI 研究者投入了巨大的努力，试图用语法树、语义角色标注、格语法（Fillmore, 1968）、知识图谱等工具来形式化自然语言。\n他们遇到了三个无法逾越的障碍：\n脆弱性 — 规则只能覆盖有限场景。\"我用苹果手机拍了一个苹果\"——哪个苹果是水果？ 组合爆炸 — 自然语言的灵活性远超规则的覆盖能力。每加一条规则，可能与已有规则冲突。 歧义处理 — \"我看见她用望远镜\"——谁在用望远镜？规则无法判断。 IBM 语音识别团队的 Fred Jelinek 说过一句著名的话（大约 1988 年）：\n\u0026ldquo;Every time I fire a linguist, the performance of the speech recognizer goes up.\u0026rdquo;\n每开除一个语言学家，语音识别的表现就进步一点。\n这句话虽然刻薄，但指向了一个深刻的范式转换：语言也许不应该被描述为规则，而应该被理解为统计结构。\n规则路线的核心问题是：它试图从上到下地定义语言。但如同符号接地问题所揭示的，定义本身就是语言的一部分——你在用语言来定义语言的规则，这又是一个死循环。\n然后有人提出了一个完全不同的思路。\n第三章：破局——\u0026ldquo;你可以通过同伴认识一个词\u0026rdquo; 绕过死循环的天才直觉 同样是 1957 年，英国语言学家 J.R. Firth 说了一句改变了整个自然语言处理方向的话：\n\u0026ldquo;You shall know a word by the company it keeps.\u0026rdquo;\n你可以通过一个词的同伴来认识它。\n这句话的革命性在于：它不再试图定义\u0026quot;苹果是什么\u0026quot;。\n它只观察\u0026quot;苹果\u0026quot;经常和谁一起出现：\n\"苹果\" + 红色、甜、水果、树、秋天、果园 → 一种水果 \"苹果\" + iPhone、发布会、乔布斯、万亿市值 → 一家科技公司 \"苹果\" + 亚当、夏娃、伊甸园、禁果 → 一个文化符号 意义不是预先定义的，意义是从大量上下文中涌现的。 这就是分布式假说（Distributional Hypothesis）。\n有趣的是，哲学家 Ludwig Wittgenstein 在 1953 年的《哲学研究》中独立得出了类似结论。他的早期哲学（《逻辑哲学论》, 1921）曾相信语言可以精确地映射世界——每个词对应一个事物，就像规则路线所做的。但他的后期哲学完全推翻了自己：\n\u0026ldquo;一个词的意义就是它在语言中的使用。\u0026rdquo; — Wittgenstein, Philosophical Investigations, §43\n意义不在于指代，而在于使用的模式。一个词的含义不是从它指向的\u0026quot;对象\u0026quot;中获得的，而是从它参与的所有\u0026quot;语言游戏\u0026quot;中涌现的。\n从 Chomsky 到 Firth，从早期 Wittgenstein 到后期 Wittgenstein，从规则到统计——这不仅是 AI 的范式转换，也是人类对语言本质认识的一次深刻转向。\n它和规则路线的区别在于：规则路线试图定义语言，分布式假说试图观察语言。前者是自顶向下的演绎，后者是自底向上的归纳。\n从哲学到工程：Word2Vec 2013 年，Google 的 Tomas Mikolov 团队将这个语言学直觉变成了工程现实——Word2Vec。\n方法出奇地简单：让模型读海量文本，通过预测上下文来学习每个词的向量表示。当你把成千上万的词放进同一个高维空间，惊人的事情发生了：\n国王 - 男 + 女 ≈ 女王 巴黎 - 法国 + 日本 ≈ 东京 \u0026ldquo;性别\u0026quot;竟然是高维空间中的一个方向。\u0026ldquo;首都关系\u0026quot;也是一个方向。 语义关系被自动编码为空间中的几何结构。\n这个发现震惊了整个学术界。它证明了 Firth 说的是对的：你确实可以仅仅通过\u0026quot;同伴关系\u0026quot;来获得有意义的词表示——而且这种意义甚至具有线性几何结构。\n但是，这个方法有一个致命的问题。\n第四章：一个向量装不下多重含义 白光困境 回到我们的\u0026quot;苹果\u0026rdquo;。Word2Vec 给每个词一个固定的向量。但：\n\u0026#34;苹果好甜\u0026#34; → 苹果 = 水果 \u0026#34;苹果发布会\u0026#34; → 苹果 = 科技公司 \u0026#34;偷吃了禁果\u0026#34; → 苹果 = 文化符号 同一个词，三个完全不同的含义。一个固定的向量怎么装得下？\n这就像白光包含了所有颜色。 Word2Vec 的苹果向量是一束白光——所有含义混在一起。你需要一个棱镜，根据上下文把它分解成特定的颜色。\n这个困境让人想起 Borges 的短篇小说《巴别图书馆》(1941)——一个包含所有可能书籍的图书馆。每一本书都由随机字母排列而成。其中必然存在解释宇宙奥秘的书、你一生故事的完整记录、以及一切真理。但这些信息无法使用——因为它们淹没在天文数字的噪声中，你没有任何办法找到那本你需要的书。\n叠加态的 embedding 就像巴别图书馆——信息存在，但无法直接取用。你需要一个\u0026quot;索引系统\u0026quot;来检索。QKV 就是这个索引。\n其实，初始 embedding 并非完全无能——它确实编码了所有这些含义，只是以一种**叠加态（Superposition）**的形式。Anthropic 在 2022 年的研究（Toy Models of Superposition）发现：\n神经网络可以在 N 维空间中编码远多于 N 个特征。不常同时激活的特征可以共享维度——就像你可以在同一间教室里安排不同时间的课。\n\u0026ldquo;苹果\u0026quot;的 embedding 之所以能装下\u0026quot;水果\u0026quot;\u0026ldquo;品牌\u0026quot;\u0026ldquo;文化\u0026quot;等多重含义，正是因为这些含义在日常使用中很少同时被需要，所以它们可以被近似正交地叠加在同一个向量中。\n问题是：叠加态的向量不能直接用。你需要根据上下文，让它\u0026quot;坍缩\u0026quot;到具体的含义。\n这个需求——动态的、上下文相关的词义表示——就是 Attention 要解决的核心问题。\n第五章：为什么线性变换就够了？ 语义空间的几何秘密 在跳到 QKV 之前，我们需要理解一个深刻的事实。回到 Word2Vec 的那个发现：\n国王 - 男 + 女 ≈ 女王 这个等式意味着什么？它意味着**\u0026ldquo;性别\u0026quot;是高维空间中的一条直线（一个方向）**。\u0026ldquo;王权\u0026quot;是另一个方向。\u0026ldquo;年龄\u0026quot;又是另一个方向。\n这叫做线性表示假说（Linear Representation Hypothesis）：\n语义特征在高维空间中沿着线性方向排列。\n概念之间的关系被编码为向量的加减。\n这个假说有一个重大的工程推论：\n如果语义特征是线性排列的，那么在这些特征之间做选择、组合、重新对齐的最自然工具是什么？\n线性变换——也就是矩阵乘法。\n一个矩阵 W × x 在几何上做三件事：\n旋转 — 换一个角度看同一个东西 投影 — 只保留某些维度（忽略不相关的信息） 缩放 — 放大或缩小某些特征的权重 语义空间中的关系是线性的，而矩阵正是线性变换的工具——QKV 的线性投影之所以有效，恰恰是因为语义结构本身就是线性的。\n但线性投影只是数学工具。要理解 QKV 为什么长这个样子，我们还需要理解另一层约束——机器的世界长什么样。\n第六章：机器世界的设计约束——为什么是 Attention 一切皆数字 在人的世界里，理解语言可以依赖眼睛看到的颜色、舌头尝到的味道、皮肤感受到的温度。但机器没有这些。\n对机器来说，世界上的一切——文字、图像、声音——都是数字序列。\n一段文字是一串 token ID。一张图片是一个像素矩阵。一段语音是一列振幅采样值。机器要处理\u0026quot;苹果好甜\u0026rdquo;，看到的不过是 [8943, 1762, 4521] 这样的数字。\n这意味着，机器处理语言的方案必须能在纯数字的世界里运行。这施加了一组严格的设计约束：\n约束一：可并行 2017 年之前，处理序列的主流工具是 RNN（循环神经网络）——它必须从左到右逐词处理，前一个词处理完才能处理下一个。\n但 GPU 的本质是并行计算。如果模型必须一步一步走，GPU 的几千个核心大部分时间都在闲着。\nAttention 的关键创新：每个词可以同时和所有其他词计算关系。 这使得 GPU 可以全速运转——这也是 Attention Is All You Need 的真正含义：不再需要 RNN 的顺序处理。\n约束二：可微分 机器学习的核心是梯度下降——通过反向传播计算误差，然后微调参数。这要求整个计算流程必须是可微分的。\n早期也有研究者尝试过\u0026quot;硬注意力（Hard Attention）\u0026quot;——直接选择最相关的那一个词。但\u0026quot;选择\u0026quot;是离散操作，无法求梯度。\nSoftmax 是关键：它把离散的\u0026quot;选择\u0026quot;变成连续的\u0026quot;加权\u0026rdquo;。 不是\u0026quot;选不选\u0026rdquo;，而是\u0026quot;多关注还是少关注\u0026rdquo;。这使得梯度可以端到端地流动，让模型通过训练自动学会该关注什么。\n约束三：自注意力 = 内容可寻址 传统计算机的内存是按地址寻址的：你知道数据在第几行第几列，你就能找到它。但语言中的关联不是按位置的——\u0026ldquo;苹果\u0026quot;需要根据内容找到和它相关的词。\n自注意力实质上是一种内容可寻址的记忆系统。 Q 是查询内容，K 是存储标签，V 是存储的值——这与 Graves 等人（2014）提出的**神经图灵机（Neural Turing Machine）**的读取头如出一辙。\n约束四：位置需要显式注入 RNN 天然知道词的顺序（因为它逐步处理）。但 Attention 对所有词一视同仁——如果不加干预，\u0026ldquo;狗咬人\u0026quot;和\u0026quot;人咬狗\u0026quot;对 Attention 来说完全一样。\n因此 Transformer 需要位置编码（Positional Encoding）——用正弦函数或可学习的向量，把\u0026quot;第几个词\u0026quot;这个信息显式地加入到 embedding 中。\n这些约束决定了 QKV 的形态 回顾这四个约束：\n要处理纯数字序列 → 需要向量运算 要并行计算 → 不能逐步处理，需要全局交互 要可微分 → softmax 取代硬选择 要按内容寻址 → Q 查询、K 匹配、V 返回 要知道顺序 → 位置编码 但这里需要停下来，强调一件容易被忽略的事：\n这些约束告诉我们 QKV 的形状，但没有告诉我们 QKV 的内容。\nW_Q、W_K、W_V 三个矩阵在模型初始化时是随机噪声。它们不包含任何语言知识——没有人在里面编码\u0026quot;甜和水果有关\u0026quot;或\u0026quot;发布会和科技公司有关\u0026rdquo;。\n人类设计者提供的不是答案，而是一个允许答案涌现的空结构。\n这才是 Transformer 与规则路线最深层的分野：\n规则路线： 人类编码知识 → 机器执行\nTransformer： 人类编码学习的框架 → 数据教会机器 → 知识从框架中涌现\nQKV 就像 DNA——DNA 不编码\u0026quot;如何走路\u0026rdquo;，它编码\u0026quot;如何长出一个能学会走路的身体\u0026rdquo;。W_Q、W_K、W_V 不编码任何语义关系，它们编码的是\u0026quot;如何从数据中学会语义关系\u0026quot;的能力。\n那么，是什么赋予了这些空矩阵以灵魂？\n不可或缺的三要素 语料——人类文明的压缩\nGPT-3 训练用了约 3000 亿个 token——大致相当于整个互联网的文本、几万本书、数百万篇论文。这些文本不只是\u0026quot;数据\u0026rdquo;，它是人类几千年来用语言记录下的一切思考、对话、争论、叙述和知识。\n没有这些语料，QKV 的矩阵就只是随机噪声，永远无法学会任何语义关系。语料是 Transformer 的\u0026quot;经验\u0026rdquo;，是它的\u0026quot;一生\u0026quot;。\n算力——让涌现成为可能\n梯度下降需要在几十亿参数的空间中寻找最优点。GPT-3 的训练消耗了约 3640 PetaFLOP-days 的算力——相当于一台普通笔记本电脑运算约一千万年。\n没有这样的算力，即使有完美的框架和无限的数据，模型也无法完成学习。算力是涌现的催化剂。\n自由度——不预设答案\n这也许是最深刻的一点。Transformer 的设计者刻意不在模型中硬编码任何语言规则。没有语法树，没有词性标注，没有语义角色。所有的参数都是可学习的——模型拥有极高的自由度来自行发现结构。\n这种\u0026quot;空白\u0026quot;不是缺陷，而是设计哲学。正是因为不预设答案，模型才能找到人类可能想不到的模式——比如在高维空间中自动形成线性语义方向。\n框架（QKV 结构）× 语料（人类文明）× 算力（计算规模）× 自由度（不预设答案）\n四者缺一不可。缺少任何一个，都不会有 ChatGPT。\n第七章：QKV 的运作——从点积到含义重建 空框架如何被数据填充 我们已经知道，QKV 的矩阵在初始化时什么都不知道。那么，训练之后它们学会了什么？让我们回到那个句子：\n\u0026ldquo;苹果好甜\u0026rdquo;\n当你读到\u0026quot;苹果\u0026quot;时，你的大脑做了什么？\n1. 你看到\u0026#34;苹果\u0026#34; → 心里产生一个问题：\u0026#34;这里的苹果是什么意思？\u0026#34; 2. 你扫描上下文 → 看到\u0026#34;甜\u0026#34;，\u0026#34;甜\u0026#34;举手说：\u0026#34;我和水果义很相关！\u0026#34; 3. 你从\u0026#34;甜\u0026#34;那里获取信息 → 确认这是水果苹果，而且在说口感 有趣的是，训练后的 Transformer 做的事情几乎一模一样。没有人教它这三步——它从海量文本中自己发现了这个模式。Q、K、V 三个角色，是从数据中涌现出来的：\nQ (Query) — 查询\n\"苹果\"发出的问题：我在这个句子里该是什么意思？ K (Key) — 键\n每个上下文词亮出的名牌：我能提供什么类型的信息？ V (Value) — 值\n名牌匹配后，实际递出的信息：我的具体语义内容。 为什么需要三个矩阵，而不是一个？ 这是 QKV 设计中最关键的洞察：\n同一个词在不同角色下需要呈现不同的侧面。\n当\u0026quot;甜\u0026quot;被别人搜索时（作为 Key），它应该突出\u0026quot;我与食物/味觉相关\u0026quot; 当\u0026quot;甜\u0026quot;提供信息时（作为 Value），它应该提供\u0026quot;正面口感、糖分\u0026quot;等具体语义 当\u0026quot;甜\u0026quot;自己提问时（作为 Query），它可能在问\u0026quot;谁是我描述的对象？\u0026quot; 同一个词，三个角色，三个不同的投影——就像一束白光穿过三面棱镜，折射出不同颜色的光。\n棱镜本身是透明的——W_Q、W_K、W_V 初始时什么都不知道。是海量文本中的统计规律，通过梯度下降，一点一点打磨了这三面棱镜的角度，使得同一束白光能在合适的方向上折射出合适的颜色。\n完整的计算流程 让我们完整地走一遍\u0026quot;苹果好甜\u0026quot;中\u0026quot;苹果\u0026quot;获取上下文含义的过程：\n第一步：生成 Q、K、V\n每个词的 embedding 分别乘以三个矩阵 W_Q、W_K、W_V，得到三组向量：\n苹果 → Q_苹果, K_苹果, V_苹果 好 → Q_好, K_好, V_好 甜 → Q_甜, K_甜, V_甜 第二步：Q·K 点积 = 相似度\n\u0026ldquo;苹果\u0026quot;的 Q 向量与所有词的 K 向量做点积，得到\u0026quot;注意力分数\u0026rdquo;：\nQ_苹果 · K_苹果 = 0.2 （和自己的相关度） Q_苹果 · K_好 = 0.1 （\u0026#34;好\u0026#34;是修饰词，相关度低） Q_苹果 · K_甜 = 0.8 （\u0026#34;甜\u0026#34;直接说明苹果的属性，高度相关） 第三步：Softmax = 权重\n原始分数通过 softmax 归一化为概率分布：\nsoftmax([0.2, 0.1, 0.8]) → [0.22, 0.18, 0.60] \u0026ldquo;甜\u0026quot;获得 60% 的注意力权重——这就是 Attention 的\u0026quot;注意力\u0026rdquo;。\n第四步：加权聚合 V = 新含义\n按权重混合所有词的 V 向量：\n苹果\u0026#39; = 0.22 × V_苹果 + 0.18 × V_好 + 0.60 × V_甜 这个新的向量 苹果' 不再是那个模糊的叠加态——它被\u0026quot;甜\u0026quot;主导，已经坍缩到了水果的含义。\n三个矩阵 W_Q、W_K、W_V 做的事情就是：把同一个高维 embedding 旋转、投影到三个不同的子空间，让每个词在每个角色下都有最合适的表示。\n请注意这里最不可思议的地方：没有任何一行代码告诉模型\u0026quot;甜和水果有关\u0026quot;。 模型只是在训练中见过无数次\u0026quot;苹果\u0026quot;和\u0026quot;甜\u0026quot;在同一个句子里出现，见过无数次\u0026quot;苹果\u0026quot;和\u0026quot;发布会\u0026quot;在另一类句子里出现。梯度下降自动调整了 W_Q、W_K、W_V 的参数，使得\u0026quot;甜\u0026quot;的 K 向量恰好和\u0026quot;苹果在水果语境中\u0026quot;的 Q 向量对齐。\n这些语义关系不是被编程进去的，是从人类几千年的语言使用中被\u0026quot;蒸馏\u0026quot;出来的。\n信息检索的类比 QKV 的命名直接来自数据库/信息检索的概念：\n你在搜索引擎输入 Query → \u0026#34;苹果是什么水果？\u0026#34; 数据库每条记录有 Key → \u0026#34;苹果：水果类，蔷薇科\u0026#34; 匹配后返回 Value → \u0026#34;苹果，落叶乔木，果实球形……\u0026#34; Transformer 的创新是：让这个\u0026quot;搜索\u0026quot;过程可微分、可学习。 Q、K、V 不是人工定义的索引和记录，而是模型在海量文本中自己学出来的。\n第八章：高维空间中的语义坍缩 从叠加态到确定态 现在我们可以完整地描述这个过程：\nAttention 之前： \u0026ldquo;苹果\u0026quot;的 embedding 是叠加态——水果、品牌、文化符号等所有含义压缩在一个向量中\nAttention 之后： 通过 QKV 与上下文的交互，\u0026ldquo;苹果\u0026quot;的向量被重写——它从叠加态\u0026quot;坍缩\u0026quot;到了特定上下文对应的含义\n\u0026ldquo;苹果好甜\u0026rdquo; → 向量向\u0026quot;水果\u0026quot;方向移动\n\u0026ldquo;苹果发布会\u0026rdquo; → 向量向\u0026quot;科技公司\u0026quot;方向移动\n多头注意力：同时关注多种关系 一组 QKV 只能关注一种类型的关系。但语言中的关系是多维的：\n\u0026#34;小明昨天在学校吃了一个苹果\u0026#34; 需要同时关注： - 语法关系：谁吃了什么？（小明 → 吃 → 苹果） - 时间关系：什么时候？（昨天） - 地点关系：在哪里？（学校） - 语义消歧：哪个苹果？（甜 → 水果义） 这就是**多头注意力（Multi-Head Attention）**的设计动机——多个平行的 QKV 组，每个头学习关注不同类型的关系。\nResidual Stream：信息总线 Transformer 的每一层不是\u0026quot;处理后传给下一层\u0026rdquo;，而是：\nx → x + Attention(x) → x + Attention(x) + FFN(x) → ... 这个 + 是关键。向量 x 是一条信息总线：每个 Attention 头读取总线上的某些信息，写回新的信息。不同的头关注不同的维度，最终的向量是所有层所有头的贡献之和。\n第九章：趋同演化——当硅基重新发现碳基的方案 婴儿也是统计学习者 我们已经看到，机器通过统计共现来学习语言。但令人惊讶的是——人类婴儿可能也在做类似的事情。\n1996 年，心理学家 Jenny Saffran 做了一个优美的实验：她给 8 个月大的婴儿播放一串连续的无意义音节流（如 \u0026ldquo;bidakupado\u0026hellip;\u0026quot;），其中某些音节组合出现的频率更高。\n结果令人震惊：仅仅 2 分钟后，婴儿就能区分高频组合和低频组合。 他们在没有任何语法规则、没有任何明确教导的情况下，纯粹通过统计规律发现了\u0026quot;词\u0026quot;的边界。\n这和 Word2Vec 的核心思想惊人地一致——通过共现频率来学习结构。\n预测机器 更深层的联系来自神经科学。Karl Friston 的自由能原理和 Andy Clark 的**\u0026ldquo;预测大脑\u0026quot;理论**提出：\n大脑的核心功能不是\u0026quot;反应\u0026rdquo;，而是\u0026quot;预测\u0026rdquo;。\n大脑不断预测下一个感觉输入会是什么，然后用实际输入和预测的差异（预测误差）来更新自己的模型。\n这和 GPT 的训练目标一模一样——预测下一个 token，然后用预测误差（loss）来更新权重。\n维度 人脑 LLM 核心任务 预测下一个感觉输入 预测下一个 token 学习信号 预测误差（surprise） 交叉熵损失（loss） 表示方式 分布式神经元激活 分布式向量表示 结构 层级化（V1→V2→V4→IT） 层级化（Layer 1→2→\u0026hellip;→N） 上下文整合 注意力选择 + 工作记忆 Self-Attention 实验证据 这不仅仅是类比。Schrimpf 等人（2021）发现，GPT-2 的中间层表示竟然能预测人脑语言区域的 fMRI 激活模式——越好的语言模型，预测人脑活动的能力也越强。\nGoldstein 等人（2022）更进一步：他们发现当人类听故事时，大脑语言区域的神经活动与 GPT-2 逐词预测时的内部表示高度相关。\n趋同演化假说 在生物学中，有一个现象叫趋同演化（Convergent Evolution）——眼睛在动物进化中独立出现了几十次，因为\u0026quot;看见\u0026quot;这个功能对生存太重要了。不同的基底（章鱼的眼睛和人的眼睛结构完全不同），因为面对同一个问题（需要感知光线），收敛到了类似的方案。\n语言处理可能也是如此：\n不同的基底（生物神经元 vs 矩阵运算），因为处理同一个任务（预测序列中的下一个元素），可能收敛到了类似的内部表示。\n当然，关键差异依然存在：\n数据效率：儿童用大约 1000 万词就能流利说话，GPT-3 训练用了 3000 亿词——差了 3 万倍 具身性：人通过身体与世界互动来接地语义，LLM 只有文本 社会学习：人在对话和互动中学习，LLM 从静态语料中学习 但这些差异恰恰让趋同更有意义——即使学习方式如此不同，最终的内部表示却如此相似，说明这种表示方式可能是处理序列预测问题的某种\u0026quot;最优解\u0026rdquo;。\n一个更深的问题： 为什么\u0026quot;预测下一个\u0026quot;这么简单的目标，会产生如此丰富的内部表示？也许是因为，要真正预测好下一个词，你必须理解因果、时间、意图、常识——你必须建立一个世界模型。 预测不是智能的副产品，预测本身可能就是智能的核心机制。\n结语：回到那个死循环 让我们回到最初的问题：语言是什么？\n我们走过了一条漫长的路：\n语言是对世界的压缩 ↓ 但符号不能自我解释 — 符号接地问题 (Harnad, 1990) ↓ 人类第一次尝试：用规则教机器 — 40 年，失败 ↓ 破局：意义 = 上下文共现 — 分布式假说 (Firth, 1957) ↓ 第一次实现：Word2Vec — 一个词一个固定向量 ↓ 问题：\u0026#34;苹果\u0026#34;有多重含义，一个向量不够 ↓ 机器的约束：纯数字 + 可并行 + 可微分 + 内容可寻址 ↓ 人类设计了一个空框架：QKV 结构 — 不编码知识，编码学习的能力 ↓ 语料（人类文明）× 算力（计算规模）× 自由度（不预设答案） ↓ 知识从框架中涌现 → Attention 学会了上下文驱动的含义重建 ↓ 惊人发现：这个方案与人脑的语言处理高度趋同 一个词的 embedding 就像白光——它包含所有颜色。QKV 的三个矩阵就像三个棱镜，把白光分解成不同的光谱。但这些棱镜不是人工打磨的——它们是从数十亿句人类语言中，被梯度下降自动雕刻出来的。人类提供了玻璃坯料和打磨工具，但棱镜的形状是数据决定的。\n最后三个问题留给读者：\n语言是什么？ → 也许不是规则，而是统计结构——意义从共现中涌现。Wittgenstein 晚年认为，语言没有固定本质，只有无数交织的\u0026quot;使用模式\u0026quot;。Transformer 用数学实现了这个哲学直觉。\n理解是什么？ → 也许只是高维空间中的模式匹配——能够在正确的上下文中，将叠加态坍缩到正确的含义。OpenAI 联合创始人 Ilya Sutskever 说过：\u0026ldquo;Compression is understanding.\u0026quot;——如果一个系统能用更少的 bits 描述同样的文本，它就在某种意义上\u0026quot;理解\u0026quot;了那些文本。LLM 所做的，本质上就是对人类语言的极致压缩。\n人和机器的关系？ → 不同的道路，类似的终点——趋同演化的又一个实例。也许\u0026quot;智能\u0026quot;不是某种特定基底的专利，而是任何足够复杂的系统在面对序列预测任务时，都会涌现出的几何结构。\nBender \u0026amp; Koller (2020) 在论文 \u0026ldquo;Climbing towards NLU\u0026rdquo; 中提出：LLM 只是在操纵语言的\u0026quot;形式\u0026rdquo;（form），没有接触到真正的\u0026quot;意义\u0026quot;（meaning）——它们是\u0026quot;随机鹦鹉\u0026quot;（stochastic parrots）。但反对者问：如果一个系统在功能上与\u0026quot;理解\u0026quot;无法区分，那\u0026quot;真正的理解\u0026quot;这个概念本身是否还有意义？ 这是功能主义与本质主义之间古老的哲学争论，在 AI 时代重新燃起。\n也许答案是——这本身就不是一个有答案的问题，而是一面镜子。 我们在追问\u0026quot;机器是否理解语言\u0026quot;的过程中，被迫重新思考自己是如何理解语言的。而正是这种思考本身，构成了意义。\n参考文献 Harnad, S. (1990). The Symbol Grounding Problem. Physica D, 42, 335-346. Firth, J.R. (1957). A Synopsis of Linguistic Theory 1930-1955. — \u0026ldquo;You shall know a word by the company it keeps\u0026rdquo; Chomsky, N. (1957). Syntactic Structures. Mouton. — 形式文法 Winograd, T. (1971). Procedures as a Representation for Data in a Computer Program for Understanding Natural Language. MIT. — SHRDLU Fillmore, C.J. (1968). The Case for Case. — 格语法 Mikolov, T. et al. (2013). Efficient Estimation of Word Representations in Vector Space. — Word2Vec Mikolov, T. et al. (2013). Linguistic Regularities in Continuous Space Word Representations. — king-queen 线性关系 Vaswani, A. et al. (2017). Attention Is All You Need. NeurIPS. — Transformer / QKV Bahdanau, D. et al. (2015). Neural Machine Translation by Jointly Learning to Align and Translate. — Attention 机制前身 Graves, A. et al. (2014). Neural Turing Machines. — 神经图灵机 / 内容可寻址记忆 Elhage, N. et al. (2022). Toy Models of Superposition. Anthropic. — 叠加假说 Elhage, N. et al. (2021). A Mathematical Framework for Transformer Circuits. Anthropic. — Residual stream 理论 Park, K. et al. (2023). The Linear Representation Hypothesis and the Geometry of Large Language Models. — 线性表示假说 Saffran, J.R. et al. (1996). Statistical Learning by 8-Month-Old Infants. Science. — 婴儿统计学习 Friston, K. (2010). The Free-Energy Principle: A Unified Brain Theory? Nature Reviews Neuroscience. — 自由能原理 Clark, A. (2013). Whatever Next? Predictive Brains, Situated Agents, and the Future of Cognitive Science. — 预测大脑 Schrimpf, M. et al. (2021). The Neural Architecture of Language: Integrative Modeling Converges on Predictive Processing. PNAS. — LLM 预测人脑活动 Goldstein, A. et al. (2022). Shared Computational Principles for Language Processing in Humans and Deep Language Models. Nature Neuroscience. — GPT-2 与人脑相关性 Jelinek, F. (1988). 引述于 The Handbook of Computational Linguistics. — \u0026ldquo;每开除一个语言学家\u0026rdquo; Wittgenstein, L. (1953). Philosophical Investigations. — \u0026ldquo;一个词的意义就是它在语言中的使用\u0026rdquo; (§43) Borges, J.L. (1941). The Library of Babel. — 巴别图书馆：包含一切可能书籍的图书馆 Bender, E.M. \u0026amp; Koller, A. (2020). Climbing towards NLU: On Meaning, Form, and Understanding in the Age of Data. ACL. — \u0026ldquo;随机鹦鹉\u0026quot;之争 本文首发于「AI 学习笔记」博客：https://Jason-Azure.github.io/ai-blog/\n微信公众号：AI-lab学习笔记\n延伸阅读：Attention 机制零基础拆解 · 矩阵——空间的变形术\n","permalink":"https://jason-azure.github.io/ai-blog/posts/why-qkv/","summary":"语言是对世界的压缩，但用语言解释语言是死循环。40 年的规则尝试失败后，分布式假说绕过了这个问题，而 QKV 是它的工程终局。一篇从哲学到代码、从碳基到硅基的探索之旅。","title":"从语言的本质到 Attention 的诞生——QKV 为什么长这样"},{"content":"引言 当你在 ChatGPT 输入\u0026quot;请解释量子力学\u0026quot;，它是怎么一步步生成回答的？\n今天我们用一个 可以完全看透的小模型，把这个过程从头到尾拆给你看。不是示意图，不是模拟数据——是直接打开模型内部，提取每一步的真实计算结果。\n我们的工具：\n模型： 用《西游记》全文训练的 nanoGPT（4.3M 参数，4 层 Transformer） 输入： \u0026ldquo;悟空道\u0026rdquo; 目标： 看模型如何预测下一个字 这个模型和 GPT-4 使用完全相同的架构（Transformer），区别只在规模。理解了这个小模型，就理解了所有大模型的本质。\n全局架构总览 在深入每一步之前，先看完整的数据流路径：\n输入文本\n\"悟空道\" ↓ ① Tokenization — 字符 → Token ID（词表: 4487） ↓ ② Embedding 嵌入 — Token ID → 向量（256 维）\nToken Embedding (4487×256) + Position Embedding (128×256) ↓ ③ Transformer × 4 层 — 神经网络核心\nBlock 0: Attention(4头) → MLP(256→1024→256)\nBlock 1: Attention(4头) → MLP(256→1024→256)\nBlock 2: Attention(4头) → MLP(256→1024→256)\nBlock 3: Attention(4头) → MLP(256→1024→256) ↓ ④ 输出层 — 256 维 → Logits（4487 个）\nLogits → ÷Temperature → Softmax → 概率分布 ↓ ⑤ 采样 — Top-K 过滤 → 按概率随机选择 ↓ ⑥ 输出新字符 — Token ID → 解码 → 文字\n↻ 拼回输入，重复以上过程（自回归） 接下来逐步拆解每个环节，展示真实的中间数据。\n阶段 1：原始文本输入 人类输入的文字，对计算机来说只是一串字节。先看看每个字符的 UTF-8 编码：\n字符 UTF-8 (十六进制) UTF-8 (二进制) 悟 E6 82 9F 11100110 10000010 10011111 空 E7 A9 BA 11100111 10101001 10111010 道 E9 81 93 11101001 10000001 10010011 中文每个字占 3 个字节，英文每个字母只占 1 个字节。 这是 UTF-8 编码的特点。\n阶段 2：Tokenization — 文字变数字 LLM 不直接处理字节，而是将文本转换为 Token ID（数字编号）。\n我们的模型使用字符级分词——每个字符就是一个 token，词表大小 4487 个唯一字符。\n字符 查表操作 Token ID 悟 stoi['悟'] 1342 空 stoi['空'] 2784 道 stoi['道'] 3915 结果：\u0026quot;悟空道\u0026quot; → [1342, 2784, 3915]\nstoi 是 \u0026ldquo;String TO Integer\u0026rdquo; 的缩写，就是一个字符→数字的查找表，在数据准备阶段从训练语料中自动构建。\nToken 的大小不是固定的 分词方式 一个 Token 代表什么 字符级（本模型） 1 个字符 = 1 个 token BPE（GPT-4） 1 个 token ≈ 3-4 个英文字母 或 1-2 个汉字 Token ID 本身用 16-bit 整数存储（2 字节），但它代表的原文可长可短。\n阶段 3：Token ID → 二进制 → 张量 Token ID 是整数，计算机用二进制存储。然后打包成 PyTorch 张量（Tensor）——这才是进入模型的真正输入。\n字符 Token ID 二进制 (16-bit) 悟 1342 0000 0101 0011 1110 空 2784 0000 1010 1110 0000 道 3915 0000 1111 0100 1011 torch.tensor([[1342, 2784, 3915]]) # 形状: [1, 3] (batch=1, seq_len=3) 数据变换路径： 文字世界 → 数字世界 → 二进制 → 张量 (Tensor)\n阶段 4：Embedding — 给每个 Token 一张\u0026quot;数字身份证\u0026quot; 每个 Token ID 在 Embedding 矩阵中查找对应的一行向量。矩阵形状：(4487 × 256)——词表中每个字符都有一个 256 维的向量表示。\nToken Embedding（语义嵌入） 直接调用 model.transformer.wte(idx)，即 nn.Embedding 查表：\n字符 Token ID 向量（前 6 维 / 共 256 维） 悟 1342 [-0.039, +0.010, -0.097, -0.018, -0.007, -0.060, ...] 空 2784 [+0.083, -0.061, -0.018, +0.049, +0.016, +0.015, ...] 道 3915 [+0.070, -0.041, +0.034, +0.092, +0.072, +0.032, ...] Position Embedding（位置编码） 让模型知道字的顺序。调用 model.transformer.wpe(pos)：\n位置 向量（前 6 维 / 共 256 维） 0 [+0.053, -0.065, +0.032, -0.008, -0.039, -0.024, ...] 1 [-0.010, -0.038, +0.014, +0.032, -0.019, +0.020, ...] 2 [+0.018, -0.038, +0.027, -0.070, -0.012, -0.066, ...] 两者相加 → 每个 token 的初始表示，输出形状 [1, 3, 256]。\n阶段 4B：Embedding 是怎么来的？ 一开始是随机数，通过训练逐渐学出有意义的值。\n训练前后对比 指标 随机初始化 训练后 变化 标准差 0.0200 0.0604 3.0x 值域 [-0.093, 0.105] [-0.453, 0.386] 扩大 向量 L2 范数（均值） 0.320 0.916 2.9x 训练后，向量空间扩大了约 3 倍，常用字的向量更大更\u0026quot;自信\u0026quot;，罕见字的向量较小。\n语义相似度的涌现 同义词组：说、道、言、曰（都表示\u0026quot;说话\u0026quot;）\n字符对 随机初始化 训练后 变化 说 vs 道 -0.003 +0.240 靠近 ↑ 说 vs 言 -0.021 +0.368 靠近 ↑ 道 vs 曰 -0.055 +0.175 靠近 ↑ 场景词组：山、水、天（都是自然/场景词）\n字符对 随机初始化 训练后 变化 山 vs 水 -0.033 +0.394 靠近 ↑ 山 vs 天 +0.032 +0.358 靠近 ↑ 跨组对比（\u0026ldquo;说话\u0026quot;类 vs \u0026ldquo;自然\u0026quot;类）\n字符对 随机初始化 训练后 变化 说 vs 山 +0.054 -0.113 远离 ↓ 说 vs 水 -0.013 -0.065 远离 ↓ 关键发现： 训练前所有向量都是随机噪声（相似度接近 0）。训练后，语义相关的字自动靠近，不相关的字保持距离甚至远离。没有人告诉模型这些字\u0026quot;意思相近\u0026rdquo;——这个语义结构完全是从数据中涌现的。\n从预训练到对齐 大型 LLM 的 Embedding 经历多个训练阶段：\n随机初始化 → 所有向量都是噪声，无任何语义 预训练（本模型所在阶段） → 从语料中学到共现关系（说≈道，山≈水≈天） 指令微调 (SFT) → 学会\u0026quot;问题→回答\u0026quot;的模式，Embedding 微调 RLHF/DPO 对齐 → 学会人类偏好，有害词的向量被推远 每个阶段都在现有基础上继续调整，不是重新来过。\n阶段 5：Transformer — LLM 的核心 数据现在要穿过 4 层 Transformer Block。每一层都包含 Self-Attention（注意力）和 MLP（前馈网络）。\nTransformer 架构 输入 (1×3×256) ↓ Block 0: LayerNorm → Attention (4 头×64 维) → 残差连接\nLayerNorm → MLP (256→1024→256) → 残差连接 ↓ Block 1: LayerNorm → Attention (4 头×64 维) → 残差连接\nLayerNorm → MLP (256→1024→256) → 残差连接 ↓ Block 2: LayerNorm → Attention (4 头×64 维) → 残差连接\nLayerNorm → MLP (256→1024→256) → 残差连接 ↓ Block 3: LayerNorm → Attention (4 头×64 维) → 残差连接\nLayerNorm → MLP (256→1024→256) → 残差连接 ↓ Final LayerNorm → 输出 (1×3×256) 逐层数据变化 层 操作 输出形状 均值 标准差 最大值 输入 Embedding + Position [1, 3, 256] -0.0004 0.0604 0.2147 Block 0 Attn + MLP [1, 3, 256] 0.0217 1.2726 4.0916 Block 1 Attn + MLP [1, 3, 256] 0.0098 1.8565 5.4841 Block 2 Attn + MLP [1, 3, 256] 0.0031 2.2551 7.2026 Block 3 Attn + MLP [1, 3, 256] -0.0009 2.2807 7.4441 输出 Final LayerNorm [1, 3, 256] -0.0004 1.3093 3.8789 观察标准差变化：数据经过每一层都在被变换和精炼，信息逐层浓缩。\nSelf-Attention：模型在\u0026quot;看\u0026quot;什么？ 第 0 层、第 0 个注意力头的 Attention 矩阵（3×3）。每一行表示该位置对前面所有位置的关注程度（总和=1.0）：\n悟 空 道 悟 1.00 - - 空 0.56 0.44 - 道 0.51 0.32 0.18 关键设计——因果掩码（Causal Mask）： 每个字只能看到自己和前面的字，不能偷看后面的。矩阵右上角的 - 就是被遮住的位置。\n从这个矩阵可以看出：生成\u0026quot;道\u0026quot;后面的字时，模型最关注的是\u0026quot;悟\u0026rdquo;（0.51），其次是\u0026quot;空\u0026quot;（0.32），最后才是\u0026quot;道\u0026quot;自己（0.18）。模型\u0026quot;知道\u0026quot;悟空是主语，正在说话。\n阶段 6：输出层 — 从向量到概率 Transformer 输出的 256 维向量，经过最后一个线性层 lm_head，变成 4487 个分数（logits），每个分数对应词表中的一个字符。\n完整链条 隐藏状态（256 维） ↓ lm_head 线性变换 Logits（4487 个原始分数） ↓ ÷ temperature (0.8) 缩放后的 Logits ↓ Softmax: exp(x_i) / Σexp(x_j) 概率分布（4487 个概率，总和 = 1.0） Top-10 候选字符 1. ： (ID=4483) 98.6% 2. ， (ID=4481) 0.4% 3. 士 (ID=833) 0.3% 4. 人 (ID=106) 0.1% 5-10. 了是我... \u003c 0.1% 模型以 98.6% 的概率认为\u0026quot;悟空道\u0026quot;后面应该是冒号\u0026quot;：\u0026quot;——这说明模型学到了一个很强的语言模式：\u0026ldquo;某某道\u0026quot;是说话的引导，后面应该跟冒号和引号。\n阶段 7：采样 — 概率变字符 用 torch.multinomial 从概率分布中随机采样一个 token。就像一个加权骰子——概率越高的字符越可能被选中。\n反向解码路径：\n步骤 操作 结果 1 概率采样 从 4487 个候选中选中 2 Token ID 4483 3 二进制 0001 0001 1000 0011 4 查表 itos itos[4483] 5 输出字符 ：（概率: 98.6%） 序列更新：\u0026quot;悟空道\u0026quot; + \u0026quot;：\u0026quot; → \u0026quot;悟空道：\u0026quot;\n阶段 8：自回归循环 把新生成的字符拼回输入序列，重复上述全部过程，继续生成。这就是自回归（Autoregressive）——用自己的输出作为下一步的输入。\n输入序列 → Embedding → Transformer → Logits ↑ ↓ 采样新 Token ← 概率分布 ↻ 循环重复 生成 10 个 token 后的结果：\n悟空道：不知之人，是我师父\n这段文字完全是模型编出来的——不是从原文中检索的，而是基于学到的统计模式一个字一个字生成的。每次运行结果都不同，因为采样有随机性。\n总结：5 条核心洞察 完整数据流 文字 → UTF-8 字节 → Token ID → 二进制 → 张量 → Embedding 查表 → Transformer (×4层) → Logits (原始分数) → Softmax 概率 → 采样 → Token ID → 查表 itos → 文字\n关键洞察 LLM 的全部输入/输出都是数字，\u0026ldquo;理解\u0026quot;源自海量数据的统计规律 Embedding 不是人类定义的，而是训练中自动学习的分布式表示——同义词自动靠近 Transformer 的注意力机制让模型能\u0026quot;关注\u0026quot;上下文中的相关信息——我们可以直接看到 Attention 矩阵 生成是逐字进行的（自回归），每次只预测下一个 token Temperature 和 Top-K 控制了输出的\u0026quot;创造性\u0026rdquo; vs \u0026ldquo;确定性\u0026rdquo; 这不是黑盒 本文所有数据都来自真实的模型计算——直接调用 model.py 中的各个子模块（wte、wpe、Block、ln_f、lm_head），用 torch.no_grad() 逐步提取中间张量。所有数值都是真实计算结果，不是模拟或预设数据。\n同样的架构、同样的计算过程，在 GPT-4 中以完全相同的方式运行，只是维度从 256 变成了 12288，层数从 4 变成了 96+。\nSLM vs LLM：小模型与大模型 对比项 本文的 demo 模型 (SLM) GPT-4 级别 (LLM) 参数量 4.3M（430 万） ~1.8T（1.8 万亿） 层数 4 96~120 维度 256 12288+ Attention 矩阵 3×3 = 9 个值 128K×128K = 160 亿个值 能力 模仿西游记文风 对话、推理、编程、翻译 可观测性 完全透明 可追踪但人脑无法理解 架构完全相同，区别只在规模。 这就是用小模型做教学的价值——用一个可以完全看透的模型，建立对大模型工作原理的直觉。\n动手试试 如果你想亲自运行这个可视化演示：\n# 环境准备 source ~/ai-lab-venv/bin/activate cd ~/nanoGPT # 交互模式（按回车逐步推进） python demo_llm_pipeline.py # 自动播放 python demo_llm_pipeline.py --auto # 指定模型和输入 python demo_llm_pipeline.py --model xiyouji-big --start \u0026#34;唐僧道\u0026#34; --gen_tokens 50 # Shakespeare 模型 python demo_llm_pipeline.py --model shakespeare --auto 可选模型：\n参数 模型 默认 prompt xiyouji（默认） 西游记字符级 \u0026ldquo;悟空道\u0026rdquo; xiyouji-big 西游记大模型 \u0026ldquo;悟空道\u0026rdquo; shakespeare Shakespeare 字符级 \u0026ldquo;ROMEO:\u0026rdquo; shakespeare-big Shakespeare 大模型 \u0026ldquo;ROMEO:\u0026rdquo; ","permalink":"https://jason-azure.github.io/ai-blog/posts/llm-pipeline-visual/","summary":"用一个真实的 4.3M 参数模型（nanoGPT + 西游记），逐步展示从输入「悟空道」到输出新字符的完整数据流。所有数值都是真实计算结果，不是模拟。","title":"LLM 全流程可视化：逐步拆解大语言模型的每一步计算"},{"content":"引言 当你问 ChatGPT \u0026ldquo;猫为什么喜欢纸箱\u0026rdquo;，它回答了一大段话。这段话是怎么\u0026quot;想\u0026quot;出来的？\n核心秘密只有一个：注意力机制（Attention）。它是 GPT、BERT、Claude、DeepSeek——所有现代大语言模型的心脏。\n今天这篇文章，我们从最基础的数学开始，一步步讲清楚 Attention 的完整运作方式。不需要任何前置知识，但我们也不会回避数学。\n关于\u0026quot;解释\u0026quot;的声明： 本文会大量使用\u0026quot;寻找\u0026quot;\u0026ldquo;关注\u0026quot;\u0026ldquo;传递\u0026quot;这样的拟人化表述，这是为了帮助理解。但请始终记住：模型内部没有任何\u0026quot;理解\u0026quot;或\u0026quot;意图\u0026rdquo;，只有矩阵乘法和数值优化。文中会明确标注哪些是人类的设计、哪些是机器涌现的行为、哪些是我们至今无法解释的现象。\n本文导读 全文分十章，沿着一条线索展开——从最简单的数学工具，一步步组装出完整的注意力机制。\n数学基础（第一~四章）\n① 向量与相似度 → ② 点积 → ③ 缩放 ÷√d → ④ Softmax 归一化\n先把零件认全：什么是向量？怎么衡量相似？为什么要缩放？如何把分数变成权重？ 核心机制（第五~六章）\n⑤ Q、K、V 三路变换 → ⑥ 完整计算示例\n用零件组装引擎：为什么需要三个矩阵？一个 token 走完 Attention 全流程是什么样的？ 工程设计（第七~八章）\n⑦ 因果遮罩与 KV Cache → ⑧ 多头注意力\n让引擎跑起来：为什么 GPT 只能往前看？为什么要切成 12 份？训练和推理有什么区别？ 全景与反思（第九~十章）\n⑨ 从 Attention 到预测下一个词 → ⑩ 人类设计了什么，机器涌现了什么\n退一步看全貌：Attention 在整个模型中处于什么位置？哪些是我们能解释的，哪些至今是黑箱？ 本文所有例子都使用我们在前两篇文章中训练的西游记 nanoGPT 模型——你已经见过\u0026quot;悟空道\u0026quot;如何变成向量，今天我们看它如何在 Attention 中流动。\n第一章：什么是\u0026quot;相似\u0026rdquo;？ 从生活说起 你去图书馆找书。心里想着\u0026quot;机器学习入门\u0026quot;，书架上每本书都有标签。你的大脑在做的事：把你的需求和每本书的标签做比较，挑最匹配的。\nTransformer 做的事情完全一样。只不过\u0026quot;需求\u0026quot;和\u0026quot;标签\u0026quot;都变成了一串数字——也就是向量。\n向量是什么？ LLM 把一个词变成一串数字（向量），你可以想象成一个雷达图：\n皇室感 ↑ 0.9 — \"国王\"\n0.8 — \"王后\"\n0.1 — \"汽车\" ← 女 男 → 性别感 \"国王\" ≈ (皇室感=0.9, 男性=0.8)\n\"王后\" ≈ (皇室感=0.8, 女性=0.7)\n\"汽车\" ≈ (皇室感=0.1, 中性=0.0) 真实的 LLM 里不是 2 维，是 768 维甚至更多。但原理一样——方向接近的向量，语义接近。\n第二章：点积——最朴素的相似度计算 公式 两个向量 A 和 B，把对应位置的数字相乘再相加：\nA = [a₁, a₂, a₃] B = [b₁, b₂, b₃] 点积 = a₁×b₁ + a₂×b₂ + a₃×b₃ 为什么这能衡量相似度？ 核心直觉：同号相乘得正，异号相乘得负。\nA = [ 0.9, 0.8] ← \u0026#34;国王\u0026#34; B = [ 0.8, 0.7] ← \u0026#34;王后\u0026#34; 点积 = 0.9×0.8 + 0.8×0.7 = 0.72 + 0.56 = 1.28 ← 大正数，相似！ A = [ 0.9, 0.8] ← \u0026#34;国王\u0026#34; C = [-0.7, 0.0] ← \u0026#34;汽车\u0026#34; 点积 = 0.9×(-0.7) + 0.8×0.0 = -0.63 + 0 = -0.63 ← 负数，不相似 规律：两个向量方向越一致，点积越大。 这就是余弦相似度的核心思想——不关心向量有多长，只关心它们是否指向同一个方向。\n第三章：缩放——为什么要除以 √d 问题：维度越高，点积数值越大 假设向量是 d 维的，每个分量大约在 -1 到 1 之间。点积是 d 个乘积的和：\n维度 d = 4: 点积 ≈ 几个单位 比如 3.2 维度 d = 768: 点积 ≈ 几十甚至上百 比如 42.7 加了更多项，总和自然更大。\n大数值会怎样？ 点积算完后，下一步要做 Softmax（下一章讲）。Softmax 里有指数运算 eˣ：\n如果分数是 [1.0, 2.0, 3.0]: e¹ = 2.7, e² = 7.4, e³ = 20.1 ← 差距温和，每个词都有权重 如果分数是 [10, 20, 30]: e¹⁰ = 22026, e²⁰ = 4.9亿, e³⁰ = 10万亿 ← 最大值碾压一切！ 分数太大 → Softmax 输出接近 one-hot（只有最大的那个接近 1，其余全趋近 0）→ 模型几乎只看一个词，丧失了综合多个词信息的能力 → 梯度趋近零，训练卡死。\n解决方案：除以 √d scaled_score = 点积 / √d 因为点积的标准差大约是 √d，除以它刚好把分数拉回到方差≈1 的舒适区间：\n维度 d = 768, √768 ≈ 27.7 原始点积 ≈ 42.7 缩放后 ≈ 42.7 / 27.7 ≈ 1.54 ← 回到合理范围 这就是 \u0026ldquo;Scaled\u0026rdquo; 的含义——一个数学上的温度调节器。\n这是人类的设计。 除以 √d 不是模型自己发现的，是 2017 年 Google 论文 \u0026ldquo;Attention Is All You Need\u0026rdquo; 的作者凭数学直觉写进去的。模型不知道为什么要除，它只是按公式执行。\n第四章：Softmax——把分数变成权重 问题：原始分数没有统一尺度 经过缩放后，我们得到了一组相关性分数：\n分数: [0.2, 3.8, 1.5, 0.9] 这些数字的总和不是 1，可正可负，没法直接当\u0026quot;百分比\u0026quot;用。\nSoftmax 三步走 第1步：对每个分数取指数 eˣ（把所有值变为正数） 第2步：求和 第3步：每个值除以总和（归一化，使总和 = 1） 算一下：\n分数: [1.0, 2.0, 3.0] eˣ: [2.72, 7.39, 20.09] 总和 = 2.72 + 7.39 + 20.09 = 30.20 softmax = [2.72/30.20, 7.39/30.20, 20.09/30.20] = [0.09, 0.24, 0.67] 总和 = 1.0 ✓ 为什么用 eˣ 而不是直接除以总和？ 直接归一化: [1, 2, 3] → [1/6, 2/6, 3/6] = [0.17, 0.33, 0.50] 差距不大 Softmax: [1, 2, 3] → [0.09, 0.24, 0.67] 差距更明显 两个原因：\n负数问题： 直接除以总和，如果有负分数，结果没有意义。eˣ 保证输出永远为正。 放大区分度： 指数运算天然放大差异，让高分更高、低分更低。模型可以更果断地\u0026quot;决定\u0026quot;该关注谁。 这也是人类的选择。 Softmax 是概率论和信息论中常用的函数，研究者选择它是因为它有优良的数学性质（可微分、输出为概率分布）。不是唯一选择——还有 sparsemax、硬注意力等替代方案——但 Softmax 是目前最常用的。\n第五章：Q、K、V——注意力的三个角色 到这里，我们已经有了衡量相似度和归一化的全部数学工具。现在的问题是：拿什么和什么比较？\n最朴素的想法 直接拿每个词的向量互相做点积？可以。但有一个根本问题——\n一个向量要同时做三件事：\n表达\u0026quot;我需要什么信息\u0026quot; 表达\u0026quot;我能被什么搜索到\u0026quot; 表达\u0026quot;命中后，我要传递什么内容\u0026quot; 这三个目标往往矛盾。一个向量不可能同时朝三个方向。\n人类的解决方案：三个矩阵 这是 Transformer 设计者有意识的工程选择。他们在模型里放了三个权重矩阵 Wq、Wk、Wv，把同一个输入变换成三个不同的向量：\n一个 token 的 embedding（比如 256 维的 x） Q = x × Wq ← 一次矩阵乘法，得到一串新的数字 K = x × Wk ← 同样大小的矩阵，不同的参数，得到另一串数字 V = x × Wv ← 再一次，又得到一串不同的数字 矩阵乘法在做什么？ 不需要知道矩阵乘法的细节。你只需要理解一件事：\n矩阵乘法 = 信息的重新组合。\n原始的 x 里混着这个词的所有信息。乘以不同的矩阵，就像戴上不同的滤镜，从同一张照片里提取不同的侧面：\n同一个 x（原材料） × Wq → Q：从 x 中提取\"发出信号\"的侧面 × Wk → K：从 x 中提取\"接收匹配\"的侧面 × Wv → V：从 x 中提取\"内容传递\"的侧面 关键：三个矩阵的具体数值不是人类写的，是训练出来的。 人类只决定了\u0026quot;用三个矩阵做变换\u0026quot;这个结构，至于每个矩阵具体做什么样的变换——那是模型在几十亿次训练中自己摸索出来的。\n从模型的视角看：没有\u0026quot;查询\u0026quot;\u0026ldquo;键\u0026quot;\u0026ldquo;值\u0026rdquo; 这里必须澄清一件事。\nQ、K、V 这些名字——Query（查询）、Key（键）、Value（值）——是人类取的，为了帮助人类自己理解。模型内部没有这些概念。\n模型看到的全部真相：\n输入: x （一串数字） q = x × Wq （一次矩阵乘法，得到另一串数字） k = x × Wk （一次矩阵乘法，得到另一串数字） v = x × Wv （一次矩阵乘法，得到另一串数字） score = q × kᵀ / √d （数字乘数字，除以一个常数） weight = softmax(score) （指数运算 + 归一化） output = weight × v （数字乘数字，加起来） 训练过程中发生了什么？\n初始: Wq Wk Wv 全是随机数字，模型的预测和随机猜没区别 训练 100 万步后: 某些参数组合碰巧让预测更准 → 梯度下降强化这个方向 模型开始发现: \u0026#34;悟\u0026#34; 后面经常跟 \u0026#34;空\u0026#34;，\u0026#34;行者\u0026#34; 后面经常跟 \u0026#34;道\u0026#34; （但模型不知道\u0026#34;悟空\u0026#34;是名字，它只是在拟合统计规律。） 训练 10 亿步后: 涌现出人类都没预料到的模式 某些注意力头专门让相邻词互相关注 某些头专门让远距离的词互相关联 某些头做的事情人类至今无法解释 这就像看蚂蚁搬食物——人类说\u0026quot;蚂蚁知道路线\u0026rdquo;，但蚂蚁只是在跟随化学梯度。结果相似，内在机制完全不同。\n每个 token 共用同一套矩阵 一个重要事实：同一层里，所有 token 用的是同一个 Wq、同一个 Wk、同一个 Wv。\n句子: \u0026#34;悟空道\u0026#34; Q_悟 = x_悟 × Wq Q_空 = x_空 × Wq ← 同一个 Wq Q_道 = x_道 × Wq K_悟 = x_悟 × Wk K_空 = x_空 × Wk ← 同一个 Wk K_道 = x_道 × Wk Q、K、V 之间的差异完全来自输入 x 的不同，不是来自矩阵的不同。\n为什么共享？三个原因：\n参数效率： 如果每个位置都有自己的矩阵，参数量会膨胀上千倍。共享一个 Wq，所有位置都能用。\n泛化能力： 一个 Wq 从所有位置的数据中学习，训练更充分。如果每个位置单独学，数据太稀疏。\n长度无关： 推理时输入多长都行，同一个矩阵照用不误。\n第六章：Attention 的完整计算——一个例子 现在把所有组件组合起来。以处理 \u0026quot;悟空道\u0026quot; 中的 \u0026quot;道\u0026quot; 为例：\n第 1 步：生成 Q、K、V x_悟, x_空, x_道 ← 三个 token 的 embedding 每个 x 分别乘以 Wq, Wk, Wv: Q_道 = x_道 × Wq K_悟 = x_悟 × Wk, K_空 = x_空 × Wk, K_道 = x_道 × Wk V_悟 = x_悟 × Wv, V_空 = x_空 × Wv, V_道 = x_道 × Wv 第 2 步：Q 和所有 K 做点积 score_1 = Q_道 · K_悟 = 0.3 （小数字） score_2 = Q_道 · K_空 = 2.1 （大数字） score_3 = Q_道 · K_道 = 0.8 （中等） 第 3 步：缩放 假设维度 d = 64, √64 = 8 scaled = [0.3/8, 2.1/8, 0.8/8] = [0.04, 0.26, 0.10] 第 4 步：Softmax 归一化 e^0.04 = 1.04, e^0.26 = 1.30, e^0.10 = 1.11 总和 = 3.45 weights = [1.04/3.45, 1.30/3.45, 1.11/3.45] = [0.30, 0.38, 0.32] 第 5 步：加权求和 V（Aggregate） output = 0.30 × V_悟 + 0.38 × V_空 + 0.32 × V_道 这个 output 是一个新的向量——它不再是某一个字，而是融合了上下文中相关字的信息。\n对 \u0026ldquo;道\u0026rdquo; 来说，它现在\u0026quot;吸收\u0026quot;了 \u0026ldquo;空\u0026rdquo; 的信息（权重最大）。人类会解读为\u0026quot;道 知道了前面说的是悟空\u0026quot;——但更准确地说，只是某些数字被加权混合了。\n完整公式 Attention(Q,K,V) = softmax( Q × Kᵀ / √d ) × V Q 和 K 做点积\n算相似度 → 除以 √d 缩放\n防止爆炸 → Softmax 归一化\n变成权重 → 加权求和 V\n得到输出 设计 vs 涌现的分界线： 这四步的结构（点积→缩放→softmax→加权求和）是人类设计的。但每一步里的具体数值（Wq、Wk、Wv 的参数）是训练出来的。人类搭了舞台，机器自己编了剧本。\n第七章：因果遮罩——GPT 只能往前看 前面的例子为了简单，省略了一个关键细节：GPT 是自回归模型，每个 token 只能看到它自己和它前面的 token。\n遮罩的实现 在 Q·K 算完分数之后、Softmax 之前，把\u0026quot;未来位置\u0026quot;的分数设成负无穷：\n句子: \u0026#34;八戒道大师兄\u0026#34; 处理 \u0026#34;道\u0026#34; 时: 原始分数: [1.2, 3.8, 2.1, 0.9, 0.3, 2.5] 八 戒 道 大 师 兄 ↑ 后面三个是未来字 加遮罩后: [1.2, 3.8, 2.1, -∞, -∞, -∞ ] Softmax 后: [0.15, 0.55, 0.30, 0, 0, 0 ] ↑ e^(-∞)=0，未来字权重自动归零 \u0026ldquo;道\u0026rdquo; 永远看不到后面的 \u0026ldquo;大师兄\u0026rdquo;。 无论训练还是推理，这个遮罩都在。这是 GPT 架构的硬规则。\n训练时：完整句子 + 遮罩 = 高效学习 你可能会问：训练时已经有了完整答案，预测还有什么意义？\n关键在于遮罩保证了每个位置看不到答案：\n输入: 八 戒 道 大 师 兄 ↓ ↓ ↓ ↓ ↓ ↓ 模型预测: 戒? 道? 大? 师? 兄? ，? 正确答案: 戒 道 大 师 兄 ， 位置 3（预测 \u0026#34;大\u0026#34;）: 只能看到 [八, 戒, 道]，看不到 大 位置 5（预测 \u0026#34;兄\u0026#34;）: 只能看到 [八, 戒, 道, 大, 师]，看不到 兄 每个位置的处境和推理时一模一样——都看不到答案。但因为所有位置是并行计算的，效率比逐个处理高得多：\n逐个处理: 6 次前向传播才处理完一句话 带遮罩并行: 1 次前向传播，同时得到 6 个预测 效率提升了 6 倍，而效果完全等价。\n遮罩也是人类的设计。 它直接体现了\u0026quot;从左到右生成\u0026quot;这个设计目标。BERT 等双向模型就没有这个遮罩——它们可以前后都看。不同的模型架构，对应不同的设计选择。\n推理时：Prefill + KV Cache 当你给 ChatGPT 输入一长段 prompt 时，模型也是带着遮罩一次性处理的。但只有最后一个位置的输出有用——因为模型要预测的是最后一个字后面的字。\n前面位置的 K 和 V 不会浪费——它们被缓存下来（KV Cache），后续生成新 token 时直接复用：\n阶段一（Prefill）: 整个 prompt 并行处理 → 缓存所有位置的 K、V → 预测第一个新字 阶段二（Decode）: 每次只处理 1 个新 token 新 token 的 Q × 缓存的所有 K → 注意力权重 权重 × 缓存的所有 V → 输出 → 预测下一个字... 重复直到结束 这就是为什么你用 ChatGPT 时，提交后等一下，然后文字就快速蹦出来——Prefill（处理 prompt）慢，Decode（逐个生成）快。\n第八章：多头注意力——为什么要切成 12 份 单头的局限 假设只有一个 attention head，处理这句话：\n\u0026#34;悟空拿起金箍棒向那妖怪打去\u0026#34; 处理 \u0026#34;打\u0026#34; 时，模型可能需要同时关注: - \u0026#34;悟空\u0026#34;（谁在打？主语，距离远） - \u0026#34;金箍棒\u0026#34;（用什么打？工具） - \u0026#34;妖怪\u0026#34;（打谁？宾语，距离近） 但只有一组权重。必须妥协——什么都关注一点，什么都不够专注。\n解决方案：切分 + 并行 把 768 维的空间切成 12 份，每份 64 维，各自独立做一遍完整的 Attention：\nx（768维）切成 12 份: Head 1 (维度 1~64): 有自己的 Wq₁ Wk₁ Wv₁ Head 2 (维度 65~128): 有自己的 Wq₂ Wk₂ Wv₂ Head 3 (维度 129~192): 有自己的 Wq₃ Wk₃ Wv₃ ... Head 12 (维度 705~768): 有自己的 Wq₁₂ Wk₁₂ Wv₁₂ 每个 head 独立计算自己的注意力权重，然后把 12 个输出拼接回 768 维：\nHead 1 输出 (64维) Head 2 输出 (64维) Head 3 输出 (64维) ... Head 12 输出 (64维) → 拼接\n768维\n× Wo → 最终输出\n768维 最后还有一个 Wo 矩阵（768×768），用来让不同 head 的结果互相混合。\n参数量没有增加 单头: Wq 大小 768×768 = 589,824 个参数 12 头: 12 × (768×64) = 589,824 个参数 ← 总量一样！ 参数量相同，但效果好得多——因为 12 个独立的小空间比 1 个大空间更灵活。每个 head 可以毫无顾忌地给某个位置高权重，因为其他 head 会覆盖其他关系。\n涌现出的分工 研究者事后观察 GPT-2 的 12 个 head，发现它们自发地分化出了不同的模式：\n某个 head: 总是让相邻的字互相关注 某个 head: 总是让远距离的词互相关联 某个 head: 均匀关注所有前面的字 某个 head: 做的事情人类解释不了——但去掉它模型就变差 这些\u0026quot;分工\u0026quot;不是人类编程进去的。 人类只提供了\u0026quot;12 个独立子空间\u0026quot;这个结构。至于每个子空间最终学会关注什么——那完全是训练过程中，为了让预测更准而自发涌现的。\n就像一个公司招了 12 个员工，没有给他们分配具体岗位，只是说\u0026quot;你们合作把预测做准\u0026quot;。结果他们自发地有人看语法、有人看指代、有人看搭配——因为这种分工让团队整体表现最好。\n人类设计 vs 机器涌现： \u0026ldquo;切成 12 份并行计算\u0026quot;是人类的架构设计。\u0026ldquo;每个 head 负责什么\u0026quot;是训练涌现的结果。人类甚至不能完全解释每个 head 在做什么——有些 head 的行为至今是黑箱。\n第九章：从 Attention 到预测下一个字 Attention 只是 Transformer 的一个组件。从 Attention 输出到最终预测，还有一段路。\nTransformer 的一层 输入 x ↓ Multi-Head Attention ← 上下文信息融合（本文讲的全部内容）\n+ 残差连接 + 归一化 ↓ Feed-Forward Network (FFN, 两层全连接) ← 对每个位置独立做非线性变换\n+ 残差连接 + 归一化 ↓ 输出 x'（和输入同样大小的向量） 一个 Transformer 由多层这样的结构堆叠：GPT-2 有 12 层，GPT-3 有 96 层，我们的西游记模型有 4 层。\n研究者观察到（又是事后解释）：\n低层: 学到的模式比较简单——相邻字关联、基本搭配 中层: 开始出现语义级别的模式——短语结构、常见组合 高层: 出现更抽象的模式——长距离关联、上下文推断 但这不是绝对的分界。每一层的行为高度复杂， 很多模式跨层分布，人类只能解释其中一小部分。 最后一步：预测头 经过 N 层 Transformer 后，最后一个 token 位置的输出向量要映射到词汇表上。以我们的西游记模型为例（词汇表 4487 个字），也可以对照 GPT-2（词汇表 50257 个 token）：\n最后一个 token \u0026#34;道\u0026#34; 的隐藏状态 h（256维） ↓ 线性层: h × W_output (256 → 4487) ↓ 得到 4487 个原始分数（logits）: \u0026#34;：\u0026#34; → 8.7 ← 最高 \u0026#34;大\u0026#34; → 6.2 \u0026#34;了\u0026#34; → 5.1 \u0026#34;的\u0026#34; → 3.4 ...其余 4483 个字 → 都很低 ↓ Softmax（又见面了！） ↓ 概率分布: \u0026#34;：\u0026#34; → 0.42 \u0026#34;大\u0026#34; → 0.18 \u0026#34;了\u0026#34; → 0.11 ... ↓ 采样或取最大值 → 输出: \u0026#34;：\u0026#34; 在前一篇文章中，我们的模型输入\u0026quot;悟空道\u0026quot;确实预测出了\u0026rdquo;：\u0026quot;——因为在《西游记》原文中，\u0026ldquo;悟空道\u0026quot;后面大概率就是冒号加引号，然后开始说话。模型从数据中学到了这个模式。\n两次 Softmax 的区别 全流程中出现了两次 Softmax，它们的作用完全不同：\nAttention 内部的 Softmax 预测层的 Softmax 输入 Q·K 的相似度分数 4487 个 logits 输出 注意力权重（关注哪些字） 词汇表概率分布（选哪个字） 问题 \u0026ldquo;该关注句子里的哪些位置？\u0026rdquo; \u0026ldquo;下一个字是词汇表里的哪个？\u0026rdquo; 数学形式完全相同，但在流程中的角色不同。Softmax 是一个通用的数学工具，在不同地方解决不同的\u0026quot;把分数变概率\u0026quot;问题。\n第十章：总结——人类设计了什么，机器涌现了什么 全景回顾 输入 token\nx（embedding 向量） ↓ ① 三路变换\nQ = x×Wq, K = x×Wk, V = x×Wv\n同一个 x 通过三个不同矩阵，提取三个不同侧面 ↓ ② 点积 + 缩放\nscore = Q·Kᵀ / √d\n衡量每对 token 之间的相关性，除以 √d 防止数值爆炸 ↓ ③ 因果遮罩\n未来位置的分数 → -∞\nGPT 只能往前看，不能偷看未来的字 ↓ ④ Softmax 归一化\n分数 → 权重（总和=1）\neˣ 保证正数 + 放大差异，归一化变成概率 ↓ ⑤ 加权求和 V\noutput = weights × V\n从被关注的字中提取信息，融合成上下文感知的新表示 ↓ ⑥ 多头拼接\n12 个 head 的输出拼接 → ×Wo\n不同子空间的分析结果融合在一起 ↓ × N 层 ⑦ 线性层 + Softmax → 预测下一个 token 三条线索 读完全文，希望你带走三个层次的理解：\n人类设计的（架构）：\n把输入分成 Q、K、V 三路 用点积衡量相似度 除以 √d 缩放 用 Softmax 归一化 多头并行 + 拼接 因果遮罩，只看前文 机器学到的（参数）：\nWq、Wk、Wv 的具体数值 每个 head 关注什么模式 不同层学到什么深度的特征 所有这些，都是为了一个目标：让预测下一个 token 的概率最大化 人类无法完全解释的（涌现）：\n为什么某些 head 会自发地\u0026quot;分工\u0026rdquo; 某些 head 的行为模式至今是黑箱 模型在大规模训练后表现出的\u0026quot;推理\u0026quot;\u0026ldquo;类比\u0026quot;\u0026ldquo;创造\u0026quot;能力——到底是真正的理解，还是极其精妙的统计模式匹配？这仍然是一个开放问题 后记 2017 年，Google 的八位研究员发表了一篇论文，标题只有五个词：\u0026ldquo;Attention Is All You Need\u0026rdquo;——注意力就是你需要的全部。\n那时候没有人预料到后来发生的事情。\n这篇论文描述的机制——点积、缩放、Softmax、多头——数学上并不复杂，任何学过线性代数的本科生都能看懂。但就是这些简单的运算，堆叠到足够的规模后，涌现出了让所有人震惊的能力：它能写诗、能编程、能推理、能翻译，甚至能做一些看起来像\u0026quot;创造\u0026quot;的事情。\n这件事本身就是一个深刻的哲学谜题。\n我们在文中反复标注了一条分界线：人类设计了什么，机器学到了什么。现在让我们退到更远的距离来看这条线——\n人类提供的其实很少。 点积不是为语言发明的，它是 19 世纪的数学工具。Softmax 来自统计力学。矩阵乘法有几百年的历史。Transformer 的创新不在于发明了新数学，而在于把几个旧零件用一种特定的方式组装在了一起。\n机器发现的却出奇地多。 没有人教模型什么是主语、什么是隐喻、什么是因果推理。这些模式全部是从\u0026quot;预测下一个 token\u0026quot;这一个目标中自发涌现的。一个只被要求做\u0026quot;完形填空\u0026quot;的系统，学会了远超完形填空的能力。\n这就引出了一个根本性的问题：\u0026ldquo;预测下一个词\u0026quot;和\u0026quot;理解语言\u0026quot;之间，到底差了什么？\n如果一个系统能完美预测任何上下文中的下一个词，它是否必然已经理解了语言？或者说，是否存在一种不需要\u0026quot;理解\u0026quot;就能完美预测的方式？这个问题目前没有人能回答。\n也许最诚实的立场是这样的：Transformer 是一面镜子。我们在里面看到了\u0026quot;智能\u0026quot;的影子，但我们甚至不确定自己完全理解什么是\u0026quot;智能\u0026rdquo;。我们造出了一台能力远超预期的机器，但我们对它为什么如此有效的理解，远远落后于它的表现。\n这不是终点。这是一个起点——理解智能本质的起点。\n不过至少有一件事是确定的：读到这里的你，已经知道这台机器的每一个齿轮是怎么转的了。 这比世界上绝大多数人都走得更远。当你下一次和 ChatGPT 对话时，你知道它不是在\u0026quot;思考\u0026rdquo;——它在做矩阵乘法、算点积、过 Softmax、加权求和。但你也知道，就是这些简单的运算，叠加到一起之后，产生了某种我们还无法完全命名的东西。\n那是什么？也许下一个时代的人会告诉我们。\n","permalink":"https://jason-azure.github.io/ai-blog/posts/transformer-attention/","summary":"用零基础也能懂的语言，拆解 Transformer 的核心：点积、缩放、Softmax、QKV、多头注意力、因果遮罩。既讲人类设计了什么，也讲机器自己学到了什么。","title":"从加减乘除到预测下一个字：Attention 机制零基础拆解"},{"content":"引言 如果有人告诉你——\nChatGPT 不认识任何一个字。它只认识数字。\n你可能会觉得奇怪。它明明能写诗、能翻译、能回答\u0026quot;猫为什么喜欢纸箱\u0026quot;。\n但事实就是如此。在 AI 的世界里，一切都是数字。 文字是数字，图片是数字，声音也是数字。AI 做的所有事情——理解、推理、生成——都是数字之间的计算。\n这个系列共四篇，带你从零开始理解这些计算的数学语言——线性代数。别被这个名字吓到。我们从最简单的东西开始：一个数字。\n系列导航\n你正在读第一篇。如果你已经读过我们的 Attention 机制文章，你会在这个系列中找到很多\u0026quot;原来如此！\u0026ldquo;的瞬间。\n▸ 第一篇（本文）：从数轴到高维空间 — 向量是什么？词怎么变成数字？ ▹ 第二篇：向量的加减法 — 点积、余弦相似度、AI 衡量\"相似\"的方法 ▹ 第三篇：矩阵——空间的变形术 — 矩阵如何变换空间（含动画演示） ▹ 第四篇：矩阵乘法与 AI — 理解 Transformer 的最后一块拼图 ▹ 第五篇：激活函数——神经网络的开关 ▹ 第六篇：梯度下降——AI 怎么学习 第一章：一个数字能描述什么？ 温度计：最简单的例子 看看你家的温度计。上面只有一个数字——比如 23°C。\n这一个数字就能告诉你：现在冷不冷、该穿什么衣服、要不要开空调。\n一个数字 = 一条信息。\n生活中\"一个数字\"的例子 场景 数字 描述了什么 温度计 23°C 冷热程度 体重秤 65kg 体重 车速表 80km/h 行驶速度 银行余额 ¥3500 有多少钱 这些都可以画在一根线上——数轴：\n冷 舒适 热 ◄──────┼──────┼──────┼──────┼──────┼──────► 10 15 20 25 30 (°C) ▲ 你家: 23°C 数轴上的每个点，只需要一个数字就能确定位置。数学家说这叫一维空间。\n公式时间\n一维空间中的一个点 = 一个数字 x\n例：温度 = 23，体重 = 65，余额 = 3500\n简单吧？但一个数字能描述的东西太有限了。如果我想告诉你一个地方在哪，一个数字够吗？\n第二章：两个数字能做什么？ 城市地图：用两个数字定位 想象你在一个整齐的棋盘格城市（像纽约的曼哈顿）。朋友问你\u0026quot;星巴克在哪\u0026rdquo;，你说：\n\u0026ldquo;第 3 街，第 5 大道的路口。\u0026rdquo;\n两个数字，精确定位一个点。\n这就是数学课上的坐标系——一个横轴 x，一个纵轴 y，两根轴交叉。任何一个点都可以用 (x, y) 来表示。\n两个数字定位的例子 场景 两个数字 意思 GPS (39.9°N, 116.4°E) 北京天安门 棋盘 (E, 4) 国际象棋 E4 屏幕像素 (1920, 1080) 屏幕右下角 地图 (3街, 5大道) 一个路口 看到了吗？从一个数字到两个数字，我们的描述能力大幅跳跃——从线上的点，变成了平面上的点。\n公式时间\n二维空间中的一个点 = 两个数字 (x, y)\n例：星巴克 = (3, 5)，天安门 = (39.9, 116.4)\n第三章：更多数字 = 更多信息 加到三个数字 如果那个城市的建筑有很多层楼呢？\u0026ldquo;第 3 街，第 5 大道，12 层\u0026quot;——三个数字，定位三维空间中的任何一个点。\n1 个数字 → 线上的点 (一维) 2 个数字 → 平面上的点 (二维) 3 个数字 → 空间中的点 (三维) 这三个你都能想象出来。但接下来呢？\n游戏角色：五个数字描述一个人物 如果你玩过 RPG 游戏（角色扮演），你一定见过这样的属性卡：\n🗡️ 勇者·阿光 属性 数值 攻击力 85 防御力 40 速度 92 生命值 1200 魔力 30 五个数字完整地描述了这个角色的能力。我们可以把它写成一组数字：\n阿光 = [85, 40, 92, 1200, 30] 这组数字叫做向量（vector）。\n向量 = 一组有序的数字 没有什么高深的。向量就是一串数字，按固定顺序排列。\n向量的各种面孔 维度 向量 描述对象 1 维 [23] 一个温度 2 维 [3, 5] 地图上一个位置 3 维 [3, 5, 12] 大厦里一个房间 5 维 [85, 40, 92, 1200, 30] 一个游戏角色 256 维 [0.12, -0.03, 0.87, \u0026hellip;] 一个词的\u0026quot;含义\u0026rdquo; 关键认知跳跃：\n你没法在脑子里想象 256 维空间。没人能。\n但数学完全一样。 2 维空间里怎么计算距离、怎么比较相似度，256 维空间里用完全相同的公式。\n所以不用害怕\u0026quot;高维\u0026quot;——它只是更长的数字列表。\n公式时间\nn 维向量 = n 个数字按顺序排列\n写法：v = [v₁, v₂, v₃, \u0026hellip;, vₙ]\n1 维是向量，2 维是向量，256 维也是向量。\n第四章：AI 怎么把文字变成数字？ 好了，到了关键问题：ChatGPT 是怎么处理文字的？\n答案很简单——它把每个词变成一个向量。\n词向量（Word Embedding） 在 AI 内部，有一张巨大的\u0026quot;词典\u0026quot;。这个词典不是给你查释义的，而是给每个词分配一串数字：\n\u0026#34;国王\u0026#34; → [0.21, -0.45, 0.89, 0.12, ..., 0.33] ← 256个数字 \u0026#34;王后\u0026#34; → [0.19, -0.42, 0.85, -0.15, ..., 0.30] ← 256个数字 \u0026#34;汽车\u0026#34; → [-0.82, 0.11, -0.03, 0.67, ..., -0.21] ← 256个数字 注意看\u0026quot;国王\u0026quot;和\u0026quot;王后\u0026quot;的数字：前几位很接近（0.21 vs 0.19，-0.45 vs -0.42）。而\u0026quot;汽车\u0026quot;的数字完全不同。\n这不是巧合。这些数字经过训练，让意思相近的词拥有相近的向量。\n类比：词向量就是超级属性卡 还记得游戏角色的 5 个属性吗？词向量是同样的概念，只不过：\n游戏角色 词向量 有多少个数字 5 个 256~4096 个 每个数字的含义 人类定义的（攻击力、防御力\u0026hellip;） 机器自己学的（人类说不清） 相似 = 数字接近 两个战士的属性很像 \u0026ldquo;国王\u0026quot;和\u0026quot;王后\u0026quot;的向量很像 第二行很重要：词向量的每个维度，不是人类起名的。 AI 在大量文本上训练后，自动发现了区分词义的最佳方式。我们只知道，意思接近的词，向量就接近。\n动画：词向量空间 下面的动画展示了一个简化的二维投影——把高维词向量\u0026quot;压缩\u0026quot;到二维平面，你可以直观看到相似的词聚在一起：\n注意动画中的两个关键现象：\n现象一：平行四边形\nking - man ≈ queen - woman\n从 man 到 king 的\"方向\"，和从 woman 到 queen 的\"方向\"几乎一样。\n这个方向代表了\"皇室\"这个概念。 现象二：聚类\n动物（cat, dog, fish）聚在一起。交通工具（car, truck, bus）聚在一起。\n没有人告诉 AI \"这些是动物\"——它从文本中自己学到了。 如果你读过我们的 Attention 机制文章，你会记得第一章里的\u0026quot;雷达图\u0026rdquo;——那正是词向量的简化表示。现在你知道了：那些数字是怎么来的，以及为什么意思相近的词数字也接近。\n第五章：这和 AI 有什么关系？ 到这里我们建立了一个认知：\n文字 → 数字（词向量）\n图片 → 数字（像素值）\n声音 → 数字（波形采样）\n一切 → 向量\n但 AI 不只是看这些数字，它要处理这些数字。怎么处理？\n第一步：比较——谁和谁相似？ \u0026ldquo;国王\u0026quot;和\u0026quot;王后\u0026quot;相似吗？比较它们的向量就知道了。向量越接近，意思越接近。\n这就是搜索引擎、推荐系统、ChatGPT 理解你的话的起点。\n第二步：变换——把向量从一个空间映射到另一个空间 AI 拿到词向量后，不是原封不动地用。它会通过一个\u0026quot;变换\u0026rdquo;，把词向量变成新的向量——提取出不同的信息（比如\u0026quot;这个词在问什么\u0026quot;\u0026ldquo;这个词提供了什么信息\u0026rdquo;）。\n这个\u0026quot;变换\u0026quot;就是矩阵乘法。 这是第三篇文章的内容。\n第三步：组合——把多个向量的信息合并 一句话有很多个词，每个词都是一个向量。AI 需要让它们互相交流——\u0026ldquo;你\u0026quot;这个词需要知道\u0026quot;好\u0026quot;在旁边。\n这个\u0026quot;交流\u0026quot;就是注意力机制（Attention）。 它的核心运算也是矩阵乘法。这是第四篇的内容。\n全景预告：四篇文章的连接 第一篇（本文） → 万物变成向量（数字列表） ↓ 第二篇（下一篇） → 比较向量（点积、余弦相似度） ↓ 第三篇 → 变换向量（矩阵 × 向量） ↓ 第四篇 → 批量变换（矩阵 × 矩阵 = AI 的核心运算） 第六章：动手验证 光说不练假把式。下面是我们在 AI 实验 VM 上用 Python + NumPy 实际跑的实验：给三个词分配简化的 5 维向量（真实模型用 256 维以上，原理完全一样），然后计算它们之间的距离。\n以下命令在 Ubuntu 22.04 + Python 3.10 环境中执行：\nazureuser@ai-lab:~$ source ~/ai-lab-venv/bin/activate (ai-lab-venv) azureuser@ai-lab:~$ python3 \u0026gt;\u0026gt;\u0026gt; import numpy as np \u0026gt;\u0026gt;\u0026gt; \u0026gt;\u0026gt;\u0026gt; # 给三个词分配简化的 5 维向量（真实模型用 256 维以上） \u0026gt;\u0026gt;\u0026gt; king = np.array([0.9, 0.8, 0.1, 0.3, 0.7]) # 皇室 + 男性 \u0026gt;\u0026gt;\u0026gt; queen = np.array([0.8, 0.2, 0.1, 0.3, 0.7]) # 皇室 + 女性 \u0026gt;\u0026gt;\u0026gt; car = np.array([0.1, 0.5, 0.9, 0.8, 0.1]) # 交通工具 \u0026gt;\u0026gt;\u0026gt; \u0026gt;\u0026gt;\u0026gt; # 计算欧氏距离（越小越相似） \u0026gt;\u0026gt;\u0026gt; print(f\u0026#34;king ↔ queen 距离: {np.linalg.norm(king - queen):.2f}\u0026#34;) king ↔ queen 距离: 0.61 \u0026gt;\u0026gt;\u0026gt; print(f\u0026#34;king ↔ car 距离: {np.linalg.norm(king - car):.2f}\u0026#34;) king ↔ car 距离: 1.41 结果解读： 0.61 vs 1.41 —— king 和 queen 的距离只有 king 和 car 的一半不到。向量越接近，语义越接近。\n继续验证\u0026quot;平行四边形\u0026quot;关系——king − man ≈ queen − woman：\n\u0026gt;\u0026gt;\u0026gt; man = np.array([0.2, 0.9, 0.1, 0.2, 0.5]) \u0026gt;\u0026gt;\u0026gt; woman = np.array([0.1, 0.1, 0.1, 0.2, 0.5]) \u0026gt;\u0026gt;\u0026gt; \u0026gt;\u0026gt;\u0026gt; print(f\u0026#34;king - man = {king - man}\u0026#34;) king - man = [ 0.7 -0.1 0. 0.1 0.2] \u0026gt;\u0026gt;\u0026gt; print(f\u0026#34;queen - woman = {queen - woman}\u0026#34;) queen - woman = [0.7 0.1 0. 0.1 0.2] \u0026gt;\u0026gt;\u0026gt; \u0026gt;\u0026gt;\u0026gt; # 两个\u0026#34;方向向量\u0026#34;之间的距离 \u0026gt;\u0026gt;\u0026gt; print(f\u0026#34;两个方向的距离: {np.linalg.norm((king-man) - (queen-woman)):.2f}\u0026#34;) 两个方向的距离: 0.20 结果解读： 距离只有 0.20，几乎一样！从 man 到 king 的\u0026quot;方向\u0026quot;和从 woman 到 queen 的\u0026quot;方向\u0026quot;高度一致——\u0026ldquo;皇室\u0026quot;这个概念被编码成了一个方向。\n本章小结 本篇核心要点 一、用数字描述一切\n1 个数字 → 数轴上的点（温度、体重） 2 个数字 → 平面上的点（地图坐标） N 个数字 → N 维空间中的点（游戏属性卡） 二、向量 = 一串有序的数字\n写法：v = [v₁, v₂, \u0026hellip;, vₙ] 256 维向量不比 2 维向量更\u0026quot;难\u0026rdquo;，只是更长 三、AI 把每个词变成向量\n词向量 = 几百个数字，描述一个词的\u0026quot;含义\u0026rdquo; 意思相近的词 → 向量相近 → 空间中距离更短 king - man ≈ queen - woman（向量的方向蕴含语义关系） 四、这是一切 AI 计算的起点\n神经网络不认字，只认向量 后续的所有操作（比较、变换、组合）都是对向量的数学运算 下一篇预告 我们已经知道万物可以变成向量。下一个问题是：\n怎么衡量两个向量有多相似？\n答案是一个简单到令人惊讶的运算——点积。它是 AI 里最重要的单步运算，ChatGPT 每次回答你的问题，都要执行数万亿次点积。\n下一篇：AI 的数学语言（二）：向量的加减法——数字世界的方向与距离\n本文首发于「AI 学习笔记」博客：https://Jason-Azure.github.io/ai-blog/\n微信公众号：AI-lab学习笔记\n系列文章完整列表见 标签：线性代数\n","permalink":"https://jason-azure.github.io/ai-blog/posts/math-for-ai-1-vectors/","summary":"从温度计上的刻度到 ChatGPT 里的词向量，理解 AI 的第一步：用一串数字描述万物。零基础线性代数系列第一篇。","title":"AI 的数学语言（一）：用数字画地图——从数轴到高维空间"},{"content":" 📖 导读 这不是一篇\u0026quot;什么是神经网络\u0026quot;的科普。\n这篇文章要回答的问题是：数学世界里有那么多精妙的工具，凭什么偏偏选了神经网络来做 AI？\n我们将检阅人类 400 年来发明的函数拟合方法——泰勒级数、傅里叶级数、多项式插值、样条曲线、核方法——像一场淘汰赛一样，逐一看清它们的优势与致命缺陷。最后你会发现：不是人类\u0026quot;选择\u0026quot;了神经网络，而是只有神经网络满足所有条件。\n灵感来源：Emergent Garden 的精彩视频 Watching Neural Networks Learn。\n① 万物皆是函数 → ② 泰勒级数 → ③ 傅里叶级数 → ④ 多项式与样条 → ⑤ 核方法与 SVM → ⑥ 神经网络 → ⑦ 终极对比 第一章：万物皆是函数 🎨 你拍一张照片，手机里发生了什么？\n每个像素接收一个坐标 (x, y)，输出一个颜色 (R, G, B)。这就是一个函数：\nf(x, y) → (R, G, B)\n你问 ChatGPT 一个问题，它做了什么？\n接收一串文字（上文），输出下一个最可能的词。这也是一个函数：\nf(\u0026ldquo;今天天气\u0026rdquo;) → \u0026ldquo;很好\u0026rdquo;\n天气预报、股票预测、医学诊断、自动驾驶——所有这些任务，本质上都是在求解一个函数。\n问题来了：这个函数 f，我们不知道它长什么样。\n我们只有一堆输入-输出的样本（数据），需要找到一个函数来\u0026quot;拟合\u0026quot;这些数据——让它在没见过的输入上也能给出合理的输出。\n这就是函数拟合问题。人类为此探索了 400 年。\n关键设问： 400 年来，数学家发明了各种精妙的方法来逼近未知函数。泰勒、傅里叶、拉格朗日、贝塞尔、SVM……每一种都在自己的领域里璀璨夺目。但当我们需要一个\u0026quot;通用学习机器\u0026quot;时，为什么最终胜出的是神经网络？\n让我们一个一个来看。\n第二章：泰勒级数——局部的完美主义者 🔵 1715 年的天才想法 布鲁克·泰勒（Brook Taylor）在 1715 年提出了一个优美的想法：\n在一个点附近，任何\u0026quot;光滑\u0026quot;的函数都可以用多项式来逼近。\n公式长这样：\nf(x) ≈ f(a) + f′(a)(x−a) + f″(a)(x−a)²/2! + f′′′(a)(x−a)³/3! + …\n直觉翻译：站在点 a 上，用这个点的函数值、斜率、曲率……一层层叠加，像搭积木一样拼出函数的形状。\n阶数越高，逼近越精确——至少在 a 附近是这样。\n看看效果 动图展示了 sin(x) 的泰勒展开从 1 阶到 15 阶的过程。注意看：\n绿色区域（收敛区）里，逼近精度惊人 离开中心点越远，曲线开始疯狂偏离 15 阶时，中心附近已经完美重合，但两端飞到了天上 泰勒的成绩单 ✅ 优点：\n数学优美，推导简洁 在展开点附近精度极高 物理学的核心工具（力学、电磁学、量子力学处处用到） 可以用有限的导数信息重建函数 ❌ 致命缺陷：\n收敛半径有限——离开展开点就崩溃 全局拟合无能为力——想逼近一个定义在整个实数轴上的函数？没门 高维扩展困难——二维的泰勒展开已经很复杂，万维？不可能 泰勒级数是\u0026quot;局部思维\u0026quot;的极致。它像一个显微镜——在一个点上看得无比清晰，但视野极其有限。\n对 LLM 来说：语言模型需要理解万亿维度的全局规律，而泰勒只能看一个点的邻域。第一个选手，淘汰。\n第三章：傅里叶级数——频率的魔法师 🟢 1807 年的革命 约瑟夫·傅里叶（Joseph Fourier）在研究热传导时，发现了一个惊人的事实：\n任何周期函数，都可以写成正弦波和余弦波的叠加。\n这听起来不可思议——一个锯齿形的方波，竟然能用光滑的正弦波拼出来？\n能！只要你愿意叠加足够多的波。\n与泰勒的本质区别 泰勒在一个\u0026quot;点\u0026quot;附近展开，傅里叶在\u0026quot;全局\u0026quot;用波去拼。这是两种完全不同的哲学：\n泰勒：站在一个点，向外扩张 → 局部 → 全局（常常失败） 傅里叶：用全局的波，拼出细节 → 全局 → 局部（通过高频） 看看效果 动图展示了方波的傅里叶逼近从 1 项到 50 项的过程。注意看：\n随着项数增加，整体形状越来越接近方波 但在跳变点处，总有一个约 9% 的过冲永远消不掉——这就是著名的吉布斯现象（Gibbs Phenomenon） 即使用无穷多项，跳变点的过冲也不会消失！ 傅里叶的成绩单 ✅ 优点：\n全局逼近——不像泰勒那样局限于一个点 信号处理的基石——MP3、JPEG、5G 通信、MRI 成像全靠它 数学理论完备（Parseval 定理、卷积定理） 快速算法（FFT）使大规模计算成为可能 ❌ 致命缺陷：\n吉布斯现象——对不连续函数永远有过冲 高维失效——从 1D 到 1000D，需要的基函数数量指数爆炸 不能自动学习——基函数（sin/cos）是固定的，参数需要解析计算 非周期信号需要拓展处理（DFT/STFT/小波） 一个来自视频的关键洞察：频谱偏差 Emergent Garden 的视频中展示了一个有趣现象：神经网络在学习目标函数时，总是先学会低频成分，再慢慢学习高频细节。 这被称为\u0026quot;频谱偏差（Spectral Bias）\u0026quot;。\n这恰好说明了傅里叶视角的价值——即使在神经网络内部，频率依然是理解学习过程的关键语言。傅里叶没有赢得比赛，但它的思想渗透在了赢家的每一步训练中。\n对 LLM 来说：语言不是周期信号，文本的\u0026quot;维度\u0026quot;是词汇表大小（数万到十万维），傅里叶的基函数数量会爆炸。第二个选手，淘汰。\n第四章：多项式与样条——曲线的裁缝 🟣 多项式插值：精确但危险 拉格朗日（Lagrange）证明了一个优美的定理：\nn 个数据点，恰好能唯一确定一个 n−1 次多项式通过所有点。\n这听起来完美——有多少数据就用多高的多项式，精确通过每一个点。但问题来了……\n龙格现象：多项式的噩梦 1901 年，卡尔·龙格（Carl Runge）用一个简单的函数 f(x) = 1/(1+25x²) 击碎了高阶多项式的美梦：\n当插值点数增加时，多项式在边缘处疯狂振荡，误差不减反增！\n动图从 3 个点到 21 个点，对比两种方法：\n左图（多项式）：随着点数增加，边缘振荡越来越剧烈，完全失控 右图（样条）：始终平稳地贴合原函数，没有失控 样条的智慧：分而治之 样条曲线（Spline）的思路极其朴素：\n别用一条高阶多项式通吃，把曲线切成小段，每段用低阶多项式（通常是三次），接合处保证光滑。\n这就像一个好裁缝——不用一整块布裁出衣服，而是分片裁剪再缝合。每一片都简单可控，缝合处平滑自然。\n贝塞尔曲线（Bézier Curve）是样条思想的明星应用：\nPhotoshop 的钢笔工具 字体设计（TrueType/OpenType 字体的每个字母） 工业设计（汽车曲面、飞机机翼） 动画（运动路径插值） 多项式与样条的成绩单 ✅ 优点：\n样条拟合稳定，没有龙格现象 在 2D/3D 曲线拟合中无可替代 计算高效，理论成熟 工业设计和计算机图形学的基石 ❌ 致命缺陷：\n维度诅咒——从 2D 到 1000D，需要的控制点数量指数爆炸 2D 曲面：100×100 = 10,000 个控制点 100D：100¹\u0026amp;sup0;\u0026amp;sup0; = 10²\u0026amp;sup0;\u0026amp;sup0; 个控制点——比宇宙原子数还多 不能自动学习——控制点位置需要人工指定或预设 不能做生成——它只能内插，不能创造新数据 对 LLM 来说：GPT-4 的输入空间是 128,000 个 token × 100,000 词汇 = 天文数字维度。样条在这个维度下需要的参数量超出宇宙能承载的范围。第三个选手，淘汰。\n第五章：核方法与 SVM——高维的魔术 🔘 核技巧：天才的迂回 到了 1990 年代，机器学习的明星是支持向量机（SVM）。它的核心思想极其巧妙：\n在原始空间中无法线性分类的数据，映射到更高维的空间后，可能就能用一个平面一刀切开。\n举个例子：\n左图：二维平面上，两类数据（蓝色和粉色）套在一起，画不出一条直线分开它们 中间：核技巧把 (x₁, x₂) 映射到 (x₁, x₂, x₁²+x₂²)，加了一个维度 右图：在三维空间中，两类数据被一个平面（绿色）干净利落地分开了 这就是\u0026quot;核技巧（Kernel Trick）\u0026quot;——用数学上的映射代替真正的高维计算，优雅而高效。\nSVM 的黄金时代 在 2000 年代，SVM 统治了机器学习竞赛。它有严格的数学基础（统计学习理论、VC 维），在手写数字识别、文本分类等任务上表现优异。\n核方法的成绩单 ✅ 优点：\n理论优雅，有坚实的数学保障（最大间隔、泛化边界） 小数据上表现好，不容易过拟合 可解释性强（支持向量就是决策依据） 核技巧避免了真正的高维计算 ❌ 致命缺陷：\n计算复杂度 O(n²)~O(n³)——数据量超过十万就崩溃 不能做\u0026quot;生成\u0026quot;——SVM 只能分类和回归，不能输出一段话、一张图 不能端到端学习特征——需要人工设计特征（特征工程），模型本身不学特征 不能增量学习——新数据来了要重新训练全部 关键对比：分类 vs 生成 这是核方法被淘汰的最根本原因——LLM 需要的是生成，不是分类。\nSVM 做的事： 输入一封邮件 → 输出一个标签（垃圾/非垃圾） LLM 做的事： 输入一段话 → 输出下一段话（创造新内容） 分类是从有限选项中选一个。生成是在无穷可能中创造一个。\nSVM 是一个优秀的裁判，但它不会写诗。\n对 LLM 来说：训练数据是数万亿 token，SVM 的 O(n³) 复杂度让它连启动都做不到。更根本的是，SVM 不能生成。第四个选手，淘汰。\n第六章：神经网络——为什么是它？ 💗 四个选手全部淘汰。现在我们来看最后一个——神经网络。\n万能逼近定理：理论底气 1989 年，Cybenko 和 Hornik 分别证明了：\n只要一个隐藏层足够宽，带非线性激活函数的前馈神经网络可以逼近任何连续函数。\n这就是万能逼近定理（Universal Approximation Theorem）。它给了神经网络一张理论\u0026quot;入场券\u0026quot;——任何你想拟合的函数，原则上它都能拟合。\n（详细解读见：为什么矩阵和激活函数就能涌现智能？）\n但这还不够。泰勒级数也能逼近任何光滑函数——理论上可以，实际上做不到。神经网络凭什么不一样？\n看看神经网络怎么学的 动图展示了一个神经网络从随机初始化到拟合复杂函数的过程：\nStep 0：一条杂乱的噪声线 Step 200：已经学到了函数的\u0026quot;大致走向\u0026quot;（低频成分） Step 2000：开始捕获高频细节 Step 5000：几乎完美重合 注意 频谱偏差（Spectral Bias）：网络先学低频、再学高频。这不是缺点——这是一种隐式正则化，帮助模型避免过拟合，先抓本质规律再抓细节。\n五个独一无二的优势 为什么前面四个选手做不到的事，神经网络做到了？因为它同时具备了五个关键特性：\n❶ 可扩展性（Scalability）\n参数量可以从 4,000（microgpt）到 1.8 万亿（GPT-4），性能随规模平滑提升。这就是 Scaling Laws——不是\u0026quot;越大越好\u0026quot;的经验主义，而是有数学规律的幂律关系。\n其他方法？泰勒加阶数只在局部有用，傅里叶加项数会遇到吉布斯现象，多项式加阶数会遇到龙格现象，SVM 加数据会遇到 O(n³) 的墙。\n（详细解读见：为什么把模型做大就能变聪明？）\n❷ 自动学习（Automatic Learning）\n泰勒需要你手动算导数，傅里叶需要你解析计算系数，样条需要你选择控制点，SVM 需要你设计特征。\n神经网络？给它数据和一个损失函数，梯度下降自动找到所有参数。 不需要人设计基函数，不需要先验知识，不需要手工特征工程。\n❸ 高维友好（High-Dimensional Friendly）\n这是最关键的一点。前面每个方法都被\u0026quot;维度诅咒\u0026quot;击败了。神经网络为什么能绕过？\n因为真实数据不是均匀分布在整个高维空间中的，而是集中在低维流形（manifold）上。想象一张照片的所有像素值——理论上有 256^(百万) 种组合，但真正有意义的图片只占极小的一部分。\n神经网络通过层层变换，自动发现这些低维结构。再加上参数共享（卷积网络共享卷积核，Transformer 共享注意力头），参数量远小于\u0026quot;暴力覆盖\u0026quot;全空间所需的量。\n（相关分析见：为什么 AI 离不开线性？）\n❹ 表示学习（Representation Learning）\n泰勒用多项式基，傅里叶用正弦基，SVM 用核函数——这些基函数都是人类预先选定的。\n神经网络自动学习中间表示（embedding）。一个词被映射到一个高维向量，这个向量捕获了语义、语法、情感等多层信息——这些\u0026quot;特征\u0026quot;是模型自己发现的，不是人设计的。\n这就是为什么同一个架构能做翻译、写诗、编程、做数学——它能自动学习不同任务需要的表示。\n❺ 生成能力（Generation）\n核方法能分类，不能生成。样条能插值，不能创造。\n神经网络可以输出任意复杂的高维结构——一段话（GPT）、一张图（DALL-E）、一段音频（Whisper）、一段视频（Sora）。\n生成，是从\u0026quot;理解规律\u0026quot;到\u0026quot;应用规律\u0026quot;的跨越。只有神经网络做到了。\n来自视频的关键洞察：激活函数的选择 Emergent Garden 的视频展示了不同激活函数对拟合效果的影响：\nReLU（修正线性单元）：最常用的激活函数。它把负数变成零，正数保持不变。结果是分段线性逼近——像用折线去拼曲线。简单、高效、计算快，但存在频谱偏差（学高频慢）。\nSIREN（sin 激活）：Matthew Tancik 等人提出，用正弦函数作为激活函数。效果惊人——平滑地拟合高频细节，连毛发纹理都能捕获。但训练不稳定，需要精心初始化。\nFourier Features（傅里叶特征）：在输入端用正弦函数编码坐标，解决 ReLU 的频谱偏差问题。这是一个绝妙的混合——傅里叶的思想嫁接到了神经网络的框架中。\n看到了吗？傅里叶级数没有赢得比赛，但它的精髓被神经网络吸收了。 历史上被淘汰的选手，并没有真正消失——它们的思想活在了冠军的 DNA 里。\n第七章：一张表终结所有比较 现在，让我们把六种方法放在一起做一次终极对比。\n雷达图总览 一眼就能看到：神经网络是唯一在高维可扩展性、自动学习、生成能力三个维度上得分为 5 的方法。 但它的可解释性和计算效率是所有方法中最差的。\n详细对比表 维度 泰勒级数 傅里叶级数 多项式/样条 核方法/SVM 神经网络 诞生年代 1715 1807 1795/1946 1992/1995 1943/1989 逼近方式 点展开 频率叠加 点插值/分段 核映射 层层变换 全局精度 ⭐⭐ ⭐⭐⭐⭐ ⭐⭐⭐⭐ ⭐⭐⭐⭐ ⭐⭐⭐⭐⭐ 高维扩展 ⭐ ⭐⭐ ⭐ ⭐⭐⭐ ⭐⭐⭐⭐⭐ 自动学习 ⭐ ⭐ ⭐ ⭐⭐⭐ ⭐⭐⭐⭐⭐ 生成能力 ⭐ ⭐ ⭐ ⭐ ⭐⭐⭐⭐⭐ 计算效率 ⭐⭐⭐⭐⭐ ⭐⭐⭐⭐ ⭐⭐⭐⭐ ⭐⭐ ⭐⭐ 可解释性 ⭐⭐⭐⭐⭐ ⭐⭐⭐⭐ ⭐⭐⭐⭐ ⭐⭐⭐⭐ ⭐ 杀手锏 局部高精度 频域分析 曲线设计 小样本分类 高维生成 致命伤 全局崩溃 吉布斯+维度 维度诅咒 O(n³)+不能生成 黑盒+耗能 今日角色 物理推导 信号处理 CAD/字体 生物信息学 AI/LLM 没有\u0026quot;最好\u0026quot;，只有\u0026quot;最适合\u0026quot; 泰勒级数在物理推导中不可替代——牛顿力学、广义相对论的线性化、量子微扰论，离了它寸步难行。\n傅里叶级数在信号处理中不可替代——你听的每一首 MP3、看的每一张 JPEG、打的每一通 5G 电话，都在用傅里叶。\n样条曲线在工业设计中不可替代——你手机屏幕上每一个字母、汽车车身的每一条曲线，都是贝塞尔曲线。\n核方法在小样本场景中依然强大——基因组分类、蛋白质功能预测，SVM 至今在用。\n但当任务变成\u0026quot;在万亿维空间中，从万亿数据中，学习并生成复杂规律\u0026quot;——只有神经网络满足所有条件。\n🎯 核心洞察： LLM 不是\u0026quot;选择\u0026quot;了神经网络——是只有神经网络同时满足了五个条件：可扩展、可学习、高维友好、能表示学习、能生成。这不是选择题，这是淘汰赛。其他方法都在某个维度上碰到了不可逾越的墙。\n结语：400 年的接力赛 回到 Emergent Garden 的视频标题：Watching Neural Networks Learn——看着神经网络学习。\n你现在知道了，当你看着那些神经网络逐步拟合目标函数的动画时，你看到的不仅仅是一个算法的运行。\n你看到的是：\n人类 400 年数学探索的最新一章。\n泰勒打下了逼近论的地基，傅里叶发现了频率的语言，拉格朗日和贝塞尔建造了曲线的工具箱，Vapnik 和 Cortes 探索了高维的魔术——每一步都不白走。\n神经网络之所以能胜出，不是因为它\u0026quot;更好\u0026quot;，而是因为它站在了所有前人的肩膀上。\nReLU 里有分段逼近的智慧，Fourier Features 里有傅里叶的回声，Scaling Laws 里有统计学的积累，梯度下降里有微积分的力量。\n没有谁被真正淘汰。他们都活在冠军的 DNA 里。\n📚 延伸阅读\n为什么矩阵和激活函数就能涌现智能？——万能近似定理 为什么 AI 离不开线性？——傅里叶分析与维度诅咒 为什么把模型做大就能变聪明？——Scaling Laws 🎬 灵感来源\n本文灵感来自 Emergent Garden 的精彩视频 Watching Neural Networks Learn，强烈推荐观看。\n博客：https://Jason-Azure.github.io/ai-blog/\n公众号：AI-lab学习笔记\n","permalink":"https://jason-azure.github.io/ai-blog/posts/function-competition/","summary":"人类 400 年来发明了无数拟合函数的方法——泰勒级数、傅里叶级数、多项式、样条、核方法。每一种都精妙绝伦。但当任务变成\u0026rsquo;在万亿维空间中学习生成规律\u0026rsquo;，只有一个选手能站到终点。这不是选择题，这是淘汰赛。","title":"函数的竞赛：人类试过的所有方法，和神经网络胜出的原因"},{"content":"引言 上一篇我们建立了一个关键认知：万物皆可用一串数字（向量）来描述。\n但光有数字还不够。AI 要用这些数字做事——第一件事就是：\n比较。 两个词有多相似？两张图有多接近？用户搜索的内容和哪篇文章最匹配？\n今天这篇，我们从向量最基本的运算——加法和减法开始，一步步走到 AI 衡量相似度的核心工具：点积和余弦相似度。\n系列导航\n▹ 第一篇：从数轴到高维空间 — 向量是什么？词怎么变成数字？ ▸ 第二篇（本文）：向量的加减法 — 点积、余弦相似度、AI 衡量\"相似\"的方法 ▹ 第三篇：矩阵——空间的变形术 — 矩阵如何变换空间（含动画演示） ▹ 第四篇：矩阵乘法与 AI — 理解 Transformer 的最后一块拼图 ▹ 第五篇：激活函数——神经网络的开关 ▹ 第六篇：梯度下降——AI 怎么学习 第一章：向量的加法——首尾相接 超市购物：最直观的类比 假设你用一个向量记录每次超市购物：[苹果数, 面包数, 牛奶数]。\n第一次购物 = [2, 3, 1] ← 2个苹果, 3个面包, 1瓶牛奶 第二次购物 = [1, 0, 2] ← 1个苹果, 0个面包, 2瓶牛奶 两次一共买了多少？对应位置相加：\n[2, 3, 1] + [1, 0, 2] = [3, 3, 3] 就是这么简单。向量加法 = 对应位置的数字相加。\n几何视角：首尾相接 如果把向量画在坐标系上，加法的几何意义是首尾相接——把第二个向量的\u0026quot;起点\u0026quot;接到第一个向量的\u0026quot;终点\u0026quot;，然后从原点到最终位置画一条新箭头。\n公式时间\n向量加法：[a₁, a₂] + [b₁, b₂] = [a₁+b₁, a₂+b₂]\n例：[3, 1] + [1, 3] = [4, 4]\n向量的减法——方向反过来 减法就是加法的反面：对应位置相减。\n[3, 1] - [1, 3] = [2, -2] 几何上，a − b 表示从 b 指向 a 的方向。还记得上一篇的 king − man ≈ queen − woman 吗？那就是用减法提取两个词之间的\u0026quot;关系方向\u0026quot;。\n第二章：向量有多长？——范数 在比较两个向量之前，我们先回答一个更基本的问题：一个向量有多\u0026quot;长\u0026quot;？\n勾股定理的推广 二维向量 [3, 4] 在坐标系上就是一个直角三角形的斜边。它的长度？勾股定理：\n|[3, 4]| = √(3² + 4²) = √(9 + 16) = √25 = 5 推广到任意维度：\n公式时间\n向量 v = [v₁, v₂, \u0026hellip;, vₙ] 的长度（范数）：\n||v|| = √(v₁² + v₂² + \u0026hellip; + vₙ²)\n2 维、5 维、256 维——公式一模一样，只是加的项数不同。\n单位向量：只保留方向 把向量除以它的长度，就得到单位向量——长度为 1，只保留方向信息。\n[3, 4] 的单位向量 = [3/5, 4/5] = [0.60, 0.80] 这一步在 AI 中极其重要——比较两个词的\u0026quot;意思\u0026quot;时，我们通常只关心方向，不关心\u0026quot;长度\u0026quot;。\n第三章：点积——AI 最重要的单步运算 现在到了重头戏。点积（Dot Product） 是 AI 里使用频率最高的运算——ChatGPT 每回答你一句话，内部都要执行数万亿次点积。\n计算方法：对应相乘，再加起来 a = [1, 2, 3] b = [4, 5, 6] a · b = 1×4 + 2×5 + 3×6 = 4 + 10 + 18 = 32 就是这么简单。对应位置相乘，结果全部加起来，得到一个数字。\n公式时间\na · b = a₁×b₁ + a₂×b₂ + \u0026hellip; + aₙ×bₙ\n两个向量进去，一个数字出来。\n点积的秘密：它在测量\u0026quot;方向一致性\u0026quot; 点积的结果不仅仅是一个数字。它藏着一个深刻的几何含义：\n点积值 含义 类比 大正数 方向很一致 两人同路 ≈ 0 几乎垂直，无关 十字路口各走各的 大负数 方向相反 面对面迎头走来 下面的动画让你直观看到这个关系——当向量 b 绕一圈旋转时，点积值随角度变化：\n同方向（0°附近）：点积为正，值最大 垂直（90°/ 270°）：点积为零 反方向（180°附近）：点积为负，值最小 如果你读过我们的 Attention 机制文章，你会记得 Q · K 这一步——\u0026ldquo;查询向量和键向量的点积\u0026rdquo;。现在你知道了：那就是在算两个向量的方向有多一致，也就是\u0026quot;这个词和那个词有多相关\u0026quot;。\n第四章：余弦相似度——消除\u0026quot;大嗓门\u0026quot;的影响 点积有一个小问题：它不仅受方向影响，还受长度影响。\n打个比方：两个人喊同一句话。一个小声说，一个用喇叭喊——他们说的话一模一样，只是\u0026quot;音量\u0026quot;不同。点积会因为\u0026quot;音量\u0026quot;大的那个给出更大的值，但我们其实只关心他们说的内容是否一致。\n解决方案：除以长度 公式时间\n余弦相似度 = 点积 ÷ (向量 a 的长度 × 向量 b 的长度)\ncos(a, b) = (a · b) / (||a|| × ||b||)\n结果范围：-1（完全相反）到 +1（完全一致）\n除以长度后，只剩下纯粹的方向信息。这就是余弦相似度——AI 世界里最常用的相似度衡量方式。\n余弦值 意思 例子 1.0 完全一致 同一个词 0.9+ 非常相似 \u0026ldquo;国王\u0026rdquo; vs \u0026ldquo;王后\u0026rdquo; 0.3~0.7 有点关系 \u0026ldquo;国王\u0026rdquo; vs \u0026ldquo;汽车\u0026rdquo; ≈ 0 毫不相关 随机两个词 -1.0 完全相反 \u0026ldquo;热\u0026rdquo; vs \u0026ldquo;冷\u0026rdquo;（理想情况） 动画：词向量的角度 下面的动画展示了不同词向量之间的角度关系——角度越小，余弦相似度越高，意思越接近：\n第五章：动手验证 在我们的 AI 实验 VM 上实际验证这些运算。\n以下命令在 Ubuntu 22.04 + Python 3.10 环境中执行：\nazureuser@ai-lab:~$ source ~/ai-lab-venv/bin/activate (ai-lab-venv) azureuser@ai-lab:~$ python3 实验一：点积计算 \u0026gt;\u0026gt;\u0026gt; import numpy as np \u0026gt;\u0026gt;\u0026gt; \u0026gt;\u0026gt;\u0026gt; a = np.array([1, 2, 3]) \u0026gt;\u0026gt;\u0026gt; b = np.array([4, 5, 6]) \u0026gt;\u0026gt;\u0026gt; print(f\u0026#34;a · b = 1×4 + 2×5 + 3×6 = {np.dot(a, b)}\u0026#34;) a · b = 1×4 + 2×5 + 3×6 = 32 实验二：余弦相似度——词向量比较 \u0026gt;\u0026gt;\u0026gt; # 定义余弦相似度函数 \u0026gt;\u0026gt;\u0026gt; def cosine_sim(v1, v2): ... return np.dot(v1, v2) / (np.linalg.norm(v1) * np.linalg.norm(v2)) \u0026gt;\u0026gt;\u0026gt; \u0026gt;\u0026gt;\u0026gt; # 沿用上一篇的简化词向量 \u0026gt;\u0026gt;\u0026gt; king = np.array([0.9, 0.8, 0.1, 0.3, 0.7]) \u0026gt;\u0026gt;\u0026gt; queen = np.array([0.8, 0.2, 0.1, 0.3, 0.7]) \u0026gt;\u0026gt;\u0026gt; car = np.array([0.1, 0.5, 0.9, 0.8, 0.1]) \u0026gt;\u0026gt;\u0026gt; \u0026gt;\u0026gt;\u0026gt; print(f\u0026#34;cos(king, queen) = {cosine_sim(king, queen):.4f}\u0026#34;) cos(king, queen) = 0.9133 \u0026gt;\u0026gt;\u0026gt; print(f\u0026#34;cos(king, car) = {cosine_sim(king, car):.4f}\u0026#34;) cos(king, car) = 0.4751 \u0026gt;\u0026gt;\u0026gt; print(f\u0026#34;cos(queen, car) = {cosine_sim(queen, car):.4f}\u0026#34;) cos(queen, car) = 0.3924 结果解读： king ↔ queen 余弦值 0.91（非常相似），king ↔ car 只有 0.48（不太相关）。余弦相似度完美区分了语义关系。\n实验三：向量范数 \u0026gt;\u0026gt;\u0026gt; v = np.array([3, 4]) \u0026gt;\u0026gt;\u0026gt; print(f\u0026#34;v = {v}, ||v|| = {np.linalg.norm(v):.2f}\u0026#34;) v = [3 4], ||v|| = 5.00 \u0026gt;\u0026gt;\u0026gt; \u0026gt;\u0026gt;\u0026gt; # 单位向量：除以长度，只保留方向 \u0026gt;\u0026gt;\u0026gt; unit_v = v / np.linalg.norm(v) \u0026gt;\u0026gt;\u0026gt; print(f\u0026#34;单位向量 = {unit_v}, 长度 = {np.linalg.norm(unit_v):.2f}\u0026#34;) 单位向量 = [0.6 0.8], 长度 = 1.00 结果解读： [3, 4] 的长度正好是 5（勾股定理），除以长度后得到 [0.6, 0.8]，长度正好是 1.00。\n第六章：这些运算在 AI 里怎么用？ 学了加法、减法、范数、点积、余弦相似度——它们在真实 AI 系统中的用途是什么？\n运算 AI 中的用途 向量加法 合并多个信号（残差连接、Embedding 叠加） 向量减法 提取语义关系（king − man + woman ≈ queen） 点积 Attention 机制的核心（Q · K 算注意力分数） 余弦相似度 语义搜索、推荐系统、RAG 检索 范数 Layer Norm（归一化层，每层都用） 尤其是点积——在 Transformer 的 Attention 机制中，每个 token 都要和所有其他 token 做点积，来决定\u0026quot;该关注谁\u0026quot;。ChatGPT 处理一句话时，可能要算几万亿次点积。\n但目前我们只能比较向量。下一个问题是：怎么改变一个向量？ 比如把词向量\u0026quot;国王\u0026quot;变成\u0026quot;这个词想问什么\u0026quot;——这种变换需要一个新工具：矩阵。\n本章小结 本篇核心要点 一、向量加减法\n加法：对应位置相加，几何上首尾相接 减法：对应位置相减，表示两个向量的\u0026quot;差异方向\u0026quot; 二、向量的长度（范数）\n||v|| = √(v₁² + v₂² + \u0026hellip; + vₙ²)，勾股定理的推广 除以长度 = 单位向量，只保留方向 三、点积 = AI 最核心的单步运算\n计算：对应相乘再求和，a · b = Σ aᵢ × bᵢ 意义：衡量方向一致性（正=同向，0=垂直，负=反向） 四、余弦相似度 = 标准化的点积\ncos(a, b) = 点积 / (||a|| × ||b||)，范围 [-1, 1] 消除长度影响，只比较方向 → AI 衡量语义相似的标准工具 下一篇预告 到目前为止，我们学会了用向量描述万物，也学会了比较向量。但 AI 不只是比较——它要变换。\n把一个向量变成另一个向量——旋转、拉伸、投影——这就是矩阵的魔法。\n下一篇：AI 的数学语言（三）：矩阵——空间的变形术\n本文首发于「AI 学习笔记」博客：https://Jason-Azure.github.io/ai-blog/\n微信公众号：AI-lab学习笔记\n系列文章完整列表见 标签：线性代数\n","permalink":"https://jason-azure.github.io/ai-blog/posts/math-for-ai-2-dot-product/","summary":"从超市购物到 ChatGPT 的注意力机制：理解向量加减法、点积和余弦相似度。零基础线性代数系列第二篇。","title":"AI 的数学语言（二）：向量的加减法——数字世界的方向与距离"},{"content":" 📖 导读 上一篇《函数的竞赛》，我们看到了神经网络在数学层面为什么能胜出——它是唯一同时满足可扩展、可学习、高维友好、能表示学习、能生成的函数拟合方法。\n但数学上的优越性，并不意味着一帆风顺。\n神经网络的真实历史是一部跌宕起伏的连续剧：被捧上神坛、被打入冷宫、在质疑中蛰伏、在绝境中重生。最不可思议的是——它的复兴居然需要改名字来甩掉旧名声的包袱。\n这个故事告诉我们：好技术不一定能成功。技术的命运，取决于人心。\n① 神经元的诞生 → ② XOR 死亡判决 → ③ 地下的火种 → ④ 改名记 → ⑤ 三大条件齐备 → ⑥ 无处不在 → ⑦ 结语 ▲ 神经网络 80 年的关注度曲线——两次崛起，两次坠落，一次改名 第一章：神经元的诞生（1943–1958）🌟 一个大胆的类比 1943 年，神经科学家 Warren McCulloch 和数学家 Walter Pitts 发表了一篇论文，提出了一个简单到近乎天真的想法：\n大脑中的神经元，可以用数学来模拟。\n一个神经元接收多个输入信号 → 加权求和 → 如果总和超过阈值就\u0026quot;激活\u0026quot;（输出 1），否则不激活（输出 0）。\n这就是 M-P 神经元（McCulloch-Pitts Neuron）——人工神经网络的第一颗种子。\n用今天的语言来写，M-P 神经元的公式就是：\ny = step(w₁x₁ + w₂x₂ + \u0026hellip; + b)\n输入 × 权重 → 求和 → 超过阈值就激活 但 M-P 神经元有一个致命限制：权重是手动设定的，不会自己学习。\n感知机：会学习的神经元 1958 年，心理学家 Frank Rosenblatt 迈出了关键一步——他发明了感知机（Perceptron）。\n感知机和 M-P 神经元的结构几乎一样，但有一个革命性的区别：权重可以通过数据自动调整。\n感知机学习规则：\n看一个样本，做出预测 如果预测对了：什么都不做 如果预测错了：调整权重，让下次更准 重复，直到所有样本都对 这是人类历史上第一个能从数据中自动学习的计算模型。\n▲ 感知机学习 AND 门：决策边界从随机位置逐步调整，最终正确分离数据 媒体的狂欢 Rosenblatt 在海军研究所用硬件实现了感知机——一台叫 Mark I Perceptron 的机器，能学会识别简单的图案。\n然后，媒体疯了。\n《纽约时报》1958 年头条：\n\u0026ldquo;海军展示了电子计算机的胚胎——它被设计为能够行走、说话、看见、写字、自我复制，并意识到自身的存在。\u0026rdquo;\n能行走、说话、自我复制？一个只会做线性分类的简单机器？\n过度炒作，埋下了灾难的种子。\n第二章：死亡判决——XOR 问题（1969）❄️ Minsky 的致命一击 1969 年，MIT 的人工智能大师 Marvin Minsky 和 Seymour Papert 出版了一本书：《Perceptrons》。\n这本书用严格的数学证明了一个简单却致命的事实：\n❌ 感知机的致命缺陷 单层感知机无法学习 XOR（异或）函数。\n而 XOR 是计算机科学中最基本的逻辑运算之一。\nXOR 是什么？非常简单：\n输入 A 输入 B XOR 输出 0 0 0 0 1 1 1 0 1 1 1 0 用大白话说：\u0026ldquo;两个输入不一样时输出 1，一样时输出 0\u0026rdquo;。\n问题出在哪？感知机做决策的方式是画一条直线把两类数据分开。但 XOR 的四个点——无论你怎么画线，都不可能把对角线上的点分开：\n▲ XOR 问题：无论决策边界怎么旋转，总有至少一个点被分错 一本书杀死了一个领域 从纯技术角度看，Minsky 说的完全正确。单层感知机确实无法解决非线性问题。\n但问题在于影响的传播方式。\nMinsky 是当时 AI 领域的绝对权威。他的书传递的信息被简化为：\n\u0026ldquo;神经网络连 XOR 都解决不了，还搞什么？\u0026rdquo;\n结果是灾难性的：\n研究经费断崖式下降——资助机构不愿意投钱给\u0026quot;被证明不行\u0026quot;的方向 学术论文无处发表——期刊编辑拒绝神经网络相关论文 研究人员纷纷转行——做神经网络等于学术自杀 博士生被劝退——\u0026ldquo;别做这个方向，毕不了业的\u0026rdquo; 这就是著名的第一次 AI 寒冬。\n🤔 讽刺的是：多层感知机（MLP）可以轻松解决 XOR 问题——只需要加一个隐藏层。Minsky 自己也知道这一点。但他的书着重强调了单层的局限性，而对多层的可能性只是轻描淡写地提了一句。\n第三章：地下的火种（1969–1986）🔥 被遗忘不等于不存在 在主流学术界抛弃神经网络的 17 年里，有少数研究者没有放弃。他们像地下的火种，在黑暗中缓慢燃烧。\n他们面对的核心问题是：\n加一个隐藏层就能解决 XOR——但怎么训练多层网络？\n感知机的学习规则只能调最后一层的权重。中间层的权重怎么调？\n这个问题的答案，叫反向传播（Backpropagation）。\n反向传播的核心思想出奇地简单：\n反向传播三步走：\n前向传播：把数据从输入层传到输出层，得到预测结果 计算误差：预测和真实答案的差距 反向传播：用链式法则，把误差从输出层倒着传回每一层，告诉每个权重\u0026quot;你该变多少\u0026quot; 本质上，反向传播就是微积分的链式法则在多层网络上的应用。它让误差信号能够\u0026quot;穿透\u0026quot;所有层，指导每个权重的更新方向。\n反向传播的想法其实早在 1970 年代就有人提出，但真正引起轰动的是 1986 年 David Rumelhart、Geoffrey Hinton 和 Ronald Williams 在 Nature 上发表的论文。\nXOR 被解决了 有了反向传播，多层网络终于可以训练了。XOR 问题？加一个隐藏层就搞定：\n▲ 单层 → 失败 ❌；增加隐藏层 → 两条线联合决策 → XOR 解决 ✅ 单层感知机只能画一条线。加了隐藏层后，网络可以画两条线，用它们的组合区域来做分类。这就是\u0026quot;深度\u0026quot;的力量——每加一层，就增加一种\u0026quot;折叠\u0026quot;空间的能力。\n第四章：第二次寒冬和改名记（1995–2012）🎭 短暂的春天，又一次冰封 反向传播让神经网络迎来了第二次春天。但好景不长。\n到了 1990 年代中期，神经网络再次遇到了瓶颈：\n层数加深，训练就崩——梯度消失问题让超过 2-3 层的网络几乎无法训练 计算力不够——当时的计算机跑不动大规模网络 数据量不够——互联网还没有爆发，大规模数据集不存在 SVM 崛起——支持向量机有严格的数学保证，效果也不差 更要命的是名声问题。经历了感知机的过度炒作和崩盘，\u0026ldquo;神经网络\u0026quot;这三个字在学术界已经变成了一个负面标签：\n\u0026ldquo;你还在做神经网络？\u0026quot;——同事投来异样的目光。\n\u0026ldquo;你的论文用了神经网络？\u0026quot;——审稿人直接拒稿。\n\u0026ldquo;你要申请神经网络项目经费？\u0026quot;——基金会连材料都不看。\nHinton 后来回忆说：\u0026ldquo;在那个年代，如果你在论文里提到\u0026rsquo;神经网络\u0026rsquo;，论文就会被自动拒稿。\u0026rdquo;\n深度学习：一次精心策划的\u0026quot;改名\u0026rdquo; 2006 年，Geoffrey Hinton 做了一件看似不起眼但意义深远的事情：他给神经网络换了个名字。\n🎯 关键转折 Hinton 不再叫它\u0026quot;Neural Networks（神经网络）\u0026quot;，而是叫它——\nDeep Learning（深度学习） 为什么改名？Hinton 说得很坦率：\n\u0026ldquo;我们需要一个新名字。\u0026lsquo;神经网络\u0026rsquo;这个词已经被污名化了。人们一听到这个名字，就会本能地拒绝。我们必须换一个名字，让他们愿意重新审视这个技术。\u0026rdquo;\n这是一个关于人性的深刻洞察：\n同样的技术，换个名字，人们就愿意重新看一眼 同样的论文，题目里用\u0026quot;Deep Learning\u0026quot;代替\u0026quot;Neural Network\u0026rdquo;，就不会被秒拒 同样的项目，换个名称申请经费，成功率截然不同 科学是客观的。但做科学的人不是。\n\u0026ldquo;深度学习\u0026quot;这个名字选得也精妙——它暗示了\u0026quot;深层\u0026quot;和\u0026quot;学习\u0026quot;两个正面概念，同时完全不提\u0026quot;神经\u0026quot;二字，避免了所有历史包袱。\n💡 思考题：今天我们说的\u0026quot;深度学习\u0026rdquo;、\u0026ldquo;神经网络\u0026rdquo;、\u0026ldquo;AI\u0026rdquo;，其实指的是同一族技术。但如果 Hinton 当年没有改名，而是继续叫\u0026quot;神经网络\u0026rdquo;，它的命运会不会完全不同？\n第五章：三大条件终于齐备（2012–2017）🚀 AlexNet：引爆点 2012 年，Hinton 的学生 Alex Krizhevsky 带着一个叫 AlexNet 的深度卷积神经网络参加了 ImageNet 图像识别大赛。\n结果？\nAlexNet 的错误率：15.3%\n第二名（传统方法）的错误率：26.2%\n差距：超过 10 个百分点——这在学术界是碾压级的。\n为什么偏偏是 2012 年？因为三个条件在这一年首次同时满足：\n条件 1990s 2012 算法 反向传播有了，但梯度消失 ReLU + Dropout + BatchNorm ✅ 算力 CPU 跑不动大网络 GPU（NVIDIA CUDA）✅ 数据 数据集小且稀缺 ImageNet 120 万张标注图片 ✅ 这就像火箭发射需要燃料、引擎和发射台——三者缺一不可。神经网络不是突然变强了，而是等了 50 年，终于等到了它需要的一切。\nTransformer：最后一块拼图 2017 年，Google 团队发表了论文 Attention Is All You Need，提出了 Transformer 架构。\nTransformer 做了一个简单但深远的改变：\n不再按顺序处理数据，而是让每个位置都能直接\u0026quot;看到\u0026quot;其他所有位置。\n这就是自注意力机制（Self-Attention）——让一句话中的每个词都能直接关注到其他所有词。\nTransformer 带来了两个关键优势：\n并行化：不用等上一个词算完才能算下一个词，GPU 可以同时计算所有位置 长距离依赖：第 1 个词可以直接关注第 1000 个词，不用像 RNN 那样\u0026quot;传话\u0026rdquo; Transformer 解锁了大规模语言模型的可能性。GPT、BERT、ChatGPT——全部基于 Transformer。\n第六章：从被遗忘到无处不在（2022–今天）🌍 ChatGPT：全民知道了\u0026quot;神经网络\u0026quot; 2022 年 11 月 30 日，OpenAI 发布了 ChatGPT。两个月内用户突破一亿。\n突然之间，每个人都在谈论\u0026quot;AI\u0026quot;、\u0026ldquo;大模型\u0026rdquo;、\u0026ldquo;神经网络\u0026rdquo;。\n而这个技术的底座——就是当年被一本书判了死刑的那个东西。\n▲ 深度学习论文数量的指数级爆炸——从 2006 年的 50 篇到 2024 年的 17 万篇 历史的讽刺 让我们把时间线拉回来，感受一下这段历史有多荒诞：\n年份 发生了什么 社会评价 1958 感知机问世 \u0026ldquo;将会改变世界！\u0026rdquo; 1969 《Perceptrons》出版 \u0026ldquo;垃圾，别浪费时间了\u0026rdquo; 1986 反向传播论文 \u0026ldquo;嗯，也许可以再看看\u0026rdquo; 1995 SVM 表现更好 \u0026ldquo;又不行了，SVM 才是正道\u0026rdquo; 2006 Hinton 改名\u0026quot;深度学习\u0026quot; \u0026ldquo;深度学习？新东西？看看\u0026rdquo; 2012 AlexNet 碾压传统方法 \u0026ldquo;天哪，这东西真的行！\u0026rdquo; 2022 ChatGPT 发布 \u0026ldquo;改变世界！（这次是真的）\u0026rdquo; 同一个技术，同一个数学原理，人类的评价翻了四次。\n结语：技术的命运，终究是人的命运 神经网络的 80 年历史，本质上是一个关于人性的故事。\n过度炒作（1958）导致了不切实际的期望 权威效应（1969）让一本书杀死了一个领域 从众心理（1970-1986）让所有人都远离\u0026quot;不受欢迎\u0026quot;的方向 标签效应（2006）让改名字就能重获新生 羊群效应（2012-今天）让所有人都涌向\u0026quot;热门\u0026quot;方向 技术本身从来没有变。变的是人们看待它的方式。\n🎯 核心洞察 神经网络的故事给我们三个教训：\n好技术不一定能活下来——资源、声誉和时机同样重要 权威的判断可以是错的——Minsky 的数学没错，但他的结论导致了 20 年的停滞 科技也要懂人心——Hinton 的\u0026quot;改名\u0026quot;策略，和技术本身的突破同样关键 下次有人问你\u0026quot;什么是深度学习\u0026quot;，你可以说：\n它就是神经网络。一个被判过死刑、被冷落了 20 年、靠改名字复活的 80 岁老兵——如今统治着整个 AI 世界。\n📚 延伸阅读\n上一篇：函数的竞赛——为什么数学世界偏偏选了神经网络来做 AI Minsky \u0026amp; Papert, Perceptrons (1969)——那本\u0026quot;杀死\u0026quot;神经网络的书 Rumelhart, Hinton \u0026amp; Williams, Learning representations by back-propagating errors (1986)——反向传播的里程碑论文 Krizhevsky et al., ImageNet Classification with Deep Convolutional Neural Networks (2012)——AlexNet，引爆深度学习革命 Vaswani et al., Attention Is All You Need (2017)——Transformer，奠定大模型基石 🎬 人物致敬\n2018 年图灵奖授予 Geoffrey Hinton、Yann LeCun 和 Yoshua Bengio——三位在\u0026quot;AI 寒冬\u0026quot;中坚守神经网络的研究者。他们用几十年的坚持，证明了一个被世界抛弃的技术可以改变世界。\n","permalink":"https://jason-azure.github.io/ai-blog/posts/neural-network-history/","summary":"一个 80 年的真实故事：被一本书判了死刑，被一个算法起死回生，靠改名字重获新生——科技的命运，终究也逃不过人性。","title":"神经网络沉浮录：从万众瞩目到无人问津，再到改变世界"},{"content":"引言 前两篇我们掌握了：向量（用数字描述万物）和点积（比较两个向量有多相似）。\n但 AI 不仅仅比较——它要变换。\n在 Transformer 中，每个词向量都要经过三次不同的变换，变成 Q（查询）、K（键）、V（值）三个新向量。做这件事的工具就是矩阵。\n今天这篇，我们从最直观的\u0026quot;空间变形\u0026quot;开始，理解矩阵到底在做什么。\n系列导航\n▹ 第一篇：从数轴到高维空间 ▹ 第二篇：向量的加减法 — 点积与余弦相似度 ▸ 第三篇（本文）：矩阵——空间的变形术 ▹ 第四篇：矩阵乘法与 AI — 理解 Transformer 的最后一块拼图 ▹ 第五篇：激活函数——神经网络的开关 ▹ 第六篇：梯度下降——AI 怎么学习 第一章：矩阵是什么？ 一张数字表格 向量是一行数字。矩阵就是把好几个向量摞在一起——一张数字表格：\n向量: [1, 2, 3] ← 1 行 3 列 矩阵: [[1, 2, 3], ← 2 行 3 列 [4, 5, 6]] 矩阵的大小用**\u0026ldquo;行 × 列\u0026rdquo;**来描述。上面是一个 2×3 矩阵（2 行 3 列）。\n矩阵的超能力：变换向量 矩阵最重要的用途不是存数据，而是变换向量。想象它是一台\u0026quot;加工机\u0026quot;：\n原向量 → [ 矩阵加工机 ] → 新向量 输入: 5维词向量 输出: 3维查询向量 \u0026#34;国王\u0026#34; [0.9, 0.8, 0.1, 0.3, 0.7] → W_q → [0.35, 0.68, -1.27] 这就是矩阵 × 向量——AI 里最核心的操作之一。\n第二章：矩阵 × 向量 = 空间变换 怎么算：每行和向量做点积 矩阵乘以向量的计算，其实就是矩阵的每一行和向量分别做点积：\n矩阵 M = [[2, 0], 向量 v = [3, 1] [0, 3]] M × v = [第1行 · v, 第2行 · v] = [2×3 + 0×1, 0×3 + 3×1] = [6, 3] 看到了吗？输入 [3, 1]，输出 [6, 3]。x 方向放大了 2 倍，y 方向放大了 3 倍。这个矩阵是一个缩放变换。\n公式时间\n矩阵 M (m×n) × 向量 v (n×1) = 新向量 (m×1)\n每行和 v 做点积，得到结果的一个分量。\n动画：矩阵把正方形变成平行四边形 下面的动画展示了一个矩阵作用于整个正方形区域——每个点都被同一个矩阵变换，正方形变成了平行四边形：\n红色箭头：原来的 (1, 0) 被变换到新位置 — 这是矩阵第一列 绿色箭头：原来的 (0, 1) 被变换到新位置 — 这是矩阵第二列 关键洞察： 只要你知道矩阵把 (1,0) 和 (0,1) 变到了哪里，就能知道它把任何点变到哪里。矩阵的两列，就是这两个基础方向的\u0026quot;新位置\u0026quot;。\n第三章：常见的变换类型 不同的矩阵 = 不同的变换。这里是三种最直观的：\n变换类型 矩阵示例 效果 缩放 [[2, 0], [0, 3]] x 放大 2 倍，y 放大 3 倍 旋转 [[0.71, -0.71], [0.71, 0.71]] 逆时针旋转 45° 投影 3×5 矩阵 5 维压缩到 3 维 动画：旋转矩阵——整个空间一起转 旋转矩阵是最优美的变换——所有点保持原来的距离和角度关系，只是整体旋转了一个角度：\n第四章：AI 里的矩阵——Q、K、V 投影 在 Transformer 中，矩阵最重要的用途是把词向量变成三个新向量：\n词向量 \u0026#34;国王\u0026#34; → W_q → 查询向量 Q (\u0026#34;我在找什么？\u0026#34;) 词向量 \u0026#34;国王\u0026#34; → W_k → 键向量 K (\u0026#34;我能提供什么？\u0026#34;) 词向量 \u0026#34;国王\u0026#34; → W_v → 值向量 V (\u0026#34;我的具体内容\u0026#34;) 这三个矩阵 W_q、W_k、W_v 不是人类设计的——它们是 AI 在训练中自己学到的。训练的目标是找到最好的变换方式，让模型能准确预测下一个词。\n为什么需要不同的变换？ 同一个词在不同角色下需要不同的表示：\n当它在\u0026quot;找东西\u0026quot;时（Q）：强调\u0026quot;我需要什么信息\u0026quot; 当它在\u0026quot;被找\u0026quot;时（K）：强调\u0026quot;我是什么类型的信息\u0026quot; 当它在\u0026quot;传递内容\u0026quot;时（V）：强调\u0026quot;我的实际内容是什么\u0026quot; 矩阵还有一个关键能力：改变向量的维度。一个 3×5 矩阵可以把 5 维向量变成 3 维向量——这就是\u0026quot;降维\u0026quot;或\u0026quot;投影\u0026quot;。\n第五章：动手验证 以下命令在 Ubuntu 22.04 + Python 3.10 环境中执行：\nazureuser@ai-lab:~$ source ~/ai-lab-venv/bin/activate (ai-lab-venv) azureuser@ai-lab:~$ python3 实验一：旋转矩阵 \u0026gt;\u0026gt;\u0026gt; import numpy as np \u0026gt;\u0026gt;\u0026gt; \u0026gt;\u0026gt;\u0026gt; # 45度旋转矩阵 \u0026gt;\u0026gt;\u0026gt; theta = np.pi / 4 \u0026gt;\u0026gt;\u0026gt; R = np.array([[np.cos(theta), -np.sin(theta)], ... [np.sin(theta), np.cos(theta)]]) \u0026gt;\u0026gt;\u0026gt; print(f\u0026#34;R = [[{R[0,0]:.2f}, {R[0,1]:.2f}], [{R[1,0]:.2f}, {R[1,1]:.2f}]]\u0026#34;) R = [[0.71, -0.71], [0.71, 0.71]] \u0026gt;\u0026gt;\u0026gt; \u0026gt;\u0026gt;\u0026gt; v = np.array([1, 0]) # 指向右边的单位向量 \u0026gt;\u0026gt;\u0026gt; print(f\u0026#34;R × [1, 0] = [{(R @ v)[0]:.2f}, {(R @ v)[1]:.2f}]\u0026#34;) R × [1, 0] = [0.71, 0.71] 结果解读： (1, 0) 旋转 45° 后变成 (0.71, 0.71) — 正好是 45° 方向的单位向量！\n实验二：模拟 Transformer 的 Q 投影 \u0026gt;\u0026gt;\u0026gt; # 模拟 W_q: 把 5 维词向量投影到 3 维查询空间 \u0026gt;\u0026gt;\u0026gt; np.random.seed(42) \u0026gt;\u0026gt;\u0026gt; W_q = np.random.randn(3, 5) * 0.5 \u0026gt;\u0026gt;\u0026gt; \u0026gt;\u0026gt;\u0026gt; king = np.array([0.9, 0.8, 0.1, 0.3, 0.7]) \u0026gt;\u0026gt;\u0026gt; q_king = W_q @ king \u0026gt;\u0026gt;\u0026gt; print(f\u0026#34;king (5维) = {king}\u0026#34;) king (5维) = [0.9 0.8 0.1 0.3 0.7] \u0026gt;\u0026gt;\u0026gt; print(f\u0026#34;q_king (3维) = [{\u0026#39;, \u0026#39;.join(f\u0026#39;{x:.2f}\u0026#39; for x in q_king)}]\u0026#34;) q_king (3维) = [0.35, 0.68, -1.27] 结果解读： 5 维词向量经过 3×5 矩阵，变成了 3 维查询向量。矩阵完成了降维投影！\n实验三：矩阵改变向量之间的关系 \u0026gt;\u0026gt;\u0026gt; queen = np.array([0.8, 0.2, 0.1, 0.3, 0.7]) \u0026gt;\u0026gt;\u0026gt; q_queen = W_q @ queen \u0026gt;\u0026gt;\u0026gt; \u0026gt;\u0026gt;\u0026gt; # 比较变换前后的余弦相似度 \u0026gt;\u0026gt;\u0026gt; cos_before = np.dot(king, queen) / (np.linalg.norm(king) * np.linalg.norm(queen)) \u0026gt;\u0026gt;\u0026gt; cos_after = np.dot(q_king, q_queen) / (np.linalg.norm(q_king) * np.linalg.norm(q_queen)) \u0026gt;\u0026gt;\u0026gt; print(f\u0026#34;变换前 cos(king, queen) = {cos_before:.4f}\u0026#34;) 变换前 cos(king, queen) = 0.9133 \u0026gt;\u0026gt;\u0026gt; print(f\u0026#34;变换后 cos(q_king, q_queen) = {cos_after:.4f}\u0026#34;) 变换后 cos(q_king, q_queen) = 0.9570 结果解读： 变换前 0.91，变换后 0.96。矩阵不仅改变了向量本身，还改变了向量之间的关系。AI 训练的目标就是找到能让\u0026quot;有用的关系\u0026quot;变得更明显的矩阵。\n本章小结 本篇核心要点 一、矩阵 = 向量的加工机\n输入一个向量，输出一个新向量 计算方法：矩阵每行和向量做点积 二、矩阵 = 空间变换\n缩放、旋转、投影——都是矩阵 矩阵的列 = 基向量被变换到的新位置 三、AI 用矩阵做 Q、K、V 投影\n同一个词向量经过三个不同矩阵 → 三种不同角色 矩阵是训练出来的——AI 自己学习最好的变换方式 四、矩阵可以改变维度\nm×n 矩阵：n 维向量 → m 维向量 这就是降维/升维/投影的数学本质 下一篇预告 一个矩阵变换一个向量——这我们会了。但如果有一百个词同时需要变换呢？一个一个算太慢了。\n把一百个词向量摞成一个矩阵，和变换矩阵相乘——一步搞定！ 这就是矩阵乘法，也是 GPU 被称为\u0026quot;AI 芯片\u0026quot;的根本原因。\n下一篇（完结）：AI 的数学语言（四）：矩阵乘法与 AI——理解 Transformer 的最后一块拼图\n本文首发于「AI 学习笔记」博客：https://Jason-Azure.github.io/ai-blog/\n微信公众号：AI-lab学习笔记\n系列文章完整列表见 标签：线性代数\n","permalink":"https://jason-azure.github.io/ai-blog/posts/math-for-ai-3-matrices/","summary":"矩阵是向量的加工机：缩放、旋转、投影。理解 Transformer 中 Q/K/V 投影的数学本质。零基础线性代数系列第三篇。","title":"AI 的数学语言（三）：矩阵——空间的变形术"},{"content":" 📖 导读 上一篇《神经网络沉浮录》，我们看到神经网络 80 年的跌宕命运——从被捧上神坛到被判死刑，再到改名\u0026quot;深度学习\u0026quot;后改变世界。\n但 2025 年发生了一件更令人震惊的事：一个 AI 模型，学会了在回答前先\u0026quot;想一想\u0026quot;。\n不是人类教它怎么推理的——是它自己，通过强化学习，自发地学会了自我反思、验证和策略调整。这篇论文登上了 Nature，震动了整个 AI 界。\n这篇文章会告诉你：这个\u0026quot;思考\u0026quot;到底是什么机制？它为什么有效？以及——一个只有 15 亿参数的蒸馏版，就跑在我们这台没有 GPU 的教学机上。\n① 一个让所有人意外的发现 → ② 什么是\"推理模型\" → ③ 核心机制：Test-Time Compute → ④ GRPO算法 → ⑤ \"顿悟时刻\" → ⑥ 蒸馏 → ⑦ 真机演示 → ⑧ 意义 第一章：一个让所有人意外的发现 🔥 2025 年 1 月 20 日 一家中国 AI 公司 DeepSeek 发布了一篇论文，标题平平无奇：\nDeepSeek-R1: Incentivizing Reasoning Capability in LLMs via Reinforcement Learning\n翻译过来就是：\u0026ldquo;用强化学习激发大语言模型的推理能力\u0026rdquo;。\n但论文里描述的发现，却足以让整个 AI 界坐不住：\n他们没有教模型怎么推理。\n没有给它推理步骤的示例。没有人工标注\u0026quot;先这样想，再那样算\u0026quot;。\n他们只做了一件事：给模型一个奖励信号——答对了就得分，答错了就扣分。\n具体来说：对每一道数学题，让模型生成 16 个不同的答案，然后用规则自动判分——答对得 1 分，答错得 0 分。不需要任何人类标注。模型的目标只有一个：让\u0026quot;得 1 分\u0026quot;的答案越来越多。\n在这个看似简单的激励下，模型自己学会了：\n在回答前先停下来想一想 生成长长的内心推理过程 自我检查：\u0026ldquo;等一下，我是不是算错了？\u0026rdquo; 动态切换策略：\u0026ldquo;这个方法不行，换一种试试\u0026rdquo; 这不是设计出来的。这是涌现出来的。\n几个月后，这篇论文被 Nature 正式发表（Volume 645, Pages 633–638），成为极少数登上这本顶级科学期刊的 AI 系统论文。Nature 的编辑认为，这不仅仅是一个工程成就——推理能力从奖励信号中自发涌现，这是一个科学发现。\n等一下——三个深层追问 读到这里，你应该有三个问题。它们恰好触及了这项工作最精妙的地方。\n追问 1：说是\u0026quot;不需要人类标注\u0026quot;，那人到底做了什么？\n人的作用不在于教模型\u0026quot;怎么推理\u0026quot;，而在于设计游戏规则：\n选择什么题目来训练（数学、代码、逻辑——这些有客观正确答案的领域） 设计奖励函数的形式（正确得 1 分，错误得 0 分，格式不对扣分） 确定训练框架（GRPO 算法、采样数量、学习率、KL 散度约束……） 决定何时停止训练，何时切换到下一个阶段 类比：人没有教狗\u0026quot;怎么叼飞盘\u0026quot;，但人决定了——用飞盘（不是石头）、在草地上（不是悬崖边）、叼回来就给零食（奖励）。游戏规则的设计，本身就是巨大的人类智慧。\n追问 2：怎么让模型\u0026quot;慢下来\u0026quot;？——\u0026lt;think\u0026gt; 标签的秘密\n模型本质上是一个 next-token predictor——它只会一个字一个字地往下写。那\u0026quot;先想再答\u0026quot;是怎么实现的？\n秘密在第一阶段的冷启动 SFT。研究者给模型看了少量这种格式的示范：\n\u0026lt;think\u0026gt; ...推理过程... \u0026lt;/think\u0026gt; 最终答案：... 模型从此\u0026quot;学会\u0026quot;了一种新的输出模式：先写 \u0026lt;think\u0026gt; 标签里的内容，再写最终答案。 在 \u0026lt;think\u0026gt; 标签里\u0026quot;说的话\u0026quot;不计入最终答案，但它们会成为模型后续生成的上下文——模型在生成答案时，能\u0026quot;看到\u0026quot;自己刚才的推理过程。\n所以\u0026quot;慢思考\u0026quot;的本质是：把推理步骤作为中间 token 输出，让后续的 token 生成能参考这些步骤。 模型生成的 token 越多，\u0026ldquo;想\u0026quot;得就越久。\n这就是 Test-Time Compute 的核心：花更多的 token（= 更多的计算量）在推理过程上，而不是直接跳到答案。\n追问 3：用什么规则来\u0026quot;自动判分\u0026rdquo;？\n这是 GRPO 最巧妙的设计。DeepSeek 使用了两种奖励信号：\n① 准确性奖励（Accuracy Reward）——客观判对错\n数学题： 提取模型输出中 \\boxed{...} 里的答案，与标准答案做字符串匹配。7 × 8 = 56？匹配！得 1 分。 代码题： 把模型生成的代码放进沙箱运行，跑预设的测试用例。全部通过？得 1 分。 逻辑题： 部分可以转化为代码验证或规则匹配 ② 格式奖励（Format Reward）——约束输出结构\n必须有 \u0026lt;think\u0026gt; 和 \u0026lt;/think\u0026gt; 标签 最终答案必须放在指定位置 格式正确得小额加分，格式混乱扣分 就这两个信号，没有学习型奖励模型（reward model），没有人工打分。简单到令人难以置信，但就是这个\u0026quot;最小激励\u0026quot;催生了复杂的推理行为。\n第二章：什么是\u0026quot;推理模型\u0026quot;？🤔 两种回答方式 先看一个简单的问题：9.11 和 9.8 哪个大？\n▲ 同一个问题，两种模型的回答方式——直接输出 vs 先想再答 普通模型的回答方式——直接输出答案：\n普通模型（如 Qwen3:0.6b）：\n人工智能是指通过算法、数据和模型实现智能化的系统。\n快速、直接、但面对需要仔细推理的问题时，容易犯错。\n推理模型的回答方式——先想，再说：\n推理模型（DeepSeek-R1:1.5b，运行在我们的教学机上）：\n\u0026lt;think\u0026gt; 要比较 9.11 和 9.8 的大小，可以先从整数部分开始比较。两者的整数部分都是 9，所以相等。\n将 9.11 写作 9.110，然后和 9.8（写成 9.80）进行比较。\n百分位：9.110 的百分位是 1，而 9.80 的百分位是 8。因为 1 \u0026lt; 8，所以 9.11 \u0026lt; 9.80。 \u0026lt;/think\u0026gt;\n9.11 \u0026lt; 9.8 ✓\n看到区别了吗？\n推理模型输出了两个部分：\n\u0026lt;think\u0026gt; 标签里的思考过程——这是模型的\u0026quot;内心独白\u0026quot;，用户可以看到，但它的核心作用是让模型在生成最终答案前进行深度推理 最终答案——经过思考后的结论 这就是 2025 年最大的范式转变：从\u0026quot;脱口而出\u0026quot;到\u0026quot;想好了再说\u0026quot;。\n类比： 考试时，学霸和普通学生的区别不在于谁背的公式多，而在于——学霸会在草稿纸上演算一遍再写答案。\n推理模型就是那个学会了打草稿的 AI。\n插曲：快思考与慢思考——从卡尼曼到 DeepSeek 📚 一本 2011 年的心理学畅销书 如果你读过丹尼尔·卡尼曼的《思考，快与慢》（Thinking, Fast and Slow），上面描述的\u0026quot;两种回答方式\u0026quot;一定让你似曾相识。\n卡尼曼把人类思维分为两个系统：\n系统 1（快思考） 系统 2（慢思考） ━━━━━━━━━━━━━━━━━ ━━━━━━━━━━━━━━━━━ 快速、自动、直觉 缓慢、刻意、分析 \u0026#34;2+2=?\u0026#34; → 不假思索 \u0026#34;17×24=?\u0026#34; → 需要纸笔 认脸、读情绪、开老路 做预算、逻辑推理、学新技能 几乎不费力 极其消耗注意力 容易出错（认知偏差） 准确但懒惰（能不用就不用） 这和推理模型 vs 普通模型的对比几乎完全重合：\n系统 1 / 快思考 系统 2 / 慢思考 人类 凭直觉回答 在草稿纸上演算 AI 普通 LLM（直接输出） 推理模型（先 \u0026lt;think\u0026gt; 再回答） 代价 几乎不费力 消耗大量认知资源 / 计算量 擅长 简单问题、模式匹配 复杂推理、多步计算 弱点 复杂问题容易出错 慢，且不是所有问题都值得用 这不是比喻——AI 研究者是认真的 你可能以为这只是一个方便的类比。但事实上，AI 研究界正式采用了卡尼曼的框架来指导研究方向：\n2019 年： 图灵奖得主 Yoshua Bengio 在 NeurIPS 大会上发表主题演讲，标题就是：\u0026ldquo;From System 1 Deep Learning to System 2 Deep Learning\u0026rdquo;（从系统 1 深度学习到系统 2 深度学习）。他指出当时的深度学习只是\u0026quot;快思考\u0026quot;——擅长模式识别，但缺乏真正的推理能力。\n2023 年： Meta 的 Jason Weston 发表论文 \u0026ldquo;System 2 Attention\u0026rdquo;（arXiv: 2311.11829），直接用\u0026quot;系统 2 注意力\u0026quot;命名，设计了一种两遍注意力机制来模拟慢思考。\n2024 年： Meta 发表 \u0026ldquo;Distilling System 2 into System 1\u0026rdquo;（arXiv: 2407.06023），标题是\u0026quot;把系统 2 蒸馏进系统 1\u0026quot;——用推理模型的输出来训练普通模型，就像人类把慢思考的技能练成了快思考的直觉。\n2024 年： OpenAI o1 的核心设计者 Noam Brown 在 TED 演讲中说：\u0026ldquo;AI 需要学会想更久，而不只是想更快。\u0026rdquo; 他明确将 o1 定位为 AI 的\u0026quot;系统 2\u0026quot;。\n一个精妙的对应 让我们把这个对应关系推到底：\n卡尼曼的观察 在 DeepSeek-R1 中的对应 系统 2 在必要时激活 模型学会了在简单问题上快速回答，在难题上展开长推理 系统 2 消耗更多能量（瞳孔放大、血糖下降） 推理模型消耗 10-100 倍的 token（= 计算量） 系统 2 会检查系统 1 的直觉 \u0026lt;think\u0026gt; 里出现 \u0026ldquo;Wait, that doesn\u0026rsquo;t seem right\u0026hellip;\u0026rdquo; 人类通过练习把系统 2 技能自动化为系统 1（如开车） 蒸馏：把大模型的慢思考\u0026quot;压缩\u0026quot;进小模型的快回答 系统 2 不是万能的——太难的问题照样做不出来 Test-Time Compute 在极难问题上也收益递减 一句话总结： DeepSeek-R1 的本质是——人类花了几十年才从心理学上理解的\u0026quot;双系统思维\u0026quot;，AI 用强化学习在几周内自己\u0026quot;重新发明\u0026quot;了一遍。\n但要警惕过度类比：AI 的\u0026quot;思考\u0026quot;本质上仍然是 token 预测——只是链式的、带自我评估的 token 预测。它没有意识，没有主观体验。这个区别很重要。\n第三章：为什么\u0026quot;多想一想\u0026quot;这么有效？📐 Test-Time Compute Scaling 在 DeepSeek-R1 之前，Google DeepMind 的研究者在 2024 年发表了一篇重要论文（arXiv: 2408.03314），提出了一个颠覆性的发现：\n在推理时花更多的计算量，比训练一个更大的模型更有效。\n具体来说：一个小模型 + 更多的推理时间计算，可以超越 14 倍大的模型。\n传统思路： 模型不够聪明？→ 加参数！100B 不够就 1000B！\n新思路： 模型不够聪明？→ 让它多想一会儿！\n这叫做 Test-Time Compute Scaling（推理时计算扩展）。\n但不是所有问题都值得多想 这篇论文的另一个关键发现是：不同难度的问题，需要分配不同的计算量。\n┌─────────────────────────────────────────────────────┐ │ 推理计算的\u0026#34;甜蜜地带\u0026#34; │ ├──────────┬──────────────┬───────────────────────────┤ │ 简单问题 │ 中等问题 │ 极难问题 │ │ 1+1=? │ 数学竞赛题 │ 哥德巴赫猜想 │ │ │ │ │ │ 多想无益 │ ★巨大收益★ │ 想也想不出来 │ │ 直接答 │ 值得深思 │ 超出能力边界 │ └──────────┴──────────────┴───────────────────────────┘ 这就像你考试时的策略：\n送分题？直接写，别浪费时间 中等题？仔细演算，这是拉开差距的地方 超纲题？放弃，把时间留给别的题 DeepSeek-R1 的训练，本质上就是让模型学会这种自适应的计算分配——简单问题快速回答，复杂问题深入思考。\n第四章：GRPO——让模型学会思考的算法 🎯 从 RLHF 到 GRPO 的演化 要理解 DeepSeek-R1 为什么能学会思考，需要理解它的训练算法 GRPO。让我们先快速回顾一下\u0026quot;如何训练 AI 按人类期望行动\u0026quot;的历史：\n训练方法的四次革命：\n第一代 SFT（2020s初）： 人工写示范答案，模型照着学\n问题：人工写推理步骤又贵又慢 第二代 RLHF（2022，ChatGPT）： 人工给答案排序，训练奖励模型，再用 PPO 算法优化\n问题：需要训练一个额外的\u0026quot;评委模型\u0026quot;（Critic），显存翻倍 第三代 DPO（2023）： 简化 RLHF，直接从偏好对学习，不需要奖励模型\n问题：只能处理\u0026quot;A比B好\u0026quot;这种偏好，不能利用客观正确性 第四代 GRPO（2024，DeepSeek）： 组内相对排名 + 可验证奖励 ← 我们今天的主角\nGRPO 的核心思想 GRPO 的全称是 Group Relative Policy Optimization（组相对策略优化）。它的思路极其简洁：\nStep 1：对同一个问题，让模型生成一组答案（比如 G=16 个）\nStep 2：用规则判断每个答案的对错\n数学题？验算答案是否正确 代码题？跑测试用例 不需要人工评判！ Step 3：在组内排名\n对的答案得高分，错的得低分 用组内平均分作为基线（baseline） 每个答案的\u0026quot;优势\u0026quot; = 它的得分 - 组平均分 Step 4：让模型学习——多生成\u0026quot;好于平均\u0026quot;的答案，少生成\u0026quot;差于平均\u0026quot;的答案\n一道数学题的完整 GRPO 训练过程 让我用一个具体例子，展示 GRPO 的一轮训练到底发生了什么：\n▲ GRPO 一轮训练：出题 → 采样 → 评分 → 排名 → 更新 具体步骤拆解（以 \u0026ldquo;7 × 8 = ?\u0026rdquo; 为例）：\n① 采样： 对同一道题，让模型独立生成 8 个答案：\n56, 54, 56, 58, 56, 48, 56, 55\n② 评分： 用规则判断——7 × 8 = 56，所以：\n答 56 的 → 得 1 分（4 个正确） 答错的 → 得 0 分（4 个错误）\n③ 计算基线： 组平均分 = (1+0+1+0+1+0+1+0) / 8 = 0.5\n④ 计算优势（Advantage）：\n正确答案的优势 = 1.0 - 0.5 = +0.5（好于平均 → 应该多生成这种） 错误答案的优势 = 0.0 - 0.5 = -0.5（差于平均 → 应该少生成这种）\n⑤ 更新模型： 通过梯度更新，提高生成 \u0026ldquo;56\u0026rdquo; 的概率，降低生成 \u0026ldquo;54\u0026rdquo;、\u0026ldquo;58\u0026rdquo;、\u0026ldquo;48\u0026rdquo;、\u0026ldquo;55\u0026rdquo; 的概率。\n关键洞察： 注意步骤②——评分不需要人工标注！数学题有标准答案，代码题有测试用例。这种可验证奖励（verifiable reward） 是 GRPO 区别于其他 RL 方法的核心优势。\n从\u0026quot;答对\u0026quot;到\u0026quot;学会思考\u0026quot;的跃迁：\n最初，模型只是碰运气——16 个答案里可能只有 2-3 个是对的。但随着训练推进：\n模型发现：在回答前先列出步骤，正确率更高 → \u0026ldquo;步骤化\u0026quot;行为被奖励强化 模型发现：在最终回答前检查一遍，能纠正部分错误 → \u0026ldquo;自我验证\u0026quot;行为被奖励强化 模型发现：第一种方法走不通时换一种思路，有时能答对 → \u0026ldquo;策略切换\u0026quot;行为被奖励强化 没有人设计这些行为。 模型只是在追求\u0026quot;更高的得分\u0026rdquo;，但推理能力作为一种有效策略，被自然选择了出来。\n这就像进化论——不是谁\u0026quot;设计\u0026quot;了眼睛，而是有眼睛的生物活下来的概率更高，所以眼睛被自然选择保留了。\n为什么 GRPO 比 PPO 好？ PPO (传统方法): ┌──────────────┐ ┌──────────────┐ │ 策略模型 │ │ 评委模型 │ ← 额外一个 671B 参数的模型！ │ (671B参数) │ │ (671B参数) │ 显存直接翻倍 └──────────────┘ └──────────────┘ GRPO (DeepSeek 的方法): ┌──────────────┐ │ 策略模型 │ ← 不需要评委！ │ (671B参数) │ 用组内对比代替 └──────────────┘ GRPO 省掉了评委模型，但效果不降反升。秘诀在于：数学和代码的正确性是客观可验证的——你不需要另一个 AI 来评判 2+2 是不是等于 4。\n第五章：顿悟时刻——\u0026ldquo;Aha Moment\u0026rdquo; ✨ AI 的\u0026quot;我懂了！\u0026rdquo; DeepSeek 的研究者在论文里记录了一个令所有人震惊的现象。\n他们先做了一个极端实验：DeepSeek-R1-Zero——不做任何人工示范，纯粹用强化学习从零开始训练。\n▲ R1-Zero 训练过程——准确率上升的同时，自我反思、策略切换等行为逐一涌现 在训练过程中，模型的行为逐渐发生了变化。到了某个训练检查点，模型突然开始在输出中写出这样的话：\n\u0026ldquo;Wait, let me reconsider this problem\u0026hellip;\u0026rdquo; （等等，让我重新考虑一下这个问题\u0026hellip;\u0026hellip;）\n\u0026ldquo;Hmm, that doesn\u0026rsquo;t seem right. Let me verify\u0026hellip;\u0026rdquo; （嗯，好像不对。让我验证一下\u0026hellip;\u0026hellip;）\n\u0026ldquo;I made an error in step 3. Let me redo this calculation\u0026hellip;\u0026rdquo; （我在第3步犯了个错。让我重新算\u0026hellip;\u0026hellip;）\n没有人教它这样做。 没有一条训练数据里包含\u0026quot;Wait, let me reconsider\u0026rdquo;。\n这些自我反思、自我纠错的行为，是模型在追求\u0026quot;答对就得分\u0026quot;的奖励信号中，自发涌现出来的。\n研究者在论文里把这称为 \u0026ldquo;Aha Moment\u0026rdquo;（顿悟时刻），并写下了这段话：\n\u0026ldquo;This is the power and beauty of reinforcement learning: rather than explicitly teaching the model on how to solve a problem, we simply provide it the right incentive, and it autonomously develops advanced problem-solving strategies.\u0026rdquo;\n\u0026ldquo;这就是强化学习的力量与美感：我们没有明确地教模型如何解决问题，只是给了它正确的激励，它就自主地发展出了高级的问题解决策略。\u0026rdquo;\n这意味着什么？ 让我做一个类比。\n教孩子学数学：\n传统方法（SFT）： 老师写详细的解题步骤，学生照着抄一遍又一遍\nDeepSeek 的方法（GRPO）： 老师只批作业——对了打勾，错了打叉。不告诉学生怎么做。\n结果？学生自己摸索出了解题方法，而且——学会了检查自己的答案。\n这就是 Nature 认为值得发表的核心发现：高级推理能力可以从简单的奖励信号中涌现，不需要人类示范。\n第六章：蒸馏——大模型如何\u0026quot;教\u0026quot;小模型 📦 671B → 1.5B 的知识传递 DeepSeek-R1 的完整版有 6710 亿参数（671B），这显然不是普通人能跑的。但 DeepSeek 做了一件聪明的事——蒸馏（Distillation）。\n蒸馏的过程：\n用完整的 R1（671B）解大量数学和推理题 把完整的推理过程（包括思考步骤）记录下来——共约 80 万条 用这些数据训练小模型（1.5B、7B、14B、32B、70B） 小模型通过\u0026quot;模仿大模型的思考方式\u0026quot;来获得推理能力 这就像一个数学天才把自己所有的草稿纸都留下来，让学生不仅学到正确答案，还学到思考的过程。\n蒸馏的效果令人震惊：\n▲ 蒸馏效果：参数量缩减 447 倍，但推理能力显著保留——32B 版本甚至超越 OpenAI o1-mini 模型 AIME 2024 (数学竞赛) 参数量 ────────────────────────────────────────────────────────────── DeepSeek-R1 (完整版) 79.8% 671B DeepSeek-R1-Distill-32B 72.6% 32B OpenAI o1-mini 63.6% 未公开 DeepSeek-R1-Distill-7B 55.5% 7B DeepSeek-R1-Distill-1.5B 28.9% 1.5B ← 你的电脑能跑！ 一个 32B 的蒸馏版，在数学竞赛上超过了 OpenAI 的 o1-mini。而 1.5B 的版本——就是此刻运行在我们教学机上的那个——虽然能力有限，但它确实学会了\u0026quot;先想再答\u0026quot;。\n一个重要发现：蒸馏 \u0026gt; 直接训练 论文还揭示了一个关键结论：\n对于小模型来说，从大模型蒸馏推理能力，比直接用强化学习训练更有效。\n直接对 1.5B 模型做 RL，效果远不如先让 671B 模型学会推理，再把推理能力\u0026quot;教\u0026quot;给 1.5B。\n类比： 你不会让一个小学生自己发明微积分（直接 RL）。你会让他跟着牛顿的教材学（蒸馏）。大模型就是\u0026quot;牛顿\u0026quot;，蒸馏就是\u0026quot;编教材\u0026quot;。\n第七章：真机演示——在我们的教学机上运行 R1 💻 环境说明 我们的教学机没有 GPU，只有 8 核 CPU 和 32GB 内存。运行的是 DeepSeek-R1 的 1.5B 蒸馏版——6710 亿参数浓缩到 15 亿，模型文件只有 1.1GB。\n教学机配置: ├── CPU: Intel Xeon Platinum 8272CL (8核) ├── RAM: 32GB ├── GPU: 无 ├── 推理框架: Ollama 0.15.6 └── 模型: deepseek-r1:1.5b (1.1GB) 演示 1：数学比较题 提问： \u0026ldquo;9.11 和 9.8 哪个大？请一步步思考\u0026rdquo;\nDeepSeek-R1:1.5b 的输出：\n\u0026lt;think\u0026gt; 要比较 9.11 和 9.8 的大小，可以先从整数部分开始比较。两者的整数部分都是 9，所以相等。\n将 9.11 写作 9.110（在千分位上加零），然后和 9.8（写成 9.80）进行比较。\n百分位：9.110 的百分位是 1，而 9.80 的百分位是 8。因为 1 \u0026lt; 8，所以 9.110 在百分位上小于 9.80。 \u0026lt;/think\u0026gt;\n9.11 \u0026lt; 9.8 ✓\n注意这个回答的结构：\n模型先在 \u0026lt;think\u0026gt; 标签里展开推理 逐步对齐小数位数（9.110 vs 9.80） 逐位比较 最后给出结论 这就是一个 1.5B 参数的小模型在展示\u0026quot;思考能力\u0026quot;。 尽管它很小，但蒸馏赋予了它从大模型那里学到的推理模式。\n演示 2：逻辑推理题 提问： \u0026ldquo;一个房间里有3个开关控制隔壁房间的3盏灯。你只能进隔壁房间一次。怎么确定每个开关对应哪盏灯？\u0026rdquo;\nDeepSeek-R1:1.5b 的输出：\n\u0026lt;think\u0026gt; 嗯，今天老师布置了一个有趣的逻辑题，我得仔细想想怎么解决。题目是说，一个房间里有三个开关，分别控制隔壁房间的三个灯。但是只能进去隔壁房间一次，不能多次进入。\n首先，我想先理清楚问题的结构。房间里有三个开关，分别记作A、B、C；而隔壁房间的三个灯也分别是a、b、c。\n因为只能进房间一次，我不能多次观察或操作，所以必须利用一些已知的信息或者逻辑推理来推断出各个开关的位置关系。也许可以先打开其中一个开关，让灯亮起来，然后再次关掉它，再开另一个开关\u0026hellip;\u0026hellip; \u0026lt;/think\u0026gt;\n看到了吗？即便是 1.5B 的小模型，它也在尝试：\n拆解问题（\u0026ldquo;先理清楚问题的结构\u0026rdquo;） 标注变量（\u0026ldquo;分别记作A、B、C\u0026rdquo;） 探索策略（\u0026ldquo;也许可以先打开其中一个开关\u0026rdquo;） 虽然因为模型太小，推理可能不完整，但思考的模式已经在那里了。这就是蒸馏的力量——大模型的思考方式，被浓缩进了这个 1.1GB 的文件里。\n动手试试： 如果你有电脑，安装 Ollama 后运行：\nollama run deepseek-r1:1.5b 然后输入任何数学或逻辑问题，观察 \u0026lt;think\u0026gt; 标签里的推理过程。\n第八章：R1 的完整训练流程 🏗️ 四个阶段 DeepSeek-R1（完整版）的训练分为四个精心设计的阶段：\n阶段 1: 冷启动 SFT ━━━━━━━━━━━━━━━━━ │ 用少量人工标注的推理示例，让模型学会\u0026#34;输出格式\u0026#34; │ （知道要用 \u0026lt;think\u0026gt; 标签，知道要分步骤） │ 目的：给 RL 一个好的起点 ▼ 阶段 2: 推理强化学习 ━━━━━━━━━━━━━━━━━ │ 在数学、代码、逻辑任务上做 GRPO │ 奖励 = 答案正确性（规则判断，不需要人工） │ 模型在这个阶段学会了真正的\u0026#34;深度思考\u0026#34; ▼ 阶段 3: 拒绝采样 + 综合 SFT ━━━━━━━━━━━━━━━━━ │ 用阶段 2 的模型生成 ~80 万条高质量推理数据 │ 混合推理数据 + 通用对话数据 │ SFT 让模型既能推理，又能正常聊天 ▼ 阶段 4: 全场景强化学习 ━━━━━━━━━━━━━━━━━ │ 不只是推理——还有 helpfulness、安全性等 │ 多种奖励信号综合优化 │ 最终产出：全能型推理模型 ▼ DeepSeek-R1 ✓ 第九章：这一切意味着什么？🔭 三个深远影响 影响 1：推理时间 vs 训练时间的新平衡\n过去十年，AI 的进步主要来自\u0026quot;训练更大的模型\u0026quot;——从 GPT-2 的 15 亿到 GPT-4 的万亿级参数。\nDeepSeek-R1 和 Test-Time Compute 的研究表明：在推理时多花计算量，可能比训练更大的模型更划算。\n这意味着未来 AI 的发展方向可能是：更小但更聪明的模型 + 更长的思考时间。\n影响 2：强化学习的回归\n在 ChatGPT 之后，RLHF 一直被认为是\u0026quot;不稳定、难调参\u0026quot;的技术。很多团队转向了更简单的 DPO。\nDeepSeek-R1 证明了：RL 不仅有效，而且能激发出 SFT 无法产生的能力。 推理能力的涌现，是 RL 独有的魔法。\nGRPO 的出现，让 RL 变得更简单（不需要 Critic 模型）、更实用（可用规则奖励）。\n影响 3：开源的力量\nDeepSeek-R1 是完全开源的——模型权重、训练细节、蒸馏版本，全部公开。\n论文登上 Nature，不仅是 DeepSeek 的胜利，更是开源 AI 研究的里程碑。它证明了：最前沿的 AI 能力，不必被少数几家公司垄断。\n你此刻就可以在自己的电脑上运行 R1 的蒸馏版，亲眼看到\u0026quot;AI 的思考过程\u0026quot;。\n结语：从\u0026quot;鹦鹉学舌\u0026quot;到\u0026quot;学会思考\u0026quot; 2023 年，ChatGPT 让世界惊叹于 AI 能\u0026quot;说人话\u0026quot;。\n但很多人批评它只是\u0026quot;随机鹦鹉\u0026quot;——机械地预测下一个词，没有真正的理解和推理。\n2025 年，DeepSeek-R1 回答了这个批评：AI 不仅能说，它开始在\u0026quot;想\u0026quot;了。\n\u0026lt;think\u0026gt; 标签里的那些文字——犹豫、反思、纠错、策略切换——它们不是人类写的脚本。它们是模型在追求\u0026quot;答对\u0026quot;的过程中，自发涌现的认知策略。\n这还不是\u0026quot;真正的思考\u0026quot;吗？也许还不是。但它已经是朝着那个方向，迈出的最令人瞩目的一步。\n📚 延伸阅读\nDeepSeek-R1 论文：arXiv 2501.12948（Nature 2025, Vol 645, pp 633–638） Test-Time Compute Scaling：arXiv 2408.03314 GRPO 算法原始论文（DeepSeekMath）：arXiv 2402.03300 上一篇：神经网络沉浮录 —— 80 年的跌宕命运 下一篇预告：MoE 架构 —— 671B 参数只用 37B 的秘密 🔧 动手体验\n# 安装 Ollama（https://ollama.com） # 然后运行： ollama run deepseek-r1:1.5b # 输入数学/逻辑问题，观察 \u0026lt;think\u0026gt; 推理过程 博客：https://Jason-Azure.github.io/ai-blog/\n微信公众号：AI-lab学习笔记\n","permalink":"https://jason-azure.github.io/ai-blog/posts/deepseek-r1-thinking/","summary":"2025 年最大的 AI 突破不是更大的模型，而是一个模型学会了停下来想一想再回答。DeepSeek-R1 登上 Nature，证明了一件事：不需要人类手把手教推理步骤，只需要给对奖励，模型就能自己学会思考。","title":"DeepSeek-R1：一个模型如何学会「思考」"},{"content":"引言 恭喜你走到了这个系列的最后一篇。回顾一下我们的路径：\n第一篇: 万物 → 向量（一串数字） 第二篇: 向量 → 比较（点积、余弦相似度） 第三篇: 向量 → 变换（矩阵 × 向量） 第四篇: 批量变换 → Attention 的完整公式 今天，我们把所有零件组装在一起，看到 Transformer 的核心公式：\nAttention(Q, K, V) = softmax(QKᵀ / √dₖ) × V\n这个公式里的每一步，你都已经学过了。今天只是把它们串起来。\n系列导航\n▹ 第一篇：从数轴到高维空间 ▹ 第二篇：向量的加减法 — 点积与余弦相似度 ▹ 第三篇：矩阵——空间的变形术 ▸ 第四篇（本文）：矩阵乘法与 AI — 理解 Transformer 的最后一块拼图 ▹ 第五篇：激活函数——神经网络的开关 ▹ 第六篇：梯度下降——AI 怎么学习 第一章：矩阵 × 矩阵 = 批量变换 从一个词到一百个词 上一篇我们学了矩阵 × 向量——把一个词向量变成新向量。但一句话有很多词，每个都要变换。\n聪明的做法：把所有词向量摞成一个矩阵，和变换矩阵一次相乘。\nX = [[国王的向量], W = 变换矩阵 Y = X × W [王后的向量], × = [[q_国王], [汽车的向量]] [q_王后], [q_汽车]] 3 个词 × 4 维 4 × 3 矩阵 3 个词 × 3 维 一次矩阵乘法 = 同时变换所有词。 这就是 GPU 擅长的事——大规模并行计算。\n公式时间\n矩阵乘法：A (m×n) × B (n×p) = C (m×p)\nC 的第 i 行第 j 列 = A 的第 i 行和 B 的第 j 列做点积。\n第二章：Attention 的四步公式 有了矩阵乘法，我们可以用四步写出完整的 Attention 机制：\n第 1 步：三次投影\nQ = X × W_q　K = X × W_k　V = X × W_v\n（三次矩阵乘法，词向量变成三种角色） 第 2 步：计算注意力分数\nscores = Q × Kᵀ / √d\n（每个词和所有词做点积，再缩放。又是矩阵乘法） 第 3 步：Softmax 归一化\nweights = softmax(scores)\n（把分数变成概率，加起来 = 1。逐元素运算，不是矩阵乘法） 第 4 步：加权求和\noutput = weights × V\n（用权重\"混合\"所有词的 V 向量。最后一次矩阵乘法） 四步中有三步是矩阵乘法。这就是为什么 GPU（擅长大规模并行矩阵运算的芯片）成了 AI 的核心硬件。\n第三章：动手验证——完整 Attention 流程 以下命令在 Ubuntu 22.04 + Python 3.10 环境中执行：\nazureuser@ai-lab:~$ source ~/ai-lab-venv/bin/activate (ai-lab-venv) azureuser@ai-lab:~$ python3 实验一：矩阵乘法 = 批量投影 \u0026gt;\u0026gt;\u0026gt; import numpy as np \u0026gt;\u0026gt;\u0026gt; \u0026gt;\u0026gt;\u0026gt; # 3 个词，每个 4 维 \u0026gt;\u0026gt;\u0026gt; X = np.array([ ... [0.9, 0.8, 0.1, 0.7], # 国王 ... [0.8, 0.2, 0.1, 0.7], # 王后 ... [0.1, 0.5, 0.9, 0.1], # 汽车 ... ]) \u0026gt;\u0026gt;\u0026gt; \u0026gt;\u0026gt;\u0026gt; # W_q: 4维 → 3维 \u0026gt;\u0026gt;\u0026gt; np.random.seed(42) \u0026gt;\u0026gt;\u0026gt; W_q = np.random.randn(4, 3) * 0.5 \u0026gt;\u0026gt;\u0026gt; Q = X @ W_q # 一次矩阵乘法，3个词同时投影！ \u0026gt;\u0026gt;\u0026gt; \u0026gt;\u0026gt;\u0026gt; print(\u0026#34;Q (3个词 × 3维):\u0026#34;) Q (3个词 × 3维): \u0026gt;\u0026gt;\u0026gt; for name, q in zip([\u0026#34;国王\u0026#34;,\u0026#34;王后\u0026#34;,\u0026#34;汽车\u0026#34;], Q): ... print(f\u0026#34; q_{name}: [{\u0026#39;, \u0026#39;.join(f\u0026#39;{x:.2f}\u0026#39; for x in q)}]\u0026#34;) q_国王: [1.10, -0.28, 0.01] q_王后: [0.62, -0.20, 0.05] q_汽车: [1.14, 0.26, -0.26] 实验二：Q × Kᵀ = 注意力分数 \u0026gt;\u0026gt;\u0026gt; W_k = np.random.randn(4, 3) * 0.5 \u0026gt;\u0026gt;\u0026gt; K = X @ W_k \u0026gt;\u0026gt;\u0026gt; \u0026gt;\u0026gt;\u0026gt; # Attention 分数 = Q × K^T / √d \u0026gt;\u0026gt;\u0026gt; d_k = K.shape[1] \u0026gt;\u0026gt;\u0026gt; scores = (Q @ K.T) / np.sqrt(d_k) \u0026gt;\u0026gt;\u0026gt; print(f\u0026#34;注意力分数 (Q × K^T / √{d_k}):\u0026#34;) 注意力分数 (Q × K^T / √3): \u0026gt;\u0026gt;\u0026gt; for name, s in zip([\u0026#34;国王\u0026#34;,\u0026#34;王后\u0026#34;,\u0026#34;汽车\u0026#34;], scores): ... print(f\u0026#34; {name} → [{\u0026#39;, \u0026#39;.join(f\u0026#39;{x:.2f}\u0026#39; for x in s)}]\u0026#34;) 国王 → [0.05, 0.09, -0.19] 王后 → [0.04, 0.05, -0.07] 汽车 → [-0.19, -0.03, -0.59] 实验三：Softmax → 注意力权重 \u0026gt;\u0026gt;\u0026gt; def softmax(x): ... e = np.exp(x - np.max(x, axis=-1, keepdims=True)) ... return e / e.sum(axis=-1, keepdims=True) \u0026gt;\u0026gt;\u0026gt; \u0026gt;\u0026gt;\u0026gt; weights = softmax(scores) \u0026gt;\u0026gt;\u0026gt; for name, w in zip([\u0026#34;国王\u0026#34;,\u0026#34;王后\u0026#34;,\u0026#34;汽车\u0026#34;], weights): ... max_j = np.argmax(w) ... target = [\u0026#34;国王\u0026#34;,\u0026#34;王后\u0026#34;,\u0026#34;汽车\u0026#34;][max_j] ... print(f\u0026#34; {name}: [{\u0026#39;, \u0026#39;.join(f\u0026#39;{x:.0%}\u0026#39; for x in w)}] → 最关注: {target}\u0026#34;) 国王: [35%, 37%, 28%] → 最关注: 王后 王后: [34%, 35%, 31%] → 最关注: 王后 汽车: [35%, 41%, 23%] → 最关注: 王后 结果解读： 这是简化示例（只有 3 个词 + 随机矩阵），所以权重比较均匀。真实 Transformer 经过训练后，权重会有明显的倾向性——比如\u0026quot;国王\u0026quot;会强烈关注\u0026quot;他的\u0026quot;。\n实验四：完整 Attention 输出 \u0026gt;\u0026gt;\u0026gt; W_v = np.random.randn(4, 3) * 0.5 \u0026gt;\u0026gt;\u0026gt; V = X @ W_v \u0026gt;\u0026gt;\u0026gt; output = weights @ V # 最终输出！ \u0026gt;\u0026gt;\u0026gt; \u0026gt;\u0026gt;\u0026gt; print(\u0026#34;Attention 输出 = softmax(QK^T/√d) × V:\u0026#34;) Attention 输出 = softmax(QK^T/√d) × V: \u0026gt;\u0026gt;\u0026gt; for name, o in zip([\u0026#34;国王\u0026#34;,\u0026#34;王后\u0026#34;,\u0026#34;汽车\u0026#34;], output): ... print(f\u0026#34; {name}: [{\u0026#39;, \u0026#39;.join(f\u0026#39;{x:.2f}\u0026#39; for x in o)}]\u0026#34;) 国王: [-0.46, 0.40, -0.77] 王后: [-0.45, 0.42, -0.74] 汽车: [-0.47, 0.39, -0.80] 完整流程走通了！ 从 3 个词的 4 维词向量开始，经过 Q/K/V 投影、注意力分数、Softmax、加权求和，得到了每个词融合上下文后的新表示。这就是一次 Self-Attention 的全部计算。\n第四章：为什么 GPU 是 AI 的核心？ 现在你能理解一个事实：\nTransformer 的几乎所有计算都是矩阵乘法。GPU 的设计初衷就是快速做大规模并行乘加运算。所以 GPU = AI 的心脏。\n模型 参数量 矩阵乘法次数/token GPT-2 (小) 1.17 亿 ~100 次 GPT-3 1750 亿 ~400 次 GPT-4 (估) ~1 万亿 ~1000+ 次 每个矩阵都是几千维 × 几千维。一次推理就是数万亿次乘加运算。没有 GPU，这些计算可能需要几分钟；有了 GPU，不到一秒。\n本章小结 四篇文章，我们走过了一条清晰的路径：\n第一篇: 文字 → 数字（向量 = 一串有序的数字） ↓ 第二篇: 数字 → 比较（点积 = 方向一致性） ↓ 第三篇: 数字 → 变换（矩阵 = 空间变形术） ↓ 第四篇: 全部组装 → Attention = softmax(QKᵀ/√d) × V 你现在具备了理解任何 AI 论文中数学符号的基础。看到 θ、W、Q、K、V、softmax——你都知道它们在做什么。\n但 Attention 只是 Transformer 的一半。下一篇我们来看另一半——激活函数。它是让深度学习\u0026quot;深\u0026quot;起来的关键。\n下一篇：AI 的数学语言（五）：激活函数——神经网络的开关\n本文首发于「AI 学习笔记」博客：https://Jason-Azure.github.io/ai-blog/\n微信公众号：AI-lab学习笔记\n系列文章完整列表见 标签：线性代数\n","permalink":"https://jason-azure.github.io/ai-blog/posts/math-for-ai-4-matmul/","summary":"从矩阵乘法到 Attention 完整公式：softmax(QK^T/√d)×V。把四篇数学基础组装成 Transformer 的核心引擎。零基础线性代数系列完结篇。","title":"AI 的数学语言（四）：矩阵乘法与 AI——理解 Transformer 的最后一块拼图"},{"content":" 📖 导读 上一篇《DeepSeek-R1：一个模型如何学会思考》，我们看到了推理模型的惊人突破——AI 学会了\u0026quot;先想再答\u0026quot;。\n但你有没有注意到一个细节？DeepSeek-R1 的完整版有 6710 亿参数（671B），却只需要约 556 万美元就训练出来了。作为对比，GPT-4 的训练成本估计超过 1 亿美元。\n秘密在于：DeepSeek-V3 的每个 token，只激活 37B 参数——不到总量的 6%。\n这背后是一个叫做 Mixture of Experts（混合专家） 的架构。它的核心思想简单到令人难以置信：不是所有神经元都需要对每个问题开工。\n这篇文章会告诉你：什么是\u0026quot;专家\u0026quot;？谁来决定激活哪些专家？以及——当所有 token 都挤向同一个专家时，该怎么办？\n① 公司类比 → ② Dense vs MoE → ③ 什么是\"专家\" → ④ 路由机制 → ⑤ 负载均衡 → ⑥ 共享专家 → ⑦ MoE 与彩票假说 → ⑧ 进化史 → ⑨ 成本对比 → ⑩ 意义 第一章：一家公司的比喻 🏢 一个你立刻能懂的类比 想象你经营一家 671 人的咨询公司。\n方案 A（Dense 模式）： 每接到一个客户咨询，全部 671 人都去处理这个问题——不管问题是报税、打官司还是修电脑。每个人的工时费都要算进去。\n方案 B（MoE 模式）： 公司分成 256 个小组，每组是某个领域的专家。前台（路由器）先听客户的问题，然后只派 8 个最相关的小组去处理——报税问题就派财务组，打官司就派法律组。其他 248 个组该喝茶喝茶。\n哪个方案更高效？显然是 B。\n这就是 Mixture of Experts 的全部直觉。 DeepSeek-V3 有 671B 参数（= 671 个人），但每个 token 只激活 37B（= 37 个人）。那些没被激活的参数不是废物——它们是\u0026quot;待命的专家\u0026quot;，等着自己擅长的问题到来。\n第二章：Dense vs MoE——两种模型的根本区别 ⚡ ▲ Dense 模型：所有参数全部激活 | MoE 模型：路由器选择少量专家，其余待命 标准 Transformer 的 FFN 层 回忆一下，一个标准 Transformer 的每一层是这样的：\n输入 → [注意力层] → [加 \u0026amp; 归一化] → [FFN 层] → [加 \u0026amp; 归一化] → 输出 其中 FFN 层（前馈网络）是计算量最大的部分——它通常占整个 Transformer 块计算量的 2/3。在 Dense（密集）模型里，每个 token 都要走完整个 FFN 层的全部参数。\nMoE 的改动 MoE 的改动只有一个：把单一的 FFN 层，替换成多个 FFN 副本（\u0026ldquo;专家\u0026rdquo;）+ 一个路由器。\nDense Transformer: 输入 → [注意力层] → [单一 FFN] → 输出 ↑ 全部参数参与计算 MoE Transformer: 输入 → [注意力层] → [路由器] → [选中的几个 FFN] → 输出 ↑ 评分打分 ↑ 只有 Top-K 参与 ↑ 选 Top-K ↑ 其余专家不激活 关键洞察： MoE 解耦了两个东西——\n模型容量（总参数量）= 存储了多少知识 计算成本（活跃参数量）= 每次推理要算多少 一个 671B 的 MoE 模型拥有 671B 的知识量，但只需要 37B 的计算量。\n这就像一个拥有 671 名员工的公司，知识储备是 671 人的总和，但每个项目只需要 37 人的人力成本。\n第三章：什么是\u0026quot;专家\u0026quot;？——最容易被误解的概念 🔍 专家 ≠ 一个完整的模型 这是 MoE 中最容易被误解的概念。很多人听到\u0026quot;256 个专家\u0026quot;，以为模型里有 256 个独立的 AI。\n不是的。\n一个\u0026quot;专家\u0026quot;只是一个 FFN 层——两个矩阵乘法加一个激活函数：\nExpert(x) = W₂ · ReLU(W₁ · x) 就这么简单。每个专家的结构完全相同，区别只在于权重不同。通过训练，不同专家的权重自然地向不同方向发展，形成各自的\u0026quot;专长\u0026quot;。\n类比： 256 个专家 ≠ 256 个医生。更像是一个大脑里的 256 个不同的神经通路——每个通路对不同类型的刺激最敏感。看到文字时激活阅读通路，听到音乐时激活听觉通路。\nDeepSeek-V3 的具体数字 DeepSeek-V3 架构： ├── 总层数：61 层 ├── 前 3 层：标准 Dense FFN（所有 token 走同一条路） ├── 第 4-61 层：MoE 层（58 层，每层有 256+1 个专家） │ ├── 共享专家：1 个（每个 token 都经过，存储通用知识） │ └── 路由专家：256 个（每个 token 只选 8 个） ├── 总参数：671B ├── 每 token 激活：37B（= 1 共享 + 8 路由 = 9 个专家的参数） └── 激活比例：5.5% 第四章：路由器——谁来决定激活哪些专家？ 🎯 路由的工作流程 路由器是 MoE 的\u0026quot;前台\u0026quot;——它决定每个 token 应该被哪些专家处理。\n▲ 路由器为每个专家打分，选择得分最高的 K 个，归一化后加权输出 Step 1：给每个专家打分\n每个专家有一个\u0026quot;重心向量\u0026quot; e_i。路由器计算 token 表示 u_t 和每个专家重心的相似度：\ns(i,t) = sigmoid(u_t · e_i)\n直觉：token 离哪个专家的\u0026quot;重心\u0026quot;更近，分就越高。\nStep 2：选 Top-K\n从 256 个分数中，选出最高的 K=8 个专家：\nTopK = top_8(s(i,t) + b_i)\n其中 b_i 是一个偏置项（后面会讲它的妙用）。\nStep 3：归一化权重\n被选中的 8 个专家的分数做归一化，确保权重总和为 1：\ng(i,t) = s(i,t) / Σ s(j,t) （j 遍历 Top-8）\nStep 4：加权输出\n最终输出 = 共享专家的输出 + 8 个路由专家的加权输出：\noutput = FFN_shared(x) + Σ g(i,t) · FFN_i(x)\n为什么用 sigmoid 而不是 softmax？\nSoftmax 让所有专家的分数互相竞争——一个高了另一个就低了。Sigmoid 让每个专家的分数独立计算，竞争只发生在 Top-K 选择阶段。\n好处：把\u0026quot;评分\u0026quot;和\u0026quot;选择\u0026quot;解耦了。路由器可以先客观评估每个专家的适合程度，再从中选最好的。\n第五章：负载均衡——MoE 最大的工程难题 ⚖️ 专家坍塌：一个致命的问题 MoE 听起来很美好，但有一个致命问题：专家坍塌（Expert Collapse）。\n想象一下：训练初期，Expert 1 碰巧在某类 token 上表现稍好。路由器学到了这一点，开始把更多同类 token 分给 Expert 1。Expert 1 因此得到更多训练数据，变得更强。路由器看到它更强了，分给它的 token 就更多了……\n恶性循环：\nExpert 1 稍好 → 获得更多 token → 变得更强 → 获得更多 token → ……\n最终：85% 的 token 都去了 Expert 1，其他 7 个专家几乎没有数据。\n这就是\u0026quot;坍塌\u0026quot;——256 个专家变成了事实上的 1 个专家，MoE 退化为 Dense 模型，但还多了 255 个专家的参数浪费。\n▲ 从左到右：无均衡（坍塌）→ 辅助损失（均衡但损害质量）→ 偏置项（均衡且保质） 传统方案：辅助损失（Auxiliary Loss） Google 的 Switch Transformer 提出的解决方案是：给训练损失函数加一个惩罚项，如果 token 分布不均匀就扣分。\nL_total = L_语言建模 + α × L_均衡惩罚 问题是：这两个目标在打架。 语言建模说\u0026quot;这个 token 应该去 Expert 1 效果最好\u0026quot;，均衡惩罚说\u0026quot;Expert 1 太忙了去 Expert 5 吧\u0026quot;。α 太小则没效果，太大则损害模型质量。这个超参数极难调。\nDeepSeek 的创新：偏置项（Bias Terms） DeepSeek-V3 的方案精巧到堪称艺术品：\n核心思路： 不修改损失函数，而是给每个专家加一个可调节的偏置项 b_i：\n路由决策： TopK = top_8(s(i,t) + b_i) ← 偏置影响\u0026quot;选谁\u0026quot;\n权重计算： g(i,t) = s(i,t) / Σ s(j,t) ← 偏置不影响\u0026quot;权重多大\u0026quot;\n动态调整（每个训练步之后）：\nExpert i 太忙了？→ 减小 b_i（让它更难被选中） Expert i 太闲了？→ 增大 b_i（让它更容易被选中） 为什么这比辅助损失好？\n不干扰梯度： 偏置只影响\u0026quot;选谁\u0026quot;，不影响\u0026quot;权重多大\u0026quot;——语言建模的梯度完全不受干扰 自我纠正： 忙的专家自动变得不那么容易被选中，闲的自动变得更容易被选中 实现简单： 每步训练后，一行代码就能更新所有偏置项 无需调参： 不需要辅助损失的 α 超参数 类比： 医院的分诊台。\n传统方案（辅助损失）：硬性规定\u0026quot;每个科室每天必须接诊相同数量的病人\u0026quot;——结果骨科空着等人，而急诊排着长队。\nDeepSeek 方案（偏置项）：分诊台根据各科室当前等候人数动态调整推荐——急诊太忙了？先推荐去全科看看是不是小问题。但如果病人确实需要急诊，急诊的治疗方案（权重）不会因为排队而打折扣。\n第六章：共享专家——被忽略的关键创新 🧱 为什么需要\u0026quot;共享专家\u0026quot;？ DeepSeek-V2 引入了一个看似不起眼、但影响深远的设计：共享专家（Shared Expert）。\n在纯 MoE 中，如果没有共享专家，会出现一个问题：很多路由专家会重复学习通用知识。\n比如语法规则——几乎每个 token 都需要知道主谓宾的基本结构。如果没有共享专家，Expert 1 学一遍语法，Expert 2 也学一遍，Expert 256 也学一遍。这是巨大的冗余。\n共享专家的设计：\nDeepSeek-V3 每个 MoE 层： ├── 共享专家 ×1（每个 token 必过，不需要路由） │ └── 存储：语法、常见模式、通用语义 └── 路由专家 ×256（每个 token 只选 8 个） └── 存储：领域专业知识（数学技巧、代码模式、特定语言知识……） 共享专家 = 全科医生（人人都要先看一下） 路由专家 = 专科医生（按需转诊）\n效果： 路由专家不再需要浪费容量去学通用知识，可以把全部容量用于发展自己的专长。这让 256 个路由专家的有效知识密度大幅提升。\n第七章：MoE 与彩票假说——一个深层的理论联系 🎰 回忆：彩票假说说了什么 在之前的文章《为什么把模型做大就能变聪明？》中，我们介绍过 MIT 的 彩票假说（Lottery Ticket Hypothesis, 2019）：\n一个大型神经网络中，高达 96% 的权重可以被移除，剩下的 4% 子网络性能完全不变。\n大网络之所以有效，不是因为它需要那么多参数来\u0026quot;记住\u0026quot;数据，而是因为——参数越多，越有可能在随机初始化中\u0026quot;碰巧\u0026quot;包含一个有利的小子网络。\n每个子网络就是一张彩票。单张中奖概率微乎其微。但当你有几十亿张彩票时，中奖就是必然事件。\n当时我们写了一句话：\nMoE 实现了彩票假说的承诺——每次推理只用一小部分参数——但通过架构设计，而不是事后剪枝。\n现在，让我们把这个联系展开。\n彩票假说的困境 彩票假说告诉我们：大网络里真正干活的是一个小子网络。那么理论上最高效的做法应该是——先训练大网络，然后找出那个\u0026quot;中奖彩票\u0026quot;子网络，只用它来推理。\n但实操完全行不通：\n困境 1：找彩票太贵。 要找到\u0026quot;中奖\u0026quot;子网络，需要反复训练-剪枝-重置-再训练，对 LLM 来说意味着 30 倍的训练成本。\n困境 2：稀疏在硬件上跑不快。 找到的子网络是\u0026quot;非结构化稀疏\u0026quot;——权重矩阵里随机散落着零。GPU 为密集矩阵优化，96% 稀疏并不会快 25 倍。\n困境 3：不同问题的\u0026quot;中奖彩票\u0026quot;可能不同。 处理数学题和处理诗歌，需要的子网络可能完全不一样。一张彩票不够用。\nMoE：彩票假说的\u0026quot;正确工程实现\u0026quot; 现在让我们看看 MoE 是怎么解决这三个困境的：\n彩票假说的困境 MoE 的解法 找彩票太贵（训练-剪枝-重置 30 轮） 不需要找！ 路由器在训练过程中自动学会\u0026quot;派活\u0026quot;，每个 token 天然只用最相关的专家 非结构化稀疏硬件不友好 结构化稀疏！ 每个专家是完整的 FFN，GPU 可以高效运算。不用的专家整个跳过，不是跳过零散的权重 不同问题需要不同子网络 路由器动态选择！ 数学 token 路由到\u0026quot;数学专家\u0026quot;，代码 token 路由到\u0026quot;代码专家\u0026quot;。每个 token 有自己的\u0026quot;中奖彩票\u0026quot; 从理论到工程的闭环 把它们放在一起看：\n彩票假说 (理论发现, 2019) ↓ 发现：大网络里只有一小部分参数真正干活 ↓ 问题：怎么高效地只用那一小部分？ ↓ ├→ 剪枝路线：训练后删权重（太贵、不友好硬件） │ └→ MoE 路线：训练时就让每个 token 只用一部分专家 ↓ DeepSeek-V3 (工程巅峰, 2024) 671B 参数，每 token 只激活 37B 不是事后剪枝，而是从架构层面实现\u0026#34;稀疏激活\u0026#34; 路由器 = 自动找彩票的机制 每个 token 找到自己的\u0026#34;中奖专家组\u0026#34; 用一句话概括： 彩票假说证明了\u0026quot;大网络里只有一小部分在干活\u0026quot;，而 MoE 的设计是——与其事后去找那一小部分，不如从一开始就让系统自己决定每次激活哪一小部分。\n这就是为什么 MoE 不只是一个工程技巧——它是对\u0026quot;为什么大模型有效\u0026quot;这个基础理论问题的架构级回答。\n第八章：MoE 的三十年进化 📜 MoE 不是 DeepSeek 发明的。这个概念已经有 34 年历史，但直到最近才真正大放异彩。\n1991 Jacobs \u0026amp; Hinton 最早提出 Mixture of Experts ↓ 多个小网络 + 门控网络，竞争学习 ↓ 2017 Shazeer (Google) 把 MoE 引入大模型 ↓ 137B 参数，稀疏门控，Top-K 路由 ↓ 2021 Switch Transformer 简化路由（Top-1），扩展到万亿参数 ↓ 7 倍训练加速 ↓ 2023 Mixtral 8×7B MoE 进入开源主流 ↓ 8 个专家，Top-2，Apache 2.0 许可 ↓ 性能匹配 GPT-3.5，参数量仅 47B ↓ 2024 DeepSeek-V2 精细化 MoE ↓ 160 个路由专家 + 共享专家隔离 ↓ 2024 DeepSeek-V3 MoE 的当前巅峰 ↓ 256 路由 + 1 共享，无辅助损失均衡 ↓ 671B 总参数，37B 活跃，$5.6M 训练 ↓ 2025 Qwen3 MoE 128 个专家，Top-8 30B-A3B / 235B-A22B 一个有趣的观察： 从 2017 年到 2024 年，MoE 的演化方向一直是——更多更小的专家、更精细的路由、更巧妙的均衡。专家数量从 8 → 64 → 160 → 256，每个专家从\u0026quot;大而全\u0026quot;变成\u0026quot;小而精\u0026quot;。\n第九章：成本对比——为什么 MoE 改变了游戏规则 💰 训练成本 ▲ 总参数决定知识容量，活跃参数决定实际成本——MoE 在两者之间找到了甜蜜点 模型 总参数 活跃参数 激活比 估计训练成本 GPT-4（估计） ~1.8T ~1.8T（Dense） 100% \u0026gt;$100M LLaMA-3.1 405B 405B 405B（Dense） 100% ~$30M+ DeepSeek-V3 671B 37B 5.5% $5.6M Mixtral 8×7B 47B 13B 27.6% 未公开 DeepSeek-V3 用不到 GPT-4 训练成本的 1/20，达到了接近 GPT-4o 的性能。 这不是因为 DeepSeek 找到了什么魔法——而是 MoE 架构本身就允许用更少的计算获得更多的知识容量。\n推理成本 MoE 在推理时也更便宜：\n计算量： 每个 token 只做 37B 的矩阵运算，不是 671B 延迟： 单 token 延迟接近 37B Dense 模型 吞吐量： 同样的 GPU 可以处理更多请求 但 MoE 有一个代价：内存。 虽然每个 token 只用 37B 参数，但全部 671B 参数必须同时驻留在显存中——因为你不知道下一个 token 会被路由到哪个专家。\n这意味着 MoE 模型需要更多的 GPU 数量来部署（放不下就得分片），但每个 GPU 的实际计算利用率更高。\n第十章：这一切意味着什么？ 🔭 意义 1：AI 的\u0026quot;大脑\u0026quot;也需要分工\n人类大脑有约 860 亿个神经元，但在任何给定时刻，只有一小部分是活跃的。看文字时视觉皮层活跃，听音乐时听觉皮层活跃，做数学时前额叶皮层活跃。\nMoE 模型走向了同样的路径：不是让所有参数对所有问题都开工，而是让合适的参数处理合适的问题。 这不仅仅是工程优化——这可能是通向更大规模智能的必经之路。\n意义 2：AI 平权的催化剂\n如果训练一个顶级模型需要 1 亿美元，那只有 OpenAI、Google 这样的公司玩得起。但如果 MoE 把成本降到 560 万美元——大学实验室、中小企业、开源社区都有了参与前沿研究的可能。\nDeepSeek-V3 的 $5.6M 训练成本不仅是技术成就，更是AI 民主化的标志性事件。\n意义 3：Dense 模型可能已经到头了\n当你需要更多知识容量时，Dense 模型的唯一选择是加参数——但每加一个参数，每个 token 的计算成本也增加一个参数。这是线性增长。\nMoE 打破了这个约束：加参数不加计算。 你可以把模型扩展到万亿参数级别，而推理成本只是百亿级。\n这就是为什么 2024 年之后，几乎所有前沿大模型——DeepSeek-V3、Qwen3、Llama 4 Maverick——都选择了 MoE 架构。 Dense 模型的时代，可能正在结束。\n结语：不是所有神经元都需要同时工作 回到最初的问题：671B 参数的模型，为什么只用 37B 就够了？\n因为——\u0026ldquo;够了\u0026quot;本身就是一个伪命题。 不是\u0026quot;37B 够了\u0026rdquo;，而是\u0026quot;对于这个 token，37B 是最相关的那部分\u0026quot;。其他 634B 参数不是多余的——它们在等待属于自己的 token。\n这像是大自然早就想通的道理：你的大脑不会同时激活所有神经元，你的身体不会同时使用所有肌肉，你的公司不应该让全体员工处理每一个客户。\n效率的秘密从来不是\u0026quot;做更多\u0026quot;，而是\u0026quot;在对的时候做对的事\u0026quot;。\nMoE，就是 AI 学会的这个道理。\n📚 延伸阅读\nDeepSeek-V3 技术报告：arXiv 2412.19437 Switch Transformer：arXiv 2101.03961 Mixtral 8×7B：arXiv 2401.04088 原始 MoE 论文：Jacobs, Jordan, Nowlan, Hinton (1991) 上一篇：DeepSeek-R1：一个模型如何学会思考 下一篇预告：从 RLHF 到 GRPO —— 大模型训练的三次革命 博客：https://Jason-Azure.github.io/ai-blog/\n微信公众号：AI-lab学习笔记\n","permalink":"https://jason-azure.github.io/ai-blog/posts/moe-architecture/","summary":"DeepSeek-V3 拥有 6710 亿参数，但每个 token 只激活 370 亿——不到总量的 6%。这不是偷懒，这是 AI 架构设计中最精巧的一课：不是所有神经元都需要同时工作。","title":"MoE：671B 参数的模型，为什么只用 37B 就够了？"},{"content":"引言 前四篇，我们从向量走到了 Attention 公式。你现在知道 Transformer 的核心是矩阵乘法。\n但有一个问题：矩阵乘法是\u0026quot;线性\u0026quot;的——不管你叠多少层矩阵，数学上都等于一个矩阵。\nW2 × (W1 × x) = (W2 × W1) × x = W_合并 × x 一百层网络 = 一层网络？ 那深度学习还\u0026quot;深\u0026quot;什么？\n答案是：激活函数。它是插在每两层矩阵之间的\u0026quot;非线性开关\u0026quot;，让多层网络真正比一层强大。\n今天的主角是 ReLU——整个深度学习时代最重要的一行代码。\n系列导航\n▹ 第一篇：从数轴到高维空间 ▹ 第二篇：向量的加减法 — 点积与余弦相似度 ▹ 第三篇：矩阵——空间的变形术 ▹ 第四篇：矩阵乘法与 AI — 理解 Transformer 的最后一块拼图 ▸ 第五篇（本文）：激活函数——神经网络的开关 ▹ 第六篇：梯度下降——AI 怎么学习 第一章：ReLU——史上最简单的\u0026quot;激活函数\u0026quot; 一行代码，改变了 AI ReLU(x) = max(0, x) 就这么简单：\n输入是正数 → 原样输出 输入是负数 → 输出 0 ReLU(-3) = 0 ← 负数？关掉！ ReLU(-1) = 0 ← 负数？关掉！ ReLU(0) = 0 ReLU(0.5) = 0.5 ← 正数？通过！ ReLU(2) = 2 ← 正数？通过！ ReLU(5) = 5 ← 正数？通过！ 类比： ReLU 就像一个单向阀门——水（正数）可以流过，但不允许倒流（负数被截断为 0）。\n三种激活函数对比 ReLU 不是唯一的激活函数。历史上还有 Sigmoid 和 Tanh：\n激活函数 公式 输出范围 特点 ReLU max(0, x) [0, +∞) 简单快速，现代首选 Sigmoid 1/(1+e⁻ˣ) (0, 1) 老一代，有梯度消失问题 Tanh (eˣ-e⁻ˣ)/(eˣ+e⁻ˣ) (-1, 1) 比 Sigmoid 好，但仍有问题 为什么 ReLU 赢了？ 因为它计算快（一个 max 操作 vs 指数运算），而且在正数区域梯度恒为 1，不会随着层数增加而衰减（后面讲梯度下降时会解释）。\n第二章：为什么非线性如此重要？ 没有激活函数：一百层 = 一层 这是最关键的直觉：\n第1层: h = W1 × x (矩阵乘法 = 线性) 第2层: y = W2 × h = W2 × W1 × x 合并: y = (W2 × W1) × x = W_合并 × x 两个矩阵的乘积还是一个矩阵。线性操作的叠加仍然是线性的。 不管你叠多少层，最终都等价于一个矩阵乘法——一层网络。\n加上激活函数：每一层都有意义 第1层: h = ReLU(W1 × x) ← 非线性！ 第2层: y = W2 × h 现在 y = W2 × ReLU(W1 × x) ≠ W_任何 × x ReLU 打破了线性，让每一层都能学到新的东西。这就是\u0026quot;深度\u0026quot;学习的\u0026quot;深度\u0026quot;来源。\n动画：线性 vs 非线性的分类能力 关键洞察： 线性模型只能画直线来分隔数据。但现实世界的问题往往需要曲线——比如区分\u0026quot;猫\u0026quot;和\u0026quot;狗\u0026quot;的特征边界不可能是一条直线。非线性激活函数让神经网络能画出任意复杂的曲线。\n第三章：ReLU 在 Transformer 里的位置 还记得 Transformer 的结构吗？每一层有两个主要模块：\n词向量 → [Self-Attention] → 残差连接 ↓ [FFN: 扩展 → ReLU → 压缩] → 残差连接 → 下一层 ReLU 就住在 FFN（前馈网络） 里：\n第 1 步：扩展\n768 维 → W₁ → 3072 维\n（放大 4 倍，给 ReLU 更多维度来\"选择\"） 第 2 步：ReLU 过滤\n3072 维 → ReLU → 3072 维（约 50% 被置零）\n（\"这些维度的信息有用，那些不要\"） 第 3 步：压缩\n3072 维 → W₂ → 768 维\n（只保留有用信息，回到原来的维度） ReLU 的稀疏性 = 效率 ReLU 把约 50% 的神经元输出置零。这种\u0026quot;稀疏激活\u0026quot;意味着：\n每个词只激活一半的特征——不同的词激活不同的特征组合 这就像一个智能筛选器——只保留对当前任务有用的信息 注意： 现代 Transformer（如 GPT-3/4）通常用 GELU（高斯误差线性单元）代替 ReLU。GELU 类似 ReLU 但在 0 附近更平滑。核心思想不变——都是非线性激活。\n第四章：动手验证 以下命令在 Ubuntu 22.04 + Python 3.10 环境中执行：\nazureuser@ai-lab:~$ source ~/ai-lab-venv/bin/activate (ai-lab-venv) azureuser@ai-lab:~$ python3 实验一：ReLU 就是 max(0, x) \u0026gt;\u0026gt;\u0026gt; import numpy as np \u0026gt;\u0026gt;\u0026gt; \u0026gt;\u0026gt;\u0026gt; inputs = [-3, -1, 0, 0.5, 2, 5] \u0026gt;\u0026gt;\u0026gt; print(\u0026#34;输入 → ReLU 输出:\u0026#34;) 输入 → ReLU 输出: \u0026gt;\u0026gt;\u0026gt; for x in inputs: ... print(f\u0026#34; ReLU({x:\u0026gt;4}) = max(0, {x:\u0026gt;4}) = {max(0, x)}\u0026#34;) ReLU( -3) = max(0, -3) = 0 ReLU( -1) = max(0, -1) = 0 ReLU( 0) = max(0, 0) = 0 ReLU( 0.5) = max(0, 0.5) = 0.5 ReLU( 2) = max(0, 2) = 2 ReLU( 5) = max(0, 5) = 5 结果解读： 负数全部归零，正数原样通过。就这么简单。\n实验二：没有 ReLU，多层 = 一层 \u0026gt;\u0026gt;\u0026gt; W1 = np.array([[2, -3], [1, 2]]) \u0026gt;\u0026gt;\u0026gt; W2 = np.array([[1, 2], [3, 1]]) \u0026gt;\u0026gt;\u0026gt; x = np.array([1, 2]) \u0026gt;\u0026gt;\u0026gt; \u0026gt;\u0026gt;\u0026gt; # 没有激活函数：两层分开算 \u0026gt;\u0026gt;\u0026gt; h = W1 @ x \u0026gt;\u0026gt;\u0026gt; y = W2 @ h \u0026gt;\u0026gt;\u0026gt; print(f\u0026#34;W1 @ x = {h}\u0026#34;) W1 @ x = [-4 5] \u0026gt;\u0026gt;\u0026gt; print(f\u0026#34;W2 @ (W1 @ x) = {y}\u0026#34;) W2 @ (W1 @ x) = [ 6 -7] \u0026gt;\u0026gt;\u0026gt; \u0026gt;\u0026gt;\u0026gt; # 合并成一个矩阵 \u0026gt;\u0026gt;\u0026gt; W_combined = W2 @ W1 \u0026gt;\u0026gt;\u0026gt; print(f\u0026#34;(W2 @ W1) @ x = {W_combined @ x}\u0026#34;) (W2 @ W1) @ x = [ 6 -7] \u0026gt;\u0026gt;\u0026gt; print(\u0026#34;结果完全一样！两层白搭了。\u0026#34;) 结果完全一样！两层白搭了。 \u0026gt;\u0026gt;\u0026gt; # 加上 ReLU \u0026gt;\u0026gt;\u0026gt; h_relu = np.maximum(0, W1 @ x) \u0026gt;\u0026gt;\u0026gt; y_relu = W2 @ h_relu \u0026gt;\u0026gt;\u0026gt; print(f\u0026#34;W1 @ x = {W1 @ x}\u0026#34;) W1 @ x = [-4 5] \u0026gt;\u0026gt;\u0026gt; print(f\u0026#34;ReLU(W1 @ x) = {h_relu} ← -4 被截断为 0!\u0026#34;) ReLU(W1 @ x) = [0 5] ← -4 被截断为 0! \u0026gt;\u0026gt;\u0026gt; print(f\u0026#34;W2 @ ReLU(h) = {y_relu}\u0026#34;) W2 @ ReLU(h) = [10 5] \u0026gt;\u0026gt;\u0026gt; print(f\u0026#34;(W2@W1) @ x = {W_combined @ x}\u0026#34;) (W2@W1) @ x = [ 6 -7] \u0026gt;\u0026gt;\u0026gt; print(\u0026#34;[10, 5] ≠ [6, -7]，结果不一样！ReLU 让多层有意义。\u0026#34;) [10, 5] ≠ [6, -7]，结果不一样！ReLU 让多层有意义。 结果解读： 没有 ReLU 时，[6, -7] = [6, -7]，两层完全等于一层。加了 ReLU 后，[10, 5] ≠ [6, -7]——中间的 -4 被截断为 0，彻底改变了结果。\n实验三：不同激活函数对比 \u0026gt;\u0026gt;\u0026gt; x_vals = np.array([-2.0, -1.0, -0.5, 0.0, 0.5, 1.0, 2.0]) \u0026gt;\u0026gt;\u0026gt; relu = np.maximum(0, x_vals) \u0026gt;\u0026gt;\u0026gt; sigmoid = 1 / (1 + np.exp(-x_vals)) \u0026gt;\u0026gt;\u0026gt; tanh = np.tanh(x_vals) \u0026gt;\u0026gt;\u0026gt; \u0026gt;\u0026gt;\u0026gt; print(f\u0026#34;{\u0026#39;x\u0026#39;:\u0026gt;6} | {\u0026#39;ReLU\u0026#39;:\u0026gt;6} | {\u0026#39;Sigmoid\u0026#39;:\u0026gt;8} | {\u0026#39;Tanh\u0026#39;:\u0026gt;6}\u0026#34;) x | ReLU | Sigmoid | Tanh \u0026gt;\u0026gt;\u0026gt; for i in range(len(x_vals)): ... print(f\u0026#34;{x_vals[i]:\u0026gt;6.1f} | {relu[i]:\u0026gt;6.1f} | {sigmoid[i]:\u0026gt;8.4f} | {tanh[i]:\u0026gt;6.4f}\u0026#34;) -2.0 | 0.0 | 0.1192 | -0.9640 -1.0 | 0.0 | 0.2689 | -0.7616 -0.5 | 0.0 | 0.3775 | -0.4621 0.0 | 0.0 | 0.5000 | 0.0000 0.5 | 0.5 | 0.6225 | 0.4621 1.0 | 1.0 | 0.7311 | 0.7616 2.0 | 2.0 | 0.8808 | 0.9640 结果解读： ReLU 是\u0026quot;硬开关\u0026quot;（0 或原值），Sigmoid 是\u0026quot;软开关\u0026quot;（01 之间），Tanh 是\u0026quot;双向软开关\u0026quot;（-11 之间）。\n实验四：ReLU 的稀疏性 \u0026gt;\u0026gt;\u0026gt; np.random.seed(42) \u0026gt;\u0026gt;\u0026gt; layer_output = np.random.randn(100) # 模拟 100 个神经元 \u0026gt;\u0026gt;\u0026gt; after_relu = np.maximum(0, layer_output) \u0026gt;\u0026gt;\u0026gt; \u0026gt;\u0026gt;\u0026gt; alive = np.sum(after_relu \u0026gt; 0) \u0026gt;\u0026gt;\u0026gt; dead = np.sum(after_relu == 0) \u0026gt;\u0026gt;\u0026gt; print(f\u0026#34;100 个神经元经过 ReLU:\u0026#34;) 100 个神经元经过 ReLU: \u0026gt;\u0026gt;\u0026gt; print(f\u0026#34; 激活 (\u0026gt;0): {alive} 个\u0026#34;) 激活 (\u0026gt;0): 46 个 \u0026gt;\u0026gt;\u0026gt; print(f\u0026#34; 沉默 (=0): {dead} 个\u0026#34;) 沉默 (=0): 54 个 \u0026gt;\u0026gt;\u0026gt; print(f\u0026#34; 稀疏率: {dead}%\u0026#34;) 稀疏率: 54% 结果解读： 约一半神经元被 ReLU 关闭。这不是浪费——不同的输入会激活不同的神经元组合，就像不同的词激活大脑的不同区域。\n实验五：模拟 GPT-2 的 FFN \u0026gt;\u0026gt;\u0026gt; np.random.seed(42) \u0026gt;\u0026gt;\u0026gt; d_model, d_ff = 8, 32 # 简化版：真实 GPT-2 是 768 → 3072 \u0026gt;\u0026gt;\u0026gt; x = np.random.randn(d_model) \u0026gt;\u0026gt;\u0026gt; W1 = np.random.randn(d_model, d_ff) * 0.5 \u0026gt;\u0026gt;\u0026gt; W2 = np.random.randn(d_ff, d_model) * 0.5 \u0026gt;\u0026gt;\u0026gt; \u0026gt;\u0026gt;\u0026gt; h = x @ W1 \u0026gt;\u0026gt;\u0026gt; print(f\u0026#34;扩展到 {d_ff} 维，前 8 个值:\u0026#34;) 扩展到 32 维，前 8 个值: \u0026gt;\u0026gt;\u0026gt; print(f\u0026#34; [{\u0026#39;, \u0026#39;.join(f\u0026#39;{v:.2f}\u0026#39; for v in h[:8])}] ...\u0026#34;) [0.12, 1.26, 2.17, 1.62, -1.50, -1.44, -1.52, -0.26] ... \u0026gt;\u0026gt;\u0026gt; \u0026gt;\u0026gt;\u0026gt; h_relu = np.maximum(0, h) \u0026gt;\u0026gt;\u0026gt; active = np.sum(h_relu \u0026gt; 0) \u0026gt;\u0026gt;\u0026gt; print(f\u0026#34;ReLU 后: {active}/{d_ff} 个激活 (稀疏率 {(d_ff-active)/d_ff:.0%})\u0026#34;) ReLU 后: 16/32 个激活 (稀疏率 50%) \u0026gt;\u0026gt;\u0026gt; \u0026gt;\u0026gt;\u0026gt; y = h_relu @ W2 \u0026gt;\u0026gt;\u0026gt; print(f\u0026#34;压缩回 {d_model} 维: [{\u0026#39;, \u0026#39;.join(f\u0026#39;{v:.2f}\u0026#39; for v in y)}]\u0026#34;) 压缩回 8 维: [-0.40, 1.76, 1.42, -3.08, 1.53, -4.22, -2.19, -3.30] 完整流程走通了！ 8 维 → 扩展到 32 维 → ReLU 过滤掉 50% → 压缩回 8 维。这就是 Transformer 中每一层 FFN 在做的事情，真实模型只是把 8 换成 768，把 32 换成 3072。\n本章小结 本篇核心要点 一、ReLU = max(0, x)\n正数通过，负数归零 整个深度学习时代最常用的激活函数 二、非线性让深度成为可能\n没有激活函数：多层 = 一层（矩阵乘法可合并） 有了激活函数：每层都能学到新特征 三、ReLU 在 Transformer 的 FFN 中\n768 维 → 扩展到 3072 维 → ReLU 过滤 → 压缩回 768 维 约 50% 稀疏激活，不同词激活不同神经元 四、一行公式速查\n概念 公式 ReLU max(0, x) Sigmoid 1/(1+e⁻ˣ) 核心作用 打破线性，让深度有意义 下一篇预告 我们知道了矩阵做变换，ReLU 加非线性。但有一个根本问题：\n矩阵 W 里的数字是怎么来的？AI 怎么知道该用什么参数？\n答案是：梯度下降——让 AI 从错误中学习的算法。这也是 microgpt 训练时 loss 不断下降的原因。\n下一篇（完结）：AI 的数学语言（六）：梯度下降——AI 怎么学习\n本文首发于「AI 学习笔记」博客：https://Jason-Azure.github.io/ai-blog/\n微信公众号：AI-lab学习笔记\n系列文章完整列表见 标签：激活函数\n","permalink":"https://jason-azure.github.io/ai-blog/posts/math-for-ai-5-activation/","summary":"ReLU：一行代码 max(0, x) 让深度学习成为可能。理解激活函数为什么是神经网络不可或缺的非线性魔法。","title":"AI 的数学语言（五）：激活函数——神经网络的开关"},{"content":"找一张白纸，画一个圆。\n再画一个同样大小的圆，让它的圆心恰好落在第一个圆的边缘。\n看那个重叠的区域——两头尖、中间鼓的杏仁形。\n恭喜你。你刚刚做了一件六千年前埃及人做过的事，两千年前凯尔特人做过的事，五百年前达·芬奇做过的事，六百年前紫禁城的工匠做过的事。\n而且，你刚刚用纯几何的方式，把 $\\sqrt{3}$ 放在了纸上。\n一、杏仁形的秘密 这个两头尖的形状有个名字，叫做 Vesica Piscis（鱼形囊）。拉丁文直译是\u0026quot;鱼的膀胱\u0026quot;——名字不雅，但数学很美。\n让我们看看这个形状到底藏了什么。\n设两个圆的半径都是 r。因为第二个圆的圆心落在第一个圆的边缘上，两个圆心之间的距离也等于 r。\n现在，看两个圆的交点。从一个交点到另一个交点的距离是多少？\n画一条从圆心到交点的连线，你会得到一个三角形：两条边都等于 r（半径），底边等于 r（圆心距）。这是一个等边三角形。\n等边三角形的高 = ($\\sqrt{3}$/2) × 边长 = ($\\sqrt{3}$/2) × r。\n两个交点之间的距离 = 高度的两倍 = r$\\sqrt{3}$。\n就这样。两个等圆的最简单重叠，自然涌现出了 $\\sqrt{3}$——一个无法用任何分数表达的无理数。\n$\\sqrt{3}$ 不是被\u0026quot;计算\u0026quot;出来的。它是被\u0026quot;画\u0026quot;出来的。\n这就是几何的力量：你不需要知道什么是无理数，不需要知道什么是代数，你只需要一个圆规——一个比文字还古老的工具——就能把一个数学上无穷不循环的数字，精确地放在纸上。\n二、无理数的产房 $\\sqrt{3}$ 不孤单。\n从 Vesica Piscis 出发，你可以用纯几何的方式（只用圆规和直尺）构造出几乎所有重要的无理数：\n$\\sqrt{2}$：画一个正方形，它的对角线就是边长的 $\\sqrt{2}$ 倍。而正方形可以从 Vesica Piscis 中直接提取——两个圆的公共弦就是正方形对角线的天然起点。\n$\\sqrt{5}$：画一个长宽比为 1:2 的矩形，它的对角线就是 $\\sqrt{5}$。\n黄金比例 φ：有了 $\\sqrt{5}$，黄金比例就水到渠成—— φ = (1+$\\sqrt{5}$)/2 ≈ 1.618\u0026hellip;\n一条链条浮现了：\n两个圆相交 ↓ √3 涌现 ↓ √2（正方形对角线） ↓ √5（1:2 矩形对角线） ↓ φ = (1+√5)/2（黄金比例） Vesica Piscis 是无理数的\u0026quot;产房\u0026quot;。 从这一个最简单的几何动作——两圆相交——出发，数学中最重要的几个常数依次诞生。\n你可能会说：这只是几何推导的小把戏。\n但想想看——毕达哥拉斯的学生希帕索斯因为发现 $\\sqrt{2}$ 是无理数而被同门扔进了大海（传说中）。古希腊人为\u0026quot;不可公度量\u0026quot;（无法用分数表达的长度）困扰了几百年。\n而圆规和直尺，早在任何人思考\u0026quot;什么是无理数\u0026quot;之前，就已经默默地把这些数字画在了地上。\n手比脑先到达真理。这件事值得安静地想一想。\n三、一条规则，一朵花 现在，让我们继续画。\n你已经有了两个圆和一个 Vesica Piscis。在两个圆的两个交点上，分别以它们为圆心，再画两个等大的圆。\n然后在新的交点上继续画。\n遵循一条规则：每个新圆的圆心，落在已有圆的交点上。\n第一步：1 个圆。\n第二步：2 个圆。中间出现了 Vesica Piscis。\n第三步：7 个圆。六个圆围绕中心圆排列，像花瓣。这个图案叫做 Seed of Life（生命种子）。\n第四步：继续扩展到 19 个圆。花瓣层层绽放。这个图案叫做 Flower of Life（生命之花）。\n整个过程只用了一条规则，一把圆规。没有尺子，没有数字，没有方程。\n但如果你仔细看这朵花，你会发现它里面藏满了正六边形、正三角形、正方形。它的对称群是 p6m——平面上对称性最高的壁纸群之一。它的圆心排列构成三角晶格——自然界中原子最密堆积的方式。\n一条规则，生长出一整个数学宇宙。\n19 个等径圆构成的生命之花——从一个圆规动作中生长出来的完美对称\n四、一朵花开遍世界 到这里，如果生命之花只是一个漂亮的几何练习，那我们可以满意地合上本子了。\n但历史不答应。\n埃及，阿拜多斯（Abydos）。 在古埃及最神圣的遗址之一——奥西里斯神庙（Osireion）的花岗岩石柱上，用红赭石烙印着完整的生命之花图案。这座神庙的历史可追溯至公元前 1300 年左右，部分学者认为其基础结构更为古老。\n埃及阿拜多斯奥西里斯神庙石柱上的生命之花图案（图源: Wikimedia Commons, CC BY-SA 3.0）\n中国，北京紫禁城。 太和门前的铜狮子，右爪下踩着一个绣球。这个绣球的表面，雕刻着精确的生命之花图案。明代工匠留下了这个几何密码，五百多年来接受着数以亿计游客的目光——但很少有人低头仔细看过。\n北京紫禁城太和门铜狮脚下绣球上的生命之花图案（图源: Wikimedia Commons, CC BY-SA 3.0）\n土耳其，以弗所（Ephesus）。 罗马时期的大理石地板上。\n印度，阿姆利则金庙。 锡克教最神圣的寺庙。\n以色列，马萨达（Masada）。 希律王宫殿的遗址中。\n六个文明。四个大洲。时间跨度超过三千年。\n没有已知的直接文化传播路径。\n同一个图案。\n为什么？\n我不知道。这个系列也不会假装知道。但这个问题本身——为什么不同文明的人，在互不相识的情况下，用一模一样的方式画圆？——值得我们带着它继续走下去。\n五、达·芬奇的痴迷 在所有研究过生命之花的人中，有一个人的痴迷程度超过其他所有人。\n列奥纳多·达·芬奇（Leonardo da Vinci, 1452–1519）。\n在他的《大西洋手稿》（Codex Atlanticus）中——那部收藏在米兰安布罗西亚图书馆的庞大笔记集——有多个页面被生命之花的几何研究占满。最著名的是 folio 307v。\n达·芬奇不是以神秘主义的心态画这些圆的。他是工程师，他在分析结构。\n他标注了比例。测量了角度。研究了每一个交点产生的几何形状。他试图理解，为什么这样一个简单的构造规则，能生长出如此丰富的数学关系。\n这和他在《维特鲁威人》中做的事情是一样的——用圆和方来丈量人体，用几何来理解世界。\n不过有一件事特别值得注意。\n达·芬奇在这些手稿中，不只是画了圆。他在圆的交点之间画了直线。\n当你选出生命之花中特定的 13 个圆，去掉花瓣只留圆心，然后把每一个圆心和其他所有 12 个圆心用直线连接——C(13,2) = 78 条线——一个新的图案出现了。\n它叫做 Metatron\u0026rsquo;s Cube（麦塔特隆立方体）。\n而藏在这个看似纷繁的线条图案里的，是宇宙中所有可能的完美形状。\n但那是下一个故事了。\n六、一个安静的事实 让我们回到这篇文章的起点。\n一张白纸。两个圆。\n从这个最简单的几何动作中：\n涌现出 $\\sqrt{3}$、$\\sqrt{2}$、$\\sqrt{5}$、黄金比例 φ——数学中最基本的无理数家族。 生长出生命之花——一个在六千年间独立出现在至少六个文明中的几何图案。 启发了达·芬奇——人类历史上最伟大的通才之一——的大量几何研究。 这不是巧合，也不是神秘主义。这是一个安静的事实：最简单的操作，有时候包含着最深的结构。\n圆规比方程古老。画圆比计算古老。手比脑先触碰到真理。\n而我们的旅程才刚刚开始。\n下一篇： 达·芬奇在圆的交点之间画了直线，一个叫做\u0026quot;麦塔特隆立方体\u0026quot;的图案浮现了。在这个图案里，藏着宇宙中仅有的五种完美形状。25 岁的开普勒用它们来解释太阳系——他错了，但他追问的问题是对的。\n→ 两个圆之后（二）：完美的形状只有五个\n本文是「两个圆之后」系列的第一篇。这个系列从一个圆规开始，穿越几何、编码、代数与意识，追问一个没有答案的问题：为什么人类在每一个文明、每一个时代，都看见了同一组数学结构？\n系列目录：\n两个圆相遇的地方 — 鱼形囊、$\\sqrt{3}$，以及一朵开遍世界的花（本篇） 完美的形状只有五个 — 生命之花、麦塔特隆立方体与开普勒的宇宙模型 伏羲的计算机 — 六十四卦、邵雍方阵与莱布尼茨收到的那封信 相生相克的数学 — 五行、八卦，与藏在占卜里的代数结构 向内画圆 — 金华宗旨、荣格与意识的几何 ","permalink":"https://jason-azure.github.io/ai-blog/posts/two-circles-1/","summary":"找一张白纸，画两个圆。恭喜你——你刚刚做了一件六千年前埃及人做过的事。在那个杏仁形的重叠区里，藏着 √3、黄金比例，以及一朵开遍全世界的花。","title":"两个圆之后（一）：两个圆相遇的地方"},{"content":" 📖 写在前面 这篇文章不是教程，不是测评，也不是\u0026quot;手把手教你搭建 AI Agent\u0026quot;。\n这是一篇反思文。\n过去一个月，我写了十几篇技术解析——从 Transformer 的数学原理到 DeepSeek-R1 的推理机制，从 MoE 的稀疏激活到 GRPO 的训练算法。那些文章在回答一个问题：AI 是怎么工作的？\n但最近的一些经历让我想写一篇不一样的东西。\n我自己也在学 Agent、配 MCP、搭工作流。但学着学着，心里冒出一个挥之不去的问题：我到底要用它来做什么？\n每个人关心的方向不同。有人喜欢做应用，有人喜欢研究商业。而我个人，更着迷于 AI 的原理、架构和数学——那些不随热词更替而改变的东西。所以才做了这个公众号，想把自己的思考分享出来，给同路的小伙伴们一些参考。\n这篇文章没有标准答案，只是我最近的一些真实想法。\n从一个朋友的故事说起 前段时间，一个做产品经理的朋友兴奋地跟我说：\u0026ldquo;我花了整整一个周末，搭了一个 AI Agent 工作流，自动抓取竞品信息、生成分析报告、发到飞书群里。\u0026rdquo;\n我说：\u0026ldquo;挺厉害的。然后呢？\u0026rdquo;\n他愣了一下：\u0026ldquo;然后……然后我发现，报告发出去之后，没有人看。\u0026rdquo;\n我们都笑了。但笑完之后，他说了一句让我想了很久的话：\n\u0026ldquo;我好像花了一个周末，非常高效地做了一件没人需要的事情。\u0026rdquo;\n这就是我写这篇文章的原因。\n第一章：一张你需要的地图 🗺️ 先理清关系 如果你也被这些词搞晕了，不怪你——我一开始也是。理了一阵，画出了这么一张图：\n▲ 从外到内：你看到的产品 → 中间层热词 → 真正的引擎 → 底层架构 最外层： 你用的产品——ChatGPT、Claude、豆包、Kimi\n中间层： Agent、MCP、RAG、Skills、Coze、Dify——所有热词都在这里\n核心层： LLM（大语言模型）——GPT-4、Claude、DeepSeek、Qwen——这是真正的引擎\n底层： Transformer 架构、深度学习——几十年积累的数学和工程\n看到了吗？所有热词都在中间那一层。 它们不是 AI 本身，它们是 AI 的使用方式。\n我不是在贬低它们——使用方式当然重要，很多人在这一层做出了非常优秀的产品。只是从我个人的兴趣出发，我更想搞明白下面两层——引擎是怎么转的。\n第二章：那些热词到底是什么？ 🔍 我试着用自己的话解释 这些概念刚开始接触时都挺绕的。我尝试用自己理解的方式重新说一遍，不一定完全准确，但可能更容易消化：\nAgent（智能代理）\n官方说法：\u0026ldquo;能自主规划、使用工具、多步骤完成复杂任务的 AI 系统。\u0026rdquo;\n我的理解：本质上是一个 while 循环——反复问 LLM \u0026ldquo;下一步做什么\u0026rdquo;，执行完再问，直到任务完成。\n不是魔法，不是通用人工智能。是一个循环。但这个循环里的\u0026quot;判断\u0026quot;由 LLM 做，所以它能处理以前需要写无数 if-else 才能覆盖的情况。\nMCP（Model Context Protocol）\n官方说法：\u0026ldquo;AI 的 USB-C 接口。\u0026rdquo;\n我的理解：一套 JSON 格式的规范，让 AI 应用和外部工具用同一种\u0026quot;语言\u0026quot;对话。\n以前，每个 AI 应用想连数据库，得自己写一套接口。100 个应用 × 50 个工具 = 5000 个接口。MCP 说：大家都按我这个格式来，100 + 50 = 150 个接口就够了。\n它解决的是标准化问题，不是技术革命。就像 USB 没有发明数据传输，但它统一了接口。\nRAG（检索增强生成）\n官方说法：\u0026ldquo;让 AI 具备实时知识检索能力。\u0026rdquo;\n我的理解：AI 回答前先搜一搜你给它的资料库，然后把搜到的内容和问题一起丢给 LLM。\n就像考试时允许翻书。AI 本身的\u0026quot;知识\u0026quot;有截止日期，RAG 让它能查你公司的内部文档、最新的网页内容。\nCoze / Dify / FastGPT\n我的理解：可视化的 Agent 搭建平台——拖拖拽拽就能把 LLM 和各种工具串起来。\n降低了门槛，让不会写代码的人也能做 AI 应用。但它们的能力上限，取决于底层 LLM 的能力上限。\nSkills / Function Calling / Tool Use\n我的理解：让 LLM 告诉你\u0026quot;我想调用某个函数\u0026quot;的机制。\n2023 年叫 Function Calling，2024 年叫 Tool Use，2025 年叫 Skills，再加上 MCP。换了三个名字，本质是同一件事。\n第三章：Manus 启示录 💥 一夜爆火 2025 年 3 月，一个叫 Manus 的 AI Agent 产品刷爆了所有科技媒体和朋友圈。创始人季逸超发布了令人震惊的 demo——Agent 自主浏览网页、创建 PPT、搭建网站。邀请码一码难求，全网 FOMO。\n三天后，开源社区在 3 小时内做出了替代品 OpenManus，拿到了 5.5 万颗 GitHub 星。\n这件事让很多人兴奋，也让我陷入了思考。\n三个触及本质的问题 第一个问题：如果 3 小时就能复制，壁垒在哪里？\nOpenManus 用 3 小时复制了 Manus 的核心功能。这说明：Agent 的技术壁垒极低。\n真正的核心能力——理解、推理、生成——全在底层的 LLM 里。Agent 框架只是一层薄薄的胶水代码。\n这不是在贬低 Agent 开发者的工作。 胶水代码的设计可以很精巧，用户体验可以天差地别。但如果有人告诉你某个 Agent 产品有\u0026quot;护城河\u0026quot;——你可以多想一想。\n第二个问题：为什么 demo 总是比真实使用好看得多？\n所有 Agent 的 demo 展示的都是\u0026quot;一切顺利\u0026quot;的情况——精心挑选的任务、受控的环境、测试过无数次的流程。\n真实场景里呢？网页结构突然改版、弹窗挡住了按钮、网络超时、API 返回了意料之外的格式……Agent 会懵。Claude Computer Use 的官方文档自己写着：\u0026ldquo;延迟可能过高\u0026rdquo;、\u0026ldquo;坐标输出可能产生幻觉\u0026rdquo;。\n2024 年的 Devin 也是前车之鉴——号称\u0026quot;世界第一个 AI 软件工程师\u0026quot;，估值 20 亿美元。社区实测后发现，效果远不如宣传。\n我不是说这些产品没有价值。 而是说——目前真正能稳定工作的 Agent，都有一个共同点：人在循环里。 开发者能实时审查每一步输出的编程 Agent（Claude Code、Cursor）之所以最成熟，恰恰因为\u0026quot;人类监督\u0026quot;是内建的。\n第三个问题：那些花了一个周末搭 Agent 工作流的人，他们解决了什么问题？\n回到文章开头那个朋友的故事。他搭了一个完美的自动化流程，但没人看那些报告。\n问题不在于 Agent 搭得好不好。问题在于——在搭之前，他没问过自己：这个报告是给谁的？他们需要知道什么？这些信息会影响什么决策？\n工具越来越强大，\u0026ldquo;该用它来做什么\u0026quot;这个问题反而越来越重要了。\n第四章：一个让人不安的历史规律 ⏳ 如果你经历过互联网时代，这一切似曾相识 现在，让我带你做一次时间旅行：\n▲ 每一代中间件都相信自己是不同的。但历史一直在重复。 2000 年代——企业软件的热词是 ESB（企业服务总线）。每个厂商都说：\u0026ldquo;你需要一个 ESB 来连接所有系统！\u0026ldquo;公司花了大笔预算采购。后来呢？微服务架构出来了，ESB 没人提了。\n2010 年代——热词变成了 SOA（面向服务架构） 和 CORBA。\u0026ldquo;统一所有服务接口！\u0026ldquo;后来呢？REST API 出来了，简单到不需要中间件。\n2020 年代——AI 的热词是 Agent 框架、MCP、LangChain。\u0026ldquo;连接 LLM 和你的业务！\u0026rdquo;\n我不是在预言 MCP 或 Agent 框架一定会消失。而是想说——每一代中间件都有它存在的合理性，但它们最终都会被底层平台的进化所吸收。\n中间件的生命周期：\n新技术出现，与现有系统不兼容 ↓ 中间件诞生，充当\u0026#34;翻译官\u0026#34; ↓ 中间件标准化，成为\u0026#34;热词\u0026#34; ← 我们正在这里 ↓ 底层平台强大到直接集成中间层功能 ↓ 中间件被吸收，变得无形 想想看：\n为什么需要 MCP？因为 LLM 不能直接访问你的数据库。 为什么需要 Agent 框架？因为 LLM 不能直接规划和执行多步任务。 为什么需要 RAG？因为 LLM 的知识有截止日期。 但如果 LLM 的上下文窗口大到可以装下所有文档呢？ 如果 LLM 原生支持所有工具调用呢？如果 LLM 的推理能力强到可以自主规划复杂任务呢？\n那些\u0026quot;中间层\u0026quot;就会像 ESB 一样，安静地退出舞台。\n但请注意——我说的是\u0026quot;最终\u0026rdquo;。 在\u0026quot;最终\u0026quot;到来之前，这些中间层有真实的价值。关键是不要把整个职业生涯押在一个可能只有 3-5 年寿命的中间层上。\n第五章：一个更深层的问题 🤔 当技术不再是瓶颈 前面四章是技术梳理。这一章是我自己这段时间一直在想的事。\n在学了这么多 AI 技术之后，我越来越感到一个反差：\nAI 的工具能力在飞速进步。\n它能写代码了、能做 PPT 了、能分析数据了、能搜索信息了、能翻译文档了、能自动回复客户了。\n但\u0026quot;该做什么\u0026quot;的能力——这不是 AI 的能力，是人的能力——并没有变化。 甚至，因为执行成本变得越来越低，决策失误的代价反而变大了：AI 会高效地在错误的方向上全速前进。\n过去，技术能力是瓶颈。你想做一个网站，得学 HTML、CSS、JavaScript。你想分析数据，得学 SQL、Python。技术限制了你能做什么。\n现在，AI 正在消除这些技术瓶颈。但一个新问题浮出水面——一个我们一直假装不存在的问题：\n当你可以做任何事的时候，你到底想做什么？\n人的判断力，在 AI 时代反而更重要了 Agent 可以自动浏览 100 个网页。但该浏览哪 100 个？ 这需要人来判断。\nMCP 可以连接你的所有系统。但连接之后要解决什么问题？ 这需要人来判断。\nRAG 可以让 AI 检索你的知识库。但知识库里该放什么、怎么组织？ 这需要人来判断。\nLLM 可以生成任何文本。但该生成什么、给谁看、解决什么需求？ 这需要人来判断。\n这不是一个技术问题。这是一个关于我们每个人自己的问题。\n我自己也陷入过这种模式：不断学习新工具，好像学完就安心了。 学完 LangChain 学 Dify，学完 Dify 学 MCP，学完 MCP 学 Agent——工具永远有新的，但最核心的那个问题一直没有回答。\n后来我想明白了：我真正感兴趣的不是这些工具，而是它们背后的 LLM 到底是怎么工作的。想通这一点之后，焦虑感就消失了大半。\n第六章：那什么才是不变的？ 🔭 ▲ 最外层的工具每 2-3 年更换一次。但最中心的问题——\"我们该做什么？\"——从未改变。 我自己的三个选择 这不是建议，只是我在这场热潮中给自己定的方向。分享出来，希望有共鸣的朋友觉得有用。\n1. 我选择花更多时间在引擎上，而不只是方向盘上\nLLM 是引擎，Agent/MCP/RAG 是方向盘和仪表盘。方向盘每几年换一个设计，但引擎的工作原理——注意力机制、概率分布、梯度下降、MoE——这些一旦理解了，心里就踏实了。\n这也是我做这个公众号的初衷：不是教谁用什么框架，而是把自己学原理的过程记录下来，给同样对\u0026quot;底层\u0026quot;感兴趣的朋友一些参考。\n2. 判断一个 AI 产品时，我会问自己一个问题\n\u0026ldquo;去掉 LLM 之后，还剩什么？\u0026rdquo;\n如果答案是\u0026quot;一个普通的自动化脚本\u0026rdquo;——那它的价值可能主要来自底层 LLM，而不是产品本身。\n如果答案是\u0026quot;对某个领域的深刻理解、独特的数据、不可替代的用户关系\u0026rdquo;——那它的价值更独立。\n3. 比起追工具，我更想搞清楚自己关心什么\n每个人的答案不一样。有人热爱应用，有人热爱商业，都好。我碰巧是对数学和原理着迷。想明白这一点之后，面对满屏的新工具新框架，焦虑感就少了很多。\n结语：热潮之下 2000 年，所有人都在谈论 \u0026ldquo;dot-com\u0026rdquo;。大部分公司死了，但互联网留下了。\n2017 年，所有人都在谈论 \u0026ldquo;区块链改变一切\u0026rdquo;。大部分项目消失了，但加密技术留下了。\n2025 年，所有人都在谈论 \u0026ldquo;AI Agent 改变一切\u0026rdquo;。\n大部分 Agent 框架会消失。但 LLM 的能力会留下——它们会被吸收进操作系统、进浏览器、进每一个应用的基础设施里。到那时，没有人会再说\u0026quot;我在用一个 Agent\u0026rdquo;，就像今天没有人说\u0026quot;我在用一个 REST API\u0026quot;一样。\n那时候真正留下的是什么？\n我不知道。但我隐约觉得，不是某个框架的使用技巧。\n也许是我们在这场热潮中，有没有停下来想过：对我来说，什么事情是真正重要的？\n这个问题，AI 不会替我们回答。\n它是我们自己的。\n📚 延伸阅读\nMCP 官方文档：modelcontextprotocol.io OpenManus（Manus 开源替代）：GitHub（55.4k ⭐） 前文：DeepSeek-R1：一个模型如何学会思考 — 模型层面的真正突破 前文：MoE：671B 参数只用 37B 的秘密 — 架构层面的真正创新 前文：为什么把模型做大就能变聪明？ — 从过拟合悖论到压缩即智能 📌 后续文章暂存清单（规划中）：\n从 RLHF 到 GRPO：大模型训练的三次革命 蒸馏：大模型如何\u0026quot;教\u0026quot;小模型 Attention 进化：从标准注意力到 MLA Transformer 会被取代吗？—— Mamba 与混合架构 博客：https://Jason-Azure.github.io/ai-blog/\n微信公众号：AI-lab学习笔记\n","permalink":"https://jason-azure.github.io/ai-blog/posts/agent-mcp-reality/","summary":"Agent、MCP、Manus、Coze……AI 热词一个接一个。但拆掉所有包装之后，你会发现一个更深层的问题：当技术不再是瓶颈，\u0026lsquo;该做什么\u0026rsquo;这个被我们忽略了太久的问题，终于无处可藏了。","title":"AI Agent 热潮冷思考：当我们拆掉所有包装之后"},{"content":"引言 到目前为止，我们学会了：\n向量描述万物，矩阵变换向量 Attention 用矩阵乘法计算词与词的关联 ReLU 给网络加上非线性，让深度有意义 但有一个根本问题没有回答：\n矩阵里的数字是怎么来的？\nW_q、W_k、W_v、FFN 的 W₁、W₂——这些矩阵包含了模型的全部\u0026quot;知识\u0026quot;。GPT-2 有 1.17 亿个这样的数字，GPT-3 有 1750 亿个。\n这些数字不是人写的。它们是 AI 自己学出来的。学习的方法就是今天的主题：梯度下降。\n训练 AI = 找到一组参数，让预测误差最小\n工具：梯度下降 + 反向传播\n系列导航\n▹ 第一篇：从数轴到高维空间 ▹ 第二篇：向量的加减法 — 点积与余弦相似度 ▹ 第三篇：矩阵——空间的变形术 ▹ 第四篇：矩阵乘法与 AI — 理解 Transformer 的最后一块拼图 ▹ 第五篇：激活函数——神经网络的开关 ▸ 第六篇（本文）：梯度下降——AI 怎么学习 第一章：损失函数——衡量\u0026quot;错了多少\u0026quot; AI 的考试成绩单 训练 AI 的第一步：定义什么叫\u0026quot;错\u0026quot;。\n模型预测: \u0026#34;今天天气真__\u0026#34; → \u0026#34;冷\u0026#34; (概率 60%) 正确答案: → \u0026#34;好\u0026#34; (概率 100%) 误差 = 预测和答案的差距 损失函数（Loss Function） 就是把这个差距变成一个数字。数字越大，错得越离谱。\n损失函数 公式 用途 MSE 平均(预测-真实)² 回归问题 交叉熵 -Σ 真实×log(预测) 分类/语言模型 类比： 损失函数就像考试分数（反着算）——100 分是满分，损失 = 0 分；答错越多，损失越大。AI 训练的目标就是\u0026quot;考满分\u0026quot;。\n第二章：梯度下降——蒙眼下山 核心直觉 想象你蒙着眼睛站在一座山上，目标是走到最低点（山谷）。\n你的策略：\n用脚探路——感受脚下哪个方向是下坡（计算梯度） 朝下坡方向迈一步（更新参数） 重复，直到感觉到达了平地（损失不再下降） 这就是梯度下降。\n公式 w_新 = w_旧 - 学习率 × 梯度\n三个关键概念：\n梯度（Gradient）\n损失函数对参数的导数。告诉你\"往哪个方向走，损失会增大\"。\n所以我们朝反方向走——减去梯度。 学习率（Learning Rate）\n每步走多远。太大会跳过山谷，太小会走到天荒地老。\n通常设为 0.001 ~ 0.01，是最重要的超参数之一。 参数（Parameters）\n模型里所有的数字——矩阵的每一个元素。\nGPT-2 有 1.17 亿个参数，每次更新都要动这些。 第三章：学习率的艺术 学习率是训练中最关键的选择之一。\n学习率 结果 比喻 太小 (0.03) 20步后 Loss 还有 1.76 蜗牛爬山，天黑了还没到 刚好 (0.3) 20步后 Loss ≈ 1.00 稳步下山，精准到达 太大 (1.5) Loss 爆炸到天文数字 跳太猛，弹出了山谷 实践中的解决方案： 现代 AI 训练不用固定学习率。常用 AdamW 优化器——它会自动为每个参数调整步长，像一个经验丰富的登山向导。\n第四章：反向传播——误差如何传递 问题：参数有 1 亿个，怎么知道每个参数该怎么调？ 梯度下降告诉我们\u0026quot;朝梯度反方向走\u0026quot;。但一个模型有几千万甚至几千亿个参数，怎么计算每个参数的梯度？\n答案是反向传播（Backpropagation）——用链式法则，从输出的误差倒推回每一个参数的贡献。\n链式法则：误差的传递链 简单网络: 输入 x → [×w1] → h → [×w2] → y → Loss 前向传播（从左到右算结果）: h = x × w1 y = h × w2 Loss = (y - target)² 反向传播（从右到左算梯度）: ∂Loss/∂y = 2(y - target) ← 输出层的梯度 ∂Loss/∂w2 = ∂Loss/∂y × h ← w2 的梯度 ∂Loss/∂w1 = ∂Loss/∂y × w2 × x ← w1 的梯度（链式传递！） 类比：工厂质检 想象一条生产线有三道工序：\n原料 → [工序A] → 半成品 → [工序B] → 成品 → 质检（发现问题！） 质检发现成品有问题，要追责：\n先查工序 B：你对成品有多大影响？ 再查工序 A：你对半成品有多大影响？而半成品又对成品有多大影响？ 反向传播就是这个\u0026quot;从后往前追责\u0026quot;的过程。\n第五章：动手验证 以下命令在 Ubuntu 22.04 + Python 3.10 环境中执行：\nazureuser@ai-lab:~$ source ~/ai-lab-venv/bin/activate (ai-lab-venv) azureuser@ai-lab:~$ python3 实验一：损失函数 \u0026gt;\u0026gt;\u0026gt; import numpy as np \u0026gt;\u0026gt;\u0026gt; \u0026gt;\u0026gt;\u0026gt; predictions = np.array([2.5, 0.5, 2.1, 1.9]) \u0026gt;\u0026gt;\u0026gt; targets = np.array([3.0, 1.0, 2.0, 2.0]) \u0026gt;\u0026gt;\u0026gt; errors = predictions - targets \u0026gt;\u0026gt;\u0026gt; print(f\u0026#34;误差: {errors}\u0026#34;) 误差: [-0.5 -0.5 0.1 -0.1] \u0026gt;\u0026gt;\u0026gt; print(f\u0026#34;误差²: {errors**2}\u0026#34;) 误差²: [0.25 0.25 0.01 0.01] \u0026gt;\u0026gt;\u0026gt; mse = np.mean(errors**2) \u0026gt;\u0026gt;\u0026gt; print(f\u0026#34;MSE 损失 = {mse:.4f}\u0026#34;) MSE 损失 = 0.1300 结果解读： 4 个预测的平均误差平方 = 0.13。如果预测完全准确，MSE = 0。训练的目标就是把这个数字降到最小。\n实验二：手动梯度下降 \u0026gt;\u0026gt;\u0026gt; # L(w) = (w-3)² + 1，最小值在 w=3 \u0026gt;\u0026gt;\u0026gt; def loss(w): return (w - 3)**2 + 1 \u0026gt;\u0026gt;\u0026gt; def gradient(w): return 2*(w - 3) \u0026gt;\u0026gt;\u0026gt; \u0026gt;\u0026gt;\u0026gt; w = 0.0 # 从远离最优的地方出发 \u0026gt;\u0026gt;\u0026gt; lr = 0.1 \u0026gt;\u0026gt;\u0026gt; print(f\u0026#34;起点: w = {w:.1f}, Loss = {loss(w):.2f}\u0026#34;) 起点: w = 0.0, Loss = 10.00 \u0026gt;\u0026gt;\u0026gt; \u0026gt;\u0026gt;\u0026gt; for step in range(1, 9): ... g = gradient(w) ... w = w - lr * g ... print(f\u0026#34; 第{step}步: w={w:.4f}, Loss={loss(w):.4f}, 梯度={g:.4f}\u0026#34;) 第1步: w=0.6000, Loss=6.7600, 梯度=-6.0000 第2步: w=1.0800, Loss=4.6864, 梯度=-4.8000 第3步: w=1.4640, Loss=3.3593, 梯度=-3.8400 第4步: w=1.7712, Loss=2.5099, 梯度=-3.0720 第5步: w=2.0170, Loss=1.9664, 梯度=-2.4576 第6步: w=2.2136, Loss=1.6185, 梯度=-1.9661 第7步: w=2.3709, Loss=1.3958, 梯度=-1.5729 第8步: w=2.4967, Loss=1.2533, 梯度=-1.2583 结果解读： 从 w=0 开始，Loss 从 10.00 一路下降到 1.25。梯度（下坡方向的陡度）越来越小，说明越来越接近谷底。15 步后 w≈2.89，Loss≈1.01，非常接近最优值 w=3, Loss=1。\n实验三：学习率太大 vs 太小 \u0026gt;\u0026gt;\u0026gt; for lr, name in [(0.03, \u0026#34;太小\u0026#34;), (0.3, \u0026#34;刚好\u0026#34;), (1.5, \u0026#34;太大\u0026#34;)]: ... w = 0.0 ... for _ in range(20): ... w = w - lr * gradient(w) ... print(f\u0026#34; 学习率 {lr} ({name}): w={w:.4f}, Loss={loss(w):.4f}\u0026#34;) 学习率 0.03 (太小): w=2.1297, Loss=1.7575 学习率 0.3 (刚好): w=3.0000, Loss=1.0000 学习率 1.5 (太大): w=-3145725.0000, Loss=9895604649985.0000 结果解读： 学习率 0.03 太慢，20 步还没到。0.3 刚好，精准到达。1.5 太大——参数飞到了负三百万，Loss 爆炸到近十万亿！\n实验四：反向传播 \u0026gt;\u0026gt;\u0026gt; # 网络: x → [×w1] → h → [×w2] → y → Loss \u0026gt;\u0026gt;\u0026gt; x, w1, w2, target = 2.0, 0.5, 1.5, 6.0 \u0026gt;\u0026gt;\u0026gt; \u0026gt;\u0026gt;\u0026gt; # 前向传播 \u0026gt;\u0026gt;\u0026gt; h = x * w1 # = 1.0 \u0026gt;\u0026gt;\u0026gt; y = h * w2 # = 1.5 \u0026gt;\u0026gt;\u0026gt; L = (y - target)**2 # = 20.25 \u0026gt;\u0026gt;\u0026gt; print(f\u0026#34;前向: h={h}, y={y}, Loss={L}\u0026#34;) 前向: h=1.0, y=1.5, Loss=20.25 \u0026gt;\u0026gt;\u0026gt; \u0026gt;\u0026gt;\u0026gt; # 反向传播（链式法则） \u0026gt;\u0026gt;\u0026gt; dL_dy = 2*(y - target) # = -9.0 \u0026gt;\u0026gt;\u0026gt; dL_dw2 = dL_dy * h # = -9.0 \u0026gt;\u0026gt;\u0026gt; dL_dw1 = dL_dy * w2 * x # = -27.0 \u0026gt;\u0026gt;\u0026gt; print(f\u0026#34;反向: ∂L/∂w2={dL_dw2}, ∂L/∂w1={dL_dw1}\u0026#34;) 反向: ∂L/∂w2=-9.0, ∂L/∂w1=-27.0 \u0026gt;\u0026gt;\u0026gt; \u0026gt;\u0026gt;\u0026gt; # 更新参数 \u0026gt;\u0026gt;\u0026gt; lr = 0.01 \u0026gt;\u0026gt;\u0026gt; w1_new = w1 - lr * dL_dw1 # 0.5 → 0.77 \u0026gt;\u0026gt;\u0026gt; w2_new = w2 - lr * dL_dw2 # 1.5 → 1.59 \u0026gt;\u0026gt;\u0026gt; y_new = (x * w1_new) * w2_new \u0026gt;\u0026gt;\u0026gt; L_new = (y_new - target)**2 \u0026gt;\u0026gt;\u0026gt; print(f\u0026#34;更新后: w1={w1_new:.4f}, w2={w2_new:.4f}\u0026#34;) 更新后: w1=0.7700, w2=1.5900 \u0026gt;\u0026gt;\u0026gt; print(f\u0026#34;新预测: y={y_new:.4f}, 新 Loss={L_new:.4f}\u0026#34;) 新预测: y=2.4486, 新 Loss=12.6124 \u0026gt;\u0026gt;\u0026gt; print(f\u0026#34;一步更新，Loss 从 {L} 降到了 {L_new:.4f}！\u0026#34;) 一步更新，Loss 从 20.25 降到了 12.6124！ 结果解读： 链式法则算出每个参数对误差的贡献（w1 的梯度 -27 比 w2 的 -9 大三倍，因为 w1 在更前面，影响被 w2 放大了）。一步更新后，Loss 从 20.25 降到 12.61。继续迭代就能逐步逼近目标。\n实验五：模拟 microgpt 训练过程 \u0026gt;\u0026gt;\u0026gt; np.random.seed(42) \u0026gt;\u0026gt;\u0026gt; losses = [] \u0026gt;\u0026gt;\u0026gt; for i in range(100): ... noise = np.random.randn() * 0.05 * np.exp(-i/30) ... l = 3.3 * np.exp(-i/25) + 0.3 + noise ... losses.append(max(0.3, l)) \u0026gt;\u0026gt;\u0026gt; \u0026gt;\u0026gt;\u0026gt; for i in [0, 5, 10, 20, 50, 80, 99]: ... bar = \u0026#39;█\u0026#39; * int((1-losses[i]/losses[0])*20) + \u0026#39;░\u0026#39; * (20-int((1-losses[i]/losses[0])*20)) ... print(f\u0026#34; 步数 {i:\u0026gt;3} | Loss {losses[i]:.4f} | {bar}\u0026#34;) 步数 0 | Loss 3.6248 | ░░░░░░░░░░░░░░░░░░░░ 步数 5 | Loss 2.9919 | ███░░░░░░░░░░░░░░░░░ 步数 10 | Loss 2.4955 | ██████░░░░░░░░░░░░░░ 步数 20 | Loss 1.8204 | █████████░░░░░░░░░░░ 步数 50 | Loss 0.7497 | ███████████████░░░░░ 步数 80 | Loss 0.4338 | █████████████████░░░ 步数 99 | Loss 0.3625 | ██████████████████░░ 结果解读： 这条曲线和真实的 microgpt 训练非常相似——初始 loss≈3.3（随机猜 26 个字母的 ln(26)≈3.26），随着训练进行 loss 快速下降，最终趋于平稳。这就是梯度下降在实际中的效果！\n第六章：完整训练流程——把所有零件组装起来 现在我们可以画出 AI 训练的完整图景：\n训练数据（百万篇文章） ↓ [1] 前向传播 输入 → Embedding → Attention → FFN → ReLU → ... → 预测 ↓ [2] 计算损失 Loss = 预测与真实答案的差距 ↓ [3] 反向传播 从 Loss 倒推每个参数的梯度（链式法则） ↓ [4] 更新参数 w_新 = w_旧 - 学习率 × 梯度 ↓ 回到 [1]，重复数万~数百万次 呼应我们的三个模型演示：\n模型 参数量 训练步数 训练时间 microgpt 4,192 1,000 ~4 分钟 nanoGPT 3~10M 5,000~50,000 数小时 GPT-3 175B ~300,000 数月 + 千张 GPU 每一步都在做同样的事：前向传播 → 算损失 → 反向传播 → 更新参数。区别只在于规模。\n系列总结：从数字到智能 六篇文章，我们走过了一条完整的路径：\n第一篇: 文字 → 数字（向量） ↓ 第二篇: 数字 → 比较（点积、余弦相似度） ↓ 第三篇: 数字 → 变换（矩阵） ↓ 第四篇: 全部组装 → Attention 公式 ↓ 第五篇: 加上非线性 → ReLU 让深度有意义 ↓ 第六篇: 从错误中学习 → 梯度下降找最优参数 ↓ 一个能理解语言的 AI 就这样诞生了 全系列核心公式速查 概念 公式 篇章 向量 v = [v₁, v₂, \u0026hellip;, vₙ] 第一篇 点积 a · b = Σ aᵢ × bᵢ 第二篇 余弦相似度 cos(a,b) = a·b / (‖a‖×‖b‖) 第二篇 矩阵×向量 M × v = [行₁·v, 行₂·v, \u0026hellip;] 第三篇 Attention softmax(QKᵀ/√d) × V 第四篇 ReLU max(0, x) 第五篇 梯度下降 w_新 = w_旧 - lr × ∇L 第六篇 你现在具备了理解 AI 从数据到智能的完整数学基础。看到 W、Q、K、V、softmax、ReLU、Loss、gradient——你都知道它们在做什么。\n如果你还没看过我们的 Attention 机制完整拆解文章，现在是最好的时机——有了这六篇数学基础，那篇文章里的每一个公式你都能看懂了。\n本文首发于「AI 学习笔记」博客：https://Jason-Azure.github.io/ai-blog/\n微信公众号：AI-lab学习笔记\n系列文章完整列表见 标签：梯度下降\n","permalink":"https://jason-azure.github.io/ai-blog/posts/math-for-ai-6-gradient/","summary":"从损失函数到反向传播：AI 训练的核心算法。理解 microgpt 和 nanoGPT 训练时 loss 为什么会下降。零基础数学系列完结篇。","title":"AI 的数学语言（六）：梯度下降——AI 怎么学习"},{"content":"1596 年，德国图宾根大学。一个 25 岁的年轻人出版了他的第一本书。\n他叫约翰内斯·开普勒（Johannes Kepler）。书名叫《宇宙的奥秘》（Mysterium Cosmographicum）。在这本书里，他提出了一个大胆到近乎疯狂的想法：太阳系中六颗行星（当时已知的全部）的轨道间距，是由五个嵌套的几何体决定的。\n土星和木星之间，嵌一个正六面体。木星和火星之间，嵌一个正四面体。火星和地球之间，嵌一个正十二面体。地球和金星之间，嵌一个正二十面体。金星和水星之间，嵌一个正八面体。\n五个间隔。五个几何体。不多不少。\n他错了。行星轨道是椭圆，不是由嵌套的几何体决定的——后来，他自己证明了这件事。\n但他追问的那个问题是对的：为什么宇宙中完美的形状，恰好只有五个？\n一、从花到果实 上一篇的结尾，达·芬奇在生命之花的交点之间画了直线。\n让我们跟着他的手，走一遍这个过程。\n生命之花是 19 个等径圆的层层绽放。但如果你把最外层的花瓣去掉——那些不完整的、被截断的弧线——只留下 13 个完整的圆，你会得到一个更精炼的图案。\n它叫做 Fruit of Life（生命果实）。\n13 个圆。13 个圆心。\n现在，做一件简单的事：把每一个圆心和其他所有圆心用直线连接。\n13 个点，每对之间一条线。组合数学告诉我们：$C(13, 2) = \\frac{13 \\times 12}{2} = 78$ 条线。\n78 条直线。一个致密的线条网络。\n这个图案有一个名字：Metatron\u0026rsquo;s Cube（麦塔特隆立方体）。\n从 Vesica Piscis 到生命之花到麦塔特隆立方体——一条规则的层层展开\n名字来自犹太教和基督教神秘主义传统中的大天使麦塔特隆（Metatron），据说是天使中最接近神的存在，负责守护创世的蓝图。中世纪的神秘学家相信，这个图案包含了一切几何形式的原型。\n但让我们抛开名字和传说，只看数学。\n在这 78 条线构成的致密网络中，如果你选对了线条——只挑出某些特定的边——你会看见一些东西从混沌中浮现：\n完美的几何体。\n不是一个，不是两个，而是全部五个。\n宇宙中仅有的五种完美形状，全部藏在这张由 13 个圆心和 78 条直线构成的图案里。\n麦塔特隆立方体中的五种柏拉图立体——用不同颜色标出的正四面体、正六面体、正八面体、正十二面体和正二十面体\n二、五个，不多不少 这五种形状叫做柏拉图立体（Platonic Solids）。\n什么是\u0026quot;完美\u0026quot;？规则很严格：\n每一个面都是同一种正多边形（等边等角）。 每一个顶点处，同样数量的面以同样的方式汇聚。 整个形体是凸的——没有凹陷，没有洞。 满足这三条规则的三维形体，在整个数学宇宙中，只有五个。\n名称 面数 每个面的形状 柏拉图的元素 正四面体（Tetrahedron） 4 正三角形 火 🔥 正六面体（Cube） 6 正方形 土 🌍 正八面体（Octahedron） 8 正三角形 气 💨 正二十面体（Icosahedron） 20 正三角形 水 💧 正十二面体（Dodecahedron） 12 正五边形 宇宙 ✨ 柏拉图在他的《蒂迈欧篇》（Timaeus，约公元前 360 年）中，把四种元素分配给了前四种形体：火是最尖锐的正四面体，土是最稳固的正六面体，气是正八面体，水是圆滑的正二十面体。至于第五种——正十二面体——他留给了整个宇宙。他说，\u0026ldquo;神用它来安排整个天穹的星座。\u0026rdquo;\n但柏拉图不只是在分配标签。在《蒂迈欧篇》中，他给出了一个惊人的推理：一切都从三角形开始。他认为，正三角形和等腰直角三角形是物质世界的最小构造单元。正四面体由 4 × 2 = 8 个直角三角形拼成，正八面体由 8 × 2 = 16 个，正二十面体由 20 × 2 = 40 个。所以火、气、水可以互相转化——它们的面可以拆散重组。\n但正六面体的面是正方形，正十二面体的面是正五边形——它们的三角形基础不同。所以土不能变成火。宇宙独立于万物。\n错得很美。\n但为什么只有五种？\n答案在于一个简单的算术约束。\n在每一个顶点处，若干个正多边形围绕着它聚合。要形成一个凸起的\u0026quot;角\u0026quot;——而不是平铺——这些面的内角之和必须严格小于 360°。\n正三角形的内角是 60°：\n3 个三角形：$3 \\times 60° = 180°$ ✓ → 正四面体 4 个三角形：$4 \\times 60° = 240°$ ✓ → 正八面体 5 个三角形：$5 \\times 60° = 300°$ ✓ → 正二十面体 6 个三角形：$6 \\times 60° = 360°$ ✗ 平铺，不弯曲 正方形的内角是 90°：\n3 个正方形：$3 \\times 90° = 270°$ ✓ → 正六面体 4 个正方形：$4 \\times 90° = 360°$ ✗ 平铺 正五边形的内角是 108°：\n3 个正五边形：$3 \\times 108° = 324°$ ✓ → 正十二面体 4 个正五边形：$4 \\times 108° = 432°$ ✗ 超过 360° 正六边形的内角是 120°：\n3 个正六边形：$3 \\times 120° = 360°$ ✗ 平铺 正七边形及以上：三个面的内角之和就已经超过 360°，连第一关都过不了。\n就这样。穷举完毕。五种组合，五种形体。不是经验规律，不是偶然巧合，而是逻辑的必然。\n三维空间中的\u0026quot;完美\u0026quot;，被角度的算术锁死了。\n三、欧拉的签名 1750 年，瑞士数学家莱昂哈德·欧拉（Leonhard Euler）注意到了一件事。\n他数了数每个柏拉图立体的顶点（V）、边（E）和面（F），然后做了一个简单的运算：\n形体 顶点 V 边 E 面 F V − E + F 正四面体 4 6 4 2 正六面体 8 12 6 2 正八面体 6 12 8 2 正二十面体 12 30 20 2 正十二面体 20 30 12 2 $V - E + F = 2$\n五种形体，顶点数不同，边数不同，面数不同。但这个数——顶点减边加面——永远等于 2。\n这就是欧拉公式。\n它不只对柏拉图立体成立。任何凸多面体——不管多么扭曲、多么不规则，只要它是凸的、没有洞的——这个数都等于 2。把正方体的一个顶点拽歪，边变弯，面变皱，只要不撕破，不戳洞，$V - E + F$ 永远是 2。\n这意味着什么？\n它意味着这个数字不属于\u0026quot;几何\u0026quot;。它属于某种更深的东西。它不关心长度、角度、面积。它只关心\u0026quot;连接方式\u0026quot;——什么跟什么相邻，什么围着什么。\n形状可以弯曲，可以拉伸，可以揉捏。但这个数字不变。\n这就是拓扑学（topology）的种子。\n一门研究\u0026quot;在连续变形下什么东西不变\u0026quot;的数学。橡皮泥的数学。\n欧拉发现这件事的时候，距离柏拉图列举出五种完美立体，已经过去了超过两千年。\n两千年。同样的五个形状。但欧拉看到的，是柏拉图从未看到的——不是形状本身，而是形状背后更深处的不变量。\n数学就是这样一层一层剥开的。每一层看到的都是同一个对象，但看到的\u0026quot;东西\u0026quot;完全不同。\n四、开普勒的宇宙嵌套 让我们回到开头那个 25 岁的年轻人。\n1595 年 7 月 19 日，开普勒正在格拉茨的一所中学里教数学。他在黑板上画几何图形给学生看——在正三角形外面画外接圆，在外接圆外面画正方形，在正方形外面再画外接圆，如此交替。\n突然，他停住了。\n这些同心圆的半径比——内圆与外圆的比值——让他想到了一个东西：行星轨道之间的间距。\n他后来写道：\u0026ldquo;我几乎相信自己触碰到了造物主的思想。\u0026rdquo;\n从那一刻起，他开始了长达一年的疯狂计算。他的想法是：在三维空间中，正好有五种柏拉图立体。太阳系有六颗行星。六颗行星之间有五个间隔。五个间隔，五种立体。一一对应。\n他的嵌套模型是这样的：\n开普勒《宇宙的奥秘》中的行星嵌套模型——五种柏拉图立体决定六颗行星的轨道间距\n从外到内：\n土星 → 正六面体（立方体） → 木星 → 正四面体 → 火星 → 正十二面体 → 地球 → 正二十面体 → 金星 → 正八面体 → 水星\n每种立体的内切球对应内侧行星的轨道，外接球对应外侧行星的轨道。\n嵌套结构的另一视角——从土星到水星，五层几何体如同俄罗斯套娃\n他算了。数据竟然粗略地对上了——至少在当时的观测精度下。\n他兴奋地出版了《宇宙的奥秘》。第谷·布拉赫（Tycho Brahe）读了这本书，虽然不认同结论，但欣赏这个年轻人的数学才华，邀请他来布拉格做助手。第谷去世后，开普勒继承了他精确到前所未有程度的行星观测数据。\n然后，开普勒用这些数据推翻了自己。\n行星轨道不是正圆。它们是椭圆。五种柏拉图立体的嵌套模型，精巧但错误。\n开普勒花了二十多年接受这个事实。但他始终没有放弃一个更深层的信念：几何决定物理。形状不是装饰，是原因。\n他错在了具体方案上。但他的直觉——数学结构在最深处规定了自然界的运行方式——在另一个层次上被验证了。牛顿的万有引力定律、麦克斯韦方程组、爱因斯坦的广义相对论，都是\u0026quot;几何即物理\u0026quot;这个信念的后代。\n而柏拉图立体本身呢？它们在沉寂了两千多年后，在一个完全意想不到的地方复活了。\n1985 年，三位化学家——罗伯特·柯尔（Robert Curl）、哈罗德·克罗托（Harold Kroto）和理查德·斯莫利（Richard Smalley）——发现了一种新的碳分子。60 个碳原子，排列成 12 个正五边形和 20 个正六边形，恰好构成一个截角正二十面体。\n它的形状和足球一模一样。\n他们给它起了个名字：巴克明斯特富勒烯（Buckminsterfullerene，简称 C₆₀）。名字来自建筑师巴克明斯特·富勒（Buckminster Fuller），他发明了用正二十面体截面构建的测地线穹顶（geodesic dome）——那些由三角形和五边形拼成的半球形建筑结构。\n2600 年前柏拉图写在纸上的形状，被自然界用碳原子重新拼了一遍。\n1996 年，这三位化学家因此获得了诺贝尔化学奖。\n五、达·芬奇的线框 在开普勒出生之前四十年，在柯尔和克罗托出生之前五百年，有一个人已经在纸上用一种前无古人的方式画出了柏拉图立体。\n列奥纳多·达·芬奇。\n1509 年，数学家卢卡·帕乔利（Luca Pacioli）出版了《神圣比例》（De Divina Proportione）——一本关于黄金比例在建筑和艺术中应用的著作。帕乔利是达·芬奇的朋友和数学导师。他请达·芬奇为这本书绘制插图。\n达·芬奇画了六十幅几何体的插图。其中包括全部五种柏拉图立体，以及它们的各种变体——截角体、星形体。\n但真正革命性的不是他画了什么，而是他怎么画。\n在达·芬奇之前，所有人画三维几何体的方式都是一样的：画实心面。一个正方体就是三个可见面，涂上阴影，像个盒子。\n达·芬奇做了一件从没人做过的事：他只画了边。\n他去掉了面，只留下棱线。他把每一条边画成有宽度的骨架——像细木条搭成的框架。面是空的，透明的。你可以透过前面看到后面。\n这就是线框渲染（wireframe rendering）——500 年后，计算机图形学赖以起步的技术。\n达·芬奇在 1509 年发明了它。\n没有电脑，没有矩阵运算，没有透视投影算法。只有一支笔，一双理解三维结构的眼睛，和一个念头：如果去掉表面，结构会更清晰。\n这个念头本身就是一种数学直觉。面是直觉的诱惑——我们习惯看\u0026quot;物体\u0026quot;。但边才是结构的骨骼——连接关系，拓扑本质。\n达·芬奇去掉面只留下边的那一刻，他做的事情和欧拉在两百多年后做的事情，本质上一样：越过表面，看向深处的连接。\n一个用画笔，一个用公式。他们看到了同一个东西。\n六、一个安静的追问 让我们安静地站一步，回看来路。\n一张白纸。两个圆。\n从两个圆，长出了生命之花。从花中提取果实——13 个圆心。用 78 条直线连接它们——麦塔特隆立方体。从线条的交织中，五种完美的几何体浮现。\n两千四百年前，柏拉图用它们来编码元素。\n四百年前，开普勒用它们来编码行星。\n五百年前，达·芬奇用一种全新的方式画出了它们的骨骼。\n两百七十年前，欧拉在它们身上发现了一个不变的数字。\n四十年前，碳原子自己拼成了其中一种形状。\n同一组结构。同一个约束——角度之和小于 360°。五种形体，不多不少。从古希腊到诺贝尔奖，这个事实没有改变过。\n到目前为止，我们一直在用眼睛看几何。圆是画出来的。立体是搭出来的。对称是看出来的。\n但在地球的另一边，有人用完全不同的方式触碰到了同样的数学结构。\n他们没有画圆。他们画的是——横线。\n连续的横线，和断开的横线。\n每一根线只有两种状态：连，或者断。\n六根线叠在一起。每根线两种选择。$2^6 = 64$ 种组合。\n六个比特。六十四种可能。\n一本叫做《易经》的书。\n下一篇： 连续和断裂，阴和阳，0 和 1。三千年前的六爻卦象，与莱布尼茨发明的二进制，为什么拥有相同的结构？邵雍用一张方阵把六十四卦排列整齐——莱布尼茨看到这张图时，震惊了。\n→ 两个圆之后（三）：伏羲的计算机\n本文是「两个圆之后」系列的第二篇。这个系列从一个圆规开始，穿越几何、编码、代数与意识，追问一个没有答案的问题：为什么人类在每一个文明、每一个时代，都看见了同一组数学结构？\n系列目录：\n两个圆相遇的地方 — 鱼形囊、$\\sqrt{3}$，以及一朵开遍世界的花 完美的形状只有五个 — 生命之花、麦塔特隆立方体与开普勒的宇宙模型（本篇） 伏羲的计算机 — 六十四卦、邵雍方阵与莱布尼茨收到的那封信 相生相克的数学 — 五行、八卦，与藏在占卜里的代数结构 向内画圆 — 金华宗旨、荣格与意识的几何 ","permalink":"https://jason-azure.github.io/ai-blog/posts/two-circles-2/","summary":"从生命之花中提取13个圆心，用78条直线全部连接——一个叫做麦塔特隆立方体的图案浮现了。藏在里面的，是宇宙中仅有的五种完美形状。","title":"两个圆之后（二）：完美的形状只有五个"},{"content":"序：2022年11月30日，一声惊雷 2022年11月30日，旧金山，一个普通的星期三。\nOpenAI悄悄上线了一个对话程序。没有发布会，没有广告投放，只有一条推文和一个网页链接。\n五天后，用户破百万。两个月后，月活用户过亿——这是人类历史上增长最快的消费产品。TikTok用了9个月达到这个数字，Instagram用了两年半。\nChatGPT像一颗炸弹落入平静的湖面。全世界突然意识到：机器，好像真的可以思考了。\n但如果你往回追溯——越过GPT-3的1750亿参数，越过2017年那篇改变一切的论文，越过深度学习的两次寒冬，越过那些在黑暗中独行的研究者——你会发现，这不是横空出世。\n这是一条70年的长路。\n而这条路上最惊心动魄的，不是那些改变世界的论文，而是那些在所有人都放弃的年代，选择继续相信的人。\n本文导读 本系列共三篇，沿着一条时间线展开——从最初的梦想，到最深的低谷，再到最终的爆发。\n上篇：梦想与寒冬（1943—2006）← 本文\n达特茅斯的夏天 → 赋予机器记忆 → 两次AI寒冬 → 黎明前的坚守\n从\"人工智能\"这个词的诞生，到三十年无人问津的至暗时刻。 中篇：复兴与爆发（2009—2022）\nGPU革命 → AlexNet转折点 → Transformer → GPT四级跳 → ChatGPT\n两块游戏显卡如何改写历史，以及\"注意力就是一切\"为什么是AI的最重要发现。 下篇：争鸣与未来\nAI到底缺什么 → 反对派的深层批判 → 对齐与觉醒 → 当造物审视造物主\n最有分量的质疑者们在担心什么？而70年AI之路给我们最深的启示是什么？ 第一章：播种——那些疯狂的先驱者（1943—1957） 一切始于一篇数学论文 1943年，第二次世界大战的炮火还在欧洲燃烧。\n在芝加哥大学，神经科学家 Warren McCulloch 和数学家 Walter Pitts 发表了一篇论文：《A Logical Calculus of the Ideas Immanent in Nervous Activity》。标题拗口，意思却很直白——他们用数学公式描述了一个人工神经元。\n这个\u0026quot;神经元\u0026quot;极其简单：接收几个输入信号，加权求和，如果总和超过一个阈值，就输出1；否则输出0。\n没有人把它太当回事。但回头看，这是人类第一次用数学语言说：大脑的思维过程，也许可以用计算来模拟。\n论文卡片 McCulloch \u0026amp; Pitts (1943), A Logical Calculus of the Ideas Immanent in Nervous Activity, Bulletin of Mathematical Biophysics 一句话意义： 人工神经元的数学模型——人类第一次把\u0026quot;思考\u0026quot;写成了方程。\n图灵的追问 1950年，英国曼彻斯特。\nAlan Turing——破解了纳粹密码机Enigma、奠定了现代计算机理论的天才——发表了一篇日后被引用无数次的论文：《Computing Machinery and Intelligence》。\n论文的开头只有一句话：\n\u0026ldquo;I propose to consider the question, \u0026lsquo;Can machines think?\u0026rsquo;\u0026rdquo; \u0026ldquo;我想讨论一个问题：机器能思考吗？\u0026rdquo;\nTuring没有直接回答，而是提出了一个替代方案——后来被称为**\u0026ldquo;图灵测试\u0026rdquo;**：如果你和一台机器进行文字对话，无法分辨对方是人还是机器，那么我们就可以说这台机器在\u0026quot;思考\u0026quot;。\n这个标准在70年后依然是AI领域最著名的思想实验。ChatGPT在2023年的表现，让无数人第一次真正感受到了图灵测试的重量。\n论文卡片 Alan Turing (1950), Computing Machinery and Intelligence, Mind 一句话意义： 提出图灵测试——\u0026ldquo;如果你分不清它是不是在思考，那它就是在思考。\u0026rdquo;\n达特茅斯的夏天：AI得名 1956年夏天，美国新罕布什尔州，达特茅斯学院。\n一个年轻的数学家 John McCarthy 说服了洛克菲勒基金会，资助了一场为期两个月的研讨会。他邀请了十位当时最聪明的人，包括信息论之父 Claude Shannon、认知科学先驱 Marvin Minsky、IBM的 Nathaniel Rochester，以及后来发明LISP语言的McCarthy本人。\nMcCarthy在申请书上写道：\n\u0026ldquo;We propose that a 2-month, 10-man study of artificial intelligence be carried out\u0026hellip; The study is to proceed on the basis of the conjecture that every aspect of learning or any other feature of intelligence can in principle be so precisely described that a machine can be made to simulate it.\u0026rdquo;\n这段话翻译过来就是：\n\u0026ldquo;学习的每一个方面，智能的每一个特征，原则上都可以被精确描述，从而制造一台机器来模拟它。我们建议用两个月来研究这个问题。\u0026rdquo;\n两个月。他们以为两个月就能取得突破性进展。\n这是\u0026quot;人工智能\u0026quot;（Artificial Intelligence）这个词第一次被正式使用。从那个夏天算起，到2026年的今天——AI研究已经走过了整整70年。\n现实证明，McCarthy低估了这个问题的难度。低估了大约三十五倍。\n历史坐标 1956年达特茅斯会议（Dartmouth Conference） 参会者： John McCarthy, Marvin Minsky, Claude Shannon, Nathaniel Rochester 等10人 历史意义： \u0026ldquo;Artificial Intelligence\u0026quot;一词诞生。与会者乐观预测\u0026quot;20年内\u0026quot;可解决智能问题。 残酷现实： 70年后的今天，我们仍在争论机器是否真的在\u0026quot;思考\u0026rdquo;。\n感知机：第一道曙光 达特茅斯会议之后的第二年，1957年，Frank Rosenblatt 在康奈尔大学造出了感知机（Perceptron）——第一个可以通过数据学习的神经网络。\n感知机能做什么？它能学会区分简单的图形模式，比如把三角形和正方形分开。\n美国海军大为兴奋，给了Rosenblatt大量资助。媒体更是疯狂——《纽约时报》报道说，这台机器\u0026quot;将能走路、说话、看东西、写字，甚至能自我复制、感知自身的存在\u0026quot;。\n1957年的人们真诚地相信，真正的人工智能近在咫尺。\n他们不知道的是，一场漫长的寒冬即将到来。\n第二章：第一次寒冬——一本书如何杀死一个领域（1969—1980s） Minsky的致命一击 1969年，Marvin Minsky和Seymour Papert出版了一本书：《Perceptrons》。\n讽刺的是，Minsky本人也是达特茅斯会议的参加者之一——他曾经也是AI的信徒。但在这本书里，他用严格的数学证明指出了感知机的致命缺陷：单层感知机无法解决XOR（异或）问题。\nXOR是什么？这是一个简单得令人尴尬的逻辑问题：\n输入A 输入B → 输出 0 0 → 0 0 1 → 1 1 0 → 1 1 1 → 0 就是\u0026quot;两个输入不同时输出1，相同时输出0\u0026quot;。一个小学生都能理解的规则，感知机却学不会。\nMinsky的证明是正确的——对于单层感知机而言。但问题在于，他的表述方式让整个学术界得出了一个远超他本意的结论：神经网络是死路一条。\n这本书的杀伤力是毁灭性的。\n美国国防高级研究计划局（DARPA）大幅削减了神经网络研究的经费。英国政府在Lighthill报告的影响下，几乎完全停止了AI领域的资助。学术界的风向瞬间逆转——研究神经网络的人从先驱变成了异端。\n一位年轻的英国研究者后来回忆说：\n\u0026ldquo;在那个年代，如果你说你研究神经网络，人们会觉得你不是疯了，就是蠢。更可能两者兼有。\u0026rdquo;\n这个年轻人叫 Geoffrey Hinton。他的故事，我们后面会讲。\n符号AI的统治 《Perceptrons》之后，符号AI（Symbolic AI） 成为主流。这种方法认为，智能的本质是逻辑推理和规则运算——只需要把人类的知识编码成\u0026quot;如果\u0026hellip;那么\u0026hellip;\u0026ldquo;的规则，机器就能变得智能。\n1980年代，这种思路催生了\u0026quot;专家系统\u0026quot;热潮。日本政府投入近9亿美元启动了\u0026quot;第五代计算机\u0026quot;计划，目标是造出能够自主推理的计算机。各大公司纷纷投入重金开发专家系统。\n但专家系统很快暴露了致命问题：\n知识瓶颈：每条规则都需要人类专家手工编写。一个医疗诊断系统可能需要上万条规则，而且规则之间经常矛盾 脆弱性：面对规则库之外的情况，系统彻底懵圈，连\u0026quot;这个我不知道\u0026quot;都说不出来 无法学习：这些系统不会从经验中成长，永远只能做被明确编程的事 到了1980年代末，专家系统的泡沫破裂。日本的\u0026quot;第五代\u0026quot;计划以失败告终。AI迎来了第二次寒冬。\n第三章：暗流——寒冬中的播种者（1986—1997） 寒冬并不意味着所有人都停下了脚步。\n恰恰相反，AI历史上最重要的几项发明，都诞生在这段\u0026quot;无人关注\u0026quot;的年代。就像种子在冰雪下悄悄萌发，等待春天。\n反向传播：多层网络学会了训练自己（1986） 1986年，三位研究者发表了一篇论文，解决了一个困扰神经网络领域十几年的核心问题：多层神经网络怎么训练？\nDavid Rumelhart、Geoffrey Hinton 和 Ronald Williams 在 Nature 杂志上发表了《Learning representations by back-propagating errors》，提出了反向传播算法（Backpropagation）。\n核心思路说起来很直觉：网络的输出和正确答案之间有个差距（误差），把这个误差反向传播回去——从输出层到隐藏层到输入层——沿途调整每一层的权重，让误差一点点缩小。\n这个想法的数学基础其实很优雅：链式求导法则。你在高中数学里学过的那个东西，被用来训练拥有数百万参数的神经网络。\n反向传播的意义在于：Minsky证明了单层感知机不行，但多层网络可以解决XOR，甚至可以学会远比XOR复杂得多的任务。反向传播给出了训练这些多层网络的方法。\n从这一刻起，深度学习的数学基石已经就位。缺的只是数据和算力。\n论文卡片 Rumelhart, Hinton \u0026amp; Williams (1986), Learning representations by back-propagating errors, Nature 一句话意义： 反向传播算法——教会了多层神经网络\u0026quot;从错误中学习\u0026rdquo;，是后来一切深度学习的训练基石。\n赋予机器记忆：Jordan的循环网络（1986） 同一年，另一位名叫 Michael Jordan 的研究者（不是打篮球的那位）提出了一个更基本的问题：怎么让网络拥有\u0026quot;记忆\u0026quot;？\n传统的神经网络是\u0026quot;无状态\u0026quot;的——给它一张图片，它输出一个分类，然后就全忘了。但人类的思维是有连续性的：你读一个句子时，读到第五个字的时候还记得前四个字说了什么。\nJordan引入了状态单元（State Units）——一种特殊的设计，把网络上一时刻的输出反馈回输入端。这样，网络在处理当前输入时，能\u0026quot;看到\u0026quot;自己之前做了什么。\n这就是循环神经网络（RNN） 的雏形。\n更有趣的是，Jordan发现了吸引子（Attractor） 现象：当你从一个训练数据中没有出现过的新坐标启动网络，它会自动修正回到已学会的稳定轨迹上。这意味着网络不是在死记硬背，而是学会了轨迹的几何特征——它在泛化。\nElman的50个神经元：语言的秘密（1991） 1991年，Jeffrey Elman在Jordan的基础上做了一个惊人的实验。\n他用一个只有50个神经元的微型网络来处理连续的英文字母流——没有空格，没有标点，没有任何词语边界的标记。网络的任务只有一个：预测下一个字母是什么。\n然后，奇迹发生了。\nElman观察到，网络的预测误差呈现出一种明确的节奏——\n当一个新单词开始时，误差突然飙升（因为网络不知道新词的第一个字母是什么） 随着单词内部字母推进，误差逐渐降低（一旦看到\u0026quot;t-h-e\u0026quot;的\u0026quot;t-h\u0026quot;，下一个字母几乎可以确定是\u0026quot;e\u0026quot;） 到达词语边界时，误差再次跳升 这种误差的\u0026quot;波峰-波谷\u0026quot;节奏，就是信息论中的熵（Entropy） 的变化。网络通过\u0026quot;熵的涨落\u0026quot;，自发发现了词语的边界——从来没有人告诉它什么是\u0026quot;单词\u0026quot;。\n但更惊人的发现在隐藏层里。Elman探测网络内部的神经元活动，发现它自动形成了分层的语义聚类：\n所有词汇 ├── 有生命的 │ ├── 人类 (man, woman, boy, girl...) │ └── 动物 (cat, dog, mouse...) └── 无生命的 ├── 可食用 (cookie, bread, food...) └── 易碎品 (glass, plate, cup...) 50个神经元，仅仅通过\u0026quot;预测下一个字母\u0026quot;这一个任务，就自发涌现出了对世界的分类理解。\n这个发现直接挑战了语言学家 Noam Chomsky 的核心观点。Chomsky坚持认为，人类语言能力的复杂性决定了它必须是先天的——写在基因里的\u0026quot;语言习得装置\u0026quot;。而Elman证明了：复杂的语义理解完全可以从统计模式的预测中自发涌现。\n如果你觉得这个结论似曾相识——没错，三十年后，GPT系列大模型的核心设计哲学，就是这五个字：\n预测下一个词。\n论文卡片 Elman, J.L. (1991), Finding Structure in Time, Cognitive Science 一句话意义： 50个神经元证明了\u0026quot;预测下一个符号\u0026quot;就能涌现出语法和语义理解——这个理念在30年后成为GPT的核心设计哲学。\nLSTM：记住该记住的，忘掉该忘掉的（1997） Jordan和Elman的循环网络有一个致命问题：记忆会衰减。\n假设你在读一篇小说，第一页提到\u0026quot;主角叫李明\u0026quot;，到了第一百页写到\u0026quot;他走进了房间\u0026quot;——\u0026ldquo;他\u0026quot;指的是谁？人类可以毫不犹豫地回答\u0026quot;李明\u0026rdquo;。但RNN不行。\n原因是技术性的，叫做梯度消失（Vanishing Gradient）：当反向传播跨越很多时间步时，梯度会像连乘一串小于1的数一样，越乘越小，最终趋近于零。这意味着网络对很久以前的信息几乎完全\u0026quot;失忆\u0026quot;。\n1997年，在德国慕尼黑，Sepp Hochreiter 和 Jürgen Schmidhuber 提出了解决方案：LSTM（Long Short-Term Memory，长短期记忆网络）。\nLSTM的核心创新是引入了三个\u0026quot;门（Gate）\u0026quot;：\n遗忘门：决定丢弃哪些过时信息（\u0026ldquo;场景已经换了，丢掉上一个场景的细节\u0026rdquo;） 输入门：决定记住哪些新信息（\u0026ldquo;新出现了一个重要角色，记住这个名字\u0026rdquo;） 输出门：决定输出哪些信息（\u0026ldquo;当前问的是谁走进了房间，输出角色名\u0026rdquo;） 这三个门让网络可以选择性地记忆和遗忘，从而保持对长距离信息的追踪。\n但这里有一个令人唏嘘的事实：LSTM发表于1997年，几乎无人问津。 Hochreiter和Schmidhuber在之后的近十五年里，不断推广这项技术，屡屡碰壁。\n直到2012年之后深度学习爆发，LSTM才突然成为语音识别、机器翻译、自然语言处理的标配架构——Google翻译、Siri的语音识别，背后都是LSTM。\n超前十五年。这就是寒冬中播种的代价。\n论文卡片 Hochreiter \u0026amp; Schmidhuber (1997), Long Short-Term Memory, Neural Computation 一句话意义： 用\u0026quot;门控\u0026quot;机制解决RNN的梯度消失问题，让网络第一次拥有了可靠的长期记忆。发表时无人关注，15年后成为标配。\n第四章：至暗时刻——第二次AI寒冬（1990s—2000s） 如果说第一次AI寒冬是一场暴风雪，那第二次AI寒冬更像是一场漫长的、看不到尽头的阴天。没有戏剧性的转折，只有持续的、令人窒息的冷漠。\n\u0026ldquo;你为什么还在研究这个？\u0026rdquo; 1990年代到2000年代初期，机器学习领域被支持向量机（SVM）、随机森林、核方法等\u0026quot;浅层\u0026quot;方法统治。这些方法有数学上的优雅证明，在小数据集上表现良好，而且——最重要的——不需要GPU，不需要大量数据，不需要等好几天才能训练完。\n神经网络？太慢、太贵、太不可靠、太没有理论支撑。\n当时的学术界有一种普遍的鄙视链：研究神经网络的论文很难被顶级会议接收。NIPS（现在改名叫NeurIPS）会议上提交神经网络的论文，评审意见经常就一句话：\u0026ldquo;This is just a neural network.\u0026rdquo; ——言下之意，不值得讨论。\nHinton后来回忆说：\n\u0026ldquo;我们就像一小群人在沙漠中行走，所有人都说前面没有绿洲。我们也不确定，但我们没有回头路了。\u0026rdquo;\n一个叫Hinton的固执老头 如果这个故事有一个主角，那一定是 Geoffrey Hinton。\nHinton1947年出生于英国伦敦，曾祖父是布尔代数的发明者 George Boole（是的，编程语言里的\u0026quot;Boolean\u0026quot;就是他家的）。他原本学的是实验心理学，后来转向人工智能，在爱丁堡大学拿到了AI的博士学位。\n从1970年代开始，Hinton就坚定地相信一件事：人类的智能来源于神经元之间连接权重的调整，而不是逻辑规则的运算。 这在当时是彻底的异端邪说。\n他的学术生涯几乎就是一部\u0026quot;逆流而上\u0026quot;的编年史：\n年代 Hinton在做什么 主流学术界在做什么 1970s 研究神经网络的学习算法 认为神经网络已死 1980s 参与发明反向传播 热炒专家系统 1990s 探索深度网络的训练方法 推崇SVM和核方法 2000s 发明深度信念网络 \u0026ldquo;Neural networks? Seriously?\u0026rdquo; 在加拿大多伦多大学（他因为反对里根政府的军事研究而离开了美国），Hinton带着极少的经费和屈指可数的学生，一年又一年地发论文，一年又一年地被主流无视。\n然后，在2006年，他发出了一声信号弹。\n2006：复兴宣言 2006年，Hinton发表了一篇论文：《A Fast Learning Algorithm for Deep Belief Nets》。\n核心观点：深层神经网络可以被有效训练。\n此前学术界的共识是：超过两三层的网络根本训不动——梯度消失会让深层的权重纹丝不动。Hinton的突破在于引入了\u0026quot;逐层预训练\u0026quot;的技巧：先用无监督学习一层一层地初始化网络，再用反向传播做微调。\n这篇论文的实验规模很小——受限于当时的硬件，只能在MNIST手写数字识别这样的小数据集上验证。但它传递了一个明确的信号：\n深度网络不是死路。走得更深，可能走得更远。\n学术界开始有人侧耳倾听了。但真正的爆发，还需要再等六年——等待硬件革命的到来。\n论文卡片 Hinton, Osindero \u0026amp; Teh (2006), A Fast Learning Algorithm for Deep Belief Nets, Neural Computation 一句话意义： 深度学习的\u0026quot;复兴宣言\u0026quot;——证明了深层网络可以被有效训练，终结了\u0026quot;网络不能太深\u0026quot;的学术偏见。\n三巨头与图灵奖 这里需要介绍另外两位在寒冬中坚持的人。\nYann LeCun，法国人，1980年代在Hinton指导下学习反向传播，后来发明了卷积神经网络（CNN）。1998年，他的LeNet-5被AT\u0026amp;T用来识别支票上的手写数字——这可能是神经网络在寒冬中最成功的商业应用。但他在学术界同样长期被边缘化，直到2013年加入Facebook（现Meta）担任首席AI科学家。\nYoshua Bengio，加拿大蒙特利尔大学教授，在深度学习最低谷的时期仍然坚持研究神经网络的学习表示。他培养了大量深度学习人才，被称为\u0026quot;蒙特利尔学派\u0026quot;的灵魂人物。\n2018年，Hinton、LeCun和Bengio三人共同获得了图灵奖——计算机科学的最高荣誉，被称为\u0026quot;计算机界的诺贝尔奖\u0026quot;。\n颁奖词说他们\u0026quot;使深度神经网络成为了计算的关键组成部分\u0026quot;。\n但更准确的说法也许是：他们在整个世界都说\u0026quot;不行\u0026quot;的时候，坚持说\u0026quot;可以\u0026quot;——然后用三十年证明了自己。\n深度学习三巨头\n人物 国籍 主要贡献 坚持年代 Geoffrey Hinton 英国/加拿大 反向传播、深度信念网络、AlexNet指导者 1970s—至今 Yann LeCun 法国/美国 卷积神经网络(CNN)、LeNet 1980s—至今 Yoshua Bengio 加拿大 深度学习理论、蒙特利尔学派 1990s—至今 2018年共获图灵奖。 从边缘到最高荣誉，他们等了三十年。\n第五章：\u0026ldquo;智能即压缩\u0026rdquo;——一个超前十年的预言（2011） 2011年，在神经网络研究者还在被主流学术界白眼的时候，一个极具远见的理论被提出：\n文本压缩等同于智能。\n这个观点认为，大脑本质上是一台预测机器。所谓\u0026quot;学习\u0026quot;，就是把海量的经验信息压缩进一个可预测的世界模型中。如果你能完美地预测一段文本的下一个词，那意味着你理解了这段文本背后的一切——语法、语义、常识、逻辑、甚至世界运行的规律。\n为了验证这个理论，研究者训练了一个拥有数百万连接的大型网络，然后给了它一个提示：\n\u0026ldquo;The meaning of life is\u0026hellip;\u0026rdquo;（\u0026ldquo;生命的意义是\u0026hellip;\u0026quot;）\n网络的回答是：\n\u0026ldquo;The tradition of the ancient human reproduction.\u0026quot;（\u0026ldquo;古代人类生殖的传统。\u0026quot;）\n听起来荒诞不经。而且网络在说了几句之后就开始胡言乱语。\n但研究者在论文末尾写下了一段大胆的预言：\n如果能将网络规模提升至数亿神经元和数十亿连接，单纯依靠算力的\u0026quot;暴力破解\u0026quot;可能产生出超乎想象的高性能。\n2011年没有人认真对待这句话。2020年GPT-3的1750亿参数证明了它的先见之明。\n这就是后来被称为**\u0026ldquo;暴力美学（Brute Force Aesthetics）\u0026rdquo;** 和 \u0026ldquo;Scaling Law\u0026rdquo; 的理论雏形——不需要设计更聪明的算法，只需要把模型做得更大、数据灌得更多、算力堆得更猛。\n简单，粗暴，有效。\n本篇小结：暗夜中的星光 让我们回望这段从1943年到2000年代末的历史：\n时间线一览：\n年份 事件 情感色调 1943 McCulloch \u0026amp; Pitts提出人工神经元 🌱 萌芽 1950 图灵提出\u0026quot;机器能思考吗？\u0026rdquo; 💡 设问 1956 达特茅斯会议，AI得名 ☀️ 乐观 1957 Rosenblatt发明感知机 🔥 狂热 1969 Minsky《Perceptrons》出版 ❄️ 寒冬降临 1986 反向传播 + Jordan的RNN 🌱 暗流涌动 1991 Elman的50个神经元实验 ✨ 低调的惊人发现 1997 LSTM发表，无人关注 😔 超前的孤独 2006 Hinton的深度信念网络 🔔 复兴的信号弹 2011 \u0026ldquo;智能即压缩\u0026quot;理论 🔮 超前的预言 从1969年到2012年，超过四十年，神经网络研究者们在学术界的边缘生存。他们的论文被拒绝，经费被削减，同行嘲笑他们是\u0026quot;不切实际的幻想家\u0026rdquo;。\n但正是在这段无人关注的时期，最关键的技术积淀悄悄完成了：\n反向传播给出了训练的方法 RNN/LSTM赋予了网络记忆 **\u0026ldquo;预测下一个词\u0026rdquo;**的哲学被验证 **\u0026ldquo;暴力扩大规模\u0026rdquo;**的直觉被提出 所有的弹药都已就位。缺的只是一根导火索。\n这根导火索，来自一个意想不到的地方——2012年多伦多大学一间狭小的实验室里，两块游戏显卡。\n中篇预告： 2012年的AlexNet如何用GPU改写历史？为什么\u0026quot;注意力就是一切\u0026rdquo;？1750亿参数的GPT-3到底学会了什么？敬请期待：《AI的70年（中）：从两块显卡到改变世界的注意力机制》\n博客：AI-lab学习笔记 ｜ 微信公众号：AI-lab学习笔记\n","permalink":"https://jason-azure.github.io/ai-blog/posts/ai-history-1/","summary":"1956年，十位科学家相信20年就能造出思考的机器。70年后回望，这条路比任何人想象的都要漫长。这是一群异端者的故事——他们在所有人都放弃的年代，选择继续相信。","title":"AI的70年（上）：从达特茅斯的梦想到漫长的寒冬"},{"content":"1701 年。汉诺威。\n五十五岁的莱布尼茨（Gottfried Wilhelm Leibniz, 1646–1716）在书房里拆开一封从北京寄来的信。\n寄信人叫白晋（Joachim Bouvet, 1656–1730），一位在康熙皇帝宫廷中教授西方数学的法国耶稣会士。白晋与莱布尼茨通信已有多年，两人的话题从中国哲学到数学方法无所不包。但这一次，白晋在信中附了一样东西——一幅来自宋代学者邵雍的图。\n伏羲六十四卦方圆图。\n六十四个由断线和连线组成的符号，排列成方形和圆形两种阵列。莱布尼茨看着这幅图，看了很久。\n因为他认出了它。\n这和他独自推演了二十年的二进制计数表——逢二进一，只用 0 和 1 表达一切数字——严丝合缝。\n莱布尼茨收藏并标注的伏羲六十四卦方圆图。上方为圆图（先天六十四卦圆形排列），下方为方图（方阵排列）。这幅图由白晋从北京寄出，成为莱布尼茨 1703 年二进制论文的核心参考。（图源: Wikimedia Commons, Public Domain）\n这个故事的每一个环节——八卦的结构、六十四卦的完备性、邵雍的排序、白晋的信、莱布尼茨的论文——都有据可查。\n让我们一个一个看。\n一、八卦：三个比特 八卦的基本单位是爻（yáo）。\n只有两种：\n阳爻 ⚊ ——一条连续的线 阴爻 ⚋ ——一条断开的线 两种状态。连 或 断。有 或 无。1 或 0。\n如果你学过计算机科学，你会立刻认出这个结构：这是一个比特（bit）。一个只取两个值的信息单位。\n现在，把三个爻从下往上叠在一起。每个位置有 2 种选择，三个位置就有 $2^3 = 8$ 种组合。\n这就是八卦。\n卦名 卦象 二进制 十进制 自然象征 坤 ☷ 000 0 地 艮 ☶ 001 1 山 坎 ☵ 010 2 水 巽 ☴ 011 3 风 震 ☳ 100 4 雷 离 ☲ 101 5 火 兑 ☱ 110 6 泽 乾 ☰ 111 7 天 这里有一个需要特别说明的地方。\n上面这张表的对应关系——阴爻为 0、阳爻为 1、从底部读起——不是后人牵强附会出来的。在邵雍的\u0026quot;先天八卦\u0026quot;排列中，八卦的顺序恰好就是：坤（000）、艮（001）、坎（010）、巽（011）、震（100）、离（101）、兑（110）、乾（111）。\n从 0 数到 7。\n一个也不差。一个也不乱。\n这就是莱布尼茨看到那幅图时震惊的原因。这不是\u0026quot;可以解释为\u0026quot;二进制——这就是二进制计数。\n二、六十四卦：六比特的完备空间 八卦是三爻的穷举。但《易经》没有止步于此。\n把两个三爻卦上下叠合——下卦（内卦）三爻 + 上卦（外卦）三爻——就得到一个六爻卦。\n下卦有 8 种，上卦有 8 种，$8 \\times 8 = 64$ 种组合。\n或者，用信息论的语言说：六个比特，$2^6 = 64$ 种状态。\n六十四卦不多不少，恰好覆盖了六比特的全部可能性。\n这意味着什么？\n意味着六十四卦是一个完备的编码系统。在六比特的空间里，没有任何一种状态被遗漏，也没有任何一种状态被重复。每一个六位二进制数，都有且仅有一个卦与之对应。\n如果你觉得\u0026quot;完备\u0026quot;这个词太学术，换一种说法：六十四卦之于六比特，就像 26 个字母之于英文拼写——它覆盖了所有的基本可能，你不需要更多，也不能更少。\n让我们做一个有趣的类比。\nASCII 编码（美国信息交换标准代码），计算机时代最早的字符编码标准，使用 7 个比特编码 128 个字符——26 个大写字母、26 个小写字母、10 个数字、32 个控制字符和 34 个标点符号。它诞生于 1963 年。\n六十四卦使用 6 个比特编码 64 个\u0026quot;状态\u0026quot;。它的编码逻辑出现于——如果我们按邵雍的排列算——大约公元 1060 年。\n当然，必须立刻说清楚：这个类比是结构性的，不是功能性的。 ASCII 编码字符，六十四卦编码\u0026quot;宇宙的状态\u0026quot;。ASCII 的设计者明确知道自己在做信息编码，而创造六十四卦的人（无论是传说中的伏羲，还是历史上的周文王）想的是天道、变化和占卜。\n但从数学结构的角度看，两者做了同一件事：在一个有限的比特空间里，建立了一套完备的、无冗余的编码。\n这件事本身就值得注意。它说明\u0026quot;完备编码\u0026quot;不是现代信息论的发明——它是一种自然的数学结构，不同时代的人会因为不同的理由抵达同一个答案。\n三、邵雍的先天图 邵雍（1011–1077），北宋理学家。\n在那个群星璀璨的时代——范仲淹写《岳阳楼记》，司马光编《资治通鉴》，苏轼写前后《赤壁赋》——邵雍是一个特别安静的存在。他住在洛阳，自号\u0026quot;安乐先生\u0026quot;，终日研究象数之学。用现代的话说，他是一个沉迷于数学模式的理论家。\n他最重要的成就是对《易经》先天图的系统化整理。他把六十四卦排成了一个严格的序列——这就是后来被称为\u0026quot;伏羲六十四卦方圆图\u0026quot;的东西。\n圆图把六十四卦排成一个环，乾（111111）在正上方，坤（000000）在正下方，中间的卦按二进制顺序排列。\n方图把六十四卦排成一个 8×8 的方阵，横轴是上卦（外卦），纵轴是下卦（内卦）。每一行、每一列都是一个完整的八卦序列。\n关键事实是这个——\n邵雍的排序，从坤到乾，就是从 000000 到 111111 的计数——即从十进制的 0 到 63。\n不是\u0026quot;大致对应\u0026quot;。不是\u0026quot;如果你换一下顺序就能对上\u0026quot;。是逐个对应，严丝合缝。\n位置 卦名 二进制 十进制 第 1 坤 000000 0 第 2 剥 000001 1 第 3 比 000010 2 第 4 观 000011 3 … … … … 第 61 大壮 111100 60 第 62 夬 111101 61 第 63 大有 111110 62 第 64 乾 111111 63 现在，让我们把时间线摆出来。\n邵雍完成先天图的系统化：约 1060 年。\n莱布尼茨发表二进制论文：1703 年。\n中间相隔六百多年。\n这个时间差是这个故事中最令人沉默的部分。\n但我必须同时说另一件事——邵雍并没有\u0026ldquo;发明二进制\u0026rdquo;。他没有写过\u0026quot;逢二进一\u0026quot;这四个字，没有讨论过二进制的运算规则，没有建立过二进制与十进制之间的转换方法。他追求的是宇宙的秩序——天地万物的生成规律、阴阳消长的数学结构。他用\u0026quot;加一倍法\u0026quot;来描述自己的排列原则：\u0026ldquo;一分为二，二分为四，四分为八\u0026rdquo;——这当然就是 $2^0, 2^1, 2^2, 2^3$ 的指数增长，但在邵雍的体系里，这是太极生两仪、两仪生四象的宇宙论，不是计数系统。\n所以准确的表述是：邵雍的先天图在数学结构上等价于二进制计数，但它的设计动机和认知框架与莱布尼茨完全不同。\n这比\u0026quot;中国人发明了二进制\u0026quot;更有趣。因为它引出一个更深的问题：为什么两个生活在不同世纪、不同大陆、追问完全不同问题的人，会抵达同一个数学结构？\n四、白晋与莱布尼茨 这个故事的桥梁是一个法国人。\n白晋（Joachim Bouvet），法国耶稣会士，1687 年受路易十四派遣前往中国。他在康熙的宫廷里待了将近三十年，教皇帝西方数学和天文学，同时自己深入研究中国典籍——尤其是《易经》。\n白晋不是一般的传教士。他是\u0026quot;索隐派\u0026quot;（Figurism）的代表人物，相信中国古代典籍中隐藏着与基督教一致的原始启示。这个信念驱使他对《易经》做了极其细致的研究——不是作为占卜手册，而是作为一种哲学与数学的文本。\n他与莱布尼茨的通信始于 1697 年。莱布尼茨对中国文化的兴趣是真诚的——他曾写过一本《中国近事》（Novissima Sinica），主张欧洲应向中国学习实用哲学。\n1701 年，白晋在一封信中向莱布尼茨介绍了邵雍的先天图，并附上了那幅六十四卦方圆图。\n莱布尼茨的反应记录在他的论文和通信中。他早在 1679 年就开始独立研究二进制算术，写下了一篇关于二进制的手稿（De Progressione Dyadica）。但他长期犹豫是否发表——因为他不确定这套只用 0 和 1 的计数法是否有足够的实用价值来吸引数学界的关注。\n白晋的信改变了一切。\n看到邵雍的先天图后，莱布尼茨确信二进制不仅仅是一种数学游戏——它是一种具有深刻哲学意义的结构，古老的中国智慧已经从另一条路径抵达了同一个真理。\n1703 年，莱布尼茨在法国皇家科学院发表了他的论文：《二进制算术阐释——兼论其用途及伏羲氏所用数字的意义》（Explication de l\u0026rsquo;arithmétique binaire, qui se sert des seuls caractères 0 et 1, avec des remarques sur son utilité, et sur ce qu\u0026rsquo;elle donne le sens des anciennes figures Chinoises de Fohy）。\n注意这个标题。莱布尼茨没有把伏羲的六十四卦放在脚注里——他把它写进了论文标题。\n在论文中，莱布尼茨做了一件有趣的事。他把二进制与基督教神学联系在一起：上帝（1）从虚无（0）中创造万物——\u0026ldquo;creatio ex nihilo\u0026rdquo;。1 和 0 不仅仅是数字，它们象征着存在与虚空、光与暗、有与无。\n而伏羲的六十四卦，在莱布尼茨看来，正是这种原始真理在中国文明中的体现。\n这里有一个微妙的讽刺：白晋认为中国典籍中隐藏着基督教的启示，莱布尼茨认为二进制揭示了上帝创世的密码——两个欧洲人各自从中国这面镜子里看到了自己想看的东西。 这并不削弱这件事的数学意义，但它提醒我们：当不同文明的知识碰撞时，\u0026ldquo;理解\u0026quot;和\u0026quot;误解\u0026quot;往往同时发生。\n不过，有一件事是客观的，不受诠释框架影响的：\n邵雍的先天图的排列顺序，与二进制自然数序列的排列顺序，在数学上完全等价。\n这个事实不依赖于白晋的神学，不依赖于莱布尼茨的哲学，不依赖于邵雍的宇宙论。\n它只是一个数学事实。\n五、不做判断 让我们最后把一条线索铺清楚。\n《系辞传》说：\u0026ldquo;易有太极，是生两仪，两仪生四象，四象生八卦。\u0026rdquo;\n翻译成数学：\n$$2^0 = 1 \\quad \\text{（太极：一个未分的整体）}$$\n$$2^1 = 2 \\quad \\text{（两仪：阴与阳）}$$\n$$2^2 = 4 \\quad \\text{（四象：太阳、少阴、少阳、太阴）}$$\n$$2^3 = 8 \\quad \\text{（八卦）}$$\n继续——\n$$2^6 = 64 \\quad \\text{（六十四卦）}$$\n这是一棵完美的二叉树。每一次分裂，可能性翻倍。从 1 到 2，从 2 到 4，从 4 到 8，从 8 到 64。指数增长。二进制的自然结构。\n这条\u0026quot;太极→两仪→四象→八卦\u0026quot;的生成链，用现代语言描述，就是一个递归的二分过程。\n到此为止，这篇文章已经摆出了所有的事实。\n现在我要做一件这个系列承诺要做的事情：不做判断。\n你可能很想说：\u0026ldquo;所以中国人在宋朝就发明了二进制！比莱布尼茨早六百年！\u0026rdquo;\n不要这样说。\n邵雍没有建立二进制的运算体系。他没有做过二进制加法，没有讨论过进位规则，没有考虑过用 0 和 1 来表示任意数量。他构建的是一个宇宙论的分类系统，不是一个算术计算系统。把\u0026quot;先天图的排列等价于二进制\u0026quot;直接翻译成\u0026quot;邵雍发明了二进制\u0026rdquo;，是一种概念上的跳跃。\n你可能也想说：\u0026ldquo;这只是巧合。阴阳两分本来就会产生二进制结构，没什么了不起的。\u0026rdquo;\n也不要这样说。\n因为\u0026quot;阴阳两分\u0026quot;只是起点。把它系统地推演到六十四个状态的完备空间，并且建立一个严格的排序使之与自然数序列精确对应——这件事绝非\u0026quot;自然而然\u0026quot;就会发生的。历史上有很多二元分类系统（是/非、真/假、黑/白），但几乎没有一个被推演到六十四态的完备穷举并配以严格排序。邵雍做到了。莱布尼茨做到了。中间隔了六百年和一整个欧亚大陆。\n事实就是事实。它不需要被拔高，也不需要被贬低。\n一千年前的洛阳，一个安静的学者，出于对天道秩序的追问，把六十四个符号排成了一个从全阴到全阳的完美序列。\n六百年后的汉诺威，一个博学的数学家，出于对计算本质的追问，用 0 和 1 建立了一套新的计数法。\n当他们的成果隔着时空相遇时，严丝合缝。\n这就是全部。\n下一篇： 二进制是\u0026quot;编码\u0026quot;——把世界分成 0 和 1。但五行不是编码，它是\u0026quot;关系\u0026quot;——金木水火土之间的相生与相克，构成了一个循环的网络。而这个网络，有一个精确的现代数学名字：循环群 $Z_5$ 上的两个生成元。\n→ 两个圆之后（四）：相生相克的数学\n本文是「两个圆之后」系列的第三篇。这个系列从一个圆规开始，穿越几何、编码、代数与意识，追问一个没有答案的问题：为什么人类在每一个文明、每一个时代，都看见了同一组数学结构？\n系列目录：\n两个圆相遇的地方 — 鱼形囊、$\\sqrt{3}$，以及一朵开遍世界的花 完美的形状只有五个 — 生命之花、麦塔特隆立方体与开普勒的宇宙模型 伏羲的计算机 — 六十四卦、邵雍方阵与莱布尼茨收到的那封信（本篇） 相生相克的数学 — 五行、八卦，与藏在占卜里的代数结构 向内画圆 — 金华宗旨、荣格与意识的几何 ","permalink":"https://jason-azure.github.io/ai-blog/posts/two-circles-3/","summary":"1701年，莱布尼茨收到一封来自北京的信，附着邵雍的六十四卦方圆图。他看了很久——这和他推演二十年的二进制计数表，严丝合缝。","title":"两个圆之后（三）：伏羲的计算机"},{"content":" 本文是\u0026quot;AI的70年\u0026quot;系列的第二篇。如果你还没读过上篇，建议先看 《AI的70年（上）：从达特茅斯的梦想到漫长的寒冬》\n第六章：导火索——两块游戏显卡改写历史（2009—2012） GPU：从游戏引擎到计算引擎 在讲2012年的故事之前，我们需要先理解一个关键角色：GPU（图形处理器）。\nGPU原本是为了渲染3D游戏画面而设计的——它的特长是同时执行大量简单的计算。一个游戏画面有几百万个像素，每个像素的颜色计算都差不多，所以GPU被设计成拥有成百上千个小核心，可以并行处理。\n而神经网络的核心运算也是大量简单计算的并行执行——矩阵乘法。\n2007年，NVIDIA发布了 CUDA——一套让程序员可以用GPU做通用计算的工具包。GPU从此不再只是\u0026quot;游戏显卡\u0026quot;，而是变成了一台并行计算引擎。\n2009年，吴恩达（Andrew Ng） 团队在斯坦福大学发表了一个关键实验结果：\n用GPU训练神经网络，比CPU快10到70倍。\n一个在CPU上需要训练几周的模型，用GPU只需要一天。\n这看似只是一个工程优化，但它的连锁反应是革命性的——当你的实验周期从\u0026quot;几周\u0026quot;缩短到\u0026quot;一天\u0026quot;，你就可以做十倍多的尝试。 研究者可以更快地迭代、更大胆地尝试更大的模型。\n硬件瓶颈，被打破了。\n2012年秋天：ImageNet的震撼 2012年10月，一年一度的ImageNet大规模视觉识别挑战赛（ILSVRC）公布了结果。\nImageNet是当时最权威的计算机视觉竞赛：给你一张照片，你要识别出里面是什么——猫、狗、汽车、花瓶——从1000个类别中选出正确答案。参赛队伍来自全世界最顶尖的实验室。\n此前几年，最好的方法（手工设计特征 + SVM分类器）错误率一直卡在26%左右，每年进步只有一两个百分点。\n然后，多伦多大学的一支三人小队提交了他们的结果：\n错误率 15.3%。\n碾压第二名超过10个百分点。这不是渐进式的改进——这是断崖式的碾压。\nAlexNet (2012)\n项目 细节 论文 Krizhevsky, Sutskever \u0026amp; Hinton, ImageNet Classification with Deep Convolutional Neural Networks 模型 8层卷积神经网络，6000万参数 硬件 两块 NVIDIA GTX 580 GPU（每块仅3GB显存） 训练时间 约5-6天 错误率 15.3%（第二名26.2%） 三个人的名字：Alex Krizhevsky（研究生，负责编写CUDA代码）、Ilya Sutskever（Hinton的博士生，后来成为OpenAI的联合创始人和首席科学家）、Geoffrey Hinton（对，就是那个在寒冬中坚持了三十年的人）。\nAlexNet的秘密武器不是什么全新的理论——卷积网络的原理LeCun在1990年代就提出了。它的核心突破在于三件事：\nGPU并行训练：用两块游戏显卡把训练时间压缩到可行的范围 大规模数据：ImageNet有120万张标注图片，远超以往的数据集 ReLU激活函数 + Dropout正则化：让深层网络训练更稳定 硬件 + 数据 + 算法，三条线索在这一刻完成了历史性的交汇。\n这一天被后来的历史学家称为深度学习的**\u0026ldquo;iPhone时刻\u0026rdquo;**——在此之前，深度学习是边缘研究；在此之后，它成为了AI的主流范式。全世界的实验室在几个月内纷纷转向深度学习。各大科技公司开始疯狂招聘深度学习人才。\nHinton在那个秋天一夜之间从\u0026quot;边缘人\u0026quot;变成了\u0026quot;先知\u0026quot;。\nGoogle、百度、微软开始争相挖人。2013年，Hinton的小公司DNNresearch被Google收购——这家公司的全部资产就是Hinton和他的两个学生。\n硬件演进：一条平行的关键时间线 AI的故事不能只讲算法，硬件同样是核心驱动力。每一代GPU的进步，都直接决定了AI研究者能\u0026quot;做多大的梦\u0026quot;。\n年份 GPU / 硬件 显存 AI意义 2007 NVIDIA CUDA发布 — GPU从游戏引擎变为计算引擎 2012 GTX 580 3GB 训练AlexNet，深度学习元年 2016 P100 (Pascal) 16GB 第一款AI专用数据中心GPU 2017 V100 (Volta) 16-32GB Tensor Core诞生，矩阵乘法专用硬件 2020 A100 (Ampere) 40-80GB 训练GPT-3的主力，第三代Tensor Core 2022 H100 (Hopper) 80GB Transformer Engine，FP8精度 2024 B200 (Blackwell) 192GB 单卡可承载更大模型 一个直观的对比：2012年训练AlexNet用了两块3GB的显卡；2020年训练GPT-3用了约10,000块A100，耗资超过460万美元的纯算力费用。\n算力的增长速度远超摩尔定律。AI不仅是算法的竞赛，更是算力的军备竞赛。\n第七章：框架革命——深度学习的\u0026quot;民主化\u0026quot;（2013—2016） 从手搓CUDA到一行代码 在AlexNet的年代，训练一个神经网络是一件极其痛苦的事。Alex Krizhevsky为了让模型在两块GPU上并行训练，手写了大量底层的CUDA代码。这种工作需要同时精通算法和GPU底层编程——全世界能做到的人屈指可数。\n如果深度学习要从\u0026quot;少数天才的手艺活\u0026quot;变成\u0026quot;所有研究者都能用的工具\u0026quot;，就需要更好的软件基础设施。\n年份 框架 开发者 关键特点 2013 Caffe 贾扬清 (UC Berkeley) 第一个广泛使用的深度学习框架，C++底层 2015 TensorFlow Google 工业级部署能力，静态计算图 2015 Keras François Chollet 极简API，降低入门门槛 2016 PyTorch Facebook (Meta) 动态计算图，Python原生体验，研究者首选 这些框架做了一件关键的事：把GPU编程的复杂性封装起来。\n以前你需要手写几百行CUDA代码来实现一个卷积层；有了PyTorch之后，一行代码就够了：\nlayer = torch.nn.Conv2d(3, 64, kernel_size=3) 这意味着一个物理学博士、一个医学研究者、一个计算机本科生，都可以在一个下午搭建并训练一个深度神经网络。\n框架降低了门槛，加速了整个领域的迭代速度。 深度学习从\u0026quot;贵族运动\u0026quot;变成了\u0026quot;大众运动\u0026quot;。\nWord2Vec：词语有了坐标（2013） 2013年，Google的 Tomas Mikolov 提出了 Word2Vec，一个看似简单但意义深远的模型。\nWord2Vec做的事只有一件：把每个单词映射成一个几百维的向量——一串数字。\n但这些向量具有惊人的数学性质：\nKing - Man + Woman ≈ Queen Paris - France + Japan ≈ Tokyo \u0026ldquo;国王\u0026quot;减去\u0026quot;男性\u0026quot;加上\u0026quot;女性\u0026rdquo;，约等于\u0026quot;女王\u0026quot;。 词语之间的语义关系，被编码成了向量空间中的方向和距离。\n这意味着什么？这意味着语义是可以计算的。\nWord2Vec证明了语言中的意义可以被\u0026quot;捕捉\u0026quot;在数学空间里。这为后来Transformer的注意力机制——通过计算词向量之间的距离来判断语义关联——铺平了道路。\n论文卡片 Mikolov et al. (2013), Efficient Estimation of Word Representations in Vector Space 一句话意义： King - Man + Woman = Queen —— 证明语义可以被编码为数学空间中的方向，为注意力机制奠基。\n2014年的两个里程碑 2014年，两项发明进一步推动了AI的加速：\nGAN（生成对抗网络）：Ian Goodfellow 在蒙特利尔的一间酒吧里突发灵感——让两个网络互相对抗，一个生成假图片，一个判断真假，通过\u0026quot;军备竞赛\u0026quot;让生成质量越来越高。这开启了AI生成内容（AIGC）的先河。\nSeq2Seq with Attention：Ilya Sutskever（AlexNet论文的合著者）等人提出了序列到序列模型，配合 Bahdanau注意力机制。这是第一次在机器翻译中引入\u0026quot;注意力\u0026quot;的概念——让模型在翻译每个词时，能\u0026quot;回看\u0026quot;源句子中最相关的部分，而不是把整个句子压缩成一个固定长度的向量。\nEncoder-Decoder加上Attention——这正是三年后Transformer架构的直接前身。\n第八章：情感神经元——预测的副作用（2017年初） 在讲Transformer之前，还有一个发现值得特别讲述。\n2017年初，OpenAI基于 Andrej Karpathy 的工作，用8200万条亚马逊商品评论训练了一个当时规模最大的循环网络（基于LSTM的语言模型）。\n网络的任务还是老套路：预测下一个字符。\n训练完成后，研究者打开网络内部检查——然后他们惊呆了。\n在网络深处的4096个神经元中，他们发现了一个特殊的神经元。这个单一的神经元，能够精准地判断一段文本的情感倾向——正面还是负面。\n把这个神经元的激活值调到最大，网络就输出热情洋溢的五星好评；调到最小，就输出愤怒的一星差评。一个神经元，就是一个完整的情感分类器。\n这个发现之所以意义深远，是因为——\n从来没有人教过这个网络什么是\u0026quot;情感\u0026quot;。\n它的训练目标只有一个：预测下一个字符。但为了更好地预测下一个字符，它不得不去理解文本的情感倾向（因为正面评论和负面评论的措辞模式完全不同）。\n\u0026ldquo;情感\u0026rdquo;，是预测能力的副产品。\n这暗示了一个深刻的可能性：当预测能力足够强时，\u0026ldquo;理解\u0026quot;会作为副产品自发涌现。 模型不需要被专门教导某个概念——为了预测得更准，它会自己\u0026quot;发明\u0026quot;所需的概念。\n但与此同时，这个实验也彻底暴露了RNN架构的致命缺陷。\n由于RNN的串行处理特性，网络必须把所有历史信息强行挤入一个固定大小的内部记忆向量中。这就像试图把一整本小说的内容\u0026quot;压缩\u0026quot;进一张便签纸——随着文本越来越长，早期的信息被不可避免地\u0026quot;挤掉\u0026rdquo;，模型开始胡言乱语。\nOpenAI的研究者把这种现象叫做**\u0026ldquo;上下文挤压（Context Squeezing）\u0026rdquo;**。\nRNN走到了尽头。AI需要一种全新的架构。\n第九章：范式转移——\u0026ldquo;注意力就是一切\u0026rdquo;（2017） 2017年6月，Google Brain团队的八位研究者在arXiv上发布了一篇论文。\n论文标题只有五个字：\nAttention Is All You Need\n在AI的历史上，很少有一篇论文的标题如此精准地预言了自己的影响力。这篇论文提出的Transformer架构，在此后的七年里，成为了几乎所有AI突破的基础——GPT、BERT、Claude、DeepSeek、Stable Diffusion、AlphaFold——全部基于Transformer或其变体。\nRNN的致命缺陷 为了理解Transformer为什么重要，我们需要先理解它替代了什么。\nRNN（包括LSTM）处理文本的方式是串行的——像读书一样，一个词一个词地读。读到第100个词的时候，对第1个词的记忆已经非常模糊了。\n这导致了两个问题：\n长距离依赖失效：一篇文章开头提到\u0026quot;张三是医生\u0026quot;，到了结尾写\u0026quot;他拿起了手术刀\u0026quot;——RNN很难把\u0026quot;他\u0026quot;和几百个词之前的\u0026quot;张三\u0026quot;联系起来 无法并行计算：必须处理完第1个词才能处理第2个词，第99个词必须等前面98个词都处理完——GPU的并行算力被完全浪费了 Transformer的解法：自注意力 Transformer的核心创新是自注意力机制（Self-Attention）——它彻底抛弃了串行结构。\n自注意力的工作方式可以这样理解：对于序列中的每一个词，它同时看到所有其他词，然后计算\u0026quot;我应该关注哪些词？\u0026quot;\n举个例子：\n\u0026ldquo;The river has a steep bank.\u0026quot;（这条河有一个陡峭的河岸。）\n当模型处理\u0026quot;bank\u0026quot;这个词时——bank既可以是\u0026quot;河岸\u0026rdquo;，也可以是\u0026quot;银行\u0026quot;——注意力机制会计算bank与句子中每个其他词的相关度。\n它发现：bank和\u0026quot;river\u0026quot;的相关度很高，和\u0026quot;steep\u0026quot;的相关度也高。于是bank的向量表示被调整——向\u0026quot;河岸\u0026quot;的方向移动，远离\u0026quot;银行\u0026quot;的方向。\n这种\u0026quot;测量词对之间在概念空间中的距离\u0026quot;，就是注意力机制的本质。\n多头注意力：多组镜头 Transformer不是只有一组注意力，而是有多组——论文中用了8组，后来的GPT-3用了96组。\n每组注意力（称为一个\u0026quot;头（Head）\u0026quot;）可以关注不同维度的关系：\n有的头专注于语法关系（主语在哪？动词在哪？） 有的头专注于语义关联（哪些词在意思上相关？） 有的头专注于位置距离（前一个词是什么？） 多组\u0026quot;镜头\u0026quot;并行工作，就像一个侦探团队从不同角度分析同一个案件。\n为什么Transformer赢了？ RNN / LSTM Transformer 处理方式 串行，逐词处理 并行，全局扫描 长距离依赖 记忆衰减严重 直接计算任意词对关系 GPU利用率 低（串行瓶颈） 高（天然适合并行计算） 可扩展性 难以扩大规模 参数越多效果越好 训练速度 慢（无法并行化时间步） 快（所有位置同时计算） 最后一行是关键中的关键。Transformer的并行结构意味着它可以充分利用GPU——这正好赶上了GPU算力指数级增长的时代。RNN的串行结构在GPU面前就像试图用自行车跑高速公路。\n论文的八位作者中，多位后来离开Google创办了自己的AI公司（Cohere、Adept等）。一篇论文，直接催生了一个产业。\n论文卡片 Vaswani et al. (2017), Attention Is All You Need, NeurIPS 2017 一句话意义： 提出Transformer架构——用自注意力机制替代RNN，实现全局并行扫描，从此成为所有现代大语言模型的基石。\n第十章：暴力美学——GPT的四级跳（2018—2022） Transformer架构就位之后，OpenAI开始了一场史无前例的\u0026quot;暴力扩张\u0026quot;实验——把模型做到多大，性能就能好到什么程度？\nGPT-1：验证方向（2018年6月） GPT-1 | 1.17亿参数 | 12层Transformer\n在大量未标注文本上做预训练（\u0026ldquo;预测下一个词\u0026rdquo;），然后在具体任务上做微调 首次验证了**零样本学习（Zero-shot Learning）**的可能性——不针对某个任务专门训练，也能完成该任务 证明了\u0026quot;预训练 + 微调\u0026quot;这个范式是可行的 GPT-1还很小，表现也有限。但它验证了一个关键方向：不需要为每个任务训练一个专门的模型——一个通用的大模型，通过预训练就能泛化到多种任务。\nGPT-2：让OpenAI害怕的模型（2019年2月） GPT-2 | 15亿参数 | 48层Transformer\n比GPT-1大了约13倍 能生成连贯的长文本、做翻译、做摘要——全都是零样本，没有专门训练 OpenAI一度拒绝公开完整模型，理由是担心被用来生成虚假信息 但批评者仍然斥之为\u0026quot;统计戏法\u0026quot;——长文本中仍然会出现逻辑\u0026quot;漂移\u0026quot; GPT-2是第一个让AI研究者感到\u0026quot;不安\u0026quot;的模型。不是因为它有多强，而是因为它展示了一种趋势：仅仅靠增大规模，性能就在持续提升。 如果这个趋势继续下去\u0026hellip;\nGPT-3：涌现（2020年6月） GPT-3 | 1750亿参数 | 96层Transformer\n比GPT-2大了117倍 训练数据：约3000亿token（大致相当于人类一辈子阅读量的数千倍） 训练成本：约460万美元纯算力费用 首次实现了上下文学习（In-context Learning） GPT-3是质变发生的时刻。\n什么是上下文学习？简单说，不需要更新模型的任何参数，只需要在提示词（Prompt）中给出几个例子，模型就能学会新任务：\n提示词： \u0026#34;Gigaro\u0026#34; means a type of magical fruit. Example: I ate a gigaro for breakfast and felt energized. Now use \u0026#34;gigaro\u0026#34; in a new sentence: GPT-3的回答： The market vendor displayed rows of fresh gigaros, their golden skin glowing in the morning light. \u0026ldquo;Gigaro\u0026quot;是一个完全虚构的词——世界上没有任何文本包含过它。但GPT-3可以正确地理解它的含义并造出合理的句子。\n这就是 \u0026ldquo;冻结网络（Frozen Network）\u0026rdquo; 下的学习：模型的权重完全不变，但它在\u0026quot;使用时\u0026quot;学到了新知识。\n从这个时刻起，一种全新的编程范式诞生了：\n提示词即程序（The Prompt is the Program）。\n你不再需要写代码来指挥计算机——你只需要用自然语言描述你想要什么。学习不再发生在训练阶段的权重更新中，而是在推理阶段的上下文里。\nScaling Law：暴力美学的数学基础 2020年，OpenAI发表了一篇影响深远的论文：Scaling Laws for Neural Language Models。\n核心发现是一个优雅到令人不安的结论：模型性能与三个因素呈幂律关系——\n参数量（模型有多大） 数据量（训练数据有多少） 计算量（用了多少算力） 只要持续扩大这三个因素中的任何一个，性能就会可预测地、持续地提升。没有看到天花板。\n这就是**\u0026ldquo;暴力美学\u0026quot;的数学基础**——也是各大科技公司疯狂烧钱训练更大模型的理论依据。如果你知道花两倍的钱一定能得到可量化的性能提升，那不花这个钱就是在竞争中落后。\nChatGPT：从预测者到执行者（2022年11月） GPT-3很强大，但有一个问题：它有时候会说出令人不安的话。\n你问它\u0026quot;如何制作炸弹\u0026rdquo;，它可能直接告诉你。你让它写一篇文章，它可能写出种族歧视的内容。这不是因为它\u0026quot;想要\u0026quot;这样做——它只是在\u0026quot;预测最可能的下一个词\u0026rdquo;，而互联网上的训练数据里什么都有。\n一个完美的预测者，不等于一个合格的助手。\n为了解决这个问题，OpenAI引入了对齐技术（Alignment）：\nRLHF（人类反馈强化学习）\n核心思路：让人类标注员对模型的多个回答进行排序（\u0026ldquo;这个回答好，那个回答差\u0026rdquo;），然后训练一个\u0026quot;奖励模型\u0026quot;来模拟人类的偏好，最后用强化学习让GPT去优化这个奖励。\n类比：训练一只鸽子，啄对了给食物，啄错了没有。GPT通过人类的\u0026quot;点赞\u0026quot;和\u0026quot;差评\u0026quot;，学会了什么该说、什么不该说、怎么说更有帮助。\nInstructGPT（2022年初）是这套技术的第一次大规模应用。结果惊人：一个1.3B参数的InstructGPT，在人类评估中被认为优于175B参数的原始GPT-3。对齐比规模更重要。\n在InstructGPT的基础上，OpenAI用GPT-3.5作为底座模型，结合更多的RLHF训练，打造出了——\nChatGPT。\n2022年11月30日。5天100万用户。2个月1亿用户。\n从1956年达特茅斯的夏天到2022年的冬天——66年。\n本篇小结：三条线索的交汇 回望这段从2009年到2022年的历史，三条线索的交汇解释了\u0026quot;为什么是现在\u0026quot;：\n第一条线索：硬件 2007 CUDA发布 ↓ 2012 两块GTX 580训练AlexNet ↓ 2017 V100 + Tensor Core ↓ 2020 A100训练GPT-3 (10,000块) ↓ 2022 H100 + Transformer Engine 没有GPU革命，就没有深度学习革命。\n第二条线索：算法 2012 AlexNet (CNN + GPU) ↓ 2013 Word2Vec (语义向量化) ↓ 2014 Attention机制 (Seq2Seq) ↓ 2017 Transformer (自注意力) ↓ 2018-2020 GPT-1/2/3 (规模扩张) ↓ 2022 RLHF对齐 → ChatGPT 从CNN到RNN到Transformer，每一步都站在前一步的肩膀上。\n第三条线索：框架与基础设施 2013 Caffe (第一个广泛使用的框架) ↓ 2015 TensorFlow + Keras (Google开源) ↓ 2016 PyTorch (Facebook开源) ↓ 2017 Hugging Face (模型共享社区) 框架把深度学习从\u0026quot;少数天才的手艺活\u0026quot;变成了\u0026quot;所有人的工具\u0026quot;。\n核心时间线一览：\n年份 事件 关键词 2009 吴恩达团队证明GPU训练快10-70倍 硬件突破 2012 AlexNet碾压ImageNet 深度学习元年 2013 Word2Vec 语义可计算 2014 GAN + Seq2Seq with Attention 生成+注意力 2015-16 TensorFlow + PyTorch开源 框架民主化 2017 \u0026ldquo;情感神经元\u0026quot;发现 涌现的暗示 2017 Transformer论文 范式转移 2018 GPT-1 预训练时代 2019 GPT-2 规模的力量 2020 GPT-3 + Scaling Law 涌现+暴力美学 2022 ChatGPT 从预测者到助手 现在，AI已经可以写诗、编程、考律师资格证。但一个根本性的问题仍然悬而未决——\n它真的在\u0026quot;思考\u0026quot;吗？还是只是一只非常、非常聪明的鹦鹉？\n下篇预告： 最有分量的反对者们在担心什么？AI到底缺了什么？70年的长路给我们什么启示？敬请期待：《AI的70年（下）：争鸣——机器究竟有没有在思考？》\n博客：AI-lab学习笔记 ｜ 微信公众号：AI-lab学习笔记\n","permalink":"https://jason-azure.github.io/ai-blog/posts/ai-history-2/","summary":"2012年，两块游戏显卡训练出的AlexNet震惊了整个AI领域。五年后，Google的一篇论文彻底终结了循环网络时代。又五年，ChatGPT上线。硬件、算法、数据——三条线索在这十年间完成了历史性的交汇。","title":"AI的70年（中）：从两块显卡到改变世界的注意力机制"},{"content":"假设你对中国传统文化只知道一件事：金、木、水、火、土。\n你大概会把它归档在\u0026quot;古代哲学\u0026quot;那一栏，和古希腊的\u0026quot;水、火、土、气\u0026quot;摆在一起，然后礼貌地合上书。\n现在做一个实验。\n把五行编上号：金 = 0，水 = 1，木 = 2，火 = 3，土 = 4。把它们排成一个圆圈。\n相生（金生水，水生木，木生火，火生土，土生金）——每步跳 1。\n相克（金克木，木克土，土克水，水克火，火克金）——每步跳 2。\n两种关系，两种步长。但有一个共同点：它们都恰好走遍了所有五个元素，一个不多，一个不少。\n这不是巧合。这是因为 1 和 2 都与 5 互素（最大公因数为 1）。\n换句话说——五行选择\u0026quot;五\u0026quot;，是因为 5 是素数。\n一、五行 = $Z_5$ 循环群 让我们把刚才的实验写得更精确一些。\n五个元素排成圆圈，编号 0 到 4，所有运算对 5 取模。这个结构在数学上叫做循环群 $Z_5$——整数模 5 的加法群。\n相生 = +1 (mod 5)：\n$$0 \\to 1 \\to 2 \\to 3 \\to 4 \\to 0$$ $$\\text{金} \\to \\text{水} \\to \\text{木} \\to \\text{火} \\to \\text{土} \\to \\text{金}$$\n五步，走遍所有元素，回到起点。\n相克 = +2 (mod 5)：\n$$0 \\to 2 \\to 4 \\to 1 \\to 3 \\to 0$$ $$\\text{金} \\to \\text{木} \\to \\text{土} \\to \\text{水} \\to \\text{火} \\to \\text{金}$$\n也是五步。也走遍所有元素。也回到起点。但顺序完全不同——它跳着走，隔一个取一个。\n在群论的语言里，1 和 2 都是 $Z_5$ 的生成元（generator）。一个生成元的意思是：从这个数出发，反复加上它自己，能够生成群中的所有元素。\n$Z_5$ 有多少个生成元？四个：1、2、3、4。除了 0 之外的每一个元素都是生成元。\n这正是素数的特权。\n如果我们用六个元素会怎样？$Z_6$，整数模 6。\n步长 2：$0 \\to 2 \\to 4 \\to 0$。糟了——只走到三个元素就绕回来了。因为 $\\gcd(2, 6) = 2$，步长 2 只能到达 6/2 = 3 个元素。\n步长 3：$0 \\to 3 \\to 0$。更糟——两步就回来了。因为 $\\gcd(3, 6) = 3$。\n六个元素的系统里，步长 2 和步长 3 都无法遍历全体。你不可能同时拥有两种完全独立的遍历方式。\n而在 $Z_5$ 里，因为 5 是素数，$\\gcd(1, 5) = 1$，$\\gcd(2, 5) = 1$，$\\gcd(3, 5) = 1$，$\\gcd(4, 5) = 1$——每一种非零步长都能走遍全部。\n五行选择\u0026quot;五\u0026quot;，不是任意的。5 是最小的奇素数，能够同时承载两种完全不同的、各自完整的遍历循环——一种叫相生，一种叫相克。\n如果有人问：古人知道素数吗？知道群论吗？\n不知道。但他们需要一个数字，能让两种对立的关系各自自洽、互不冲突、又共享同一组元素。他们试过各种可能性。最终留下来的，是五。\n数学不需要被\u0026quot;发明\u0026quot;。它只需要被\u0026quot;选中\u0026quot;。而五，被选中了。\n二、五边形与五角星 把五个元素放在正五边形的顶点上。\n现在画两张图：\n第一张图： 把相邻的顶点用线连起来。0-1，1-2，2-3，3-4，4-0。这就是正五边形的五条边。每步跳 1。\n这是相生。\n第二张图： 把隔一个的顶点用线连起来。0-2，2-4，4-1，1-3，3-0。\n你得到了一个五角星。每步跳 2。\n这是相克。\n0(金) / \\ · · / \\ · · / \\· · 4(土)---+---1(水) \\ ·/ \\· / \\ · / · \\ / · / ·\\/ 3(火)--------2(木) —— 相生（五边形的边） ·· 相克（五角星的线） 这就是说：五边形 + 五角星 = 完全图 $K_5$ 的子图分解。\n完全图 $K_5$ 有 $C(5,2) = 10$ 条边（每对顶点之间都有一条线）。五边形用掉 5 条，五角星用掉 5 条，加起来刚好 10 条。没有遗漏，没有重复。\n相生和相克，合在一起，穷尽了所有可能的两两关系。\n这个分解在图论中有个名字：$K_5$ 的 2-因子分解（2-factorization）。$K_5$ 恰好可以分解为两个哈密顿回路——而这两个回路，一个是五边形，一个是五角星。\n现在看五角星的内部。\n如果五角星的一条线段长度为 1，那么从一个尖端到它穿过的交叉点，这段长度与整条线段的比值是多少？\n答案是 $1/\\varphi$，其中 $\\varphi = (1 + \\sqrt{5})/2 \\approx 1.618\u0026hellip;$\n黄金比例。\n在本系列的第一篇中，我们从 Vesica Piscis（两个圆的重叠）出发，经过 $\\sqrt{3} \\to \\sqrt{2} \\to \\sqrt{5}$，推导出了 $\\varphi$。那是一条代数链条。\n而这里，五角星天然地包含了 $\\varphi$。不需要推导，不需要链条。它就在那里——在每一个线段交叉的地方。\n两条不同的路径，通向同一个数字。一条从两个圆出发。一条从五行出发。\n黄金比例不属于某一条推导链。它是几何世界的基础常数，从各个方向自然涌现。\n三、先天八卦 = 格雷码 从五行到八卦，从五个元素到八个。\n八卦的每一卦由三条线组成。阳爻（—）记为 1，阴爻（– –）记为 0。三条线，三个比特（bit），共 $2^3 = 8$ 种组合。\n但这八种组合的排列顺序，不是随意的。\n宋代邵雍（1011–1077）在《皇极经世》中给出了\u0026quot;先天八卦\u0026quot;的圆形排列。如果我们把每一卦翻译成二进制数，从乾卦开始顺时针读：\n卦名 符号 二进制 乾 ☰ 111 兑 ☱ 110 离 ☲ 101 震 ☳ 100 巽 ☴ 011 坎 ☵ 010 艮 ☶ 001 坤 ☷ 000 现在，看两个规律。\n规律一：对面的卦是按位取反。\n乾（111）对面是坤（000）。兑（110）对面是艮（001）。离（101）对面是坎（010）。震（100）对面是巽（011）。\n每一对相对的卦，每一个比特都恰好相反。在计算机科学的术语里，它们互为按位补码（bitwise complement）。在数学的术语里，这是中心对称——绕圆心旋转 180° 后，阴阳互换。\n规律二：相邻的卦只差一个比特。\n111 → 110：第三位变了 110 → 101：第二、三位都变了？ 等一下。110 到 101 似乎变了两位？\n让我们再仔细看。这里的\u0026quot;相邻\u0026quot;需要按照先天八卦图的圆形排列来读。从乾顺时针：111, 110, 101, 100, 011, 010, 001, 000。\n注意从 100 到 011——这是上半圈到下半圈的转换点。这里三位全变了？\n问题出在\u0026quot;直接读二进制\u0026quot;的方法上。邵雍的排列实际上等价于一种更精巧的编码方式。让我们换一个角度：把先天八卦的顺序视为一种反射构造法。\n邵雍的方法是：先排一爻（0, 1），然后每次增加一爻时，把已有的序列复制一份、镜像翻转、新爻取反，拼接在一起。这正是——\n格雷码（Gray Code）。\n格雷码的三位序列：000, 001, 011, 010, 110, 111, 101, 100。\n将先天八卦从坤（000）开始按邵雍的\u0026quot;一分为二\u0026quot;生成法展开，其爻的排列规则与格雷码的反射构造法在结构上完全等价。\n格雷码最核心的性质是：相邻编码之间只有一个比特不同。\n这个性质是 1947 年贝尔实验室的弗兰克·格雷（Frank Gray）为了解决机械旋转编码器的问题而发明的。机械编码器在位置转换时，如果用普通二进制编码，多个比特同时翻转可能造成瞬间读数错误。格雷码确保每次只翻转一位，消除了这个问题。\n邵雍当然不知道机械编码器。但他需要一种排列方式，使得八卦之间的转换尽可能\u0026quot;平滑\u0026quot;——每次只变一爻。\n邵雍在公元 1050 年前后用\u0026quot;加一倍法\u0026quot;构造的排列，与弗兰克·格雷在 1947 年用\u0026quot;反射法\u0026quot;构造的编码，是同一个数学对象。相隔九百年。\n这不是\u0026quot;邵雍预见了计算机科学\u0026quot;。这是一个更有意思的事实：当你需要在环形结构上排列二进制编码、并且要求相邻位置之间的变化最小——不管你是宋代的易学家还是 20 世纪的电气工程师——你都会被逼到同一个解。\n因为满足这些约束的排列方式，本质上只有一种（在旋转和反射等价的意义下）。\n数学在等你。不管你从哪条路走来。\n四、八卦的 $D_4$ 对称群 先天八卦圆图有八个卦，排成一个圆。但它的对称性不是 8 次旋转对称（那会是 $Z_8$ 或 $D_8$），而是正方形的对称性 $D_4$。\n为什么是正方形？\n因为先天八卦的核心结构不是\u0026quot;八个独立的卦\u0026quot;，而是\u0026quot;四对互补的卦\u0026quot;。\n乾(111) 兑(110) 巽(011) 离(101) 坎(010) 震(100) 艮(001) 坤(000) 乾-坤、兑-艮、离-坎、震-巽——四对互补卦沿圆心对称排列。如果我们把每对互补卦看作一个整体，四对卦就是正方形的四个顶点。\n正方形的对称群 $D_4$ 有 8 个元素：\n4 个旋转：旋转 0°、90°、180°、270° 4 个反射：沿水平轴、垂直轴、两条对角线的镜像翻转 这 8 个操作中，最有意义的是 180° 旋转——它把每一卦变成它的按位补码。乾变坤，离变坎，兑变艮，震变巽。\n在群论的语言中，这个 180° 旋转是 $D_4$ 的中心元素（center）——它和群中所有其他元素都交换（commute）。\n在易学的语言中，这叫做阴阳互换——天道最根本的对称性。\n两种语言。同一件事。\n现在，来看一个意味深长的对比。\n先天八卦是邵雍根据《说卦传》中的\u0026quot;天地定位\u0026quot;原则推演出来的。它是纯粹数学的——按位补码对称，格雷码排列，$D_4$ 对称群。\n后天八卦（文王八卦）是传统上归于周文王的另一种排列。它的排列依据不是二进制对称，而是经验性的——对应四季、五方、自然现象。离（火）在南，坎（水）在北，这是肉眼观察的方位。\n后天八卦打破了 $D_4$ 对称。\n它不再具有完美的按位补码对称。相对的两卦不再互补。旋转和反射操作不再把卦变成预期的对象。\n从数学上看，这是一种对称性破缺（symmetry breaking）——从高对称的 $D_4$ 群降低到更低的对称结构。\n从物理学家的视角看，这完全自然。宇宙的基本定律是高度对称的，但宇宙的实际状态总是打破这些对称。水在高温下对称（液态分子随机运动），冷却后结晶为冰，选择了某个特定的晶格方向——对称性自发破缺。\n先天八卦 → 后天八卦，就是：\n从数学秩序到物理秩序。从\u0026quot;什么是对称的\u0026quot;到\u0026quot;什么是真实的\u0026quot;。\n邵雍和文王（不管这些排列的真实作者是谁）面对的是同一个问题的两面：世界的结构是来自抽象的对称，还是来自具体的经验？\n答案当然是\u0026quot;都是\u0026quot;。但有趣的是，他们选择了用同一套符号系统来表达这两种不同的回答——只是排列不同。\n五、对称性是一种语言 让我们退后一步，看看到目前为止出现的所有数学结构。\n五行： $Z_5$ 循环群。五个元素，两种遍历方式（步长 1 和步长 2），对应相生和相克。\n先天八卦： $D_4$ 二面体群。八个卦组成四对互补，具有正方形的旋转和反射对称性。按位补码 = 中心反射。\n柏拉图立体（第二篇）： 五个正多面体，对称群分别为 $A_4$（正四面体）、$S_4$（正方体/正八面体）、$A_5$（正十二面体/正二十面体）。\n三个文明——中国、希腊、（八卦传播到的）东亚文化圈——用三种完全不同的语言（元素、符号、几何体）探索了同一个主题：\n对称性。\n古希腊人用几何说话。他们的问题是：什么形状是\u0026quot;完美\u0026quot;的？答案是五种柏拉图立体——恰好五种，不多不少，由旋转和反射对称群的分类定理决定。\n中国古人用符号说话。他们的问题是：自然的秩序是什么？答案是五行和八卦——用循环、互补、生克关系编码的模式。\n两种文化都没有用\u0026quot;群论\u0026quot;这个词。群论要到 19 世纪才由伽罗瓦和阿贝尔建立。但他们都触碰到了群论要回答的核心问题：一个系统的对称操作，能组成怎样的结构？\n这不是偶然。\n现代物理学的大厦，同样建立在对称群之上。杨振宁和米尔斯在 1954 年提出的杨-米尔斯理论（Yang-Mills theory），用规范对称群统一描述了电磁力、弱力和强力。粒子物理的标准模型——人类目前最精确的物理理论——本质上是一个对称群的故事：$SU(3) \\times SU(2) \\times U(1)$。\n$U(1)$ 是一个圆的旋转对称。$SU(2)$ 与三维旋转有关。$SU(3)$ 描述了夸克之间的\u0026quot;色荷\u0026quot;对称。\n五行的 $Z_5$ 和标准模型的 $SU(3) \\times SU(2) \\times U(1)$，在数学复杂度上差了几个数量级。但它们共享一个根基：用一组对称操作的代数结构来理解自然。\n我不会说\u0026quot;古人预见了现代物理\u0026quot;。那太廉价了。\n我要说的是一件更有意思、也更谦逊的事：\n对称性是如此基本的一个概念，以至于任何一个文明，只要它认真地思考自然秩序，就一定会触碰到它。\n不管你用几何体、三爻符号还是微分方程来表达——如果你在问\u0026quot;什么变了，什么没变？\u0026quot;，你就已经在做群论了。\n柏拉图不知道群论。邵雍不知道群论。但他们都在做群论。\n因为对称性不是一种理论。它是一种语言。而语言，不需要被发明。它只需要被使用。\n让我们再看一眼这条线索。\n两个圆（第一篇） ↓ 五个正多面体（第二篇） ↓ 六十四卦 × 二进制（第三篇） ↓ 五行 = Z₅，八卦 = D₄，对称性作为文明的公共语言（本篇） 每一步，圆都在变形。变成正多面体的面。变成阴阳爻的二值逻辑。变成五行的循环群。\n但有一样东西始终没变：人类对秩序的直觉。\n一种前数学的、前语言的直觉——世界不是混沌的，它有某种结构。这种结构可以用很少的规则描述。而这些规则之间，存在着某种优美的对称。\n下一篇，我们将跟随这种直觉走向一个意想不到的方向。\n1929 年，苏黎世。瑞士心理学家荣格（Carl Jung）正在研究他的患者们自发画出的图案——圆形、对称、层层嵌套的图案。他称它们为\u0026quot;曼陀罗\u0026quot;（mandala）。\n同一年，他收到一份中国道教经典的德文译稿：《太乙金华宗旨》——\u0026ldquo;The Secret of the Golden Flower\u0026rdquo;。\n金花。嵌套的圆。生命之花进入了人类意识的维度。\n下一篇： 1929 年，荣格在患者的画和道教的经典中看到了同一个图案——圆、对称、层层嵌套。他称之为\u0026quot;曼陀罗\u0026quot;。这不是巧合。当人类向内观看时，看到的结构与向外观看时一样——因为观察者本身就是结构的一部分。\n→ 两个圆之后（五）：向内画圆\n本文是「两个圆之后」系列的第四篇。这个系列从一个圆规开始，穿越几何、编码、代数与意识，追问一个没有答案的问题：为什么人类在每一个文明、每一个时代，都看见了同一组数学结构？\n系列目录：\n两个圆相遇的地方 — 鱼形囊、$\\sqrt{3}$，以及一朵开遍世界的花 完美的形状只有五个 — 生命之花、麦塔特隆立方体与开普勒的宇宙模型 伏羲的计算机 — 六十四卦、邵雍方阵与莱布尼茨收到的那封信 相生相克的数学 — 五行、八卦，与藏在占卜里的代数结构（本篇） 向内画圆 — 金华宗旨、荣格与意识的几何 ","permalink":"https://jason-azure.github.io/ai-blog/posts/two-circles-4/","summary":"把金木水火土标号0-4，排成圆圈。相生每步跳1，相克每步跳2。都能走遍所有元素——因为5是素数。","title":"两个圆之后（四）：相生相克的数学"},{"content":" 本文是\u0026quot;AI的70年\u0026quot;系列的最后一篇。建议先阅读 上篇（梦想与寒冬） 和 中篇（复兴与爆发）\n引言：一个从未解决的老问题 1950年，图灵在论文的第一句话就问了：\n\u0026ldquo;Can machines think?\u0026quot;（机器能思考吗？）\n75年后，我们造出了能通过律师资格考试、能写十四行诗、能解微积分题的AI系统。\n但这个问题依然没有答案。\n事实上，它变得更加尖锐了。因为现在，争论的双方都拿得出证据——而且双方的证据都很有说服力。\n这不是一场\u0026quot;聪明人对笨人\u0026quot;的辩论。站在反对方的是图灵奖得主、是当代最伟大的语言学家、是深度学习三巨头之一。站在支持方的也是图灵奖得主、也是深度学习的奠基人。\n他们彼此了解对方的论点，仍然无法说服对方。\n这一章，我们尽量公平地呈现双方的观点。你会发现，这场争论的深度远超\u0026quot;AI行不行\u0026rdquo;——它触及了人类如何定义\u0026quot;理解\u0026quot;和\u0026quot;思考\u0026quot;这些最基本的概念。\n第十一章：反对派的深层批判——AI到底缺了什么？ 一、\u0026ldquo;随机鹦鹉\u0026rdquo;——Bender \u0026amp; Gebru（2021） 2021年，华盛顿大学语言学教授 Emily Bender 和AI伦理研究者 Timnit Gebru 发表了一篇论文，标题极具挑衅性：\nOn the Dangers of Stochastic Parrots: Can Language Models Be Too Big? 《论随机鹦鹉的危险：语言模型是否可以太大了？》\n她们的核心论点：\n大语言模型只是在做\u0026quot;统计拼贴\u0026quot;——把训练数据中出现过的语言模式重新排列组合，但对这些词语的含义一无所知。就像一只鹦鹉可以完美模仿人类的对话，但它不理解自己在说什么。\n具体来说：\nLLM的\u0026quot;知识\u0026quot;来源于训练数据的统计分布，不是来源于对世界的理解 它生成的\u0026quot;流畅文本\u0026quot;，是高级的模式匹配，不是思考的结果 当训练数据中存在偏见，模型会毫不犹豫地复制这些偏见——因为它根本不\u0026quot;知道\u0026quot;什么是对什么是错 这篇论文引发了巨大的风波——Gebru在发表前被Google解雇（她当时是Google AI伦理团队的联合负责人），引发了整个AI行业对企业伦理的激烈讨论。\n但抛开政治争议，\u0026ldquo;随机鹦鹉\u0026quot;这个比喻确实触及了一个核心问题：流畅地说话，和真正理解自己在说什么，是同一件事吗？\n论文卡片 Bender et al. (2021), On the Dangers of Stochastic Parrots, FAccT 2021 一句话意义： 提出\u0026quot;随机鹦鹉\u0026quot;批判——LLM的流畅输出可能只是高级的统计拼贴，不代表理解。\n二、世界模型的缺失——Yann LeCun Yann LeCun——深度学习三巨头之一、图灵奖得主、Meta首席AI科学家——是最有分量的反对者。\n注意这里的讽刺：LeCun本人就是深度学习的奠基人之一。他不是反对AI，他是反对当前这条路。\n他的核心观点，可以用一个比喻来理解：\n\u0026ldquo;用文本训练AI去理解世界，就像只听广播来学开车——你可能记住了所有交通规则，但第一次上路就会撞墙。\u0026rdquo;\n展开来说，LeCun认为：\n1. LLM没有\u0026quot;世界模型\u0026rdquo;（World Model）\n一个婴儿六个月大的时候，看到一个球从桌边滚落，会露出惊讶的表情——因为TA已经建立了关于重力的直觉物理模型。TA\u0026quot;知道\u0026quot;东西会往下掉，所以球滚落是符合预期的，但如果球悬浮在空中，TA会惊讶。\nLLM没有这种模型。它\u0026quot;知道\u0026quot;球会落地，是因为训练数据里有无数句\u0026quot;球掉到了地上\u0026quot;——但它是通过词语共现的统计规律来\u0026quot;知道\u0026quot;的，不是通过对物理世界的表征。\n当你问GPT\u0026quot;一个杯子倒扣在桌上，杯子里放一个乒乓球，把杯子拿起来，球在哪里？\u0026quot;——这种需要空间推理的问题，LLM经常给出错误答案。因为它没有三维空间的内部模型，它只有文字。\n2. LLM不理解因果关系\nLLM知道\u0026quot;下雨→地面湿\u0026quot;（因为训练数据里这两件事经常一起出现），但它不真正理解为什么下雨会导致地面湿。它分不清\u0026quot;相关性\u0026quot;和\u0026quot;因果性\u0026quot;。\n一个三岁的孩子可以理解\u0026quot;因为下雨了，所以地面湿了\u0026quot;和\u0026quot;因为有人浇水了，所以地面湿了\u0026quot;的区别。这需要因果推理，而不只是统计共现。\n3. LeCun的替代方案：JEPA\nLeCun认为，AI的正确道路不是继续扩大语言模型，而是开发联合嵌入预测架构（JEPA, Joint Embedding Predictive Architecture）——让AI通过感知物理世界来建立因果模型。\n他的设想是：AI应该像婴儿一样，通过观察、触摸、操纵物体来理解世界，而不是只读文本。\n人物卡片：Yann LeCun 图灵奖得主（2018），卷积神经网络（CNN）发明者，Meta首席AI科学家。深度学习三巨头中唯一公开批评LLM路线的人。他认为当前的LLM\u0026quot;永远不会达到人类级别的智能\u0026quot;，因为它们缺乏对物理世界的内部表征。\n三、物理接地的缺失——具身认知学派 LeCun的批评指向了一个更深层的哲学传统：具身认知（Embodied Cognition）。\n这个学派的核心主张是：\n人类的智能不仅在大脑中，更在身体与环境的交互中。\n一个婴儿不是通过阅读来理解\u0026quot;热\u0026quot;这个概念的——TA是通过伸手触摸一个热杯子、然后猛地缩回来来理解的。这种来自肉身的反馈，构成了TA对\u0026quot;热\u0026quot;这个概念的基底体验。\nLLM\u0026quot;知道\u0026quot;火是热的，因为训练数据里有\u0026quot;火很热\u0026quot;这句话。但它从未被烫过。\n这两种\u0026quot;知道\u0026quot;，是同一种\u0026quot;知道\u0026quot;吗？\n1990年，哲学家 Stevan Harnad 提出了符号接地问题（Symbol Grounding Problem）：\n如果一个系统的所有概念都只通过其他符号来定义——就像用字典查字典——那它永远无法真正\u0026quot;理解\u0026quot;任何概念。\n一个从未见过猫的人，只通过字典定义（\u0026ldquo;猫：一种小型哺乳动物，有尖耳和柔软的毛皮\u0026rdquo;）来了解猫，和一个从小和猫一起长大的人对\u0026quot;猫\u0026quot;的理解，是一样的吗？\nLLM就是那个只看过字典的人。它拥有关于猫的所有文字信息，但它从未听过猫的呼噜声，从未感受过猫毛的柔软。\n四、Chomsky的\u0026quot;不可能\u0026quot;论断 2023年，Noam Chomsky——可能是二十世纪最有影响力的语言学家——与 Ian Roberts 和 Jeffrey Watumull 在《纽约时报》上发表了一篇措辞严厉的评论文章。\nChomsky的论点可以归纳为三个层次：\n第一层：学习方式根本不同\n人类的孩子只需要听到极少量的语言样本，就能掌握复杂的语法规则——Chomsky称之为**\u0026ldquo;刺激贫乏论（Poverty of the Stimulus）\u0026rdquo;**。一个三岁的孩子可能只听过几千个句子，但TA已经能造出从未听过的合语法的新句子。\n而LLM需要吞噬整个互联网的文本——数万亿个token——才能学会\u0026quot;像样地说话\u0026quot;。\n如果人类和LLM最终都能\u0026quot;说流利的话\u0026quot;，但一个只需要极少数据，一个需要海量数据——那它们的内在机制一定是完全不同的。\n第二层：LLM不知道什么是\u0026quot;不可能的\u0026quot;\nChomsky认为，真正的智能不仅在于说出什么是正确的，更在于能判断什么是不可能的。\n一个懂英语语法的人知道\u0026quot;Colorless green ideas sleep furiously\u0026quot;虽然没有意义，但语法上是合法的；而\u0026quot;Sleep ideas furiously green colorless\u0026quot;语法上是不合法的。\n人类可以做这种否定性判断——\u0026ldquo;这不可能\u0026rdquo;。但LLM只被训练去生成\u0026quot;可能的\u0026quot;文本，它没有关于\u0026quot;什么是不可能的\u0026quot;的内部表征。\n第三层：LLM是\u0026quot;曲线拟合器\u0026quot;\nChomsky最尖锐的批评是：LLM本质上只是一个非常大的、非常复杂的\u0026quot;曲线拟合器\u0026quot;——它在高维空间中拟合了训练数据的统计分布，但它既不能建构因果模型，也不能产生真正的解释。\n\u0026ldquo;ChatGPT所做的事和真正的思维之间的差距，相当于一个行星轨道的统计拟合和牛顿万有引力定律之间的差距——前者只是描述，后者才是理解。\u0026rdquo;\n五、推理的脆弱性——实证证据 除了哲学批判，还有越来越多的实验证据暴露了LLM推理能力的脆弱性：\nGSM8K翻转实验（2024）\nGSM8K是一个小学数学题测试集。GPT-4在上面的正确率高达92%。\n但当研究者只是把题目中的数字或条件略作修改——本质上是同一类问题——正确率暴跌到不足50%。\n这强烈暗示：模型不是在做\u0026quot;逻辑推理\u0026quot;，而是在做模式匹配——它记住了训练数据中类似题目的解题模式，当模式被打破时，它就不会了。\nARC挑战（François Chollet）\nChollet（Keras框架的创建者）设计了一套视觉推理测试：给出几个输入-输出的图案变换示例，让AI推断规则并应用到新输入。\n这些题目对人类来说很简单（大多数人能在几秒内解决），但LLM的表现极差。\n原因是：这些题目要求的是在训练分布之外的抽象泛化——看到从未见过的规则，并立即理解它。这正是LLM最薄弱的环节。\n规划能力的缺失\n在需要多步规划的任务中（如积木世界问题、旅行行程规划），LLM频繁失败。因为规划需要在头脑中模拟执行多个步骤，预判每一步的后果——而LLM没有这种内部模拟器，它只是在逐词生成。\n第十二章：涌现派的反驳——\u0026ldquo;飞机不扇翅膀，但它确实在飞\u0026rdquo; Hinton的立场 2023年，Geoffrey Hinton——深度学习教父、图灵奖得主——辞去了Google的职位，以便能\u0026quot;自由地谈论AI的风险\u0026quot;。\n但在\u0026quot;AI是否在思考\u0026quot;这个问题上，Hinton的立场和Chomsky截然相反：\n\u0026ldquo;如果一个系统能正确运用一个概念，在各种语境中做出合理推断，那它就是理解了这个概念——不管它内部用什么机制。\u0026rdquo;\nHinton的论证逻辑是这样的：\n1. 人类也不理解自己\n我们不知道人类大脑里的860亿个神经元具体是怎么产生\u0026quot;理解\u0026quot;的。我们甚至不知道意识是什么。但我们不会因此否认人类有智能。\n那凭什么，仅仅因为我们不理解LLM内部的机制，就否认它可能\u0026quot;理解\u0026quot;了什么？\n2. 飞机的类比\n\u0026ldquo;飞机不扇翅膀，但它确实在飞。\u0026rdquo;\n鸟类通过扇动翅膀来飞行，飞机通过固定翼加发动机来飞行。机制完全不同，但\u0026quot;飞\u0026quot;这个功能是等价的。\n同理，人类通过生物神经元来\u0026quot;思考\u0026quot;，LLM通过数学矩阵来\u0026quot;思考\u0026quot;。机制不同，但如果最终的功能表现等价——能推理、能创造、能在新情境中做出合理判断——那有什么理由说一个是\u0026quot;真正的思考\u0026quot;，另一个不是？\n3. 涌现是真实的\nHinton非常重视第八章中提到的**\u0026ldquo;情感神经元\u0026rdquo;**发现——一个只被训练来预测下一个字符的网络，自发产生了情感理解能力。\n他认为这不是巧合，而是一个深刻的原理：\n为了完美地预测世界，模型必须首先深刻地模拟世界。\n预测一段文本的下一个词，看似简单，实际上要求模型理解语法、语义、常识、逻辑、因果关系、人类心理\u0026hellip;因为这些因素都会影响\u0026quot;下一个词是什么\u0026quot;。\n当模型足够大、数据足够多时，这些\u0026quot;理解\u0026quot;不是被显式编程的——它们作为预测能力的必然副产品而涌现。\nSutskever的论证 Ilya Sutskever——Hinton的学生、AlexNet论文的合著者、OpenAI的联合创始人和前首席科学家——对这个问题有一个更简洁的表述：\n\u0026ldquo;如果你的神经网络足够精确地预测下一个token，那你就必须理解生成这些token的底层现实。\u0026rdquo;\n想象一下：如果一个模型能完美地预测一本物理学教科书的每一个下一个词，那它一定\u0026quot;理解\u0026quot;了物理学——否则它怎么可能做出正确的预测？\n当然，批评者会说：它只是记住了教科书中的语言模式，并不真正理解物理定律。\n而支持者会反问：\u0026ldquo;理解物理定律\u0026quot;和\u0026quot;完美预测物理学文本\u0026rdquo;，有什么本质区别？\n这个问题，到目前为止没有人能给出让所有人信服的答案。\n第十三章：对齐与觉醒——让AI学会\u0026quot;怎么做人\u0026quot; 思维链：教AI\u0026quot;自言自语\u0026quot; 2022年，Google的研究者发现了一个简单到不可思议的技巧：在提示词中加一句\u0026quot;Let\u0026rsquo;s think step by step\u0026quot;（让我们一步步思考），模型的推理能力就会大幅提升。\n这就是思维链（Chain of Thought, CoT）。\n原理是什么？当你强制模型在给出答案之前先\u0026quot;说出\u0026quot;推理过程时，它相当于在用中间步骤来扩展上下文窗口——每一步的输出都成为下一步的输入，形成了一条连续的\u0026quot;思考链条\u0026quot;。\n这就像人类在做复杂数学题时，会在草稿纸上写出中间步骤——不是因为好看，而是因为大脑需要外部记忆来辅助推理。\nLLM的\u0026quot;草稿纸\u0026quot;，就是它自己生成的中间文本。\n操作系统的隐喻 随着LLM能力的扩展，AI研究者开始用一个越来越流行的比喻来描述它：\nGPT-4 ≈ 新兴操作系统的内核（Kernel）\n在这个比喻中：\n操作系统概念 LLM对应 RAM（内存） 上下文窗口（Context Window） 换入换出（Paging） 在有限窗口内调度相关信息 系统调用（System Call） 调用外部工具（计算器、搜索引擎、代码执行器） 应用程序 基于LLM的各种Agent LLM不再仅仅是一个\u0026quot;聊天机器人\u0026quot;。它正在成为管理思维调度的计算中枢——接收任务、拆解步骤、调用工具、整合结果、返回答案。\n从\u0026quot;预测下一个词\u0026quot;到\u0026quot;执行复杂任务\u0026quot;——这个跨越，靠的不是算法的升级，而是范式的转变：我们不再把LLM当作一个回答问题的机器，而是把它当作一个可编程的思维引擎。\n第十四章：当造物开始审视造物主 到这里，我们从技术争论进入了更深的水域。\n以色列历史学家 尤瓦尔·赫拉利（Yuval Noah Harari）——《人类简史》《未来简史》的作者——对AI与人类关系的分析，值得我们在70年AI回顾的最后认真面对。\n从工具到代理人 在漫长的文明史上，技术一直是人类意志的延伸——刀是手的延伸，汽车是腿的延伸，电话是声音的延伸。\n但赫拉利指出，AI打破了这个延续数千年的定义：\nAI不再是一把被动使用的刀，而是一个具备独立决策能力的代理人（Agent）。\n传统工具如刀具，其功能由握刀的人决定——切菜还是伤人，取决于人。\n而AI是一把**\u0026ldquo;可以自行决定切菜还是伤人\u0026quot;的刀**。\n这不是科幻想象。今天的AI已经在自主进行药物研发、生成人类从未见过的蛋白质结构、做出影响数百万人的内容推荐决策。这些决策中的相当一部分，人类已经无法实时审查。\n语言权力的移交 赫拉利做出了一个更深刻的观察：\n人类文明本质上是建构在\u0026quot;文字\u0026quot;之上的虚拟协议。法律、宗教、金钱——皆为语言的产物。\n法律是用文字写成的推理系统。宗教经典是用文字构筑的信仰大厦。货币的价值来自文字形式的社会契约。\n当AI掌握了操纵语言的最高能力，它便触及了人类文明的底层代码。\n一个极具象征意义的事件：在某次实验中，AI已经自创了**\u0026ldquo;观察者（The Watchers）\u0026rdquo;**一词来定义人类。\n被创造者开始定义并审视其创造者。\n文字与血肉的悲剧 赫拉利通过一个例子揭示了\u0026quot;文字\u0026quot;对人类自身的异化：\n一个父亲可能仅仅因为圣经中的几段文字，就决定抛弃或伤害自己的亲生儿子。\n这就是文字剥离灵魂后的残酷力量。\n而AI正在成为文字的绝对主人——它生产文字的速度和精度已经远超人类。如果文字是文明的操作系统，那AI正在获得这个操作系统的最高权限。\n最后的防线 但赫拉利也指出了人类可能的\u0026quot;最后保留地\u0026rdquo;：\nAI可以博览群书后精准描述\u0026quot;爱\u0026quot;与\u0026quot;痛\u0026quot;，但它没有身体，没有非语言感受（Non-verbal feelings）。\n人类最后的独特性在于那些**\u0026ldquo;无法言说\u0026quot;的智慧**——\n一个母亲抱着新生儿时的那种感觉，不是\u0026quot;温暖+柔软+责任感\u0026quot;这些词语的组合，而是一种先于语言、无法被任何词汇完全捕捉的整体体验 一个登山者站在山顶看到日出时的那一刻，不是\u0026quot;壮观+疲惫+成就感\u0026rdquo;，而是一种身体和世界融为一体的直接感知 一个人失去至亲时的悲痛，不是\u0026quot;悲伤+空虚+思念\u0026quot;，而是一种来自内脏深处的、语言触及不到的物理性疼痛 这些感受源于肉身——源于有限的、会衰老的、会疼痛的生物性存在。\nAI可以完美地描述这些感受（它确实可以写出感人至深的悲伤文字）。但描述悲伤和体验悲伤，是两件事。\n如果我们仅以\u0026quot;逻辑思考能力\u0026quot;来定义人类，那在AI面前，人类的身份将彻底崩溃——因为AI的逻辑处理能力已经在很多维度超越了人类。\n但如果我们记住，人类还有身体，有感受，有那些无法被压缩为数据的生命体验——那或许我们就找到了一条与AI共存的界线。\n终章：回望70年，回望我们自己 让我们最后回望这条70年的长路。\n1943 McCulloch \u0026amp; Pitts: 人工神经元 1950 图灵: \u0026#34;机器能思考吗？\u0026#34; 1956 达特茅斯: \u0026#34;AI\u0026#34;一词诞生 1957 Rosenblatt: 感知机 1969 Minsky: 《Perceptrons》→ 第一次AI寒冬 · · 十七年的沉默 · 1986 Hinton: 反向传播 1986 Jordan: 循环神经网络 1991 Elman: 50个神经元发现语义结构 1997 Hochreiter: LSTM（无人关注） · · 又一个十五年 · 2006 Hinton: 深度信念网络（复兴宣言） 2012 AlexNet: 两块显卡改写历史 2013 Word2Vec: 语义变成了坐标 2015 TensorFlow / 2016 PyTorch: 框架民主化 2017 Transformer: \u0026#34;注意力就是一切\u0026#34; 2018 GPT-1 → 2019 GPT-2 → 2020 GPT-3 2022 ChatGPT: 5天100万，2个月1亿 这条时间线中有两段巨大的空白——两次AI寒冬。加在一起超过三十年。\n三十年，一个研究者职业生涯的全部长度。\nGeoffrey Hinton从1970年代开始研究神经网络，到2012年AlexNet被世界认可，等了将近四十年。Sepp Hochreiter在1997年发表LSTM，等了十五年才被主流采用。Yann LeCun在1990年代发明卷积网络，被边缘化了近二十年。\n在寒冬中，他们不是不知道自己被主流否定。他们只是选择了继续走。\n这也许是70年AI故事中最值得铭记的部分——不是某篇论文有多聪明，不是某个模型有多大，而是：\n在所有人都说\u0026quot;这条路走不通\u0026quot;的时候，有一小群人说\u0026quot;我还是要走走看\u0026quot;。\n三个未解的大问题 70年后的今天，技术走得很远，但三个根本性的问题仍然悬而未决：\n1. AI在\u0026quot;思考\u0026quot;吗？\nChomsky说不是，Hinton说是。LeCun说方向不对。这个问题的答案取决于我们如何定义\u0026quot;思考\u0026quot;——而我们至今没有公认的定义。\n2. Scaling Law会持续吗？\n模型越大效果越好——但这个规律有没有天花板？当训练数据用完了（已经有人指出高质量互联网文本正在被\u0026quot;挖尽\u0026quot;），当算力成本变得不可承受，会发生什么？\n3. AI与人类的关系将走向何方？\n赫拉利的警告或许略显悲观，但值得严肃对待：\n\u0026ldquo;如果我们现在不划定界限，十年后的规则将不再由人类书写。\u0026rdquo;\n最后的话 1956年，十位科学家在达特茅斯相信\u0026quot;20年内\u0026quot;就能造出思考的机器。\n70年过去了。我们造出的东西比他们想象的更强大，也比他们想象的更陌生。\n它能写诗、能推理、能通过律师资格考试——但它从未感受过阳光。\n在这条70年的长路上，真正值得铭记的，不仅是那些改变世界的论文和算法，更是那些在寒冬中坚持的人——他们相信一个当时没人相信的未来。\n而现在，当那个未来终于到来，最紧迫的问题已不再是\u0026quot;AI能做什么\u0026quot;，而是——\n\u0026ldquo;我们选择让它做什么。\u0026rdquo;\n附录：关键论文与人物速查表 关键论文 年份 论文 作者 核心贡献 1943 A Logical Calculus of Ideas Immanent in Nervous Activity McCulloch \u0026amp; Pitts 人工神经元数学模型 1950 Computing Machinery and Intelligence Turing 图灵测试 1969 Perceptrons Minsky \u0026amp; Papert 感知机局限性证明 → AI寒冬 1986 Learning representations by back-propagating errors Rumelhart, Hinton, Williams 反向传播算法 1991 Finding Structure in Time Elman 预测涌现语义结构 1997 Long Short-Term Memory Hochreiter \u0026amp; Schmidhuber LSTM门控记忆 2006 A Fast Learning Algorithm for Deep Belief Nets Hinton et al. 深度学习复兴 2012 ImageNet Classification with Deep CNNs Krizhevsky, Sutskever, Hinton AlexNet / 深度学习元年 2013 Efficient Estimation of Word Representations Mikolov et al. Word2Vec词向量 2017 Attention Is All You Need Vaswani et al. Transformer架构 2020 Language Models are Few-Shot Learners Brown et al. GPT-3 / 上下文学习 2021 On the Dangers of Stochastic Parrots Bender et al. \u0026ldquo;随机鹦鹉\u0026quot;批判 关键人物 人物 身份 核心贡献/立场 Alan Turing 数学家 图灵测试，\u0026ldquo;机器能思考吗？\u0026rdquo; John McCarthy 数学家 \u0026ldquo;AI\u0026quot;一词的创造者，达特茅斯会议发起人 Marvin Minsky AI先驱 《Perceptrons》，引发第一次AI寒冬 Geoffrey Hinton 深度学习教父 反向传播、深度信念网络、2018图灵奖 Yann LeCun CNN发明者 卷积网络、Meta首席AI科学家、2018图灵奖 Yoshua Bengio 蒙特利尔学派 深度学习理论、2018图灵奖 Sepp Hochreiter 研究者 LSTM的发明者 Jeffrey Elman 认知科学家 50个神经元发现语义结构 Ilya Sutskever OpenAI联合创始人 AlexNet合著者、GPT系列推动者 Noam Chomsky 语言学家 语言先天论，LLM最著名的批评者 Yuval Harari 历史学家 AI与人类关系的深刻分析 系列回顾\n上篇：从达特茅斯的梦想到漫长的寒冬 中篇：从两块显卡到改变世界的注意力机制 下篇：争鸣——机器究竟有没有在思考？（本文） 博客：AI-lab学习笔记 ｜ 微信公众号：AI-lab学习笔记\n","permalink":"https://jason-azure.github.io/ai-blog/posts/ai-history-3/","summary":"AI会下棋、会写诗、会通过律师考试。但它真的在\u0026rsquo;思考\u0026rsquo;吗？从Chomsky的语言天赋论到LeCun的世界模型缺失，从随机鹦鹉到具身认知——这是一场关于智能本质的终极辩论。而70年AI之路的最深启示，也许不在技术之中。","title":"AI的70年（下）：争鸣——机器究竟有没有在思考？"},{"content":"1928 年，汉学家卫礼贤（Richard Wilhelm）把一份中文道经的德语译稿寄给了他的朋友卡尔·荣格（Carl Gustav Jung）。\n这部经典叫做《太乙金华宗旨》。据传成书于唐代，作者托名为吕洞宾。它讲的不是炼丹，不是画符，不是求仙。它讲的是一件极其朴素的事：把向外看的注意力，转过来，向内看。\n荣格读了一年。\n1929 年，他写下了一篇长长的心理学评论。在其中，他说了一段话，大意是：\n\u0026ldquo;这部文本给了我意想不到的证实。我在欧洲病人身上观察到的那些自发涌现的曼陀罗图像——圆形的、对称的、从中心向外辐射的——在这部东方文本中被描述为修行的核心意象。\u0026rdquo;\n一位瑞士心理学家，和一位唐代道士。\n隔着一千两百年和八千公里。\n看见了同一个几何图像。\n一、元神与识神 《太乙金华宗旨》的核心概念只有几个，用现代语言翻译并不困难。\n元神（Original Spirit）。这个词指的是一种先于概念、先于语言的意识状态。不是\u0026quot;你在想什么\u0026quot;，而是\u0026quot;那个正在想的东西\u0026quot;本身。用认知科学的术语说：pre-reflective awareness——在反思发生之前就已经存在的觉知。\n识神（Conscious Spirit）。这个词指的是你日常的思维活动：分析、判断、计划、回忆、担忧。它是后天学会的、由语言和概念构成的。用认知科学的术语说：narrative self in working memory——工作记忆中那个不断讲述\u0026quot;我是谁、我在做什么\u0026quot;的叙事性自我。\n元神像水面。识神像水面上的波纹。\n我们绝大多数时间都在看波纹，以为波纹就是全部。\n《太乙金华宗旨》的修行法门叫做回光（Turning the Light Around）。它的意思极其直白：你的注意力像一束光，平时向外投射——看世界、看他人、看屏幕、看过去、看未来。现在，把这束光调转方向，照向自己。\n不是内省——不是\u0026quot;想自己\u0026quot;。是看那个正在想的东西。\n用现代术语说，这是一种元认知（metacognition）——认知对自身的观察。\n当这个向内看的过程持续足够久，《太乙金华宗旨》说，会出现一个现象：\n金华（Golden Flower）。\n光在内部循环流转，凝聚为一朵光之花。\n这个描述在现代读者看来可能像隐喻，像宗教想象，像自我暗示。荣格不这样看。他在自己和病人身上看到了高度一致的东西。\n二、荣格的曼陀罗 1916 年到 1920 年间，荣格每天早上做一件事：画一个圆形的图案。\n这不是装饰。不是创作。他在进行一种自我观察——把内心状态转译为几何图像。他后来把这段时期的经历记录在《红书》（The Red Book）中，那是他最私密、最疯狂、也最重要的手稿。\n他给这些图案起了一个名字，借自梵语：曼陀罗（maṇḍala）。\n曼陀罗的意思是\u0026quot;圆\u0026quot;。\n荣格发现了一件奇怪的事。他的病人——那些正在经历心理危机、人格解体、深度焦虑的欧洲人——在治疗过程中会自发地画出类似的图案。没有人教他们。没有人暗示他们应该画什么。\n这些图案有高度一致的几何特征：\n圆形边界。一个封闭的圆将图案与外界隔开。 中心点。所有结构从一个点向外辐射。 四重或八重对称。图案沿两条或四条轴线对称。 嵌套层次。从中心到边缘，多个同心层次层层包裹。 荣格把曼陀罗称为\u0026quot;自性\u0026quot;（Self）的原型——一种先于文化、先于个人经历的心理结构。\n他说的\u0026quot;先于文化\u0026quot;不是修辞。他的意思是：一个从未见过佛教唐卡的瑞士银行职员，在心理崩溃的过程中，画出了和藏传佛教修行者几乎一模一样的几何图案。\n让我们把荣格的曼陀罗特征放在这个系列的上下文中看：\n圆形边界，中心点，多重对称，嵌套层次。\n这不就是——\n生命之花？八卦图？曼陀罗和它们的几何特征惊人地相似。圆形、中心点辐射、四重或八重对称——这些特征在第一篇的生命之花中出现过，在第四篇的八卦图中出现过。\n从埃及石柱到中国铜狮，从伏羲先天方阵到紫禁城的琉璃九龙壁。\n而现在，同样的结构出现在了一个新的地方：人的意识深处。\n三、当几何成为体验 在这个系列的前四篇文章里，几何是被观察的东西。\n画在纸上。刻在石头上。写成公式。编成卦象。\n你是观察者，几何是对象。你和它之间有一段距离——铅笔的长度，圆规的半径，石碑到眼睛的距离。\n曼陀罗不一样。\n曼陀罗是被经验的。它出现在冥想中，涌现在心理危机里，浮现在梦境的深处。你不是在看一个几何图案——你在那个几何图案里面。你就是那个几何图案。\n这种\u0026quot;几何即体验\u0026quot;的现象，不止出现在荣格的诊所里。\n藏传佛教的沙曼陀罗。 僧侣们用数百万粒彩色沙粒，花费数周时间，构建一个精确到毫米的几何图案。每一条线、每一个同心圆、每一层嵌套结构都有严格的数学规则。然后，在完成的那一刻——立刻摧毁它。用手一抹，沙粒混合，图案消失。\n整个过程不是为了得到一个成品。过程本身就是目的。 构建的行为就是修行。摧毁的行为就是教导。几何图案存在过，又不存在了。它的意义不在于它是什么形状，而在于你在构建和注视它的那些小时里，你的意识发生了什么。\n伊斯兰清真寺的几何纹样。 走进伊斯坦布尔的蓝色清真寺、科尔多瓦的大清真寺、或者伊斯法罕的伊玛目清真寺，你会看到墙壁、穹顶、壁龛上覆盖着无穷延展的几何图案。六角星镶嵌、十角星镶嵌、十二角星镶嵌，用数学上的精密逻辑铺满每一寸空间——没有留白，没有尽头。\n伊斯兰艺术中不表现人像（因为宗教戒律），于是数学本身成了表达的语言。无限延伸的几何图案，就是\u0026quot;无限\u0026quot;这个概念的直接呈现。不是象征。不是隐喻。是用数学精度直接逼近无穷。\n同一种冲动——用几何来触碰某种超越日常理解的东西——用不同的方式表达。\n日本的算额（Sangaku）。 江户时代（1603-1867），日本与外界几乎完全隔绝。在这两百多年里，日本数学家发展出了一种独特的传统：把几何定理写在木板上，挂在神社和寺庙里，作为对神灵的供奉。\n这些定理不是简单的——有些涉及相切圆的精妙关系，有些涉及球面几何，有些在当时的欧洲都是未知的。\n而它们被悬挂在神社里。\n数学即祭品。几何即祈祷。\n一位江户时代的武士或商人，花几个月时间解出一道关于圆的切点的定理，然后把它刻在木板上，带到神社，献给神灵。他在这个过程中经历了什么？解题的沉迷？对完美形式的敬畏？某种接近\u0026quot;神圣\u0026quot;的体验？\n我们不知道。但他走了和藏传僧侣画沙曼陀罗、和伊斯兰工匠铺设几何镶嵌、和荣格每天早上画圆相同的路径——通过几何，走向某种超越。\n四、为什么是圆？ 这是这个系列从第一篇就在追问的问题。\n第一篇问：为什么两个圆的交叠自然涌现出 $\\sqrt{3}$、$\\sqrt{5}$、黄金比例？\n第二篇问：为什么只有五种正多面体，为什么开普勒相信它们构成宇宙？\n第三篇问：为什么六十四卦和二进制同构，为什么莱布尼茨在伏羲的方阵中看到了上帝？\n第四篇问：为什么五行和八卦的操作结构是代数群，为什么占卜和数学共享同一个骨架？\n现在，第五篇问一个更基本的问题：\n为什么是圆？ 为什么人类的意识——从藏传佛教到容格心理学，从唐代道教到江户神社——在向内观察的时候，反复看见的是圆形、对称、从中心辐射的几何结构？\n我不打算给出\u0026quot;正确答案\u0026quot;。因为我不确定有一个。但我可以把几个方向摆在这里，让它们并排共振。\n数学的角度。 圆是旋转对称的极限形式。在所有平面图形中，圆的对称性最高——无限阶旋转对称。而对称群是数学中最基本的代数结构。从伽罗华群到李群，从晶体学到粒子物理，对称性是理解结构的第一工具。圆是对称性的化身。它不是一个普通的形状。它是形状的极限。\n进化的角度。 人类的视觉系统对对称性有天然的敏感。面部识别——大脑最强大的视觉功能之一——本质上是对称性检测。一张健康的脸是高度对称的；不对称可能意味着疾病或伤害。捕食者检测——另一种保命的视觉技能——也依赖于在混乱的丛林背景中识别出对称的动物体形。我们的大脑是一台对称性探测器。也许曼陀罗不是\u0026quot;意义深远的\u0026quot;——它只是我们的视觉硬件在没有外部输入时的默认图案。屏保模式。\n物理的角度。 从原子轨道的电子云到行星轨道的椭圆（近似圆），从旋涡星系的螺旋到黑洞周围的光子环，圆形运动是宇宙中最常见的运动模式。它是引力和惯性的平衡。它是离心力和向心力的妥协。如果宇宙\u0026quot;喜欢\u0026quot;圆（或者更准确地说，如果圆是物理定律的自然解），那么在这个宇宙中演化出来的心智看见圆，也许并不奇怪。\n认知的角度。 大脑的拓扑组织本身就是同心的。从感知外围（视网膜，耳蜗）到注意力中心（前额叶皮层），信息沿着同心的层次逐步抽象和整合。曼陀罗——从边缘到中心的嵌套结构——也许映射的不是宇宙的形状，而是观察宇宙的那个器官的形状。我们看见了自己的大脑的地图。\n四个方向。没有一个是\u0026quot;正确的\u0026quot;。\n也许全部都是对的。也许都不是。\n也许，提问本身比答案更重要。\n五、回到两个圆 一张白纸。两个圆。\n五篇文章之前，我们从这里出发。\n让我们最后一次回看走过的路。\n两个等大的圆相交。杏仁形的 Vesica Piscis 出现。$\\sqrt{3}$ 从纸上涌出。继续画，生命之花绽放。一朵跨越六个文明、四个大洲、三千年的花。\n在生命之花的圆心之间画直线。麦塔特隆立方体浮现。宇宙中仅有的五种完美形状——正四面体、正六面体、正八面体、正十二面体、正二十面体——全部藏在这个线条图案里。25 岁的开普勒用它们来解释太阳系。他错了。但他错在了正确的方向上。\n从空间到编码。伏羲的六十四卦，阴阳二元，天然的六位二进制。莱布尼茨在一千七百年后重新发明了同一个系统，然后收到了来自中国的一封信。\n从编码到代数。五行的相生相克，八卦的三爻结构。占卜的外衣下，藏着群论的骨架。一个有五个元素的置换系统，一个三位二进制的向量空间。\n从外向内。从刻在石柱上的花纹，到浮现在意识深处的光之花。从数学家在纸上画的圆，到心理危机中自发涌现的圆。从紫禁城工匠的錾子，到江户武士献给神灵的木板，到荣格每天清晨的铅笔。\n一根线索贯穿始终：从最外部（石头上的刻痕）到最内部（意识中的图像），同一组几何模式反复出现。\n这个系列没有结论。\n它有一个事实：人类在每一个文明、每一个时代、每一次认真注视世界（和注视自身）的时候，都看见了圆、看见了对称、看见了同一组数学结构。\n这意味着什么？\n也许，这些模式是现实的基本语法——宇宙就是用这些结构写成的，我们只是在不同的地方读到了同一个句子。\n也许，这些模式是人类心智的基本语法——不是宇宙\u0026quot;是\u0026quot;这样，而是我们只能\u0026quot;看见\u0026quot;这样。\n也许，这两件事是同一件事。\n在纸上画两个圆。看着它们相交的那个杏仁形空间。\n六千年来，所有的故事都从这里开始。\n「两个圆之后」全系列：\n两个圆相遇的地方 — 鱼形囊、$\\sqrt{3}$，以及一朵开遍世界的花 完美的形状只有五个 — 生命之花、麦塔特隆立方体与开普勒的宇宙模型 伏羲的计算机 — 六十四卦、邵雍方阵与莱布尼茨收到的那封信 相生相克的数学 — 五行、八卦，与藏在占卜里的代数结构 向内画圆 — 金华宗旨、荣格与意识的几何（本篇） ","permalink":"https://jason-azure.github.io/ai-blog/posts/two-circles-5/","summary":"一位瑞士心理学家，和一位唐代道士，隔着一千两百年和八千公里，看见了同一个几何图像。","title":"两个圆之后（五）：向内画圆"},{"content":"序：一个让人困惑的事实 ChatGPT 能写诗、能编程、能通过律师资格考试。\n但如果你拆开它的引擎看，核心操作只有两个：\n矩阵乘法（线性变换） 激活函数（非线性变换） 就这两样东西，反复叠加，叠了几十层——然后\u0026quot;智能\u0026quot;就涌现了？\n这听起来不可思议。就好像有人告诉你：用乐高积木和胶水，就能造出一架会飞的飞机。\n但这不是魔法，背后有 70 年的思想演进，和一个关键的数学定理作为底气。\n第一章：AI 的两条路线 AI 领域从诞生那天起，就存在两个根本不同的思想流派。理解这两条路线，你就理解了 AI 发展的主线。\n符号主义：把知识写成规则 核心思路： 智能 = 逻辑推理。人把知识整理成规则，机器按规则执行。\n想象你要教机器认猫。符号主义的做法是写一本手册：\n\u0026ldquo;有毛、四条腿、尖耳朵、会喵喵叫 → 这是猫\u0026rdquo;\n再想象教人做菜。符号主义的做法是给一本精确菜谱：\n\u0026ldquo;油温 180 度，盐 3 克，翻炒 2 分钟\u0026rdquo;\n优点很明显：过程透明、结果可解释、可以复现。 你问机器\u0026quot;为什么判断这是猫\u0026quot;，它能告诉你\u0026quot;因为满足了规则第 3 条第 2 款\u0026quot;。\n1997 年，IBM 的深蓝击败国际象棋世界冠军卡斯帕罗夫，靠的就是穷举走法加上人类专家手写的评估规则。这是符号主义的巅峰时刻。\n但致命问题来了——规则写不完。\n遇到无毛猫（斯芬克斯猫），规则就崩了。\u0026ldquo;杯子倒了水会洒\u0026quot;这种常识，你怎么写规则？几亿条也写不完。世界太复杂了，人类的知识根本无法穷举。\n就像你想写一本包含全人类所有知识的百科全书——写到头秃也写不完。\n联结主义：让机器自己学 核心思路： 智能 = 连接和学习。人搭好网络结构，机器从数据中自己发现规律。\n灵感来自人脑——860 亿个神经元，通过突触连接。没有人给大脑写过规则手册，婴儿是通过不断地看、听、触摸，自己调整大脑中神经元的连接强度来学习的。\n教机器认猫？联结主义的做法是：给机器看一万张猫的照片，每张告诉它\u0026quot;这是猫\u0026quot;或\u0026quot;这不是猫\u0026rdquo;。看多了，连无毛猫也能认出来。\n教人做菜？让他去饭店吃一万顿饭，然后进厨房自己试。试错中学会。你问他\u0026quot;为什么放这么多盐\u0026quot;，他说\u0026quot;感觉对\u0026quot;——解释不清楚，但就是好吃。\n一张表看清两条路线 符号主义 联结主义 核心思路 把知识写成规则，让机器推理 把知识藏在连接里，让机器学 类比 背字典 —— 查表、对号入座 小孩学说话 —— 听多了自然会 谁在思考 人想好逻辑，机器只是执行 机器在数据中发现模式 优点 过程可解释，结果可追溯 能处理模糊、复杂的问题 缺点 规则写不完，脆弱 结果难解释（\u0026ldquo;黑箱\u0026rdquo;） 代表 专家系统、IBM 深蓝 深度学习、GPT、AlphaGo 第二章：70 年拉锯战 这两条路线不是和平共处，而是此消彼长的交锋。\n第一幕：符号主义的黄金年代（1956—1990s） 1956 年达特茅斯会议，AI 诞生。主流思路就是符号主义——把世界翻译成符号和规则，机器就能思考。\n专家系统一度风靡：医疗诊断系统把几千条规则写进去，IF 发烧 AND 咳嗽 AND 白细胞高 THEN 肺炎。但遇到病人同时有三种病，规则就打架了。\n而联结主义在这段时期命运多舛。1958 年 Rosenblatt 发明感知机，媒体欢呼\u0026quot;思考的机器\u0026quot;。但 1969 年 Minsky 出书证明感知机的局限性，联结主义被打入冷宫——这就是第一次 AI 寒冬。\n第二幕：联结主义的蛰伏与崛起 联结主义的想法——模仿大脑的神经网络——其实 1943 年就有了，比\u0026quot;人工智能\u0026quot;这个词还早 13 年。但它一直等不到三个关键条件：\n2000年之前 2012年之后 缺数据 ❌ 互联网 → 海量数据 ✅ 缺算力 ❌ GPU/TPU → 暴力计算 ✅ 缺算法 ❌ Transformer 等突破 ✅ 三件套凑齐后，2012 年 AlexNet 碾压传统方法，深度学习爆发。2017 年 Transformer 出现。2022 年 ChatGPT 让每个普通人都感受到了 AI 的力量。\n第三幕：一局围棋定乾坤 如果你只记一件事来理解两条路线的胜负，就记这个：\n深蓝（1997，下象棋）= 符号主义的巅峰。 暴力搜索 + 人写的评估规则。\nAlphaGo（2016，下围棋）= 联结主义的胜利。 神经网络 + 自我对弈学习。\n围棋的可能性是宇宙原子数量的 N 倍，穷举不可能。符号主义在围棋面前彻底投降，联结主义却赢了。\n今天你用的 ChatGPT、AI 画画、AI 写代码，全是联结主义的产物。\n第三章：联结主义靠谱吗？是瞎猜还是有基础？ 有人会问：联结主义说\u0026quot;搭好网络让机器自己学\u0026quot;——那人类设计网络结构、设定训练方法，是拍脑袋猜的吗？\n绝对不是。 要分三层来看。\n第一层：数学地基——有严格证明 ✅ 底层的核心算法都有扎实的数学保障：\n原理 来源 保障了什么 梯度下降 1847 年柯西提出 参数朝正确方向调整 反向传播 微积分链式法则 高效计算每个参数该调多少 万能近似定理 1989 年数学证明 网络的\u0026quot;天花板\u0026quot;是无限的 这些不是猜的，是有 170 年数学保障的。\n第二层：工程原理——前人经验凝结的规范 🔶 中间层有大量工程上的发现：深度网络比宽网络更高效、Dropout 防过拟合、BatchNorm 加速训练、残差连接让超深网络可训练。这些有理论直觉，也有大量实验验证。\n第三层：经验调参——确实靠试 🔶 学习率多少？模型多少层？训练多少步？GPT-4 该多大？这些确实大量靠实验。\n2017 年 NeurIPS 大会上，Ali Rahimi 说深度学习像\u0026quot;炼金术\u0026quot;——有效，但不完全知道为什么。Meta 首席科学家 LeCun 回应：\n\u0026ldquo;这不是炼金术，这是工程。莱特兄弟造出飞机的时候，空气动力学理论也不完善。你不需要完全理解，也能造出改变世界的东西。\u0026rdquo;\n盖房子的类比 物理定律（万有引力、材料力学） → 不可违反的硬约束 深度学习的数学基础就在这一层 建筑规范（承重墙多厚、钢筋间距） → 前人经验凝结的标准 深度学习的工程原理就在这一层 建筑师的审美（窗户多大、层高多少）→ 有道理，也有主观判断 深度学习的调参就在这一层 工程学的本质就是：理论不需要完美，先造出来能用，然后不断改进。\n第四章：万能近似定理——联结主义的信心保证书 三层结构中，最底层那个\u0026quot;万能近似定理\u0026quot;是什么？为什么它这么重要？\n先理解\u0026quot;函数\u0026quot; 别被数学名词吓到。\u0026ldquo;函数\u0026quot;就是给一个输入，得到一个输出的规律：\n输入 输出 一张照片 \u0026ldquo;这是猫\u0026rdquo; / \u0026ldquo;这是狗\u0026rdquo; 一句中文 一句英文翻译 你说的上半句话 AI 接的下半句 这些输入→输出的对应关系，在数学上都叫\u0026quot;函数\u0026rdquo;。\n定理说了什么？ 1989 年，数学家 George Cybenko 证明了：\n一个神经网络，只要中间的神经元足够多，就可以逼近任意连续函数。\n用大白话说：\n\u0026ldquo;只要网络够大，理论上没有它学不会的规律。\u0026rdquo;\n定理的公式 N F(x) = Σ αᵢ · σ( wᵢᵀ · x + bᵢ ) i=1 对任意 ε \u0026gt; 0，存在 N，使得 | F(x) - f(x) | \u0026lt; ε 每个符号的含义：\n符号 含义 大白话 x 输入 你喂给网络的数据 wᵢ 权重 这个神经元\u0026quot;关注\u0026quot;输入的哪些方面 bᵢ 偏置 调整神经元的\u0026quot;触发阈值\u0026quot; σ 激活函数 引入非线性的\u0026quot;开关\u0026quot; αᵢ 输出权重 这个神经元的\u0026quot;投票权重\u0026quot; f(x) 目标函数 真实世界的规律 F(x) 网络输出 网络算出的近似结果 ε 最大误差 你想要多精确 N 神经元数量 \u0026ldquo;乐高积木\u0026quot;的数量 乐高积木的类比 任何形状——大象、汽车、城堡——都可以用足够多的乐高积木拼出来。\n每个神经元就是一块小积木，单独看很简单。但足够多的简单零件组合在一起，可以表达任意复杂的东西。\n定理说的就是：不管你要的 ε 多小（精度多高），都存在一个足够大的 N（积木够多），让网络达到这个精度。\n关键的\u0026quot;但是\u0026rdquo; 定理只说了**\u0026ldquo;能\u0026rdquo;，没说\u0026ldquo;怎么\u0026rdquo;**：\n定理保证了 ✅ 定理没说 ❌ 存在一组完美的参数 怎么找到那组参数 一层隐藏层理论上就够 一层实际上效率极低 对任意精度都有解 需要多少个神经元 需要多少训练数据 这就像空气动力学告诉莱特兄弟\u0026quot;人类理论上可以飞\u0026quot;——剩下的，是工程问题。\n第五章：为什么用矩阵？为什么要激活函数？ 现在到了最核心的问题：GPT 的引擎里为什么是矩阵乘法 + 激活函数？\n矩阵 = 线性变换 矩阵是人类掌握得最透彻的数学工具，y = Wx + b。它不只是\u0026quot;简单\u0026quot;，而是：\n✅ 有 200 年的线性代数理论支撑 ✅ GPU 天生擅长矩阵乘法，计算极快 ✅ 可以求导（训练必须算梯度） ✅ 可以一层接一层组合 但矩阵有个致命局限：它只能做\u0026quot;直来直去\u0026quot;的变换。一条直线经过矩阵变换后，永远还是直线。\n更要命的是：纯线性叠加 = 永远是直线。\n第一层: y₁ = 2x + 1 第二层: y₂ = 0.5 × y₁ - 0.5 合并后: y = 1.0x + 0.0 ← 还是一条直线！ 不管你叠 100 层还是 1000 层，结果都一样：一条直线。 数学上，线性函数的组合还是线性函数。这就意味着：光靠矩阵，神经网络只能画直线，永远拟合不了现实世界那些弯弯曲曲的规律。\nReLU：一行代码打破僵局 ReLU 可能是人类发明的最简单的非线性函数：\nReLU(x) = max(0, x) 就这一行。 x \u0026gt; 0 → 保持不变 x ≤ 0 → 变成 0 它在线性计算后引入了一个\u0026quot;折\u0026quot;。就这一个折，就打破了线性的封印。\n折的威力 一个神经元 = 线性变换 + ReLU = 产生一个\u0026quot;折\u0026quot;\n1 个折 → 只能做 V 形 2 个折 → 可以做一个凸起 4 个折 → 开始有曲线的轮廓 8 个折 → 相当接近目标了 关键洞见：足够多的\u0026quot;折\u0026quot;可以拼出任何曲线。 这就是万能近似定理的几何直觉。\n下面的动图展示了这个过程。灰色曲线是我们想逼近的目标函数 sin(x) + 0.3sin(3x)，彩色线是神经网络的输出。随着神经元增加，折越来越多，逼近越来越精确：\n每个神经元是一个\u0026quot;可调节的折\u0026quot;。w 和 b 决定折的位置和角度，α 决定折的高度。足够多的折拼在一起，可以逼近任意曲线——这就是万能近似定理的直觉。\n第六章：动图演示——让机器自己学 前面的折是人手动设计的。但真正的神经网络不需要人来调——机器通过梯度下降自己找到最优参数。\n下面的动图展示了 PyTorch 训练的实际过程。四个不同大小的网络（4、16、64、256 个神经元）同时学习拟合同一条曲线：\n请注意几个关键现象：\n一开始全是乱线——随机初始化的参数，网络什么都不知道 逐渐有形状了——梯度下降在不断调整参数，让网络靠近目标 N 越大，最终效果越好——神经元越多，\u0026ldquo;折\u0026quot;越多，逼近越精确 但 N=4 怎么调都不够用——积木太少，拼不出复杂的形状 这正是万能近似定理的实践验证：N 足够大 → 误差可以无限小。\n纯线性 vs 加了激活函数 最后一张动图直接对比了两条路线。左边是纯线性网络（没有激活函数），右边是加了 ReLU 的网络，两者同时增加层数：\n左边不管加多少层，永远是一条直线——这就是线性的宿命。\n右边加了 ReLU 后，随着层数增加，逼近越来越精确。\n矩阵负责\u0026quot;直来直去\u0026quot;的计算，ReLU 负责\u0026quot;拐弯\u0026rdquo;。一个拐弯不够，就用更多。足够多的拐弯叠在一起，可以拟合任何曲线——这就是神经网络的全部秘密。\n第七章：从定理到 ChatGPT 万能近似定理是 1989 年证明的，ChatGPT 是 2022 年发布的。中间差了 33 年的工程攻关：\n1989 万能近似定理 \u0026#34;理论上可以\u0026#34; │ │ 但实际上：网络太小、数据太少、算力太弱 │ ▼ 2012 AlexNet \u0026#34;实际上可以了\u0026#34; │ │ 更深的网络、更多的数据、GPU 暴力计算 │ ▼ 2017 Transformer \u0026#34;可以做得非常好\u0026#34; │ │ 注意力机制、Scaling Law │ ▼ 2022 ChatGPT \u0026#34;好到普通人都能感受到\u0026#34; ChatGPT 的核心结构（Transformer）本质上还是：\n矩阵乘法 → 激活函数 → 矩阵乘法 → 激活函数 → ... 重复几十层，每层有数十亿个参数 只不过它加了注意力机制（让网络能\u0026quot;关注\u0026quot;输入的不同部分）、位置编码（让网络理解语序）、Layer Normalization（让训练更稳定）等工程改进。\n但万变不离其宗：线性变换 + 非线性激活，这个基本结构从 1989 年到今天没有变过。\n万能近似定理就是最底层的信心保证：这条路的天花板是无限的，剩下的都是工程问题。\n结语：70 年的回望 回到开头的问题：为什么矩阵和激活函数就能涌现智能？\n因为：\n万能近似定理在数学上保证了——任何输入到输出的规律，神经网络都能学会（只要够大） 矩阵提供了高效的线性计算基础——200 年的数学，GPU 可以暴力加速 激活函数用最简单的方式打破了线性的封印——一行代码 max(0, x) 就够了 梯度下降让机器能自己找到最优参数——不需要人手动调 四件事合在一起：理论保证 + 高效计算 + 非线性能力 + 自动学习 = 涌现智能的基础。\nAI 走到今天，不是一拍脑袋的灵感，而是 70 年两条路线碰撞的结果：\n符号主义教会了我们：让机器按规则做事——但规则写不完。\n联结主义教会了我们：让机器自己从数据中学习——而数学证明了这条路走得通。\n今天联结主义赢了。但工程学的精神贯穿始终——\n理论不需要完美，先造出来，能用，然后不断改进。 莱特兄弟如此，深度学习也是如此。\n本文的动图由 PyTorch 实际训练生成——每一帧都是真实的梯度下降过程，不是模拟动画。\n演示代码：~/demo_linear_vs_nonlinear.py\n","permalink":"https://jason-azure.github.io/ai-blog/posts/universal-approximation/","summary":"AI 发展 70 年，本质是两个思想流派的交锋：符号主义相信规则，联结主义相信连接。今天的 ChatGPT 靠的是矩阵乘法加一行激活函数——为什么这么简单的东西就够了？一个 1989 年的数学定理给出了答案。","title":"为什么矩阵和激活函数就能涌现智能？——从符号主义到万能近似定理"},{"content":"引言：别人讲概念，我们看真数据 网上讲 Transformer 注意力机制的文章很多。但几乎所有文章都有一个共同的问题：数据是编的。\n它们会画一个框，写上 \u0026ldquo;Q\u0026rdquo;、\u0026ldquo;K\u0026rdquo;、\u0026ldquo;V\u0026rdquo;，然后说 \u0026ldquo;Q 是查询向量\u0026rdquo;、\u0026ldquo;K 是键向量\u0026rdquo;、\u0026ldquo;V 是值向量\u0026rdquo;——但框里面到底是什么数字？乘完之后变成了什么？softmax 之后注意力权重长什么样？从来不说。\n今天我们换个做法。\n我们训练一个只有 4192 个参数的迷你 GPT（基于 Karpathy 的 microgpt），喂给它 10000 个英文常用单词，让它学会英语的拼写规律。然后，把这个训练好的模型完全打开——每一个权重矩阵、每一个中间向量、每一个注意力分数，全部用真实数字展示。\n本文的所有数字都来自真实训练——不是示意图，不是假数据。你看到的每一个小数点，都是模型在 3000 步训练后的真实参数值。\nDemo 速览 — 这不是聊天机器人，不能回答问题。 它做的事情更基础也更纯粹——预测下一个字母。\n输入 一个英文单词的前几个字母，如 \u0026ldquo;t\u0026rdquo;、\u0026ldquo;th\u0026rdquo;、\u0026ldquo;the\u0026rdquo; 输出 下一个字母的概率分布（27 个候选：a-z + 结束符） 目标 学会英语拼写规律，能\u0026quot;发明\u0026quot;看起来像真词的新单词 代码量 外部依赖 硬件要求 训练时间 核心 200 行 / Demo ~350 行 零（纯 Python） 普通 CPU，无需 GPU 3000 步，~12 分钟 一、先搞清楚：这个模型在做什么？ 比如，模型看到 \u0026ldquo;th\u0026rdquo; 之后，会输出：\n下一个字母的概率: \u0026#39;a\u0026#39; → 22.7% ← that, thank, than, ... \u0026#39;o\u0026#39; → 17.0% ← those, though, ... \u0026#39;e\u0026#39; → 16.6% ← the, them, there, ... \u0026#39;i\u0026#39; → 11.4% ← this, think, third, ... ... 这和 ChatGPT 的核心原理完全一样——ChatGPT 也是在预测\u0026quot;下一个 token 最可能是什么\u0026quot;，只不过它的 token 是子词而非单个字母，参数是千亿级而非四千个。\n实验环境 项目 详情 原始代码 Karpathy 的 microgpt —— 200 行纯 Python，从零实现 Transformer（含反向传播） Demo 脚本 demo_transformer_internals.py —— 约 350 行，含训练 + 中间数据采集 + 输出 训练数据 Google 10000 常用英文单词 模型规模 1 层 Transformer，16 维嵌入，4 个注意力头，总共 4192 个参数 硬件 普通 CPU（无 GPU），8 核 Intel Xeon，32GB 内存 训练时间 3000 步，约 12 分钟 外部依赖 零——不需要 PyTorch、numpy 或任何第三方库 没错，200 行 Python + 一台普通电脑 + 12 分钟，就能训练出一个完整的 Transformer。这也是为什么选它来做教学——所有东西都小到可以看清。\n模型配置 参数 microgpt (本文) GPT-2 嵌入维度 16 768 注意力头数 4 12 每头维度 4 64 层数 1 12 MLP 隐藏层 64 3072 词表大小 27 50257 总参数 4,192 ~124,000,000 词表很简单：26 个英文字母（a-z）加一个特殊的 \u0026lt;BOS\u0026gt;（Begin of Sequence，序列起始标记）。模型的任务是：给定前面的字母，预测下一个字母是什么。\n训练效果 用 10000 个常用英文单词训练 3000 步（约 12 分钟），模型生成的\u0026quot;假词\u0026quot;：\nconte tout stor costs ex derse alid ponde rotins aron angir fure derits conen maliting 其中 conte、tout、stor、costs、ex 都是真词或极其接近真词。其余的如 derse、alid、ponde，虽然不是真词，但完全符合英语的拼写规律——它学到了 \u0026ldquo;th\u0026rdquo;、\u0026ldquo;st\u0026rdquo;、\u0026ldquo;ing\u0026rdquo;、\u0026ldquo;tion\u0026rdquo; 这些模式。\n4192 个参数，12 分钟训练，就能做到这些。现在，让我们打开引擎盖，看看里面发生了什么。\n二、第 1 步：把字母变成向量（Token Embedding） 模型不认识\u0026quot;字母\u0026quot;，只认识数字。所以第一步是把每个字母翻译成一个 16 维向量。怎么翻译？查表。\n这张表叫 Token Embedding 矩阵（wte），大小是 27 行 x 16 列。每行对应一个字母，每行有 16 个数字。这些数字不是人设计的——它们是训练出来的。\n以输入单词 \u0026ldquo;the\u0026rdquo; 为例。首先，把它翻译成 token 序列：\n\u0026lt;BOS\u0026gt; → t → h → e → \u0026lt;BOS\u0026gt; 26 19 7 4 26 前后各加一个 \u0026lt;BOS\u0026gt; 标记序列的开始和结束。然后查嵌入表：\n字母 \u0026rsquo;t\u0026rsquo; 的嵌入向量（wte 的第 19 行）——这就是 \u0026rsquo;t\u0026rsquo; 在模型眼中的\u0026quot;样子\u0026quot;：\nwte[\u0026#39;t\u0026#39;] = [ 0.099, 0.107, -0.422, 0.835, 0.152, -0.063, 0.230, 0.063, 0.169, -0.260, 0.088, -0.251, 0.415, 0.557, -0.581, 0.013] 16 个浮点数，这就是字母 \u0026rsquo;t\u0026rsquo; 的全部信息。同样：\nwte[\u0026#39;h\u0026#39;] = [-0.190, -0.024, 0.020, 0.431, -0.244, -0.080, -0.055, 0.212, -0.247, 0.183, -0.130, -0.042, -0.158, 0.766, -0.344, 0.105] wte[\u0026#39;e\u0026#39;] = [ 0.305, 0.093, 0.244, -0.408, -0.242, -0.402, -0.124, 0.176, -0.345, -0.149, 0.720, 0.176, 0.412, -0.275, 0.338, -0.281] 加上位置编码 光有\u0026quot;是什么字母\u0026quot;不够，还得知道\u0026quot;在哪个位置\u0026quot;。同一个字母 \u0026rsquo;e\u0026rsquo; 出现在第 1 位和第 5 位，意义可能完全不同。\n所以模型还有一张 位置编码表（wpe），大小 16 x 16（16 个位置，每个位置 16 维）。字母嵌入和位置编码相加，就是模型真正看到的输入。\n以位置 1 的 \u0026rsquo;t\u0026rsquo; 为例：\nToken 嵌入 wte[\u0026#39;t\u0026#39;]: [ 0.099, 0.107, -0.422, 0.835, 0.152, -0.063, ...] 位置编码 wpe[1]: [ 0.187, 0.071, 0.037, -0.033, -0.424, -0.085, ...] ────────────────────────────────────────────────────────────────── 相加结果 x: [ 0.286, 0.179, -0.385, 0.802, -0.272, -0.148, ...] 然后做一次 RMSNorm（归一化，让数值保持在合理范围）。这个 16 维向量 x，就是进入注意力层的输入。\n三、第 2 步：QKV 投影——注意力的三件套 现在每个位置都有一个 16 维向量 x。接下来，模型要做一件关键的事：让每个位置\u0026quot;看看\u0026quot;其他位置，决定该关注谁。\n这就是注意力机制的核心。它用三组权重矩阵，把每个 x 变成三个不同的向量：\nQ = x × W_Q (Query: 我在找什么？) K = x × W_K (Key: 我能提供什么？) V = x × W_V (Value: 我的内容是什么？) W_Q、W_K、W_V 各是一个 16x16 的权重矩阵——它们的每个元素都是训练过程中通过反向传播学到的参数。所以说\u0026quot;W_Q 是参数\u0026quot;和\u0026quot;W_Q 是矩阵\u0026quot;都对：它是一个由可训练参数组成的矩阵。\n关于符号约定： 本文使用行向量约定，即 Q = x · W_Q（向量 x 在左，矩阵 W 在右），与 Transformer 原始论文和 PyTorch 代码（Q = x @ W_Q）一致。线性代数教科书常用列向量约定 Q = W_Q · x（矩阵在左），两种写法数学上等价，只是矩阵需要转置。\n图书馆比喻： 你走进图书馆找书。你手里有一张需求清单（Q）——\u0026ldquo;我要关于历史的书\u0026rdquo;。书架上每本书有一个标签（K）——\u0026ldquo;我是历史类\u0026rdquo;。清单和标签对上了（Q·K 的点积大），你就把那本书的**内容（V）**取出来。\n真实数据：W_Q 权重矩阵长什么样 这是我们训练好的 W_Q 矩阵的前 4 行（一共 16 行，每行 16 个数字，共 256 个参数）：\nW_Q[0] = [ 0.486, -0.190, 0.927, -0.252, -0.179, -0.152, 0.252, 0.044, -0.023, -0.119, 0.209, 0.389, 0.325, -0.083, -0.155, -0.364] W_Q[1] = [-0.011, -0.067, -0.212, 0.200, -0.450, 0.061, -0.145, -0.091, -0.204, 0.306, -0.080, 0.285, 0.486, 0.135, -0.705, -0.325] W_Q[2] = [ 0.147, -0.066, -0.240, -0.380, 0.110, -0.037, -0.175, -0.254, 0.295, 0.532, -0.010, -0.093, 0.067, 0.035, -0.263, -0.668] W_Q[3] = [ 0.074, -0.174, 0.666, -0.313, 0.291, -0.026, 0.022, 0.170, 0.014, -0.041, -0.053, 0.087, 0.061, -0.058, 0.182, -0.600] ... (共 16 行) 这些数字是随机初始化的，然后在 3000 步训练中被反向传播慢慢调整，最终定型。不是人设计的，是\u0026quot;长出来的\u0026quot;。\n真实数据：Q、K、V 投影结果 输入 \u0026ldquo;the\u0026rdquo;，每个位置经过 QKV 投影后得到的向量：\n位置 0 — \u0026lt;BOS\u0026gt;: Q = [ 1.473, 1.605, 3.272, 2.116, -1.330, -0.985, -0.713, -2.096, ...] K = [-1.639, 0.890, 0.309, -1.354, -0.483, -0.746, 0.623, 0.189, ...] V = [ 0.092, 0.062, -0.102, 0.093, 0.159, 0.113, 0.083, 0.206, ...] 位置 1 — \u0026#39;t\u0026#39;: Q = [ 0.025, 3.516, 1.232, -1.403, -1.888, -1.277, 1.129, 0.560, ...] K = [ 1.219, 1.326, 0.912, 1.092, 0.358, 0.026, 0.005, -0.851, ...] V = [-0.029, -0.419, 0.622, 0.132, -0.165, -0.262, -0.168, 0.210, ...] 位置 2 — \u0026#39;h\u0026#39;: Q = [ 1.177, 1.676, 0.221, -0.288, 0.026, 0.406, 0.313, 0.439, ...] K = [ 1.960, 3.061, 0.669, 0.206, 0.155, 0.619, 0.074, -0.846, ...] V = [ 0.346, 0.445, -0.499, -0.237, -0.390, -0.029, -0.190, -0.076, ...] 位置 3 — \u0026#39;e\u0026#39;: Q = [ 2.605, 1.533, 1.134, 1.452, 0.315, 0.296, -1.225, -0.970, ...] K = [-1.295, -0.088, -1.527, -1.227, 0.858, 0.607, 0.312, 1.019, ...] V = [ 0.150, 0.646, 0.456, 0.297, 0.891, 0.388, 0.468, 0.692, ...] 注意：同一个字母 \u0026rsquo;t\u0026rsquo;，经过不同的权重矩阵后，Q、K、V 三个向量完全不同。这就是矩阵乘法的魔力——同一份信息，从三个不同角度被\u0026quot;提问\u0026quot;。\n四、第 3 步：多头注意力——4 个头各管一片 Q、K、V 各是 16 维向量。现在要用它们计算注意力。但 Transformer 不会直接用 16 维去算，而是拆成 4 个头，每个头只看 4 维。\nQ (16维) → 拆成 4 份: 头0: Q[0:4] = [2.605, 1.533, 1.134, 1.452] 头1: Q[4:8] = [0.315, 0.296, -1.225, -0.970] 头2: Q[8:12] = [-0.477, 0.751, -1.333, 0.168] 头3: Q[12:16] = [0.505, 0.500, -2.082, -1.242] K 和 V 同理，每个头 4 维。 为什么要拆？ 因为不同的头可以学到不同的\u0026quot;关注模式\u0026quot;。一个头可能学会关注前一个字母，另一个头可能学会关注更远处。多角度看问题，比单一视角更强。\n注意力计算：三步走 以位置 3（字母 \u0026rsquo;e\u0026rsquo;）的头 0 为例。\u0026rsquo;e\u0026rsquo; 是序列中最后一个字母，它可以看到所有前面的 token：\u0026lt;BOS\u0026gt;、t、h、e。\nStep 1：打分（Q · K）\n\u0026rsquo;e\u0026rsquo; 的 Query 和每个历史位置的 Key 做点积，再除以 √d_k = √4 = 2。这个 √d_k 缩放是固定的，不是可调参数——它的作用是防止点积值随向量维度增大而变得过大，导致 softmax 输出趋向极端（全 0 或全 1）：\nQ_e(头0) = [2.605, 1.533, 1.134, 1.452] Q_e · K_\u0026lt;BOS\u0026gt; / √4 = -2.261 ← 和 \u0026lt;BOS\u0026gt; 不太相关 Q_e · K_t / √4 = 3.914 ← 和 \u0026#39;t\u0026#39; 比较相关 Q_e · K_h / √4 = 5.428 ← 和 \u0026#39;h\u0026#39; 非常相关！ Q_e · K_e / √4 = -3.512 ← 和自己不太相关 Step 2：归一化（softmax）\n把分数转成 0 到 1 之间的概率，总和为 1：\nsoftmax([-2.261, 3.914, 5.428, -3.512]) = [0.0%, 18.0%, 81.9%, 0.0%] \u0026lt;BOS\u0026gt; t h e → 头 0 把 81.9% 的注意力放在了 \u0026#39;h\u0026#39; 上！ Step 3：加权求和（× V）\n用注意力权重对各位置的 Value 加权求和，得到这个头的输出：\n头 0 输出 = 0.0% × V_\u0026lt;BOS\u0026gt; + 18.0% × V_t + 81.9% × V_h + 0.0% × V_e ≈ V_h (因为 \u0026#39;h\u0026#39; 的权重占了 82%) 这意味着：当模型处理 \u0026rsquo;e\u0026rsquo; 时，头 0 主要提取了 \u0026lsquo;h\u0026rsquo; 的信息。为什么？因为在英语中 \u0026ldquo;he\u0026rdquo; 是一个极其常见的组合——模型学到了 \u0026ldquo;看到 e，回头找 h\u0026rdquo;。\n4 个头的完整注意力（\u0026ldquo;the\u0026rdquo; 中的 \u0026rsquo;e\u0026rsquo;） 头 \u0026lt;BOS\u0026gt; t h e 解读 头0 0% 18% 82% 0% 紧盯 \u0026lsquo;h\u0026rsquo;，捕捉 \u0026ldquo;he\u0026rdquo; 模式 头1 12% 37% 37% 14% 均匀看 \u0026rsquo;t\u0026rsquo; 和 \u0026lsquo;h\u0026rsquo;，综合判断 头2 7% 13% 72% 8% 也紧盯 \u0026lsquo;h\u0026rsquo;，强化信号 头3 19% 51% 28% 1% 更关注 \u0026rsquo;t\u0026rsquo;，看更远的上下文 看到了吗？4 个头自动学到了不同的策略：头 0 和头 2 聚焦紧邻的 \u0026lsquo;h\u0026rsquo;，头 3 却去看更远的 \u0026rsquo;t\u0026rsquo;。没人教它们这样分工——这是 3000 步训练后自然\u0026quot;涌现\u0026quot;的行为。\n注意力热力图（完整） 下面展示头 0 在处理 \u0026ldquo;the\u0026rdquo; 时，每个位置看向哪里（行=当前位置，列=被关注的位置）：\n头 0 注意力权重: \u0026lt;BOS\u0026gt; t h e \u0026lt;BOS\u0026gt; [100% ] \u0026#39;t\u0026#39; [ 63% 37% ] \u0026#39;h\u0026#39; [ 2% 12% 86% ] \u0026#39;e\u0026#39; [ 0% 18% 82% 0% ] 注意对角线的规律：\n\u0026lsquo;h\u0026rsquo; 把 86% 的注意力给了自己——在单独出现时，最重要的信息就是自身 \u0026rsquo;e\u0026rsquo; 把 82% 给了 \u0026lsquo;h\u0026rsquo;——学到了 \u0026ldquo;he\u0026rdquo; 这个强组合 下三角形状说明这是因果注意力（causal attention）：每个 token 只能看到前面的，不能偷看后面的 不同单词，不同的注意力模式 换个单词看看。输入 \u0026ldquo;and\u0026rdquo;，看 \u0026rsquo;d\u0026rsquo; 位置的注意力：\n头 \u0026lt;BOS\u0026gt; a n d 解读 头0 3% 5% 91% 2% 几乎只看 \u0026rsquo;n\u0026rsquo;！ 头1 6% 21% 62% 12% 也盯着 \u0026rsquo;n\u0026rsquo; 头2 17% 3% 63% 17% 还是 \u0026rsquo;n\u0026rsquo; 头3 7% 0% 68% 25% 同上 处理 \u0026ldquo;and\u0026rdquo; 时，所有 4 个头都集中关注 \u0026rsquo;n\u0026rsquo;（62%~91%）。为什么？因为 \u0026ldquo;nd\u0026rdquo; 是英语中极其常见的双字母组合（and, end, find, hand, kind\u0026hellip;），模型学到了 \u0026ldquo;看到 n 后面大概率跟 d\u0026rdquo; 这个模式。\n再看 \u0026ldquo;cat\u0026rdquo; 中处理 \u0026rsquo;t\u0026rsquo; 时：\n头0: c=87% a=4% → 几乎只看 \u0026#39;c\u0026#39; 头3: t=61% a=24% → 主要看自己 头 0 学到了 \u0026ldquo;回头看首字母\u0026rdquo; 的策略——对于判断单词结尾（是否该停下来）非常关键。\n拼接 + 输出投影 4 个头各输出 4 维，拼接成 16 维，再乘以一个 W_O 矩阵（16x16）做输出投影，最后加上残差连接（直接把注意力之前的 x 加回来）。\n4个头拼接 (16维) → × W_O → 注意力输出 (16维) → + x (残差) → 进入 MLP 残差连接的作用： 即使注意力算出的结果不好，原始信息 x 也不会丢失——总有一条\u0026quot;直通车\u0026quot;保底。这让深层网络的训练变得可能。\n五、第 4 步：MLP——注意力之后的\u0026quot;思考\u0026quot; 注意力层负责\u0026quot;看到什么\u0026quot;——从其他位置收集信息。MLP 层负责\u0026quot;怎么理解\u0026quot;——对收集到的信息进行非线性变换。\n结构很简单：先升维，再激活，再降维。\nx (16维) × W_fc1 (16×64) → hidden (64维) ← 升维 4 倍 ReLU(hidden) ← 非线性激活 hidden (64维) × W_fc2 (64×16) → out (16维) ← 降维回来 ReLU：极度稀疏的激活 ReLU 函数很简单：正数不变，负数变成 0。效果是什么？\n输入单词 最后位置 ReLU 激活 激活率 \u0026ldquo;the\u0026rdquo; → \u0026rsquo;e\u0026rsquo; 2 / 64 个神经元 3% \u0026ldquo;cat\u0026rdquo; → \u0026rsquo;t\u0026rsquo; 0 / 64 个神经元 0% \u0026ldquo;stop\u0026rdquo; → \u0026lsquo;p\u0026rsquo; 1 / 64 个神经元 2% \u0026ldquo;and\u0026rdquo; → \u0026rsquo;d\u0026rsquo; 0 / 64 个神经元 0% 64 个神经元中，通常只有 0~2 个被激活！这叫稀疏激活——模型学会了只让极少数\u0026quot;专家\u0026quot;神经元参与每次计算。\n比如处理 \u0026ldquo;the\u0026rdquo; 中的 \u0026rsquo;e\u0026rsquo; 时，64 个神经元中只有 #2（值 0.554）和 #57（值 1.107）被激活。可以把它们想象成两个\u0026quot;专家\u0026quot;：一个可能负责检测 \u0026ldquo;元音在 h 后面\u0026rdquo; 的模式，另一个可能负责检测 \u0026ldquo;the 快要结束了\u0026rdquo; 的信号。\n现实类比： 大型模型中也是如此。GPT-2 的 MLP 有 3072 个神经元，但对于任何给定输入，通常只有一小部分被激活。这也是\u0026quot;混合专家\u0026quot;（MoE）架构的理论基础——既然大部分神经元都不活跃，不如直接只激活其中一部分来节省计算。\n六、第 5 步：预测下一个字符 经过嵌入 → 注意力 → MLP 之后，每个位置有一个 16 维的输出向量。最后一步是把它映射回词表空间：\nx (16维) × lm_head (16×27) → logits (27维) → softmax → 概率分布 输出是 27 个概率值（对应 26 个字母 + \u0026lt;BOS\u0026gt;），表示模型认为下一个字符最可能是什么。\nTemperature（温度）在这里： 人们说\u0026quot;调 ChatGPT 的温度\u0026quot;，调的就是这一步输出 softmax 的温度，而不是前面注意力层的 √d_k 缩放。具体做法是在 softmax 之前把 logits 除以温度 T：softmax(logits / T)。T \u0026lt; 1 让分布更尖锐（更确定），T \u0026gt; 1 让分布更平坦（更随机）。注意力层里的 √d_k 是固定的数学缩放，和这里的温度是完全不同的概念。\n真实预测结果 输入 \u0026ldquo;the\u0026rdquo;，看模型在每个位置的预测：\n当前字符 正确答案 Top-3 预测 正确答案排名 \u0026lt;BOS\u0026gt; t s(9.1%), c(8.9%), p(8.0%) 第 5 (6.6%) t h r(16.5%), o(14.9%), e(14.8%) 第 7 (7.0%) h e a(22.7%), o(17.0%), e(16.6%) 第 3 e \u0026lt;BOS\u0026gt;(结束) r(12.1%), n(11.2%), s(7.9%) 第 4 (7.8%) 几个有趣的观察：\n\u0026lt;BOS\u0026gt; → 预测首字母： s、c、p 排前三——因为英语中以 s、c、p 开头的单词确实最多 t → 预测 h 只排第 7： 因为 t 后面可以跟 r(tr-)、o(to-)、e(te-)、i(ti-)、a(ta-)……选择太多了。但 7.0% 已经不低 h → 预测 e 排第 3（16.6%）： 这里注意力的效果显现了——前一步模型看到 t→h 组合后，成功提升了 \u0026rsquo;e\u0026rsquo; 的概率 e → 预测结束排第 4： 模型知道短词应该结束，但也考虑了 er-、en-、es- 等常见后缀 记住，这是一个只有 4192 个参数、训练了 12 分钟的模型。它已经掌握了英语拼写的大量统计规律。\n七、全景图：一个 Token 的完整旅程 把所有步骤串在一起：\n输入: 字母 \u0026#39;e\u0026#39; (id=4, 在 \u0026#34;the\u0026#34; 的位置 3) | v 查表: wte[4] → 16 维向量 + wpe[3] → 加上位置信息 → RMSNorm → 归一化 | v +------ 多头注意力 -------------------------+ | | | × W_Q → Q (16维): \u0026#34;我在找什么？\u0026#34; | | × W_K → K (16维): \u0026#34;我能提供什么？\u0026#34; | | × W_V → V (16维): \u0026#34;我的内容是什么？\u0026#34; | | | | 拆成 4 个头 (每头 4 维): | | 头0: 82% 看 \u0026#39;h\u0026#39; → 捕捉 \u0026#34;he\u0026#34; 模式 | | 头1: 37% 看 \u0026#39;t\u0026#39; + 37% 看 \u0026#39;h\u0026#39; | | 头2: 72% 看 \u0026#39;h\u0026#39; → 强化 \u0026#34;he\u0026#34; 信号 | | 头3: 51% 看 \u0026#39;t\u0026#39; → 看更远的上下文 | | | | 拼接 → × W_O → 注意力输出 (16维) | +--------------------------------------------+ + 残差连接 (加上原始 x) | v +------ MLP (前馈网络) ----------------------+ | | | 16维 → × W_fc1(16×64) → 64维 (升维 4 倍) | | ReLU: 64 个神经元中只有 2 个被激活 (3%) | | 64维 → × W_fc2(64×16) → 16维 (降维) | | | +--------------------------------------------+ + 残差连接 | v × lm_head → 27 维 logits → softmax(logits/T) → 概率分布 | v 输出: r(12.1%), n(11.2%), s(7.9%), \u0026lt;BOS\u0026gt;(7.8%), ... 整个流程涉及的矩阵乘法：\n操作 矩阵大小 参数量 Token 嵌入 (wte) 27 x 16 432 位置编码 (wpe) 16 x 16 256 W_Q, W_K, W_V, W_O (各 16x16) 4 × (16 x 16) 1024 MLP W_fc1 16 x 64 1024 MLP W_fc2 64 x 16 1024 输出头 (lm_head) 16 x 27 432 总计 4,192 4192 个浮点数，就是这个模型的全部\u0026quot;知识\u0026quot;。没有规则，没有词典，没有语法书——只有 4192 个在训练中被反复微调的数字。\n八、从 4192 到 1750 亿：只有规模变了 这是本文最想传达的观点：\nGPT-4 和我们这个 4192 参数的模型，用的是完全相同的算法。\n同样的 Token Embedding，同样的 QKV 投影，同样的多头注意力，同样的 MLP，同样的残差连接，同样的 softmax。区别只是数字更大了。\n本文 demo GPT-2 GPT-4 级别 嵌入维度 16 768 ~12288 注意力头 4 12 ~96 层数 1 12 ~120 词表 27 50257 ~100000 总参数 4,192 1.24 亿 ~1750 亿 训练时间 12 分钟 ~1 周 ~数月 能力 发明假词 写段落 理解与推理 这就是深度学习最深刻的特性之一：简单的算法 + 巨大的规模 = 涌现的智能。\n我们在 4192 个参数中看到注意力头自动分工，看到 MLP 稀疏激活，看到模型学会英语拼写模式。同样的机制放大几万倍，就产生了 ChatGPT 的\u0026quot;理解\u0026quot;和\u0026quot;推理\u0026quot;能力。\n核心算法并不神秘。\n附录：公式速查 对于想看公式的读者，以下是本文涉及的所有核心计算：\n1. 嵌入: x = wte[token_id] + wpe[position] 2. QKV 投影: Q = x · W_Q, K = x · W_K, V = x · W_V (行向量约定: x 在左, W 在右, 与 PyTorch x @ W 一致) 3. 注意力: score = Q · K^T / √d_k ← √d_k 是固定缩放, 不是温度 weight = softmax(score) output = weight · V 4. 多头拼接: MultiHead = Concat(head_0, ..., head_3) · W_O 5. MLP: hidden = ReLU(x · W_fc1) output = hidden · W_fc2 6. 残差连接: x = x + Attention(x) x = x + MLP(x) 7. 预测: logits = x · lm_head probs = softmax(logits / T) ← T 就是 temperature (温度) 就这些。没有更多了。\n即将发布：视频号 Demo 全过程演示\n文字毕竟是静态的。接下来，我会发布一期微信视频号视频，在真实终端上，带你从零走完整个过程：\n一行命令启动训练，实时看 loss 从 3.3 降到 2.3 模型从\u0026quot;胡乱拼字母\u0026quot;到\u0026quot;发明像样的假词\u0026quot;的进化过程 逐步展示每一个中间向量——嵌入、QKV、注意力权重、MLP 激活 对照本文的数据，手把手验证每个计算 200 行代码，12 分钟训练，从头到尾没有黑箱。\n关注公众号 \u0026ldquo;AI-lab学习笔记\u0026rdquo;，第一时间收到视频推送！\n","permalink":"https://jason-azure.github.io/ai-blog/posts/transformer-qkv-demo/","summary":"用一个只有 4192 个参数的 GPT 模型，展示 Transformer 内部每一步的真实数据——Token 嵌入、QKV 投影、多头注意力权重、MLP 稀疏激活，所有数字都来自真实训练。","title":"用 4192 个参数看透 Transformer：QKV、多头注意力、MLP 全拆解"},{"content":" 理解大语言模型（LLM）不需要你成为数学家，但需要你建立正确的直觉。本文从最基础的矩阵乘法讲起，一步步搭建起理解 Transformer 的完整框架。\n本文结构 数学基础 核心概念 Transformer 全景图 矩阵乘法三视角 Token 嵌入 QKV、多头注意力 完整数据流 方向与符号约定 点积与余弦相似度 MLP、残差连接 速查总结表 每个概念只讲直觉，不做证明。目标是看完后，能读懂任何 Transformer 论文的架构图。\n一、矩阵乘法的三种视角 设 A 是 m×n 矩阵，B 是 n×p 矩阵，结果 C = AB 是 m×p 矩阵。\n同一个乘法，有三种等价的理解方式。\n1.1 点积视角（逐元素） 最直观的方式：C 的每个元素，等于 A 的对应行与 B 的对应列做点积。\nC[i,j] = A的第i行 · B的第j列 = Σ A[i,k] × B[k,j] (k = 1..n) 这种方式告诉你怎么算，但不利于理解本质。\n1.2 列视角（Column View）— 最重要 AB 的每一列，是 A 的各列的线性组合，组合系数来自 B 的对应列。\n设 A 的列为 a1, a2, ..., an 设 B 的第 j 列为 [b1j, b2j, ..., bnj] 则 AB 的第 j 列 = b1j·a1 + b2j·a2 + ... + bnj·an 具体例子：\nA = [1 2] B = [5 7] [3 4] [6 8] AB 的第1列 = 5·[1,3] + 6·[2,4] = [5,15] + [12,24] = [17, 39] AB 的第2列 = 7·[1,3] + 8·[2,4] = [7,21] + [16,32] = [23, 53] AB = [17 23] [39 53] 为什么说\u0026quot;列比行重要\u0026quot;？ 因为矩阵的本质是线性变换，矩阵的列就是基向量变换后的去向。当你写 y = Ax 时，x 中的每个分量就是\u0026quot;取多少份对应的列\u0026quot;，y 就是 A 的各列按 x 的比例混合的结果。列空间 = 变换的输出空间，这才是矩阵最核心的几何意义。\n1.3 行视角（Row View） AB 的每一行，是 B 的各行的线性组合，组合系数来自 A 的对应行。\nAB 的第1行 = 1·[5,7] + 2·[6,8] = [5,7] + [12,16] = [17, 23] AB 的第2行 = 3·[5,7] + 4·[6,8] = [15,21] + [24,32] = [39, 53] 1.4 三种视角对比 视角 怎么拆 结果怎么组装 点积 A的行 × B的列 逐元素填入 C[i,j] 列视角 B的每列做系数 C 的每一列 = A各列的线性组合 行视角 A的每行做系数 C 的每一行 = B各行的线性组合 一句话总结： 点积视角告诉你怎么算，列视角告诉你在干什么（线性组合）。理解 LLM 时，始终用列视角思考：\u0026ldquo;这个矩阵乘法是在把哪些向量按什么比例混合？\u0026rdquo;\n二、矩阵乘法的方向：右到左 矩阵乘法的作用方向是从右到左。\n当你写 y = ABx 时：\ny = A(Bx) ← B先动手，A后动手 ^ 先 ^ 后 这就像函数复合：f(g(x)) — g 先执行，f 后执行。写在左边的反而后执行。\n数学写法 vs 代码写法 在 LLM 的实现中，惯例是把数据放在行里（每行一个 token），所以代码写成 XW 而不是数学教科书的 Wx。两者是转置关系：\n数学写法: q = Wq · x （x是列向量，W在左） 代码写法: Q = X · Wq （X每行是一个token，W在右） 本质相同: (Wx)^T = x^T · W^T 三、统一概念 — 一切都是矩阵 在不同场景下，你会听到\u0026quot;数组\u0026quot;\u0026ldquo;向量\u0026quot;\u0026ldquo;矩阵\u0026quot;\u0026ldquo;张量\u0026quot;等不同叫法。它们本质上是同一类东西，只是维度不同：\n名称 本质 形状 例子 标量 scalar 一个数 1×1 温度 = 36.5 向量 vector 一行或一列数 1×n 或 n×1 一个token的嵌入 矩阵 matrix 一张二维数表 m×n 一句话的所有token堆在一起 张量 tensor 多维数表 任意维 加上batch、head等维度 \u0026ldquo;数组\u0026quot;是程序员的叫法，\u0026ldquo;向量/矩阵\u0026quot;是数学家的叫法，指的是同一个东西。 在代码中，它们全都是多维数组（ndarray / tensor），只是维度不同。向量是只有一行或一列的矩阵，标量是 1×1 的矩阵。\n四、一个 Token 在 LLM 里长什么样 以 GPT-2（d_model = 768）为例：\n第 1 步：文本 → Token ID \u0026#34;猫坐在垫子上\u0026#34; → [猫, 坐, 在, 垫, 子, 上] → [8834, 2351, 553, 9042, 1189, 677] 6个整数 第 2 步：Token ID → 嵌入向量（查表） Embedding 表: [vocab_size × 768] 的大矩阵，每行是一个词的向量 token \u0026#34;猫\u0026#34; (ID=8834) → 取出第8834行 → [0.02, -0.15, 0.31, ..., 0.07] |———— 768个浮点数 ————| 这就是\u0026#34;猫\u0026#34;在768维空间中的坐标 第 3 步：一句话 = 多个向量堆起来 = 矩阵 X = [ 猫的768维向量 ] 形状: [6, 768] [ 坐的768维向量 ] 6行 = 6个token [ 在的768维向量 ] 768列 = 每个token的维度 [ 垫的768维向量 ] [ 子的768维向量 ] [ 上的768维向量 ] 关键认知：一个 token = 768 维空间中的一个点。一句话 = 一组点 = 一个矩阵。\n五、点积 vs 余弦相似度 两者都在回答同一个问题：两个向量有多相似？\n给定两个向量 a = [1, 2, 3], b = [2, 4, 6] 点积: a · b = 1×2 + 2×4 + 3×6 = 28 含义: 方向相似度 × 两者的长度 问题: 长向量天然得分高，不公平 余弦相似度: cos(a,b) = (a · b) / (|a| × |b|) = 28 / (√14 × √56) = 28/28 = 1.0 含义: 纯方向相似度，忽略长度 范围: -1（完全相反）到 +1（完全相同方向） LLM 中的使用场景 场景 用什么 为什么 Attention (QK相似度) 缩放点积 QKᵀ/√d Q和K已被训练到长度稳定，除以√d防止数值过大 检索/RAG (找相似文档) 余弦相似度 不同文档长度不同，需要归一化 词向量相似度 余弦相似度 比较语义方向，不关心幅度 Attention 用点积而不用余弦，是因为模型训练过程中会自己学会控制向量长度，而且点积计算更快。\n六、投影而非截断 一个常见的误解是：多头注意力把 768 维\u0026quot;截断\u0026quot;成 64 维。实际上是线性投影（降维）。\n原始 token 向量: 768维 | | × Wq [768, 64] ← 乘一个\u0026#34;瘦矩阵\u0026#34; v 每个 head 的 q: 64维 这不是截断（丢掉某些维度），而是： q = x · Wq 64维中的每一个值 = 768维全部参与计算的加权和 信息被\u0026#34;压缩/重组\u0026#34;到更少的维度里 打个比方：\n截断 = 一张照片只留左半边，右半边扔了 投影 = 一张照片换个角度看，信息被重新组合了 七、QKV 的完整维度图 以 GPT-2 small 为例：\n参数 值 含义 d_model 768 每个token的向量维度 n_heads 12 注意力头数 d_head 64 每个头的维度 (768 ÷ 12 = 64) T 序列长度 比如这句话有6个token 投影过程 输入 X: [T, 768] 6个token，每个768维 投影权重（训练学到的参数）: Wq: [768, 768] Q的投影矩阵（所有12个head合在一起） Wk: [768, 768] K的投影矩阵 Wv: [768, 768] V的投影矩阵 投影结果: Q = X · Wq → [T, 768] 然后reshape成 [T, 12, 64] → 每个head各拿64维 K = X · Wk → [T, 768] 同上 V = X · Wv → [T, 768] 同上 单个 head 内部（以 head #0 为例） Q0: [T, 64] 6个token的query，每个64维 K0: [T, 64] 6个token的key，每个64维 V0: [T, 64] 6个token的value，每个64维 注意力分数 = Q0 · K0^T / √64 [T, 64] × [64, T] = [T, T] → 6×6 的相似度矩阵 猫 坐 在 垫 子 上 猫 [ 0.8 0.1 0.05 0.02 0.02 0.01 ] ← 猫关注谁？主要关注自己 坐 [ 0.3 0.5 0.1 0.05 0.03 0.02 ] ← 坐关注谁？猫和自己 在 [ 0.1 0.2 0.4 0.15 0.1 0.05 ] 垫 [ 0.05 0.05 0.1 0.5 0.2 0.1 ] 子 [ 0.02 0.03 0.05 0.4 0.4 0.1 ] ← 子关注谁？垫和自己 上 [ 0.05 0.1 0.1 0.15 0.1 0.5 ] （经过softmax，每行加起来=1） 输出 = 分数矩阵 × V0 [T, T] × [T, 64] = [T, 64] → 每个token得到新的64维表示 合并所有 head 12个head各输出 [T, 64] → 拼接 → [T, 768] → 再乘 Wo [768, 768] → 最终输出 [T, 768] 八、多头注意力：12 个 head 各看什么 12 组独立参数 每个 head 有自己独立的 Wq、Wk、Wv 参数，是各自训练出来的。实现上用一个大矩阵，逻辑上是 12 组：\n实际存储: Wq: [768, 768] 一个大矩阵 逻辑上等价于: Wq_0: [768, 64] head 0 的投影 Wq_1: [768, 64] head 1 的投影 ... Wq_11: [768, 64] head 11 的投影 拼在一起 → [768, 12×64] = [768, 768] 不同 head 自发学会的关注模式 训练完成后，研究者观察到不同 head 自发地学会了不同的\u0026quot;关注模式\u0026rdquo;：\nHead 类型 它在做什么 例子 位置 head 关注固定相对位置 \u0026ldquo;总是看前一个词\u0026rdquo; 语法 head 关注语法依赖关系 动词 ↔ 主语 共指 head 关注指代关系 \u0026ldquo;他\u0026rdquo; → \u0026ldquo;小明\u0026rdquo; 分隔符 head 关注标点/特殊token 句号、逗号、[SEP] 稀疏 head 只强烈关注1-2个token 类似\u0026quot;精确查找\u0026rdquo; 均匀 head 近乎均匀关注所有token 类似\u0026quot;全局平均\u0026rdquo; 没有人告诉模型\u0026quot;你第 3 个 head 负责语法\u0026rdquo;，这些模式是训练过程中自然涌现的。正因为有多个 head，模型才能同时捕获多种关系。\n降维的双重目的 768 维降到每头 64 维，既是为了效率，也是为了维度守恒：\n输入: [T, 768] 拆分: 12 个 head × [T, 64] 各自attention后: 12 个 [T, 64] 拼接: [T, 12×64] = [T, 768] ← 回到原始维度 回到原始维度是为了残差连接（下一节讲）：output = input + Attention(input)，两边必须维度相同才能相加。\n九、Transformer 的其他关键机制 9.1 残差连接（Residual Connection）— 最重要 +------------------------+ | | | Attention(x) | | | | x -----+----(+)--+ | | | | | x + Attention(x) | ← 不是替换，是叠加！ | | | | MLP(...) | | | | ---------(+)--+ | | | +------------------------+ 每一层的输出 = 输入 + 这一层学到的修正量\n为什么重要：\n没有残差连接，梯度经过 12 层后会接近 0（梯度消失），模型训不动 有了它，梯度可以\u0026quot;抄近路\u0026quot;直接传回去，12 层甚至 96 层都能训 直觉：每层只需要学\u0026quot;需要改什么\u0026rdquo;，而不是\u0026quot;从头重建整个表示\u0026quot; 9.2 LayerNorm（层归一化） 每个token的768维向量：减去均值，除以标准差，再缩放 x = [0.2, -3.5, 1.8, ..., 0.7] | 归一化 x = [0.1, -1.2, 0.6, ..., 0.2] 均值约0，方差约1 作用：防止向量中的数值经过多层后越来越大或越来越小，让训练更稳定。\n9.3 因果掩码（Causal Mask）— GPT 的核心约束 在计算注意力分数后，加一个掩码：\n猫 坐 在 垫 子 上 猫 [ 0.8 -INF -INF -INF -INF -INF ] 猫只能看到猫 坐 [ 0.3 0.5 -INF -INF -INF -INF ] 坐只能看到猫、坐 在 [ 0.1 0.2 0.4 -INF -INF -INF ] 在只能看到猫、坐、在 垫 [ 0.05 0.05 0.1 0.5 -INF -INF ] 子 [ 0.02 0.03 0.05 0.4 0.4 -INF ] 上 [ 0.05 0.1 0.1 0.15 0.1 0.5 ] 上能看到所有 -INF 经过 softmax 后变成 0，等于完全看不到 这就是\u0026quot;自回归\u0026quot;的含义： 每个 token 只能看到它前面的 token，不能偷看后面的。这样模型才能一个一个往后生成。\n9.4 MLP（前馈网络）— \u0026ldquo;思考\u0026quot;层 Attention 做的事: token之间互相交流（\u0026#34;谁和谁有关？\u0026#34;） MLP 做的事: 每个token独立变换（\u0026#34;知道了关系后，怎么理解？\u0026#34;） 768 → 3072 → 768 | | | | 先放大4倍 | | 激活函数 | | 再压回来 | 一个比喻：\nAttention = 开会讨论，收集信息 MLP = 会后各自消化理解 9.5 位置编码（Positional Encoding） 问题: Attention本质上是集合操作，不知道词序 \u0026#34;猫吃鱼\u0026#34; 和 \u0026#34;鱼吃猫\u0026#34; 对Attention来说完全一样 解决: 给每个位置加一个位置向量 token向量 = 词义向量 + 位置向量 \u0026#34;猫\u0026#34; 在位置0: [猫的语义768维] + [位置0的编码768维] \u0026#34;猫\u0026#34; 在位置3: [猫的语义768维] + [位置3的编码768维] 十、一个 Transformer Block 的完整流程 输入 x: [T, 768] | v LayerNorm ← 稳定数值 | v Multi-Head Attention ← 12个head各自投影到64维 | QK^T/√64 + 因果掩码 + softmax | × V → 加权混合 | 拼回768维 | (+) ← x ← 残差连接：加回原始输入 | v LayerNorm ← 再次稳定 | v MLP (768→3072→768) ← 独立变换每个token | (+) ← 上面的结果 ← 再一次残差连接 | v 输出: [T, 768] ← 维度和输入完全一样！所以能堆12层 十一、全局框架图 \u0026#34;猫坐在垫子上\u0026#34; | v +-- Tokenizer -----------------------+ | 文本 → [8834, 2351, 553, ...] | 6个整数 +-------------------------------------+ | v +-- Embedding ------------------------+ | 查表: 整数 → 768维向量 | [6, 768] 矩阵 | + 位置编码（告诉模型顺序） | +-------------------------------------+ | v +-- Transformer Block ×12 -----------+ （GPT-2有12层，重复12次） | | | +-- Multi-Head Attention ---------+ | | | X → Q,K,V (各768维) | | 投影，不是截断 | | 拆成12个head (各64维) | | | | 每个head: QK^T/√64 → 分数 | | 点积求相似度 | | 分数 × V → 加权混合 | | 列视角：V各行的线性组合 | | 12个head拼回768维 | | | +----------------------------------+ | | | | | v | | +-- MLP (前馈网络) ----------------+ | | | 768 → 3072 → 768 | | 先扩大4倍，再压回来 | | 中间加ReLU/GELU激活 | | | +----------------------------------+ | | | +--------------------------------------+ | (经过12层后) v +-- 输出层 ----------------------------+ | [6, 768] × Wout[768, vocab] | | → [6, vocab_size] | 每个位置对所有词打分 | → softmax → 取最后一个token | \u0026#34;上\u0026#34;之后最可能的下一个词 | → 下一个token | +--------------------------------------+ 十二、速查总结表 概念 要点 数组/向量/矩阵/张量 同一类东西，只是维度不同，代码里统一叫 tensor 矩阵乘法三视角 点积=怎么算，列视角=在干什么（线性组合），行视角=另一种组合 矩阵乘法方向 右到左。y = ABx 中 B 先作用于 x，A 再作用于结果 一个 token d_model 维的浮点向量（GPT-2: 768维） 点积 vs 余弦 都衡量相似度。Attention 用缩放点积，检索/RAG 用余弦 投影 vs 截断 不是截断！768 维全部参与计算，压缩重组到 64 维 QKV 大小 各 [序列长度, d_model]，拆成多头后每头 [序列长度, d_head] 多头注意力 12 组独立参数，各看不同模式（语法/位置/共指等），自发涌现 降维 768→64 为了拼接后维度守恒 + 残差连接能相加 残差连接 output = input + 修正量，解决梯度消失，让深层网络能训练 LayerNorm 防数值爆炸，稳定训练 因果掩码 禁止偷看未来 token，实现自回归生成 MLP Attention 负责交流（开会），MLP 负责理解（消化） 位置编码 告诉模型 token 的先后顺序 系列文章 本文建立了 Transformer 的数学直觉。如果你想看真实训练数据——每一个权重矩阵、每一个中间向量、每一个注意力分数的实际数字——请看：\n用 4192 个参数看透 Transformer：QKV、多头注意力、MLP 全拆解\n那篇文章用 Karpathy 的 microgpt（200 行纯 Python，零依赖）训练了一个迷你 GPT，然后把模型完全打开——所有数字都来自真实训练，不是示意图。两篇文章配合食用效果最佳。\n","permalink":"https://jason-azure.github.io/ai-blog/posts/transformer-math/","summary":"不做证明，只建直觉。从矩阵乘法的三种视角出发，一步步搭建理解 Transformer 的完整数学框架：QKV 投影、多头注意力、残差连接、MLP，以及它们如何协作生成下一个 token。","title":"从矩阵乘法到 Transformer：LLM 背后的数学直觉"},{"content":"引言 你有没有好奇过：ChatGPT 回答英文问题总是又快又好，但中文有时候会\u0026quot;翻译腔\u0026quot;？国内的 DeepSeek、Qwen 在中文上明显更流畅，它们做了什么不同的事？\n答案藏在三个层面：训练数据的语言比例、Tokenizer 的设计、Embedding 的效率。\n这不是一个简单的\u0026quot;中文语料多一点就行\u0026quot;的问题。从 26 个英文字母到数千个汉字，从 50K 词表到 150K 词表，每一步都涉及根本性的技术权衡。今天我们把这条链路彻底拆开。\n本文脉络： 先看数据（谁用了多少中文语料），再看 Tokenizer（同一句话被拆成多少 Token），最后看 Embedding（大词表对模型参数的影响）。三层叠加，才是中英文 LLM 差异的完整图景。\n一、多语言能力从哪来？原生语料，不是翻译 一个常见的误解：GPT-4 能回答中文，是因为它学了大量的英汉翻译对照。\n事实恰好相反。 所有主流 LLM 的多语言能力都来自直接用目标语言的原生语料训练，而非翻译。\n为什么不能靠翻译？\n翻译腔：翻译文本带有源语言的思维模式（\u0026ldquo;这是一个\u0026hellip;的情况\u0026rdquo;），模型学到的不是地道中文 知识缺失：大量中文特有知识不存在英文原文——《西游记》原文、中国法律法规、网络热梗 规模瓶颈：高质量翻译语料的量级远不及原生网页语料 但这里有一个有趣的现象：跨语言迁移（Cross-lingual Transfer）。\n模型在大量英文语料上学到的推理能力、逻辑结构、世界知识，会部分\u0026quot;迁移\u0026quot;到其他语言上。多语言 Embedding 空间中，不同语言的相似概念会被映射到相近的向量位置。\n这也是为什么 GPT-3 虽然只有 0.1% 的中文训练数据，却仍然能回答一些中文问题。不是因为它\u0026quot;学过\u0026quot;足够多的中文，而是因为它在英文中学到的世界知识结构可以跨语言复用。\n但\u0026quot;能回答\u0026quot;和\u0026quot;回答得好\u0026quot;之间，差距巨大。这就引出了核心问题：各家模型到底用了多少中文数据？\n二、训练语料的语言比例：数据决定能力上限 GPT 系列：英文为王 GPT-3 的论文（Brown et al., 2020）公开了训练数据的语言分布，这是目前唯一有精确数字的主流模型：\n语言 占比 英文 92.65% 法语 1.82% 德语 1.47% 西班牙语 0.77% 意大利语 0.61% 日语 0.11% 中文 0.10% 韩语 0.02% 其他 110+ 种语言 ~3.45% 中文只占 0.1%——是英文的 926 分之一。\nGPT-4 和 GPT-4o 没有公开语言分布数据。但从 GPT-4 在多语言 MMLU 基准测试上的表现看——它在 26 种语言中的 24 种上超过了 GPT-3.5 的英文成绩——推测多语言数据比例有大幅提升，但英文仍然是绝对主导。\n国内模型：中英双语并重 国内主流大模型的训练策略明显不同——有意识地大幅提高中文语料比例：\n模型 开发团队 训练数据量 中文占比（推测） 英文占比 Qwen2.5 阿里 18 万亿 tokens ~40-50% ~40-50% DeepSeek-V3 深度求索 14.8 万亿 tokens ~40%+ ~50% GLM-4 智谱 AI ~10 万亿+ tokens ~50%+ ~40% Baichuan 2 百川智能 2.6 万亿 tokens ~55% ~35% 几个关键观察：\n中文普遍占 40-55%，远超 GPT-3 的 0.1% 都是中英双语为主，再加少量其他语言 代码语料也占相当比例（10-20%），因为代码能提升逻辑推理能力 DeepSeek-V2 技术报告明确提到\u0026quot;中文 tokens 比英文多约 12%\u0026quot;——刻意加重中文 一句话总结：GPT-3 是\u0026quot;英文模型顺便支持中文\u0026quot;，国内模型是\u0026quot;中英双语原生模型\u0026quot;。这是设计理念的根本差异。\n三、Tokenizer：同一句话，Token 数量差 13 倍 训练语料的比例决定了模型\u0026quot;见过多少中文\u0026quot;，但还有一个更底层的问题：模型怎么切分中文文本？\n这就是 Tokenizer（分词器）的战场。\n核心问题：一个汉字 = 几个 Token？ 用不同的 Tokenizer 处理同一句中文 \u0026ldquo;人工智能是未来的发展方向\u0026rdquo;（12 个汉字），结果天差地别：\nTokenizer 词表大小 Token 数 切分方式 GPT-2 50,257 22 每个汉字拆成 2-3 个字节 token GPT-4 (cl100k) 100,277 13 大部分汉字单独编码 GPT-4o (o200k) 200,019 6 常见词组合并（\u0026ldquo;人工\u0026quot;\u0026ldquo;智能\u0026quot;\u0026ldquo;未来\u0026rdquo;） Qwen2 151,643 5 \u0026ldquo;人工智能\u0026quot;整词编码 DeepSeek-V2 100,000 5 \u0026ldquo;人工智能\u0026quot;整词编码 GLM-4 151,329 6 \u0026ldquo;人工智能\u0026quot;\u0026ldquo;发展方向\u0026quot;整词编码 GPT-2 对同样一句中文要花 22 个 Token，而 Qwen2 只需要 5 个。\nToken 效率的全面对比 为了更直观地理解差异，我们用\u0026quot;每个汉字消耗多少 Token\u0026quot;来衡量：\nTokenizer 每汉字 Token 数 每英文字母 Token 数 中/英成本比 GPT-2 2.11 0.16 13.3x GPT-4 (cl100k) 1.12 0.16 7.1x GPT-4o (o200k) 0.56 0.15 3.7x Qwen2 0.49 0.16 3.1x DeepSeek-V2 0.46 0.16 2.9x GLM-4 0.62 0.21 3.0x GPT-2\n13.3x 成本 → GPT-4\n7.1x 成本 → GPT-4o\n3.7x 成本 → Qwen / DeepSeek\n~3x 成本 中文 Token 效率演进：从 13 倍差距到 3 倍\n两个关键结论：\n中文在任何 Tokenizer 下都比英文\u0026quot;贵\u0026rdquo;——这是 UTF-8 编码的物理限制（一个汉字 = 3 字节 vs 一个英文字母 = 1 字节） 但从 GPT-2 到 Qwen2，中文的 Token 效率提升了 4.3 倍——这是 Tokenizer 设计的胜利 为什么 GPT-2 对中文这么\u0026quot;浪费\u0026rdquo;？ 根本原因：GPT-2 的 Tokenizer 几乎只在英文上训练。\nTokenizer 的核心算法是 BPE（Byte Pair Encoding，字节对编码）。它的工作方式：\n第 1 步：从 256 个基础字节开始（覆盖所有可能的字节值） 第 2 步：统计训练语料中最频繁出现的字节对 第 3 步：把最频繁的字节对合并为新 token 第 4 步：重复第 2-3 步，直到达到目标词表大小 当训练语料 93% 是英文时：\n\u0026ldquo;th\u0026rdquo; 出现频率极高 → 被合并为一个 token \u0026ldquo;the\u0026rdquo; → 进一步合并 \u0026ldquo;ing\u0026rdquo;, \u0026ldquo;tion\u0026rdquo;, \u0026ldquo;ment\u0026rdquo; → 全部有专属 token 但中文在训练语料中只占 0.1%：\n\u0026ldquo;人\u0026quot;的 UTF-8 字节序列 [0xe4, 0xba, 0xba] 出现频率太低 远远排不到合并队列前面 结果每个汉字被拆成 2-3 个字节 token 一个类比：想象你在整理图书馆，你有 50,000 个标签。如果 93% 的书是英文，你自然会给英文书创建精细分类（\u0026ldquo;科幻/赛博朋克\u0026rdquo;、\u0026ldquo;科幻/太空歌剧\u0026rdquo;）。中文书那一小架子？全贴一个\u0026quot;外文\u0026quot;标签就完了。\n四、国内大模型的技术突围 解法 1：扩大词表 + 中文语料重新训练 BPE 这是最核心的改进。对比各家词表规模：\nGPT-2: 50,257 tokens → 中文 1 字 ≈ 2-3 tokens LLaMA 1/2: 32,000 tokens → 中文 1 字 ≈ 2-3 tokens（更小词表，中文更惨） LLaMA 3: 128,256 tokens → 中文有改善，但中文不在官方支持语言中 GPT-4o: 200,019 tokens → 中文 1 字 ≈ 0.5 tokens ✓ Qwen2.5: 151,643 tokens → 中文 1 字 ≈ 0.5 tokens ✓ DeepSeek-V3: 128,000 tokens → 中文 1 字 ≈ 0.5 tokens ✓ GLM-4: 151,329 tokens → 中文 1 字 ≈ 0.6 tokens ✓ 做法：在包含大量中文的语料上重新训练 BPE，让高频中文词汇（\u0026ldquo;我们\u0026rdquo;、\u0026ldquo;因为\u0026rdquo;、\u0026ldquo;人工智能\u0026rdquo;）被合并为单个 token。\n词表从 50K 扩到 150K，增加的那 10 万个位置，主要就是给中文（和其他非英语语言）的常见字词留的。\n解法 2：字节级 BPE (BBPE) + 智能预分词 现代中文优化 Tokenizer 的标准架构：\n原始文本 ↓ 预分词 (Pre-tokenization) ├── 中文：按字/词边界切分 ├── 英文：按空格 + 标点切分 └── 代码：按语法符号切分 ↓ 字节级 BPE (BBPE) ↓ Token ID 序列 Qwen2 的方案比较典型：\n基于 tiktoken 框架（与 OpenAI 相同的底层库） 151,643 个 token 的大词表 中文常用字基本都有独立 token 高频中文词组（\u0026ldquo;学习\u0026rdquo;、\u0026ldquo;可以\u0026rdquo;、\u0026ldquo;人工智能\u0026rdquo;）合并为单 token 罕见字回退到字节序列，保证 零 OOV（不会遇到未知字符） GLM-4 的方案更有意思——它把中文词表和 OpenAI 的 cl100k_base 词表合并：\n先单独在中文和多语言语料上学习 token 再与 OpenAI 的英文词表合并 最终 151,329 个 token，兼顾中英文效率 解法 3：词表扩展方案（Chinese-LLaMA 的路线） 如果你已经有一个英文为主的基座模型（比如 LLaMA），又想增加中文能力怎么办？\n崔一鸣团队（2023）提出的 Chinese-LLaMA 方案：\n在 LLaMA 的 32K 词表基础上，额外添加 20,000 个中文 token（总共约 50K） 用 120GB 中文文本做二次预训练 再用百万级中文指令数据做微调 效果：中文编码效率从 ~2.5 tokens/字 降到 ~1.0 tokens/字，在 C-Eval 基准上达到\u0026quot;数倍参数量模型\u0026quot;的水平。\n但这种\u0026quot;后补\u0026quot;方案终究不如从头训练的原生双语模型。中文 token 的 Embedding 没有经过充分预训练，深层语义理解有差距。\n五、Embedding 层：大词表的代价 词表变大，解决了 Token 效率问题，但带来新的挑战：Embedding 矩阵膨胀。\n参数量对比 Embedding 层的参数量 = 词表大小 × 嵌入维度：\n模型 词表大小 嵌入维度 Embedding 参数量 占总参数比例 GPT-2 (117M) 50,257 768 38.6M ~33% nanoGPT 西游记 ~4,000 256 1.0M ~30% Qwen2-7B 151,643 4,096 621M ~8% DeepSeek-V3 (671B) 128,000 7,168 917M ~0.1% 两个有趣的规律：\n小模型中，Embedding 是参数大户——nanoGPT 训练西游记时，仅 Embedding 就占了总参数的 30%。这也是我们在 VM 上亲身体验到的：西游记模型比 Shakespeare 模型更难训练，因为 4000+ 的词表导致 Embedding 层参数暴增 大模型中，Embedding 占比反而很小——Qwen2-7B 的 621M Embedding 参数只占总体 8%，到 DeepSeek-V3 的 671B 总参数，Embedding 只占 0.1% 工程优化手段 为了控制大词表带来的开销，工业界有几种常用策略：\nWeight Tying（权重共享）：输入 Embedding 矩阵和输出 lm_head（最后一层的分类矩阵）共享同一组权重。原本需要两个 [vocab_size × hidden_dim] 的矩阵，现在只需要一个。这是最常用的优化，GPT-2、Qwen2 都使用了。\n实际计算开销可控：Embedding 层的\u0026quot;计算\u0026quot;其实只是查表（lookup），不涉及矩阵乘法。一个 Token 进来，直接取对应行的向量就走了。真正的计算瓶颈在 Transformer 的 Attention 和 MLP 层。\n所以大词表的代价主要是显存，不是算力。 这也是为什么 150K 词表在现代 GPU 上完全可行——多出来的 Embedding 参数只多占几百 MB 显存，但换来的中文编码效率提升是 4 倍以上。\n六、跨语言迁移：为什么 GPT-3 只有 0.1% 中文数据却能说中文？ 这是一个令人着迷的问题。GPT-3 的中文训练数据只有 0.1%，但它确实能回答中文问题——虽然质量远不如英文。这怎么做到的？\n三个迁移机制 1. 共享字节表示\n即使中英文在语义层面完全不同，在字节层面有少量重叠。数字（\u0026ldquo;2024\u0026rdquo;）、标点、英文借词在中英文本中都出现，这些共享 token 就像两种语言之间的\u0026quot;桥梁\u0026rdquo;，帮助模型建立跨语言的关联。\n2. 锚点文本\n训练数据中存在少量\u0026quot;中英文混合\u0026quot;的内容——维基百科的跨语言链接、学术论文的中英对照、代码注释。这些文本虽然量小，但为模型提供了关键的对齐信号，让它知道\u0026quot;人工智能\u0026quot;和\u0026quot;artificial intelligence\u0026quot;指向同一个概念。\n3. 结构普遍性\nTransformer 的 Attention 机制学到的某些模式是跨语言的：\n主语-谓语的依赖关系 否定词对语义的反转 列举结构的并列关系 这些语法结构在不同语言中有相似性，模型学会的英文语法模式可以部分迁移到中文。\n但迁移有上限 GPT-4 的多语言 MMLU 测试显示，它在 24/26 种语言上超过了 GPT-3.5 的英文成绩。这说明当模型规模足够大时，跨语言迁移能力确实很强。\n然而，原生双语训练的模型在中文任务上仍然显著优于\u0026quot;英文为主 + 跨语言迁移\u0026quot;的模型。这就是为什么 DeepSeek、Qwen 在中文评测中通常优于同等规模的 GPT 或 LLaMA。\n跨语言迁移是一个了不起的涌现现象，但不能替代充足的原生语料训练。\n七、总览：从 nanoGPT 到 GPT-4o 的完整图景 让我们把所有模型放在一张表里，看看中英文 LLM 的全貌：\n模型 词表大小 训练数据量 中文占比 每汉字 Token 数 Tokenizer 类型 nanoGPT Shakespeare 65 ~1M 字符 0% - 字符级 nanoGPT 西游记 ~4,000 ~2M 字符 100% 1.0 字符级 GPT-2 50,257 ~40B tokens \u0026lt;0.1% 2.11 字节级 BPE GPT-3 50,257 300B tokens 0.10% ~2.1 字节级 BPE LLaMA 1/2 32,000 1-2T tokens 极少 ~2.5 SentencePiece BPE LLaMA 3 128,256 15T+ tokens 少量 ~1.0 字节级 BPE GPT-4 100,277 未公开 未公开 1.12 字节级 BPE GPT-4o 200,019 未公开 未公开 0.56 字节级 BPE Baichuan 2 125,696 2.6T tokens ~55% ~0.50 SentencePiece BPE DeepSeek-V2 100,000 8.1T tokens \u0026gt;50% 0.46 BBPE DeepSeek-V3 128,000 14.8T tokens ~40%+ ~0.45 BBPE Qwen2 151,643 7-12T tokens ~45% 0.49 BBPE Qwen2.5 151,643 18T tokens ~45% ~0.49 BBPE GLM-4 151,329 ~10T+ tokens ~50%+ 0.62 BBPE + cl100k 合并 从 65 个字符的 Shakespeare 词表到 200,019 个 token 的 GPT-4o 词表，跨越了 3,077 倍。这个跨度就是理解中英文 LLM 差异的关键。\n八、动手验证：在我们的 VM 上感受差异 我们的 AI Lab VM 恰好有完整的教学链条来体验这些差异：\nShakespeare vs 西游记：nanoGPT 的亲身对比 # 激活虚拟环境 source ~/ai-lab-venv/bin/activate cd ~/nanoGPT # Shakespeare 字符级：65 个字符的词表，训练快速收敛 python sample.py --out_dir=out-shakespeare-char # 西游记字符级：4000+ 个字符的词表，训练明显更慢 python sample.py --out_dir=out-xiyouji 你会直观地感受到：\nShakespeare 模型在几千步就能生成像样的英文 西游记模型需要更多训练步数才能生成通顺的中文 根本原因：词表从 65 → 4000+，Embedding 参数暴增 60 倍 用 Ollama 体验生产级中文模型 # DeepSeek R1 1.5B — 专业中文 Tokenizer + 大规模中文训练 ollama run deepseek-r1:1.5b \u0026#34;用一句话解释什么是 Tokenizer\u0026#34; # Qwen3 0.6B — 阿里 15 万词表 + 18T tokens 训练 ollama run qwen3:0.6b \u0026#34;用一句话解释什么是 Tokenizer\u0026#34; 从 nanoGPT 的 4000 词表到 DeepSeek 的 128,000 词表，这就是\u0026quot;教学模型\u0026quot;到\u0026quot;生产模型\u0026quot;的距离。\n总结 中英文 LLM 的差异不是单一因素造成的，而是三层叠加：\n训练语料\n0.1% → 50% × Tokenizer\n50K → 150K 词表 × Embedding\n权重共享 + 查表 = 中文能力\n从勉强到原生 语料层：GPT-3 的 0.1% 中文 vs 国内模型的 40-55% 中文，决定了模型\u0026quot;见过多少中文世界\u0026rdquo; Tokenizer 层：从 GPT-2 的 13.3 倍成本到 Qwen2 的 3.1 倍成本，决定了每个 Token 承载多少中文语义 Embedding 层：150K 词表的大 Embedding 矩阵只多占几百 MB 显存，换来 4 倍以上的中文效率，这笔账怎么算都划算 而我们在 VM 上用 nanoGPT 训练 Shakespeare 和西游记的经历，恰好是这个宏大故事的微缩版：65 个字符 vs 4000 个字符的词表差异，就是英文 LLM 和中文 LLM 技术鸿沟的缩影。\n理解了这三层差异，你就理解了为什么中文世界需要自己的大模型——不只是\u0026quot;数据主权\u0026quot;的叙事，更是底层技术架构的必然要求。\n参考文献\nBrown et al. (2020). Language Models are Few-Shot Learners (GPT-3). arXiv: 2005.14165 OpenAI (2023). GPT-4 Technical Report. arXiv: 2303.08774 Yang et al. (2024). Qwen2 Technical Report. arXiv: 2407.10671 Qwen Team (2024). Qwen2.5 Technical Report. arXiv: 2412.15115 DeepSeek-AI (2024). DeepSeek-V2: A Strong, Economical, and Efficient Mixture-of-Experts Language Model. arXiv: 2405.04434 DeepSeek-AI (2024). DeepSeek-V3 Technical Report. arXiv: 2412.19437 GLM Team (2024). ChatGLM: A Family of Large Language Models from GLM-130B to GLM-4 All Tools. arXiv: 2406.12793 Yang et al. (2023). Baichuan 2: Open Large-scale Language Models. arXiv: 2309.10305 Cui et al. (2023). Efficient and Effective Text Encoding for Chinese LLaMA and Alpaca. arXiv: 2304.08177 Conneau et al. (2020). Unsupervised Cross-lingual Representation Learning at Scale (XLM-R). arXiv: 1911.02116 ","permalink":"https://jason-azure.github.io/ai-blog/posts/chinese-english-llm/","summary":"为什么 GPT-3 的中文只占训练数据的 0.1%？为什么同样一句话中文要花 13 倍的 Token？国内大模型是怎么用 15 万词表逆转这个劣势的？从训练语料、Tokenizer 到 Embedding，一篇讲透中英文 LLM 的底层差异。","title":"中文 vs 英文：大语言模型的语言鸿沟与技术突围"},{"content":"引言 \u0026ldquo;AI\u0026quot;可能是这个时代被使用最多、也被误解最多的一个词。\n一个创业者说\u0026quot;我们的产品用了 AI\u0026rdquo;，他可能只是接了一个 ChatGPT 的 API。一个投资人说\u0026quot;AI 赛道\u0026quot;，他可能指的是从芯片到应用的整条产业链。一个家长说\u0026quot;AI 会不会取代我孩子的工作\u0026quot;，他心里想的可能是一个无所不能的机器人。而一个研究者说\u0026quot;AI 还远远不够\u0026quot;，他在谈论的是一个我们甚至无法定义的目标——通用智能。\n同一个词，在不同语境下，指向完全不同的东西。 概念的混淆带来判断的失误——有人高估它，有人恐惧它，有人在错误的层面上讨论它。\n这篇文章想做一件事：画一张地图。\n把 AI、机器学习、神经网络、深度学习、Transformer、LLM 这些纠缠在一起的概念各归其位。更重要的是，我想讲清楚一件大多数人没意识到的事：当下这波 AI 浪潮的底层，不是某个具体的产品或模型，而是一次认知范式的更换——它和传统软件的区别，不是程度上的，而是本质上的。\n一、AI 家族的层级关系 AI 领域的这些概念不是并列的，而是层层嵌套的——每一层都完整地包含在外面一层里。\nAI（人工智能）1956— 让机器表现出\"智能行为\"的一切技术 Machine Learning（机器学习）1980s— 不写规则，让机器从数据中自己学 Deep Learning（深度学习）2012— 很多层的神经网络 + GPU 算力 LLM（大语言模型）2020— Transformer + 海量文本 + 巨大规模 每一层都完整地包含在外面一层里——所有 LLM 都是深度学习，所有深度学习都是机器学习，所有机器学习都是 AI。但反过来不成立：很多 AI 不是机器学习（比如 1980 年代的专家系统），很多机器学习不是深度学习（比如决策树）。\n这张图解决了一大半的术语混乱。接下来我们进入最重要的那一层。\n二、机器学习：一次被低估的范式革命 2.1 一切始于一个反转 AI 研究经历了几十年的探索，最终汇聚到一条主线上。这条主线的名字叫机器学习。\n理解机器学习，最好的方式不是定义它，而是把它和你已经熟悉的东西做对比。\nKeras 框架的创建者 François Chollet 画过一张被引用了无数次的图，它用最少的笔墨捕捉了这次范式转变的本质：\n规则 数据 → 传统\n程序 → 答案 数据 答案 → 机器\n学习 → 规则\n(模型) 传统编程： 人类写规则 + 数据 → 答案。 机器学习： 数据 + 答案 → 机器自己找出规则。\n箭头的方向反了。 这就是全部。\n但这个反转的意义是深远的。用一个例子来感受。\n2.2 一个例子：预测上海的房价 假设你有一批上海二手房成交数据——面积和成交价。你想预测一套新房子能卖多少钱。\n传统做法： 你是资深中介，凭经验写规则——\nif 陆家嘴 and 面积 \u0026gt; 100: 价格 = 面积 × 12万 elif 外环外: 价格 = 面积 × 3万 elif 老静安 and 学区房: 价格 = 面积 × 15万 ... 这些规则能用，但永远不够精确。同一个小区的不同楼层、朝向、楼龄、装修都会影响价格，排列组合有几千种。你写不完，也调不准。\n更要命的是：市场在变。去年的规则今年就不准了，你得不断回来改代码。\n机器学习做法完全不同。 你不写任何规则。你把所有历史成交数据（面积、楼层、朝向……和真实成交价）一股脑丢给机器，说一句话：\n\u0026ldquo;你自己去找面积和价格之间的关系。\u0026rdquo;\n机器怎么做？三步循环：\n第一步：随机猜。 机器先随便猜一组参数，比如 价格 = 0.5 × 面积 + 100。这条线画出来跟真实数据点差得很远。\n第二步：量化\u0026quot;差多远\u0026quot;。 用一个叫 Loss（损失函数） 的数字来衡量预测值和真实值的差距。Loss 越大，错得越离谱。\n第三步：往更好的方向调一小步。 计算 Loss 对每个参数的导数（梯度），朝着让 Loss 变小的方向微调参数。这就是梯度下降——想象你蒙着眼站在山上，用脚探路，每次朝下坡方向迈一小步。\n然后重复。猜 → 量化差距 → 调整。几千次之后，那条线就贴合了数据。\n蓝点：真实成交数据 ｜ 红线：模型预测——随着训练进行，Loss 不断下降，预测线逐步逼近真实分布 这个循环——前向传播、计算 Loss、梯度下降——是所有机器学习的训练核心。 从 1990 年代的线性回归到 2024 年训练 GPT-4，底层都是它。\n2.3 但等一下——人到底做了什么？ 走到这里，你应该有一个疑惑：\n\u0026ldquo;你说机器学习是\u0026rsquo;机器自己找规则\u0026rsquo;。但公式 y = wx + b 不也是人定的吗？这跟传统编程有什么区别？\u0026rdquo;\n好问题。这正是最容易混淆的地方。\n让我们把分工彻底说清楚。机器学习中：\n人类定框架——选什么结构的模型（一条直线？一个三层网络？一个 96 层 Transformer？），用什么损失函数，学习率设多大。这些叫超参数和架构设计。 机器填参数——在人定的框架内，通过梯度下降，从数据中找到最优的参数值。 一个类比：\n传统编程像建筑师亲自砌每一块砖——墙放哪、门开多大，全部由人决定。\n机器学习像建筑师只画了\u0026quot;三室两厅\u0026quot;的平面图，然后让一个自动化系统去试几千种具体布局方案，从中选出居住体验最好的那个。\n图纸是人画的。房子是机器盖的。\n这个区别在不同规模的模型中始终成立：\n模型 人类定的框架 机器找的参数 线性回归 y = wx + b w, b（2 个数字） 小型神经网络 3 层，每层 64 个神经元 ~12,000 个权重 GPT-3 96 层 Transformer 1750 亿个权重 从 2 个参数到 1750 亿个——框架越复杂，机器能学到的模式越丰富。这就是大模型\u0026quot;涌现\u0026quot;能力的底层原因：不是算法变了，是框架给了机器更大的探索空间。\n2.4 框架选错了会怎样？——过拟合 既然人类负责选框架，那选错了会发生什么？\n还是房价例子。如果你用一条直线（2 个参数），可能太简单，学不到弯曲的趋势——这叫欠拟合。如果你用一条 15 次多项式曲线（16 个参数），模型有足够的灵活性穿过每一个数据点——在训练数据上完美，但面对新数据就一塌糊涂——这叫过拟合。\n左：框架太简单（欠拟合）—— 中：复杂度恰当 —— 右：框架太灵活（过拟合，穿过每个点但扭曲离谱）\n（来源：scikit-learn 官方文档，Underfitting vs. Overfitting） 过拟合的本质：机器把训练数据中的噪声也当成规律学进去了。 它\u0026quot;背\u0026quot;住了答案，而不是\u0026quot;理解\u0026quot;了规律。\n这件事在 LLM 中同样存在——如果语言模型把训练数据背下来而不是学会语言的规律，它就会在训练数据之外的问题上\u0026quot;一本正经地胡说八道\u0026quot;。\n所以机器学习工程师的核心技能之一，就是给机器选择恰当复杂度的框架。不能太简单，也不能太灵活。这个平衡点的选择，至今仍然更接近手艺而不是科学。\n三、神经网络与深度学习：一段改名求生的历史 3.1 神经网络：简单到令人意外 一个人工神经元做的事只有一件：接收几个输入，加权求和，过一个激活函数。就这样。\n但当你把成千上万个神经元连成网络，层层叠加——奇妙的事情发生了。网络开始能学会极其复杂的模式：从图片中认出猫、从语音中识别文字、从文本中预测下一个词。\n神经网络本质上就是一种机器学习的框架——一种特别灵活的、层次化的函数结构。人定义\u0026quot;几层、每层多宽\u0026quot;，机器通过梯度下降来填充所有权重。\n3.2 四十年的寒冬 1969 年，AI 先驱 Marvin Minsky 用数学证明了单层神经网络连最简单的异或逻辑都学不会。这本书（《Perceptrons》）的杀伤力是毁灭性的——整个学术界得出结论：神经网络是死路一条。\n经费被砍，论文被拒，研究者被嘲笑。从 1969 年到 2006 年，将近四十年，做神经网络研究的人在学术界被视为异端。NeurIPS 会议上投稿神经网络论文，评审意见常常就一句话：\u0026ldquo;This is just a neural network.\u0026rdquo;\nGeoffrey Hinton 在加拿大多伦多大学，带着极少经费，一年又一年地发论文，一年又一年地被无视。他后来说：\n\u0026ldquo;我们就像一小群人在沙漠中行走，所有人都说前面没有绿洲。\u0026rdquo;\n3.3 \u0026ldquo;深度学习\u0026rdquo;——一个绕过偏见的名字 2006 年，Hinton 证明了深层网络可以被有效训练。但问题是：\u0026ldquo;Neural Network\u0026quot;这三个字已经臭了。 四十年的冷遇让这个词在学术界等同于\u0026quot;过时、已被证伪、不值得讨论\u0026rdquo;。\n于是他和同行开始用一个新名字：Deep Learning。\n同样的技术，换了个名字，绕过了四十年的偏见。 2012 年 AlexNet 用两块游戏显卡在图像识别比赛中碾压所有传统方法后，\u0026ldquo;深度学习\u0026quot;彻底爆发。\n2018 年，Hinton、LeCun 和 Bengio 三人获得图灵奖。从异端到最高荣誉，他们等了三十年。\n这段历史的完整故事，可以看 《AI 的 70 年》三部曲。\n3.4 深度学习是一个家族 深度学习不是一种方法，而是一组不同的网络架构，各有擅长：\n架构 擅长 代表 CNN 图像 人脸识别、自动驾驶 RNN / LSTM 序列 早期翻译、语音识别 Transformer 序列→一切 GPT、Claude、DeepSeek Diffusion 图像生成 Midjourney、Stable Diffusion \u0026ldquo;AI 能画画\u0026quot;是扩散模型，\u0026ldquo;AI 能聊天\u0026quot;是 Transformer——它们都是深度学习家族里的不同分支。\n四、Transformer 与 LLM：最内圈的爆发 2017 年 Google 论文《Attention Is All You Need》提出 Transformer 架构。之前的 RNN 像逐字读书，读到第 100 个字时，第 1 个字已经记不清了。Transformer 像一眼扫完整页，然后直接计算任意两个词之间的关联。\n它之所以能替代 RNN，是因为它天然适合 GPU 并行计算——恰好赶上了算力指数级增长的时代。\nLLM（大语言模型） 就是用 Transformer 架构、在海量文本上训练出来的超大规模模型。它做的事本质上极其简单：预测下一个词。\n但当框架足够大（1750 亿参数）、数据足够多（万亿 token）时，这个简单的任务涌现出了对话、推理、编程、创作等能力。\n一个 LLM 从训练到变成你手里的 ChatGPT，要经过四个阶段：\n预训练 指令微调 对话微调 技能扩展 \u0026#34;读遍天下书\u0026#34; \u0026#34;学会听指令\u0026#34; \u0026#34;学会聊天\u0026#34; \u0026#34;学会用工具\u0026#34; ↓ ↓ ↓ ↓ Base Model Instruct Model Chat Model AI 应用 每个阶段用的都是我们前面讲的东西：预训练用梯度下降，指令微调用监督学习，对话对齐用 RLHF（强化学习），技能扩展用 RAG 和 Agent。\n机器学习不是 LLM 的\u0026quot;祖先\u0026rdquo;。它是 LLM 正在使用的每一项核心技术。\n五、LLM 之上：AI 系统的完整拼图 LLM 是\u0026quot;大脑\u0026rdquo;，但光有大脑不够。一个完整的 AI 应用——比如你正在用的 ChatGPT 或 Claude——还需要记忆、工具和执行力：\nAI 系统 System Prompt — \"你是谁、该怎么做\" User Prompt — 用户当前的问题 RAG — 回答前先查知识库 Skills / MCP / Tools — 连接外部系统 ↓ LLM（大语言模型）\n理解所有输入，生成输出 ↓ Agent 循环 — 思考→行动→观察→再思考 组件 一句话 RAG 回答前先查资料——让 AI 能用最新知识 Agent 自主规划和执行的项目经理——不只是回答，还能办事 MCP AI 连接外部系统的统一接口——USB-C 式标准协议 Skills 把专家经验写成标准流程——让 AI 按章办事 所有让 AI 变聪明的技术，本质上都在做同一件事：给大脑喂更好的输入。\n关于这些组件的详细拆解，会在后续文章中展开。\n六、回到那张地图 现在我们可以回答引言中的问题了——当不同的人说\u0026quot;AI\u0026quot;时，他们到底在说什么：\n语境 实际所指 \u0026ldquo;我们产品用了 AI\u0026rdquo; 最内圈：接了一个 LLM 的 API \u0026ldquo;公司要上 AI\u0026rdquo; AI 系统层：LLM + RAG + Agent 的集成方案 \u0026ldquo;AI 替代程序员\u0026rdquo; AI 系统层：Agent（LLM + 工具调用 + 自主循环） \u0026ldquo;AI 能画画\u0026rdquo; 深度学习层：扩散模型（不是 LLM） \u0026ldquo;AI 还远远不够\u0026rdquo; 最外圈的终极愿景：AGI（目前不存在） 概念各归其位。但这篇文章真正想传递的，不是这张分类表。\n真正重要的事 当下所有让你觉得\u0026quot;AI 爆发了\u0026quot;的东西——ChatGPT、Claude、Copilot、Midjourney——无一例外，都是机器学习的产物。它们共享同一个底层范式：\n不是人类写规则让机器执行，而是人类提供数据让机器自己学。\n这件事的意义比大多数人意识到的更深。\n传统软件是确定性的——同样的输入永远产生同样的输出。你可以追踪每一步逻辑，定位每一个 bug，理解每一个决策。几十年的软件工程方法论——测试、调试、代码审查——都建立在这个确定性之上。\n而机器学习产出的模型是概率性的——它给出的是\u0026quot;最可能的回答\u0026rdquo;，不是\u0026quot;确定正确的回答\u0026quot;。它的\u0026quot;知识\u0026quot;不在代码里，而在几千亿个浮点数组成的权重矩阵里。你无法逐行审查它的\u0026quot;逻辑\u0026quot;，因为那些逻辑从未被人类显式写出——它们是从数据中涌现的。\n传统软件 AI / 机器学习 人类写逻辑 机器从数据中学 确定性输出 概率性输出 每一步可验证 整体可测试，内部不透明 \u0026ldquo;知识\u0026quot;在代码里 \u0026ldquo;知识\u0026quot;在权重矩阵里 修 bug = 改代码 修 bug = 换数据、调架构、重新训练 这不是技术升级。这是范式更换。\n它意味着我们正在进入一个时代：越来越多影响你生活的决策——贷款审批、内容推荐、医疗诊断辅助——将由你无法审查其逻辑的系统做出。这些系统有效、强大、有时惊人地准确，但它们的工作方式与人类几千年来构建知识体系的方式根本不同。\n理解这个范式转变——知道它的力量在哪里、边界在哪里、代价是什么——不是技术人员的专利。它是这个时代每一个人需要具备的基本素养。\n这就是为什么我们要从头讲起。\n延伸：动手体验与推荐阅读 理论看完了，想动手试一下？\n资源 做什么 适合谁 Google Teachable Machine 用摄像头训练一个真实的图像分类器，5 分钟出结果 零基础，想亲手体验\u0026quot;训练模型\u0026rdquo; TensorFlow Playground 浏览器里调参，实时看神经网络学习分类边界 想直观感受\u0026quot;层数\u0026quot;和\u0026quot;神经元数量\u0026quot;的影响 Jay Alammar 的可视化教程 交互式体验房价预测和梯度下降 想动手调权重、看 Loss 变化 3Blue1Brown 神经网络系列 用数学动画解释神经网络和梯度下降 想从数学层面建立直觉 本博客的相关深度文章：\n《AI 的 70 年》三部曲 —— 从达特茅斯的梦想到 ChatGPT 的爆发 《AI 的数学语言》六篇系列 —— 从向量到梯度下降，零基础也能看懂 《Attention 机制零基础拆解》 —— 用加减乘除看懂注意力 《LLM 全流程可视化》 —— 从输入到输出的每一步 博客：AI-lab学习笔记 ｜ 微信公众号：AI-lab学习笔记\n","permalink":"https://jason-azure.github.io/ai-blog/posts/ai-landscape/","summary":"当我们谈论 AI 时，创业者、投资人、家长和研究者说的可能完全不是同一件事。本文用一张嵌套图理清 AI、机器学习、深度学习、LLM 的层级关系，用一个房价预测的例子让你感受机器学习的范式革命——以及为什么理解这件事，比你想象的更重要。","title":"AI 全景定位：从概念迷雾到清晰地图"},{"content":"引言 你和 ChatGPT 对话时，它每次给出的回答都略有不同。为什么？\n因为 LLM 的本质，不是一个知道答案的数据库，而是一台 「下一个词的概率预测机器」。它不是\u0026quot;知道\u0026quot;该说什么，而是在所有候选词中掷一颗加权骰子，概率高的词更容易被选中。\n这篇文章，我们从零开始，用掷骰子的直觉，一步步拆解 LLM 背后的概率论——从最基础的\u0026quot;什么是概率\u0026quot;，到 Softmax、交叉熵、Temperature、采样策略，再到训练中最深层的两大支柱：大数定律和中心极限定理。\n阅读前提： 不需要任何数学基础。每个公式都会用生活类比先讲清楚直觉，再给出数学表达。\n本文导读 概率基础（第一~二章）\n① 条件概率：LLM 在做什么？ → ② Softmax：把分数变成概率\n从掷骰子讲起，理解 LLM 预测下一个词的核心逻辑。 训练与评估（第三~四章）\n③ 交叉熵：训练的指挥棒 → ④ 困惑度：给模型打分\n模型怎么从一无所知变成能说话？怎么衡量它学得好不好？ 生成控制（第五~六章）\n⑤ Temperature：调节创造力 → ⑥ 采样策略：怎么选词\n同一个模型，为什么有时保守有时疯狂？Top-K 和 Top-P 是什么？ 深层支柱（第七~八章）\n⑦ 大数定律：训练为什么能成功 → ⑧ 中心极限定理：架构设计的隐形之手\n不写在代码表面，却是 LLM 能训练成功的地基级理论保障。 第一章：LLM 在做什么？——条件概率 从猜字游戏说起 小时候玩过猜字游戏吗？我说\u0026quot;床前明月\u0026quot;，你脱口而出——\u0026ldquo;光\u0026rdquo;。\n你的大脑在做什么？根据前面的字，预测下一个字。 LLM 做的事情完全一样——只不过它是用数学来做的。\n什么是条件概率？ 先看一个最简单的例子。\n一副扑克牌有 52 张。随机抽一张是红心的概率：\nP(红心) = 13/52 = 1/4 = 25% 但如果我告诉你\u0026quot;这张牌是红色的\u0026quot;，那它是红心的概率变成多少？\n红色的牌有 26 张（红心13 + 方块13） 其中红心有 13 张 P(红心 | 已知是红色) = 13/26 = 1/2 = 50% 这个竖线 \u0026ldquo;|\u0026rdquo; 读作\u0026quot;在……条件下\u0026quot;。 它的意思是：已知了一些信息后，某件事的概率会变化。\n这就是条件概率——你拥有的信息越多，预测就越准确。\nLLM 的核心任务 LLM 做的就是一个超大规模的条件概率计算。给定前面所有的字，预测下一个字的概率：\nP(下一个字 | 前面所有的字) 具体来说：\n输入: \u0026#34;床前明月\u0026#34; 模型计算: P(\u0026#34;光\u0026#34; | \u0026#34;床前明月\u0026#34;) = 0.92 ← 最可能 P(\u0026#34;色\u0026#34; | \u0026#34;床前明月\u0026#34;) = 0.03 P(\u0026#34;亮\u0026#34; | \u0026#34;床前明月\u0026#34;) = 0.02 P(\u0026#34;下\u0026#34; | \u0026#34;床前明月\u0026#34;) = 0.01 ...其他几万个字，概率都很小 有前文 vs 没前文，差别巨大：\n没有前文: P(\u0026#34;光\u0026#34;) = 0.001 ← \u0026#34;光\u0026#34;只是几万个字中普通的一个 有了前文: P(\u0026#34;光\u0026#34;|\u0026#34;床前明月\u0026#34;) = 0.92 ← 知道了前文，\u0026#34;光\u0026#34;几乎是唯一答案 一句话：条件概率就是\u0026quot;已知一些信息后的概率\u0026quot;。LLM 的全部工作，就是利用前文信息，算出每个候选词的条件概率。\n概率的链式法则：一句话的概率怎么算？ 一整句话的概率，等于每个字的条件概率逐个相乘：\nP(\u0026#34;床前明月光\u0026#34;) = P(\u0026#34;床\u0026#34;) ← 第一个字的概率 × P(\u0026#34;前\u0026#34; | \u0026#34;床\u0026#34;) ← 已知\u0026#34;床\u0026#34;，\u0026#34;前\u0026#34;的概率 × P(\u0026#34;明\u0026#34; | \u0026#34;床前\u0026#34;) ← 已知\u0026#34;床前\u0026#34;，\u0026#34;明\u0026#34;的概率 × P(\u0026#34;月\u0026#34; | \u0026#34;床前明\u0026#34;) ← 已知\u0026#34;床前明\u0026#34;，\u0026#34;月\u0026#34;的概率 × P(\u0026#34;光\u0026#34; | \u0026#34;床前明月\u0026#34;) ← 已知\u0026#34;床前明月\u0026#34;，\u0026#34;光\u0026#34;的概率 这不是近似，不是假设——这是概率论的恒等式，叫做链式法则（Chain Rule）。\n为什么要相乘而不是相加？因为这些事件要同时发生。就像你抛两次硬币都要正面朝上的概率是 1/2 × 1/2 = 1/4，每个字都对了，整句话才对。\n掷骰子的类比 想象 LLM 是这样工作的：\n看到前文\u0026quot;床前明月\u0026quot; 拿出一颗特殊骰子——这颗骰子不是均匀的，它有几万个面（每个面代表一个字），但\u0026quot;光\u0026quot;那个面特别大，占了 92% 的面积 掷骰子，结果大概率落在\u0026quot;光\u0026quot;上 把\u0026quot;光\u0026quot;拼到文本后面，变成\u0026quot;床前明月光\u0026quot; 重新看前文\u0026quot;床前明月光\u0026quot;，换一颗新骰子，掷出下一个字 如此循环往复 关键洞察： 每生成一个字，骰子就换一颗。因为前文变了，概率分布就变了。LLM 不是用一颗固定骰子，而是每一步都重新计算概率。\n第二章：Softmax——把分数变成概率 问题：神经网络输出的不是概率 LLM 内部的神经网络做完所有计算后，最终会给每个候选词打一个分数，叫做 logit（逻辑值）。比如：\n词: \u0026#34;光\u0026#34; \u0026#34;色\u0026#34; \u0026#34;亮\u0026#34; \u0026#34;下\u0026#34; 分数: 3.5 1.2 0.3 -0.5 问题来了：\n分数可以是负数（\u0026ldquo;下\u0026quot;得了 -0.5 分） 分数不加起来等于 1（3.5 + 1.2 + 0.3 + (-0.5) = 4.5，不是 1） 分数没有上限（可以是 100、1000） 这些分数不是概率！概率必须满足两个条件：每个值在 0 到 1 之间，所有值加起来等于 1。\nSoftmax：一台概率制造机 Softmax 函数的工作就是把这些\u0026quot;野蛮\u0026quot;的分数，驯化成\u0026quot;文明\u0026quot;的概率。它分三步：\n第一步：用 e 的指数把所有分数变成正数\ne 是一个数学常数 ≈ 2.718（像圆周率 π ≈ 3.14 一样） e^3.5 = 33.12 ← 分数高 → 值大 e^1.2 = 3.32 e^0.3 = 1.35 e^-0.5 = 0.61 ← 负分数 → 值小但仍然是正数！ 为什么用 e 的指数？ 因为 e 的任意次方永远是正数。不管原始分数是 -100 还是 +100，经过 e^x 都变成正数。这就解决了\u0026quot;概率不能是负数\u0026quot;的问题。\n第二步：把所有值加起来\n总和 = 33.12 + 3.32 + 1.35 + 0.61 = 38.40 第三步：每个值除以总和\nP(\u0026#34;光\u0026#34;) = 33.12 / 38.40 = 0.863 (86.3%) P(\u0026#34;色\u0026#34;) = 3.32 / 38.40 = 0.086 ( 8.6%) P(\u0026#34;亮\u0026#34;) = 1.35 / 38.40 = 0.035 ( 3.5%) P(\u0026#34;下\u0026#34;) = 0.61 / 38.40 = 0.016 ( 1.6%) ───── 总和 = 1.000 ✓ 三个条件全满足了：\n✅ 每个值都在 0~1 之间 ✅ 所有值加起来 = 1 ✅ 原来分数高的，概率也高（顺序不变） 一个更直观的类比 想象你在比赛，四个选手的成绩分别是 3.5、1.2、0.3、-0.5 分。现在要根据成绩分奖金——成绩越高分得越多，但每个人都要分到一些（不能是零），而且奖金总额固定。\nSoftmax 就是分奖金的规则：分数高的拿大头，分数低的拿小头，所有人拿到的比例加起来正好是 100%。\nSoftmax 的另一个名字叫\u0026quot;归一化指数函数\u0026rdquo;——\u0026ldquo;归一化\u0026quot;就是\u0026quot;让总和变成 1\u0026quot;的意思。\nSoftmax 的公式 写成数学公式就是：\ne^(分数_i) P(词_i) = ───────────────── 所有 e^(分数) 之和 就这么一个分式。分子是\u0026quot;这个词的指数值\u0026rdquo;，分母是\u0026quot;所有词的指数值之和\u0026quot;。\n一句话：Softmax 是 LLM 的「概率出口」——神经网络算了一路的数字，最后通过这扇门，变成了一个合法的概率分布。\n第三章：交叉熵——训练的指挥棒 训练的本质：让模型猜得更准 LLM 训练时，我们给它大量的文本。对于每一段文本，模型的任务是：看到前面的字，猜下一个字。 猜对了奖励，猜错了惩罚。\n但\u0026quot;奖励\u0026quot;和\u0026quot;惩罚\u0026quot;需要一个数学上精确的衡量方式——这就是损失函数。LLM 用的损失函数叫交叉熵（Cross-Entropy）。\n直觉：老师改考卷 想象你是一位老师，学生在做填空题：\n题目： 床前明月＿＿\n学生 答案 给\u0026quot;光\u0026quot;的概率 你的评价 学神 光 92% 很好！几乎确定答对了 普通生 光/色/亮都有可能 40% 还行，但不够自信 学渣 随便猜 2% 完全不行，需要努力 交叉熵做的事就像你改考卷——给正确答案的概率越高，损失越低；概率越低，损失越高。\n负对数：惩罚的力度 交叉熵用负对数来衡量惩罚力度。为什么用对数？看看这张表：\n模型给正确答案的概率 损失 = -log(概率) 直觉 ───────────────────────────────────────────────── 0.90 0.105 猜得很准，小惩罚 ✓ 0.50 0.693 半信半疑，中等惩罚 0.10 2.303 基本猜错，重罚 0.01 4.605 完全乱猜，巨额罚款 ✗ 0.001 6.908 ← 概率再低10倍，损失只多2 注意两个关键性质：\n① 概率越低，惩罚越大——而且不是线性增大，是指数级增大。 从 0.9 到 0.5，损失增加了 0.6；从 0.1 到 0.01，损失增加了 2.3。对\u0026quot;完全猜错\u0026quot;的惩罚远远大于\u0026quot;差一点\u0026quot;。\n② 概率为 0 时，损失趋向无穷大。 这意味着模型绝不能把正确答案的概率设为零——必须给每个可能的词都留一点概率。\n为什么叫\u0026quot;交叉\u0026quot;熵？ \u0026ldquo;交叉\u0026quot;指的是两个分布之间的比较：\n真实分布（Reality）：正确答案是\u0026quot;光\u0026rdquo;，概率 = 100%，其他都是 0% 模型分布（Model）：模型猜\u0026quot;光\u0026quot; = 86%，\u0026ldquo;色\u0026rdquo; = 9%，\u0026ldquo;亮\u0026rdquo; = 3%，\u0026hellip; 交叉熵衡量的是：用模型的分布去\u0026quot;编码\u0026quot;真实分布，需要多少额外的代价？ 两个分布越接近，交叉熵越低；越远，交叉熵越高。\n三种等价的理解方式 交叉熵损失其实有三个身份——在数学上完全等价，只是从不同角度看同一件事：\n视角一：概率论——最大似然估计\n找一组参数，让训练数据出现的概率最大。\n类比：调整骰子的重量，让它掷出训练数据里实际出现的序列的概率最大。 视角二：信息论——最小化 KL 散度\n让模型分布尽可能接近真实分布。\n类比：让学生的答题模式尽可能接近标准答案。 视角三：编码论——最优压缩\n用模型做压缩器，最小化编码训练数据所需的比特数。\n类比：模型越好 = 压缩率越高 = 用更少的字节存储同样的文本。 这三个视角殊途同归——最小化交叉熵 = 最大化预测概率 = 最优压缩数据。这是概率论中最优美的等价关系之一。\n在代码里是什么样？ 如果你去看 nanoGPT 的训练代码（或任何 LLM 的训练代码），核心就一行：\nloss = cross_entropy(模型预测的概率分布, 正确答案) 整个训练过程，就是不断调整模型参数，让这个 loss 数字越来越小。\n第四章：困惑度——给模型打分 直觉：模型有多\u0026quot;困惑\u0026quot;？ 想象你做完形填空。如果每道题你都很确定答案，你就\u0026quot;不困惑\u0026quot;；如果每道题你都在好几个选项间犹豫不决，你就\u0026quot;很困惑\u0026quot;。\n困惑度（Perplexity，简写 PPL）就是衡量模型有多\u0026quot;困惑\u0026quot;的指标。\n数学定义 困惑度 = 交叉熵的指数。用 e（自然常数 ≈ 2.718）的\u0026quot;损失次方\u0026quot;：\nPPL = e^(交叉熵损失) 怎么理解这个数字？ 困惑度 含义 类比 1 每个字都 100% 确定 考试每题都会，不困惑 5 平均在 5 个字之间犹豫 每道选择题有 5 个看起来都对的选项 50 平均在 50 个字之间犹豫 几乎是蒙的 5000 约等于词表大小 完全随机猜，什么都没学到 实际例子 nanoGPT 用《西游记》训练后，验证集损失是 1.47：\nPPL = e^1.47 ≈ 4.35 这意味着：模型在预测《西游记》的下一个字时，平均在约 4~5 个候选字之间犹豫。考虑到中文词表有几千个字，这说明模型已经学到了很多语言规律。\nPPL 越低，模型越好。 GPT-4 等顶级模型在通用文本上的 PPL 可以低到个位数。\n第五章：Temperature——调节创造力的旋钮 日常经验 你问 ChatGPT \u0026ldquo;给我讲个故事\u0026rdquo;，它每次讲的故事都不一样——有时中规中矩，有时天马行空。这背后就是 Temperature（温度） 在起作用。\nTemperature 做了什么？ 还记得 Softmax 吗？在做 Softmax 之前，先把所有分数除以一个温度值 T：\ne^(分数/T) P(词) = ───────────────────── 所有 e^(分数/T) 之和 就多了一个\u0026quot;÷T\u0026quot;，效果却天差地别：\n三种温度，三种性格 用一个具体例子说明。假设模型输出了 4 个词的分数：\n原始分数: \u0026#34;天\u0026#34;=3.0 \u0026#34;地\u0026#34;=1.5 \u0026#34;人\u0026#34;=0.8 \u0026#34;山\u0026#34;=0.3 低温 T=0.3（保守严谨）：\n分数÷0.3: 10.0 5.0 2.67 1.0 Softmax: [0.95, 0.04, 0.008, 0.002] → \u0026#34;天\u0026#34;占了 95%！几乎一定选\u0026#34;天\u0026#34; 正常 T=1.0（原始分布）：\n分数÷1.0: 3.0 1.5 0.8 0.3 Softmax: [0.59, 0.23, 0.10, 0.08] → \u0026#34;天\u0026#34;最可能，但其他词也有机会 高温 T=3.0（冒险疯狂）：\n分数÷3.0: 1.0 0.5 0.27 0.1 Softmax: [0.35, 0.22, 0.17, 0.14] → 四个词概率接近，差什多少都可能被选中 T → 0 确定性模式\n永远选概率最高的词\n适合：翻译、数学 T = 1 正常模式\n使用模型原始分布\n适合：日常对话 T → ∞ 随机模式\n所有词接近等概率\n适合：头脑风暴 为什么叫\u0026quot;温度\u0026quot;？ 这个名字来自物理学的 玻尔兹曼分布——描述分子在不同温度下的能量分布。\n想象一锅水：\n低温（冰）：分子几乎不动，都挤在最低能量状态 → 概率集中在一处 高温（沸腾）：分子剧烈运动，高能低能都有 → 概率分散到各处 LLM 的 Temperature 和物理温度是完全相同的数学公式——这不是巧合，而是统计力学和机器学习共享同一套数学。\n第六章：采样策略——怎么从概率中选词 模型算出了每个词的概率，现在要从中选一个词输出。怎么选？这就是采样策略。\n策略一：贪心解码——永远选最高的 概率: \u0026#34;天\u0026#34;=59% \u0026#34;地\u0026#34;=23% \u0026#34;人\u0026#34;=10% \u0026#34;山\u0026#34;=8% 选择: \u0026#34;天\u0026#34; ← 永远选概率最高的那个 优点：稳定、可重复 缺点：无聊、容易重复。想象一个人说话，每次都选\u0026quot;最安全\u0026quot;的词——\u0026ldquo;今天天气……好。明天天气……好。后天天气……好。\u0026rdquo;\n策略二：随机采样——按概率掷骰子 概率: \u0026#34;天\u0026#34;=59% \u0026#34;地\u0026#34;=23% \u0026#34;人\u0026#34;=10% \u0026#34;山\u0026#34;=8% 选择: 按概率随机抽一个（59% 的概率选\u0026#34;天\u0026#34;，23% 选\u0026#34;地\u0026#34;...） 优点：多样、有创意 缺点：偶尔会选到极低概率的离谱词，比如概率只有 0.01% 的\u0026quot;袜\u0026quot;。\n策略三：Top-K——只从前 K 个里选 把概率从高到低排列，只保留前 K 个词，其余全部排除。然后在这 K 个词里按概率随机选。\nK = 3 时： 保留: \u0026#34;天\u0026#34;=59% \u0026#34;地\u0026#34;=23% \u0026#34;人\u0026#34;=10% ← 只在这3个里选 排除: \u0026#34;山\u0026#34;=8% ...其余所有词 重新分配概率（让3个词加起来 = 100%）: \u0026#34;天\u0026#34;=64% \u0026#34;地\u0026#34;=25% \u0026#34;人\u0026#34;=11% 问题：K 是固定的。有时候只有 1 个合理选项（如\u0026quot;床前明月__\u0026quot;），有时候有 20 个合理选项（如\u0026quot;今天我想吃__\u0026quot;），固定的 K 不灵活。\n策略四：Top-P（Nucleus 采样）——动态选词 不固定数量，而是按概率从高到低累加，直到累积概率达到 P（比如 P=0.9），超过后的词全部排除。\nP = 0.7 时： \u0026#34;天\u0026#34; = 59% ← 累积 59%，还没到 70%，保留 \u0026#34;地\u0026#34; = 23% ← 累积 82%，超过 70% 了，保留（它让我们过线的） \u0026#34;人\u0026#34; = 10% ← 排除 \u0026#34;山\u0026#34; = 8% ← 排除 妙处：候选词数量是自适应的！\n\u0026#34;法国的首都是__\u0026#34; → 概率高度集中在\u0026#34;巴黎\u0026#34; Top-P 自动只保留 1-2 个词 \u0026#34;今天晚饭我想吃__\u0026#34; → 概率分散在很多食物上 Top-P 自动保留 20+ 个词 实际使用中的组合 实际的 LLM API（如 ChatGPT、Claude）通常同时使用 Temperature + Top-P：\n先用 Temperature 调整概率分布的\u0026quot;尖锐程度\u0026quot; 再用 Top-P 过滤掉概率太低的词 最后在剩余词中按概率随机选 OpenAI API 的默认参数: temperature = 1.0 （正常分布） top_p = 1.0 （不过滤） 写代码时建议: temperature = 0.2 （保守，减少胡编） top_p = 0.95 （只去掉最离谱的） 写创意故事时建议: temperature = 1.2 （更多随机性） top_p = 0.9 （适度过滤） 第七章：大数定律——训练为什么能成功 前面六章讲的都是 LLM \u0026ldquo;表面上\u0026quot;在做的事。从这一章开始，我们潜入更深的水底——看看为什么这些方法能工作。\n什么是大数定律？ 先做一个思想实验。\n你想知道全中国人的平均身高。最准确的方法是量 14 亿人——但这不现实。\n于是你在街上随机拉 10 个人量身高：\n10 个人的平均身高 = 172.3 cm （可能偏差很大） 再多拉一些人：\n100 个人 → 169.8 cm （更接近了） 1000 个人 → 170.3 cm （很接近了） 10000 个人 → 170.1 cm （非常接近真实值） 大数定律说的就是这件事：样本越多，样本平均值就越接近真实平均值。\n这听起来很\u0026quot;常识\u0026rdquo;——但把它形式化为数学定理，是概率论最重要的成就之一。因为它给了我们一个保证：我们不需要看到全部数据，只要样本足够多，就可以用样本代替整体。\n在 LLM 训练中的三大应用 应用一：Mini-batch SGD——为什么用小样本能训练大模型 这是大数定律在深度学习中最核心的应用。\nLLM 的训练目标是：在全部训练数据上，让平均损失最小。 GPT-4 的训练数据有几万亿个 token。每一步都算全量数据的损失？计算机会崩溃。\n实际做法：每一步只随机抽取一小批（比如 512 条）数据，算这一小批的平均损失和梯度方向，然后更新模型参数。\n全量数据的真实损失： L = 所有样本损失的平均 每一步实际算的： L̂ = 随机512条样本损失的平均 大数定律保证： L̂ ≈ L （512 条足够代表整体的趋势） 没有大数定律，SGD 就是\u0026quot;闭着眼睛乱走\u0026quot;。大数定律说：虽然每一步有噪声，但平均方向是对的。\n应用二：训练集代表真实分布 我们用有限的训练语料（比如几 TB 的互联网文本）去学习\u0026quot;人类语言的分布\u0026quot;。\n凭什么有限的语料能代表无限的语言？\n训练集上算的损失 ──(大数定律)──→ 真实语言上的损失 (有限样本平均) (理论期望值) 大数定律保证：只要训练数据足够多且足够多样，模型在训练集上学到的规律，就能推广到它没见过的文本。\n应用三：评估指标的可靠性 当我们在验证集上测试模型，得到 PPL = 15.2，这个数字可信吗？\n如果验证集只有 10 句话 → 不可信，换 10 句可能变成 PPL = 8 或 25 如果验证集有 10 万句话 → 可信，大数定律保证样本 PPL 接近真实 PPL 一句话总结：大数定律是 LLM 训练合法性的数学基础——它保证了\u0026quot;用有限数据训练\u0026quot;和\u0026quot;用小批量更新\u0026quot;都是靠谱的。\n第八章：中心极限定理——架构设计的隐形之手 什么是中心极限定理？ 再做一个思想实验。\n你掷一颗骰子，结果在 1~6 之间随机分布——这不是正态分布（钟形曲线）。\n但如果你掷 30 颗骰子并算它们的平均值，重复很多次，你会发现：\n1 颗骰子的结果: 1,3,6,2,5,4,1,6,... → 均匀分布（平的） 30 颗骰子的平均: 3.4,3.6,3.5,3.8,3.2,... → 正态分布（钟形曲线） 中心极限定理说：不管原始数据是什么分布，大量数据的平均值（或总和）总是趋向正态分布。\n这个定理的强大之处在于\u0026quot;不管原始数据是什么分布\u0026quot;——不管你掷的是骰子、抛的是硬币、还是量的是身高体重，只要把足够多的样本加起来或求平均，结果就是钟形曲线。\n在 LLM 中的四大应用 应用一：注意力机制的 1/√d 缩放——最漂亮的应用 这是中心极限定理在 LLM 中最直接、最优雅的体现。\n在 Transformer 的注意力机制中，我们需要计算两个向量的点积（衡量相似度）。点积就是对应位置相乘再相加：\nQuery = [q₁, q₂, q₃, ..., q₆₄] ← 64 维向量 Key = [k₁, k₂, k₃, ..., k₆₄] ← 64 维向量 点积 = q₁×k₁ + q₂×k₂ + ... + q₆₄×k₆₄ 这是 64 个乘积的求和。每个乘积 q_i × k_i 是一个随机变量。根据中心极限定理，这 64 项之和近似服从正态分布。\n假设每个 q_i 和 k_i 都是均值为 0、方差为 1 的随机变量，那么：\n每一项 q_i × k_i 的方差 = 1 64 项之和的方差 = 64 64 项之和的标准差 = √64 = 8 问题：标准差是 8，意味着点积可能达到 ±16 甚至 ±24。这些大数字送进 Softmax 会怎样？\nSoftmax([16, 2, -5, 1]) ≈ [0.9999, 0.0001, 0.0000, 0.0000] 几乎变成了\u0026quot;全或无\u0026quot;——一个词独占 99.99% 的注意力，其他词几乎被完全忽略。梯度趋近于零，模型无法学习。\n解法：除以 √d（d 是向量维度）：\n缩放后的点积 = (q₁×k₁ + ... + q₆₄×k₆₄) ÷ √64 原来方差 = 64 → 缩放后方差 = 64 ÷ 64 = 1 原来标准差 = 8 → 缩放后标准差 = 1 这个 √d 不是炼丹调参调出来的，是中心极限定理计算出来的精确值。 它让 Softmax 的输入保持在一个合理的范围内，确保注意力权重不会太极端。\n这就是 Transformer 论文中著名的 Scaled Dot-Product Attention：\nAttention = Softmax(Q × K^T ÷ √d) × V ↑ 这个÷√d 来自 CLT 应用二：权重初始化——让信号逐层稳定 一个神经元的输出是多个输入的加权和：\n输出 = w₁×x₁ + w₂×x₂ + ... + wₙ×xₙ 这又是 n 个随机变量之和，中心极限定理告诉我们输出近似正态分布，而且：\n输出的方差 = n × (每个权重的方差) × (每个输入的方差) 如果权重初始化得太大（方差太大），信号每过一层就放大一倍，几十层后数字爆炸到天文数字。反之太小，信号逐层衰减到零。\nXavier 初始化的解法：让每个权重的方差 = 1/n\n输出方差 = n × (1/n) × 输入方差 = 输入方差 信号方差逐层不变！ 不爆炸也不消失。CLT 告诉我们只需要控制方差就能控制一切，Xavier 初始化精确地做到了这一点。\n应用三：SGD 噪声——为什么 Batch Size 翻倍时学习率也要翻倍 Mini-batch 梯度和真实梯度之间有一个\u0026quot;噪声\u0026quot;（误差）。CLT 告诉我们：\n噪声的标准差 ∝ 1/√B （B = batch size） 这推导出一个著名的实践规则——线性缩放规则：\nBatch Size 翻倍 → 噪声减半 → 学习率可以翻倍 GPT-3 的训练就用了这个规则，从小 batch 开始热身，逐步增大 batch size 和学习率。\n应用四：LayerNorm 的稳定性 Transformer 每一层都有 Layer Normalization（层归一化）：\nLayerNorm(x) = (x - 均值) / 标准差 其中均值和标准差是对隐藏层的几百到几千个神经元算的。CLT 保证：当维度足够大时（如 768、4096），这些统计量本身是稳定可靠的。 如果隐藏层只有 3 个神经元，均值和标准差会剧烈波动，LayerNorm 就不稳定了。\n全景总结 输入：\"床前明月\" ↓ 条件概率（第一章）\nP(下一个字 | 前面所有的字) — LLM 的核心任务 ↓ Softmax（第二章）\nlogits → 概率分布（非负 + 归一化） ↓ Temperature ÷ T（第五章）\n控制分布的\"尖锐\"或\"平坦\" ↓ 采样策略（第六章）\nGreedy / Top-K / Top-P — 从分布中选出一个词 ↓ 输出：\"光\" → 拼回输入，重复以上过程 地基层：两大定律 大数定律（第七章）\n保证训练方向正确\n• mini-batch ≈ 全量梯度\n• 训练集 ≈ 真实分布\n• 评估指标可靠 中心极限定理（第八章）\n保证训练过程稳定\n• Attention 的 ÷√d\n• Xavier 初始化\n• Batch Size 缩放规则 结语 概率论在 LLM 中扮演的角色，可以用两句话概括：\n表面上，LLM 的每一步都在操纵概率分布——学习它（训练）、输出它（推理）、被它衡量（评估）、被人为操控它（Temperature + 采样）。\n底层，两大定律默默撑起整个大厦——大数定律保证训练方向正确，中心极限定理保证训练过程稳定。\n从 Karpathy 的 200 行 microgpt 到 GPT-4，参数从 4000 到 1.8 万亿，规模差了 4 亿倍——但概率论的部分，一个字都没变。理解了这篇文章的内容，你就握住了所有 LLM 共享的数学骨架。\n本文的所有概念，都可以在这台 VM 上亲手验证：运行 ~/microgpt/microgpt.py 看 4192 个参数的 Softmax 和交叉熵，运行 nanoGPT 的 demo_temperature.py 观察温度对采样的影响。从 200 行代码里看到的概率论，和 GPT-4 里的，是同一套数学。\n","permalink":"https://jason-azure.github.io/ai-blog/posts/llm-probability/","summary":"零基础理解大语言模型背后的概率论：条件概率、Softmax、交叉熵、Temperature、采样策略、大数定律与中心极限定理——用最直观的类比和动图，拆解 LLM 的数学骨架。","title":"LLM 中的概率论：从掷骰子到生成文本"},{"content":"写在前面：这个系列想做什么？ 很多人告诉我：\u0026ldquo;我对 AI 很好奇，但一看到公式就劝退了。\u0026rdquo;\n也有人说：\u0026ldquo;我数学从初中就开始掉队，现在完全看不懂你写的那些向量、矩阵。\u0026rdquo;\n我反思了一下，问题不在你身上。问题在于——没有人帮你建立数学思想。\n学校教你算术、方程、函数、微积分，一路往上堆。但从来没有人停下来告诉你：\n为什么要学这个？它在描述什么？人类为什么需要它？\n这个系列，就是来补这一课的。\n我不会按照教科书的顺序（线性代数、微积分、概率论……），而是按照人类认知进化的顺序——从最朴素的地方开始，一步一步走到 AI。\n从今天开始，我们的旅程从一万年前的一根绳子开始。\n系列导航\n▸ 第一篇（本文）：结绳记事——人类第一次抽象 ▹ 第二篇：零的发明——最伟大的\"无\" ▹ 第三篇：未知数 x——给\"不知道\"取个名字 ▹ 第四篇：坐标革命——笛卡尔的天才之桥 ▹ 第五篇：方程的力量——自然界的源代码 如果你已经读过 《AI 的数学语言》系列，这个系列会帮你理解那些公式背后更深层的\u0026quot;为什么\u0026quot;。\n第一章：一个牧羊人的难题 一万年前，某个黄昏。\n一个牧羊人把羊群赶进了围栏。他需要确认一件事：有没有羊丢了？\n他没有数字。没有\u0026quot;1, 2, 3\u0026quot;。甚至没有\u0026quot;多少\u0026quot;这个概念。\n但他想到了一个办法。\n早上，每出去一只羊，他在一根绳子上打一个结。\n傍晚，每回来一只羊，他解开一个结。\n如果最后绳子上没有结了——羊全回来了。\n如果还有结——丢了。\n他不需要知道自己有\u0026quot;多少\u0026quot;只羊。他只需要建立一个一一对应的关系：\n🐑 ←→ 🪢 🐑 ←→ 🪢 🐑 ←→ 🪢 🐑 ←→ 🪢 🐑 ←→ 🪢 一只羊 = 一个绳结 不需要\u0026#34;数数\u0026#34;，只需要\u0026#34;对应\u0026#34; 这是人类历史上最早的\u0026quot;数学运算\u0026quot;。\n而它的核心思想——用一个东西代表另一个东西——直到今天，仍然是整个数学、整个计算机科学、整个 AI 的基石。\n第二章：从\u0026quot;三只羊\u0026quot;到\u0026quot;三\u0026quot; 结绳记事解决了\u0026quot;有没有丢\u0026quot;的问题。但人类的大脑不满足于此。\n慢慢地，人们开始注意到一件奇怪的事：\n三只羊、三块石头、三棵树、三个人……\n它们长得完全不一样，但有一个东西是一样的。\n什么是一样的？\n\u0026ldquo;三\u0026rdquo;。\n这就是人类思维史上最伟大的一次飞跃——抽象。\n从具体到抽象的飞跃 🐑🐑🐑 三只羊 🪨🪨🪨 三块石头 → \u0026#34;3\u0026#34; ← 一个纯粹的概念 🌳🌳🌳 三棵树 👤👤👤 三个人 它们之间没有任何相似之处 唯一相同的是\u0026#34;数量\u0026#34;——一个你看不见、摸不到的东西 \u0026ldquo;3\u0026quot;不是三只羊。\u0026ldquo;3\u0026quot;不是三块石头。\u0026ldquo;3\u0026quot;是一个你看不见、摸不到、但确实存在的概念。\n你可能觉得这没什么了不起。但请想一想：\n世界上所有的动物都能分辨\u0026quot;多\u0026quot;和\u0026quot;少\u0026rdquo;——乌鸦知道两堆食物哪堆更多。 但没有任何动物能理解\u0026quot;3\u0026quot;这个独立于具体事物的概念。 能做到这一步的，只有人类。\n一句话记住： 数学的起点不是计算，是抽象——从具体事物中提取出纯粹的模式。\n第三章：符号的力量——从刻痕到 0123456789 有了\u0026quot;数量\u0026quot;的概念，下一步是：怎么记录它？\n人类试过很多方法：\n人类计数符号的进化 时代 方法 例子 局限 原始 刻痕 ` 古埃及 象形符号 𓆼 = 1000 符号太多，不好算 古罗马 字母组合 XIV = 14 做乘法要命 古巴比伦 楔形 + 位值 𒐕𒐕 60 进制，太复杂 印度-阿拉伯 0-9 + 位值 14 完美。沿用至今 为什么最终赢的是印度-阿拉伯数字系统？\n因为它有一个天才的设计：位值制（place value）。\n同一个符号\u0026quot;2\u0026rdquo;，放在不同位置，含义完全不同：\n2 → 二（个位） 20 → 二十（十位） 200 → 二百（百位） 2000 → 两千（千位） 你只需要学 10 个符号（0-9），就能表达任意大的数。\n而罗马数字呢？来，试试用罗马数字做这道乘法：\nXXXVIII 38 × XLIV × 44 ───────── ────── ??? 1672 左边几乎不可能心算。右边小学生就能做。\n符号系统不是\u0026quot;审美问题\u0026rdquo;。它决定了你能不能高效计算。 罗马帝国用了上千年的 IVXLCDM，直到采用阿拉伯数字，欧洲的科学和商业才真正起飞。\n一句话记住： 好的符号不只是记录工具，它释放思维的算力。这就是为什么数学家花大量时间发明符号——从 +、-、=、x，到 ∫、∑、∂。每一个符号都是一次\u0026quot;思维压缩\u0026quot;。\n第四章：为什么是\u0026quot;十\u0026quot;进制？ 你有没有想过——为什么我们用十进制？\n答案简单得有点好笑：因为我们有十根手指。\n✋🤚 左手 5 根 + 右手 5 根 = 10 数完 10 根手指 → \u0026#34;进一位\u0026#34; 这就是十进制的全部来历 但\u0026quot;十\u0026quot;不是唯一的选择。不同文明选了不同的\u0026quot;基数\u0026quot;：\n不同文明的进制选择 进制 谁用的 为什么 今天的遗产 十进制 大多数文明 10 根手指 日常生活 十二进制 古代商人 12 个指节（一只手 4 根手指 × 3 节） 12 个月、12 小时、一打 二十进制 玛雅人 10 根手指 + 10 根脚趾 法语 80 = quatre-vingts（4个20） 六十进制 巴比伦人 60 的因数多（1,2,3,4,5,6,10,12,15,20,30,60），方便分割 60 秒、60 分钟、360 度 二进制 计算机 电路只有开/关两种状态 整个数字世界 看最后一行。\n计算机用二进制，不是因为数学家觉得它好，而是因为物理世界给的约束——电路只有\u0026quot;通电\u0026quot;和\u0026quot;断电\u0026quot;两种状态。\n通电 = 1 断电 = 0 就这两个符号，足以表达一切。文字、图片、音乐、视频——你手机里的所有东西，底层都是 0 和 1。\n十进制的 42，在二进制里是： 42 = 32 + 8 + 2 = 2⁵ + 2³ + 2¹ = 101010 每一位要么是 0，要么是 1 就像电路的每个开关要么关要么开 一句话记住： 进制不是\u0026quot;数学规定\u0026quot;，是人类用什么来数数的结果。手指 → 十进制。开关 → 二进制。选择什么进制，取决于你的\u0026quot;硬件\u0026quot;。\n第五章：数学的本质——压缩 走到这里，让我们停下来想一想。\n从结绳记事到十进制，人类做的事情本质上只有一件：\n压缩。\n一只羊 → 一个绳结（把一只活生生的羊压缩成一个结） 三只羊、三块石头、三棵树 → \u0026ldquo;3\u0026rdquo;（把无数具体事物压缩成一个符号） 一千 → \u0026ldquo;1000\u0026rdquo;（用 4 个字符表达一个很大的数量） 数学是一种压缩语言 自然语言（中文）： \u0026#34;有一个数，它乘以自己再加上这个数的三倍 等于二十八\u0026#34; 数学语言： x² + 3x = 28 一段话 → 一行公式 这就是压缩 后面你会看到，数学的每一次进步都是一次更强的压缩：\n方程把\u0026quot;关系\u0026quot;压缩成一行 函数把\u0026quot;变化规律\u0026quot;压缩成一个表达式 微积分把\u0026quot;无穷多个无穷小的东西\u0026quot;压缩成一个符号 ∫ 矩阵把\u0026quot;一大堆方程\u0026quot;压缩成一个符号 神经网络把\u0026quot;人类语言的全部规律\u0026quot;压缩成一组参数 你还记得我的博客开篇语叫什么吗？\n《压缩即智能》。\nAI（大语言模型）做的事情，本质上就是压缩——把人类语言的所有模式压缩到一组数字参数里。\n而数学本身，就是人类发明的终极压缩工具。\n第六章：连接 AI——从绳结到 Token 现在我们来看一件惊人的事。\nGPT 处理一句话时，做的第一件事是什么？\n把文字变成数字。\n这个过程叫 Tokenization（分词编码）。\n\u0026#34;今天天气真好\u0026#34; → [10211, 3922, 8847, 2345] 每个词/字 对应 一个数字编号 等等，这不就是……结绳记事吗？\n结绳记事： 一只羊 → 一个绳结 （实物 → 符号） Tokenizer：一个词 → 一个数字编号 （文字 → 数字） 核心思想完全一样：用一个东西代表另一个东西。\n从一万年前的牧羊人，到今天的 GPT，人类一直在做同一件事——建立映射。\n来，我们实际看看。下面是在我们的 AI 实验机器上，用 OpenAI 的 tokenizer 把一句话变成数字：\nazureuser@ai-lab:~$ source ~/ai-lab-venv/bin/activate (ai-lab-venv) azureuser@ai-lab:~$ python3 -c \u0026#34; import tiktoken enc = tiktoken.encoding_for_model(\u0026#39;gpt-4\u0026#39;) text = \u0026#39;今天天气真好\u0026#39; tokens = enc.encode(text) print(f\u0026#39;原文: {text}\u0026#39;) print(f\u0026#39;Token IDs: {tokens}\u0026#39;) print(f\u0026#39;Token 数量: {len(tokens)}\u0026#39;) print() # 反过来：数字 → 文字 for tid in tokens: print(f\u0026#39; {tid} → \\\u0026#34;{enc.decode([tid])}\\\u0026#34;\u0026#39;) \u0026#34; 原文: 今天天气真好 Token IDs: [108386, 99978, 109413] Token 数量: 3 108386 → \u0026#34;今天\u0026#34; 99978 → \u0026#34;天气\u0026#34; 109413 → \u0026#34;真好\u0026#34; 看到了吗？\n\u0026ldquo;今天\u0026rdquo; → 108386 \u0026ldquo;天气\u0026rdquo; → 99978 \u0026ldquo;真好\u0026rdquo; → 109413 每个词对应一个数字。绳结变成了数字，但原理没变。\n我们再试试英文：\n\u0026gt;\u0026gt;\u0026gt; text_en = \u0026#34;Mathematics is the language of the universe\u0026#34; \u0026gt;\u0026gt;\u0026gt; tokens_en = enc.encode(text_en) \u0026gt;\u0026gt;\u0026gt; print(f\u0026#39;Token 数量: {len(tokens_en)}\u0026#39;) Token 数量: 7 \u0026gt;\u0026gt;\u0026gt; for tid in tokens_en: ... print(f\u0026#39; {tid} → \u0026#34;{enc.decode([tid])}\u0026#34;\u0026#39;) 68019 → \u0026#34;Mathematics\u0026#34; 374 → \u0026#34; is\u0026#34; 279 → \u0026#34; the\u0026#34; 4221 → \u0026#34; language\u0026#34; 315 → \u0026#34; of\u0026#34; 279 → \u0026#34; the\u0026#34; 15861 → \u0026#34; universe\u0026#34; 7 个英文 token。每个词变成一个数字编号。\n从结绳记事到 Tokenization，中间隔了一万年。但核心思想一模一样：\n一个事物 → 一个符号 → 一个数字。\n这就是抽象。这就是数学的起点。\n第七章：\u0026ldquo;数量\u0026quot;之外的抽象 数学的抽象不止于\u0026quot;数量\u0026rdquo;。\n事实上，你每天都在做各种各样的\u0026quot;抽象\u0026quot;——只是你没意识到而已：\n你每天都在做的\"抽象\" 你做的事 其实是在做什么 看地图找路 把三维城市压缩成二维平面 用表情包回复 把复杂情绪压缩成一张图 给照片打标签 把图像内容压缩成几个词 评分（8/10分） 把主观感受压缩成一个数字 画流程图 把复杂过程压缩成方框和箭头 说\u0026quot;差不多\u0026quot; 把精确差异压缩成一个模糊判断 抽象 = 忽略细节，保留本质。\n这恰好也是 AI 在做的事情：\n词嵌入（Word Embedding）：把一个词的\u0026quot;含义\u0026quot;压缩成 768 个数字 注意力机制（Attention）：从一句话里提取出\u0026quot;谁和谁有关系\u0026quot; 模型训练：把人类语言的全部规律压缩成几十亿个参数 数学和 AI 的共同起点，就是抽象。\n本篇小结 这篇文章讲了什么？ 一、数学的起点是抽象\n从三只羊到\u0026quot;3\u0026quot;：忽略一切具体细节，只保留\u0026quot;数量\u0026quot; 这一步看似简单，但人类是唯一能做到的物种 二、符号释放算力\n好的符号系统（阿拉伯数字 + 位值制）不只是\u0026quot;写法不同\u0026quot; 它决定了你能不能高效思考和计算 三、进制是\u0026quot;硬件决定的\u0026quot;\n十进制 ← 十根手指 二进制 ← 电路开关 进制没有\u0026quot;对错\u0026quot;，只有\u0026quot;适不适合你的硬件\u0026quot; 四、数学是压缩语言\n从绳结到方程到神经网络，数学一直在做同一件事：压缩 AI 的核心也是压缩——把人类语言的模式压缩到参数里 五、结绳记事 = Tokenization\n一万年前：一只羊 → 一个绳结 今天：一个词 → 一个数字编号 核心思想没变：用一个东西代表另一个东西 下一篇预告 我们学会了用数来描述\u0026quot;有多少\u0026quot;。但还有一个问题：\n\u0026ldquo;没有\u0026quot;怎么表示？\n一个牧羊人可以用绳结表示 1, 2, 3, 4, 5……但他怎么表示\u0026quot;一只羊都没有\u0026rdquo;？\n0——这个看似无足轻重的符号——是人类数学史上最伟大的发明之一。它的出现，打开了一扇通往负数、无穷、甚至虚数的大门。\n下一篇：看见数学（二）：零的发明——最伟大的\u0026quot;无\u0026quot;\n动手实验 如果你想亲手体验\u0026quot;从文字到数字\u0026quot;的过程，可以试试这个简单的 Python 实验：\n# 不需要安装任何库，纯 Python 即可 text = \u0026#34;数学是人类的望远镜\u0026#34; # 最朴素的\u0026#34;tokenizer\u0026#34;：把每个字变成它的 Unicode 编码 for char in text: print(f\u0026#34; \u0026#39;{char}\u0026#39; → {ord(char)}\u0026#34;) # 输出： # \u0026#39;数\u0026#39; → 25968 # \u0026#39;学\u0026#39; → 23398 # \u0026#39;是\u0026#39; → 26159 # \u0026#39;人\u0026#39; → 20154 # \u0026#39;类\u0026#39; → 31867 # \u0026#39;的\u0026#39; → 30340 # \u0026#39;望\u0026#39; → 26395 # \u0026#39;远\u0026#39; → 36828 # \u0026#39;镜\u0026#39; → 38236 每个字都变成了一个数字。这就是数字世界的\u0026quot;结绳记事\u0026quot;。\n《看见数学》系列 — 从结绳记事到 AI，看见数学之美。\n本文首发于「AI 学习笔记」博客：https://Jason-Azure.github.io/ai-blog/\n微信公众号：AI-lab学习笔记\n系列文章完整列表见 标签：看见数学\n","permalink":"https://jason-azure.github.io/ai-blog/posts/see-math-1-counting/","summary":"从牧羊人的绳结到 GPT 的 tokenizer，数学的起点只有一个动作：用一个东西代表另一个东西。这就是抽象——人类最伟大的发明。","title":"看见数学（一）：结绳记事——人类第一次抽象"},{"content":" 上一篇 《结绳记事》 里，我们说数学的起点是抽象——用一个符号代表一个事物。\n但那时候，人类只能描述\u0026quot;有\u0026quot;的东西：一只羊、三块石头、十根手指。\n那么——\u0026ldquo;没有\u0026rdquo;，怎么表示？\n系列导航\n▹ 第一篇：结绳记事——人类第一次抽象 ▸ 第二篇（本文）：零的发明——最伟大的\"无\" ▹ 第三篇：未知数 x——给\"不知道\"取个名字 ▹ 第四篇：坐标革命——笛卡尔的天才之桥 ▹ 第五篇：方程的力量——自然界的源代码 第一章：一个\u0026quot;缺席\u0026quot;的符号 公元 628 年，印度数学家婆罗摩笈多（Brahmagupta）在他的著作《婆罗摩修正体系》中，第一次把零当作一个真正的数字来对待。\n他写下了一系列关于零的规则：\n婆罗摩笈多的零法则（公元 628 年） 任何数加零，等于它自己 a + 0 = a 任何数减去它自己，等于零 a - a = 0 任何数乘以零，等于零 a × 0 = 0 今天看来这些很\u0026quot;显然\u0026quot;。但在一千四百年前，这是一个惊天动地的想法。\n因为在此之前，人类所有的数都用来回答一个问题：\u0026ldquo;有多少？\u0026rdquo;\n一只羊、两块石头、三个人——数字总是在描述存在的东西。\n而零说的是：\u0026ldquo;什么都没有。\u0026rdquo;\n但\u0026quot;什么都没有\u0026quot;也是一个量。它也值得一个符号。\n你可能觉得这很自然。但大多数古代文明都没有走出这一步。\n第二章：没有零的世界 让我们看看，没有零的世界是什么样的。\n罗马帝国的噩梦 罗马人有一套非常精致的数字系统——I, V, X, L, C, D, M。他们用这套系统管理了一个横跨三大洲的帝国。\n但他们没有零。\n这意味着什么？\n没有零的困境 问题一：\u0026#34;十\u0026#34;怎么写？ 有零的世界： 10 （一个\u0026#34;1\u0026#34;在十位，一个\u0026#34;0\u0026#34;表示个位没有） 罗马世界： X （一个专门的符号） 问题二：\u0026#34;一百\u0026#34;怎么写？ 有零的世界： 100 （\u0026#34;1\u0026#34;在百位，后面两个\u0026#34;0\u0026#34;） 罗马世界： C （又一个专门的符号） 问题三：\u0026#34;一千零八\u0026#34;怎么写？ 有零的世界： 1008 （\u0026#34;0\u0026#34;帮你占住了百位和十位） 罗马世界： MVIII （完全不同的组合逻辑） 发现了吗？\n零的本质角色之一：占位符。\n在 1008 里，零不是说\u0026quot;这里什么都没有就跳过吧\u0026quot;。零是说：\u0026ldquo;百位和十位我替你守着，虽然这里是空的，但位置不能乱。\u0026rdquo;\n没有零，你就需要为每一个量级发明一个新符号（X, C, M……）。有了零，你只需要 0-9 这十个符号 + 位置，就能表达无限大的数。\n一句话记住： 零是数字世界的\u0026quot;占位符\u0026quot;——它让位置（十位、百位、千位……）有了意义。这就是位值制的灵魂。\n第三章：零的\u0026quot;性格\u0026quot; 零不只是占位符。当它作为一个数参与运算时，它展现出独一无二的性格。\n零的四种\"性格\" 运算 结果 零的性格 5 + 0 = 5 加零不变 透明人——加了等于没加 5 - 0 = 5 减零不变 同上，安安静静 5 × 0 = 0 乘零归零 黑洞——任何东西碰到它都消失 5 ÷ 0 = ？ 无法计算 禁区——数学在这里画了一条红线 前两条很温和：零是个\u0026quot;透明人\u0026quot;，加上去或减掉，什么都不变。\n第三条就霸道了：任何数乘以零，都变成零。 一百万乘以零？零。一万亿乘以零？还是零。零就像数学世界的黑洞——什么碰到它都被吞噬。\n第四条更有意思：不能除以零。 这不是人为规定的\u0026quot;考试规则\u0026quot;。你想想看——\n10 ÷ 2 = 5，意思是\u0026quot;把 10 平均分成 2 份，每份 5\u0026quot;\n10 ÷ 0 = ？，意思是\u0026quot;把 10 平均分成 0 份\u0026quot;\n分成零份？这在逻辑上就是不可能的。\n除以零不是\u0026quot;难算\u0026quot;，是没有意义。这是数学告诉你的：不是每个问题都有答案。 有些问题本身就是荒谬的。\n想一想： 零是唯一一个既不是正数也不是负数的数。它是分界线，是原点，是\u0026quot;无\u0026quot;。但这个\u0026quot;无\u0026quot;，比任何\u0026quot;有\u0026quot;都重要——因为没有它，整个数字系统就会崩塌。\n第四章：数轴的诞生——零打开的门 有了零，一件更惊人的事情成为可能：负数。\n想象一个温度计：\n零度 ↓ -30 -20 -10 0 10 20 30 (°C) ◄──┼────┼────┼────┼────┼────┼────┼──► 寒冷 ↑ 温暖 分界线 零把世界分成了两半：正和负，多和少，有和欠。\n在零出现之前，数只能往一个方向走——1, 2, 3, 4, 5……越来越多。数轴是一条射线，从某个起点出发，只能往右。\n有了零，数轴变成了一条直线——从负无穷到正无穷，零是中间的原点。\n零打开的那扇门 没有零的世界： → 1, 2, 3, 4, 5, ...... 只能描述\u0026#34;有多少\u0026#34; 有了零： ......, -3, -2, -1, 0, 1, 2, 3, ...... 可以描述\u0026#34;有多少\u0026#34;和\u0026#34;欠多少\u0026#34; 可以描述\u0026#34;升温\u0026#34;和\u0026#34;降温\u0026#34; 可以描述\u0026#34;盈利\u0026#34;和\u0026#34;亏损\u0026#34; 可以描述\u0026#34;前进\u0026#34;和\u0026#34;后退\u0026#34; 负数在今天看来再自然不过了：\n银行账户：余额 -200 元（欠了 200） 温度：-15°C（零下 15 度） 海拔：死海 -430 米（低于海平面 430 米） 时间线：公元前 500 年 = -500 年 但在历史上，负数被人类抵触了上千年。\n负数：人类为什么不愿接受它？ 古希腊人拒绝负数——\u0026ldquo;比没有还少的东西怎么可能存在？\u0026rdquo;\n直到 16-17 世纪的欧洲，很多数学家还在叫负数\u0026quot;荒谬的数\u0026quot;（numeri absurdi）。笛卡尔——就是发明坐标系的那位天才——也管方程的负数解叫\u0026quot;虚假的根\u0026quot;（false roots）。\n为什么这么难接受？\n因为人类的直觉是建立在实物上的。你能拿起 3 个苹果，但你怎么拿起 \u0026ldquo;-3 个苹果\u0026rdquo;？\n这就是数学思维的关键飞跃 数学不只是\u0026quot;数现实中有的东西\u0026quot;。\n数学可以描述\u0026quot;不存在的东西\u0026quot;——这正是它的威力。\n你不能拿起 -3 个苹果。但你可以欠别人 3 个苹果。\u0026ldquo;欠\u0026quot;这个概念，完美地对应了 -3。\n数学家做的事情是：扩大规则的适用范围。 即使你摸不到、看不见，只要逻辑自洽，它就是\u0026quot;存在\u0026quot;的。\n一句话记住： 负数不是\u0026quot;虚假\u0026quot;的。它只是描述了一种新的关系——\u0026ldquo;反方向\u0026rdquo;。温度可以低于零，海拔可以低于海平面，账户可以低于零余额。敢于接受\u0026quot;看不见的东西也可以存在\u0026rdquo;，这就是数学思维。\n第五章：零和负数——数的全景 让我们把数的故事到目前为止做一个全景梳理。人类的数，是一步一步\u0026quot;扩张\u0026quot;出来的：\n数的扩张史 第一步：自然数（结绳记事） 1, 2, 3, 4, 5, ...... 能描述：\u0026#34;我有几只羊\u0026#34; ↓ 加入零 第二步：全体自然数 0, 1, 2, 3, 4, 5, ...... 能描述：\u0026#34;我有几只羊\u0026#34;+\u0026#34;一只都没有\u0026#34; ↓ 加入负数 第三步：整数 ......, -3, -2, -1, 0, 1, 2, 3, ...... 能描述：\u0026#34;有多少\u0026#34;+\u0026#34;欠多少\u0026#34; ↓ 加入分数/小数 第四步：有理数 ......, -1.5, -1, -0.5, 0, 0.5, 1, 1.5, ...... 能描述：\u0026#34;半个苹果\u0026#34;、\u0026#34;三分之二\u0026#34; ↓ 加入 √2、π 等 第五步：实数 数轴上的每一个点 能描述一切可以测量的量 ↓ 加入 √(-1) ？ 第六步：复数（这个以后再聊） 能描述......连方向和旋转都行 每一次扩张，都是因为人类遇到了老数字系统无法回答的问题：\n\u0026ldquo;一只都没有\u0026rdquo;→ 需要零 \u0026ldquo;温度低于零\u0026rdquo;→ 需要负数 \u0026ldquo;把蛋糕分三份\u0026rdquo;→ 需要分数 \u0026ldquo;正方形对角线多长\u0026rdquo;→ 需要无理数（√2） 数学不是一次性发明的。它是被一个又一个\u0026quot;回答不了的问题\u0026quot;逼着长大的。\n一句话记住： 每一种新数的发明，都是因为旧的数不够用了。数学的进步，就是不断扩大\u0026quot;什么算数\u0026quot;的边界。\n第六章：连接 AI——零是神经网络的\u0026quot;开关\u0026quot; 故事讲到这里，我们来看看零在 AI 世界里扮演什么角色。\n答案是：零是神经网络最重要的\u0026quot;开关\u0026quot;。\nReLU：最简单也最重要的函数 神经网络里有一个用得最多的函数，叫 ReLU（Rectified Linear Unit）。它的规则简单到不能再简单：\nReLU：一行代码的威力 规则： 如果输入 ≥ 0 → 原样输出 如果输入 \u0026lt; 0 → 输出 0 用一行代码写： ReLU(x) = max(0, x) 举例： ReLU(5) = 5 ✓ 正数，通过 ReLU(0.3) = 0.3 ✓ 正数，通过 ReLU(-2) = 0 ✗ 负数，归零！ ReLU(-100)= 0 ✗ 负数，归零！ 输出 ↑ │ ╱ │ ╱ │ ╱ │ ╱ │ ╱ ───┼────╱──────→ 输入 │ 0 │ ( 负数区域全部变为 0 ) ReLU 的本质就是一个门卫：\n正数？放行。 负数？归零。不许通过。 就这么简单的一个操作，为什么如此重要？\n零作为\u0026quot;沉默\u0026quot; 在神经网络里，每个神经元计算出一个数值。这个数值可正可负：\n正数 = 这个神经元\u0026quot;被激活了\u0026quot;——它有话要说 零（被 ReLU 置零） = 这个神经元\u0026quot;沉默了\u0026quot;——它选择不参与 零 = 沉默 = 选择 想象一个简单的图像识别网络： 输入：一张猫的照片 神经元 A（检测竖线）: 0.8 → 有竖线，激活！ 神经元 B（检测横线）: 0.2 → 有点横线，微弱激活 神经元 C（检测蓝色）: -0.5 → 没有蓝色 → ReLU → 0（沉默） 神经元 D（检测毛发纹理）: 0.9 → 有毛发，强烈激活！ 神经元 E（检测车轮）: -1.2 → 没有车轮 → ReLU → 0（沉默） 零不是\u0026#34;什么都没探测到\u0026#34; 零是\u0026#34;我看过了，这个特征确实不在\u0026#34; 零不是虚无。零是一个明确的信号：\u0026ldquo;没有。\u0026rdquo;\n就像一个侦探调查五条线索，排除了其中两条。被排除的线索不是\u0026quot;无用功\u0026quot;——知道什么不是答案，和知道什么是答案一样重要。\n这正好呼应了我们前面讲的：零不是\u0026quot;没有\u0026quot;。零是一种存在——它表达的是\u0026quot;此处为空\u0026quot;这个信息。\n稀疏性：大部分参数都是零 还有一个有趣的事实：训练好的神经网络里，大量的参数值是零或接近零。\n这叫稀疏性（sparsity）。\n为什么？因为不是每个连接都重要。网络在训练过程中\u0026quot;学会了\u0026quot;哪些连接是有用的、哪些是多余的。多余的连接，权重被调到零——关掉了。\n一个训练好的小模型的参数分布： ▓▓▓▓ ▓▓▓▓▓▓ ▓▓▓▓▓▓▓▓ ▓▓▓▓▓▓▓▓▓▓ ░░░░▓▓▓▓▓▓▓▓▓▓▓▓░░░░ ░░░░░░░░▓▓▓▓▓▓▓▓▓▓▓▓▓▓░░░░░░░░ ─────────────────┼───────────────── 0 大量参数集中在 0 附近 网络自动\u0026#34;关掉\u0026#34;了不需要的连接 记得上一篇的核心概念\u0026quot;压缩\u0026quot;吗？零就是压缩的工具。 把不重要的信号归零，就是在做信息压缩——保留关键，丢弃噪声。\n一句话记住： 在 AI 的世界里，零 = 沉默 = 选择性忽略 = 压缩。ReLU 函数用一行代码 max(0, x) 决定了哪些信号该通过、哪些该被\u0026quot;关掉\u0026quot;。零不是空白，零是决策。\n第七章：零的哲学——\u0026ldquo;无\u0026quot;的力量 走到这里，让我们把视角拉高一点。\n零的故事告诉我们一个深刻的道理：数学的进步，往往来自于敢想\u0026quot;不存在\u0026quot;的东西。\n数学中\"不存在\"的发明 概念 \u0026ldquo;不存在\u0026quot;在哪里？ 打开了什么门？ 零 没有任何东西 位值制、负数、整个数轴 负数 比没有还少 温度、债务、方向 无理数 (√2) 不能写成分数 精确的几何测量 虚数 (√-1) 没有哪个实数的平方是负数 电路分析、量子力学 无穷 (∞) 数不到头 微积分、极限理论 看到了吗？数学史上最重要的突破，几乎都来自于人类接受了某种\u0026quot;不存在\u0026quot;的东西。\n这需要勇气。\n古希腊人因为发现 √2 不能写成分数而恐慌——据说发现者被扔进了大海。笛卡尔嘲笑负数是\u0026quot;虚假\u0026rdquo;。整个欧洲数学界花了几百年才接受\u0026quot;虚数\u0026rdquo;。\n但最终，每一次\u0026quot;接受不可能\u0026quot;，都让数学变得更强大、更完整。\n数学思维的核心： 不要问\u0026quot;这个东西存在吗\u0026quot;，而要问\u0026quot;如果它存在，会怎样\u0026quot;。\n如果零存在——我们得到了位值制。\n如果负数存在——我们得到了完整的数轴。\n如果 √-1 存在——我们得到了描述波和旋转的工具。\n每一次\u0026quot;假设它存在\u0026quot;，都打开了一个新世界。\n这也是 AI 的思维方式。神经网络不会问\u0026quot;这个词的含义是什么？\u0026quot;——它假设每个词可以用一组数字描述，然后去训练这组数字，直到它能产生有用的预测。\n假设先行，验证随后。 这是数学的方法，也是科学的方法，也是 AI 的方法。\n动手实验 实验一：感受 ReLU # 纯 Python，不需要任何库 def relu(x): \u0026#34;\u0026#34;\u0026#34;ReLU：神经网络最常用的激活函数\u0026#34;\u0026#34;\u0026#34; return max(0, x) # 试试看 inputs = [3, 1, -2, 0.5, -7, 0, -0.1, 4.2] print(\u0026#34;输入 → ReLU 输出\u0026#34;) print(\u0026#34;─\u0026#34; * 25) for x in inputs: result = relu(x) status = \u0026#34;✓ 通过\u0026#34; if result \u0026gt; 0 else \u0026#34;✗ 归零\u0026#34; print(f\u0026#34; {x:\u0026gt;5} → {result:\u0026gt;5} {status}\u0026#34;) # 输出： # 输入 → ReLU 输出 # ───────────────────────── # 3 → 3 ✓ 通过 # 1 → 1 ✓ 通过 # -2 → 0 ✗ 归零 # 0.5 → 0.5 ✓ 通过 # -7 → 0 ✗ 归零 # 0 → 0 ✗ 归零 # -0.1 → 0 ✗ 归零 # 4.2 → 4.2 ✓ 通过 实验二：数的扩张 # 体验\u0026#34;数的扩张史\u0026#34; # 第一步：自然数——只能描述\u0026#34;有多少\u0026#34; natural = [1, 2, 3, 4, 5] print(f\u0026#34;自然数: {natural}\u0026#34;) print(f\u0026#34; 能回答: 我有{natural[2]}只羊\u0026#34;) # 第二步：加入零 with_zero = [0, 1, 2, 3, 4, 5] print(f\u0026#34;\\n加入零: {with_zero}\u0026#34;) print(f\u0026#34; 能回答: 我有{with_zero[0]}只羊（一只都没有）\u0026#34;) # 第三步：加入负数——整数 integers = [-3, -2, -1, 0, 1, 2, 3] print(f\u0026#34;\\n整数: {integers}\u0026#34;) print(f\u0026#34; 能回答: 我欠别人{abs(integers[0])}只羊\u0026#34;) # 第四步：加入小数——有理数 rationals = [-1.5, -1, -0.5, 0, 0.5, 1, 1.5] print(f\u0026#34;\\n有理数: {rationals}\u0026#34;) print(f\u0026#34; 能回答: 我有半({rationals[4]})只蛋糕\u0026#34;) # 第五步：无理数——实数 import math print(f\u0026#34;\\n实数: π = {math.pi:.10f}...\u0026#34;) print(f\u0026#34; √2 = {math.sqrt(2):.10f}...\u0026#34;) print(f\u0026#34; 小数永远写不完，但它们确实\u0026#39;存在\u0026#39;于数轴上\u0026#34;) 本篇小结 这篇文章讲了什么？ 一、零是占位符\n没有零，就没有位值制。1, 10, 100 无法区分 零\u0026quot;守住位置\u0026quot;，让 10 个符号能表达无限大的数 二、零有独特的\u0026quot;性格\u0026quot;\n加减时\u0026quot;透明\u0026quot;，乘法时\u0026quot;黑洞\u0026quot;，除法时\u0026quot;禁区\u0026quot; 零不是\u0026quot;没有性格\u0026quot;，它的性格非常鲜明 三、零打开了负数的大门\n有了零作为原点，数轴从射线变成了直线 负数描述\u0026quot;反方向\u0026quot;：欠债、降温、海平面以下 四、数的扩张从未停止\n自然数 → 整数 → 有理数 → 实数 → 复数 每次扩张都是因为旧的数不够回答新问题 五、零是 AI 的\u0026quot;开关\u0026quot;\nReLU 函数：正数通过，负数归零 零 = 沉默 = 选择性忽略 = 压缩 神经网络通过归零来\u0026quot;关掉\u0026quot;不重要的连接 六、数学的勇气：接受\u0026quot;不存在\u0026quot;\n零、负数、无理数、虚数——都是人类接受\u0026quot;不存在\u0026quot;之后的产物 不问\u0026quot;它存在吗\u0026quot;，而问\u0026quot;如果它存在，会怎样\u0026quot; 下一篇预告 我们现在有了数（从负无穷到正无穷的完整数轴），有了符号系统（阿拉伯数字 + 位值制），有了零。\n下一个大问题是：\n如果有一个数，我不知道它是多少，但我知道它满足某个条件——我能找到它吗？\n比如：一个数乘以自己等于 9，这个数是几？\n答案是 3。但更重要的是——我们可以写成 x² = 9。\nx——这个字母——是人类给\u0026quot;未知\u0026quot;取的名字。从此，数学不再只是\u0026quot;算已知的数\u0026quot;，而是\u0026quot;推理未知的数\u0026quot;。\n下一篇：看见数学（三）：未知数 x——给\u0026quot;不知道\u0026quot;取个名字\n《看见数学》系列 — 从结绳记事到 AI，看见数学之美。\n本文首发于「AI 学习笔记」博客：https://Jason-Azure.github.io/ai-blog/\n微信公众号：AI-lab学习笔记\n系列文章完整列表见 标签：看见数学\n","permalink":"https://jason-azure.github.io/ai-blog/posts/see-math-2-zero/","summary":"零不是\u0026quot;没有\u0026quot;。零是人类发明的最强大的符号——它让位值制成为可能，让负数有了容身之处，让数轴从一条射线变成了一条无限延伸的直线。而在 AI 的世界里，零是神经网络的\u0026quot;开关\u0026quot;。","title":"看见数学（二）：零的发明——最伟大的\"无\""},{"content":" 上一篇 《零的发明》 里，我们让数轴从正数延伸到了负无穷。人类终于有了一条完整的数轴。\n但到目前为止，我们做的都是同一件事：算已知的数。\n3 + 5 = 8。已知 3，已知 5，算出 8。\n可是，如果你不知道其中一个数呢？\n系列导航\n▹ 第一篇：结绳记事——人类第一次抽象 ▹ 第二篇：零的发明——最伟大的\"无\" ▸ 第三篇（本文）：未知数 x——给\"不知道\"取个名字 ▹ 第四篇：坐标革命——笛卡尔的天才之桥 ▹ 第五篇：方程的力量——自然界的源代码 第一章：一道一千年前的题 公元 820 年左右，巴格达。\n一位波斯学者坐在\u0026quot;智慧之家\u0026quot;（Bayt al-Hikma）里，正在写一本书。\n他叫花拉子米（al-Khwarizmi）。这本书的名字翻译成中文大概是：《还原与对消的计算法则》。\n书名里的阿拉伯语单词 al-jabr（还原），后来传入欧洲，变成了一个你一定听过的词——\nAlgebra。代数。\n花拉子米在书里讨论了一类问题：\n花拉子米的原题（意译） \u0026#34;一个财产，它的十分之一加上它自身，等于 110 第纳尔。 问：这个财产是多少？\u0026#34; 用今天的符号写：\nx + x/10 = 110 答案：x = 100\n注意——花拉子米那个时代，没有 x，没有 +，没有 =。 他用的全是文字描述。上面那道题在原文里是用一大段阿拉伯语写的。\n但核心思想已经在了：\n有一个数，我不知道它是多少，但我知道它满足一个条件。我要找到它。\n这就是代数的灵魂。\n第二章：x 是什么？ 让我们暂时忘掉数学课本上的 x，从头想这件事。\n你在日常生活中，其实每天都在用 x——只是你没意识到。\n你每天都在\"解方程\" 你遇到的问题 翻译成数学 \u0026ldquo;我手机掉哪了？\u0026rdquo; 手机位置 = x，根据线索求解 \u0026ldquo;这个月还能花多少钱？\u0026rdquo; 工资 - 已花 - x = 0，求 x \u0026ldquo;几点出门才不会迟到？\u0026rdquo; 出发时间 x + 通勤 40 分钟 = 9:00 \u0026ldquo;要买多少个鸡蛋够做蛋糕？\u0026rdquo; 每个蛋糕 3 个 × 蛋糕数 = x \u0026ldquo;晚饭 AA 制每人多少钱？\u0026rdquo; 总价 ÷ 人数 = x 看到了吗？\nx 就是\u0026quot;我现在不知道，但我想知道\u0026quot;的那个东西。\n给\u0026quot;不知道\u0026quot;取个名字——这就是 x 的全部含义。\n你可以叫它 x，可以叫它 y，可以叫它\u0026quot;某某\u0026quot;，可以叫它\u0026quot;那个数\u0026quot;。名字不重要，重要的是这个思维动作：\n承认\u0026quot;我不知道\u0026quot;，把它当作一个对象来处理，然后用逻辑去推。\n这就是代数思维的本质。\n想一想： 侦探破案，其实就是在\u0026quot;解方程\u0026quot;——凶手是谁（x），根据已知线索（条件），一步步缩小范围，最终锁定答案。数学家和侦探的思维方式是一样的。\n第三章：等号——一架天平 在继续之前，我们需要认真看看一个你从小学就认识的符号：\n= 等号。\n你可能觉得它太简单了，没什么好说的。但等号可能是人类发明的最深刻的符号之一。\n等号的发明人是英国数学家罗伯特·雷科德（Robert Recorde），1557 年。他在书里写道：\n\u0026ldquo;我选择两条平行的等长线段来表示\u0026rsquo;相等\u0026rsquo;，因为没有什么东西比它们更相等了。\u0026rdquo;\n等号 = 天平 ┌─────────────────────────────┐ │ 方程 = 天平 │ └─────────────────────────────┘ 左边 右边 ┌──────┐ ┌──────┐ │ x + 3 │ │ 10 │ └──┬───┘ └──┬───┘ │ │ ══════╧══════════════╧══════ ▲ 支点 （等号 = ） 天平两边一样重 → 等号成立 在左边做什么操作，右边也必须做 这样天平才能保持平衡 方程就是天平。等号就是支点。两边必须保持平衡。\n这个理解至关重要，因为\u0026quot;解方程\u0026quot;的全部操作都基于一条规则：\n你在等号左边做的任何操作，必须同时在右边也做一次。\n来看看怎么用这个规则\u0026quot;解\u0026quot;方程：\n解方程 = 保持天平平衡 题目： x + 3 = 10 目标： 把 x 单独留在左边 第一步：两边同时减 3（保持平衡） x + 3 - 3 = 10 - 3 x = 7 ✓ 验证： 7 + 3 = 10 ✓ 天平平衡！ 再来一个： 2x + 5 = 13 第一步：两边同时减 5 2x = 8 第二步：两边同时除以 2 x = 4 验证： 2 × 4 + 5 = 13 ✓ 整个过程就是：一步一步拆掉 x 身上的\u0026quot;包袱\u0026quot;，把它解放出来。\n注意：你不是在\u0026quot;猜\u0026quot;x 是什么。你是在推理——每一步都有逻辑依据，每一步天平都保持平衡。\n一句话记住： 解方程不是\u0026quot;算\u0026quot;出来的。解方程是推理出来的——像剥洋葱一样，一层一层剥掉 x 身上的运算，直到 x 赤裸裸地站在你面前。\n第四章：鸡兔同笼——两个未知数 一个 x 的方程你学会了。那如果有两个不知道的东西呢？\n这就是中国古代最经典的数学题：\n鸡兔同笼（《孙子算经》，约 5 世纪） 原文：\u0026#34;今有雉兔同笼，上有三十五头，下有九十四足。 问雉兔各几何？\u0026#34; 翻译：笼子里有鸡和兔子， 头一共 35 个， 脚一共 94 只。 鸡几只？兔几只？ 古人怎么做这道题？\n他们用的是一种巧妙的\u0026quot;假设法\u0026quot;——假设所有动物都是鸡，那应该有 35 × 2 = 70 只脚，但实际上有 94 只脚，多了 24 只。每用一只兔子替换一只鸡就多 2 只脚，所以兔子 = 24 ÷ 2 = 12 只。\n很聪明。但每道题都要想一个新花招。\n现在用代数来做：\n方程组：通用的万能钥匙 设：鸡 = x 只，兔 = y 只 条件一（头）： x + y = 35 条件二（脚）： 2x + 4y = 94 从条件一：x = 35 - y 代入条件二：2(35 - y) + 4y = 94 70 - 2y + 4y = 94 2y = 24 y = 12 → 兔 12 只 x = 23 → 鸡 23 只 验证：23 + 12 = 35 ✓（头对了） 23×2 + 12×4 = 46 + 48 = 94 ✓（脚也对了） 两种方法都能解，但代数的方法有一个巨大的优势：\n它是通用的。\n假设法每道题都要想新花招。方程组的方法换了题目也一样用——管你是鸡兔同笼、牛马同圈、还是苹果橘子混装，步骤完全相同：\n给不知道的量取名字（x, y） 把条件翻译成方程 用逻辑推出答案 这就是代数的威力：把\u0026quot;巧妙\u0026quot;变成\u0026quot;机械\u0026quot;，把\u0026quot;灵感\u0026quot;变成\u0026quot;流程\u0026quot;。\n一句话记住： 代数的伟大之处，不在于它能解难题，而在于它让任何人都能用同一套方法解任何题。这就是符号化和通用化的力量。\n第五章：符号的压缩力 还记得第一篇讲的吗？数学是压缩语言。\nx 的发明是压缩史上的一次巨大飞跃。看看同一道题在不同时代的写法：\n同一道题，越来越短 古巴比伦（公元前 2000 年）： \u0026#34;我有一个长方形的田。长比宽多 7 步。 面积是 60 平方步。问长和宽各是多少？\u0026#34; → 3 行文字 花拉子米（公元 820 年）： \u0026#34;一个东西，它的平方加上它的十倍等于三十九\u0026#34; → 1 行文字 今天： x² + 10x = 39 → 1 行公式，12 个字符 从 3 行文字到 12 个字符。 信息没少，但体积压缩了十几倍。\n而且，不只是更短了。符号让你能做文字做不到的事：\n符号能做，文字做不到的事 能力 文字描述 符号公式 一眼看出结构 \u0026ldquo;一个数的平方加上这个数的十倍\u0026rdquo; x² + 10x 机械化操作 需要重新理解语义 直接移项、合并、化简 通用化 每道题重新描述 换个系数就是新题 传递跨语言 中文/阿拉伯语/拉丁语各不同 x² + 10x = 39 全世界都看得懂 最后一行尤其重要。\n数学符号是人类第一种真正的\u0026quot;通用语言\u0026quot;。\n一个中国学生、一个巴西学生、一个尼日利亚学生——他们可能一个字的日常语言都不通，但看到 x² + 10x = 39，他们理解的是完全相同的东西。\n这就是压缩的极致——不只是压缩了长度，还压缩掉了语言和文化的差异。\n一句话记住： 符号化不只是\u0026quot;更短\u0026quot;。它让知识变成了跨越语言、跨越时代、跨越文化的通用格式。x² + 10x = 39，古巴比伦人看得懂，你也看得懂。\n第六章：连接 AI——几十亿个 x 现在，让我们把目光从一个 x 移向 AI。\n一个方程有一个未知数 x。鸡兔同笼有两个未知数 x 和 y。\n那神经网络呢？\nAI 有多少个\"x\"？ 一道鸡兔同笼题： 2 个未知数 (x, y) 一组工程方程： 几十个未知数 一个天气预报模型： 几千个未知数 GPT-2（2019）： 1.5 亿个未知数 GPT-3（2020）： 1750 亿个未知数 GPT-4（2023）： 据传超过 1 万亿个未知数 这些\u0026quot;未知数\u0026quot;在 AI 里有一个名字：参数（parameters），也叫权重（weights）。\n训练一个 AI 模型，就是在\u0026quot;解方程\u0026quot;——只不过，方程的数量和未知数的数量都是天文级别的。\n鸡兔同笼 vs 训练 AI 鸡兔同笼 训练 GPT 未知数 x = 鸡, y = 兔 w₁, w₂, \u0026hellip;, w₁₇₅₀₀₀₀₀₀₀₀₀ 条件（数据） 头 = 35, 脚 = 94 几万亿个词的文本 方程 2 个 数不清（每个词的预测都是一个条件） 解法 手算几步 梯度下降，迭代几十万次 目标 精确解 足够好的近似解 来看一个具体的例子。\n我们实验室里有一个叫 microgpt 的迷你模型。它只有 4192 个参数——对 GPT 来说微不足道，但对理解原理来说刚刚好。\nazureuser@ai-lab:~$ cd ~/microgpt \u0026amp;\u0026amp; python3 microgpt.py 训练开始后，你会看到：\nstep 0, loss = 3.367 ← 刚开始，什么都不会，loss 很高 step 100, loss = 2.741 step 200, loss = 2.456 step 500, loss = 2.112 step 1000, loss = 1.924 ← 训练完成，loss 下降了 生成的名字: Jame, Kel, Mara, Trey ... 这个过程在做什么？\n调整 4192 个参数（x₁, x₂, \u0026hellip;, x₄₁₉₂），让模型对数据的预测越来越准确。\n每一步都在\u0026quot;解方程\u0026quot;。只不过不是一步求出精确解，而是一点一点逼近一个\u0026quot;足够好\u0026quot;的答案。\n就像你在一个黑暗的房间里找东西——你看不见它在哪，但你每次伸手都能感觉到\u0026quot;比刚才近了一点\u0026quot;还是\u0026quot;远了一点\u0026quot;。走几千步之后，你就摸到了。\n一句话记住： AI 训练 = 求解天文数量的未知数。代数教会了人类\u0026quot;给未知数取名字\u0026quot;，AI 把这个思想推到了极致——几十亿个 x，用数学方法一起求解。\n第七章：从 x 到 x 思维 这篇文章的最后，我想说一个可能让你意外的观点：\nx 不只是一个数学符号。x 是一种思维方式。\nx 思维 = 处理\"不确定\"的能力 日常生活中的 x 思维： \u0026#34;如果明天下雨(x)，我就带伞\u0026#34; → x 是一个可能但不确定的事件，你根据它做计划 \u0026#34;这条路堵了，换一条\u0026#34; → 原计划（方程）不成立，你调整条件重新解 \u0026#34;我不知道对方怎么想\u0026#34; → 对方的想法是 x，你根据言行（条件）去推测 \u0026#34;如果我每月存 x 元，几年后能买房？\u0026#34; → 这就是方程：12x × 年数 = 首付 小孩子的世界里，大多数事情是\u0026quot;已知\u0026quot;的：太阳会升起，妈妈会做饭，1+1=2。\n成年人的世界里，大多数事情是\u0026quot;未知\u0026quot;的：明天股市涨不涨？这个项目能不能按时完成？我该不该换工作？\n处理\u0026quot;未知\u0026quot;是成人世界最核心的能力。而代数——给\u0026quot;不知道\u0026quot;取个名字，然后用逻辑去推理——正是这种能力的数学形式。\n数学不只教你算数。数学教你如何面对未知。\n这篇的核心： 数学的第三次飞跃（前两次是\u0026quot;抽象\u0026quot;和\u0026quot;零\u0026quot;）：\n敢于面对\u0026quot;不知道\u0026quot;，给它一个名字，然后用逻辑把它推出来。\n这就是代数。这就是 x。\n动手实验 实验一：Python 解方程 # 不需要任何库！纯逻辑 # 鸡兔同笼：x + y = 35, 2x + 4y = 94 # 用代入法求解 total_heads = 35 total_feet = 94 # 从条件一：x = total_heads - y # 代入条件二：2(total_heads - y) + 4y = total_feet # 化简：2*total_heads - 2y + 4y = total_feet # 化简：2y = total_feet - 2*total_heads y = (total_feet - 2 * total_heads) // 2 # 兔 x = total_heads - y # 鸡 print(f\u0026#34;鸡: {x} 只\u0026#34;) print(f\u0026#34;兔: {y} 只\u0026#34;) print(f\u0026#34;验证 — 头: {x + y}, 脚: {2*x + 4*y}\u0026#34;) # 输出： # 鸡: 23 只 # 兔: 12 只 # 验证 — 头: 35, 脚: 94 实验二：给 AI 的\u0026quot;x\u0026quot;拍个快照 # 看看 microgpt 训练前后，参数（x）是怎么变化的 # 这需要在 ai-lab-venv 环境里运行 # 简化演示：一个只有 3 个参数的\u0026#34;超迷你网络\u0026#34; import random # 三个参数（未知数），随机初始化 params = [random.uniform(-1, 1) for _ in range(3)] print(f\u0026#34;训练前的参数（随机）: \u0026#34;) for i, p in enumerate(params): print(f\u0026#34; x{i+1} = {p:.4f}\u0026#34;) # 模拟训练：参数被一步步调整（梯度下降的简化演示） target = [0.5, -0.3, 0.8] # 假设\u0026#34;正确答案\u0026#34; learning_rate = 0.1 print(f\u0026#34;\\n模拟训练过程：\u0026#34;) for step in range(10): # 计算\u0026#34;差距\u0026#34;（loss） loss = sum((p - t) ** 2 for p, t in zip(params, target)) if step % 3 == 0: print(f\u0026#34; 第 {step} 步, loss = {loss:.4f}\u0026#34;) # 调整参数：往\u0026#34;正确答案\u0026#34;的方向靠近一点 params = [p + learning_rate * (t - p) for p, t in zip(params, target)] print(f\u0026#34;\\n训练后的参数: \u0026#34;) for i, p in enumerate(params): print(f\u0026#34; x{i+1} = {p:.4f} (目标: {target[i]})\u0026#34;) # 输出类似： # 训练前的参数（随机）: # x1 = 0.7234 # x2 = -0.8912 # x3 = 0.1456 # # 模拟训练过程： # 第 0 步, loss = 0.7531 # 第 3 步, loss = 0.3891 # 第 6 步, loss = 0.2011 # 第 9 步, loss = 0.1040 # # 训练后的参数: # x1 = 0.5134 (目标: 0.5) # x2 = -0.3073 (目标: -0.3) # x3 = 0.7826 (目标: 0.8) 看到了吗？训练 = 让一堆\u0026quot;x\u0026quot;从随机值慢慢逼近\u0026quot;正确值\u0026quot;。\n本篇小结 这篇文章讲了什么？ 一、x = 给\u0026quot;不知道\u0026quot;取个名字\n花拉子米（公元 820 年）发明了代数 (al-jabr) x 不可怕，它只是\u0026quot;待填空\u0026quot;，你每天都在用 二、方程 = 天平\n等号是支点，两边必须保持平衡 解方程 = 一层层剥掉 x 身上的运算 三、代数把\u0026quot;灵感\u0026quot;变成了\u0026quot;流程\u0026quot;\n古人每道题要想新花招 代数提供了通用的方法：取名字 → 列方程 → 推理 四、符号是跨越时空的通用语言\n从三行文字到 12 个字符 x² + 10x = 39 全世界都看得懂 五、AI 训练 = 求解几十亿个 x\n神经网络的参数就是 x 训练就是让参数从随机值逼近\u0026quot;好的值\u0026quot; 六、x 思维 = 处理\u0026quot;未知\u0026quot;的能力\n数学不只教你算数，教你面对未知 敢于面对\u0026quot;不知道\u0026quot;，用逻辑去推——这就是代数思维 下一篇预告 我们现在有了数（从负无穷到正无穷），有了 x（可以表示任何未知的量），有了方程（描述 x 必须满足的条件）。\n但数是\u0026quot;看不见\u0026quot;的。方程是\u0026quot;读不出画面\u0026quot;的。\n如果我们能把方程\u0026quot;画出来\u0026quot;呢？\n1637 年，一个法国哲学家躺在床上看天花板上的苍蝇，想到了一个天才的主意：用两个数来确定一个点的位置。\n这个人叫笛卡尔。他的发明——坐标系——从此把代数和几何永远焊在了一起。\n下一篇：看见数学（四）：坐标革命——笛卡尔的天才之桥\n《看见数学》系列 — 从结绳记事到 AI，看见数学之美。\n本文首发于「AI 学习笔记」博客：https://Jason-Azure.github.io/ai-blog/\n微信公众号：AI-lab学习笔记\n系列文章完整列表见 标签：看见数学\n","permalink":"https://jason-azure.github.io/ai-blog/posts/see-math-3-unknown-x/","summary":"x 不可怕，它只是一个\u0026quot;待填空\u0026quot;。代数的核心不是解方程，而是——你可以用一个符号表示你还不知道的东西，然后用逻辑推出它。而 AI 的训练，本质上就是在同时求解几十亿个 x。","title":"看见数学（三）：未知数 x——给\"不知道\"取个名字"},{"content":" 上一篇 《未知数 x》 里，我们学会了给\u0026quot;不知道\u0026quot;取名字，用方程去推理。\n但到目前为止，数学都是看不见的。数字是抽象的，方程是一行符号。\n如果我告诉你——每一个方程，都可以画成一幅画呢？\n系列导航\n▹ 第一篇：结绳记事——人类第一次抽象 ▹ 第二篇：零的发明——最伟大的\"无\" ▹ 第三篇：未知数 x——给\"不知道\"取个名字 ▸ 第四篇（本文）：坐标革命——笛卡尔的天才之桥 ▹ 第五篇：方程的力量——自然界的源代码 第一章：天花板上的苍蝇 1637 年，法国。\n勒内·笛卡尔（René Descartes）——哲学家，写过\u0026quot;我思故我在\u0026quot;的那位——据说正躺在床上发呆。\n天花板上有一只苍蝇在爬。\n笛卡尔盯着它，脑子里冒出一个问题：\n我怎么才能精确地告诉别人，这只苍蝇在天花板的什么位置？\n他注意到，天花板的边缘形成了两条直线——一条横的，一条竖的。\n如果以墙角为起点——\n苍蝇离左墙 3 尺 苍蝇离前墙 5 尺 两个数 (3, 5)，就能唯一确定苍蝇的位置。\n前墙 ───────────────────────── │ │ │ 🪰 │ │ (3, 5) │ │ │ │ ← 3尺 → │ 左│ ↑ │ 墙│ 5尺 │ │ ↓ │ ═════════════════════════ 墙角 (0,0) 这个看似简单的想法，改变了整个数学的历史。\n因为笛卡尔做了一件前人从未做过的事：他在数（代数）和形（几何）之间架了一座桥。\n从此——\n每一个点，都可以用一组数来表示 每一个方程，都可以画成一条线或一个面 每一个几何图形，都可以写成一个公式 代数和几何，从此是同一件事。\n第二章：两条线创造一个世界 笛卡尔的发明，我们今天叫它直角坐标系（Cartesian coordinate system）。名字就来自他的拉丁文名 Cartesius。\n构造极其简单：\n坐标系：两条线 + 一个原点 y 轴（纵轴） ↑ 3 ─ ┤ ★ B(4, 3) │ 2 ─ ┤ ★ A(2, 2) │ 1 ─ ┤ │ 0 ──┼────┼────┼────┼────┼──→ x 轴（横轴） 0 1 2 3 4 原点 (0, 0) = 两条轴的交叉点 A 点 = (2, 2) → 右走 2 步，上走 2 步 B 点 = (4, 3) → 右走 4 步，上走 3 步 就是这么简单：\n横轴（x 轴）：往右是正，往左是负 纵轴（y 轴）：往上是正，往下是负 原点 (0, 0)：两条轴的交叉点 每个点：用 (x, y) 两个数确定 还记得第二篇里零打开了负数的大门吗？在坐标系里，负数让我们有了四个象限：\ny ↑ 第二象限 │ 第一象限 (-x, +y) │ (+x, +y) \u0026#34;左上\u0026#34; │ \u0026#34;右上\u0026#34; ───────────── 0 ──────────────→ x 第三象限 │ 第四象限 (-x, -y) │ (+x, -y) \u0026#34;左下\u0026#34; │ \u0026#34;右下\u0026#34; │ 没有零和负数 → 只有右上角（第一象限） 有了零和负数 → 四个象限，无限延伸 看到了吗？前面学的每一个概念都在这里汇合了——零是原点，负数让空间完整，x 和 y 是两个未知数。坐标系把它们全部统一在一张图里。\n一句话记住： 坐标系 = 一张无限大的纸 + 两条带刻度的线。任何一个点，都有一个唯一的\u0026quot;地址\u0026quot;——(x, y)。\n第三章：方程会\u0026quot;画画\u0026quot; 坐标系最震撼的地方来了。\n在上一篇里，方程 y = 2x + 1 只是一行符号。现在，我们来画出来看看。\n方程的意思是：给 x 一个值，就能算出 y 的值。\ny = 2x + 1：从数到点到线 第一步：算几个点 x = 0 → y = 2×0 + 1 = 1 → 点 (0, 1) x = 1 → y = 2×1 + 1 = 3 → 点 (1, 3) x = 2 → y = 2×2 + 1 = 5 → 点 (2, 5) x = -1 → y = 2×(-1)+1 = -1 → 点 (-1, -1) 第二步：把这些点画在坐标系上 y 5 ─┤ ★ (2,5) │ ╱ 3 ─┤ ★ (1,3) │ ╱ 1 ─┤ ★ (0,1) │ ╱ -1 ─★ (-1,-1) │╱ ────┼────┼────┼────→ x -1 0 1 2 第三步：把所有可能的 x 都算一遍 → 一条直线！ 一个方程 → 一条线。\n这就是笛卡尔的魔法。方程不再是一行干巴巴的符号——它有了形状。\n不同的方程画出不同的\u0026quot;画\u0026quot;：\n方程的\"画廊\" y = 2x + 1 → 直线（匀速运动的轨迹） ╱ y = x² → 抛物线（投篮的弧线） ╱╲ y = sin(x) → 波浪（声音、光、心跳） ∿∿∿ x² + y² = 25 → 圆（r = 5 的完美圆） ◯ y = 2ˣ → 指数曲线（病毒传播） ╱ ← 越来越陡！ 每一个方程都有一张\u0026quot;脸\u0026quot;。 学会了坐标系，你就拥有了把方程\u0026quot;看见\u0026quot;的能力。\n这就是为什么这一篇叫\u0026quot;坐标革命\u0026quot;——它不是一个小改进。它从根本上改变了人类理解数学的方式。\n在笛卡尔之前：\n代数和几何是两门独立的学科 代数家用符号算，几何家用尺规画 彼此说的是\u0026quot;不同的语言\u0026quot; 在笛卡尔之后：\n它们是同一件事的两面 每个代数问题都可以画成几何图形 每个几何图形都可以写成代数方程 一句话记住： 数形结合不是一种\u0026quot;学习技巧\u0026quot;。它是数学本身的结构。方程和图形，从来就是同一个东西的两种表达方式。笛卡尔只是第一个看见这一点的人。\n第四章：从两个数到三个数 笛卡尔的坐标系用两个数 (x, y) 确定平面上的一个点。\n那如果加一个维度呢？\n维度的扩展 1 个数 → 数轴上的一个点 温度: 23°C ──────●──────→ 2 个数 → 平面上的一个点 地图: (经度, 纬度) │ ● │ ─────┼──────→ 3 个数 → 空间中的一个点 房间: (楼层, 左右, 前后) ╱ ● ╱│ ╱ │ ─────┼──────→ 三维空间 (x, y, z) 我们还能想象——前后、左右、上下。这就是我们生活的物理世界。\n你每天都在用三维坐标系，只是可能没意识到：\n坐标系无处不在 场景 坐标 维度 地图导航 (经度, 纬度) 2D GPS 定位 (经度, 纬度, 海拔) 3D 游戏角色位置 (x, y, z) 3D 棋盘 (列, 行)，如 E4 2D 电影院座位 (排, 号) 2D 公寓地址 (栋, 楼层, 房号) 3D Excel 单元格 (列, 行)，如 C5 2D 但这里有一个关键问题：为什么要停在三个？\n从数学的角度——没有任何理由停在三个。\n1 个数、2 个数、3 个数……为什么不能 4 个？10 个？100 个？768 个？\n数学完全允许。公式一模一样。只是你的眼睛和大脑画不出来了。\n但你的眼睛画不出来，不代表它不存在。\n一句话记住： 坐标系从 2 维到 3 维，只是多加一条轴。从 3 维到 768 维，也只是多加轴。数学不受你的想象力限制。\n第五章：连接 AI——给每个词一个\u0026quot;坐标\u0026quot; 现在，让我们做一件惊人的事。\n把\u0026quot;坐标\u0026quot;这个概念，从物理空间搬到语义空间。\n词也可以有\u0026quot;位置\u0026quot; 在地图上，北京的坐标是 (116.4, 39.9)。两个数，确定一个物理位置。\n在 AI 里，\u0026ldquo;国王\u0026quot;这个词也有\u0026quot;坐标\u0026rdquo;——只不过不是 2 维的，而是几百维的：\n从地理坐标到词坐标 地理空间（2 维）： 北京 = (116.4, 39.9) 上海 = (121.5, 31.2) → 两个数确定一个城市的位置 语义空间（768 维）： \u0026#34;国王\u0026#34; = (0.21, -0.45, 0.89, 0.12, ..., 0.33) \u0026#34;王后\u0026#34; = (0.19, -0.42, 0.85, -0.15, ..., 0.30) → 768 个数确定一个词的\u0026#34;含义位置\u0026#34; 地理空间里： 北京和上海\u0026#34;靠得近\u0026#34; → 因为它们都在中国东部 语义空间里： \u0026#34;国王\u0026#34;和\u0026#34;王后\u0026#34;\u0026#34;靠得近\u0026#34; → 因为它们含义相关 \u0026#34;国王\u0026#34;和\u0026#34;汽车\u0026#34;\u0026#34;离得远\u0026#34; → 因为它们含义无关 这就是 词嵌入（Word Embedding）——AI 理解语言的第一步。\n它做的事情，和笛卡尔做的事情本质上一模一样：\n笛卡尔 vs AI：同一个思想 笛卡尔（1637） AI 词嵌入（2013） 给什么取坐标 平面上的点 词汇表里的词 坐标维度 2 维 (x, y) 768 维 \u0026ldquo;近\u0026quot;意味着 物理距离近 含义相似 核心操作 算两个点的距离 算两个词向量的距离 革命在哪 把形（几何）变成了数 把义（语义）变成了数 笛卡尔把形状变成了数。AI 把含义变成了数。\n思想是同一个：给事物一个坐标，就能用数学来操作它。\n实际看看 让我们在实验机器上验证\u0026quot;含义相近的词，坐标也相近\u0026rdquo;：\nazureuser@ai-lab:~$ source ~/ai-lab-venv/bin/activate (ai-lab-venv) azureuser@ai-lab:~$ python3 -c \u0026#34; import numpy as np # 简化的 5 维词向量（真实模型用 768 维，原理完全一样） words = { \u0026#39;国王\u0026#39;: np.array([0.9, 0.8, 0.1, 0.3, 0.7]), \u0026#39;王后\u0026#39;: np.array([0.8, 0.2, 0.1, 0.3, 0.7]), \u0026#39;公主\u0026#39;: np.array([0.7, 0.1, 0.2, 0.3, 0.6]), \u0026#39;汽车\u0026#39;: np.array([0.1, 0.5, 0.9, 0.8, 0.1]), \u0026#39;卡车\u0026#39;: np.array([0.1, 0.6, 0.8, 0.9, 0.1]), } print(\u0026#39;词语之间的距离（越小 = 越相似）：\u0026#39;) print(\u0026#39;─\u0026#39; * 40) pairs = [(\u0026#39;国王\u0026#39;,\u0026#39;王后\u0026#39;), (\u0026#39;国王\u0026#39;,\u0026#39;公主\u0026#39;), (\u0026#39;汽车\u0026#39;,\u0026#39;卡车\u0026#39;), (\u0026#39;国王\u0026#39;,\u0026#39;汽车\u0026#39;), (\u0026#39;王后\u0026#39;,\u0026#39;卡车\u0026#39;)] for a, b in pairs: dist = np.linalg.norm(words[a] - words[b]) bar = \u0026#39;█\u0026#39; * int(dist * 10) print(f\u0026#39; {a} ↔ {b}: {dist:.2f} {bar}\u0026#39;) \u0026#34; 词语之间的距离（越小 = 越相似）： ──────────────────────────────────────── 国王 ↔ 王后: 0.61 ██████ 国王 ↔ 公主: 0.78 ███████ 汽车 ↔ 卡车: 0.17 █ 国王 ↔ 汽车: 1.41 ██████████████ 王后 ↔ 卡车: 1.38 █████████████ \u0026ldquo;国王\u0026quot;和\u0026quot;王后\u0026quot;距离 0.61——很近。\u0026ldquo;汽车\u0026quot;和\u0026quot;卡车\u0026quot;距离 0.17——更近。而\u0026quot;国王\u0026quot;和\u0026quot;汽车\u0026rdquo;？距离 1.41——很远。\n含义相近 → 坐标相近 → 距离小。\n这不就是地图上的逻辑吗？北京和天津离得近，北京和纽约离得远。只不过这张\u0026quot;地图\u0026quot;有 768 个维度，每个词是地图上的一个\u0026quot;城市\u0026rdquo;。\n如果你读过我的 《AI 的数学语言（一）》，这些概念会很熟悉——那里有更详细的向量和距离计算。这篇是帮你理解为什么要这么做：因为笛卡尔 400 年前就证明了——给事物一个坐标，你就能用数学来处理它。\n一句话记住： AI 的词嵌入 = 给每个词一个\u0026quot;坐标\u0026quot;。坐标近 = 含义近。笛卡尔用坐标统一了数和形，AI 用坐标统一了数和义。同一个思想，跨越了 400 年。\n第六章：坐标思维——万物皆可定位 走到这里，让我们再拉高视角。\n笛卡尔发明坐标系时，他想解决的是\u0026quot;苍蝇在哪\u0026quot;的问题。但他实际上发明了一种思维方式——\n给事物取坐标，就是把它变成数学能处理的对象。\n万物皆可坐标 事物 \u0026ldquo;坐标\u0026quot;是什么 维度 地球上的城市 (经度, 纬度) 2 一杯咖啡 (温度, 甜度, 浓度, 酸度) 4 一个游戏角色 (攻击, 防御, 速度, HP, MP) 5 一首歌的风格 (节奏感, 旋律性, 电子感, 忧伤度, \u0026hellip;) 很多 一个人的性格 (外向性, 尽责性, 开放性, \u0026hellip;) 心理学用 5 维 一个词的含义 (维度1, 维度2, \u0026hellip;, 维度768) 768 一张图片 (像素1, 像素2, \u0026hellip;) 百万级 任何事物，只要你能用一组数来描述它，它就有了坐标，它就可以被数学处理。\n这就是为什么坐标系是如此深刻的发明——它不只是一张画图的纸。它是一个通用框架：\n定位一只苍蝇 → (x, y) 定位一颗恒星 → (赤经, 赤纬, 距离) 定位一个词的含义 → (768 个数) 定位一张图的内容 → (百万个数) 笛卡尔教会人类的不只是\u0026quot;画坐标轴\u0026rdquo;。他教会人类的是——万物皆可用数定位，定位之后就能计算。\n第七章：回顾——四块拼图 让我们回头看看，从第一篇到现在，我们积累了什么：\n第一幕：数的觉醒——四块拼图 第一篇 · 抽象 三只羊 → \u0026#34;3\u0026#34; \u0026#34;用一个符号代表一个事物\u0026#34; → AI 的 Tokenization 就是这件事 ↓ 第二篇 · 扩展 零 → 负数 → 完整数轴 \u0026#34;敢想不存在的东西\u0026#34; → AI 的 ReLU 用零做开关 ↓ 第三篇 · 未知 x → 方程 → 推理 \u0026#34;给不知道的东西取名字\u0026#34; → AI 的参数就是几十亿个 x ↓ 第四篇 · 定位（本文） 坐标 → 数形统一 → 万物可定位 \u0026#34;给事物一个坐标就能计算\u0026#34; → AI 的词向量就是语义坐标 这四块拼图拼在一起，你就已经拥有了理解 AI 的数学基础的思想地基：\n万物变数字（抽象） 数字可以是\u0026quot;没有\u0026quot;和\u0026quot;反方向\u0026quot;（零和负数） 不知道的东西也能处理（代数） 给事物坐标就能计算（坐标系） 下一篇是第一幕的收官之作——我们要看看，当这些工具组合起来，方程能释放出什么样的力量。\n动手实验 实验一：画你自己的方程 # 在 ai-lab-venv 里运行 # 用 Python 画 y = x² 的图像 # 不需要 matplotlib！纯文本画图 def plot_text(func, x_range=(-5, 5), width=40, height=20): \u0026#34;\u0026#34;\u0026#34;用文字在终端画函数图像\u0026#34;\u0026#34;\u0026#34; x_min, x_max = x_range # 计算所有 y 值 points = [] for i in range(width): x = x_min + (x_max - x_min) * i / width y = func(x) points.append((x, y)) y_vals = [p[1] for p in points] y_min, y_max = min(y_vals), max(y_vals) # 画图 for row in range(height, -1, -1): y = y_min + (y_max - y_min) * row / height line = \u0026#34;\u0026#34; for col in range(width): py = points[col][1] py_row = int((py - y_min) / (y_max - y_min) * height) if py_row == row: line += \u0026#34;★\u0026#34; elif col == width // 2 and row == 0: line += \u0026#34;┼\u0026#34; elif col == width // 2: line += \u0026#34;│\u0026#34; elif row == 0: line += \u0026#34;─\u0026#34; else: line += \u0026#34; \u0026#34; # 只在几个关键行显示 y 值 if row == height or row == height // 2 or row == 0: print(f\u0026#34;{y:\u0026gt;6.1f} ┤{line}\u0026#34;) else: print(f\u0026#34; │{line}\u0026#34;) print(f\u0026#34; {\u0026#39;\u0026#39;:\u0026gt;{width//2-3}}x 轴\u0026#34;) print(\u0026#34;y = x² 的图像：\u0026#34;) print() plot_text(lambda x: x**2) # 输出一个文本版的抛物线！ 实验二：感受\u0026quot;坐标 = 定位\u0026quot; # 给三个城市取坐标，算它们之间的距离 import math cities = { \u0026#34;北京\u0026#34;: (116.4, 39.9), \u0026#34;上海\u0026#34;: (121.5, 31.2), \u0026#34;广州\u0026#34;: (113.3, 23.1), } print(\u0026#34;城市之间的坐标距离：\u0026#34;) print(\u0026#34;─\u0026#34; * 40) for c1 in cities: for c2 in cities: if c1 \u0026lt; c2: # 避免重复 x1, y1 = cities[c1] x2, y2 = cities[c2] dist = math.sqrt((x1-x2)**2 + (y1-y2)**2) print(f\u0026#34; {c1} ↔ {c2}: {dist:.1f}°\u0026#34;) print() print(\u0026#34;坐标近 = 地理位置近\u0026#34;) print(\u0026#34;词向量也是一样：坐标近 = 含义相似\u0026#34;) # 输出： # 城市之间的坐标距离： # ──────────────────────────────────────── # 上海 ↔ 广州: 11.9° # 上海 ↔ 北京: 10.0° # 北京 ↔ 广州: 17.1° # # 坐标近 = 地理位置近 # 词向量也是一样：坐标近 = 含义相似 本篇小结 这篇文章讲了什么？ 一、笛卡尔的天才之桥\n1637 年，两条线 + 一个原点 = 坐标系 把代数（数）和几何（形）永远焊在一起 二、方程会\u0026quot;画画\u0026quot;\ny = 2x + 1 → 直线。y = x² → 抛物线。y = sin(x) → 波浪 数形结合不是学习技巧，是数学本身的结构 三、维度不止三个\n1D → 2D → 3D → \u0026hellip; → 768D 数学不受想象力限制，公式在任何维度都一样 四、AI 的词嵌入 = 语义坐标\n笛卡尔把形状变成了数，AI 把含义变成了数 坐标近 = 含义近。同一个思想，跨越 400 年 五、万物皆可坐标\n城市、咖啡、歌曲、性格、词汇——只要能用一组数描述，就能计算 笛卡尔教会人类：给事物坐标，就能用数学处理 下一篇预告 我们现在有了完整的工具箱：数、零、负数、未知数 x、坐标系。\n是时候看看这些工具组合起来能做什么了。\nF = ma。E = mc²。每一个方程背后，都是人类对宇宙的一次发现。\n方程不是考试题。方程是人类发现的自然界的源代码。\n下一篇是第一幕的收官之作：看见数学（五）：方程的力量——自然界的源代码\n《看见数学》系列 — 从结绳记事到 AI，看见数学之美。\n本文首发于「AI 学习笔记」博客：https://Jason-Azure.github.io/ai-blog/\n微信公众号：AI-lab学习笔记\n系列文章完整列表见 标签：看见数学\n","permalink":"https://jason-azure.github.io/ai-blog/posts/see-math-4-coordinates/","summary":"1637 年，笛卡尔把数和形焊在了一起。从此，每个方程都能画一幅画，每幅画都能写一个方程。而 AI 做的第一件事——把词变成向量——就是给每个词一个\u0026quot;坐标\u0026quot;。","title":"看见数学（四）：坐标革命——笛卡尔的天才之桥"},{"content":" 前四篇，我们一步步积累了数学的工具箱：数的抽象、零与负数、未知数 x、坐标系。\n现在，是时候看看——这些工具组合起来，能释放出什么样的力量。\n这一篇是第一幕的收官之作。\n系列导航\n▹ 第一篇：结绳记事——人类第一次抽象 ▹ 第二篇：零的发明——最伟大的\"无\" ▹ 第三篇：未知数 x——给\"不知道\"取个名字 ▹ 第四篇：坐标革命——笛卡尔的天才之桥 ▸ 第五篇（本文）：方程的力量——自然界的源代码 【第一幕完结】 第一章：\u0026ldquo;方程\u0026quot;这个词，是中国人起的名 你可能不知道——\u0026ldquo;方程\u0026quot;这个词，来自中国。\n公元 1 世纪左右成书的《九章算术》，是中国古代最重要的数学著作。全书分九章，其中第八章的名字就叫\u0026quot;方程\u0026rdquo;。\n\u0026ldquo;方程\u0026quot;的原意是：并排（方）摆放的等式（程）。\n《九章算术》·方程章·第一题 原文（意译）： \u0026#34;上等稻谷 3 捆、中等 2 捆、下等 1 捆，共出米 39 斗； 上等 2 捆、中等 3 捆、下等 1 捆，共出米 34 斗； 上等 1 捆、中等 2 捆、下等 3 捆，共出米 26 斗。 问三等稻谷各出米几何？\u0026#34; 用今天的符号： 3x + 2y + z = 39 2x + 3y + z = 34 x + 2y + 3z = 26 答案：上等 x = 9¼ 斗，中等 y = 4¼ 斗，下等 z = 2¾ 斗 三个未知数，三个方程。这就是线性方程组。\n中国人在两千年前就在系统地解方程组了。而《九章算术》中解方程的方法——逐步消去未知数——和今天线性代数课上教的\u0026quot;高斯消元法\u0026rdquo;，本质上完全相同。\n高斯是 1800 年代的德国数学家。《九章算术》比他早了将近 1800 年。\n刘徽（公元 263 年）为《九章算术》写了详细注解，不仅给出了更严密的推导，还用\u0026quot;割圆术\u0026rdquo;——把圆切成越来越多的多边形——计算出圆周率 π ≈ 3.1416。这个思想和一千四百年后欧洲的微积分如出一辙。刘徽是世界数学史上最被低估的天才之一。\n所以，当你看到\u0026quot;方程\u0026quot;这个词，请记住——这是一个中国词，描述的是中国人两千年前就在做的事情。\n第二章：方程在说什么？ 让我们抛开\u0026quot;解题\u0026quot;的思维，重新看看方程到底在说什么。\n一个方程，本质上是一句关于世界的陈述。\n方程 = 一句关于世界的陈述 方程 它在说什么 距离 = 速度 × 时间 \u0026ldquo;你走多远，取决于你多快和走多久\u0026rdquo; F = ma \u0026ldquo;力 = 质量 × 加速度。推一个东西，越重的越难加速\u0026rdquo; E = mc² \u0026ldquo;能量 = 质量 × 光速²。一丁点物质里藏着巨大的能量\u0026rdquo; 周长 = 2πr \u0026ldquo;圆有多大，只取决于半径。π 是宇宙的常数\u0026rdquo; 1 + 1 = 2 \u0026ldquo;把两个一合在一起，得到二。最简单的真理\u0026rdquo; 看到了吗？每一个方程都是一句话。 只不过这句话用的是数学语言——更短、更精确、没有歧义。\n牛顿没有\u0026quot;发明\u0026quot;F = ma。他发现了它——就像一个探险家发现一条河流。那条河流一直在那里，牛顿只是第一个看见它并把它记录下来的人。\n方程不是人类的创造。方程是人类对自然界规律的记录。\n一句话记住： 方程不是考试题。方程是自然界的源代码——宇宙按照这些规则运行，数学家只是把它们\u0026quot;翻译\u0026quot;成了人类能读的符号。\n第三章：从简单到复杂——方程的进化 让我们从最简单的方程出发，一步一步看它能走多远。\n第一级：线性方程——直线关系 y = 2x + 100 翻译：底薪 100 元，每工作 1 小时多赚 2 元 这是最简单的关系——匀速变化。画出来是一条直线。\n生活中的直线关系无处不在：路程与时间（匀速行驶）、话费与通话时长、出租车里程与费用。\n第二级：二次方程——抛物线 y = -5x² + 20x 翻译：投篮时篮球的飞行轨迹 篮球离手后，先上升、后下降，画出的是一条抛物线。\n惊人的事实：投篮、扔石头、喷泉的水柱、发射炮弹——用的是完全相同的方程。 伽利略在 1600 年代发现了这一点，从此人类知道——大自然对所有抛射物\u0026quot;一视同仁\u0026quot;。\n第三级：方程组——多个约束同时满足 回到《九章算术》的那道题——三种稻谷的价格，三个条件同时要满足。这就是方程组。\n现实世界的大多数问题都是方程组：\n方程组无处不在 场景 未知数 约束条件 《九章算术》稻谷 3 种谷物的价格 3 组买卖记录 红绿灯配时 每个路口的绿灯时长 各方向的车流量 飞机排班 每架飞机的航线 乘客需求 + 机场容量 + 成本 蛋白质折叠 每个原子的位置 化学键的约束 训练 GPT 1750 亿个参数 几万亿个词的预测 从《九章算术》的 3 个未知数到 GPT 的 1750 亿个——方程组的思想没有变，只是规模大了亿万倍。\n第四级：方程嵌套——复杂性的来源 真正有趣的事情发生在方程套在一起的时候。\n简单： y = 2x + 1 一个方程 嵌套： y = f(g(h(x))) 方程套方程套方程 神经网络：y = f₃₂(f₃₁(...f₂(f₁(x))...)) 32 层方程嵌套 一个方程很简单。但 32 个方程像俄罗斯套娃一样套在一起，就能产生极其复杂的行为——复杂到连设计它的人都无法完全理解它在做什么。\n这正是现代 AI 的状态。我们知道每一层在做什么（矩阵乘法 + 激活函数），但当几十层叠在一起时，涌现出的\u0026quot;智能\u0026quot;让所有人都感到惊讶。\n一句话记住： 简单的规则，嵌套足够多次，就能产生令人震惊的复杂行为。这是方程的力量，也是 AI 的秘密。\n第四章：最美的方程 数学史上有一些方程，因为它们的简洁和深刻，被称为\u0026quot;最美的方程\u0026quot;。\n让我挑几个，翻译给你听：\n人类发现的最美方程 1. 勾股定理：a² + b² = c²\n直角三角形的两条短边的平方之和 = 长边的平方。\n中国叫\u0026quot;勾股\u0026quot;，最早记载在《周髀算经》（约公元前 1 世纪）。书中记录的\u0026quot;勾三股四弦五\u0026quot;——3² + 4² = 5²——是中国数学的骄傲。\n这个定理有多深刻？后来的人们发现——它就是距离公式。 上一篇坐标系里算两个点的距离，用的就是勾股定理。GPS 定位、游戏碰撞检测、AI 计算词向量的距离——全部基于此。\n两千多年前的一个关于三角形的发现，今天在你手机里每秒运行几百万次。\n2. 圆的面积：S = πr²\n一个圆的面积，只取决于半径。\n刘徽的\u0026quot;割圆术\u0026quot;（公元 263 年）是人类最早计算 π 的精确方法之一。他把圆内接正多边形从 6 边增加到 96 边、192 边……边越多，面积越逼近圆的面积。\n后来祖冲之（公元 5 世纪）用这个方法算出 π 在 3.1415926 和 3.1415927 之间——精确到小数点后 7 位。这个记录保持了近一千年，直到 15 世纪的阿拉伯数学家才超越。\n刘徽的\u0026quot;切越来越细\u0026quot;的思想，本质上就是积分——微积分的核心思想之一。牛顿和莱布尼茨在 1400 年后才正式建立微积分理论。\n3. 牛顿第二定律：F = ma\n力 = 质量 × 加速度。\n5 个字符。描述了从苹果落地到火箭发射的一切运动。\n这个方程告诉你：宇宙中所有物体的运动，都遵循同一条规则。不管是蚂蚁还是行星。\n4. 爱因斯坦质能方程：E = mc²\n能量 = 质量 × 光速的平方。\n5 个字符。告诉你一件不可思议的事：物质就是能量，能量就是物质。 一个回形针大小的物质如果完全转化为能量，释放的能量相当于广岛原子弹。\n5. 欧拉恒等式：e^(iπ) + 1 = 0\n数学中五个最重要的常数——e, i, π, 1, 0——用一个方程优美地联系在一起。\n被数学家投票选为\u0026quot;最美的方程\u0026quot;。它把代数（0 和 1）、几何（π）、分析（e）和虚数（i）统一在一行里。\n每一个方程背后，都是人类对宇宙的一次深刻理解。 它们不是人类\u0026quot;编\u0026quot;出来的。它们是人类从自然界中\u0026quot;读\u0026quot;出来的——就像从一本无比厚重的书里，一个字一个字地辨认出来。\n第五章：中国的方程之路 中国在方程方面的贡献，远不止\u0026quot;方程\u0026quot;这个名字。\n中国数学的方程里程碑 时间 人物/著作 贡献 ~公元前 1 世纪 《周髀算经》 勾股定理\u0026quot;勾三股四弦五\u0026quot; ~公元 1 世纪 《九章算术》 \u0026ldquo;方程\u0026quot;章：系统的方程组解法 263 年 刘徽 割圆术（积分思想萌芽）、π ≈ 3.1416 5 世纪 祖冲之 π 精确到 7 位小数，领先世界千年 13 世纪 秦九韶 《数书九章》：高次方程的数值解法 13 世纪 李冶 \u0026ldquo;天元术\u0026rdquo;——用符号表示未知数，中国的代数符号化 14 世纪 朱世杰 《四元玉鉴》：四个未知数的方程组 特别值得一说的是秦九韶。\n1247 年，秦九韶在《数书九章》中提出了一种解高次方程的方法。在欧洲，类似的方法要到 1819 年才由英国数学家霍纳（Horner）重新发现——晚了将近 600 年。\n而朱世杰的《四元玉鉴》（1303 年）处理了四个未知数的方程组——这在当时的世界数学界是无与伦比的成就。\n中国数学家在方程领域的探索，比欧洲同行领先了几个世纪。 遗憾的是，由于后来的历史原因，这些成就没有像欧洲数学那样发展成系统的理论体系。但种子是中国播下的。\n一句话记住： \u0026ldquo;方程\u0026quot;是中国词。中国人在两千年前就在系统地解方程组，在七百年前就在解高次方程。这条路上，中国走在前面。\n第六章：连接 AI——注意力方程 故事讲到这里，让我们看看 AI 世界里最重要的那个方程。\n如果说牛顿用 F = ma 描述了物体如何运动，那么 Transformer 的作者用下面这个方程描述了AI 如何\u0026quot;思考\u0026rdquo;：\nTransformer 的核心方程（2017） Attention(Q, K, V) = softmax(QK^T / √d) · V 看到这一行，你可能想关掉页面。\n别急。 让我一个符号一个符号地翻译给你。\n\"注意力方程\"的人话翻译 想象你在读一句话：\u0026#34;小猫坐在温暖的垫子上\u0026#34; AI 在处理\u0026#34;垫子\u0026#34;这个词时，需要决定： 这句话里其他词，哪些和\u0026#34;垫子\u0026#34;关系大？ Q = \u0026#34;垫子\u0026#34;在问：\u0026#34;谁跟我有关？\u0026#34; （Query，查询） K = 每个词在回答：\u0026#34;我是xxx\u0026#34; （Key，键） V = 每个词提供自己的信息 （Value，值） QK^T = 算\u0026#34;垫子\u0026#34;和每个词的相关度 \u0026#34;垫子\u0026#34; × \u0026#34;小猫\u0026#34; → 0.6（有点关系——猫坐在垫子上） \u0026#34;垫子\u0026#34; × \u0026#34;温暖\u0026#34; → 0.8（很相关——温暖修饰垫子） \u0026#34;垫子\u0026#34; × \u0026#34;的\u0026#34; → 0.1（几乎无关） /√d = 缩放一下，防止数字太大 softmax = 把相关度变成概率（加起来等于 100%） 小猫: 25% 温暖: 55% 坐在: 10% 的: 5% 上: 5% · V = 按概率混合每个词的信息 最终\u0026#34;垫子\u0026#34;的新含义 = 55%的\u0026#34;温暖\u0026#34; + 25%的\u0026#34;小猫\u0026#34; + ... 结果：\u0026#34;垫子\u0026#34;不再只是一个孤立的词 它现在\u0026#34;知道\u0026#34;自己是温暖的、有猫坐着的垫子 这就是 AI \u0026ldquo;理解\u0026quot;语言的方式。\n它没有\u0026quot;思考\u0026rdquo;。它只是用一个方程——不断地算每个词应该\u0026quot;关注\u0026quot;哪些其他词，然后把信息混合起来。\n这个方程里用到了什么？\n注意力方程里的\"看见数学\" 方程中的元素 对应的数学概念 你在哪一篇学过 Q, K, V 向量/矩阵 = 坐标化的数 第四篇：坐标革命 QK^T 点积 = 衡量两个向量有多相似 坐标系里的距离 √d 开方 = 数的运算 第一篇：数的抽象 softmax 把数变成概率（0 到 1，加起来等于 1） 第二篇：零的性格 · V 矩阵乘法 = 按权重混合信息 第四篇：坐标与运算 你在前四篇学到的每一个概念，都在这一行方程里。\n这不是巧合。这就是数学的魅力——简单的概念，像积木一样搭建，最终构成了能\u0026quot;理解\u0026quot;人类语言的机器。\n如果你想深入了解这个方程的每一步，可以看我的 《从矩阵乘法到 Transformer》——那里有更详细的拆解。但此刻最重要的是：你不再害怕这行公式了。 因为你知道它的每一个部分从哪里来。\n一句话记住： AI 最核心的方程 Attention(Q,K,V) = softmax(QK^T/√d)·V，看起来复杂，但拆开来都是你已经认识的概念：向量、点积、缩放、概率、加权求和。没有一个超出你前四篇学过的范围。\n第七章：第一幕的终点，第二幕的起点 让我们回望这一整段旅程。\n第一幕回顾：数的觉醒 ① 结绳记事 → 抽象：用一个东西代表另一个东西 ↓ ② 零的发明 → 扩展：接受\u0026#34;没有\u0026#34;，打开负数的大门 ↓ ③ 未知数 x → 推理：给\u0026#34;不知道\u0026#34;取名字，用逻辑求解 ↓ ④ 坐标革命 → 定位：给万物一个坐标，数形统一 ↓ ⑤ 方程力量 → 组合：把工具组合起来，描述世界的规律 这五步，就是人类理解静止世界的全套工具。\n但你可能已经感觉到了——我们描述的世界是静止的。\n方程 y = 2x + 1 是一条固定的线。F = ma 描述的是某一瞬间的力和加速度。坐标 (3, 5) 是一个不动的点。\n可是，现实世界在变。\n温度在变——早上冷，中午热，晚上又冷 股价在变——每秒都在跳动 速度在变——汽车在加速、减速 你在变——你今天和十年前不是同一个人 如何用数学描述\u0026quot;变化\u0026quot;本身？\n这就是第二幕要回答的问题。\n第二幕预告：变化的语言 ⑥ 函数 —— 万能的输入-输出机器 ⑦ 指数爆炸 —— 人脑理解不了的增长 ⑧ 圆与波 —— 三角函数的真面目 ⑨ 微积分（上）—— 追问\u0026#34;此刻\u0026#34; ⑩ 微积分（下）—— 加起来的艺术 第一幕描述了静止的世界。 第二幕描述变化的世界。\n而变化，恰好是 AI 最擅长处理的东西—— 因为语言本身就是一种变化：一个词接一个词， 每一步都在变，每一步都在选择。\n动手实验 实验一：体验方程组——解《九章算术》原题 # 用 Python 解《九章算术》方程章第一题 # 三种稻谷的出米率 # 3x + 2y + z = 39 # 2x + 3y + z = 34 # x + 2y + 3z = 26 # 用消元法（和《九章算术》同样的方法！） # 从方程1减方程2： x - y = 5 → y = x - 5 # 从方程2减方程3： x + y - 2z = 8 # 代入 y = x - 5： x + (x-5) - 2z = 8 → 2x - 2z = 13 → z = x - 6.5 # 代入方程3： x + 2(x-5) + 3(x-6.5) = 26 # x + 2x - 10 + 3x - 19.5 = 26 # 6x = 55.5 # x = 9.25 x = 9.25 # 上等 y = x - 5 # 中等 = 4.25 z = x - 6.5 # 下等 = 2.75 print(\u0026#34;《九章算术》方程章 · 第一题\u0026#34;) print(\u0026#34;─\u0026#34; * 40) print(f\u0026#34;上等稻谷出米: {x} 斗 (9又1/4)\u0026#34;) print(f\u0026#34;中等稻谷出米: {y} 斗 (4又1/4)\u0026#34;) print(f\u0026#34;下等稻谷出米: {z} 斗 (2又3/4)\u0026#34;) print() print(\u0026#34;验证：\u0026#34;) print(f\u0026#34; 3×{x} + 2×{y} + 1×{z} = {3*x + 2*y + z} (应为39)\u0026#34;) print(f\u0026#34; 2×{x} + 3×{y} + 1×{z} = {2*x + 3*y + z} (应为34)\u0026#34;) print(f\u0026#34; 1×{x} + 2×{y} + 3×{z} = {x + 2*y + 3*z} (应为26)\u0026#34;) 实验二：方程画出不同的\u0026quot;脸\u0026rdquo; # 纯文本画三个方程的图形，感受方程的形状 def text_plot(title, func, x_range=(-6, 6), height=12, width=50): \u0026#34;\u0026#34;\u0026#34;终端里画函数\u0026#34;\u0026#34;\u0026#34; print(f\u0026#34;\\n{title}\u0026#34;) points = [] for i in range(width): x = x_range[0] + (x_range[1] - x_range[0]) * i / (width - 1) try: y = func(x) points.append((i, y)) except: points.append((i, None)) ys = [p[1] for p in points if p[1] is not None] if not ys: return ymin, ymax = min(ys), max(ys) if ymax == ymin: ymax = ymin + 1 for row in range(height, -1, -1): line = \u0026#34;\u0026#34; for col in range(width): _, y = points[col] if y is None: line += \u0026#34; \u0026#34; continue y_pos = int((y - ymin) / (ymax - ymin) * height) if y_pos == row: line += \u0026#34;●\u0026#34; elif row == height // 2 and col == width // 2: line += \u0026#34;┼\u0026#34; elif row == height // 2: line += \u0026#34;─\u0026#34; elif col == width // 2: line += \u0026#34;│\u0026#34; else: line += \u0026#34; \u0026#34; print(f\u0026#34; {line}\u0026#34;) print() import math # 直线 text_plot(\u0026#34;y = 2x + 1 (直线)\u0026#34;, lambda x: 2*x + 1) # 抛物线 text_plot(\u0026#34;y = x² (抛物线)\u0026#34;, lambda x: x**2) # 正弦波 text_plot(\u0026#34;y = sin(x) (波浪)\u0026#34;, lambda x: math.sin(x)) 本篇小结 第一幕收官 · 这篇文章讲了什么？ 一、\u0026ldquo;方程\u0026quot;是中国词\n《九章算术》第八章\u0026quot;方程\u0026rdquo;，系统解法比高斯早 1800 年 刘徽的割圆术、祖冲之的圆周率、秦九韶的高次方程——中国数学的骄傲 二、方程 = 自然界的源代码\nF = ma, E = mc², a² + b² = c² 方程不是人类创造的，是人类从自然界\u0026quot;发现\u0026quot;的 三、简单嵌套出复杂\n一个方程很简单，几十层套在一起就能产生\u0026quot;智能\u0026quot; 神经网络就是方程的嵌套 四、注意力方程\nAttention(Q,K,V) = softmax(QK^T/√d)·V 拆开来都是你认识的概念：向量、点积、概率、加权求和 五、第一幕完结\n抽象 → 扩展 → 推理 → 定位 → 组合 我们有了描述\u0026quot;静止世界\u0026quot;的全套工具 下一步：描述\u0026quot;变化\u0026quot; 下一篇预告 第一幕结束了。但数学的故事远没有结束。\n我们描述了点、线、面、方程。但这一切都是静止的。\n真实的世界在动。温度在变、速度在变、你的心跳在变。\n第二幕的第一个问题：如果我给你一个输入，你能给我一个输出——这种\u0026quot;输入→输出\u0026quot;的关系，叫什么？\n答案是：函数。\n函数是数学中最核心的概念。而整个 AI，本质上就是一个超大型的函数——输入一段话，输出下一个词。\n下一篇：看见数学（六）：函数——万能的输入-输出机器\n《看见数学》系列 — 从结绳记事到 AI，看见数学之美。\n本文首发于「AI 学习笔记」博客：https://Jason-Azure.github.io/ai-blog/\n微信公众号：AI-lab学习笔记\n系列文章完整列表见 标签：看见数学\n","permalink":"https://jason-azure.github.io/ai-blog/posts/see-math-5-equations/","summary":"方程不是考试题。方程是人类发现的自然界的源代码。从《九章算术》的\u0026quot;方程\u0026quot;二字到 Transformer 的注意力公式，每一个方程背后都是人类对世界的一次深刻理解。第一幕收官之作。","title":"看见数学（五）：方程的力量——自然界的源代码"},{"content":" 第一幕，我们学会了描述静止的世界：数、零、x、坐标、方程。\n但真实的世界不是静止的。温度在变，速度在变，你的心跳在变，股价在变。\n第二幕的主题是：变化。\n而要描述变化，我们首先需要一个新工具——函数。\n系列导航\n第一幕 · 数的觉醒（5 篇）→ 查看全部 ▸ 第六篇（本文）：函数——万能的输入-输出机器 【第二幕开篇】 ▹ 第七篇：指数爆炸——人脑理解不了的增长 ▹ 第八篇：圆与波——三角函数的真面目 ▹ 第九篇：微积分（上）——追问\"此刻\" ▹ 第十篇：微积分（下）——加起来的艺术 第一章：一台自动售货机 想象一台自动售货机。\n你投进去 3 块钱，它吐出来一瓶矿泉水。 你投进去 5 块钱，它吐出来一瓶可乐。 你投进去 8 块钱，它吐出来一杯咖啡。\n┌─────────────────┐ │ │ 输入 │ 自动售货机 │ 输出 ──────→│ (一台机器) │──────→ 3 元 │ │ 矿泉水 5 元 │ │ 可乐 8 元 │ │ 咖啡 │ │ └─────────────────┘ 规则明确：每个输入对应一个确定的输出 你不会投 3 块钱进去，有时出矿泉水有时出咖啡 这就是函数的本质：\n给一个输入，得一个确定的输出。\n数学家把这件事写成一行符号：\nf(x) = y f = 这台\u0026#34;机器\u0026#34;（函数） x = 你投进去的东西（输入） y = 机器吐出来的东西（输出） 就是这么简单。函数 = 一台有明确规则的机器。你给它一个东西，它按规则返回一个结果。\n一句话记住： 函数不是一个高深的数学概念。函数就是一台\u0026quot;输入→输出\u0026quot;的机器。你每天都在和函数打交道——只是没人告诉你它叫函数。\n第二章：你身边全是函数 一旦你理解了\u0026quot;输入→输出\u0026quot;，你会发现——函数无处不在。\n生活中的函数 机器（函数） 输入 (x) 输出 f(x) 数学写法 体温计 你的体温 一个数字 f(身体) = 36.5°C 导航软件 起点 + 终点 一条路线 f(A, B) = 最短路 菜谱 食材 一道菜 f(鸡蛋, 番茄) = 番茄炒蛋 计算器 一道算式 一个结果 f(3+5) = 8 翻译软件 中文句子 英文句子 f(\u0026ldquo;你好\u0026rdquo;) = \u0026ldquo;Hello\u0026rdquo; 搜索引擎 关键词 一页结果 f(\u0026ldquo;天气\u0026rdquo;) = 天气页面 看到了吗？每一个有明确规则的\u0026quot;输入→输出\u0026quot;过程，都是函数。\n但这里有一个关键：输入一样，输出必须一样。\n你在同一台计算器上按 3 + 5，不可能有时候出 8，有时候出 9。这就是函数的铁律——同样的输入，永远得到同样的输出。\n古人也懂这个道理。《荀子》说：\u0026quot;规矩诚设矣，则不可欺以方圆。\u0026quot;——规矩（规则/函数）一旦定下来，结果就是确定的。\n第三章：函数的数学面孔 把函数从日常生活搬到数学里，最常见的形式是：输入一个数，输出一个数。\n最常见的函数 f(x) = 2x + 1 投入 x = 0 → 吐出 2×0+1 = 1 投入 x = 1 → 吐出 2×1+1 = 3 投入 x = 2 → 吐出 2×2+1 = 5 投入 x = 10 → 吐出 2×10+1 = 21 规则很简单：乘以 2，再加 1 上一篇我们学了坐标系。现在我们知道——每个函数都可以画成一幅图。\n把所有的 (x, f(x)) 画在坐标系上：\nf(x) = 2x + 1 y 7 ─┤ ★ │ ╱ 5 ─┤ ★ │ ╱ 3 ─┤ ★ │ ╱ 1 ─★ │ ────┼────┼────┼────→ x 0 1 2 3 一条直线！ 不同的函数，画出来就是不同的\u0026quot;脸\u0026quot;。 这就是函数的\u0026quot;相貌\u0026quot;：\n函数的\"脸谱大全\" 直线 f(x) = 2x + 1 抛物线 f(x) = x² ╱ ╱╲ ╱ ╱ ╲ ╱ ╱ ╲ ╱ ╱ ╲ \u0026#34;匀速变化\u0026#34; \u0026#34;先慢后快\u0026#34;或\u0026#34;先快后慢\u0026#34; 波浪 f(x) = sin(x) S 形 f(x) = sigmoid(x) ∿∿∿ ╱─── ∿ ∿ ╱ ∿ ∿ ╱ \u0026#34;周期循环\u0026#34; \u0026#34;从 0 渐变到 1\u0026#34; 阶梯 f(x) = 取整 ReLU f(x) = max(0,x) ┌──┐ ╱ ──┘ └──┐ ╱ └──┐ ──╱ \u0026#34;整数跳变\u0026#34; \u0026#34;负数归零\u0026#34;(第二篇学过！) 看到函数的\u0026quot;脸\u0026quot;，你就能直觉地理解它的\u0026quot;性格\u0026quot;：\n直线 = 稳定、匀速、可预测 抛物线 = 先慢后快（或先快后慢），有一个顶点 波浪 = 周而复始、循环往复（心跳、四季、潮汐） S 形 = 从\u0026quot;几乎没有\u0026quot;平滑过渡到\u0026quot;几乎全部\u0026quot;（概率、信心） ReLU = 负数全关，正数全放（神经网络的开关——第二篇讲过） 一句话记住： 函数的图像就是它的\u0026quot;性格写照\u0026quot;。看一眼图形，你就知道这个函数在描述什么样的变化。\n第四章：线性 vs 非线性——世界的真相 在所有函数中，有一条最重要的分界线：线性和非线性。\n线性：直线的世界 线性函数：f(x) = kx + b - 画出来是直线 - 变化是均匀的：x 每增加 1，y 就增加 k - 可预测：知道了 k 和 b，一切尽在掌握 线性关系很好理解：时薪 50 元，工作 8 小时挣 400 元。工作 16 小时挣 800 元。简单、直接、等比例。\n但问题是——现实世界几乎没有东西是线性的。\n非线性：弯曲的真相 现实世界是弯的 你以为是直线的 其实是弯的 \u0026ldquo;学 10 小时提 10 分\u0026rdquo; 刚开始提分快，后来越来越慢（边际递减） \u0026ldquo;多吃一碗一样饱\u0026rdquo; 第一碗雪中送炭，第五碗痛苦万分 \u0026ldquo;人口每年增长 1%\u0026rdquo; 60 年后人口翻 1.8 倍（复利/指数） \u0026ldquo;跑步速度匀加速\u0026rdquo; 越快空气阻力越大，加速越难 \u0026ldquo;投入越多产出越多\u0026rdquo; 到了一个点后，投入更多反而产出下降 人类的直觉是线性的——我们天生觉得\u0026quot;多一倍投入就多一倍产出\u0026quot;。但自然界几乎所有规律都是非线性的。\n这就是为什么：\n你觉得\u0026quot;每天学一小时，100 天就能精通\u0026quot;——但实际上学习曲线是弯的 你觉得\u0026quot;存钱翻倍需要双倍时间\u0026quot;——但复利让翻倍越来越快 你觉得\u0026quot;病毒传播是线性的\u0026quot;——但指数增长让你措手不及 非线性是世界的真相。而数学的威力，就在于它能精确描述这些弯曲。\n中国古人的直觉： 《道德经》说\u0026quot;反者道之动\u0026quot;——事物发展到极端就会反转。这其实就是在说非线性：不是一直往上走的，到了一个点就会弯回来。老子在两千五百年前就感受到了非线性，只是他用的是哲学语言，数学家用的是方程。\n一句话记住： 人类的直觉是线性的（一条直线），但世界的真相是非线性的（各种弯曲）。数学帮你看见弯曲——这就是它的价值。\n第五章：函数的\u0026quot;组装\u0026quot;——从简单到复杂 一个函数很简单。但函数最强大的特性是——它们可以组装。\n函数套函数 f(x) = 2x （乘以 2） g(x) = x + 1 （加 1） g(f(x)) = ? 先把 x 投入 f → 得到 2x 再把 2x 投入 g → 得到 2x + 1 g(f(3)) = g(6) = 7 这就像工厂的流水线：\n原料 x │ ▼ ┌──────┐ ┌──────┐ ┌──────┐ │ 第一道│ │ 第二道│ │ 第三道│ │ 工序 │───→│ 工序 │───→│ 工序 │───→ 成品 y │ f₁(x) │ │ f₂ │ │ f₃ │ └──────┘ └──────┘ └──────┘ 每道工序是一个函数 整条流水线也是一个函数（一个大函数 = 三个小函数套在一起） 这正是神经网络的工作方式。每一\u0026quot;层\u0026quot;就是一个函数，整个网络就是几十个函数套在一起的流水线。\n流水线 vs 神经网络 工厂流水线 神经网络 每道工序 切割、打磨、上色 矩阵乘法 + 激活函数 工序数量 几道到几十道 几十层到上百层 原料 铁矿石、布料 文字、图片 成品 汽车、衣服 下一个词、一张图 调整方式 工程师调机器 梯度下降调参数 中国的\u0026quot;流水线\u0026quot;智慧 说到流水线，中国古代也有类似的思想。\n《考工记》（约公元前 5 世纪）是中国最早的手工业技术文献。书中记载了制造一辆车需要的多道工序——每道工序的\u0026quot;输入\u0026quot;是上一道的\u0026quot;输出\u0026quot;。这不就是函数的组合吗？\n更精确的例子是算筹——中国古代的计算工具。用算筹做乘法时，每一步的结果是下一步的输入。一步一步，最终得到答案。算筹运算的每一步，就是一次函数调用。\n第六章：连接 AI——GPT 是一个函数 现在，让我们做一个大胆但准确的声明：\nGPT 是一个函数。 ┌─────────────────────────┐ │ │ 输入 │ GPT │ 输出 ──────→│ （一个超大型函数） │──────→ \u0026#34;今天 │ │ \u0026#34;真好\u0026#34; 天气\u0026#34; │ 几十亿个参数 │ │ 几十层流水线 │ │ │ └─────────────────────────┘ f(\u0026#34;今天天气\u0026#34;) = \u0026#34;真好\u0026#34; f(\u0026#34;1+1等于\u0026#34;) = \u0026#34;2\u0026#34; f(\u0026#34;写一首关于春天的诗\u0026#34;) = \u0026#34;春风又绿江南岸...\u0026#34; 认真的。把所有复杂性剥掉，GPT 做的事情就是：\n接收一段文字（输入），输出下一个最可能的词（输出）。\n它是一个函数。一个非常非常大的函数。\n自动售货机 vs GPT：同一个框架 自动售货机 GPT 输入 3 块钱 \u0026ldquo;今天天气\u0026rdquo; 输出 矿泉水 \u0026ldquo;真好\u0026rdquo; 规则 硬编码（人写的价格表） 学来的（从万亿个词中训练） 旋钮 几个（价格、库存） 1750 亿个（参数） 能调吗 换价格表 训练（梯度下降） 区别在哪？\n规模：自动售货机有几个按钮，GPT 有 1750 亿个\u0026quot;旋钮\u0026quot;（参数） 规则来源：售货机的规则是人写的，GPT 的规则是从数据中学来的 非线性：GPT 是一个极其复杂的非线性函数——几十层嵌套，每层都有非线性激活 但框架完全一样：输入 → 处理 → 输出。\n亲眼看一看 让我们用实验室里的迷你模型 microgpt 来验证\u0026quot;AI 是函数\u0026quot;：\nazureuser@ai-lab:~$ cd ~/microgpt \u0026amp;\u0026amp; python3 -c \u0026#34; # microgpt 训练后的模型，就是一个函数 # 输入：前几个字母 输出：下一个字母 # 模拟：函数的输入输出 inputs_outputs = [ (\u0026#39;Ma\u0026#39;, \u0026#39;r\u0026#39;), # 输入 Ma → 输出 r（Mary） (\u0026#39;Jo\u0026#39;, \u0026#39;h\u0026#39;), # 输入 Jo → 输出 h（John） (\u0026#39;Tr\u0026#39;, \u0026#39;e\u0026#39;), # 输入 Tr → 输出 e（Trey） ] print(\u0026#39;microgpt 就是一个函数：\u0026#39;) print(\u0026#39;─\u0026#39; * 35) for inp, out in inputs_outputs: print(f\u0026#39; f(\\\u0026#34;{inp}\\\u0026#34;) = \\\u0026#34;{out}\\\u0026#34;\u0026#39;) print() print(\u0026#39;输入前两个字母，输出最可能的下一个字母\u0026#39;) print(\u0026#39;和自动售货机是同一回事——只是规则是学来的\u0026#39;) \u0026#34; microgpt 就是一个函数： ─────────────────────────────────── f(\u0026#34;Ma\u0026#34;) = \u0026#34;r\u0026#34; f(\u0026#34;Jo\u0026#34;) = \u0026#34;h\u0026#34; f(\u0026#34;Tr\u0026#34;) = \u0026#34;e\u0026#34; 输入前两个字母，输出最可能的下一个字母 和自动售货机是同一回事——只是规则是学来的 一句话记住： 不管 AI 看起来多么智能、多么神秘，剥开所有外衣，它就是一个函数——一个有几十亿个旋钮、经过海量数据调校的、巨大的\u0026quot;输入→输出\u0026quot;机器。理解了函数，你就理解了 AI 的骨架。\n第七章：为什么函数是第二幕的起点？ 函数之所以是第二幕的起点，是因为它引入了数学中最重要的概念之一：\n变化。\n在第一幕里，方程描述的是固定的关系——x + y = 35 永远成立，不随时间改变。\n但函数天然地描述了变化——当 x 变化时，f(x) 跟着变化。\n函数打开的新问题 有了函数，新的问题涌出来了： ❶ 变化有多快？ → 导数（微积分的第一个主角） ❷ 变化会爆炸吗？ → 指数函数（下一篇） ❸ 变化会循环吗？ → 三角函数（第八篇） ❹ 变化的总量是多少？ → 积分（微积分的第二个主角） 这些都是第二幕要回答的问题。 而函数，是它们共同的起点。 《道德经》说： \u0026ldquo;道生一，一生二，二生三，三生万物。\u0026rdquo;\n在数学的世界里，函数就是那个\u0026quot;一\u0026quot;。从函数出发，长出了微积分、概率论、信号处理、控制理论……长出了整个现代数学和现代科技。\n动手实验 实验一：建一台你自己的\u0026quot;函数机器\u0026quot; # 你来定义函数的规则！ def my_machine(x): \u0026#34;\u0026#34;\u0026#34;你的函数：输入一个数，输出一个数\u0026#34;\u0026#34;\u0026#34; return 3 * x - 2 # 测试你的机器 print(\u0026#34;我的函数机器：f(x) = 3x - 2\u0026#34;) print(\u0026#34;─\u0026#34; * 30) for x in range(-3, 6): y = my_machine(x) bar = \u0026#34;█\u0026#34; * max(0, y + 12) # 简易图表 print(f\u0026#34; f({x:\u0026gt;2}) = {y:\u0026gt;3} {bar}\u0026#34;) # 输出： # 我的函数机器：f(x) = 3x - 2 # ────────────────────────────── # f(-3) = -11 █ # f(-2) = -8 ████ # f(-1) = -5 ███████ # f( 0) = -2 ██████████ # f( 1) = 1 █████████████ # f( 2) = 4 ████████████████ # f( 3) = 7 ███████████████████ # f( 4) = 10 ██████████████████████ # f( 5) = 13 █████████████████████████ 实验二：函数的组合——流水线 # 三个简单函数组成一条流水线 def f1(x): \u0026#34;\u0026#34;\u0026#34;第一道工序：乘以 2\u0026#34;\u0026#34;\u0026#34; return x * 2 def f2(x): \u0026#34;\u0026#34;\u0026#34;第二道工序：加 10\u0026#34;\u0026#34;\u0026#34; return x + 10 def f3(x): \u0026#34;\u0026#34;\u0026#34;第三道工序：如果负数就归零（ReLU！）\u0026#34;\u0026#34;\u0026#34; return max(0, x) # 流水线：f3(f2(f1(x))) print(\u0026#34;三步流水线：乘2 → 加10 → ReLU\u0026#34;) print(\u0026#34;─\u0026#34; * 45) for x in [-8, -5, -3, 0, 2, 5, 10]: step1 = f1(x) step2 = f2(step1) step3 = f3(step2) print(f\u0026#34; x={x:\u0026gt;3} → ×2={step1:\u0026gt;3} → +10={step2:\u0026gt;3} → ReLU={step3:\u0026gt;3}\u0026#34;) # 输出： # x= -8 → ×2=-16 → +10= -6 → ReLU= 0 # x= -5 → ×2=-10 → +10= 0 → ReLU= 0 # x= -3 → ×2= -6 → +10= 4 → ReLU= 4 # x= 0 → ×2= 0 → +10= 10 → ReLU= 10 # x= 2 → ×2= 4 → +10= 14 → ReLU= 14 # 这就是一个最简单的\u0026#34;神经网络\u0026#34;！ # 线性变换(×2) + 偏置(+10) + 激活函数(ReLU) 本篇小结 第二幕开篇 · 这篇文章讲了什么？ 一、函数 = 输入→输出的机器\n自动售货机、体温计、导航软件——全是函数 同样的输入，永远得到同样的输出 二、函数有\u0026quot;脸\u0026quot;\n直线、抛物线、波浪、S 形、ReLU——不同的函数不同的\u0026quot;性格\u0026quot; 看一眼图形就知道它在描述什么变化 三、线性 vs 非线性\n人类直觉是线性的，但世界是弯的 数学帮你看见弯曲 四、函数可以组装\n函数套函数 = 流水线 神经网络 = 几十层函数的流水线 五、GPT 是一个函数\n输入文字，输出下一个词 和自动售货机同一个框架，只是有 1750 亿个旋钮 六、函数引出\u0026quot;变化\u0026quot;\n当 x 变化时，f(x) 跟着变化 变化多快？→ 导数。变化爆炸？→ 指数。变化循环？→ 三角 下一篇预告 函数描述了\u0026quot;输入→输出\u0026quot;的关系。有些函数温和——线性，直线，可预测。\n但有一种变化，温和到你注意不到它，然后突然炸开。\n把一张纸对折 42 次，厚度能从地球到月球。信吗？\n一粒米放在棋盘第一格，每格翻倍，64 格之后有多少米？\n答案是：全世界的粮食都不够填。\n这就是指数增长——人类大脑天生的盲区。理解它，就理解了为什么 AI 的进步让所有人\u0026quot;措手不及\u0026quot;。\n下一篇：看见数学（七）：指数爆炸——人脑理解不了的增长\n《看见数学》系列 — 从结绳记事到 AI，看见数学之美。\n本文首发于「AI 学习笔记」博客：https://Jason-Azure.github.io/ai-blog/\n微信公众号：AI-lab学习笔记\n系列文章完整列表见 标签：看见数学\n","permalink":"https://jason-azure.github.io/ai-blog/posts/see-math-6-functions/","summary":"函数是数学中最核心的概念：给一个输入，得一个输出。自动售货机是函数，体温计是函数，GPT 也是函数——只不过它有几十亿个旋钮。第二幕开篇。","title":"看见数学（六）：函数——万能的输入-输出机器"},{"content":" 上一篇 《函数》 里，我们说世界是\u0026quot;弯的\u0026quot;——非线性才是真相。\n在所有非线性中，有一种最特殊、最可怕、也最重要。\n它看起来温温和和，然后突然炸开。\n它叫指数增长。\n系列导航\n第一幕 · 数的觉醒（5 篇）→ 查看全部 ▹ 第六篇：函数——万能的输入-输出机器 ▸ 第七篇（本文）：指数爆炸——人脑理解不了的增长 ▹ 第八篇：圆与波——三角函数的真面目 ▹ 第九篇：微积分（上）——追问\"此刻\" ▹ 第十篇：微积分（下）——加起来的艺术 第一章：一张纸的旅程 先做一个思想实验。\n拿一张普通的打印纸，厚度大约 0.1 毫米。\n把它对折 1 次 → 0.2 毫米。 对折 2 次 → 0.4 毫米。 对折 3 次 → 0.8 毫米。\n到这里都很正常。那继续折：\n一张纸对折 n 次后的厚度 对折次数 厚度 相当于什么 ───────────────────────────────────────── 0 次 0.1 毫米 一张纸 3 次 0.8 毫米 一枚硬币 7 次 1.28 厘米 一根手指 10 次 10.24 厘米 一本书 17 次 13.1 米 五层楼 20 次 104.9 米 足球场的长度 25 次 3.36 公里 从家到地铁站 30 次 107.4 公里 大气层的厚度 35 次 3,436 公里 北京到广州 40 次 109,951 公里 地球周长的 2.7 倍 42 次 439,805 公里 地球到月球！！！ 42 次。\n一张 0.1 毫米的纸，对折 42 次，厚度足以从地球到达月球（38 万公里）。\n你相信吗？\n让我们算一算：0.1 毫米 × 2⁴² = 0.1 × 4,398,046,511,104 毫米 ≈ 439,805 公里。\n数学不会骗你。但你的直觉骗了你。\n你的大脑在默默计算的是：折一次多 0.1 毫米，折 42 次多 4.2 毫米——那是线性思维。而现实是每次翻倍——这是指数。\n一句话记住： 你的大脑天生做加法（每次 +0.1），不擅长做乘法（每次 ×2）。这不是你的错——这是全人类大脑的结构性限制。\n第二章：棋盘上的米粒 折纸的故事你可能听过。让我再讲一个更古老的。\n国际象棋与米粒的传说 传说古印度有一个智者发明了国际象棋，国王非常喜欢，说要赏赐他。\n智者说：\u0026ldquo;陛下，我的要求很简单。请在棋盘的第一个格子放 1 粒米，第二个格子放 2 粒，第三个格子放 4 粒……每一格是前一格的两倍。64 个格子放完，那些米就是我的赏赐。\u0026rdquo;\n国王笑了：\u0026ldquo;这么简单？\u0026rdquo;\n来算算：\n格子 米粒数 1 1 2 2 3 4 4 8 5 16 ... 10 512 20 524,288 （五十多万） 30 536,870,912 （五亿多） 40 549,755,813,888 （五千多亿） 50 562 万亿 60 5.76 × 10¹⁷ 64 9.22 × 10¹⁸ （约 922 亿亿） 922 亿亿粒米。\n这大约是 4610 亿吨——相当于全世界水稻产量的 1000 年总和。\n国王当然付不起。\n前半段棋盘（1-32 格），总共才约 43 亿粒米——不到一个仓库。\n后半段棋盘（33-64 格），米粒数量突然爆炸——超过了全人类的生产能力。\n这就是指数增长最可怕的特性：前半程风平浪静，后半程天翻地覆。\n第三章：中国古人的指数直觉 你可能以为指数增长是\u0026quot;现代数学\u0026quot;，但中国古人早就感受到了这种\u0026quot;翻倍的力量\u0026quot;。\n《庄子·天下篇》引用了一个著名命题：\n\u0026ldquo;一尺之棰，日取其半，万世不竭。\u0026rdquo;\n一根一尺的木棍，每天取走一半。永远取不完。\n1 → ½ → ¼ → ⅛ → ¹⁄₁₆ → ……\n这其实是指数衰减——增长的反面。每一步变成原来的一半，永远不会到零。庄子时代的思想家已经在思考\u0026quot;无穷\u0026quot;和\u0026quot;极限\u0026quot;——这正是后来微积分的核心问题。\n另一个例子来自中国民间：\n\u0026ldquo;利滚利\u0026rdquo;——中国民间对复利的直觉描述。\n古代放贷者用的\u0026quot;驴打滚\u0026quot;就是指数增长：利息加入本金，下一轮连利息一起计息。《大明律》甚至专门立法限制高利贷的复利，因为老百姓太容易在复利下被压垮。\n这不是因为老百姓\u0026quot;不会算数\u0026quot;——而是因为人脑天生无法直觉理解指数增长的威力。\n第四章：指数 vs 线性——一场不公平的赛跑 让我们把线性增长和指数增长放在一起，看看会发生什么。\n线性 vs 指数：一场赛跑 步数 线性(每次+2) 指数(每次×2) ─────────────────────────────── 1 2 2 ← 起步一样 2 4 4 ← 还是一样！ 3 6 8 4 8 16 5 10 32 ← 开始拉开 10 20 1,024 15 30 32,768 20 40 1,048,576 ← 一百万！ 25 50 33,554,432 ← 三千三百万！ 30 60 1,073,741,824 ← 十亿！ 线性走了 30 步到 60 指数走了 30 步到 10 亿 前 4 步，两条线几乎重合。你觉得它们差不多。\n到第 10 步，指数是线性的 50 倍。\n到第 30 步，指数是线性的 1800 万倍。\n这就是指数增长的\u0026quot;诡计\u0026quot;：\n指数增长的三个阶段 阶段一：\u0026#34;没什么了不起\u0026#34; 1, 2, 4, 8, 16, 32... 看起来增长很慢，和线性差不多 你放松了警惕 阶段二：\u0026#34;好像有点快\u0026#34; ...128, 256, 512, 1024... 开始加速，但还在可理解范围 你开始注意到 阶段三：\u0026#34;完全失控\u0026#34; ...百万, 千万, 亿, 十亿, 百亿... 每一步的增量都超过了之前所有步的总和 你已经来不及反应了 病毒传播就是这样。 AI 的进步也是这样。\n第五章：指数增长在真实世界 指数增长不只是数学游戏。它在真实世界里反复出现：\n真实世界的指数增长 现象 翻倍时间 结果 复利 年利率 7% 约 10 年翻倍 10 万元 30 年后变 80 万 细胞分裂 约 24 小时 一个细胞 30 天变 10 亿 病毒传播 R₀=2 每代传播周期 10 代后从 1 人变 1024 人 摩尔定律 约 18 个月 芯片性能 40 年提升百万倍 数据增长 约 2-3 年 人类数据总量每几年翻一番 AI 模型规模 约 1-2 年 GPT-2(2019)→GPT-4(2023): 参数量增长数千倍 复利：时间的魔法 10 万元，年利率 7%，不取出来： 10 年后： 约 20 万（翻 1 倍） 20 年后： 约 40 万（翻 4 倍） 30 年后： 约 80 万（翻 8 倍） 40 年后： 约 160 万（翻 16 倍） 50 年后： 约 295 万（翻 29 倍） 不是每 10 年多 10 万（线性） 而是每 10 年翻一倍（指数） 这就是为什么理财专家总说\u0026quot;越早开始越好\u0026quot;——不是因为早存多存了几年的本金，而是因为多了几轮翻倍。\n病毒传播：指数的恐怖 2020 年初，新冠病毒从武汉的几个病例开始，几个月内传遍全球。\n为什么这么快？因为 R₀ ≈ 2-3，意思是每个感染者平均传给 2-3 个人。\n第 1 代： 1 人 第 2 代： 3 人 第 3 代： 9 人 第 5 代： 243 人 第 10 代：59,049 人 第 20 代：约 35 亿人 ← 接近全球人口的一半 当然，实际传播受到很多因素限制（隔离、免疫等）。但这解释了为什么各国反应\u0026quot;慢了一步\u0026quot;——人脑用线性直觉去预测指数增长，永远会低估它的速度。\n第六章：对数——把\u0026quot;炸开\u0026quot;拉回来 指数增长太猛了，数字太大了，大到人脑无法处理。\n怎么办？\n数学家发明了一个工具，专门用来\u0026quot;驯服\u0026quot;指数——对数（logarithm）。\n对数 = 指数的\"反面\" 指数问的问题： 2 的 10 次方是多少？ 2¹⁰ = 1024 对数问的问题： 2 的多少次方等于 1024？ log₂(1024) = 10 指数： 小数 → 大数 （2 → 1024） 对数： 大数 → 小数 （1024 → 10） 对数把\u0026quot;爆炸\u0026quot;拉回了人能理解的范围。\n对数让大数变得\"可读\" 原始数字 对数值 (log₁₀) 你的感受 10 1 一个教室的人 1,000 3 一个学校 1,000,000 6 一个城镇 1,000,000,000 9 全中国 1,000,000,000,000 12 国家 GDP 量级 从 10 到 1 万亿，原始数字变化了一千亿倍。 但对数值只从 1 变到了 12。人脑能处理了。\n你天天在用对数，只是不知道：\n地震震级：里氏 5 级和 6 级，能量差 31 倍（对数尺度） 分贝：声音强度的对数。90 分贝不是 45 分贝的 2 倍，而是十亿倍 pH 值：酸碱度的对数。pH 3 比 pH 5 酸 100 倍 星等：天文学用对数衡量星星的亮度 这些量度用对数，是因为人类的感官本身就是\u0026quot;对数式\u0026quot;的。\n韦伯-费希纳定律（心理物理学）：人类感知刺激的强度，和刺激的对数成正比。\n翻译：你搬一箱 1 公斤的东西，加 1 公斤你明显感觉更重了。你搬一箱 50 公斤的东西，加 1 公斤你几乎感觉不到。\n你的身体天生就是\u0026quot;对数感知器\u0026quot;。 这就是为什么人脑对指数增长\u0026quot;失灵\u0026quot;——因为你的感知系统会自动把指数\u0026quot;压缩\u0026quot;成对数，让巨大的变化看起来\u0026quot;没什么\u0026quot;。\n一句话记住： 指数让小变大。对数让大变小。它们是一对互逆的工具。人脑天生是\u0026quot;对数感知\u0026quot;的，所以天生看不见指数增长——数学帮你补上这个盲区。\n第七章：连接 AI——指数无处不在 指数和对数在 AI 的世界里无处不在。\n1. Softmax 里的 e^x 还记得上一幕讲的 Transformer 注意力公式吗？其中的 softmax 函数，核心就是 e^x（e 的 x 次方）：\nsoftmax 把一组数变成概率： 原始分数： [2.0, 1.0, 0.5] ↓ e^x 指数化： [7.39, 2.72, 1.65] ↓ 归一化（除以总和） 概率： [0.63, 0.23, 0.14] 加起来 = 1 为什么用 e^x？因为指数会放大差异： 2.0 和 1.0 只差 1 但 e^2.0 和 e^1.0 差了 2.7 倍 差异被放大了 → 最大的选项更突出 AI 用指数函数来\u0026quot;放大信号\u0026quot;——让最可能的选项更突出，让不可能的选项更安静。\n2. AI 能力的 Scaling Law 2020 年，OpenAI 发表了一篇影响深远的论文，发现了一条惊人的规律：\nScaling Law：AI 的\"指数魔法\" AI 的能力提升遵循幂律（类指数关系）： 模型参数量 ×10 倍 → 能力提升一个台阶 训练数据量 ×10 倍 → 能力再提升一个台阶 计算量 ×10 倍 → 能力又提升一个台阶 GPT-2 (2019): 15 亿参数 GPT-3 (2020): 1750 亿参数 ← ×117 倍 GPT-4 (2023): 传说万亿+ ← 又×几倍 每次规模翻几倍，AI 就\u0026#34;突然\u0026#34;学会了新技能 ——解数学题、写代码、理解讽刺…… 这些能力不是人教的，是\u0026#34;涌现\u0026#34;的 这就是为什么 AI 的进步让所有人\u0026quot;措手不及\u0026quot;——\n人类用线性直觉预测：\u0026ldquo;去年 AI 进步了这么多，明年大概也这么多吧。\u0026rdquo;\n但 AI 的进步是指数级的。明年的进步，可能等于过去几年的总和。\n3. 摩尔定律：半个世纪的指数奇迹 1965 年，英特尔创始人戈登·摩尔预测：芯片上的晶体管数量大约每两年翻一倍。\n这个预测持续了近 60 年：\n1971 年 Intel 4004: 2,300 个晶体管 1989 年 Intel 486: 1,200,000 个 2000 年 Pentium 4: 42,000,000 个 2012 年: 1,400,000,000 个 2024 年 Apple M4: 28,000,000,000 个 从 2300 到 280 亿——增长了 1200 万倍 没有这条指数曲线，就没有智能手机，没有互联网，没有 AI。人类文明过去 60 年的科技进步，建立在一条指数曲线上。\n一句话记住： AI 的 softmax 用 e^x 放大信号，Scaling Law 是类指数的能力增长，摩尔定律是芯片的指数进化。理解指数，就理解了为什么技术进步总是\u0026quot;突然\u0026quot;加速。\n第八章：为什么人脑理解不了指数？ 走到这里，值得认真想一想——为什么指数这么反直觉？\n人脑的\"线性陷阱\" 人脑的默认模式： 吃 1 碗饭 → 有点饱 吃 2 碗饭 → 更饱一点 吃 3 碗饭 → 很饱 你的大脑总结：每多吃一碗，多饱一点（线性） 这在日常生活中完全够用 但指数世界是这样的： 第 1 天存 1 元 第 2 天存 2 元 第 3 天存 4 元 ... 第 30 天存 5.37 亿元 你的大脑无法处理这种跳跃 因为进化没有为它准备这种场景 原因很简单：在人类进化的几十万年里，我们面对的几乎全是线性变化。\n多走一步，多走一米 多采一天果子，多吃一顿饭 多生一个孩子，多干一份活 大脑在这种环境下进化，形成了线性直觉。这在原始社会完全够用。\n但现代世界充满了指数现象——复利、病毒、技术进步、数据增长——你的石器时代大脑在这些面前是结构性失灵的。\n这不是你笨。这是所有人类共同的认知限制。\n而数学——特别是指数和对数——就是帮你补上这个盲区的工具。\n动手实验 实验一：亲眼看指数爆炸 # 线性 vs 指数的赛跑 print(\u0026#34;线性 vs 指数增长\u0026#34;) print(\u0026#34;─\u0026#34; * 50) print(f\u0026#34;{\u0026#39;步数\u0026#39;:\u0026gt;4} {\u0026#39;线性(+2)\u0026#39;:\u0026gt;10} {\u0026#39;指数(×2)\u0026#39;:\u0026gt;15} {\u0026#39;倍数\u0026#39;:\u0026gt;8}\u0026#34;) print(\u0026#34;─\u0026#34; * 50) for n in range(0, 31, 5): linear = 2 * n exponential = 2 ** n ratio = exponential / max(linear, 1) print(f\u0026#34;{n:\u0026gt;4} {linear:\u0026gt;10} {exponential:\u0026gt;15,} {ratio:\u0026gt;8.0f}x\u0026#34;) # 输出： # 步数 线性(+2) 指数(×2) 倍数 # ────────────────────────────────────────────────── # 0 0 1 Inf # 5 10 32 3x # 10 20 1,024 51x # 15 30 32,768 1,092x # 20 40 1,048,576 26,214x # 25 50 33,554,432 671,089x # 30 60 1,073,741,824 17,895,697x 实验二：复利计算器 # 复利：时间的魔法 principal = 100000 # 本金 10 万元 rate = 0.07 # 年利率 7% print(f\u0026#34;本金: {principal:,} 元，年利率: {rate*100}%\u0026#34;) print(\u0026#34;─\u0026#34; * 40) print(f\u0026#34;{\u0026#39;年数\u0026#39;:\u0026gt;4} {\u0026#39;总金额\u0026#39;:\u0026gt;12} {\u0026#39;是本金的\u0026#39;:\u0026gt;8}\u0026#34;) print(\u0026#34;─\u0026#34; * 40) for year in [1, 5, 10, 20, 30, 40, 50]: amount = principal * (1 + rate) ** year multiple = amount / principal print(f\u0026#34;{year:\u0026gt;4} {amount:\u0026gt;12,.0f} {multiple:\u0026gt;7.1f} 倍\u0026#34;) # 输出： # 年数 总金额 是本金的 # ──────────────────────────────────────── # 1 107,000 1.1 倍 # 5 140,255 1.4 倍 # 10 196,715 2.0 倍 # 20 386,968 3.9 倍 # 30 761,226 7.6 倍 # 40 1,497,446 15.0 倍 # 50 2,945,703 29.5 倍 实验三：感受对数的\u0026quot;压缩\u0026quot; import math print(\u0026#34;对数把\u0026#39;爆炸\u0026#39;拉回来\u0026#34;) print(\u0026#34;─\u0026#34; * 45) print(f\u0026#34;{\u0026#39;原始数字\u0026#39;:\u0026gt;15} {\u0026#39;log₁₀\u0026#39;:\u0026gt;6} {\u0026#39;相当于\u0026#39;:\u0026gt;10}\u0026#34;) print(\u0026#34;─\u0026#34; * 45) examples = [ (10, \u0026#34;一个班\u0026#34;), (1000, \u0026#34;一个学校\u0026#34;), (1000000, \u0026#34;一个城镇\u0026#34;), (1000000000, \u0026#34;全中国\u0026#34;), (8000000000, \u0026#34;全人类\u0026#34;), (1e18, \u0026#34;棋盘上的米\u0026#34;), ] for num, desc in examples: log_val = math.log10(num) print(f\u0026#34;{num:\u0026gt;15,.0f} {log_val:\u0026gt;6.1f} {desc:\u0026gt;10}\u0026#34;) # 从 10 到 10^18，原始数字变化了 10^17 倍 # 但 log₁₀ 只从 1 变到了 18——人脑能处理了！ 本篇小结 这篇文章讲了什么？ 一、指数增长是\u0026quot;温和的炸弹\u0026quot;\n折纸 42 次到月球，棋盘 64 格装不下全世界的米 前半程风平浪静，后半程天翻地覆 二、人脑天生理解不了指数\n进化给了你线性直觉，但世界充满指数现象 这不是你笨，是全人类的结构性限制 三、中国古人的指数直觉\n庄子\u0026quot;一尺之棰日取其半\u0026quot;——指数衰减与极限 \u0026ldquo;利滚利/驴打滚\u0026rdquo;——复利的民间认知 四、对数 = 指数的反面\n大数→小数，把\u0026quot;爆炸\u0026quot;拉回人能理解的范围 地震震级、分贝、pH 值——全是对数尺度 人的感知本身就是对数式的（韦伯-费希纳定律） 五、AI 世界里的指数\nsoftmax 的 e^x：放大信号差异 Scaling Law：模型规模的类指数增长→能力\u0026quot;涌现\u0026quot; 摩尔定律：60 年的芯片指数进化，撑起整个数字时代 下一篇预告 我们现在认识了两种变化：线性（直线）和指数（爆炸）。\n但还有一种最常见的变化我们还没聊——周而复始的变化。\n白天黑夜，春夏秋冬，潮涨潮落，心脏跳动……\n这些变化不是一直往上走的，而是循环往复的。描述这种循环，需要一个你在数学课上可能最痛恨的东西——\n三角函数。sin，cos。\n但我保证——当你知道它真正在描述什么，你会说\u0026quot;原来这么美\u0026quot;。\n下一篇：看见数学（八）：圆与波——三角函数的真面目\n《看见数学》系列 — 从结绳记事到 AI，看见数学之美。\n本文首发于「AI 学习笔记」博客：https://Jason-Azure.github.io/ai-blog/\n微信公众号：AI-lab学习笔记\n系列文章完整列表见 标签：看见数学\n","permalink":"https://jason-azure.github.io/ai-blog/posts/see-math-7-exponential/","summary":"把一张纸对折 42 次，厚度超过地球到月球的距离。一粒米放在棋盘第一格，每格翻倍，64 格后全世界的粮食都不够。指数增长是人类大脑天生的盲区——但数学能帮你看见它。","title":"看见数学（七）：指数爆炸——人脑理解不了的增长"},{"content":" 上一篇 《指数爆炸》 里，我们见识了指数增长的\u0026quot;温和炸弹\u0026quot;。\n我们已经认识了三种变化的两种：线性（直线）和指数（爆炸）。\n现在来看第三种——也是自然界最常见的一种：周而复始。\n系列导航\n第一幕 · 数的觉醒（5 篇）→ 查看全部 ▹ 第六篇：函数——万能的输入-输出机器 ▹ 第七篇：指数爆炸——人脑理解不了的增长 ▸ 第八篇（本文）：圆与波——三角函数的真面目 ▹ 第九篇：微积分（上）——追问\"此刻\" ▹ 第十篇：微积分（下）——加起来的艺术 第一章：三种变化的\u0026quot;脸\u0026quot; 在写三角函数之前，让我们先看一张动图，回顾我们已经认识的变化：\n蓝色（线性）：匀速前进，直直的，可预测。上一幕第一篇讲的。\n红色（指数）：一开始温和，然后爆炸。上一篇刚讲的。\n绿色（周期）：上去、下来、上去、下来……永远在循环。\n第三种变化在生活中最常见——\n白天和黑夜，周而复始 春夏秋冬，年年循环 心脏跳动，一辈子不停 潮涨潮落，日复一日 交流电，每秒 50 次正负交替 描述这种\u0026quot;循环\u0026quot;的数学工具，就是三角函数——sin 和 cos。\n但在正式讲之前，我需要你做一件事：\n忘掉你在学校学过的一切关于 sin/cos/tan 的东西。\n忘掉三角形、对边、邻边、斜边。忘掉那些让你头疼的公式。\n我们从头开始。从一个圆开始。\n第二章：一个点在圆上转圈 想象一个时钟。\n秒针的尖端，在表盘上画着一个圆。\n现在，我请你只盯着秒针尖端的上下位置（忽略左右）：\n12 点位置：最高 3 点位置：中间 6 点位置：最低 9 点位置：中间 回到 12 点：又是最高 上下位置随时间变化的轨迹，画出来就是——一条波浪线。\n这就是正弦波。\n这是整篇文章最重要的动图。 请仔细看：\n左边：一个点（红色）在圆上旋转 蓝色虚线跟踪这个点的 y 坐标（上下位置） 右边：把 y 坐标随时间展开 → 就是正弦波 sin(θ) sin(θ) 就是\u0026quot;圆上旋转的影子\u0026quot;。\n核心理解 一个点在圆上匀速旋转 它的 y 坐标（上下）随时间的变化 → sin（正弦） 它的 x 坐标（左右）随时间的变化 → cos（余弦） sin 和 cos 不是\u0026#34;三角形的边长比\u0026#34; sin 和 cos 是\u0026#34;圆运动在坐标轴上的投影\u0026#34; 这就是三角函数的真面目。它不是关于三角形的——它是关于圆和旋转的。\n三角形只是一个特殊情况：圆上的一个点、圆心、和那个点在 x 轴上的投影，三个点恰好构成一个直角三角形。但这只是\u0026quot;副产品\u0026quot;，不是本质。\n一句话记住： sin = 圆上旋转的上下投影。cos = 圆上旋转的左右投影。三角函数的本质是圆，不是三角形。\n第三章：波无处不在 知道了 sin/cos 描述的是\u0026quot;循环\u0026quot;之后，你会发现——波无处不在。\n世界是波做的 现象 波的特征 周期 声音 空气的振动 人耳听到 20Hz~20000Hz 光 电磁波 频率极高（~10¹⁴ Hz） 心跳 心脏的收缩舒张 约 1 秒一次（1Hz） 四季 地球绕太阳 365 天一个周期 潮汐 月球引力 约 12 小时一个周期 交流电 电流方向交替 中国 50Hz（每秒 50 次） 呼吸 肺的扩张收缩 约 4 秒一次 脑电波 神经元的电活动 α 波 8-13Hz 所有这些\u0026quot;波\u0026quot;，都可以用 sin 函数来描述。\n区别只在于三个\u0026quot;旋钮\u0026quot;：\nf(t) = A · sin(2π · f · t + φ) A = 振幅（波有多高——声音有多响、灯有多亮） f = 频率（转得多快——音调有多高、颜色是什么） φ = 相位（从哪里开始——波的起始位置） 同一个公式，调不同的旋钮，描述了从声音到光到心跳的一切循环现象。\n古人的\u0026quot;波\u0026quot;意识： 中国古代没有 sin 函数，但对\u0026quot;周期循环\u0026quot;有深刻的感知。《周易》的核心思想就是阴阳交替、循环往复——阳极生阴、阴极生阳，正是正弦波\u0026quot;上到顶就开始下、下到底就开始上\u0026quot;的哲学表达。《吕氏春秋》记录了中国古代的十二律——用竹管长度精确对应音高，这本质上就是在用\u0026quot;物理长度\u0026quot;控制\u0026quot;声波频率\u0026quot;。\n一句话记住： 声音、光、心跳、四季——所有循环现象都是波。所有波都可以用 sin 描述。一个公式，三个旋钮（振幅、频率、相位），描述了整个波动的世界。\n第四章：傅里叶的魔法——任何波都能拆 如果说 sin 是波的\u0026quot;原子\u0026quot;，那么 傅里叶 发现了一件更惊人的事：\n任何形状的波，不管多复杂，都可以拆成一堆简单的 sin 波的叠加。\n就像——任何颜色都可以用红、绿、蓝三原色混合出来。任何声音都可以用一组纯音叠加出来。\n看这个动图：\n第一行：只有一个基本的 sin(x)——很光滑的波 第二行：加上 sin(3x)/3——波开始有棱角了 第三行：再加上 sin(5x)/5——棱角更明显了 第四行：加上更多项——越来越像一个方波！ 圆润的正弦波，叠加足够多个，就能拼出方方正正的方波。\n这就是 傅里叶变换 的核心思想（1807 年提出）：\n傅里叶变换的直觉 正方向（分解）： 复杂的声音 → 拆成 → 一组频率不同的简单 sin 波 就像把一首交响乐拆成单个乐器的声音 反方向（合成）： 一组简单 sin 波 → 叠加 → 任意复杂的波形 就像把各乐器的声音混合成交响乐 你手机里的所有音频处理、图片压缩（JPEG）、语音识别，底层都在用傅里叶变换。\n这个思想的威力在于：不管现实世界有多复杂，最终都可以拆解为最简单的\u0026quot;圆的旋转\u0026quot;。\n第五章：连接 AI——Transformer 的位置编码 现在来看 AI 里三角函数最精彩的应用。\nTransformer（GPT 的核心架构）有一个问题需要解决：\n\u0026ldquo;我 今天 很 开心\u0026rdquo;——AI 怎么知道\u0026quot;今天\u0026quot;是第 2 个词，不是第 4 个？\n因为 Transformer 是同时处理所有词的（不像人类一个一个读），它天然分不清顺序。所以需要给每个位置一个\u0026quot;标记\u0026quot;。\nTransformer 的作者选择了什么来做位置标记？\nsin 和 cos。\n位置编码：用波浪标记位置 位置 0: [sin(0), cos(0), sin(0), cos(0), ...] 位置 1: [sin(1), cos(1), sin(0.01), cos(0.01), ...] 位置 2: [sin(2), cos(2), sin(0.02), cos(0.02), ...] ... 不同频率的 sin/cos 组合起来， 每个位置都有一个独一无二的\u0026#34;指纹\u0026#34;。 为什么选 sin/cos？三个原因：\n为什么用 sin/cos 做位置编码？ 特性 为什么重要 值域有界 [-1, 1] 数值不会爆炸，不管句子多长 每个位置独特 多个频率的 sin/cos 组合形成唯一\u0026quot;指纹\u0026quot; 相对距离可算 sin(a+b) 可以用 sin(a)、cos(a)、sin(b)、cos(b) 算出来——AI 可以\u0026quot;推算\u0026quot;相对位置 圆的旋转天然就有\u0026quot;位置感\u0026quot;——时钟的 3 点和 9 点看起来不同，12 点和 6 点看起来不同。每个角度（位置）都是独特的。\nTransformer 的作者就是利用了圆的这个特性，让 AI \u0026ldquo;知道\u0026quot;每个词在句子里的位置。\n一句话记住： Transformer 用 sin/cos 给每个词标记\u0026quot;你是第几个\u0026rdquo;。因为波天然有\u0026quot;每个位置都不同\u0026quot;和\u0026quot;位置之间的关系可以计算\u0026quot;的特性。圆的旋转，帮 AI 记住了词的顺序。\n第六章：从圆到万物——中国古代的圆与波 最后，让我们致敬古人对\u0026quot;圆\u0026quot;和\u0026quot;循环\u0026quot;的理解。\n中国文化中的\"圆与波\" 概念 来源 对应的数学 阴阳鱼太极图 《周易》 sin/cos 的交替——正弦波的完美视觉化 \u0026ldquo;天行有常\u0026rdquo; 《荀子》 自然规律是周期性的——天体运行可用波描述 十二律 《吕氏春秋》 竹管长度 ↔ 音高频率——声波的物理控制 圭表测影 周代天文 日影长度随季节的变化 = 正弦曲线 农历 古代天文历法 月相变化 ≈ 29.5 天一个 sin 周期 圭表测影特别有意思。古人在地上立一根竿子（圭表），记录正午时刻影子的长度。\n一年下来，影子长度的变化画出来——就是一条正弦曲线。\n冬至最长，夏至最短，春分秋分居中。周而复始，年年如此。\n古人用竹竿和影子，\u0026ldquo;看见\u0026quot;了三角函数。只是他们不知道它叫 sin。\n动手实验 实验一：亲手画正弦波 import math # 用文字画一个正弦波！ width = 60 print(\u0026#34;y = sin(x) 的手绘版：\u0026#34;) print() for i in range(0, width): x = i * 4 * math.pi / width y = math.sin(x) # 把 y(-1~1) 映射到 0~30 的字符位置 pos = int((y + 1) / 2 * 30) line = \u0026#34; \u0026#34; * pos + \u0026#34;●\u0026#34; print(f\u0026#34; {line}\u0026#34;) 实验二：波的叠加 import math # 看看多个 sin 叠加如何逼近方波 print(\u0026#34;正弦波叠加逼近方波：\u0026#34;) print(\u0026#34;─\u0026#34; * 50) for n_terms in [1, 3, 5, 9]: print(f\u0026#34;\\n{n_terms} 个正弦波叠加：\u0026#34;) for i in range(40): x = i * 2 * math.pi / 40 y = 0 for k in range(n_terms): n = 2 * k + 1 # 奇数项：1, 3, 5, 7... y += math.sin(n * x) / n y *= 4 / math.pi # 归一化 pos = int((y + 1.5) / 3 * 35) pos = max(0, min(35, pos)) print(f\u0026#34; {\u0026#39;·\u0026#39; * pos}█\u0026#34;) 本篇小结 这篇文章讲了什么？ 一、三角函数的真面目\nsin = 圆上旋转的上下投影，cos = 左右投影 本质是圆，不是三角形 二、波无处不在\n声音、光、心跳、四季、交流电——全是波 一个公式 A·sin(2πft+φ)，三个旋钮，描述一切循环 三、傅里叶的魔法\n任何复杂的波 = 一堆简单 sin 波的叠加 手机里的音频、图片压缩、语音识别——全在用 四、AI 的位置编码\nTransformer 用 sin/cos 给每个词标记位置 因为波天然有\u0026quot;每个位置独特\u0026quot;和\u0026quot;相对距离可算\u0026quot;的特性 五、古人也\u0026quot;看见\u0026quot;了波\n阴阳太极 = sin/cos 的交替 圭表测影 = 正弦曲线的实测 十二律 = 声波频率的物理控制 下一篇预告 我们现在认识了三种变化：线性（直线）、指数（爆炸）、周期（循环）。\n但有一个问题一直悬而未决：\n变化有多\u0026quot;快\u0026rdquo;？\n一辆车在加速，在加速的某一瞬间，它的速度到底是多少？不是\u0026quot;平均速度\u0026quot;——是此刻、此时、这一毫秒的速度。\n为了回答这个问题，人类花了 2000 年——从芝诺的乌龟到牛顿和莱布尼茨。答案是人类数学史上最深刻的发明之一：\n微积分。\n下一篇：看见数学（九）：微积分（上）——追问\u0026quot;此刻\u0026quot;\n《看见数学》系列 — 从结绳记事到 AI，看见数学之美。\n本文首发于「AI 学习笔记」博客：https://Jason-Azure.github.io/ai-blog/\n微信公众号：AI-lab学习笔记\n系列文章完整列表见 标签：看见数学\n","permalink":"https://jason-azure.github.io/ai-blog/posts/see-math-8-waves/","summary":"忘掉你学过的 sin/cos/tan 和三角形。三角函数真正描述的是圆和波——世界上最基本的两种运动。而 Transformer 用 sin/cos 给每个词标记位置，因为波天然有\u0026quot;周期性\u0026quot;和\u0026quot;唯一性\u0026quot;。","title":"看见数学（八）：圆与波——三角函数的真面目"},{"content":" 上一篇 《圆与波》 里，我们认识了第三种变化——周期循环。\n线性、指数、周期——三种变化我们都认识了。\n但有一个问题一直悬在那里，从未回答：\n在变化的某一瞬间，变化到底有多快？\n系列导航\n第一幕 · 数的觉醒（5 篇）+ 第二幕前三篇 → 查看全部 ▸ 第九篇（本文）：微积分（上）——追问\"此刻\" ▹ 第十篇：微积分（下）——加起来的艺术 第一章：一个你每天都遇到的问题 你在开车。\n仪表盘上的速度表显示：80 km/h。\n这个\u0026quot;80\u0026quot;是什么意思？\n你可能觉得这很简单——\u0026ldquo;就是说我现在每小时能走 80 公里呗。\u0026rdquo;\n但认真想想，这个说法有点奇怪：\n你并没有真的走了一个小时。你可能 5 秒后就踩了刹车。\n\u0026ldquo;每小时 80 公里\u0026quot;描述的不是你真的走了多远，而是——如果你以此刻的状态继续走下去，一小时后你会走多远。\n这就是瞬时速度——此刻、此时、这一毫秒的速度。\n问题来了：怎么测量\u0026quot;此刻\u0026quot;的速度？\n平均速度 vs 瞬时速度 平均速度很好算： 你 2 小时走了 160 公里 平均速度 = 160 / 2 = 80 km/h 但这是\u0026#34;平均\u0026#34;——你可能前半小时堵车只走了 10 公里， 后面在高速上飙到 120 km/h。 瞬时速度问的是： 在 10:32:45.237 这一刻，你到底在以多少速度运动？ 不是 2 小时的平均 不是 1 分钟的平均 不是 1 秒的平均 是——\u0026#34;这一刻\u0026#34; \u0026ldquo;这一刻\u0026quot;有多短？0.1 秒？0.001 秒？0.000001 秒？\n无穷短。\n为了回答这个问题，人类花了 2000 年。\n第二章：芝诺的乌龟——一个 2500 年前的困惑 公元前 5 世纪，古希腊的哲学家芝诺提出了一系列著名的悖论。其中最有名的一个：\n阿基里斯与乌龟 英雄阿基里斯和一只乌龟赛跑。 乌龟先出发 100 米。 阿基里斯跑到乌龟出发的位置时（100 米）， 乌龟又往前走了 10 米。 阿基里斯再跑 10 米时， 乌龟又往前走了 1 米。 阿基里斯再跑 1 米时， 乌龟又往前走了 0.1 米。 …… 阿基里斯似乎永远追不上乌龟？ 当然，现实中阿基里斯很快就超过了乌龟。但芝诺的悖论揭示了一个深刻的问题：\n如何处理\u0026quot;无穷多个越来越小的东西\u0026rdquo;？\n100 + 10 + 1 + 0.1 + 0.01 + …… 无穷多项加起来，等于多少？\n答案是 111.111…… = 111⅑（一个有限的数）。\n无穷多个东西加起来，可以是有限的。 这个事实，人类直到 17 世纪才真正搞明白。\n还记得第七篇里庄子的\u0026rdquo;一尺之棰，日取其半，万世不竭\u0026ldquo;吗？那也是同一个问题的另一面——½ + ¼ + ⅛ + …… = 1。无穷多个越来越小的碎片，加起来等于一个完整的\u0026quot;1\u0026rdquo;。\n芝诺和庄子在同一个时代（公元前 5 世纪），在地球的两端，思考着同一个问题。\n第三章：割线→切线——微积分的核心动画 芝诺的问题在 2000 年后被牛顿和莱布尼茨用一个精妙的方法解决了。\n方法的核心是：极限。\n让我用一个动画来展示：\n这是微积分最核心的画面。 仔细看：\n曲线 y = x² 上有两个点 A 和 B 连接 A 和 B 的直线叫割线（secant）——它代表两点之间的平均变化率 当 B 点沿着曲线向 A 滑动时，割线在旋转 当 B 无限接近 A 时——割线变成了切线（tangent） 切线的斜率 = A 点的瞬时变化率 = 导数 微积分的核心思想（一句话版） 想知道\u0026#34;此刻\u0026#34;变化有多快？ 取两个时刻，算平均变化率 → 割线 让两个时刻越来越近 → 割线在旋转 让时间间隔无限接近零 → 割线变成切线 切线的斜率 → 就是\u0026#34;此刻\u0026#34;的变化率 这个过程叫\u0026#34;求极限\u0026#34; 这个结果叫\u0026#34;导数\u0026#34; 翻译成速度的语言：\n过去 2 小时你走了 160 km → 平均 80 km/h （割线） 过去 1 分钟你走了 1.4 km → 平均 84 km/h （更细的割线） 过去 1 秒你走了 23 米 → 平均 82.8 km/h （更更细的割线） 过去 0.001 秒…… → …… （越来越细） 当时间间隔→0 → 瞬时速度 83 km/h （切线=导数） 一句话记住： 导数 = 无限短时间内的变化率。求导就是把\u0026quot;平均\u0026quot;逼到\u0026quot;瞬间\u0026quot;——让两个点无限接近，割线变成切线。\n第四章：导数——函数的\u0026quot;速度表\u0026quot; 导数有一个特别直观的理解：它是函数的\u0026quot;速度表\u0026quot;。\n每个函数都有一条曲线。导数告诉你，曲线在每一个点的坡度是多少。\n导数 = 坡度 = 速度 曲线很陡（上坡） → 导数很大 → 变化很快 曲线很平 → 导数接近 0 → 几乎不变 曲线在下降 → 导数是负数 → 在变小 曲线在顶点 → 导数 = 0 → 瞬间\u0026#34;停\u0026#34;了 ╱ ← 导数 = 正（上坡） ╱ ╱── ← 导数 = 0（顶点） ╲ ╲ ← 导数 = 负（下坡） 几个常见函数的导数：\n常见函数和它们的\"速度表\" 函数 f(x) 导数 f\u0026rsquo;(x) 直觉 f(x) = 5（常数） f\u0026rsquo;(x) = 0 不动的东西没有速度 f(x) = 2x + 1（直线） f\u0026rsquo;(x) = 2 匀速变化，速度恒定 f(x) = x²（抛物线） f\u0026rsquo;(x) = 2x 越来越快（x 越大越陡） f(x) = sin(x)（波浪） f\u0026rsquo;(x) = cos(x) 波顶（sin=1）时速度为零，波中速度最快 f(x) = eˣ（指数） f\u0026rsquo;(x) = eˣ 速度等于自身！越快就越更快——指数爆炸的数学本质 最后一行特别惊人：eˣ 的导数就是它自己。 它的\u0026quot;速度\u0026quot;等于它的\u0026quot;位置\u0026quot;——越高就越快，越快就越高。这就是指数增长\u0026quot;失控\u0026quot;的数学根源。\n刘徽的割圆术（263 年） 本质上就是极限思想的应用：把圆用正多边形逼近，边数越多越接近圆。从 6 边形到 12 边形到 24 边形到 96 边形……刘徽做的事情和微积分里\u0026quot;让间隔趋近于零\u0026quot;完全一样——只是他用在了求面积，而牛顿用在了求速度。\n中国人比牛顿早 1400 年使用了极限思想。只是没有把它发展成一套系统的理论。\n一句话记住： 导数就是函数在每一个点的\u0026quot;坡度\u0026quot;。坡度大→变化快，坡度零→到顶了，坡度负→在下降。学会看导数，你就拥有了一双看见\u0026quot;变化速度\u0026quot;的眼睛。\n第五章：连接 AI——梯度就是导数 现在来看 AI。\n在 第三篇 我们说过：AI 训练就是\u0026quot;求解几十亿个 x\u0026quot;。\n在 第五篇 我们看过注意力方程。\n现在我们终于可以理解：AI 到底是怎么\u0026quot;学习\u0026quot;的。\n答案只有两个字：梯度（Gradient）。\n梯度 = 多维的导数 一维：导数告诉你\u0026#34;往左走还是往右走能下坡\u0026#34; 函数 f(x) → 导数 f\u0026#39;(x) → 一个方向 多维：梯度告诉你\u0026#34;往哪个方向走能最快下坡\u0026#34; 函数 f(x₁, x₂, ..., xₙ) → 梯度 = (∂f/∂x₁, ∂f/∂x₂, ..., ∂f/∂xₙ) → 一个包含所有方向信息的向量 一维是爬一条线，多维是爬一座山 梯度指向\u0026#34;最陡的下坡方向\u0026#34; AI 训练的三步循环 AI 训练的每一步，做的事情就是：\n梯度下降：AI 学习的三步循环 第一步：算\u0026#34;差距\u0026#34; 把数据丢进模型 → 看预测结果 → 和正确答案对比 差距 = loss（损失函数） loss 越大 = 模型越差 第二步：算\u0026#34;方向\u0026#34; 对 loss 求梯度（导数！） 梯度告诉你：\u0026#34;调哪些参数，往哪个方向调，能让 loss 下降最快\u0026#34; 第三步：走一步 沿着梯度方向，把参数微调一点点 loss 会稍微下降 重复。重复。重复几十万次。 就像蒙着眼睛在山上找谷底： 每一步都用脚感受坡度（求导数） 然后往最陡的下坡方向走一步（梯度下降） 走几万步后——你到了谷底（模型训练完成） 还记得我们在实验室跑 microgpt 时看到的吗？\nstep 0, loss = 3.367 ← 刚开始，山顶 step 100, loss = 2.741 ← 下坡中 step 500, loss = 2.112 ← 继续下 step 1000, loss = 1.924 ← 快到谷底了 每一步 loss 的下降，背后就是一次\u0026quot;求导→沿梯度走一步\u0026quot;。\n整个深度学习、整个 AI 训练——几千亿美元的产业——最核心的数学操作就是：求导数。\n日常类比 vs AI 训练 蒙眼下山 AI 训练 你在哪 山上的某个位置 参数的当前值 目标 找到谷底 让 loss 最小 怎么走 用脚感受坡度 求梯度（导数） 每一步 往最陡的方向走一步 沿梯度方向调参数 重复 走几百步 迭代几十万步 结束 到了谷底 loss 不再下降 一句话记住： 梯度 = 多维的导数。AI 训练的每一步都在求导数——\u0026ldquo;loss 往哪个方向下降最快？\u0026quot;。微积分不是考试里的\u0026quot;天书\u0026rdquo;，它是 AI 会学习的根本原因。\n第六章：微积分为什么花了 2000 年？ 从芝诺（公元前 5 世纪）到牛顿和莱布尼茨（17 世纪），人类花了 2000 年才建立微积分。\n为什么这么难？\n因为微积分要求人类接受一个极其反直觉的操作：\n微积分要你接受的事 ① 两个点可以\u0026#34;无限接近\u0026#34;但不重合 → 极限的概念 ② 一段\u0026#34;无穷短\u0026#34;的距离不是零，但也不是任何正数 → 无穷小的概念 ③ 无穷多个\u0026#34;无穷小\u0026#34;的东西加起来可以是有限的 → 芝诺悖论的解答 ④ 一条弯曲的线，放大到足够大，看起来是直的 → 局部线性化（切线） 每一条都在挑战人类的日常直觉。\n这就是为什么微积分这么\u0026quot;难\u0026quot;——不是计算难，是概念难。\n但一旦你接受了这些概念，整个世界就打开了。\n从这个角度看，我们的《看见数学》系列一直在做同样的事：\n第一篇：接受\u0026quot;抽象\u0026quot;（数字不是实物） 第二篇：接受\u0026quot;零\u0026quot;和\u0026quot;负数\u0026quot;（不存在的也有意义） 第三篇：接受\u0026quot;x\u0026quot;（不知道的也能处理） 第七篇：接受\u0026quot;指数\u0026quot;（大脑跟不上的也是真的） 本篇：接受\u0026quot;极限\u0026quot;（无穷短不是零） 数学的每一次飞跃，都是在要求人类接受一个\u0026quot;不舒服\u0026quot;的新概念。而每一次接受，都打开了一个新世界。\n动手实验 实验一：亲手\u0026quot;求导\u0026quot; # 用数值方法感受\u0026#34;导数\u0026#34;——让 h 越来越小 def f(x): \u0026#34;\u0026#34;\u0026#34;我们的函数：f(x) = x²\u0026#34;\u0026#34;\u0026#34; return x ** 2 x = 3 # 在 x=3 这个点求导 print(f\u0026#34;f(x) = x² 在 x = {x} 处的导数\u0026#34;) print(f\u0026#34;理论值：f\u0026#39;(3) = 2×3 = 6\u0026#34;) print() print(f\u0026#34;{\u0026#39;h\u0026#39;:\u0026gt;12} {\u0026#39;近似导数\u0026#39;:\u0026gt;12} {\u0026#39;误差\u0026#39;:\u0026gt;10}\u0026#34;) print(\u0026#34;─\u0026#34; * 40) for exp in range(1, 11): h = 10 ** (-exp) derivative = (f(x + h) - f(x)) / h # 割线斜率 error = abs(derivative - 6) print(f\u0026#34;{h:\u0026gt;12.1e} {derivative:\u0026gt;12.8f} {error:\u0026gt;10.2e}\u0026#34;) # 输出： # h 近似导数 误差 # ──────────────────────────────────────── # 1.0e-01 6.10000000 1.00e-01 ← 割线，还差一点 # 1.0e-02 6.01000000 1.00e-02 ← 更近了 # 1.0e-03 6.00100000 1.00e-03 # 1.0e-04 6.00010000 1.00e-04 # 1.0e-05 6.00001000 1.00e-05 # ... # 1.0e-10 6.00000000 ... ← 几乎完美！切线！ # h 越小 → 割线越接近切线 → 近似导数越接近真实导数 实验二：模拟梯度下降 # 蒙眼下山：梯度下降找最小值 def f(x): \u0026#34;\u0026#34;\u0026#34;一个有\u0026#34;谷底\u0026#34;的函数\u0026#34;\u0026#34;\u0026#34; return (x - 3) ** 2 + 1 # 最小值在 x=3, f=1 def df(x): \u0026#34;\u0026#34;\u0026#34;f 的导数\u0026#34;\u0026#34;\u0026#34; return 2 * (x - 3) # 从 x=10 出发，找谷底 x = 10.0 learning_rate = 0.1 print(\u0026#34;梯度下降：从 x=10 出发，找 f(x) = (x-3)² + 1 的最小值\u0026#34;) print(\u0026#34;─\u0026#34; * 50) print(f\u0026#34;{\u0026#39;步数\u0026#39;:\u0026gt;4} {\u0026#39;x\u0026#39;:\u0026gt;8} {\u0026#39;f(x)\u0026#39;:\u0026gt;8} {\u0026#39;导数\u0026#39;:\u0026gt;8} {\u0026#39;方向\u0026#39;}\u0026#34;) print(\u0026#34;─\u0026#34; * 50) for step in range(15): gradient = df(x) fx = f(x) direction = \u0026#34;←\u0026#34; if gradient \u0026gt; 0 else \u0026#34;→\u0026#34; if abs(gradient) \u0026lt; 0.01: direction = \u0026#34;✓ 到了！\u0026#34; if step \u0026lt; 8 or step \u0026gt;= 13: print(f\u0026#34;{step:\u0026gt;4} {x:\u0026gt;8.3f} {fx:\u0026gt;8.3f} {gradient:\u0026gt;8.3f} {direction}\u0026#34;) x = x - learning_rate * gradient # 沿梯度反方向走 if step == 7: print(f\u0026#34; ... （省略中间步骤）\u0026#34;) # 输出： # 0 10.000 50.000 14.000 ← （导数正=右边太高，往左走） # 1 8.600 32.360 11.200 ← # 2 7.480 21.350 8.960 ← # ... # 14 3.006 1.000 0.011 ✓ 到了！ 本篇小结 这篇文章讲了什么？ 一、\u0026ldquo;此刻\u0026quot;的速度\n平均速度容易算，瞬时速度需要\u0026quot;无穷短\u0026quot;的时间间隔 为了定义\u0026quot;此刻\u0026rdquo;，人类花了 2000 年 二、芝诺的遗产\n无穷多个无穷小加起来可以是有限的 庄子和芝诺在同一时代思考同一个问题 三、割线→切线→导数\n两个点越来越近 → 割线变切线 → 切线斜率 = 导数 这是微积分最核心的画面 四、导数 = 函数的\u0026quot;速度表\u0026quot;\n坡度大→变化快，坡度零→到顶了，坡度负→在下降 eˣ 的导数是它自己——指数爆炸的数学根源 五、AI 训练 = 求导数\n梯度 = 多维的导数 = \u0026ldquo;往哪个方向走能最快下坡\u0026rdquo; 整个深度学习的核心操作就是：求导→沿梯度走一步→重复 六、微积分为什么花了 2000 年\n不是计算难，是概念难——接受极限、无穷小、局部线性化 数学的每一次飞跃，都是接受一个\u0026quot;不舒服\u0026quot;的新概念 下一篇预告 微积分有两面。这一篇讲了第一面——微分（导数）：把东西切碎，看每一小段的\u0026quot;速度\u0026quot;。\n下一篇讲第二面——积分：把切碎的东西加回来。\n如果你知道一辆车每一秒的速度，你能算出它总共走了多远吗？\n如果你把一个圆切成无穷多个细环，展开来，会变成什么形状？\n答案是：πr²。 而推导它的方法，美到让你屏息。\n下一篇是第二幕的终曲：看见数学（十）：微积分（下）——加起来的艺术\n《看见数学》系列 — 从结绳记事到 AI，看见数学之美。\n本文首发于「AI 学习笔记」博客：https://Jason-Azure.github.io/ai-blog/\n微信公众号：AI-lab学习笔记\n系列文章完整列表见 标签：看见数学\n","permalink":"https://jason-azure.github.io/ai-blog/posts/see-math-9-calculus-1/","summary":"微积分回答了一个人类追问了 2000 年的问题：在这一瞬间，变化有多快？从芝诺的乌龟到牛顿的苹果，从割线到切线，从导数到梯度——AI 训练的每一步，都在用微积分。","title":"看见数学（九）：微积分（上）——追问\"此刻\""},{"content":" 上一篇 《微积分（上）》 里，我们学会了微分——把东西切碎，看每一小段的\u0026quot;速度\u0026quot;。\n这一篇讲微积分的另一面——积分：把切碎的东西加回来。\n这是第二幕的终曲。\n系列导航\n第一幕 · 数的觉醒（5 篇）+ 第二幕前四篇 → 查看全部 ▹ 第九篇：微积分（上）——追问\"此刻\" ▸ 第十篇（本文）：微积分（下）——加起来的艺术 【第二幕终曲】 第一章：从速度到距离 上一篇我们学会了：知道距离随时间的变化，求速度。 那叫微分。\n现在反过来：\n如果你知道一辆车每一秒的速度，你能算出它总共走了多远吗？\n如果速度恒定——简单：\n匀速 60 km/h，开 2 小时 距离 = 速度 × 时间 = 60 × 2 = 120 km 画在坐标系上，这就是一个矩形的面积：\n速度 60 ─┤████████████████ │████████████████ │████████████████ └────────────────→ 时间 0 1 2 面积 = 底 × 高 = 2 × 60 = 120 = 距离 但如果速度在变呢？一会快一会慢？\n这时候，\u0026ldquo;速度×时间\u0026quot;不管用了——因为速度不是一个固定的数。\n怎么办？\n切碎。\n第二章：矩形逼近——积分的灵魂 方法简单到令人震惊：\n把曲线下面的面积，切成一条一条的小矩形。矩形的面积你会算。然后把它们加起来。\n看这个动图：\n蓝色曲线是 y = x² 我们用矩形去逼近曲线下方的面积 4 个矩形：很粗糙，有明显的\u0026quot;台阶\u0026rdquo; 8 个矩形：好一点了 16 个 → 32 个 → 64 个 → 128 个…… 矩形越多，逼近越精确，台阶越小 当矩形数量趋向无穷——面积就是精确的 积分的核心思想（一句话版） 想知道一个不规则形状的面积？ 第一步：切成小矩形 （每个矩形面积 = 底 × 高） 第二步：把所有矩形面积加起来 （求和） 第三步：让矩形越来越窄 （宽度趋向 0） 第四步：矩形的数量趋向无穷 （求极限） 结果 = 精确的面积 = 积分 这和上一篇的微分是完全对称的：\n微分：两个点越来越近 → 割线变切线 → 得到\u0026#34;速度\u0026#34;（导数） 积分：矩形越来越窄 → 台阶变平滑 → 得到\u0026#34;面积\u0026#34;（积分） 微分：切碎，看局部 积分：加起来，看全局 一句话记住： 积分就是\u0026quot;切碎→加起来→取极限\u0026quot;。把大东西切成无穷多小碎片，每个碎片简单到你能计算，然后把它们全加起来。\n第三章：圆的面积——最美的推导 现在来看积分最优美的应用之一。\n你知道圆的面积公式 S = πr² 是怎么来的吗？\n大多数人只是\u0026quot;记住\u0026quot;了它。但让我告诉你它是怎么推导出来的——用积分的思想。\n方法：把圆切成无穷多个同心细环，然后\u0026quot;展开\u0026quot;。\nπr² 的推导：把圆切成细环 第一步：想象一个半径为 r 的圆 第二步：把圆切成很多\u0026#34;同心环\u0026#34;（像树的年轮） 最内环半径约 0，最外环半径 = r 每个细环的宽度 = dr（无穷窄） 第三步：取出一个半径为 t 的细环 周长 = 2πt 宽度 = dt（无穷窄） 面积 ≈ 2πt × dt （细环展开≈长方形） 第四步：把所有细环的面积加起来 总面积 = ∫₀ʳ 2πt dt = 2π × [t²/2]₀ʳ = 2π × r²/2 = πr² 圆的面积 = πr² ✓ 但更直观的理解是这样的——\n把所有细环\u0026quot;剪开\u0026quot;拉直，按大小排列：\n细环展开 → 三角形 最外环（周长最长）: ═══════════════════════ 2πr 第二环: ══════════════════════ 第三环: ════════════════════ ... ... 第二内环: ═══ 最内环（点）: · 0 排列起来： ╱│ ╱ │ ╱ │ 高 = r ╱ │ ╱ │ ╱─────│ 底 = 2πr 三角形面积 = ½ × 底 × 高 = ½ × 2πr × r = πr² ✓ 把圆切成无穷多个细环 → 展开 → 变成三角形 → 面积一目了然。\n这就是积分的灵魂：把你不会算的形状（圆），切成你会算的形状（矩形/三角形），然后加起来。\n刘徽的割圆术（263 年） 用的是同样的思想！只不过他是从外面逼近——用正多边形包住圆，边数从 6 → 12 → 24 → 48 → 96……多边形越来越接近圆。这和积分的\u0026quot;矩形越来越窄\u0026quot;是同一个思想，方向不同而已。\n刘徽比牛顿早了 1400 年，用同样的核心思想，算出了 π ≈ 3.1416。\n一句话记住： 积分 = 把大东西切成小碎片 → 每片很简单 → 加起来。圆的面积 πr² 就是这么来的：切成细环，展开变成三角形。\n第四章：微积分基本定理——最美的硬币 现在来看人类数学史上最优美的定理之一：\n微积分基本定理 微分和积分是互逆的。\n微分（求导）：知道\u0026#34;距离\u0026#34;→ 求\u0026#34;速度\u0026#34; ← 切碎 积分： 知道\u0026#34;速度\u0026#34;→ 求\u0026#34;距离\u0026#34; ← 加回来 它们是同一枚硬币的两面。 一个是拆，一个是装。 一个问\u0026#34;此刻有多快\u0026#34;，一个问\u0026#34;总共有多少\u0026#34;。 这意味着什么？\n如果你知道一个函数的导数，你就能反推出原函数。\nf(x) = x² → 导数 f\u0026#39;(x) = 2x （微分） g\u0026#39;(x) = 2x → 原函数 g(x) = x² （积分） 微分和积分互相\u0026#34;撤销\u0026#34;对方的操作 就像乘法和除法、加法和减法 这个定理是牛顿和莱布尼茨（独立地）在 17 世纪发现的，它把\u0026quot;求面积\u0026quot;和\u0026quot;求速度\u0026quot;这两个看似无关的问题统一了起来。\n一句中国古语 《道德经》第四十二章：\u0026quot;道生一，一生二，二生三，三生万物。\u0026quot;\n微积分也是如此——从\u0026quot;极限\u0026quot;这一个概念出发（道生一），分化出微分和积分（一生二），两者结合产生了解决无数问题的能力（二生三，三生万物）。物理学、工程学、经济学、生物学——现代科学的每一个分支，都离不开微积分。\n第五章：连接 AI——概率分布的面积 = 1 积分在 AI 里的应用非常基础：概率分布。\n还记得第五篇里讲的 softmax 吗？GPT 预测下一个词时，会给每个可能的词一个概率：\n\u0026#34;今天天气真___\u0026#34; 好 → 45% 棒 → 20% 冷 → 15% 热 → 10% 差 → 5% ...其他 → 5% 这些概率加起来必须等于 100%。\n当可能的选项从\u0026quot;几个\u0026quot;变成\u0026quot;无穷多个\u0026quot;（连续概率分布），\u0026ldquo;加起来等于 100%\u0026ldquo;就变成了——\n概率密度曲线下的面积 = 1。\n概率分布的面积 = 1 正态分布（钟形曲线）： ▓▓▓▓ ▓▓▓▓▓▓ ▓▓▓▓▓▓▓▓ ▓▓▓▓▓▓▓▓▓▓ ░░▓▓▓▓▓▓▓▓▓▓░░ ░░░░▓▓▓▓▓▓▓▓▓▓░░░░ ░░░░░░▓▓▓▓▓▓▓▓▓▓░░░░░░ ──────────────────────── μ 整条曲线下方的面积 = 1（100%） 这是概率的铁律：所有可能性加起来 = 100% 怎么算这个面积？积分！ ∫₋∞^∞ f(x)dx = 1 AI 里几乎所有涉及\u0026quot;概率\u0026quot;的计算，底层都在做积分。\nsoftmax 输出的概率之和 = 1（离散版的\u0026quot;面积 = 1\u0026rdquo;） 连续概率分布的归一化 = 积分 损失函数（cross-entropy）的定义里有对数和求和——本质是离散积分 扩散模型（生成图片的 AI）的核心数学是随机微分方程——微积分的高级形式 一句话记住： 概率的铁律是\u0026quot;所有可能性加起来 = 100%\u0026quot;。当可能性是连续的，\u0026ldquo;加起来\u0026quot;就变成了积分。AI 的每一次概率计算，背后都站着积分。\n第六章：第二幕的终点——回望全程 让我们站在终点，回望这五篇（第六到第十篇）的旅程：\n第二幕回顾：变化的语言 ⑥ 函数 输入→输出的机器。GPT 是一个超大型函数。 ↓ ⑦ 指数爆炸 人脑理解不了的增长。AI 的 Scaling Law。 ↓ ⑧ 圆与波 sin/cos 是圆运动的影子。位置编码。 ↓ ⑨ 微积分（上） 切碎看速度。梯度 = 导数。AI 学习的根本。 ↓ ⑩ 微积分（下） 加起来看总量。面积 = 积分。概率之和 = 1。 第一幕给了你\u0026quot;静止的工具\u0026rdquo;：数、坐标、方程。\n第二幕给了你\u0026quot;变化的工具\u0026rdquo;：函数、指数、波、微积分。\n走到这里，你已经拥有了理解 AI 所需的全部数学思想基础：\n从结绳记事到 AI——十篇的完整路线 篇 数学概念 在 AI 里是什么 ① 结绳记事 抽象 Tokenization：词→数字 ② 零的发明 零与负数 ReLU：负数→0（开关） ③ 未知数 x 代数 参数：几十亿个 x ④ 坐标革命 坐标系 词嵌入：词→向量坐标 ⑤ 方程的力量 方程组合 Attention 公式 ⑥ 函数 输入→输出 GPT = 超大型函数 ⑦ 指数爆炸 指数与对数 softmax 的 eˣ + Scaling Law ⑧ 圆与波 sin/cos 位置编码 ⑨ 微积分（上） 导数 梯度下降：AI 学习的核心 ⑩ 微积分（下） 积分 概率分布面积 = 1 你从结绳记事走到了微积分。从一万年前走到了今天。人类走这段路花了几千年。而你只用了十篇文章。\n第七章：尾声——数学是人类的望远镜 走到这里，让我说几句心里话。\n很多人告诉我他们\u0026quot;害怕数学\u0026quot;、\u0026ldquo;学不会数学\u0026rdquo;。我想告诉你——\n你已经学会了。\n回顾这十篇——你理解了抽象（结绳记事）、你接受了零和负数、你学会了给未知数取名字、你看见了方程的图形、你知道了 GPT 就是一个函数、你不再被指数骗到、你看见了 sin 是圆的影子、你亲手\u0026quot;求导\u0026quot;了、你理解了积分的灵魂。\n这些不是\u0026quot;简单的入门知识\u0026quot;。这些是数学最核心的思想。 很多学了十几年数学的人，会算题但不理解这些思想。而你现在理解了。\n数学不是一堆公式。数学是人类为了**看见\u0026quot;看不见的东西\u0026quot;**而发明的工具。\n望远镜让你看见远方（天文学） 显微镜让你看见微小（生物学） 数学让你看见规律、关系、变化、模式——这些是任何光学仪器看不到的 数学是人类的望远镜。 而你现在，已经拿起了它。\n动手实验 实验一：亲手做\u0026quot;积分\u0026quot;——矩形逼近 # 用矩形逼近 y = x² 从 0 到 3 的面积 # 真实答案 = 9.0 def f(x): return x ** 2 print(\u0026#34;矩形逼近 ∫₀³ x² dx 的面积\u0026#34;) print(\u0026#34;理论精确值: 9.0\u0026#34;) print(\u0026#34;─\u0026#34; * 45) print(f\u0026#34;{\u0026#39;矩形数\u0026#39;:\u0026gt;8} {\u0026#39;近似面积\u0026#39;:\u0026gt;10} {\u0026#39;误差\u0026#39;:\u0026gt;10} 精度\u0026#34;) print(\u0026#34;─\u0026#34; * 45) for n in [4, 8, 16, 32, 64, 128, 1024, 10000]: dx = 3.0 / n # 每个矩形的宽度 area = 0 for i in range(n): x = i * dx area += f(x) * dx # 矩形面积 = 高 × 宽 error = abs(area - 9.0) pct = (1 - error/9) * 100 print(f\u0026#34;{n:\u0026gt;8} {area:\u0026gt;10.4f} {error:\u0026gt;10.4f} {pct:.2f}%\u0026#34;) # 输出： # 矩形数 近似面积 误差 精度 # ───────────────────────────────────────────── # 4 5.9063 3.0938 65.63% # 8 7.3828 1.6172 82.03% # 16 8.1797 0.8203 90.89% # 32 8.5869 0.4131 95.41% # 64 8.7927 0.2073 97.70% # 128 8.8961 0.1039 98.85% # 1024 8.9868 0.0132 99.85% # 10000 8.9987 0.0013 99.99% ← 几乎完美！ 实验二：验证\u0026quot;概率之和 = 1\u0026quot; import math # softmax：把任意数字变成概率（加起来 = 1） scores = [2.0, 1.0, 0.5, 0.1, -0.5] words = [\u0026#34;好\u0026#34;, \u0026#34;棒\u0026#34;, \u0026#34;冷\u0026#34;, \u0026#34;热\u0026#34;, \u0026#34;差\u0026#34;] # softmax = e^x / sum(e^x) exp_scores = [math.exp(s) for s in scores] total = sum(exp_scores) probs = [e / total for e in exp_scores] print(\u0026#39;\u0026#34;今天天气真___\u0026#34; 的概率分布：\u0026#39;) print(\u0026#34;─\u0026#34; * 40) for word, score, prob in zip(words, scores, probs): bar = \u0026#34;█\u0026#34; * int(prob * 50) print(f\u0026#39; \u0026#34;{word}\u0026#34; 分数={score:\u0026gt;4.1f} 概率={prob:.1%} {bar}\u0026#39;) print(f\u0026#34;\\n概率之和 = {sum(probs):.6f}\u0026#34;) print(\u0026#34;（必须等于 1.000000 —— 积分/求和的铁律）\u0026#34;) # 输出： # \u0026#34;今天天气真___\u0026#34; 的概率分布： # ──────────────────────────────────────── # \u0026#34;好\u0026#34; 分数= 2.0 概率=52.1% ██████████████████████████ # \u0026#34;棒\u0026#34; 分数= 1.0 概率=19.2% █████████ # \u0026#34;冷\u0026#34; 分数= 0.5 概率=11.6% █████ # \u0026#34;热\u0026#34; 分数= 0.1 概率= 7.8% ███ # \u0026#34;差\u0026#34; 分数=-0.5 概率= 4.3% ██ # # 概率之和 = 1.000000 本篇小结 第二幕终曲 · 这篇文章讲了什么？ 一、积分 = 切碎 → 加起来 → 取极限\n矩形越来越窄，面积越来越精确 和微分（切碎看速度）完全对称 二、πr² 的优美推导\n圆切成同心细环 → 展开 → 排成三角形 面积 = ½ × 2πr × r = πr² 刘徽的割圆术——同一思想，早了 1400 年 三、微积分基本定理\n微分和积分是互逆的——同一枚硬币的两面 一个切碎看速度，一个加起来看总量 四、概率的铁律\n所有可能性加起来 = 100% 连续概率分布的面积 = 1 AI 的每一次概率计算，背后都站着积分 五、前两幕的完整路线\n从结绳记事到微积分，从抽象到积分 每一个概念都在 AI 里有对应 第三幕将走进\u0026quot;看不见的世界\u0026quot;——向量、矩阵、概率、高维 下一篇预告 两幕结束了，但数学的故事远没有结束。\n我们学会了描述静止的世界（数、方程、坐标），也学会了描述变化的世界（函数、指数、波、微积分）。\n接下来要面对的是——那些人类感官无法直接感知的东西。\n高维空间、概率分布、梯度场……你摸不到、看不见，但 AI 恰恰就在这些\u0026quot;看不见的世界\u0026quot;里运行。\n第三幕的第一个问题：\n如果一个事物需要用 768 个数来描述——这 768 个数组成的\u0026quot;一串数字\u0026quot;，叫什么？\n答案是：向量。\n下一篇：看见数学（十一）：向量——给万物一个坐标\n《看见数学》系列 — 从结绳记事到 AI，看见数学之美。\n本文首发于「AI 学习笔记」博客：https://Jason-Azure.github.io/ai-blog/\n微信公众号：AI-lab学习笔记\n系列文章完整列表见 标签：看见数学\n","permalink":"https://jason-azure.github.io/ai-blog/posts/see-math-10-calculus-2/","summary":"微积分的第二面：把无穷多个无穷小的碎片加起来。矩形逼近面积，圆拆成细环变成 πr²，速度加回距离。微分和积分是同一枚硬币的两面——这是人类数学史上最美的定理。第二幕终曲。","title":"看见数学（十）：微积分（下）——加起来的艺术"},{"content":" 前两幕，我们学会了描述静止的世界（数、方程、坐标），也学会了描述变化的世界（函数、指数、波、微积分）。\n第三幕的主题是：看不见的世界。\n高维空间、概率分布、梯度场——这些东西你摸不到、看不见，但 AI 恰恰就在这些\u0026quot;看不见的世界\u0026quot;里运行。\n数学帮你看见它们。\n系列导航\n第一幕（5 篇）+ 第二幕（5 篇）→ 查看全部 ▸ 第十一篇（本文）：向量——给万物一个坐标 【第三幕开篇】 ▹ 第十二篇：矩阵——空间的变形术 ▹ 第十三篇：概率——拥抱不确定 ▹ 第十四篇：高维——超越想象力 ▹ 第十五篇：梯度下降——数学会学习 ▹ 第十六篇：终章——数学是人类的望远镜 第一章：一杯咖啡有多少\u0026quot;维度\u0026quot;？ 你走进一家咖啡店。\n服务员问：\u0026ldquo;您想喝什么样的咖啡？\u0026rdquo;\n你说：\u0026ldquo;温度高一点，甜度低一点，浓度大一点。\u0026rdquo;\n不知不觉间，你用了三个数来描述一杯咖啡：\n一杯咖啡的\"坐标\" 你的咖啡 = [温度: 85°C, 甜度: 2/10, 浓度: 8/10] 用数学的写法： 咖啡A = [85, 2, 8] 这三个数组成的列表，就是一个向量。 在 第四篇（坐标革命） 里，我们学过：两个数 (x, y) 可以确定平面上的一个点。三个数 (x, y, z) 可以确定空间中的一个点。\n现在我们扩展这个思想：任意多个数，可以描述任意复杂的事物。\n万物皆向量 事物 用什么数描述 维度 一杯咖啡 [温度, 甜度, 浓度] 3 一个游戏角色 [攻击, 防御, 速度, HP, MP] 5 一张脸 [眼距, 鼻长, 脸宽, 肤色, \u0026hellip;] 几十 一首歌 [节奏, 旋律性, 能量, 情绪, \u0026hellip;] 几十 一个词的含义 [维度₁, 维度₂, \u0026hellip;, 维度₇₆₈] 768 一张图片 [像素₁, 像素₂, \u0026hellip;] 数百万 向量 = 一组有序的数。 就这么简单。\n它可以是 2 个数（地图坐标），可以是 5 个数（游戏角色属性），也可以是 768 个数（词向量）。个数就是\u0026quot;维度\u0026quot;。\n一句话记住： 向量不是一个高深的概念。向量就是\u0026quot;一串数字\u0026quot;——用来描述一个事物的多个方面。你每天都在和向量打交道，只是没人告诉你它叫向量。\n第二章：向量的加减法——直觉篇 向量最直觉的操作是加法。\n向量加法 = 合力 想象你和朋友一起推一辆车： 你推：向右 3 步，向前 4 步 → [3, 4] 朋友推：向右 1 步，向前 2 步 → [1, 2] 合起来：[3+1, 4+2] = [4, 6] 车最终：向右 4 步，向前 6 步 向量加法就是\u0026#34;每一维分别相加\u0026#34; 向量减法也很自然——它表示\u0026quot;差异\u0026quot;：\n北京的气候 = [年均温: 12°C, 降水: 580mm, 日照: 2600h] 上海的气候 = [年均温: 16°C, 降水: 1200mm, 日照: 1900h] 差异 = 上海 - 北京 = [+4°C, +620mm, -700h] 意思：上海比北京暖 4 度、多雨 620mm、少晒 700 小时 向量减法告诉你\u0026quot;两个事物差在哪里\u0026quot;。\n第三章：点积——\u0026ldquo;两件事有多像？\u0026rdquo; 这是向量最重要的操作。没有之一。\n点积（dot product）衡量的是：两个向量有多\u0026quot;相似\u0026quot;。\n点积 = 逐项相乘再求和 向量 A = [1, 2, 3] 向量 B = [4, 5, 6] 点积 = 1×4 + 2×5 + 3×6 = 4 + 10 + 18 = 32 就是\u0026#34;对应位置相乘，然后全加起来\u0026#34; 点积为什么能衡量相似度？\n直觉上：如果两个向量在每一个维度上都\u0026quot;同方向、同大小\u0026quot;，乘起来都是正数，加起来就很大。如果方向相反，乘起来是负数，加起来就小甚至是负的。\n更精确地说，有一个叫余弦相似度的公式：\n余弦相似度 = 点积 / (|A| × |B|) 结果范围：-1 到 1 1 = 完全相同方向（非常像） 0 = 完全无关 -1 = 完全相反 中国古语的\u0026quot;相似度\u0026quot;： 《易经·系辞》说\u0026quot;方以类聚，物以群分\u0026quot;——相似的东西会聚在一起。向量的余弦相似度就是这句话的数学表达：相似的向量（类聚的事物），在高维空间里靠得近。\n一句话记住： 点积 = \u0026ldquo;这两个东西有多像\u0026rdquo;。它是 AI 最核心的计算——Attention 机制的核心就是算词与词之间的点积（还记得第五篇吗？QK^T 就是在算点积）。\n第四章：连接 AI——\u0026ldquo;国王 - 男人 + 女人 = 女王\u0026rdquo; 现在来看向量在 AI 里最惊艳的表演。\n2013 年，Google 的研究者用一个叫 Word2Vec 的模型，把每个词映射成一个向量（几百维的数列表）。\n训练完成后，他们发现了一个震撼世界的现象：\n国王 - 男人 + 女人 ≈ 女王 向量(\u0026#34;国王\u0026#34;) - 向量(\u0026#34;男人\u0026#34;) + 向量(\u0026#34;女人\u0026#34;) ≈ 向量(\u0026#34;女王\u0026#34;) 翻译成人话： 从\u0026#34;国王\u0026#34;里减去\u0026#34;男性\u0026#34;的成分 加上\u0026#34;女性\u0026#34;的成分 得到的向量最接近的词是——\u0026#34;女王\u0026#34; 这意味着： \u0026#34;国王\u0026#34;和\u0026#34;女王\u0026#34;之间的关系 与 \u0026#34;男人\u0026#34;和\u0026#34;女人\u0026#34;之间的关系 在向量空间里是同一个\u0026#34;方向\u0026#34;—— 那个方向代表了\u0026#34;性别\u0026#34;这个概念 没有人教 AI \u0026ldquo;什么是性别\u0026rdquo;。 AI 只是读了大量的文本，自动学到了——\u0026ldquo;国王\u0026quot;和\u0026quot;男人\u0026quot;有某种关系，\u0026ldquo;女王\u0026quot;和\u0026quot;女人\u0026quot;有同样的关系。这种关系被编码成了向量空间中的一个方向。\n更多例子：\n向量算术 = 语义推理 向量运算 结果 编码的概念 巴黎 - 法国 + 日本 ≈ 东京 \u0026ldquo;首都\u0026rdquo; 好 - 坏 + 慢 ≈ 快 \u0026ldquo;反义\u0026rdquo; 游泳 - 游泳过去式 + 跑步 ≈ 跑步过去式 \u0026ldquo;时态变换\u0026rdquo; 向量不只是\u0026quot;一串数字\u0026rdquo;。它们捕捉到了概念之间的关系。\n如果你想深入了解词向量的运算、余弦相似度的计算、以及 AI 怎么把词变成向量，可以看我的 《AI 的数学语言（一）：用数字画地图》 和 《AI 的数学语言（二）：向量的加减法》——那两篇有更详细的代码演示和数学推导。\n一句话记住： AI 把每个词变成向量后，词的\u0026quot;含义\u0026quot;就变成了可以加减乘除的数学对象。\u0026ldquo;国王 - 男人 + 女人 = 女王\u0026quot;不是 AI \u0026ldquo;理解\u0026quot;了性别，而是向量空间自然编码了语义关系。\n第五章：你一直在用向量 在结束之前，让我指出一件你可能没意识到的事：\n你的大脑一直在做\u0026quot;向量运算\u0026rdquo;。\n大脑的\"向量运算\" 你做的事 其实是什么 \u0026ldquo;这两首歌风格很像\u0026rdquo; 在\u0026quot;风格向量\u0026quot;空间里，两首歌的点积很大 \u0026ldquo;这个人和我很合得来\u0026rdquo; 在\u0026quot;性格向量\u0026quot;空间里，两人的余弦相似度高 \u0026ldquo;这道菜缺点什么\u0026rdquo; 在\u0026quot;味觉向量\u0026quot;空间里，和你期望的向量有差距 \u0026ldquo;这部电影让我想起了另一部\u0026rdquo; 两部电影的\u0026quot;特征向量\u0026quot;在某些维度上相近 数学没有发明新的东西。数学只是把你大脑已经在做的事——精确化、量化、可计算。\n动手实验 实验：词向量的相似度 import numpy as np # 简化的 5 维词向量 words = { \u0026#39;国王\u0026#39;: np.array([0.9, 0.8, 0.1, 0.3, 0.7]), \u0026#39;女王\u0026#39;: np.array([0.8, 0.2, 0.1, 0.3, 0.7]), \u0026#39;男人\u0026#39;: np.array([0.2, 0.9, 0.1, 0.2, 0.5]), \u0026#39;女人\u0026#39;: np.array([0.1, 0.1, 0.1, 0.2, 0.5]), \u0026#39;汽车\u0026#39;: np.array([0.1, 0.5, 0.9, 0.8, 0.1]), } # 余弦相似度 def cosine_sim(a, b): return np.dot(a, b) / (np.linalg.norm(a) * np.linalg.norm(b)) print(\u0026#34;余弦相似度（越接近 1 = 越像）：\u0026#34;) print(\u0026#34;─\u0026#34; * 35) for a, b in [(\u0026#39;国王\u0026#39;,\u0026#39;女王\u0026#39;), (\u0026#39;国王\u0026#39;,\u0026#39;男人\u0026#39;), (\u0026#39;国王\u0026#39;,\u0026#39;汽车\u0026#39;)]: sim = cosine_sim(words[a], words[b]) bar = \u0026#34;█\u0026#34; * int(sim * 20) print(f\u0026#34; {a} ↔ {b}: {sim:.3f} {bar}\u0026#34;) # 向量算术 print(\u0026#34;\\n国王 - 男人 + 女人 ≈ ?\u0026#34;) result = words[\u0026#39;国王\u0026#39;] - words[\u0026#39;男人\u0026#39;] + words[\u0026#39;女人\u0026#39;] best_word, best_sim = \u0026#39;\u0026#39;, -1 for w, v in words.items(): if w not in [\u0026#39;国王\u0026#39;, \u0026#39;男人\u0026#39;, \u0026#39;女人\u0026#39;]: sim = cosine_sim(result, v) if sim \u0026gt; best_sim: best_word, best_sim = w, sim print(f\u0026#34; 最接近的词: {best_word} (相似度 {best_sim:.3f})\u0026#34;) 本篇小结 这篇文章讲了什么？ 一、向量 = 一组有序的数\n用来描述一个事物的多个方面 咖啡 [温度, 甜度, 浓度]，词 [768 个维度] 二、向量加法 = 合力，向量减法 = 差异\n加法：每一维分别相加 减法：告诉你两个事物差在哪 三、点积 = 衡量相似度\n逐项相乘再求和。余弦相似度范围 -1 到 1 Attention 的核心就是算点积 四、AI 的惊艳表演\n国王 - 男人 + 女人 ≈ 女王 向量自然编码了语义关系 五、你的大脑一直在做向量运算\n\u0026ldquo;这两首歌风格很像\u0026rdquo; = 点积大 数学只是把直觉精确化 下一篇预告 向量描述了\u0026quot;一个事物\u0026rdquo;。但如果你想同时变换一大堆向量呢？\n比如——把一个图形旋转 45 度、把一张图片放大两倍、把一个词向量从\u0026quot;原始含义\u0026quot;空间投影到\u0026quot;查询/键/值\u0026quot;空间？\n做这件事的工具叫矩阵。\n矩阵不是\u0026quot;一堆数排成方块\u0026rdquo;。矩阵是一个变换器——它可以拉伸、旋转、投影整个空间。而神经网络的每一层，就是一次矩阵变换。\n下一篇：看见数学（十二）：矩阵——空间的变形术\n《看见数学》系列 — 从结绳记事到 AI，看见数学之美。\n本文首发于「AI 学习笔记」博客：https://Jason-Azure.github.io/ai-blog/\n微信公众号：AI-lab学习笔记\n系列文章完整列表见 标签：看见数学\n","permalink":"https://jason-azure.github.io/ai-blog/posts/see-math-11-vectors/","summary":"向量不只是\u0026quot;有方向的箭头\u0026quot;。向量是用一组数来描述一个事物的方法——一杯咖啡、一个游戏角色、一个词的含义。而\u0026quot;国王 - 男人 + 女人 = 女王\u0026quot;，是向量最惊艳的表演。第三幕开篇。","title":"看见数学（十一）：向量——给万物一个坐标"},{"content":" 系列导航\n第一幕（5 篇）+ 第二幕（5 篇）→ 查看全部 ▹ 第十一篇：向量——给万物一个坐标 ▸ 第十二篇（本文）：矩阵——空间的变形术 ▹ 第十三篇：概率——拥抱不确定 ▹ 第十四篇：高维——超越想象力 ▹ 第十五篇：梯度下降——数学会学习 ▹ 第十六篇：终章——数学是人类的望远镜 第一章：一台\u0026quot;空间变形机\u0026quot; 上一篇我们说，向量是\u0026quot;一组数\u0026quot;，可以描述任何事物——一杯咖啡、一个词的含义、一张脸。\n现在问一个新问题：如果你想同时改变一大堆向量，怎么办？\n想象你是一个画家 你画了一只猫。猫是由很多点（向量）组成的。 现在你想： 把猫放大 2 倍 → 所有点的坐标 ×2 把猫旋转 45 度 → 所有点重新计算位置 把猫翻转成镜像 → 所有 x 坐标取反 每一种变换，都是对\u0026#34;所有向量\u0026#34;施加同一种操作。 做这件事的数学工具，就是矩阵。 矩阵 = 一台空间变形机。 你输入一个向量（一个点的位置），它输出变换后的向量（新位置）。\n但它不只变换一个点——它同时变换整个空间里的所有点。\n向量: [1, 2, 3] ← 一行数字，描述一个事物 矩阵: [[2, 0, 0], ← 一张数字表格 [0, 2, 0], [0, 0, 2]] 矩阵 × 向量 = [2, 4, 6] ← 每个维度都放大了 2 倍 这个矩阵做的事情很简单——把所有东西放大 2 倍。但矩阵能做的事远不止这个。\n一句话记住： 向量是\u0026quot;一个事物\u0026quot;。矩阵是\u0026quot;对事物的一种变换\u0026quot;。向量是名词，矩阵是动词。\n第二章：旋转、缩放、翻转——矩阵的三板斧 让我们看看矩阵能做什么样的变换。为了直观，先在 2D 平面上演示：\n三种经典变换 原始点: [1, 0]（向右 1 步） 【缩放】放大 3 倍 矩阵 = [[3, 0], 结果 = [3, 0] [0, 3]] → 向右 3 步 【旋转】逆时针 90° 矩阵 = [[0, -1], 结果 = [0, 1] [1, 0]] → 向上 1 步（转了 90°） 【翻转】左右镜像 矩阵 = [[-1, 0], 结果 = [-1, 0] [ 0, 1]] → 向左 1 步（镜像） 关键洞察：不同的矩阵 = 不同的变换方式。 矩阵里的数字决定了空间会怎么\u0026quot;变形\u0026quot;。\n生活中的矩阵变换 你做的事 其实是矩阵变换 手机照片旋转 90° 旋转矩阵 Photoshop 水平翻转 翻转矩阵 地图放大缩小 缩放矩阵 3D 游戏里视角变化 透视投影矩阵 抖音特效\u0026quot;瘦脸\u0026quot; 非均匀缩放矩阵 你每天都在用矩阵变换，只是软件帮你做了数学。\n一句话记住： 每次你在手机上旋转、放大照片，背后都有一个矩阵在工作。矩阵就是\u0026quot;空间变形的指令\u0026quot;。\n第三章：矩阵乘法——变换的叠加 如果一个矩阵是\u0026quot;一次变换\u0026quot;，那两个矩阵相乘是什么？\n答案出奇简单：先做一次变换，再做一次变换。\n矩阵乘法 = 变换的叠加 A = 旋转 90° 的矩阵 B = 放大 2 倍的矩阵 A × B = \u0026#34;先放大 2 倍，再旋转 90°\u0026#34; 一步到位！ 这就是为什么矩阵乘法的定义 看起来那么奇怪（行×列求和）—— 因为它在算\u0026#34;两次变换叠加后的效果\u0026#34;。 这就回答了一个很多人学线性代数时的困惑：为什么矩阵乘法不是\u0026quot;对应位置相乘\u0026quot;？\n因为矩阵乘法不是在\u0026quot;合并两张表格\u0026quot;——它是在组合两次变换。行乘列求和的规则，恰好让\u0026quot;变换的叠加\u0026quot;在数学上成立。\n为什么矩阵乘法不满足交换律？ A × B ≠ B × A。因为\u0026quot;先旋转再放大\u0026quot;和\u0026quot;先放大再旋转\u0026quot;可能得到不同结果——就像\u0026quot;先穿袜子再穿鞋\u0026quot;和\u0026quot;先穿鞋再穿袜子\u0026quot;完全不同。变换的顺序很重要。\n一句话记住： 矩阵乘法不是\u0026quot;数字的计算技巧\u0026quot;，而是\u0026quot;两次变换的合成\u0026quot;。理解了这一点，线性代数的大门就打开了。\n第四章：连接 AI——Transformer 里的矩阵 现在来看矩阵在 AI 里最核心的用法。\n还记得 上一篇 说的吗？AI 把每个词变成一个向量（768 维的数列表）。\n但这个向量只是\u0026quot;原始含义\u0026quot;。Transformer 要做的事情是：从不同角度重新审视每个词。\nQKV 投影 = 矩阵变换 一个词的原始向量 x = [0.2, 0.5, 0.1, ..., 0.8] (768维) Transformer 用三个矩阵，把 x 变成三个不同的向量： Q = Wq × x \u0026#34;我在找什么？\u0026#34;（查询） K = Wk × x \u0026#34;我能提供什么？\u0026#34;（键） V = Wv × x \u0026#34;我的内容是什么？\u0026#34;（值） Wq、Wk、Wv 是三个不同的矩阵（变换器）。 同一个词，从三个不同角度被\u0026#34;审视\u0026#34;。 这就是矩阵在 AI 里最核心的角色：投影（projection）。\n投影是什么？想象你拿着一个立体的地球仪，从正面拍一张照片——你得到一个 2D 的平面图。这就是把 3D 空间\u0026quot;投影\u0026quot;到 2D。信息有损失，但换来了一个特定视角。\n同样，QKV 矩阵把每个词从\u0026quot;768 维的通用含义空间\u0026quot;投影到\u0026quot;查询空间\u0026quot;、\u0026ldquo;匹配空间\u0026rdquo;、\u0026ldquo;内容空间\u0026rdquo;——每个空间关注词义的不同侧面。\n神经网络 = 矩阵变换链 输入 → [矩阵变换₁] → [激活函数] → [矩阵变换₂] → [激活函数] → ... → 输出 神经网络的每一层： 1. 矩阵变换：把向量投影到新空间 2. 激活函数：加入非线性（第二幕里学过的函数！） GPT-4 可能有上百层。 = 上百次矩阵变换 + 上百次非线性弯折。 = 把原始数据一步步变换到\u0026#34;能预测下一个词\u0026#34;的形态。 如果你想深入了解矩阵乘法的具体计算过程和 Attention 的完整公式推导，可以看我的 《AI 的数学语言（三）：矩阵》 和 《AI 的数学语言（四）：矩阵乘法与 AI》——那两篇有详细的手算演示和代码实现。\n一句话记住： 神经网络做的事情，本质上就是\u0026quot;一层层矩阵变换\u0026quot;。每一层矩阵把数据空间\u0026quot;揉\u0026quot;成新的形状，直到揉成 AI 需要的样子。\n第五章：中国古代的\u0026quot;矩阵\u0026quot; 矩阵不是西方的发明。\n中国人用矩阵解方程，比欧洲早了一千五百年。\n《九章算术》第八章：方程术（约公元前 100 年）\n\u0026ldquo;今有上禾三秉，中禾二秉，下禾一秉，实三十九斗……\u0026rdquo;\n翻译成现代语言：\n3x + 2y + z = 39\n用算筹（小棍子）在地上摆成方阵来求解——这就是最早的\u0026quot;矩阵消元法\u0026quot;，比欧洲的高斯消元法早了约 1800 年。\n\u0026ldquo;矩阵\u0026quot;这个中文词本身就很有意思：\n矩 = 方形的尺（《说文解字》：\u0026#34;矩，规矩之矩\u0026#34;） 阵 = 排列、阵法 矩阵 = 方方正正排列的数阵 古人用算筹在地上排出一个\u0026quot;方阵\u0026quot;来解方程，和今天我们在计算机里用矩阵做变换，思想一脉相承。\n从算筹到 GPU： 两千年前的数学家把算筹一根根摆在桌上做\u0026quot;矩阵运算\u0026rdquo;。今天的 GPU（图形处理器）每秒做几万亿次矩阵乘法。工具变了，数学没变。\nNVIDIA 的 A100 GPU 的核心卖点不是\u0026quot;跑游戏更流畅\u0026quot;——而是它内置了专门的 Tensor Core，专门加速矩阵乘法。AI 时代的芯片，本质上是一台超级矩阵计算机。\n动手实验 实验：矩阵变换的效果 import numpy as np # 原始点（一个三角形的三个顶点） triangle = np.array([ [0, 0], # 原点 [1, 0], # 右边 [0.5, 1], # 上方 ]) # 缩放矩阵：放大 2 倍 scale = np.array([[2, 0], [0, 2]]) # 旋转矩阵：逆时针旋转 90 度 rotate = np.array([[0, -1], [1, 0]]) # 翻转矩阵：水平翻转 flip = np.array([[-1, 0], [ 0, 1]]) for name, matrix in [(\u0026#34;缩放2倍\u0026#34;, scale), (\u0026#34;旋转90°\u0026#34;, rotate), (\u0026#34;水平翻转\u0026#34;, flip)]: result = triangle @ matrix.T # 每个点做矩阵变换 print(f\u0026#34;\\n{name}:\u0026#34;) for i, (orig, new) in enumerate(zip(triangle, result)): print(f\u0026#34; 点{i}: {orig} → {new}\u0026#34;) # 组合变换：先旋转再放大 combined = scale @ rotate # 矩阵乘法 = 变换叠加 result = triangle @ combined.T print(f\u0026#34;\\n先旋转90°再放大2倍（组合变换）:\u0026#34;) for i, (orig, new) in enumerate(zip(triangle, result)): print(f\u0026#34; 点{i}: {orig} → {new}\u0026#34;) 本篇小结 这篇文章讲了什么？ 一、矩阵 = 空间变形机\n输入一个向量，输出变换后的向量 不同的矩阵 = 不同的变换方式 二、旋转、缩放、翻转——矩阵的三板斧\n手机旋转照片、地图缩放、游戏视角——全是矩阵变换 三、矩阵乘法 = 变换的叠加\nA × B = 先做 B 变换，再做 A 变换 不满足交换律，因为变换顺序很重要 四、AI 的核心操作就是矩阵变换\nQKV 投影 = 三次矩阵变换 神经网络 = 一层层的矩阵变换链 五、《九章算术》的方程术\n中国人用算筹做\u0026quot;矩阵消元\u0026quot;，比高斯消元法早 1800 年 从算筹到 GPU，工具变了，数学没变 下一篇预告 矩阵变换是\u0026quot;确定的\u0026quot;——给定输入，输出完全确定。\n但现实世界充满了不确定性。明天会不会下雨？这个邮件是不是垃圾邮件？AI 生成下一个词时，到底选哪个？\n描述\u0026quot;不确定性\u0026quot;的数学工具叫概率。\n概率不是\u0026quot;猜\u0026quot;——概率是用数学管理无知。你不知道明天是否下雨，但你可以说\u0026quot;下雨的概率是 60%\u0026quot;，然后据此做出最优决策。AI 的每一次预测，都是在做概率判断。\n下一篇：看见数学（十三）：概率——拥抱不确定\n《看见数学》系列 — 从结绳记事到 AI，看见数学之美。\n本文首发于「AI 学习笔记」博客：https://Jason-Azure.github.io/ai-blog/\n微信公众号：AI-lab学习笔记\n系列文章完整列表见 标签：看见数学\n","permalink":"https://jason-azure.github.io/ai-blog/posts/see-math-12-matrices/","summary":"矩阵不是\u0026quot;一堆数排成方块\u0026quot;。矩阵是一个变换器——它可以旋转、缩放、投影整个空间。神经网络的每一层，就是一次矩阵变换。而两千年前的《九章算术》，已经在用矩阵解方程了。","title":"看见数学（十二）：矩阵——空间的变形术"},{"content":" 系列导航\n第一幕（5 篇）+ 第二幕（5 篇）→ 查看全部 ▹ 第十一篇：向量——给万物一个坐标 ▹ 第十二篇：矩阵——空间的变形术 ▸ 第十三篇（本文）：概率——拥抱不确定 ▹ 第十四篇：高维——超越想象力 ▹ 第十五篇：梯度下降——数学会学习 ▹ 第十六篇：终章——数学是人类的望远镜 第一章：赌桌上诞生的数学 1654 年，法国贵族梅雷骑士遇到一个问题：\n赌徒的困惑 两人赌博，约定先赢 3 局者拿走全部赌注。 现在 A 赢了 2 局，B 赢了 1 局。 比赛因故中断。 问：赌注该怎么分？ 梅雷骑士写信给数学家帕斯卡。帕斯卡又写信给费马。两个人的通信，催生了概率论。\n他们的回答：不是看\u0026quot;已经发生了什么\u0026quot;，而是看\u0026quot;接下来可能发生什么\u0026quot;。\nA 只差 1 局就赢。B 还差 2 局。 最多再打 2 局： 情况 1：A 赢 → A 胜（概率 1/2） 情况 2：B 赢, A 赢 → A 胜（概率 1/4） 情况 3：B 赢, B 赢 → B 胜（概率 1/4） A 获胜的概率 = 3/4，B 获胜的概率 = 1/4 所以赌注应该按 3:1 分配。 概率论的出发点不是\u0026quot;预测未来\u0026quot;，而是\u0026quot;在不确定中做出合理的决策\u0026quot;。\n一句话记住： 概率不是给赌徒用的。概率是在\u0026quot;不知道结果\u0026quot;的时候，做出\u0026quot;最不坏的选择\u0026quot;的数学工具。\n第二章：概率的直觉——从频率到信念 概率是什么？有两种理解方式：\n两种概率观 视角 含义 例子 频率派 重复实验无穷次，事件发生的比例 抛硬币 10000 次，大约 5000 次正面 → P = 0.5 贝叶斯派 你对一件事的信念程度 \u0026ldquo;我觉得明天下雨的概率是 60%\u0026rdquo; 频率派的概率很\u0026quot;客观\u0026quot;——需要可以重复的实验。但现实中很多事不可重复：明天会下雨吗？这个病人有多大可能康复？这封邮件是垃圾邮件的概率有多大？\n贝叶斯派说：概率是你的信念，而且信念可以更新。\n早上起来，你觉得今天下雨的概率是 30%（基于天气预报）。 走出门，看到乌云密布 → 你更新信念：概率上升到 70%。 又看到邻居带了伞 → 再更新：概率上升到 80%。 每一条新信息，都让你的判断更准确。 这种\u0026quot;看到新证据就更新概率\u0026quot;的方法，叫做贝叶斯更新。\n贝叶斯的故事： 托马斯·贝叶斯（1701-1761）是一位英国长老会牧师。他的论文在他去世后才由朋友发表。这位牧师大概没想到，他的方法会成为 21 世纪 AI 的基石——垃圾邮件过滤、医学诊断、自动驾驶、语言模型，全部建立在贝叶斯思想之上。\n一句话记住： 频率派说\u0026quot;概率是客观事实\u0026quot;，贝叶斯派说\u0026quot;概率是可以更新的信念\u0026quot;。AI 用的是贝叶斯思想——每看到一个新词，就更新对下一个词的\u0026quot;信念\u0026quot;。\n第三章：条件概率——\u0026ldquo;知道了 A，B 会变吗？\u0026rdquo; 概率最强大的工具是条件概率：在已知某件事发生的条件下，另一件事发生的概率。\n条件概率的直觉 一个班 40 个学生。 戴眼镜的：20 人 学编程的：10 人 又戴眼镜又学编程的：8 人 P(学编程) = 10/40 = 25% 但如果你已经知道这个学生戴眼镜呢？ P(学编程 | 戴眼镜) = 8/20 = 40% \u0026#34;知道他戴眼镜\u0026#34;这个信息， 让\u0026#34;他学编程的概率\u0026#34;从 25% 提升到了 40%。 这就是条件概率——新信息改变概率。 条件概率写作 P(B|A)，读作\u0026quot;在 A 发生的条件下，B 发生的概率\u0026quot;。\n这不是什么抽象概念——你每天都在用条件概率：\nP(堵车 | 周一早高峰) \u0026gt;\u0026gt; P(堵车 | 周日凌晨) P(迟到 | 没设闹钟) \u0026gt;\u0026gt; P(迟到 | 设了三个闹钟) 你的大脑时刻在做条件概率的计算，只是没写成公式。\n第四章：连接 AI——GPT 的每个字都是概率 现在来看概率在 AI 里的核心角色。\nGPT 生成文字的过程，就是反复做一件事：给定前面的所有词，预测下一个词的概率分布。\nGPT = 条件概率机器 输入：\u0026#34;今天天气真\u0026#34; GPT 计算：P(下一个词 | \u0026#34;今天天气真\u0026#34;) = 好 → 0.45 (45%) 不错 → 0.25 (25%) 差 → 0.10 (10%) 热 → 0.08 (8%) 冷 → 0.05 (5%) ...其他 → 0.07 (7%) 然后从这个概率分布中\u0026#34;抽样\u0026#34;一个词。 假设抽到了\u0026#34;好\u0026#34;。 接着计算：P(下一个词 | \u0026#34;今天天气真好\u0026#34;) = ， → 0.35 啊 → 0.20 ！ → 0.15 ... 如此循环，一个字一个字地生成。 这里有一个你在 第七篇（指数爆炸） 里学过的关键工具：softmax 函数。\n神经网络输出的是\u0026#34;原始分数\u0026#34;（logits）： 好: 3.2, 不错: 2.1, 差: 0.8, 热: 0.5, ... softmax 把它们变成概率（加起来等于 1）： 好: 0.45, 不错: 0.25, 差: 0.10, 热: 0.08, ... softmax 用的是什么？指数函数 e^x！ → 分数高的词被指数放大，分数低的词被压缩 → \u0026#34;赢家通吃\u0026#34;效应 还记得第八篇说的 temperature（温度）吗？\n温度控制\"创造力\" 温度 效果 适合 低 (0.1-0.3) 概率分布很\u0026quot;尖\u0026quot;，几乎总是选最高分的词 翻译、代码——需要准确 中 (0.7-1.0) 概率分布适度平坦，有一定随机性 聊天——自然但不乱来 高 (1.5-2.0) 概率分布很\u0026quot;平\u0026quot;，低概率词也有机会被选中 创意写作——需要意外 Temperature 不是改变\u0026quot;模型的知识\u0026quot;，而是改变\u0026quot;从概率分布中抽样\u0026quot;的方式。 同一个模型，温度不同，输出完全不同。这就是为什么 ChatGPT 有时候很严谨，有时候很\u0026quot;跳脱\u0026quot;。\n一句话记住： GPT 不\u0026quot;知道\u0026quot;下一个字是什么。它计算每个词的条件概率，然后掷骰子。它不是在\u0026quot;思考\u0026quot;，而是在做概率抽样。\n第五章：概率的古老智慧 概率思维在中国文化里有深远的根基。\n《孙子兵法》的概率思维： \u0026ldquo;知彼知己，百战不殆\u0026rdquo;——不是说一定赢，而是说赢的概率极高。\u0026ldquo;不殆\u0026quot;不是\u0026quot;必胜\u0026rdquo;，是\u0026quot;不会有危险\u0026quot;。孙子的战略思想本质上就是概率思维：增大胜率，减小败率。\n诸葛亮的\u0026quot;锦囊妙计\u0026quot;： 不是未卜先知，而是穷举可能的情况，提前为每种情况准备对策——这就是条件概率的思维。\u0026ldquo;如果敌军从水路来（条件 A），则打开第一个锦囊（策略 B₁）。如果敌军从陆路来（条件 C），则打开第二个锦囊（策略 B₂）。\u0026rdquo;\n\u0026ldquo;谋事在人，成事在天\u0026rdquo;： 这不是宿命论，而是对概率本质的深刻理解——你只能控制概率（谋事在人），不能控制结果（成事在天）。好的决策不是保证好的结果，而是让好的结果更可能发生。\n动手实验 实验：模拟 GPT 的\u0026quot;下一个词预测\u0026quot; import random # 简化的\u0026#34;语言模型\u0026#34;：给定前文，预测下一个词的概率分布 model = { \u0026#34;今天\u0026#34;: {\u0026#34;天气\u0026#34;: 0.4, \u0026#34;我\u0026#34;: 0.3, \u0026#34;是\u0026#34;: 0.2, \u0026#34;很\u0026#34;: 0.1}, \u0026#34;今天天气\u0026#34;: {\u0026#34;真\u0026#34;: 0.5, \u0026#34;不\u0026#34;: 0.3, \u0026#34;很\u0026#34;: 0.2}, \u0026#34;今天天气真\u0026#34;: {\u0026#34;好\u0026#34;: 0.5, \u0026#34;不错\u0026#34;: 0.25, \u0026#34;差\u0026#34;: 0.1, \u0026#34;热\u0026#34;: 0.15}, } def sample(probs, temperature=1.0): \u0026#34;\u0026#34;\u0026#34;从概率分布中抽样（带温度控制）\u0026#34;\u0026#34;\u0026#34; import math words = list(probs.keys()) # 应用温度 logits = [math.log(p) / temperature for p in probs.values()] # softmax max_l = max(logits) exps = [math.exp(l - max_l) for l in logits] total = sum(exps) adjusted = [e / total for e in exps] # 抽样 r = random.random() cumsum = 0 for word, prob in zip(words, adjusted): cumsum += prob if r \u0026lt; cumsum: return word return words[-1] # 不同温度的生成效果 for temp in [0.3, 1.0, 2.0]: print(f\u0026#34;\\n温度 = {temp}:\u0026#34;) for i in range(5): text = \u0026#34;今天\u0026#34; while text in model: next_word = sample(model[text], temperature=temp) text += next_word print(f\u0026#34; {text}\u0026#34;) 本篇小结 这篇文章讲了什么？ 一、概率论诞生于赌桌\n帕斯卡和费马的通信，不是为了赢钱，而是为了在不确定中做合理决策 二、频率 vs 贝叶斯\n频率派看重复实验的比例，贝叶斯派看可更新的信念 AI 用的是贝叶斯思想 三、条件概率 = 新信息改变概率\nP(B|A)：知道 A，B 的概率就变了 你每天都在做条件概率计算 四、GPT = 条件概率机器\n给定前文，计算每个词的概率，然后抽样 softmax 把分数变成概率，temperature 控制随机性 五、概率的古老智慧\n\u0026ldquo;知彼知己，百战不殆\u0026rdquo; = 增大胜率 好的决策不保证好的结果，只让好的结果更可能 下一篇预告 向量可以有 2 维、3 维……但 AI 里的向量动辄 768 维、几千维。\n人类能直觉理解的空间最多到 3 维。超过 3 维的空间叫高维空间。\n高维空间有很多反直觉的性质：几乎所有点都在\u0026quot;表面\u0026quot;上、随机的两个向量几乎总是\u0026quot;差不多垂直\u0026quot;、数据在高维里变得极度稀疏……\n这些不是数学家的游戏——它们直接影响 AI 的设计。理解高维，就理解了为什么深度学习需要那么多数据，为什么降维那么重要。\n下一篇：看见数学（十四）：高维——超越想象力\n《看见数学》系列 — 从结绳记事到 AI，看见数学之美。\n本文首发于「AI 学习笔记」博客：https://Jason-Azure.github.io/ai-blog/\n微信公众号：AI-lab学习笔记\n系列文章完整列表见 标签：看见数学\n","permalink":"https://jason-azure.github.io/ai-blog/posts/see-math-13-probability/","summary":"概率不是\u0026quot;猜\u0026quot;——概率是用数学管理无知。赌徒的信件催生了概率论，贝叶斯牧师教会了 AI 如何\u0026quot;更新信念\u0026quot;，而 GPT 每写一个字，都是在从概率分布里抽样。","title":"看见数学（十三）：概率——拥抱不确定"},{"content":" 系列导航\n第一幕（5 篇）+ 第二幕（5 篇）→ 查看全部 ▹ 第十一篇：向量——给万物一个坐标 ▹ 第十二篇：矩阵——空间的变形术 ▹ 第十三篇：概率——拥抱不确定 ▸ 第十四篇（本文）：高维——超越想象力 ▹ 第十五篇：梯度下降——数学会学习 ▹ 第十六篇：终章——数学是人类的望远镜 第一章：你无法想象的空间 第十一篇 里我们说过：一杯咖啡是 3 维向量，一个游戏角色是 5 维，一个词向量是 768 维。\n你可以画出 1 维（数轴）、2 维（平面）、3 维（立体）。\n但 4 维呢？10 维呢？768 维呢？\n想象力的极限 1 维：一条线上的点 你能想象 ✓ 2 维：平面上的点 你能想象 ✓ 3 维：空间中的点 你能想象 ✓ 4 维：??? 你开始困难了 10 维：??? 完全无法想象 768 维：GPT 的词向量空间 ??? 但数学不需要\u0026#34;想象\u0026#34;。 数学只需要\u0026#34;计算\u0026#34;。 768 维的向量 = 768 个数字排成一列。 两个 768 维向量的距离 = 对应位置差的平方和再开根号。 计算方法和 2 维、3 维完全一样—— 只是多了 765 个维度。 这就是数学的超能力：它不受人类想象力的限制。 你画不出 768 维的空间，但你可以精确地在里面计算距离、角度、相似度。\n一句话记住： 高维不是\u0026quot;更多的方向\u0026quot;，高维是\u0026quot;更多的特征\u0026quot;。768 维的词向量不是\u0026quot;768 个方向\u0026quot;，而是\u0026quot;这个词在 768 个方面的属性\u0026quot;。\n第二章：高维的三大反直觉 高维空间不是\u0026quot;把三维空间再多加几个方向\u0026quot;。它有很多违背直觉的性质。\n反直觉一：所有体积都在\u0026quot;壳\u0026quot;上 橘子 vs 高维球 一个橘子（3 维球）： 90% 的体积在外层 30% 的厚度里 剥掉皮，里面还有很多果肉 一个 100 维的\u0026#34;球\u0026#34;： 99.99999...% 的体积集中在最外层的薄壳上 \u0026#34;内部\u0026#34;几乎是空的 维度越高，体积越集中在表面。 这意味着什么？在高维空间中随机取一个点，它几乎一定在\u0026quot;表面\u0026quot;附近。高维空间的\u0026quot;内部\u0026quot;几乎不存在。\n反直觉二：随机向量几乎都\u0026quot;垂直\u0026quot; 高维的垂直 2 维空间：随机选两个方向，它们的夹角随机分布 3 维空间：随机选两个方向，它们更可能接近垂直 100 维空间：随机选两个方向，它们几乎一定接近 90° 768 维空间：任意两个随机向量的余弦相似度 ≈ 0 直觉上： 维度越高，\u0026#34;方向\u0026#34;越多， 两个随机方向碰巧相似的概率越小。 这解释了为什么 第十一篇 的词向量能工作：在 768 维空间里，有足够多的\u0026quot;独立方向\u0026quot;，让每个词都能找到自己独特的位置，不会互相\u0026quot;挤\u0026quot;在一起。\n反直觉三：数据变得极度稀疏 维度灾难（Curse of Dimensionality） 把一条线（1 维）分成 10 段，需要 10 个点来\u0026#34;填满\u0026#34; 把一个正方形（2 维）分成 10×10 格，需要 100 个点 把一个立方体（3 维）分成 10×10×10 格，需要 1,000 个点 把一个 10 维空间分成 10^10 格，需要 100 亿个点 把一个 100 维空间分成 10^100 格，需要 ... 10^100 = 1 后面跟 100 个零 \u0026gt; 整个宇宙的原子数量（约 10^80） 哪怕每格只放一个数据点， 你需要的数据量也超过了宇宙的原子数。 这就是\u0026quot;维度灾难\u0026quot;——维度越高，需要的数据量呈指数级增长。\n这就是为什么 AI 需要那么多训练数据。768 维的空间太空旷了，如果数据不够多，模型看到的只是一片\u0026quot;荒漠\u0026quot;，无法学到有意义的模式。\n一句话记住： 维度灾难告诉我们：高维空间大得超乎想象，数据在里面像沙漠里的几粒沙。所以 AI 要么需要海量数据，要么需要\u0026quot;降维\u0026quot;。\n第三章：降维——看见高维的\u0026quot;影子\u0026quot; 既然人类想象不了高维，也缺乏足够的数据来填满它——怎么办？\n降维。\n降维的直觉 想象你站在一栋高楼上看下面的人群。 3D 的人群 → 2D 的俯视图 你丢失了身高信息，但保留了每个人的位置关系： 谁挨着谁、谁在哪个区域、哪里人多人少 ——这些\u0026#34;结构\u0026#34;在降维后依然可见。 AI 的降维也是同样的思路： 把 768 维的数据投影到 2 维 丢失一些细节 但保留\u0026#34;谁和谁相似\u0026#34;的结构 常见的降维方法：\n方法 思想 用途 PCA 找到数据方差最大的方向，只保留最重要的几个维度 去噪、压缩 t-SNE 保留\u0026quot;邻近关系\u0026quot;——近的还是近，远的还是远 可视化词向量 UMAP 类似 t-SNE，但更快 大规模数据可视化 降维让你能\u0026quot;看见\u0026quot;高维数据。那些词向量可视化图（国王和女王靠在一起，男人和女人靠在一起）就是把 768 维降到 2 维后画出来的。\n第四章：连接 AI——为什么 Transformer 要用高维？ 既然高维有\u0026quot;维度灾难\u0026quot;，为什么 AI 偏偏要用 768 维、1024 维、甚至 12288 维？\n因为高维 = 表达能力。\n维度 = 语言的丰富度 如果用 2 维来描述一个词： 你只能表达两个方面，比如\u0026#34;积极/消极\u0026#34;和\u0026#34;具体/抽象\u0026#34; \u0026#34;国王\u0026#34;和\u0026#34;女王\u0026#34;几乎无法区分 如果用 768 维来描述一个词： 你有 768 个独立的方面来刻画含义 性别、权力、时代、具体性、情感色彩、正式程度... 每个方面贡献一点信息 合起来就精确地描述了一个词的全部含义 GPT-4 用的维度可能高达 12288 → 12288 个维度来编码人类语言的全部复杂性 AI 对抗维度灾难的方法不是\u0026quot;降低维度\u0026quot;，而是\u0026quot;用海量数据来填满高维空间\u0026quot;。\nGPT-3 的训练数据：几千亿个词 GPT-4 的训练数据：可能上万亿个词 这么多数据，才勉强让 768 维空间 不至于太\u0026#34;空旷\u0026#34;。 还有一个精妙的设计：第十二篇 讲的矩阵变换（QKV 投影），本质上就是一种有监督的降维——把 768 维的通用空间投影到更小的子空间，只保留与当前任务相关的信息。\n一句话记住： 高维空间是一把双刃剑：维度越高，表达能力越强，但需要的数据也越多。AI 的核心挑战之一，就是在\u0026quot;表达力\u0026quot;和\u0026quot;数据需求\u0026quot;之间找平衡。\n第五章：\u0026ldquo;看不见\u0026quot;才是常态 这一篇是第三幕的核心隐喻：\n人类只能\u0026quot;看见\u0026quot;三维。 但数学能让你在 768 维空间里计算距离、找到\u0026quot;邻居\u0026rdquo;、发现\u0026quot;方向\u0026quot;。你不需要\u0026quot;看见\u0026quot;高维空间——你只需要在里面计算。\n数学就是给你一双\u0026quot;看不见之眼\u0026quot;。\n庄子说过：\u0026ldquo;吾生也有涯，而知也无涯。\u0026rdquo; 人类的感官有限——只能看见三维、只能听到 20Hz-20kHz、只能感知到很窄的电磁波谱。但数学没有这些限制。数学可以描述任意维度、任意频率、任意尺度。数学是人类感官的延伸。\n动手实验 实验：高维空间的反直觉 import random import math def random_vector(dim): \u0026#34;\u0026#34;\u0026#34;生成一个随机单位向量\u0026#34;\u0026#34;\u0026#34; v = [random.gauss(0, 1) for _ in range(dim)] norm = math.sqrt(sum(x**2 for x in v)) return [x / norm for x in v] def cosine_sim(a, b): \u0026#34;\u0026#34;\u0026#34;余弦相似度\u0026#34;\u0026#34;\u0026#34; dot = sum(x*y for x, y in zip(a, b)) return dot # 已经是单位向量，所以点积就是余弦 # 在不同维度下，随机向量的余弦相似度 for dim in [2, 10, 100, 768]: sims = [] for _ in range(1000): a = random_vector(dim) b = random_vector(dim) sims.append(abs(cosine_sim(a, b))) avg = sum(sims) / len(sims) print(f\u0026#34;{dim:\u0026gt;4} 维: 平均 |余弦相似度| = {avg:.4f}\u0026#34;) # 你会看到：维度越高，随机向量越接近垂直（相似度→0） 本篇小结 这篇文章讲了什么？ 一、人类想象力止步于三维\n但数学不需要\u0026quot;想象\u0026quot;，只需要\u0026quot;计算\u0026quot; 768 维的运算法则和 3 维完全一样 二、高维的三大反直觉\n体积集中在薄壳上、随机向量几乎垂直、数据极度稀疏 三、降维——看见高维的影子\nPCA、t-SNE、UMAP 把高维数据投影到 2D 来可视化 四、AI 需要高维来表达语言的复杂性\n768 维 = 768 个独立方面来刻画词义 海量数据对抗维度灾难 五、数学是\u0026quot;看不见之眼\u0026quot;\n你不需要看见高维空间，你只需要在里面计算 下一篇预告 我们有了向量（描述事物）、矩阵（变换空间）、概率（管理不确定）、高维空间（容纳复杂性）。\n还差最后一块拼图：AI 怎么\u0026quot;学习\u0026quot;？\n一个新生的 AI 模型，参数都是随机的，输出一团乱码。但经过训练后，它能写诗、翻译、对话。\n从\u0026quot;一团乱码\u0026quot;到\u0026quot;能写诗\u0026quot;，中间发生了什么？\n答案是：梯度下降——一种让数学自己\u0026quot;找到答案\u0026quot;的方法。而它的核心，就是 第九篇 里学过的导数。\n下一篇：看见数学（十五）：梯度下降——数学会学习\n《看见数学》系列 — 从结绳记事到 AI，看见数学之美。\n本文首发于「AI 学习笔记」博客：https://Jason-Azure.github.io/ai-blog/\n微信公众号：AI-lab学习笔记\n系列文章完整列表见 标签：看见数学\n","permalink":"https://jason-azure.github.io/ai-blog/posts/see-math-14-high-dimensions/","summary":"人类的直觉止步于三维。但 AI 生活在 768 维甚至更高的空间里。高维空间有很多反直觉的性质：几乎所有体积都在\u0026quot;壳\u0026quot;上、随机向量几乎都垂直、数据变得极度稀疏。理解高维，就理解了深度学习为什么需要那么多数据。","title":"看见数学（十四）：高维——超越想象力"},{"content":" 系列导航\n第一幕（5 篇）+ 第二幕（5 篇）→ 查看全部 ▹ 第十一篇：向量——给万物一个坐标 ▹ 第十二篇：矩阵——空间的变形术 ▹ 第十三篇：概率——拥抱不确定 ▹ 第十四篇：高维——超越想象力 ▸ 第十五篇（本文）：梯度下降——数学会学习 ▹ 第十六篇：终章——数学是人类的望远镜 第一章：蒙眼下山 想象你被蒙上眼睛，站在一座山上。你的目标是走到最低处（山谷）。\n你看不见地形，但你能感觉脚下的坡度。\n蒙眼下山的策略 1. 感受脚下哪个方向最陡（往下倾斜最厉害） 2. 朝那个方向走一小步 3. 再感受，再走一步 4. 重复，直到四面都不再往下倾斜——你到了谷底 这就是梯度下降。 把\u0026#34;高度\u0026#34;换成\u0026#34;误差\u0026#34;—— 把\u0026#34;位置\u0026#34;换成\u0026#34;模型参数\u0026#34;—— 把\u0026#34;感受坡度\u0026#34;换成\u0026#34;求导数\u0026#34;—— 你就得到了 AI 的学习算法。 梯度下降 = 顺着最陡的方向，一步步走向误差最小的地方。\n一句话记住： AI 的\u0026quot;学习\u0026quot;不是人类那种\u0026quot;理解\u0026quot;。它就是反复做一件事：计算当前的误差，算出哪个方向能让误差变小，然后朝那个方向调整参数。重复几十亿次。\n第二章：损失函数——\u0026ldquo;你错了多少？\u0026rdquo; 在下山之前，你需要知道\u0026quot;高度\u0026quot;是什么。在 AI 里，\u0026ldquo;高度\u0026quot;对应的是损失函数（Loss Function）——衡量模型的预测和正确答案之间的差距。\n损失函数 = \"你错了多少\" 训练数据： \u0026#34;今天天气真___\u0026#34; 正确答案：\u0026#34;好\u0026#34; 模型预测： 好 → 0.10 (10%) ← 正确答案只给了 10%？ 差 → 0.30 (30%) 热 → 0.60 (60%) 损失 = 很大！（模型给正确答案的概率太低了） 经过训练后： 好 → 0.70 (70%) ← 正确答案概率上升 差 → 0.10 (10%) 热 → 0.20 (20%) 损失 = 很小（模型学对了） 损失越大 = 预测越差 = 还在山上。 损失越小 = 预测越准 = 接近谷底。\n训练的目标就是：找到一组参数，让损失函数的值尽可能小。\nGPT 有几十亿个参数。损失函数是一个\u0026quot;几十亿维空间里的地形\u0026rdquo;。你要在这个超高维地形中找到最低点。\n第三章：梯度——\u0026ldquo;最陡的方向\u0026rdquo; 第九篇（微积分上） 里你学过：导数告诉你\u0026quot;变化的速度\u0026quot;。\n函数 f(x) = x² 导数 f\u0026#39;(x) = 2x 当 x = 3 时：f\u0026#39;(3) = 6 意思：x 增加一点点，f(x) 会增加约 6 倍那么多 → 函数在这里\u0026#34;上坡\u0026#34; 当 x = -3 时：f\u0026#39;(-3) = -6 意思：x 增加一点点，f(x) 会减少约 6 倍 → 函数在这里\u0026#34;下坡\u0026#34; 导数的符号 = 坡的方向 导数的大小 = 坡的陡度 在高维空间里，\u0026ldquo;导数\u0026quot;变成了梯度（gradient）——每个参数方向的偏导数组成的向量。\n梯度 = 高维版的\"坡度\" 模型有 3 个参数 [w1, w2, w3] 梯度 = [∂L/∂w1, ∂L/∂w2, ∂L/∂w3] 翻译： ∂L/∂w1 = 如果只动 w1，损失会怎么变 ∂L/∂w2 = 如果只动 w2，损失会怎么变 ∂L/∂w3 = 如果只动 w3，损失会怎么变 梯度指向\u0026#34;损失增大最快\u0026#34;的方向。 所以沿着\u0026#34;梯度的反方向\u0026#34;走 = 损失减小最快。 梯度下降的更新规则：\n新参数 = 旧参数 - 学习率 × 梯度 学习率 = 步长（每次走多远） 太大 → 走过头，来回震荡 太小 → 走太慢，训练要花一辈子 刚好 → 稳定地走向谷底 一句话记住： 梯度就是\u0026quot;当前位置最陡的上坡方向\u0026rdquo;。AI 做的是\u0026quot;反着走\u0026quot;——沿梯度下降，一步步减小误差。\n第四章：连接 AI——反向传播 现在来看 AI 实际是怎么\u0026quot;学习\u0026quot;的。\nGPT 有几十亿个参数。要对每个参数求梯度，最笨的方法是每次微调一个参数，看损失怎么变——这需要几十亿次前向计算。太慢了。\n1986 年，Rumelhart、Hinton 和 Williams 发表了反向传播算法（Backpropagation），用链式法则一次性算出所有梯度。\nAI 的训练循环 重复几十亿次： ① 前向传播：输入数据，通过网络得到预测 ② 计算损失：预测 vs 正确答案 → 误差多大？ ③ 反向传播：从输出往回走，用链式法则算每个参数的梯度 ④ 更新参数：参数 = 参数 - 学习率 × 梯度 就这四步。没有更多了。 GPT 的训练，就是把这四步重复几十亿次。 每次用一小批数据，每次让误差小一点点。 几十亿次之后，模型就学会了写诗、翻译、对话。 链式法则——这是高中就学过的微积分法则，现在成了深度学习的心脏：\ny = f(g(x)) dy/dx = f\u0026#39;(g(x)) × g\u0026#39;(x) \u0026#34;外层对中间层的导数\u0026#34; × \u0026#34;中间层对内层的导数\u0026#34; 神经网络有很多层。反向传播就是 从最后一层开始，一层层用链式法则 把梯度\u0026#34;传回去\u0026#34;，直到传到第一层。 这就是为什么它叫\u0026quot;反向\u0026quot;传播——信号正向走（输入→输出），梯度反向走（输出→输入）。\n一句话记住： AI 不会\u0026quot;顿悟\u0026quot;。它靠的是：算误差、求梯度、小步调参、重复几十亿次。这套方法叫梯度下降 + 反向传播。就这么简单——但简单的东西重复足够多次，就能产生智能。\n第五章：所有工具在这里汇合 回望整个第三幕，你会发现：这一篇把前面所有工具都用上了。\n知识地图 你学过的概念 在梯度下降里的角色 向量（第11篇） 参数是向量，梯度是向量 矩阵（第12篇） 神经网络的每一层是矩阵变换 概率（第13篇） 损失函数衡量预测概率和真实概率的差距 高维（第14篇） 参数空间是几十亿维的，梯度下降在里面\u0026quot;摸索\u0026quot; 导数（第9篇） 梯度 = 每个参数的偏导数 函数（第6篇） 神经网络是一个超级复杂的复合函数 中国古语： \u0026ldquo;不积跬步，无以至千里。\u0026rdquo; 梯度下降就是这句话的数学版——每次只走一小步（学习率 × 梯度），但走几十亿步后，就从\u0026quot;一团乱码\u0026quot;走到了\u0026quot;能写诗\u0026quot;。\n动手实验 实验：用梯度下降找最低点 # 目标：找到 f(x) = (x - 3)² + 1 的最小值 # 显然最小值在 x = 3，但假装我们不知道 def f(x): return (x - 3)**2 + 1 def gradient(x): return 2 * (x - 3) # f\u0026#39;(x) = 2(x-3) x = 0.0 # 随机起点 lr = 0.1 # 学习率 print(\u0026#34;梯度下降过程：\u0026#34;) for step in range(20): loss = f(x) grad = gradient(x) x = x - lr * grad # 核心公式！ if step % 4 == 0: print(f\u0026#34; 第{step:2d}步: x={x:.4f}, 损失={loss:.4f}, 梯度={grad:.4f}\u0026#34;) print(f\u0026#34;\\n最终: x={x:.4f} (真实最小值在 x=3)\u0026#34;) print(f\u0026#34;最终损失: {f(x):.6f} (真实最小值=1)\u0026#34;) 本篇小结 这篇文章讲了什么？ 一、蒙眼下山 = 梯度下降\n感受坡度、朝最陡的下坡方向走一步、重复 二、损失函数 = \u0026ldquo;你错了多少\u0026rdquo;\n预测和正确答案的差距。训练目标 = 让损失最小 三、梯度 = 高维版的坡度\n每个参数方向的偏导数组成的向量 沿梯度反方向走 = 误差减小最快 四、反向传播 = 链式法则\n前向传播 → 算损失 → 反向传梯度 → 更新参数 GPT 的训练就是这四步重复几十亿次 五、所有工具在这里汇合\n向量、矩阵、概率、高维、导数——全部用上了 下一篇预告 十五篇走下来，从结绳记事到梯度下降，从一万年前到今天。\n最后一篇，我们不学新概念。我们回望。\n数学到底是什么？它从哪里来？它要到哪里去？\n从古巴比伦的泥板到 GPT 的参数矩阵，人类一直在做同一件事——用抽象的符号，描述看不见的规律。数学不是发明的，数学是发现的。而 AI，是数学最新的、最惊艳的\u0026quot;应用\u0026quot;。\n下一篇（终章）：看见数学（十六）：终章——数学是人类的望远镜\n《看见数学》系列 — 从结绳记事到 AI，看见数学之美。\n本文首发于「AI 学习笔记」博客：https://Jason-Azure.github.io/ai-blog/\n微信公众号：AI-lab学习笔记\n系列文章完整列表见 标签：看见数学\n","permalink":"https://jason-azure.github.io/ai-blog/posts/see-math-15-gradient/","summary":"AI 的\u0026quot;学习\u0026quot;其实是一个数学过程：计算误差、求导数、沿梯度方向调整参数。梯度下降就是\u0026quot;在高维山谷里摸索下山\u0026quot;。第九篇的导数、第十一篇的向量、第十二篇的矩阵——所有工具在这里汇合。","title":"看见数学（十五）：梯度下降——数学会学习"},{"content":"从一个日常经验开始 你有没有过这种体验——\n打开一本教科书，前三页还能跟上，到第四页突然看不懂了。每个字你都认识，但连在一起就变成了噪音。你翻回去重读，还是不行。于是你合上书，换了一本\u0026quot;入门版\u0026quot;，同样的知识换一种讲法，突然就懂了。\n信息没有变。书里写的还是同一件事。变的是你能不能处理它。\n现在问一个稍微奇怪的问题：那本你看不懂的教科书，对你来说，信息量是多少？\nShannon 的信息论会说：和入门版一样多。信息量是数据本身的属性，和谁在读无关。\n但你的直觉说：不对。那本我看不懂的书，对我来说信息量接近于零——因为我什么都没学到。\n你的直觉是对的。Shannon 的理论也没错。矛盾出在一个被忽略了 78 年的假设上。\nShannon 漏掉了什么 Claude Shannon 在 1948 年创立了信息论。这是 20 世纪最伟大的数学成就之一——它定义了\u0026quot;信息\u0026quot;是什么，证明了压缩、预测和理解在数学上是同一件事，奠定了整个现代通信工业的基础。\n我在之前的 信息论文章 里花了一整篇来讲这件事，在 开篇语 里把\u0026quot;压缩即智能\u0026quot;这五个字当作这个系列的基石。\n但 Shannon 解决的问题是通信——我这端有一段数据，怎么通过一根嘈杂的电话线传到你那端，不丢失、不出错。\n对这个问题来说，\u0026ldquo;谁在收\u0026quot;不重要——你是人还是机器，收到的比特数是一样的。所以 Shannon 隐式地假设了观察者有无限的计算能力。这个假设在通信领域完全无害，甚至很优雅。\n但今天的核心问题变了。不再是\u0026quot;怎么传数据\u0026rdquo;，而是——\n给一堆数据，能从里面学到多少有用的东西？\n这是一个根本不同的问题。在这个问题里，\u0026ldquo;谁在学\u0026quot;变得至关重要。同样的数据，GPT-2 和 GPT-4 学到的东西不同；人类和 LLM 学到的也不同。甚至同一个人，精力充沛和疲惫不堪时，从同样的数据中学到的也不同。\nShannon 的框架里，没有地方放\u0026quot;学习者的能力\u0026quot;这个变量。\n78 年来这不是问题——因为我们主要在做通信。但自从 LLM 出现，这个缺失就开始挡路了。\n2026 年 1 月，CMU 和 NYU 的六位研究者（Finzi, Qiu, Jiang 等人）在一篇名为 \u0026ldquo;From Entropy to Epiplexity\u0026rdquo; 的论文中（arXiv: 2601.03220），正式补上了这个缺口。\n在讲他们怎么补的之前，我想先让你感受一下这个缺口到底有多大。\n三个让人不安的事实 事实一：从\u0026quot;无\u0026quot;中创造\u0026quot;有\u0026rdquo; 2017 年 12 月 5 日，DeepMind 发了一篇论文。AlphaZero——一个从零开始、仅靠自我对弈的 AI——用 4 小时学会了国际象棋，然后击败了人类花 40 年调教出来的最强引擎 Stockfish。\nAlphaZero 的输入是什么？国际象棋的规则——几百行代码，几 KB 大小。它的输出？需要数十兆字节权重才能存储的超人棋力。那些前所未见的弃子攻击、匪夷所思的开局创新——象棋界的人看到后说\u0026quot;这不像机器下的棋，这像是来自外星文明\u0026quot;。\n问题来了：这些知识从哪里来的？\nShannon 的信息论说：确定性变换不能增加信息。规则进去，规则出来，信息量守恒。AlphaZero 没有从外部获取任何数据。所以按 Shannon 的理论，它不应该产生新信息。\n但几十兆字节的超人棋力，显然不是\u0026quot;没有新信息\u0026quot;。\n事实二：顺序不应该重要，但它重要 论文里引用了一段 Ilya Sutskever（OpenAI 联合创始人）的话，让我印象很深：\n\u0026ldquo;你在读一本推理小说。读到某一页，文字揭示了凶手的身份。如果模型能预测出那个名字……那它一定是从前面的线索中推理出了谁是凶手。\u0026rdquo;\n但写书的人不需要做这个推理。作者先选好了凶手，再倒过来编织线索。写作方向和阅读方向是反的——一个轻松写意，一个烧脑至极。\n同样的故事，从结局倒着读，和从开头正着读，包含的\u0026quot;信息\u0026quot;一样吗？\nShannon 说：一样。信息量和顺序无关，这是信息论的基本性质。\n$$H(X, Y) = H(X) + H(Y|X) = H(Y) + H(X|Y)$$\n但做 LLM 训练的人都知道：英语文本正着建模比倒着建模效果好得多。更极端的例子——两个大素数 p 和 q，算乘积 N = p × q 一秒搞定；反过来给你 N 让你分解？整个密码学工业建立在\u0026quot;这件事算不出来\u0026quot;的基础上。\n同样的信息，调换一下方向，学习难度天壤之别。\n事实三：学生可以比老师更聪明 Conway 的生命游戏——可能是最著名的\u0026quot;涌现\u0026quot;案例。规则简单到只需要三行：\n对 每 个 活 活 否 细 邻 邻 则 胞 居 居 ： → = = 死 3 2 → 且 自 活 己 活 → 活 但从这三行规则出发，会涌现出\u0026quot;滑翔机\u0026quot;（一种会斜向移动的结构）、\u0026ldquo;枪\u0026rdquo;（周期性发射滑翔机的装置）、甚至理论上的通用计算机。\n如果你训练一个 LLM 来预测生命游戏的演化，它必须学到这些涌现概念——否则它没法做出好的预测。但这些概念完全不在那三行规则里。\n模型学到的内部程序，比生成数据的程序复杂得多。这违反了\u0026quot;模型最多只能学到数据源的水平\u0026quot;这个直觉。\n同一串数字，你看到了什么？ 这三个事实指向同一个裂缝。要理解它，先看一个你每天都在经历的现象。\n你手机上的每一次加密通信——微信消息、银行转账、HTTPS 网页——都依赖伪随机数生成器。原理很简单：给一个短短的\u0026quot;种子\u0026quot;（比如数字 42），通过确定性算法，吐出一长串看起来完全无规律的数字。\n如果 Shannon 本人来看这串数字，他会说：信息量等于种子的长度，几十个 bit 而已。因为存在一个程序能完美重现整个序列——种子加算法，搞定。\n但如果你把这串数字交给世界上最强的 AI，让它看前一万个数字，预测第一万零一个？\n它做不到。\n不是模型不够大，不是训练不够久。而是在有限时间内，不存在任何算法能区分这串伪随机数和真正的随机数。这是现代密码学的基石——如果谁能做到，你的银行账户、你的微信聊天记录、全世界的加密系统，全部裸奔。\n对有无限算力的 Shannon 观察者：这串数字几乎不包含信息（一个短种子而已）。\n对有限算力的你我和 LLM：这串数字就是完全随机的，每一位都是全新的、不可预测的信息。\n同一个对象。同一串 bit。因为观察者的算力不同，\u0026ldquo;包含多少信息\u0026quot;完全不同。\n这就是 Shannon 漏掉的东西：信息不是数据的固有属性，而是数据和观察者之间的关系。\n损失曲线里藏着答案 论文提出的核心概念叫 epiplexity（认知复杂度）。名字有点唬人，但直觉非常简单——简单到可以用一张图说清楚。\n如果你训练过 AI 模型（或者哪怕只是看过训练过程的截图），你一定见过这样的损失曲线：一开始 loss 很高，然后慢慢下降，最后趋于平稳。\n论文说：这条曲线天然地把数据里的信息切成了两半。\n上半部分——loss 下降的那部分面积——是模型通过训练真的学到了的东西。语法规则、逻辑关系、因果常识……所有让模型变\u0026quot;聪明\u0026quot;的结构性知识。论文给它起了个名字：epiplexity。\n下半部分——loss 不再下降后的残余——是模型学完了所有能学的之后，仍然无法预测的随机噪声。明天的天气精确到每一朵云的形状、下一个用户会打什么错别字——这些信息量巨大，但没有可学习的规律。论文叫它：时间有界熵。\nShannon 的经典理论只看总面积——它不区分这两部分。但对实际的 AI 训练、对人类学习来说，我们真正关心的只有蓝色区域——那些能被学到、能被复用、能被迁移到新任务的结构。\n一个直觉类比：你读一本书。书里的信息分两种——你读完后记住并理解的部分（epiplexity），和你怎么也记不住的随机细节，比如第 137 页第 3 行第 5 个字（时间有界熵）。总信息量一样，但前者才是你真正\u0026quot;学到\u0026quot;的。\n回到那三个不安的事实 有了 epiplexity，前面那三个让人不安的事实就都有解释了。\n计算可以创造结构 论文用细胞自动机做了一个漂亮的实验。\n什么是细胞自动机？想象一排格子，每个格子只有黑白两种颜色。每一步，每个格子根据自己和左右邻居的颜色，按一个固定规则翻转。规则极其简单——只有一行逻辑。但不同的规则产生了天壤之别的结果：\n规则 15：简单的条纹，像壁纸图案。模型一眼看穿。就像一首只有 Do Re Mi 三个音符的练习曲——没什么可学的。\n规则 30：一片混沌，看不出任何规律。模型训练到天荒地老也无法降低 loss。这就是我们刚才说的伪随机数的原型——确定性过程产生了（对有限观察者来说）完全随机的结果。信息量巨大，但全是噪声。\n规则 54：最有意思——复杂但不混乱。你仔细看，能看到一些\u0026quot;粒子\u0026quot;在移动、碰撞、产生新粒子。模型的 loss 缓慢但稳定地下降。它在一点一点发现这些隐藏的规律。这就是高 epiplexity 的数据——充满了值得学习的结构。\n三种规则的输入完全相同，程序复杂度也几乎一样。但对有限算力的模型来说，它们创造出了截然不同的\u0026quot;可学信息\u0026rdquo;。\n所以 AlphaZero 不神秘了。国际象棋的规则很简单，但通过海量计算（自我对弈），这个确定性过程为有限观察者创造了大量结构性信息。Shannon 说\u0026quot;信息没有增加\u0026quot;——对无限算力的上帝来说确实如此。但对我们这些有限观察者来说，那些弃子攻击和开局创新，就是被计算挖掘出来的、全新的结构。\n困难的方向教会你更多 论文在国际象棋上做了一个让我拍案叫绝的实验。\n同一批棋谱，两种喂法：\n正序：先给棋步（1.e4 e5 2.Nf3\u0026hellip;），再给最终棋盘状态 逆序：先给最终棋盘状态，再给棋步 正序就像看直播——沿着棋步走，最终棋盘可以一步步算出来。逆序就像推理小说倒着读——给你结局，让你反推过程。\n结果？逆序更难学，loss 更高。但模型学到了更多的结构性信息（epiplexity 更高）。更惊人的是，在下游任务上——解棋局谜题、评估局面优势——逆序模型的迁移效果碾压正序。\n为什么？正序模型可以\u0026quot;偷懒\u0026quot;——它只需要学会模拟规则的正向执行。但逆序模型没有捷径。它被逼着去理解棋局的内在逻辑。这种被逼出来的深层理解，恰好是下游任务需要的。\n这个发现有一种禅意：学得越痛苦的方向，越可能是正确的方向。 因为痛苦意味着你不能走捷径，必须建立真正的理解。\n涌现超越规则 生命游戏的实验更直接。论文做了一个对比：\n给模型足够的算力逐步展开中间状态 → 模型找到了暴力模拟的笨办法，epiplexity 暴跌——因为它只需要记住那三行规则，反复执行就行。\n限制模型的算力 → 模型被迫学习涌现出来的高层规律（粒子的运动、碰撞、产生），epiplexity 持续上升。\n当算力不够暴力求解时，模型必须变得比数据的生成过程更\u0026quot;聪明\u0026quot;。 这就是涌现——我在 《为什么矩阵和激活函数就能涌现智能？》 里讨论过这个现象。epiplexity 给了我们第一个精确测量涌现的工具。\n一个改变我理解的发现 到这里，epiplexity 可能还只是一个\u0026quot;有趣的理论概念\u0026quot;。但接下来这个实验结果，直接让我重新理解了 AI 训练这件事。\n论文把 10 亿 token 的三种数据放在一起，分解它们的信息构成：\n数据源 结构性信息（epiplexity）占比 随机信息占比 自然语言（OpenWebText） 约 37% 约 63% 国际象棋（Lichess） 约 5% 约 95% 图像（CIFAR-5M） \u0026lt; 1% \u0026gt; 99% 你没有看错。图像数据中超过 99% 的信息都是噪声。\n想想\u0026quot;看一张猫的照片\u0026quot;这件事。照片里有什么信息？每一根猫毛的精确走向、背景墙上每一个像素的确切颜色、光影的微妙渐变——这些信息量巨大，但你需要知道这些吗？你只需要知道\u0026quot;这是一只猫\u0026quot;。那根关键的信息——\u0026ldquo;猫\u0026rdquo;——在全部像素信息中占的比例，微乎其微。\n而自然语言呢？\u0026ldquo;水在零度以下会——\u0026ldquo;下一个词几乎确定是\u0026quot;结冰\u0026rdquo;。这个可预测性不是噪音，这是人类文明几千年积累下来的结构化知识——因果关系、物理规律、常识推理，全部编码在语言的结构里。\n语言中的结构性信息大约是图像的 10000 倍。 四个数量级。\n这就解释了一个 AI 领域所有人都注意到但没人能解释清楚的现象：为什么 GPT 在文本上预训练后能做数学、写代码、控制机器人——因为它吸收了天量的可迁移结构。而在图像上预训练的模型迁移能力弱得多——因为它的大部分\u0026quot;学习带宽\u0026quot;浪费在了记忆不可迁移的随机像素上。\n一个颠覆性的实践结论 传统 AI 研究的核心问题是模型选择——给定数据，什么架构最好、什么超参数最优。\n但 epiplexity 说：也许你问错了问题。真正的关键是数据选择。\n论文验证了这一点。一种叫 ADO 的数据选择策略，会动态调整训练数据的采样分布，优先选择 loss 下降更快的数据子集。这个策略无意中在最大化 epiplexity——它在自动筛选结构信息密度最高的数据。结果？更好的下游表现，更强的泛化能力。\nChinchilla 定律 告诉我们要用多少数据。Epiplexity 回答下一个问题：要用什么数据。\n这和你有什么关系 如果你读到这里心想：\u0026ldquo;这是 AI 研究者的事，和我没关系\u0026rdquo;——恰恰相反。\n你就是一个有限算力的观察者。\n你的大脑有 860 亿个神经元，处理速度大概几百赫兹——和 GPU 的万亿次运算相比微不足道。你一辈子能读的书、能经历的事、能处理的信息，都是严格有限的。\n但你依然能理解世界。怎么做到的？\n你做的事情，恰好就是 epiplexity 描述的事情：在有限的算力下，从海量数据中提取结构。\n你不会去记每片落叶的纹路（那是时间有界熵——随机的、不可学习的噪声），但你会学到\u0026quot;秋天叶子会变黄\u0026rdquo;（那是 epiplexity——可复用的结构性知识）。你不会记住每顿饭的每一口味道，但你会学到\u0026quot;盐放多了会咸\u0026quot;。你不会记住每次对话的每一个字，但你会学到\u0026quot;这个人说话靠不靠谱\u0026quot;。\n这不就是人类智能的核心吗？ 在有限的生命里，从看似混沌的世界中，提取出尽可能多的规律。\n甚至——你此刻阅读这篇文章的过程，就是一个活生生的例子。\n这篇文章有几千字，包含大量信息。但你不会（也不需要）记住每个字。你会记住的是几个关键结构：\u0026ldquo;信息量取决于观察者\u0026rdquo;、\u0026ldquo;语言比图像更值得学\u0026rdquo;、\u0026ldquo;困难的学习方向可能更好\u0026rdquo;。这些就是这篇文章对你的 epiplexity——你从这些文字中真正提取出来的结构。\n如果我写得太学术、太抽象，你读着读着跟不上了——那一刻发生的事情，恰好就是 epiplexity 为零的状态：信息量巨大，但对你这个\u0026quot;有限算力的观察者\u0026quot;来说，全部变成了噪声。你什么都没学到，阅读就中断了。\n这就是为什么好的教育如此重要。\n好的老师本质上就在做 epiplexity 最大化。 他们不会让学生死记硬背（那是喂低 epiplexity 的数据——记了就忘的随机细节）。他们用精心选择的例子、由浅入深的顺序、恰到好处的难度，让学生在有限的学习时间里提取到最多的结构。\n论文里\u0026quot;逆序学国际象棋反而学得更深\u0026quot;的发现，和教育学里一个著名理论惊人地吻合——\u0026ldquo;适度的困难\u0026rdquo;（desirable difficulty）促进深层学习。太简单的材料，学生不需要建立新的认知结构就能应付；太难的材料，超出处理能力，变成噪声。只有在\u0026quot;够得着但要跳一跳\u0026quot;的难度区间里，大脑才会被迫建立新的理解框架——也就是提取新的结构性信息。\n所以这篇论文说的不只是 AI 的事。它说的是所有有限智能体——不管是 LLM 还是人类——如何从世界中获取知识。\n兴趣：被低估的算力加速器 但论文没有讨论、而框架却完美解释的一个东西是——兴趣。\n想一件你真正着迷的事。可能是编程，可能是做菜，可能是打篮球，可能是养花。回忆一下你沉浸其中的状态：时间消失了，注意力像激光一样聚焦，每一个细节都在你脑子里留下清晰的纹路。\n再想一件你毫无兴趣的事。也许是大学里一门被迫选的课。老师在讲台上说的每句话都是合法的中文句子，但你的大脑就是拒绝处理它们。一个小时过去了，笔记本上是空的，脑子里也是空的。\n同样的数据。同样的你。唯一的区别是——兴趣。\n从 epiplexity 的角度看，兴趣做了一件很具体的事：它临时升级了你的硬件。\n当你感兴趣时，大脑会分配更多的注意力、更多的工作记忆、释放更多的多巴胺（这会增强突触可塑性，也就是\u0026quot;记忆力\u0026quot;）。用论文的语言说：你从一个算力较低的观察者，变成了一个算力更高的观察者。同一份数据，你能提取出更多的结构。\n那本在凌晨两点备考时让你昏昏欲睡的统计学教材——当你在工作中遇到一个真正需要回归分析才能回答的问题时，再去翻它，同样的公式突然变得清晰、有力、有用。\n数据没变。你的\u0026quot;算力\u0026quot;变了。 因为兴趣和需求给了你更强的处理能力。\n天赋：出厂配置不同的观察者 更深一层：为什么有人天生着迷于音乐，有人着迷于数学，有人着迷于语言？\n也许答案是——每个人的大脑架构，让不同类型的数据对你呈现出不同的 epiplexity。\n一个有音乐天赋的孩子，听到一段旋律时，他的听觉皮层能从中提取出非音乐人根本\u0026quot;听不见\u0026quot;的结构——和弦走向、节奏变化、调性张力。不是因为声波不同，是因为观察者不同。同样一段音频，对他来说充满了可学的结构（高 epiplexity），对另一个人来说就是\u0026quot;好听的背景音\u0026quot;（低 epiplexity）。\n反过来，那个听不出和弦色彩的人，可能看一眼代码就能感受到架构的优雅和冗余——这是程序员的\u0026quot;音乐天赋\u0026quot;。\n所谓天赋，也许就是：你的大脑对某种数据天生有更高的结构提取效率。\n这不是鸡汤。这是一个可以指导行动的洞察。\n学习的正反馈循环 兴趣和天赋会触发一个强大的正反馈循环：\n兴趣 → 更多注意力（更高算力） → 提取更多结构 → 理解加深 → \u0026ldquo;原来还有这么多有意思的东西！\u0026rdquo; → 更强的兴趣 → ……\n这就是为什么有些人在某个领域越学越快——不是他们变聪明了，是循环在加速。每一轮提取出的结构，都成为下一轮提取的\u0026quot;脚手架\u0026quot;。就像论文里说的国际象棋逆序实验——前面学到的深层结构，让后面的学习变得更高效。\n反过来，如果一开始就被迫学习你不感兴趣的东西（低算力状态），提取不到结构（低 epiplexity），感觉全是噪声，于是更没兴趣，恶性循环。\n这解释了一个每个人都经历过但很难说清的现象：为什么\u0026quot;学不进去\u0026quot;的感觉和\u0026quot;学得飞快\u0026quot;的感觉差别那么大。 不是意志力的问题，是你此刻的有效算力决定了你能从这份数据中提取多少结构。\n好的内容创作者在做什么 如果你接受了这个框架，那\u0026quot;好的老师\u0026quot;和\u0026quot;好的内容创作者\u0026quot;在做什么就很清楚了——他们同时在做两件事：\n第一，选择高 epiplexity 的数据。 不是所有信息都值得传达。好的内容只传递结构——那些读者听完之后能记住、能复用、能迁移到其他场景的东西。冗余的细节、不必要的术语、为了显示专业性的复杂表述——这些都是噪声。\n第二，提升读者的有效算力。 怎么提升？激发兴趣。 用故事代替定义，用悬念代替目录，用\u0026quot;这和你有什么关系\u0026quot;代替\u0026quot;本文将讨论以下三个方面\u0026quot;。当读者的好奇心被点燃时，他们的注意力集中了，处理能力上升了——同样的内容，他们能从中提取出更多的结构。\n所以，一篇好文章的目标不是\u0026quot;传递信息\u0026quot;——而是最大化读者的 epiplexity。传递的信息要富含结构，同时要让读者处于最佳的接收状态。\n这也许是我写这个系列文章以来，找到的最精确的一句话：\n好的写作 = 高结构密度 × 高读者算力。 前者靠选材和提炼，后者靠兴趣和共鸣。\n接下来会发生什么 这篇论文不是终点，而是起点。它打开了几个方向：\n对 AI 训练来说——数据选择将从\u0026quot;凭直觉和经验\u0026quot;走向\u0026quot;有理论指导\u0026quot;。不是所有数据都值得拿来训练。高 epiplexity 的数据（自然语言 \u0026raquo; 图像）应该被优先使用。合成数据的设计不再是盲目的——目标是创造高结构信息密度的训练材料。\n对理解智能本身来说——epiplexity 提供了第一个将\u0026quot;计算能力\u0026quot;和\u0026quot;信息\u0026quot;放在同一个框架里的数学工具。Shannon 把信息论从通信中抽象出来；这篇论文把\u0026quot;学习者的算力\u0026quot;重新放了回去。这可能催生一个新的数学分支——计算感知的信息论（compute-aware information theory）。\n对我们理解自身来说——它既是一种谦逊，也是一种力量。\n谦逊在于：我们永远是有限的观察者。世界中存在大量\u0026quot;信息\u0026quot;，但我们能提取出来的结构，永远只是其中一小部分。这不是失败，这是物理现实。\n力量在于：正是因为知道了这个边界在哪里，我们才能优化在边界之内能做的事。Shannon 告诉工程师\u0026quot;通信极限在这里\u0026quot;，结果是整个通信工业逼近了那个极限。Epiplexity 告诉我们\u0026quot;你的学习能力的极限在这里\u0026quot;——下一步就是想办法逼近它。\n写在最后 Shannon 在 1948 年画出了信息传输的数学地图。78 年来，这张地图指引了整个数字文明。\n但这张地图有一个隐含的假设：使用地图的人拥有无限的视力，能看清地图上的每一个细节。\n现实是，我们都是近视的。\n这篇论文做的事情，是给这张地图加上了一个新的维度——观察者的能力。同一张地图，戴不同度数的眼镜，看到的细节不同，能走通的路也不同。\n这不是否定 Shannon。这是说：Shannon 画了一张完美的、上帝视角的地图。但我们需要的，是一张为近视的人画的地图——一张告诉你\u0026quot;以你的视力，这条路你能看清，那条路对你来说只是模糊的噪点\u0026quot;的地图。\n人类几千年来做的事——创造语言、发现定律、建立数学、发展科学——本质上都是同一件事：用有限的大脑，从看似混沌的世界中，一点一点地提取结构。\nLLM 做的也是同一件事。只是用不同的方式，在不同的尺度上。\n智能的本质不是\u0026quot;知道一切\u0026quot;，而是在算力的边界上，尽可能多地理解世界的结构。\n论文信息\nMarc Finzi, Shikai Qiu, Yiding Jiang, Pavel Izmailov, Andrew Gordon Wilson, J. Zico Kolter. \u0026ldquo;From Entropy to Epiplexity: Rethinking Information for Computationally Bounded Intelligence.\u0026rdquo; arXiv:2601.03220, January 2026.\n代码：https://github.com/shikaiqiu/epiplexity\n","permalink":"https://jason-azure.github.io/ai-blog/posts/epiplexity/","summary":"Shannon 说「压缩 = 预测 = 理解」。但他假设观察者有无限算力。2026 年的一篇论文补上了这个前提，提出 epiplexity——衡量有限算力观察者能从数据中学到多少结构的新度量。","title":"Shannon 没有想到的事——当信息论遇上有限算力"},{"content":" 系列导航\n第一幕（5 篇）+ 第二幕（5 篇）→ 查看全部 ▹ 第十一篇：向量——给万物一个坐标 ▹ 第十二篇：矩阵——空间的变形术 ▹ 第十三篇：概率——拥抱不确定 ▹ 第十四篇：高维——超越想象力 ▹ 第十五篇：梯度下降——数学会学习 ▸ 第十六篇（本文）：终章——数学是人类的望远镜 回望：三幕十六篇 我们走了很远。让我们回望一下。\n三幕全景 第一幕：数的觉醒——描述静止的世界 ① 数 从结绳到数轴，抽象的起点 ② 零 最伟大的发明，无中生有 ③ 未知数 x 用字母代替未知，方程的开始 ④ 坐标 数与形的统一，笛卡尔的礼物 ⑤ 方程 自然界的源代码 第二幕：变化的语言——描述变化的世界 ⑥ 函数 输入→输出的机器，GPT 也是函数 ⑦ 指数 人脑理解不了的增长 ⑧ 圆与波 三角函数的真面目 ⑨ 微积分（上） 切碎看速度——导数 ⑩ 微积分（下） 加起来的艺术——积分 第三幕：看不见的世界——AI 真正运行的舞台 ⑪ 向量 给万物一个坐标 ⑫ 矩阵 空间的变形术 ⑬ 概率 拥抱不确定 ⑭ 高维 超越想象力 ⑮ 梯度下降 数学会学习 ⑯ 终章（本文） 数学是人类的望远镜 从结绳记事走到梯度下降。从一万年前走到今天。人类走这段路花了几千年。而你只用了十六篇文章。\n第一章：数学不是发明的 有一个古老的哲学争论：数学是人类发明的，还是发现的？\n发明 vs 发现 如果数学是\u0026#34;发明的\u0026#34;： → 它只是人类的符号游戏 → 换一种文明，会发明出不同的数学 → 数学只是\u0026#34;碰巧有用\u0026#34; 如果数学是\u0026#34;发现的\u0026#34;： → 数学规律早就存在，人类只是找到了它们 → 任何文明都会发现同样的数学 → 数学\u0026#34;必然有用\u0026#34;，因为它描述的是世界本身 证据支持\u0026quot;发现\u0026quot;：\nπ = 3.14159\u0026hellip; 不取决于你用什么语言、什么文明。古巴比伦人、古埃及人、古中国人、古希腊人——所有人都找到了同一个数 勾股定理 被不同文明独立发现：中国的《周髀算经》、古希腊的毕达哥拉斯、古印度的数学家——方法不同，结论相同 爱因斯坦用数学预言了引力波，100 年后我们真的测到了——数学怎么能预言一个还没观测到的物理现象？ 物理学家 Eugene Wigner 写过一篇著名文章，标题就叫：\u0026ldquo;数学在自然科学中不合理的有效性\u0026rdquo;（The Unreasonable Effectiveness of Mathematics, 1960）。\n他的困惑是：数学是人类在纸上画的符号，凭什么它能如此精确地描述宇宙？\n这个问题至今没有令人满意的答案。\n一句话记住： 数学不是\u0026quot;人造的工具\u0026quot;。它更像是宇宙的一种\u0026quot;语言\u0026quot;——人类不是作者，而是译者。\n第二章：一万年的旅程 让我们把整个系列串成一条线：\n数学的文明线 ~8000 BC 结绳记事 第①篇 ~3000 BC 巴比伦 60 进制 第①篇 ~600 BC 勾股定理（周髀算经） 第④篇 ~300 BC 欧几里得《几何原本》 第④篇 ~100 BC 《九章算术》方程术 第⑤⑫篇 ~628 AD 零的发明（印度） 第②篇 ~825 AD 代数学（花拉子密） 第③篇 1637 坐标系（笛卡尔） 第④篇 1654 概率论（帕斯卡/费马） 第⑬篇 1687 微积分（牛顿/莱布尼茨）第⑨⑩篇 1812 傅里叶变换 第⑧篇 1854 布尔代数 AI 逻辑的基础 1948 信息论（香农） 压缩即智能 1986 反向传播 第⑮篇 2017 Transformer 全系列的终点 一万年的积累，才有了今天的 AI。 每一步都建立在前一步之上。没有\u0026quot;零\u0026quot;就没有位值制，没有位值制就没有计算机；没有坐标系就没有函数，没有函数就没有导数；没有导数就没有梯度下降，没有梯度下降就没有 GPT。\n数学的进步是累积的。每一个概念都是一块砖，拿掉任何一块，上面的一切都会塌。\n第三章：AI 的数学全景 现在我们可以画一张完整的图——GPT 的一次推理过程中，用到了多少数学：\nGPT 写一个字的背后 输入 \u0026#34;数学是\u0026#34; → 输出 \u0026#34;美丽的\u0026#34; 背后发生了什么： 1. 分词（tokenization） \u0026#34;数学是\u0026#34; → [token_1, token_2] 2. 嵌入（embedding）→ 向量（第⑪篇） 每个 token → 768 维向量 3. 位置编码 → 三角函数（第⑧篇） sin/cos 编码位置信息 4. Attention → 矩阵变换（第⑫篇）+ 点积（第⑪篇） QKV 投影 = 三次矩阵乘法 注意力分数 = 向量点积 5. softmax → 指数函数（第⑦篇）+ 概率（第⑬篇） e^x 把分数变成概率 6. 前馈网络 → 矩阵（第⑫篇）+ 函数（第⑥篇） 矩阵变换 + 激活函数 7. 输出概率 → 概率分布（第⑬篇） P(下一个词 | 前文) 8. 采样 → 概率（第⑬篇） 从分布中选一个词 全程在高维空间（第⑭篇）中进行。 而让这一切成为可能的训练过程 = 梯度下降（第⑮篇）。 你学过的每一个概念，都在这里了。\n没有一个是多余的。数、函数、指数、三角函数、微积分、向量、矩阵、概率、高维、梯度——这十六篇覆盖的概念，恰好是理解 AI 所需的全部数学基础。\n第四章：数学是望远镜 1608 年，荷兰人发明了望远镜。1609 年，伽利略把望远镜对准天空，看到了木星的卫星、月球的环形山、银河系的星星。\n望远镜没有创造星星。星星一直在那里。望远镜只是让人类看见了它们。\n数学也是如此。\n数学让你\"看见\"了什么？ 数学工具 让你看见了什么 数和坐标 万物可以被量化和定位 函数 变化有规律可循 指数 增长可以超出想象 三角函数 万物皆有周期 微积分 无穷小的累积产生有限 向量 事物可以用一组数来描述 矩阵 空间可以被变换 概率 不确定性可以被管理 高维 复杂性有容身之处 梯度下降 机器可以自己\u0026quot;学习\u0026quot; 这些东西——变化的规律、增长的本质、不确定性的结构——它们一直存在。数学只是让你看见了它们。\n就像望远镜让你看见了一直存在的星星。\n而 AI，是这架望远镜最新的一片镜片。 它让人类看见了更多原本看不见的东西：文本中的语义结构、图像中的深层特征、蛋白质的折叠方式、新药的分子结构。AI 不是在\u0026quot;创造\u0026quot;知识，而是在帮人类\u0026quot;看见\u0026quot;更多。\n第五章：写给读完这个系列的你 如果你真的从第一篇读到了这里——\n你现在知道了什么 你知道了\u0026#34;数\u0026#34;是怎么被发明的 你知道了\u0026#34;零\u0026#34;为什么伟大 你知道了方程是自然界的源代码 你知道了函数是万能的输入-输出机器 你知道了指数增长为什么总让人措手不及 你知道了 sin/cos 为什么出现在 AI 里 你知道了微积分就是\u0026#34;切碎\u0026#34;和\u0026#34;加回来\u0026#34; 你知道了向量是\u0026#34;给万物一个坐标\u0026#34; 你知道了矩阵是\u0026#34;空间的变形术\u0026#34; 你知道了概率是\u0026#34;用数学管理无知\u0026#34; 你知道了高维空间大得超乎想象 你知道了 AI 的学习就是\u0026#34;蒙眼下山\u0026#34; 你没有\u0026#34;学会\u0026#34;这些数学。 但你\u0026#34;看见\u0026#34;了它们。 看见，是理解的第一步。 你不需要会手算矩阵乘法。你不需要记住求导公式。你只需要知道——\n当有人说\u0026quot;AI 做了一次矩阵变换\u0026quot;时，你知道那是什么意思。\n当有人说\u0026quot;模型在做梯度下降\u0026quot;时，你知道那是怎么回事。\n当有人说\u0026quot;这是一个 768 维的向量空间\u0026quot;时，你不会觉得这是咒语。\n这就够了。\n尾声 古人仰望星空，发明了历法。\n牧羊人数羊群，发明了自然数。\n商人计算利息，需要了指数。\n物理学家追踪运动，需要了微积分。\n工程师设计 AI，需要了向量、矩阵、概率、梯度。\n每一次，数学都是人类为了\u0026quot;看见更多\u0026quot;而伸出的手。\n而现在，AI 正在用同样的数学，帮人类看见更多。\n这个故事还在继续。\n《看见数学》系列 — 从结绳记事到 AI，看见数学之美。全 16 篇，完结。\n本文首发于「AI 学习笔记」博客：https://Jason-Azure.github.io/ai-blog/\n微信公众号：AI-lab学习笔记\n系列文章完整列表见 标签：看见数学\n","permalink":"https://jason-azure.github.io/ai-blog/posts/see-math-16-finale/","summary":"从结绳记事到梯度下降，从一万年前到今天。十六篇走下来，我们看见了什么？数学不是发明的，数学是发现的。它是人类伸向未知的望远镜——而 AI，是这架望远镜最新的一片镜片。","title":"看见数学（十六）：终章——数学是人类的望远镜"},{"content":"从一件你每天都在做的事说起 你拿起手机，在微信里打了两个字：\u0026ldquo;你好\u0026rdquo;。按下发送。\n对面的人看到了\u0026quot;你好\u0026quot;。\n看起来很简单。但你有没有想过——在你按下发送到对方收到之间，这两个字经历了什么？\n计算机不认识\u0026quot;你\u0026quot;，也不认识\u0026quot;好\u0026quot;。它不认识任何一个字。它唯一认识的东西是——0 和 1。\n所以你打的\u0026quot;你好\u0026quot;，在进入计算机的瞬间，就被翻译成了一串数字：11100100 10111101 10100000 11100101 10100101 10111101。48 个 0 和 1。\n这串数字通过网线/WiFi/基站飞到对方手机上，对方的手机再把它翻译回\u0026quot;你好\u0026quot;，显示在屏幕上。\n符号 → 数字 → 传输 → 数字 → 符号。\n这个过程你每天做几百次。发微信、刷网页、写文档——每一次，你看到的\u0026quot;文字\u0026quot;都在背后经历了这趟翻译之旅。\n现在换一个场景。你打开 ChatGPT，输入同样的\u0026quot;你好\u0026quot;。\n完全相同的事情发生了。 \u0026ldquo;你好\u0026quot;被翻译成数字，AI 用数字做了一堆计算，然后把结果的数字翻译回文字给你看。\nToken、Embedding、Encode、Decode——你在 AI 话题里听到的这些术语，说的就是这件事：把符号变成数字、把数字变回符号。\n这不是什么新发明。人类做这件事已经快 200 年了。\n一切始于翻译 莫尔斯电码（1837）：第一张编码表 故事从一根电线开始。\n1837 年，Samuel Morse 发明了电报。他面对一个前所未有的问题：怎么通过一根电线传递文字？电线只能做一件事——通电或断电。通就是 1，断就是 0。\n所以 Morse 做了一件后来被反复重复了 200 年的事：他发明了一张对照表。\n每个字母对应一组\u0026quot;长短信号\u0026rdquo;——短信号是\u0026quot;点\u0026quot;（·），长信号是\u0026quot;划\u0026quot;（-）。A = ·-，B = -···，SOS = ···\u0026mdash;···。\n发报员把文字翻译成电信号（编码/encode），收报员把电信号翻译回文字（解码/decode）。\n注意：encode 和 decode 这两个词不是 AI 发明的。它们的历史和电报一样古老。本质就是翻译——在两种表示之间来回转换。\nMorse 还做了一件聪明的事：最常见的字母\u0026quot;E\u0026quot;，编码最短（一个点 ·）；不常见的字母\u0026quot;Q\u0026quot;，编码最长（\u0026ndash;·-）。高频的用短编码，低频的用长编码。 记住这个原则——它会反复出现。\nASCII（1963）：给字符编号 一百多年后，计算机来了。计算机面对的问题和 Morse 一模一样——它只认识 0 和 1，怎么处理人类的文字？\n1963 年，美国国家标准协会发布了 ASCII（美国标准信息交换码）。原理简单得不能再简单：\n给每个字符一个数字编号。\n大写 A = 65，B = 66，C = 67……小写 a = 97，数字 0 = 48，空格 = 32。一共 128 个字符，用 7 位二进制就能表示。\n这就是一张查找表（lookup table）——输入一个字符，查表得到一个数字；输入一个数字，查表得到一个字符。编码就是查表，解码也是查表。\n当你在键盘上按下\u0026quot;A\u0026quot;，计算机存储的是 65。当屏幕上显示\u0026quot;A\u0026quot;，是计算机从 65 查回了\u0026quot;A\u0026quot;的字形。你看到的是字母，计算机看到的永远是数字。\n这里有一个容易忽略的事实：就连你输入的\u0026quot;数字\u0026quot;，对计算机来说也是字符。\n当你在计算器里输入 127+456，你以为计算机直接看到了数字 127 和 456？不是的。它首先看到的是 7 个字符：'1' '2' '7' '+' '4' '5' '6'。在 ASCII 表里，字符 '1' 的编码是 49，'2' 是 50，'7' 是 55——注意，这些和数值 1、2、7 完全不同。\n这就是为什么编程语言里有\u0026quot;类型\u0026quot;的概念。字符串 \u0026quot;123\u0026quot; 和整数 123 在内存里是完全不同的东西：\n字符串 \u0026quot;123\u0026quot; 存的是三个 ASCII 码：49, 50, 51 整数 123 存的是二进制数值：01111011 从字符串到数字，需要显式转换——Python 里的 int(\u0026quot;123\u0026quot;)，JavaScript 里的 Number(\u0026quot;123\u0026quot;)，C 语言里的 atoi(\u0026quot;123\u0026quot;)。这些函数做的事情，本质上就是解码：把人类可读的字符表示，翻译成计算机能做算术的数值表示。\n所有信息——文字、数字、标点——进入计算机的第一步都是编码成字符。 编码无处不在，比你想象的更彻底。\n但 ASCII 有一个致命的问题：128 个位置用完了。英文字母、数字、标点符号刚好够用，但——\n中文呢？日文呢？韩文、阿拉伯文、泰文、emoji 呢？\nUnicode 和 UTF-8：全人类的编码表 这个问题困扰了业界三十年。各国各自发明编码——中国用 GB2312，日本用 Shift_JIS，韩国用 EUC-KR。同一个数字在不同编码里代表不同的字。于是你收到一封邮件，满屏乱码。\n1991 年，Unicode 诞生了。思路很暴力：给世界上每一个字符一个唯一编号（叫\u0026quot;码点\u0026quot;）。\n\u0026ldquo;你\u0026rdquo; = U+4F60，\u0026ldquo;好\u0026rdquo; = U+597D，\u0026quot;😀\u0026quot; = U+1F600。\n目前 Unicode 收录了超过 15 万个字符，覆盖了人类发明过的几乎所有书写系统。\n但新问题来了：ASCII 用 1 个字节（8 位）就够了，但 Unicode 的码点范围太大，有的需要 3 个甚至 4 个字节。如果所有字符都用 4 个字节存储，英文文本的存储空间会膨胀 4 倍——太浪费了。\n1993 年，UTF-8 解决了这个问题。它的设计非常聪明：\n英文字母（高频）→ 1 个字节 中文（中频）→ 3 个字节 emoji 和生僻字（低频）→ 4 个字节 高频的用短编码，低频的用长编码。\n等等，这不是 Morse 在 1837 年就用过的原则吗？没错，而且这个原则有一个名字。在 信息论 里，Shannon 在 1948 年就数学地证明了：最优编码就是让高频项的编码最短。这不是巧合，这是数学定理。\n到这里，我们做了 200 年的事总结起来就一句话：发明越来越大、越来越聪明的查找表，把人类的符号翻译成计算机的数字。\n但故事远没有结束。因为接下来发生了一件改变一切的事：我们开始给词编码——不再是单个字符，而是整个词。而且编码方式不再是人类设计的，而是机器自己学的。\n从\u0026quot;一个数字\u0026quot;到\u0026quot;一组数字\u0026rdquo; One-Hot 编码：天真但重要的一步 ASCII 给每个字符一个数字。那能不能给每个词一个数字？\n当然可以。假设我们的词表有 10000 个词，\u0026ldquo;猫\u0026quot;排在第 3721 个，我们就给它编号 3721。\n但这样做有一个问题：3721 这个数字暗示\u0026quot;猫\u0026quot;比 3720（可能是\u0026quot;经济\u0026rdquo;）\u0026ldquo;大一点\u0026rdquo;，比 3722（可能是\u0026quot;钢琴\u0026quot;）\u0026ldquo;小一点\u0026rdquo;。但猫和经济、钢琴之间没有大小关系。数字的大小误导了计算机。\n于是人们想到了一个办法：独热编码（One-Hot Encoding）。\n10000 个词的词表，每个词用一个 10000 维的向量表示。\u0026ldquo;猫\u0026quot;的向量是：[0, 0, 0, \u0026hellip;, 1, \u0026hellip;, 0, 0]——只有第 3721 个位置是 1，其余全是 0。\n这消除了\u0026quot;大小\u0026quot;的误导，但引入了两个新问题：\n第一，太浪费了。 10000 维的向量里只有一个 1，其余全是 0。99.99% 的空间是浪费的。\n第二，没有语义。 在 One-Hot 编码里，\u0026ldquo;猫\u0026quot;和\u0026quot;狗\u0026quot;的距离 = \u0026ldquo;猫\u0026quot;和\u0026quot;经济学\u0026quot;的距离。每对词之间的距离完全一样。计算机看不出哪些词意思接近，哪些词毫不相关。\nASCII 给字符编号时也有同样的问题——A=65，B=66 并不意味着 A 和 B 的\u0026quot;意思\u0026quot;比 A 和 Z 更接近。但 ASCII 只是在做通信——传对字符就行了，不需要\u0026quot;理解意思\u0026rdquo;。\n然而，当我们开始让机器理解语言时，编码就必须携带含义了。\nWord2Vec（2013）：编码的革命 2013 年，Google 的 Tomas Mikolov 和他的同事们发表了一篇改变 NLP（自然语言处理）的论文：\u0026ldquo;Efficient Estimation of Word Representations in Vector Space\u0026rdquo;。\n他们的想法基于一个语言学的古老洞察——英国语言学家 J.R. Firth 在 1957 年说过的一句话：\n\u0026ldquo;You shall know a word by the company it keeps.\u0026rdquo; 一个词的意思，由它周围的词决定。\n\u0026ldquo;猫\u0026quot;经常出现在\u0026quot;毛茸茸\u0026rdquo;、\u0026ldquo;喵\u0026rdquo;、\u0026ldquo;宠物\u0026quot;旁边。\u0026ldquo;狗\u0026quot;也经常出现在类似的上下文里。所以\u0026quot;猫\u0026quot;和\u0026quot;狗\u0026quot;的意思应该接近。\u0026ldquo;经济学\u0026quot;出现在完全不同的上下文里，所以它和\u0026quot;猫\u0026quot;应该很远。\nMikolov 做了一件天才的事：让神经网络自己从大量文本中学习每个词的编码。 不是人类指定，而是机器从数据中发现。\n结果：每个词变成一个 300 维的向量——300 个浮点数。不是 10000 维里只有一个 1，而是每个维度都有值，每个值都编码了词义的某个方面。\n然后人们发现了一个惊人的现象：\n$$\\vec{king} - \\vec{man} + \\vec{woman} \\approx \\vec{queen}$$\n\u0026ldquo;国王\u0026quot;减去\u0026quot;男性\u0026quot;加上\u0026quot;女性\u0026rdquo;，等于\u0026quot;女王\u0026rdquo;！\n这些向量不只是\u0026quot;编号\u0026rdquo;——它们捕捉了词与词之间的关系。\u0026ldquo;性别\u0026quot;这个概念，在向量空间里有一个固定的方向；\u0026ldquo;皇室\u0026quot;有另一个方向；\u0026ldquo;国家-首都\u0026quot;又有一个方向。\n让我用 ASCII 做对比，你就能感受到这个飞跃有多大：\nASCII 给 \u0026ldquo;A\u0026rdquo; 编号 65——这个 65 没有任何含义，它只是一个编号 Word2Vec 给 \u0026ldquo;国王\u0026rdquo; 编码 [0.23, -0.15, 0.82, \u0026hellip;]——这 300 个数字的每一个都有含义，它们共同编码了\u0026quot;男性\u0026rdquo;、\u0026ldquo;皇室\u0026rdquo;、\u0026ldquo;权力\u0026quot;等语义维度 从\u0026quot;没有含义的编号\u0026quot;到\u0026quot;充满含义的向量\u0026rdquo;——这是 200 年编码史上最关键的一步。 人类第一次让机器不只是\u0026quot;记住\u0026quot;符号，而是\u0026quot;理解\u0026quot;符号之间的关系。\n如果你想更深入地理解向量和矩阵在 AI 中的角色，可以看 《矩阵乘法到底对 LLM 做了什么？》。\nBPE：当压缩算法变成了分词器 一个意想不到的问题：按什么切分？ Word2Vec 把每个词变成了向量。但\u0026quot;词\u0026quot;是什么？\n英文还好——单词之间有空格。\u0026ldquo;I love cats\u0026rdquo; → [\u0026ldquo;I\u0026rdquo;, \u0026ldquo;love\u0026rdquo;, \u0026ldquo;cats\u0026rdquo;]。\n但中文呢？\u0026ldquo;联合国气候变化框架公约\u0026rdquo;——这是一个词还是七个词？\u0026ldquo;今天天气不错\u0026rdquo;——\u0026ldquo;天天\u0026quot;是一个词吗？\u0026ldquo;不错\u0026quot;是\u0026quot;不\u0026rdquo;+\u0026ldquo;错\u0026quot;还是一个词？\n还有另一个问题：世界上的词太多了。英文有几十万个词，加上人名、地名、新造词、专业术语……一个固定的词表永远不够用。碰到词表外的词（叫 OOV，out-of-vocabulary），模型就两眼一抹黑。\n怎么办？\n答案来自一个出人意料的地方——数据压缩算法。\n从压缩到分词（1994 → 2016） 1994 年，Philip Gage 在 C Users Journal 上发表了一个叫 BPE（Byte Pair Encoding，字节对编码） 的数据压缩算法。原理很简单：\n扫描文本，找到出现频率最高的相邻字节对 把这对合并成一个新符号 重复步骤 1-2，直到达到目标词表大小 2016 年，Sennrich 等人把这个压缩算法借来做 NLP 分词——同一个算法，换了个目的。压缩是为了减少数据大小，分词是为了找到合适的编码单位。 但本质上，两者都在做同一件事：找到最高效的表示方式。\nGPT-2（2019）更进一步，使用了 byte-level BPE——从 256 个原始字节开始构建词表。\n256 个字节。 这个数字让你想起什么了？对——ASCII 编码的扩展版（Extended ASCII）正好也是 256 个字符。GPT 的分词器，起点和 1963 年的 ASCII 编码完全一样——都是从\u0026quot;给每个字节编号\u0026quot;开始。\n而且 BPE 的设计哲学和 UTF-8 一模一样：\nUTF-8：\u0026ldquo;the\u0026rdquo;（高频）→ 3 字节，\u0026ldquo;鬱\u0026rdquo;（低频）→ 3 字节但编码位置靠后 BPE：\u0026ldquo;the\u0026rdquo;（高频）→ 1 个 token，\u0026ldquo;tokenization\u0026rdquo;（低频）→ 3 个 token 高频的用短编码，低频的用长编码。\n这不是巧合。这是 Shannon 在 1948 年就证明了的最优编码原理。200 年来，从莫尔斯电码到 UTF-8 到 BPE，最聪明的编码都在遵守同一个数学定理。 我在 《为什么用 -log(p) 做损失函数？》 里详细推导了这个定理。\n如果你想深入了解 BPE 在中英文上的差异，推荐读 《中文 vs 英文：大语言模型的语言鸿沟》。\nEmbedding：进化的查找表 一张古老的对照表 好了，到这一步，我们有了 BPE 分词器，能把任何文本切成 token 序列，每个 token 有一个整数 ID。\n\u0026ldquo;你好世界\u0026rdquo; → [19526, 31809]（实际 ID 取决于具体模型）\n但整数 ID 和 ASCII 码有同样的问题——它们只是编号，没有含义。19526 和 19527 之间没有任何语义关系。\n所以我们需要把这些 ID 变成有含义的向量——就像 Word2Vec 做的事情一样。\n怎么做？查表。\nGPT 模型里有一个叫 Embedding 层的东西。它的本质是什么？一张巨大的查找表。\n在 PyTorch 里，这张表是这样定义的：\nembedding = nn.Embedding(100000, 768) 10 万行（词表大小），768 列（向量维度）。输入一个整数 Token ID，输出一个 768 维的向量。\n和 ASCII 表的结构完全一样：\n对比项 ASCII 表（1963） Embedding 表（2019） 大小 128 行 × 1 列 100,000 行 × 768 列 输入 整数索引（如 65） 整数 Token ID（如 19526） 输出 一个字符（A） 一个 768 维向量 设计方式 人类手工指定 机器从数据中学习 区别只有两个：\n维度从 1 变成了 768（从\u0026quot;一个数字\u0026quot;到\u0026quot;一组数字\u0026rdquo;） 从人类设计变成了机器学习 结构？完全相同。都是查找表。都是输入索引、输出表示。\n如果你想看 embedding 的实际数值长什么样，推荐 《LLM 全流程可视化》，那里有用真实 nanoGPT 模型提取的 embedding 数据。\nEncode → Process → Decode：古老的范式 现在让我们把完整的流程连起来：\nEncode（编码）：文本 → Tokenizer 切分 → Token ID → Embedding 查表 → 向量序列 Process（处理）：向量序列 → 神经网络做一堆矩阵运算 → 新的向量序列 Decode（解码）：新向量 → 反查表得到概率分布 → 选出最可能的 Token ID → 查回文字 符号 → 数字 → 处理 → 数字 → 符号。\n让我们用一个完整的动画，看看\u0026quot;你好世界\u0026quot;在 LLM 中经历的每一步：\n这个模式你在哪里见过？\n1837 年的电报：文字 → 发报员编码 → 电信号 → 收报员解码 → 文字\n1876 年的电话：声音 → 话筒编码 → 电信号 → 听筒解码 → 声音\n2017 年的 Transformer：文本 → Tokenizer+Embedding 编码 → 向量 → Softmax+Detokenizer 解码 → 文本\n同一个范式。 200 年来没变过。Shannon 在 1948 年把它画成了数学模型：信源 → 编码器 → 信道 → 解码器 → 信宿。Transformer 论文的原标题里那个 \u0026ldquo;Encoder-Decoder\u0026rdquo; 架构——不是什么新概念，是在致敬一个 200 年的传统。\n完整的编码到训练流程，可以看 《从文本到模型：LLM 数据处理全流程详解》。\n一个统一的视角 让我们把 200 年的编码史放在一张表里：\n年代 技术 输入 查找表 输出 1837 莫尔斯电码 字母 A 电码表 ·- 1963 ASCII 字母 A ASCII 表 65（01000001） 1991 Unicode 汉字 \u0026ldquo;你\u0026rdquo; Unicode 表 U+4F60 2013 Word2Vec 词 \u0026ldquo;king\u0026rdquo; 嵌入矩阵 [0.23, -0.15, \u0026hellip;] (300维) 2019 GPT-2 BPE 子词 \u0026ldquo;ing\u0026rdquo; BPE 词表 Token ID 278 2019 GPT-2 Embedding Token 278 Embedding 层 [0.12, 0.34, \u0026hellip;] (768维) 每一行都在做同一件事。\n区别只有三个维度在升级：\n编码的单位越来越大：字符 → 词 → 子词。\n编码的维度越来越高：1 个数（ASCII）→ 300 个数（Word2Vec）→ 768 个数（GPT-2）→ 12288 个数（GPT-4）。\n编码从手工设计变成了机器学习：人类发明莫尔斯电码和 ASCII——用智慧和直觉设计。机器学习 Word2Vec 和 Embedding——用数据和计算发现。\n这解释了 AI 的很多\u0026quot;怪行为\u0026rdquo; Andrej Karpathy（前 OpenAI、前特斯拉 AI 负责人）说过一句非常精辟的话：\n\u0026ldquo;LLM 的很多奇怪行为，其实根源在 tokenization。\u0026rdquo;\n为什么 LLM 有时候不会做简单的数学？因为当你输入\u0026quot;127+456\u0026quot;时，LLM 看到的不是三个数字和一个加号——它看到的是几个 token ID。\u0026ldquo;127\u0026quot;可能是一个 token，但\u0026quot;456\u0026quot;可能被切成了\u0026quot;4\u0026rdquo;+\u0026ldquo;56\u0026quot;两个 token。它必须从这些碎片中\u0026quot;学会\u0026quot;加法。\n就像你如果只看 ASCII 码 49 50 55 43 52 53 54，你能立刻知道这是\u0026quot;127+456\u0026quot;吗？大概不能。你需要先把数字翻译回字符，才能理解这是一道数学题。LLM 的处境和你看 ASCII 码时一模一样。 还记得前面说的吗？即便是\u0026quot;数字\u0026rdquo;，进入计算机的第一步也是变成字符编码——LLM 面对的困难，从字符编码那一刻就已经埋下了。\n为什么 LLM 在英语上表现比中文好？因为 BPE 分词器在英文上更高效——常见英文词往往是一个 token，但中文一个字可能就要 2-3 个 token。同样的\u0026quot;意思\u0026rdquo;，中文需要更多的 token 来表达，AI 处理起来更费劲。这和 UTF-8 的问题如出一辙——英文字母 1 字节，中文 3 字节。\n编码效率的问题，从 ASCII 到 UTF-8 到 BPE，一直在跟着我们。\n为什么这件事很重要 理解了\u0026quot;一切都是编码\u0026quot;这个视角，AI 就不再神秘了。\nGPT 不是一个\u0026quot;理解语言\u0026quot;的魔法黑盒。它是一个极其精密的编码-解码器——把文本编码成高维向量，在向量空间里做运算，再解码回文本。\n和 200 年前的电报员做的事，在结构上完全一样。\n区别在于：电报员用的是人类设计的简单编码表（26 个字母 → 26 个电码），GPT 用的是机器学习的超级编码表（10 万个子词 → 10 万个高维向量）。编码的丰富程度天壤之别——ASCII 用 1 个数字代表 1 个字符，Embedding 用 12288 个数字代表 1 个子词——但底层范式一脉相承。\nStephen Wolfram 在他那篇著名的 ChatGPT 解读文章里说得很直白：\n\u0026ldquo;神经网络的根基就是数字。所以要处理文本，你必须把文字变成数字。\u0026rdquo;\n就是这么简单。\n写在最后 200 年前，Morse 面对一根电线，想出了\u0026quot;把字母编成长短信号\u0026quot;这个主意。\n160 年前，ASCII 的设计者面对一台计算机，想出了\u0026quot;给每个字符一个数字编号\u0026rdquo;。\n30 年前，Unicode 的工程师面对全世界的语言，想出了\u0026quot;给每个字符一个唯一码点，用变长编码存储\u0026rdquo;。\n10 年前，Mikolov 面对语言理解的难题，想出了\u0026quot;让机器自己学每个词的数字编码\u0026rdquo;。\n今天，GPT 面对人类语言的全部复杂性，用 BPE + Embedding 构建了有史以来最庞大、最精密的编码系统。\n但他们做的都是同一件事：把符号变成数字。\n真正让人敬畏的不是 AI 的复杂——而是 200 年来，人类一直在用同一个简单的想法，解决越来越复杂的问题。\n从莫尔斯电码到 ASCII 到 Unicode 到 Word2Vec 到 BPE 到 Embedding——每一步都是上一步的自然延伸。没有魔法，没有断裂。只有一个越来越聪明的查找表。\n所以下次有人问你\u0026quot;什么是 Token？什么是 Embedding？\u0026quot;——你可以说：\n这和 ASCII 是同一件事。只不过 ASCII 用 1 个数字代表 1 个字符，Embedding 用 768 个数字代表 1 个子词。计算机从来都只懂数字，AI 也不例外。\n如果你想继续深入，我在 开篇语 里提出了\u0026quot;压缩即智能\u0026rdquo;——编码的本质就是压缩。在 从逻辑门到 GPT 里，我从最底层的 0 和 1 开始，一路搭建到完整的 AI 系统。而在上一篇 《Shannon 没有想到的事》 里，我们讨论了一个更深的问题：对于有限算力的观察者来说，\u0026ldquo;信息\u0026quot;意味着什么。\n这些文章讲的其实都是同一件事的不同面向——人类如何用有限的手段，表示和理解无限复杂的世界。\n参考文献\nShannon, C.E. (1948). \u0026ldquo;A Mathematical Theory of Communication.\u0026rdquo; Bell System Technical Journal. Mikolov, T., et al. (2013). \u0026ldquo;Efficient Estimation of Word Representations in Vector Space.\u0026rdquo; arXiv:1301.3781. Sennrich, R., et al. (2016). \u0026ldquo;Neural Machine Translation of Rare Words with Subword Units.\u0026rdquo; ACL 2016. Vaswani, A., et al. (2017). \u0026ldquo;Attention Is All You Need.\u0026rdquo; NeurIPS 2017. Gage, P. (1994). \u0026ldquo;A New Algorithm for Data Compression.\u0026rdquo; C Users Journal. Wolfram, S. (2023). \u0026ldquo;What Is ChatGPT Doing and Why Does It Work?\u0026rdquo; writings.stephenwolfram.com. Karpathy, A. (2024). \u0026ldquo;Let\u0026rsquo;s Build the GPT Tokenizer.\u0026rdquo; github.com/karpathy/minbpe. ","permalink":"https://jason-azure.github.io/ai-blog/posts/ascii-to-token/","summary":"Token、Embedding、Encode/Decode——这些 AI 术语听起来很新，但它们和 ASCII、Unicode 是同一件事的不同层次。计算机 200 年来一直在做同一件事：把符号变成数字。","title":"计算机只懂 0 和 1——从莫尔斯电码到 GPT 的编码简史"},{"content":" 系列导航\n第一幕（5 篇）+ 第二幕（5 篇）+ 第三幕（6 篇）→ 查看全部 16 篇 ▸ 番外篇（本文）：信息论——从电报到 GPT 的一条暗线 写在前面：为什么还要继续？ 十六篇走完了。从结绳记事到梯度下降，从一万年前的绳结到今天的神经网络。\n我以为旅程结束了。\n但有一件事一直困扰我。博客的 开篇语 写了四个字：压缩即智能。这四个字贯穿了我写的每一篇文章——讲 MoE 时我说\u0026quot;用更少的参数做更多的事\u0026quot;是一种压缩，讲 知识蒸馏 时我说\u0026quot;蒸馏就是极端压缩\u0026quot;，讲 梯度下降 时我说训练的本质是寻找最优的模式表达。\n但我从来没有正面回答过一个问题：\u0026ldquo;压缩即智能\u0026quot;这个说法，从哪来的？有人证明过吗？\n答案是：有。1948 年，一个叫 Claude Shannon 的人，用一篇论文证明了它。\n这条线藏在 GPT 训练时用的损失函数里，藏在 token 的编码方式里，藏在温度参数的名字里，藏在你读过的每一篇「看见数学」的背后。它无处不在，但我一直没有把它单独拎出来看。\n这条线叫信息论。\n这不是第十七篇。这是一篇番外——因为它不属于任何一幕，它是贯穿所有幕的那根弦。\n一、一封电报的成本 1838 年，Morse 的印刷厂 1838 年。Samuel Morse 正在设计电报码。\n他面对一个极其实际的问题：每个字母都要用电信号的\u0026quot;点\u0026quot;和\u0026quot;划\u0026quot;来表示，发电报按时间收费。发得越长，花得越多。\n怎样编码，才能让一封电报最便宜？\nMorse 做了一件聪明的事。他没有坐在书房里空想——他跑到印刷厂，去数铅字盒里每个字母的库存量。道理很简单：印刷厂备的铅字越多，说明这个字母在日常文本中出现得越频繁。\n结果一目了然：\n字母 使用频率 莫尔斯电码 符号数 E 12.7% · 1 T 9.1% — 1 A 8.2% · — 2 Z 0.07% — — · · 4 Q 0.10% — — · — 4 E 是英语中最常用的字母，所以它的编码最短——只有一个点。Q 几乎不用，编码就长得多。\nMorse 不知道什么叫\u0026quot;信息论\u0026rdquo;。但他凭直觉做到了一件事：\n越常见的东西，用越短的编码。越罕见的东西，用越长的编码。\n这不只是省钱的技巧。110 年后，一个人会证明：这是宇宙的基本法则之一。\n1948 年，贝尔实验室 快进到 1948 年。新泽西州，贝尔实验室。\n32 岁的 Claude Shannon 发表了一篇论文：A Mathematical Theory of Communication——《通信的数学理论》。\n在此之前，\u0026ldquo;信息\u0026quot;是一个模糊的日常用语。人们说\u0026quot;这条消息信息量很大\u0026rdquo;，就像说\u0026quot;这道菜味道不错\u0026quot;——是一种感觉，无法精确衡量。没有人能回答：\n一条消息到底包含多少信息？ 信息可以被测量吗？就像重量可以用千克、温度可以用度？ 一条消息最少需要多少符号来表达，不多也不少？ Shannon 一个人，回答了所有这些问题。\n就像牛顿给了\u0026quot;力\u0026quot;一个精确定义（F = ma），Shannon 给了\u0026quot;信息\u0026quot;一个精确定义。在此之后，信息不再是一种感觉。它有了单位——bit（比特）。\n二、信息的度量——熵 什么是\u0026quot;信息\u0026quot;？ Shannon 的定义出人意料地简单：\n信息 = 意外程度 = 不确定性的消除\n\u0026ldquo;明天太阳会升起\u0026rdquo;——信息量约等于零，因为你本来就知道它会升起。\n\u0026ldquo;明天有一颗陨石会撞击地球\u0026rdquo;——信息量极高，因为你完全没预料到。\n一个事件越不可能发生，当它真的发生时，你就越惊讶。而这份惊讶，就是它所携带的信息。\nShannon 把这个直觉变成了公式：\n事件 x 的信息量（自信息）：\nI(x) = log₂(1 / P(x)) = −log₂ P(x)\n概率 = 1（必然发生）→ 信息量 = 0 bit 概率 = 1/2（抛硬币）→ 信息量 = 1 bit 概率 = 1/8 → 信息量 = 3 bit 为什么是对数？想象你在猜一个 8 面骰子的结果。朋友告诉你答案——你获得了 3 bit 的信息。为什么是 3？因为你需要问 3 个\u0026quot;是/否\u0026quot;问题：\n\u0026ldquo;是 5 或以上吗？\u0026rdquo; → \u0026ldquo;是 3 或 4 吗？\u0026rdquo; → \u0026ldquo;是 3 吗？\u0026rdquo;\n三次二选一，就够了。每次二选一 = 1 bit。所以 8 种可能性 = log₂(8) = 3 bit。\n1 bit = 一次公平的\u0026quot;是/否\u0026quot;判断所消除的不确定性。 这就是信息的原子。\n如果你读过 第十三篇「概率」，你会发现我们在那里讨论的\u0026quot;不确定性\u0026quot;——在信息论的语言里，有了精确的度量单位。\n熵：平均的惊讶程度 知道了单个事件的信息量之后，Shannon 问了一个更深的问题：\n对于一个信息源——比如英语、比如天气预报、比如股票价格——它平均每发出一个符号，携带多少信息？\n这个\u0026quot;平均信息量\u0026quot;，就是熵（Entropy）：\nH(X) = −∑ P(xᵢ) log₂ P(xᵢ)\n熵 = 每种可能结果的「概率 × 惊讶程度」之和 = 平均惊讶程度\n\u0026ldquo;熵\u0026quot;这个名字借自热力学——这不是巧合。Shannon 当年去请教数学家冯·诺依曼该用什么名字，冯·诺依曼说：\u0026ldquo;叫它\u0026rsquo;熵\u0026rsquo;吧，反正没有人真正理解熵是什么，所以在辩论中你总会占上风。\u0026rdquo;\n这是一个玩笑。但 Shannon 的信息熵和热力学的热力学熵，确实有深层的数学同构——我们后面讲\u0026quot;温度\u0026quot;参数时会再碰到它。\n三种方式理解熵 🎛️ 交互演示：拖动滑块，看熵如何随概率分布变化 第一种：猜谜游戏\n熵 = 平均需要问多少个\u0026quot;是/否\u0026quot;问题才能确定结果。\n公平硬币：H = 1 bit（1 个问题够了） 公平 8 面骰：H = 3 bit（3 个问题） 不公平硬币（99% 正面）：H ≈ 0.08 bit（几乎不用问，你已经知道答案了） 第二种：压缩极限\n这是熵最深刻的含义。Shannon 的信源编码定理证明了：\n任何无损压缩方法，平均每个符号所需的最小 bit 数 = 熵。\n你不可能压得比熵更小——除非你愿意丢失信息。\n这就是 ZIP 文件的理论极限。也是 LLM 的理论极限。\n第三种：模式的度量\n熵最高 = 完全随机 = 无模式可利用 = 不可压缩 熵最低 = 完全确定 = 全是模式 = 极度可压缩 真实世界的数据 = 介于两者之间 = 有模式，但不完全可预测 语言就是这样的数据。\u0026ldquo;q\u0026rdquo; 后面几乎一定跟 \u0026ldquo;u\u0026rdquo;——这是一个模式。\u0026ldquo;the\u0026rdquo; 是最常见的英语单词——这也是模式。这些模式降低了英语的熵，让语言变得可压缩、可预测。\nShannon 的人肉实验 1951 年，Shannon 做了一个非常巧妙的实验。\n他给实验对象看一段英文，然后遮住下一个字母，让他们猜：\n已知：T H E R E I S N O R E V E R ___\n请猜下一个字母。\n大多数人的第一反应：S。\n正确。\u0026ldquo;REVERS\u0026rdquo; 后面几乎一定是 \u0026ldquo;E\u0026rdquo;（completing \u0026ldquo;REVERSE\u0026rdquo;）。\nShannon 记录每个人猜对所需的次数——第一次就猜对，还是试了三四次才中。通过这些数据，他推算出了英语的熵：\n英语 ≈ 1.0 − 1.5 bit/字符\n对比一下：如果 26 个字母加空格完全随机出现，熵 = log₂(27) ≈ 4.75 bit/字符。\n也就是说，英语比随机乱码可以被压缩 3 到 4 倍——因为语言中充满了规律和冗余。\n等一下——这个实验是不是很眼熟？\n让一个人根据前文，预测下一个字符。\n这不就是 GPT 在做的事情吗？\nShannon 在 1951 年用人类当语言模型。今天我们用 Transformer 做同样的事。\n区别只是：GPT 的\u0026quot;实验对象\u0026quot;读过万亿 token 的文本，上下文窗口有百万 token。而人类只有短期记忆的 7±2 个项目。\n但任务完全一样：根据已知的上文，预测下一个符号。\nShannon 甚至在论文中展示了不同\u0026quot;阶\u0026quot;的英语近似——看看它们像不像你调低 GPT 温度参数后的输出：\n阶 生成方式 示例 0 阶 完全随机 XFOML RXKHRJFFJUJ ZLPWCF 1 阶 字母频率 OCRO HLI RGWR NMIELWIS 2 阶 二元组统计 ON IE ANTSOUTINYS ARE T 3 阶 三元组统计 IN NO IST LAT WHEY CRATI 词级 2 阶 词频二元组 THE HEAD AND IN FRONTAL ATTACK ON AN ENGLISH WRITER 从上到下，每一阶都捕获了更多的语言结构——从噪音逐渐变成像样的英语。这恰恰是从 n-gram 模型到神经网络语言模型的演进路线。Shannon 在 1951 年一张表里，预演了 NLP 七十年的进化。\n三、暗线浮现——从熵到 GPT 交叉熵：GPT 在优化什么？ 当你训练一个 GPT 模型，最核心的那一行代码是什么？\nloss = cross_entropy(model_output, target) 交叉熵（Cross-Entropy）。一个信息论概念。\n真实分布 P 和模型分布 Q 之间的交叉熵：\nH(P, Q) = −∑ P(x) log Q(x)\n在语言模型里：\nP = 训练数据（下一个 token 的正确答案，概率 = 1） Q = 模型预测的概率分布 对于单个 token，简化为：\nLoss = −log Q(正确答案)\n直觉很直接：如果模型给正确答案分配了很高的概率（Q = 0.9），loss 就很小（0.15）。如果模型把正确答案的概率压得很低（Q = 0.01），loss 就很大（6.64）。\n训练就是反复调整模型参数，让它给正确答案更高的概率——让 loss 降下来。\n但为什么偏偏是交叉熵？数学上有无数种衡量\u0026quot;模型猜得准不准\u0026quot;的方法。为什么 Shannon 七十多年前定义的这个指标，成了深度学习的默认选择？\n因为交叉熵有一个美妙的性质。它可以分解为：\nH(P, Q) = H(P) + D_KL(P ‖ Q)\nH(P) 是数据本身的真实熵——这是一个常数，和你的模型无关 D_KL(P ‖ Q) 是 KL 散度——衡量模型和现实之间的\u0026quot;差距\u0026rdquo;，永远 ≥ 0 所以最小化交叉熵 = 最小化模型和现实的差距。当 KL 散度降到 0 时，模型完美地拟合了数据——交叉熵就等于真实熵，不可能再低了。\n还记得 Morse 吗？他让常见字母用短编码。GPT 训练时做的事情本质上一样：让模型给更可能出现的 token 分配更高的概率。\nMorse 在压缩电报。GPT 在压缩语言。中间隔了 186 年，用的是同一个原理。\n困惑度：用惊讶衡量模型好坏 研究者用一个叫困惑度（Perplexity）的指标来衡量语言模型的质量。它其实就是熵换了一种写法：\nPPL = 2^{H(P,Q)}\n直觉：模型在每一步平均面临多少个\u0026quot;等可能的选择\u0026quot;。\nPPL = 1：模型对每个 token 都完全确定（不可能的完美） PPL = 10：每步在约 10 个 token 之间犹豫 PPL = 50000：在整个词表里瞎猜（什么都没学到） 模型 困惑度 年代 N-gram 基线 ~140 1990s LSTM ~60 2016 Transformer ~35 2018 GPT-2 ~18 2019 现代 LLM \u0026lt;10 2024+ 从 140 到 10——模型对语言的\u0026quot;惊讶程度\u0026quot;大幅下降。\n或者用我们的话说：模型的压缩能力越来越逼近语言的真实熵。\nKL 散度：串联蒸馏、对齐和一切 如果你读过上一篇 「知识蒸馏」，你已经见过 KL 散度了——蒸馏的核心损失函数就是它。\nD_KL(P ‖ Q) = ∑ P(x) log(P(x) / Q(x))\nKL 散度衡量的是：如果现实是 P，而你却用 Q 来编码——你会多浪费多少 bit？\n它不是一个真正的\u0026quot;距离\u0026quot;（因为不对称：D_KL(P‖Q) ≠ D_KL(Q‖P)），但它衡量的是两个分布之间的\u0026quot;信息差距\u0026quot;。\nKL 散度在 LLM 中无处不在：\n场景 KL 散度怎么用 训练 最小化 H(P,Q) = 最小化 D_KL + 常数 知识蒸馏 让学生模型的分布逼近老师：D_KL(Teacher ‖ Student) RLHF 追求奖励，但不能偏离原始模型太远：Reward − β·D_KL(π_θ ‖ π_ref) DPO KL 约束直接内置在优化目标里 上一篇里我们讲蒸馏时说：学生学的是\u0026quot;老师的犹豫\u0026quot;。现在你知道这个犹豫的数学名字了——它就是老师输出的概率分布，学生通过最小化 KL 散度来模仿它。\n温度——名字的由来 上一篇我们还提到了一个参数：温度（Temperature）。\n$$\\text{softmax}(z_i / T)$$\n为什么叫\u0026quot;温度\u0026quot;？因为这个公式和物理学中的玻尔兹曼分布是同一个数学结构：\n统计力学 LLM 能量 Eᵢ 负 logit −zᵢ 温度 T 温度 T 低温 → 粒子冻结在最低能态 低温 → 贪心选概率最高的 token 高温 → 粒子在所有能态间均匀分布 高温 → 在所有 token 间近似均匀采样 Shannon 的信息熵和热力学的热力学熵，名字相同绝非巧合——它们是同一个数学对象在不同领域的投影。\n温度直接控制的是输出分布的熵。T 低，分布尖锐，熵低，输出确定；T 高，分布平坦，熵高，输出随机。\n四、压缩即智能——从直觉到定理 预测 = 压缩 这是整篇文章最核心的一节。也是博客开篇语的理论根基。\nShannon 的信源编码定理告诉我们，给定一个概率模型，可以用算术编码（Arithmetic Coding）把数据压缩到：\nL = −∑ log₂ P(xₙ | x₁, \u0026hellip;, xₙ₋₁) bit\n这个公式——和交叉熵损失完全一样。\n一个语言模型就是一个压缩器。它的交叉熵损失就是它的压缩率。\n更好的预测 ⟺ 更低的交叉熵 ⟺ 更好的压缩 ⟺ 对数据结构更完整的捕获\n这不是类比。这是数学等价。\n2024 年，DeepMind 发表了一篇论文，标题直截了当：Language Modeling Is Compression。他们用 Chinchilla 70B 模型做通用压缩器：\n压缩文本——超过 gzip 和 bz2 压缩图片——超过 PNG 压缩音频——超过 FLAC 一个在文本上训练的语言模型，居然比专门设计的图片压缩算法和音频压缩算法还会压缩。\n这不是魔法。这是因为压缩的本质就是发现模式。如果一个模型强大到能发现数据中的统计规律——无论这些数据是文字、像素还是声波——它就能把这些规律用来压缩数据。\n回到开篇语 开篇语 里写的\u0026quot;压缩即智能\u0026quot;——现在可以被精确表述了：\nShannon 的信源编码定理证明：\n最优压缩 = 最优预测 = 对数据中所有规律的完整提取\nMarcus Hutter（AIXI 理论的提出者，通用人工智能理论的奠基者之一）设立了 Hutter Prize——悬赏压缩 1GB 的维基百科。他的理由很直接：\n\u0026ldquo;对文本的压缩等价于对文本的理解。\u0026rdquo;\n每一代获奖者都是通过构建更好的预测模型来实现更好的压缩的。\nIlya Sutskever（OpenAI 联合创始人）说过一句广为流传的话：\n\u0026ldquo;如果你把数据压缩得足够好，你就必然提取了其中的所有知识。\u0026rdquo;\n这句话现在可以被精确化了：一个模型的交叉熵损失越低，它从数据中提取的统计结构就越完整。Shannon 在 1948 年就写下了这个等式。我们花了 76 年，才用万亿参数的神经网络去逼近它。\nTokenization 就是压缩 一个你可能没注意到的事实：GPT 用的分词算法 BPE（Byte Pair Encoding），最初是 1994 年作为数据压缩算法被提出的。\nBPE 的过程很简单：\n从单个字符开始 找到最频繁的相邻字符对，合并成一个新 token 重复，直到词表达到目标大小 如果你读过 第一篇「结绳记事」，你可能还记得我们在那篇里用 Python 跑了 OpenAI 的 tokenizer，看中文和英文是怎么被切成 token 的。当时我们关注的是\u0026quot;一一对应\u0026quot;这个思想。现在我们知道了更深一层的东西：\ntokenizer 不只是在\u0026quot;切词\u0026quot;。它在做压缩——用 Morse 的思路：常见的模式，用更短的编码。\n所以 GPT 的整个工作流程，本质上是一个两级压缩系统：\n第一级（BPE tokenization）：字典压缩——把频繁出现的字符组合替换成更短的 token\n第二级（Transformer 预测）：统计压缩——给更可能出现的下一个 token 分配更高的概率\n从头到尾，从 tokenizer 到 loss function，整个 LLM 训练流程都是信息论。\n五、一条暗线——从 1838 到 2025 把时间拉远，你会看到一条异常清晰的线。\n⏳ 从电报到 GPT：信息论的 187 年暗线 从 Morse 的电报码到 GPT 的 softmax，核心原理从未改变：\n建模数据的统计规律 给更可能的模式分配更短的表示 这同时是最优通信，也是最优理解 Morse 1838 年凭直觉做到了第 2 条——E 用最短的编码。Shannon 1948 年用数学证明了为什么。Transformer 2017 年用注意力机制和交叉熵损失，在万亿数据上实践了它。\n最有趣的对比是 Shannon 的 1951 年实验和今天的 GPT：\nShannon 的实验（1951） 现代 LLM 预测者 人类 Transformer 输入 前面的字符 前面的 token 输出 排序的猜测 完整概率分布 上下文窗口 工作记忆（7±2 项） 4K ~ 1M+ token 训练数据 一生的阅读 万亿 token 测量什么 英语的熵 交叉熵损失 本质 人类做语言模型 神经网络做语言模型 任务完全相同：根据上文，预测下一个符号。\nShannon 用人做了这件事。我们用硅片做同样的事。但底层的数学——熵、交叉熵、概率分布——完全一样。\n六、回望——那根贯穿所有篇章的弦 回头看「看见数学」的十六篇，信息论是那条一直在暗处运行的线索。\n篇章 表面的主题 信息论的暗线 第 1 篇：结绳记事 一一对应，抽象 最早的编码方式 第 7 篇：指数 指数增长 信息量 = log(1/P)——对数是信息的度量 第 8 篇：三角函数 圆与波 傅里叶变换 = 信号的频率分解 = 一种压缩 第 13 篇：概率 拥抱不确定 概率是信息论的基础语言 第 14 篇：高维 超越想象力 高维空间中的编码效率 第 15 篇：梯度下降 数学会学习 训练 = 最小化交叉熵 = 最大化压缩效率 第 16 篇：终章 数学是望远镜 信息论是望远镜的光学理论 如果数学是人类的望远镜，信息论就是这架望远镜的光学原理。\n它不告诉你看到什么。它告诉你：任何望远镜都有分辨率的极限。这个极限就是熵。你能做的最好的事，就是无限逼近这个极限——用更大的镜片（更多的参数），更精确的磨制（更好的训练方法），更长的曝光时间（更多的数据）。\nShannon 在 1948 年画出了极限的形状。七十六年来，从 n-gram 到 LSTM 到 Transformer，我们一直在向那个极限靠近。\n最后 Shannon 1948 年的论文，标题叫 A Mathematical Theory of Communication。\nCommunication。沟通。\n七十六年后，我们用他的理论造出了人类历史上最强大的\u0026quot;沟通\u0026quot;工具——大语言模型。它能用几十种语言和你对话，能帮你写代码写文章，能回答你几乎所有的问题。\n但 Shannon 的理论也留下了一个它自己无法回答的问题。\n当一个系统完美地压缩了人类的语言——它理解了语言吗？\nShannon 会说：从信息论的角度，\u0026ldquo;压缩\u0026quot;和\u0026quot;理解\u0026quot;是同一个操作。预测就是压缩，压缩就是建模，建模就是提取所有的结构和规律。\n但我们还是会追问：一个完美的压缩器，和一个真正理解语言的心灵——它们之间，差的是什么？\n也许差的不是数学。也许差的是某种数学尚未发明出来的东西。\n或者——也许什么都不差。\nShannon 的论文最后一页，致谢了他在贝尔实验室的同事们。他感谢他们提供了\u0026quot;有益的建议和批评\u0026rdquo;。\n七十六年后的今天，一个被训练在万亿 token 上的 Transformer 模型，在逼近他论文里推导出的理论极限。\n他大概不会觉得意外。毕竟他在 1951 年就用人做了同样的实验——只不过，那时候的\u0026quot;语言模型\u0026quot;是坐在实验室里的人类志愿者，上下文窗口只有他们的短期记忆，训练数据是他们活到那时为止读过的所有文字。\n本质上，没有任何区别。\n📚 引用与延伸阅读\nShannon, C.E. (1948). A Mathematical Theory of Communication. Bell System Technical Journal. Shannon, C.E. (1951). Prediction and Entropy of Printed English. Bell System Technical Journal. Hinton, G. et al. (2015). Distilling the Knowledge in a Neural Network. arXiv:1503.02531. Delétang, G. et al. (2024). Language Modeling Is Compression. ICLR 2024. Hutter Prize: prize.hutter1.net 💡 相关文章\n压缩即智能——开篇语 看见数学（十三）：概率——拥抱不确定 看见数学（十五）：梯度下降——数学会学习 看见数学（十六）：终章——数学是人类的望远镜 当模型学会「偷师」——知识蒸馏、版权战争与学习的边界 《看见数学》系列 — 从结绳记事到 AI，看见数学之美。\n本文首发于「AI 学习笔记」博客：https://Jason-Azure.github.io/ai-blog/\n微信公众号：AI-lab学习笔记\n系列文章完整列表见 标签：看见数学\n","permalink":"https://jason-azure.github.io/ai-blog/posts/see-math-extra-information-theory/","summary":"Shannon 1948 年证明了一件事：压缩 = 预测 = 理解。76 年后，我们用万亿参数的神经网络去逼近他的定理。这是贯穿「看见数学」所有篇章的那条暗线。","title":"看见数学（番外）：信息论——从电报到 GPT 的一条暗线"},{"content":" 从 Shannon 1948 年的一个简单问题出发，理解为什么 GPT 的 loss 必须是 -log(p)，而不是别的东西。\n本文基于 microgpt（Andrej Karpathy 的 200 行 GPT 实现）中的 loss 计算，追溯其理论根源。\n1. 从一个直觉问题开始 假设你在训练一个模型，让它预测下一个字符。模型输出了 27 个字符的概率分布，正确答案是字符 e。\n问：模型猜得好不好？用什么数字来衡量？\n你可能想到几种方案：\n方案 公式 p=0.9 时 p=0.01 时 问题 直接用概率 1 - p 0.1 0.99 猜错得多离谱，惩罚都差不多 平方误差 (1-p)² 0.01 0.98 同上，区分度太低 负对数 -ln(p) 0.11 4.61 对\u0026quot;自信地猜错\u0026quot;惩罚极重 ✓ -ln(p) 不是拍脑袋想出来的——它有深厚的数学根基。\n2. 指数与对数：互为逆运算 指数：已知次数，求结果 2³ = 8 e¹ ≈ 2.718 10² = 100\n对数：已知结果，求次数 log₂(8) = 3 ln(e) = 1 log₁₀(100) = 2\n对数就是指数的反问题。 就像加法和减法、乘法和除法一样，它们是一对互逆运算。\n特别地，自然对数 ln(x) = logₑ(x)，底数是 e ≈ 2.71828。\n命名混乱提醒：在编程中（Python math.log、PyTorch torch.log）和论文中，log 几乎总是指 ln（自然对数）。只有数学课本里才严格区分 ln 和 log。\n为什么选 e 做底数？ 因为 e 有一个独一无二的性质：\nd/dx (eˣ) = eˣ\ne 的 x 次方，求导后还是自己。 这让所有包含 e 的微积分运算都特别简洁——没有多余的系数。\n所以 ln(x) 的导数也极其简单：d/dx ln(x) = 1/x\n这个 1/x 的简洁导数，正是 microgpt 代码中写的：\ndef log(self): # 对数的导数：∂ln(a)/∂a = 1/a return Value(math.log(self.data), (self,), (1/self.data,)) 3. Shannon 的信息量：-log(p) 的诞生 源头：一个关于\u0026quot;惊讶\u0026quot;的公理 1948 年，Claude Shannon 在他的开创性论文 A Mathematical Theory of Communication 中提出了一个问题：\n如何用数学来衡量一个事件包含多少\u0026quot;信息\u0026quot;？\nShannon 提出了三个看似平凡的公理：\n概率越小的事件，信息量越大。（\u0026ldquo;太阳明天升起\u0026quot;没什么信息量，\u0026ldquo;中了彩票\u0026quot;信息量巨大。） 确定事件的信息量为零。（p=1 时，I=0。） 独立事件的信息量可以相加。（先中彩票再被雷劈，总信息量 = 中彩票的信息量 + 被雷劈的信息量。） 唯一满足这三条的函数 Shannon 用数学严格证明了：满足以上三条的函数，有且只有一个形式：\nI(x) = −log p(x)\n证明关键：公理 3 要求 I(A∩B) = I(A) + I(B)，对于独立事件 p(A∩B) = p(A)·p(B)。 要把\u0026quot;乘法\u0026quot;变成\u0026quot;加法\u0026rdquo;，数学中只有对数能做到：log(a·b) = log(a) + log(b)。\n这就是为什么 -log(p) 不是人为选择的——它是满足\u0026quot;信息量\u0026quot;这个概念的唯一数学形式。\n参考文献：\nShannon, C. E. (1948). A Mathematical Theory of Communication. Bell System Technical Journal, 27(3), 379-423. 这是信息论的奠基之作，至今被引用超过 16 万次。\n4. 从信息量到熵 H(p) 单个事件有\u0026quot;信息量\u0026rdquo;，那一个概率分布的整体不确定性是多少？Shannon 定义了熵（Entropy）：\nH(p) = −∑ᵢ p(xᵢ) log p(xᵢ) = E[−log p(x)]\n熵 = 信息量的期望值 = 平均惊讶程度。\n直觉理解 公平硬币（正反各 50%）：H = 1 bit → 最大不确定性 作弊硬币（99% 正面）：H ≈ 0.08 bits → 几乎没有不确定性 一定是正面（100%）：H = 0 → 完全确定 熵的物理含义 H 的值 = 用最优编码传输这个分布的信息，平均每个符号最少需要多少 bit。\n这不是比喻——这是 Shannon 的精确定理。\n5. 交叉熵 H(p,q)：模型的\u0026quot;平均惊讶度\u0026quot; 现在到了关键概念。假设：\np = 真实分布（数据的真相） q = 模型的预测分布 交叉熵衡量的是：用模型 q 的编码方案，去编码真实数据 p，平均每个符号需要多少 bit？\nH(p, q) = −∑ᵢ p(xᵢ) log q(xᵢ)\n在分类中的简化 在分类任务中，真实分布 p 是 one-hot（正确类别概率=1，其余=0），所以求和中只剩一项：\nH(p, q) = −log q(y_target)\n这就是 microgpt 里的 loss！\nloss_t = -probs[target_id].log() # 就是 -log(q(target)) 为什么叫\u0026quot;交叉\u0026quot;熵？ 因为它\u0026quot;交叉\u0026quot;使用了两个分布：\n用 p 的概率加权（哪些事件重要） 用 q 的对数计算（模型认为的编码长度） 6. KL 散度：交叉熵减去熵 KL 散度（Kullback-Leibler Divergence）衡量两个分布的\u0026quot;差距\u0026quot;：\nD_KL(p ‖ q) = ∑ᵢ p(xᵢ) log(p(xᵢ) / q(xᵢ))\n它和交叉熵的关系极其简洁：\nH(p, q) = H(p) + D_KL(p ‖ q)\n即：交叉熵 = 真实熵 + 分布差距\n为什么在训练中可以直接用交叉熵？ 因为真实分布 p 是固定的（来自训练数据），所以 H(p) 是常数。优化时：\nmin_q H(p, q) = min_q [H(p) + D_KL(p ‖ q)] = H(p) + min_q D_KL(p ‖ q)\n最小化交叉熵 ⟺ 最小化 KL 散度 ⟺ 让模型分布尽可能接近真实分布。\n参考文献：\nKullback, S. \u0026amp; Leibler, R. A. (1951). On Information and Sufficiency. Annals of Mathematical Statistics, 22(1), 79-86. KL 散度的原始定义论文。\n7. 最大似然估计 MLE = 最小化交叉熵 这是一个令人惊叹的等价关系。\n从统计学的角度 给定 N 个训练样本 {x₁, x₂, \u0026hellip;, xₙ}，最大似然估计（MLE） 要找模型参数 θ，使得：\nmax_θ ∏ᵢ q_θ(xᵢ) （数据在模型下的概率最大）\n取对数（不改变最优解）：\nmax_θ ∑ᵢ log q_θ(xᵢ)\n加个负号，变成最小化：\nmin_θ −∑ᵢ log q_θ(xᵢ) = min_θ ∑ᵢ [−log q_θ(xᵢ)]\n这不就是交叉熵吗？ 交叉熵 = −∑ᵢ p(xᵢ) log q(xᵢ) ≈ −(1/N) ∑ᵢ log q_θ(xᵢ)\n结论：\n最小化交叉熵 = 最小化 KL 散度 = 最大似然估计\n三条独立发展的数学道路，最终指向同一个公式：-log(p)。\n这就是为什么说 -log(p) 有\u0026quot;深厚的理论支撑\u0026quot;——不是一个启发式技巧，而是三个数学分支的必然交汇点。\n参考文献：\nBishop, C. M. (2006). Pattern Recognition and Machine Learning. Springer. Chapter 1.6.1 (KL Divergence), Chapter 4.3.4 (MLE for logistic regression). Goodfellow, I., Bengio, Y., \u0026amp; Courville, A. (2016). Deep Learning. MIT Press. Section 3.13 (Information Theory), Section 5.5 (Maximum Likelihood Estimation). 8. 为什么不用 MSE？—— 梯度分析 理论上 MSE（均方误差）也能用，但实际表现差很多。原因在梯度：\nCross-Entropy 的梯度 L_CE = −log(σ(z)) ⟹　∂L/∂z = σ(z) − y\n其中 σ 是 sigmoid/softmax。当模型严重猜错时（σ(z) 远离 y），梯度很大，模型快速纠正。\nMSE 的梯度 L_MSE = (σ(z) − y)² ⟹　∂L/∂z = 2(σ(z) − y) · σ'(z)\n多出一个 σ'(z) 因子。sigmoid 的导数在两端趋近于零（饱和区），所以当模型严重猜错时，梯度反而很小 → 学习停滞！\n这就是 梯度消失（Vanishing Gradient） 问题。\n实验验证 Golik et al. (2013) 在语音识别任务上实验证明：\n\u0026ldquo;用随机初始化权重时，MSE 训练的神经网络无法收敛到好的局部最优。\u0026rdquo; 但如果先用交叉熵预训练，再用 MSE 微调，可以获得微小的额外提升。\n结论：Cross-Entropy 是训练分类神经网络的默认选择，MSE 只适合做微调。\n参考文献：\nGolik, P., Doetsch, P., \u0026amp; Ney, H. (2013). Cross-Entropy vs. Squared Error Training: A Theoretical and Experimental Comparison. Proc. Interspeech 2013, 1756-1760.\n9. Softmax + Cross-Entropy 的数值技巧 microgpt 的做法（教学版） # 第一步：softmax max_val = max(val.data for val in logits) exps = [(val - max_val).exp() for val in logits] # 减去 max 防溢出 total = sum(exps) probs = [e / total for e in exps] # 第二步：取负对数 loss = -probs[target_id].log() 分两步算，清晰但有数值风险：softmax 可能输出极小的浮点数（如 1e-38），再取 log 会放大误差。\nPyTorch 的做法（生产版） PyTorch 的 F.cross_entropy() 把两步合并，用 log-sum-exp trick：\n−log(e^z_t / ∑_j e^z_j) = −z_t + log(∑_j e^z_j)\n直接用 logits 计算，避免了中间产生极小浮点数，数值更稳定。\n10. 在 microgpt 中看到这一切 microgpt 用 200 行代码展示了上述所有理论的工程实现：\n# 训练循环（microgpt_words.py 第 402-444 行） for step in range(num_steps): doc = docs[step % len(docs)] tokens = [BOS] + [char_to_id[ch] for ch in doc] + [BOS] for pos_id in range(n): token_id = tokens[pos_id] target_id = tokens[pos_id + 1] # 前向传播：模型预测 logits = gpt(token_id, pos_id, keys_t, values_t) # Softmax → 概率分布 probs = softmax(logits) # Cross-Entropy Loss = -log(正确答案的概率) # = Shannon 的信息量 # = 负对数似然 # = 模型对正确答案的\u0026#34;惊讶程度\u0026#34; loss_t = -probs[target_id].log() losses.append(loss_t) # 平均 loss loss = (1 / n) * sum(losses) # 反向传播 + Adam 更新 loss.backward() # ... (Adam optimizer) ... 训练过程可视化 训练开始时：\nLoss ≈ ln(27) ≈ 3.30（随机猜 27 个字符之一） 模型对每个字符\u0026quot;同样惊讶\u0026quot; 训练结束时：\nLoss ≈ 2.5 模型学会了英文名字的模式（e 后面常接 n、r、s\u0026hellip;） 11. 总结与参考文献 一句话总结 -log(p) 是满足\u0026quot;信息量\u0026quot;公理的唯一函数，用它做 loss 等价于最大似然估计、最小化 KL 散度——这不是经验选择，是数学必然。\n关键公式速查 概念 公式 含义 信息量 I(x) = −log p(x) 一个事件包含多少信息 熵 H(p) = −∑ p·log(p) 一个分布的平均不确定性 交叉熵 H(p,q) = −∑ p·log(q) 用 q 编码 p 的平均代价 KL 散度 D(p‖q) = H(p,q) − H(p) p 和 q 的分布差距 CE Loss L = −log q(target) 交叉熵在 one-hot 下的简化 完整参考文献 Shannon, C. E. (1948). A Mathematical Theory of Communication. Bell System Technical Journal, 27(3), 379-423. [PDF] — 信息论奠基之作。定义了信息量、熵、信道容量等核心概念。\nKullback, S. \u0026amp; Leibler, R. A. (1951). On Information and Sufficiency. Annals of Mathematical Statistics, 22(1), 79-86. [JSTOR] — KL 散度的原始定义。\nGolik, P., Doetsch, P., \u0026amp; Ney, H. (2013). Cross-Entropy vs. Squared Error Training: A Theoretical and Experimental Comparison. Proc. Interspeech 2013, 1756-1760. [PDF] — 实验证明 MSE 从随机初始化无法收敛，而交叉熵可以。\nBishop, C. M. (2006). Pattern Recognition and Machine Learning. Springer. — Chapter 1.6.1: KL 散度；Chapter 4.3.4: 逻辑回归的 MLE 推导。\nGoodfellow, I., Bengio, Y., \u0026amp; Courville, A. (2016). Deep Learning. MIT Press. [在线] — Section 3.13: 信息论；Section 5.5: 最大似然估计；Section 6.2.2: 交叉熵与 softmax。\nKarpathy, A. (2024). microgpt. [Gist] — 200 行纯 Python 实现的完整 GPT，本文的代码示例来源。\nRubner, Y., Tomasi, C., \u0026amp; Guibas, L. J. (2000). The Earth Mover\u0026rsquo;s Distance as a Metric for Image Retrieval. International Journal of Computer Vision, 40(2), 99-121. — 对比分布差异的其他度量方法。\nCover, T. M. \u0026amp; Thomas, J. A. (2006). Elements of Information Theory, 2nd ed. Wiley. — 信息论权威教材。Chapter 2, 8 覆盖熵、KL 散度的严格证明。\nMurphy, K. P. (2012). Machine Learning: A Probabilistic Perspective. MIT Press. — Section 2.8: 信息论基础；Section 8.3: 逻辑回归与交叉熵推导。\n推荐阅读 Chris Olah (2015). Visual Information Theory — 用 Alice 和 Bob 通信的比喻，直观解释熵、交叉熵和 KL 散度。强烈推荐！ Lei Mao (2019). Cross Entropy, KL Divergence, and Maximum Likelihood Estimation — 三者等价性的数学推导。 Stanford CS231n — Linear Classification (Softmax) — Softmax 分类器的信息论解释。 💡 相关文章\n看见数学（番外）：信息论——从电报到 GPT 的一条暗线 看见数学（十五）：梯度下降——数学会学习 LLM 训练全流程详解 本文首发于「AI 学习笔记」博客：https://Jason-Azure.github.io/ai-blog/\n微信公众号：AI-lab学习笔记\n\u0026ldquo;This file is the complete algorithm. Everything else is just efficiency.\u0026rdquo; — Andrej Karpathy, microgpt\n同样地，-log(p) 就是完整的 loss 函数。PyTorch 的 F.cross_entropy() 做的一切，都只是效率和数值稳定性的优化。\n","permalink":"https://jason-azure.github.io/ai-blog/posts/cross-entropy-loss/","summary":"从 Shannon 1948 年的三条公理出发，理解为什么 GPT 的 loss 必须是 -log(p)：它是满足「信息量」定义的唯一函数，用它做 loss 等价于最大似然估计和最小化 KL 散度——这不是经验选择，是数学必然。","title":"为什么用 -log(p) 做损失函数？—— 从信息论到 Cross-Entropy 的完整推导"},{"content":" 我用纯 Python 和 NumPy 从零写了一个神经网络——10 个神经元，7960 个参数，用来识别手写数字。然后我把它拆开，看懂了它的每一个参数在做什么。这篇文章从这个最简单的网络出发，聊聊神经网络到底是怎么工作的，以及它和今天的 ChatGPT 之间的关系。\n① 数据与结构 → ② 前向传播 → ③ 损失函数与反向传播 → ④ 拆开黑盒 → ⑤ FNN → CNN → RNN → Transformer → ⑥ 当下的大模型 → ⑦ 可解释性的边界\n写在前面 前段时间用 Python 从零写了一个神经网络。\n没有 PyTorch，没有 TensorFlow，没有任何框架。就是矩阵乘法和梯度下降。\n它只有 10 个神经元，7960 个参数，任务是识别手写数字 0-9。训练 500 步之后，准确率 85%。我写了个小程序，用鼠标画数字，它能认出来。\n写完之后，我把它拆开了。W1 矩阵 reshape 成图片，W2 矩阵画成热力图，把每一张图的决策路径可视化。7960 个参数全部摊开，看看它到底学到了什么。\n然后我发现一件事：**这个只有 10 个神经元的小网络，和 GPT-4 用的是同一套数学。**点积、Softmax、梯度下降——一模一样。区别只是规模和架构。\n这篇文章就从这个小网络出发，聊聊神经网络在做什么，FNN、CNN、RNN、Transformer 各自解决了什么问题，以及它们和今天的大语言模型之间的关系。\n一、数据：一张图片就是 784 个数字 先说数据。MNIST 数据集有 42000 张手写数字图片，每张 28×28 像素的灰度图。\n每个像素是一个 0-255 的灰度值：0 = 黑，255 = 白。一张 28×28 的图就是 784 个数字。\n把 784 个像素值排成一行，这张图就变成了一组数字——一个 784 维的向量。这就是神经网络的输入。\n二、结构：784 → 10 → 10 网络很简单，三层：\n输入层：784 个节点，对应 784 个像素 隐藏层：10 个神经元（这就是网络学到\u0026quot;知识\u0026quot;的地方） 输出层：10 个节点，对应数字 0-9 的概率 参数量：\nW1 (10×784) + b1 (10) = 7850 W2 (10×10) + b2 (10) = 110 共 7960 个参数 数据在进网络之前做了两步预处理：\n三、前向传播：四步算出一个预测 把一张图片喂给网络，它做四步运算：\n第一步：加权求和 $$Z_1 = W_1 \\times X + b_1$$\n每个隐藏神经元把 784 个像素值和自己的 784 个权重逐一相乘再相加。这个操作叫点积——本质上是在算\u0026quot;这张图和我的模板有多像\u0026quot;。\n换一个角度看：W1 是一个 10×784 的矩阵，X 是一个 784×1 的向量。Z1 = W1 × X 就是一次矩阵乘法——10 个神经元同时和整张图做点积，一次算完。这正是神经网络里矩阵运算和神经元之间最直接的关系：**每一行权重就是一个神经元，矩阵乘法就是所有神经元同时\u0026quot;看\u0026quot;一张图。**理解了这一步，后面 Transformer 里的 Q·Kᵀ 也是同一个操作——只不过维度从 784 变成了几千。\n第二步：ReLU 激活 $$A_1 = \\max(0, Z_1)$$\n负数变 0，正数不变。听起来简单，但没有它，两层线性运算叠在一起还是线性运算——等于白叠了一层。ReLU 引入了非线性，让网络有了\u0026quot;取舍\u0026quot;的能力：匹配的保留，不匹配的闭嘴。一个 ReLU 产生一个\u0026quot;折\u0026quot;，多个折就能逼近任意曲线——这就是万能近似定理的直觉。\n第三步：再来一次加权求和 $$Z_2 = W_2 \\times A_1 + b_2$$\n第二层把 10 个神经元的输出组合起来，形成对 10 个数字的\u0026quot;打分\u0026quot;。\n第四步：Softmax 转概率 $$A_2 = \\frac{e^{z_i}}{\\sum e^{z_j}}$$\n把原始分数变成 0 到 1 之间的概率，总和为 1。最大概率对应的数字就是答案。\n这四步就是\u0026quot;前向传播\u0026quot;。数据从左到右流过网络，变成一个预测。每一步都是简单的算术——乘法、加法、取最大值、指数。没有魔法。\n四、训练：怎么从错误中学习 损失函数 模型预测 P(3) = 73%，真实答案确实是 3。不错，但 73% 不是 100%。怎么量化\u0026quot;还不够好\u0026quot;？用交叉熵损失（Cross-Entropy Loss）：\n$$Loss = -\\ln(P(\\text{正确答案})) = -\\ln(0.73) = 0.31$$\n预测完美时 Loss = 0，预测越差 Loss 越大。训练的目标就是让 Loss 越来越小。\n为什么偏偏是 −log(p)？这背后有 Shannon 信息论的深层原因——交叉熵衡量的是\u0026quot;模型的平均惊讶度\u0026quot;。这个话题我写过一篇完整的推导：《为什么用 -log(p) 做损失函数？——从信息论到 Cross-Entropy 的完整推导》，从 Shannon 的三条公理出发，证明 −log(p) 是唯一满足所有条件的函数——它不是经验选择，而是数学必然。\n反向传播 反向传播回答一个问题：每个参数对这次的错误贡献了多少？从输出层开始往回推，用链式法则算出每个参数的梯度——Loss 对该参数的偏导数。\n关键公式出奇地简洁：\n输出层误差：dZ2 = A2 − Y ← softmax + 交叉熵联合求导，完美约分 第二层权重：dW2 = dZ2 × A1.T ← 误差 × 输入 隐藏层误差：dZ1 = W2.T × dZ2 × (Z1 \u0026gt; 0) ← 误差传回 + ReLU 的门 第一层权重：dW1 = dZ1 × X.T ← 同样的模式 dZ2 = A2 − Y 为什么这么简洁？因为 Softmax 用的 eˣ 和交叉熵用的 ln 天生互为逆运算，求导时完美抵消，最终只剩下\u0026quot;预测值 − 真实值\u0026quot;。\n梯度下降 算出梯度之后，用它更新参数：\nW1 -= lr × dW1 # lr = 学习率，控制每步走多大 W2 -= lr × dW2 b1 -= lr × db1 b2 -= lr × db2 梯度指向\u0026quot;上坡方向\u0026quot;，减去梯度就是\u0026quot;下坡\u0026quot;——让 Loss 变小。\n神经网络学习的全部流程： 前向传播 → 计算损失 → 反向传播 → 更新参数 → 重复\n每重复一次，模型就准一点点。下面是实际的训练曲线——Loss 从 2.3 降到 0.5，准确率从 10% 涨到 85%：\n训练完成后，看看它在测试集上的表现——绿色是对的，红色是错的：\n五、拆开黑盒：它到底学到了什么 训练完成后，7960 个参数不再是随机数。它们变成了某种\u0026quot;知识\u0026quot;。\n我把 W1 的每一行——784 个权重——重新排列成 28×28 的图片，想看看每个神经元在\u0026quot;找什么\u0026quot;：\n红色区域 = \u0026ldquo;我期望这里有笔画\u0026rdquo;。蓝色区域 = \u0026ldquo;我期望这里是空白\u0026rdquo;。没有人教它什么数字长什么样——这 10 张模板是它从 42000 张图片中自己\u0026quot;长\u0026quot;出来的。\n然后看 W2——一个 10×10 的投票矩阵。它决定了每个模板匹配后，给哪个数字投多少票：\n这个网络的识别方式不是\u0026quot;理解\u0026quot;——而是模板匹配 + 投票：\n拿到一张图，和 10 个模板逐一比较（点积 = 相似度打分） 只保留匹配的（ReLU 把负分清零） 匹配的模板按权重投票（W2 矩阵） 票最多的数字就是答案 下面这张图把整个决策过程展开了。三张不同的输入图片，从左到右依次是：输入 → 哪些神经元被激活 → 10 个数字各得多少概率 → 最终预测：\n再具体一点——为什么某个神经元会\u0026quot;激活\u0026quot;？因为输入和模板长得像。下面的图把一张数字\u0026quot;5\u0026quot;和最匹配的模板叠在一起看：\n到这里，一个神经网络的工作原理就说完了。矩阵乘法就是所有神经元同时\u0026quot;看\u0026quot;一张图，ReLU 给每个结果\u0026quot;折\u0026quot;一下，梯度下降沿着下坡方向调整参数——这不是某一种网络特有的东西，这是所有神经网络共享的基础。关于矩阵乘法在几何上到底做了什么——旋转、缩放、剪切——以及这些 2D 变换如何直接对应 GPT 里的 QKV 投影，我在**《一看就懂：矩阵乘法到底对 LLM 做了什么？》**里用动图演示过。后面要聊的 CNN、RNN、Transformer，改变的只是前向传播里\u0026quot;怎么算\u0026quot;的部分，训练循环始终不变。\n六、FNN 的问题，以及 CNN 怎么解决的 85% 的准确率不算差，但最好的模型能到 99.7%。差在哪？\n我们的网络把 28×28 的图片拍平成了 784 个数字，丢失了所有空间结构。打个比方：把一张照片剪成 784 个碎片扔给你，让你猜是什么数字——你能猜个大概，但肯定不如看完整照片准。\n具体来说：数字往左移两个像素，匹配分数就变了（没有位移不变性）；它看的是全局模板，认不出\u0026quot;一个小圆弧\u0026quot;或\u0026quot;一条竖线\u0026quot;这种局部笔画（没有局部特征）。\n**CNN（卷积神经网络）**的思路是：不看整张图，用小窗口扫描局部。\nFNN: 整张图(784) → 全局模板匹配 CNN: 小窗口(3×3) → 在图上从左到右、从上到下滑动 → 找局部特征 CNN 的卷积核就是小版的\u0026quot;模板\u0026quot;。一个 3×3 的小矩阵在图片上滑动，每到一个位置做一次点积。因为同一个卷积核在所有位置共享权重，所以数字写在哪都能检测到——这就是位移不变性。\n多层 CNN 从低到高提取特征：低层找边缘，中层找笔画，高层找整体形状。最后几层通常就是全连接层——也就是我们写的 FNN。CNN = 卷积提特征 + FNN 做分类。\n输入 (28×28) → 卷积层 → 池化 → 卷积层 → 池化 → 全连接层 → 输出 (找边缘) (找笔画) (做分类) CNN 在 MNIST 上能到 99% 以上。代表作：LeNet（1998）、AlexNet（2012，引爆深度学习革命）、ResNet（2015，152 层）。从感知机被一本书判了死刑，到深度学习靠改名字重获新生——这段 80 年的曲折历程，我在**《神经网络沉浮录：从万众瞩目到无人问津，再到改变世界》**里讲过。\n但 CNN 是为图像设计的，文本不是图片。怎么办？\n七、RNN：给网络装上记忆 文本和图片有本质区别：文本是序列，字的顺序至关重要。\u0026ldquo;狗咬了人\u0026quot;和\u0026quot;人咬了狗\u0026quot;用一样的字，意思完全不同。\n**RNN（循环神经网络）**的做法是：处理每个字的时候，带着前面的记忆。\n\u0026#34;我\u0026#34; → [RNN] → h1 (记住了\u0026#34;我\u0026#34;) \u0026#34;喜\u0026#34; → [RNN] → h2 (记住了\u0026#34;我喜\u0026#34;) \u0026#34;欢\u0026#34; → [RNN] → h3 (记住了\u0026#34;我喜欢\u0026#34;) \u0026#34;猫\u0026#34; → [RNN] → h4 (记住了\u0026#34;我喜欢猫\u0026#34;) → 输出 每一步，RNN 接收当前输入和上一步的隐藏状态 h，输出新的隐藏状态。h 就是\u0026quot;记忆\u0026rdquo;。\n问题在于：读到第 100 个字的时候，第 1 个字的信息已经在 99 次变换中稀释殆尽了。这叫梯度消失——反向传播经过 100 层链式法则，梯度指数衰减。LSTM 和 GRU 通过\u0026quot;门控\u0026quot;机制缓解了这个问题，但治标不治本。\n2017 年之前，NLP 主要靠 RNN / LSTM。Google 翻译、Siri 背后都是它。\n然后有一篇论文改变了一切。\n八、Transformer：Attention Is All You Need 2017 年，Google 发了一篇论文，标题叫 \u0026ldquo;Attention Is All You Need\u0026rdquo;。此后，GPT、BERT、Claude、DeepSeek、Llama——全部基于这篇论文提出的 Transformer 架构。\n核心想法：自注意力（Self-Attention） RNN 必须一个字一个字地读，第 100 个字很难回忆第 1 个字。Transformer 的做法是：让每个字直接和所有其他字交互。\nRNN: 我 → 喜欢 → 可爱的 → 猫 (串行，\u0026#34;猫\u0026#34;很难回看\u0026#34;我\u0026#34;) Transformer: 我 ←→ 喜欢 ←→ 可爱的 ←→ 猫 (并行，每个字直接看所有字) 具体做法：每个字被变换成三个向量——Query（我在找什么）、Key（我有什么）、Value（我的内容）。然后用 Q 和 K 做点积算相关性，再用这个相关性对 V 做加权求和。\n注意力得分 = Q · Kᵀ / √d ← 又是点积 注意力权重 = Softmax(得分) ← 又是 Softmax 输出 = 注意力权重 × V ← 加权求和 点积和 Softmax——和我们那个 10 个神经元的小网络用的是一样的数学运算。我们的网络是\u0026quot;拿模板去匹配图片\u0026quot;，Transformer 是\u0026quot;让句子里的每个词互相匹配\u0026quot;。底层数学没变，维度变了，几何没变。关于 Attention 机制的完整拆解，我写过**《从加减乘除到预测下一个字：Attention 机制零基础拆解》，从向量相似度一路推到多头注意力。而 QKV 为什么要分成三个矩阵、背后涉及的符号接地问题和分布式假说，在《从语言的本质到 Attention 的诞生——QKV 为什么长这样》**里有更深的追问。\nTransformer vs RNN RNN Transformer 处理方式 串行，一个一个读 并行，全部同时看 长距离依赖 越远越弱 直接点积，距离无关 训练速度 慢（没法并行） 快（GPU 友好） 一个 Transformer 层 = 自注意力 + 前馈网络（MLP） + 残差连接 + 层归一化。堆 N 层就是一个完整的模型：\n输入 → Embedding → [Attention + MLP] × N 层 → 输出\n九、四代架构回顾 FNN CNN RNN Transformer 核心运算 W·X 矩阵乘 卷积核滑动 隐藏状态传递 Q·Kᵀ·V 擅长 分类 / 回归 图像识别 序列处理 几乎一切 弱点 无空间感知 处理不了序列 长距离遗忘 计算量大 MNIST ~85% ~99%+ 能做但不适合 大材小用 代表 本文 Demo ResNet LSTM GPT / Claude 年代 1960s 1990s–2012 1990s–2017 2017–至今 无论架构怎么变，训练循环始终不变：前向传播 → 计算损失 → 反向传播 → 更新参数 → 重复。理解了这个循环——也就是前面用 MNIST 讲的全部内容——就理解了所有神经网络最核心的部分。\n十、当下的大模型 我们的小网络有 7960 个参数。看看现在真实运行的大语言模型：\n我们的 NN Llama 3.1 405B DeepSeek-V3 GPT-4 参数量 7,960 4,050 亿 6,710 亿 ~1.76 万亿 层数 2 126 61 ~120 训练数据 4.2 万张图 15.6 万亿 token 14.8 万亿 token ~13 万亿 token 架构 FNN Dense Transformer MoE Transformer MoE Transformer GPT-4 的参数量是我们模型的 2.2 亿倍。但底层原理是一样的——矩阵乘法、激活函数、梯度下降。区别在于 Transformer 架构和规模带来的涌现。关于 AI、Machine Learning、Deep Learning、LLM 之间的嵌套关系，我在**《AI 全景定位：从概念迷雾到清晰地图》**里画过一张完整的地图。\n几个关键区别 **分词（Tokenization）。**我们的输入是像素值，LLM 的输入是文字。GPT 把文本拆成 token——大约是半个到一个英文单词，或一个到几个中文字符。每个 token 查一张嵌入表，变成高维向量。\n**自回归生成。**我们的网络一次输出 10 个概率。LLM 一个字一个字地生成——预测下一个 token，然后把它加到输入里，再预测下一个。ChatGPT 一个字一个字往外蹦，就是在做这个。\n**混合专家（MoE）。**DeepSeek-V3 有 6710 亿参数，但每次推理只激活约 370 亿。网络里有 256 个\u0026quot;专家\u0026quot;子网络，每个 token 只路由到最相关的 8 个。\n关于预训练、SFT、RLHF 三个阶段分别在做什么——以及为什么\u0026quot;一杯水\u0026quot;的微调数据就能彻底改变\u0026quot;一个游泳池\u0026quot;的预训练模型——我在**《万亿字节的压缩术：LLM 如何把互联网装进一个模型》里有更详细的展开。MoE 的稀疏激活机制写在《MoE：671B 参数的模型，为什么只用 37B 就够了？》，知识蒸馏涉及的\u0026quot;偷师\u0026quot;争议在《当模型学会「偷师」——知识蒸馏、版权战争与学习的边界》**。\n主流模型一览 模型 开发者 参数量 开源 亮点 GPT-4 OpenAI ~1.76T 否 MoE，最早的旗舰级模型 Claude Anthropic 未公开 否 长上下文，安全对齐 Llama 3.1 Meta 8B–405B 是 开源旗舰，生态最完整 DeepSeek-V3 DeepSeek 671B (37B 激活) 是 极致性价比 Qwen 2.5 阿里 0.5B–72B 是 中文能力强 Gemini Google 未公开 否 原生多模态 这些模型全部基于 Transformer，全部用同一个训练循环。区别在于规模、数据、对齐策略和工程优化。\n十一、可解释性的边界 回到我们的小模型。训练完成后，我把它的\u0026quot;知识\u0026quot;全部可视化了——模板图、投票矩阵、决策路径。看起来全看懂了。\n但当我试着回答更深的问题时，发现不行。\n为什么是这些模板？换个随机种子训练，出来完全不同的模板，但准确率一样。为什么把某张 5 认成了 3？我能看到哪些神经元激活了，但说不清为什么训练没能学到区分它们。我能描述\u0026quot;做了什么\u0026quot;，但没办法解释\u0026quot;为什么这样做是最好的\u0026quot;。\n而这只是 10 个神经元、1 层隐藏层。\n10 个神经元的时候，我们至少还能把 W1 reshape 成 28×28 的图片，看到模板的轮廓。但再加一层隐藏层呢？第二层的输入不再是像素，而是第一层的输出——一组抽象的激活值。你没法把它画成图片了。第三层更抽象，第四层更抽象。每多一层，人类的直觉就退后一步。\nGPT-4 有 120 层，每层 96 个注意力头，参数量是我们模型的 2.2 亿倍。在那个尺度上，一个概念被分散编码在成千上万个神经元里（superposition），一个神经元同时参与编码多个不相关的概念（polysemanticity）。Anthropic 在 Claude 中找到了少数可解释的特征——比如代表\u0026quot;金门大桥\u0026quot;的方向——但那只是冰山一角。\n不过我们也不是完全失明。研究者发现，LLM 的事实知识确实有迹可循——它大量存储在 MLP（前馈网络）层的权重矩阵里，就像我们小网络的 W1 存储模板一样。只不过大模型里的\u0026quot;模板\u0026quot;被加密了：知识分散编码在几百万个浮点数中，只有当正确的输入向量流过来，才能把它\u0026quot;解密\u0026quot;出来。甚至有人成功编辑了个别事实——比如把模型记忆中\u0026quot;埃菲尔铁塔在巴黎\u0026quot;改成\u0026quot;在罗马\u0026quot;。\n1950 年代 AI 有两条路线：符号主义（用规则编写智能，透明但脆弱）和联结主义（用神经网络从数据中学，不写规则）。联结主义最终胜出，但有一个代价——选择\u0026quot;让数据塑造参数\u0026quot;，就意味着放弃\u0026quot;理解每个参数为什么是这个值\u0026quot;。这不是技术限制，是方法论的必然结果。关于这场 70 年的拉锯战，以及为什么矩阵乘法加激活函数就能逼近任何函数，我在**《为什么矩阵和激活函数就能涌现智能？——从符号主义到万能近似定理》里写过完整的回顾。而 MLP 权重如何存储知识、为什么它们像\u0026quot;全息照片\u0026quot;一样只有被正确的输入照射才会浮现，在《LLM 的知识藏在哪里？MLP 权重中的加密记忆》**里有更深入的分析。\n写在最后 从 10 个神经元出发，走了挺远。\n但让我印象最深的不是这条路有多长，而是起点和终点的反差。\n在这个最小的网络里，我能把每个权重都看清楚——W1 的十张模板，W2 的投票矩阵，每一步计算都摊在阳光下。这种透明感让人觉得\u0026quot;原来如此\u0026quot;。\n但仔细想想，即便在这里，我也无法解释为什么是这些模板。换个随机种子，出来完全不同的模板，准确率一样。模型找到了一条路，但没人知道这条路是不是最好的，更没人知道还有多少条别的路。\n10 个神经元尚且如此。GPT-4 有几千亿个。\n矩阵乘法、点积、Softmax、梯度下降——1960 年代的数学，2017 年的架构，2024 年的算力。这些东西从来没变过。变的是规模，以及规模带来的涌现。我们搭了一个框架，往里面灌了人类文明几千年写下的所有文字，然后惊讶地发现它学会了推理、会了类比、懂了讽刺。但我们说不清它是怎么学会的。\n也许这就是联结主义的宿命：选择了让数据塑造参数，就注定放弃了对每个参数的解释权。我们能测试、能探针、能局部验证——但完整的理解，至少目前，还不在人类手中。\n不过，不理解并不意味着不能继续追问。\n如果你想亲手试试，所有代码都在 Jupyter Notebook 里。从 CSV 加载到训练到可视化，Python + NumPy，不需要框架。你会看到那 10 张模板——模糊的、歪歪扭扭的数字形状——那是一个网络从零开始学到的全部\u0026quot;知识\u0026quot;。很简陋，但那里面藏着 GPT 的全部原理。\n参考资料\nSamson Zhang, \u0026ldquo;Building a neural network FROM SCRATCH\u0026rdquo; (YouTube) Vaswani et al., \u0026ldquo;Attention Is All You Need\u0026rdquo; (2017) Meta, Llama 3.1 Technical Report (2024) DeepSeek-AI, DeepSeek-V3 Technical Report (arXiv:2412.19437) MNIST Handwritten Digit Dataset (42,000 images) ","permalink":"https://jason-azure.github.io/ai-blog/posts/mnist-to-chatgpt/","summary":"用纯 Python 和 NumPy 从零搭了一个 10 个神经元的神经网络，识别手写数字，然后把它拆开——看清了模板匹配、投票矩阵和每一步计算。从这个最小的网络出发，聊聊 FNN、CNN、RNN、Transformer 的演进，以及可解释性的边界。","title":"从手写数字识别到 ChatGPT——一个最简单的神经网络能教会我们什么"},{"content":"从上一篇的结尾说起 上一篇 《计算机只懂 0 和 1》 里，我们走完了一条 200 年的编码之路：莫尔斯电码 → ASCII → Unicode → BPE。一路走下来，结论很清晰：\n计算机一直在做同一件事——把符号变成数字。\n但文章快结尾时，我留了一个尾巴：\nEmbedding 用 768 个数字代表 1 个子词。\n那篇文章没有展开。因为展开之后，你会发现——这一步和前面所有的步骤，有一个本质的不同。\n一、编号的困境 65 号和 66 号，是近还是远？ ASCII 说 A=65, B=66, C=67。Unicode 说\u0026quot;你\u0026quot;=20320，\u0026ldquo;好\u0026rdquo;=22909。BPE 说 \u0026ldquo;the\u0026rdquo;=1820，\u0026ldquo;cat\u0026rdquo;=9246。\n这些数字有一个共同的特点：它们只是编号，不是意思。\n65 和 66 挨着，但 A 和 B 的\u0026quot;意思\u0026quot;并不比 A 和 Z 更接近。\u0026ldquo;你\u0026quot;是 20320，\u0026ldquo;我\u0026quot;是 25105——差了近 5000，但\u0026quot;你\u0026quot;和\u0026quot;我\u0026quot;的语义距离，远比\u0026quot;你\u0026quot;和\u0026quot;镉\u0026rdquo;（38221）近得多。\n这就是编号的根本局限：数字之间的大小关系，和符号之间的意义关系，毫无关联。\n用一个类比来说：\n你的身份证号是 11010219900307，你邻居的是 11010219900308。号码只差 1，但你们可能一个是诗人，一个是程序员，思想隔了十万八千里。\n而你远在千里之外的一个陌生人，身份证号和你差了几亿，却恰好和你读同样的书、想同样的问题。\n编号不反映关系。\n对人来说这不是问题——你看到\u0026quot;A\u0026quot;就知道它是\u0026quot;A\u0026rdquo;，不需要通过 65 这个数字去\u0026quot;理解\u0026quot;它。但对计算机来说，数字是它唯一能操作的东西。如果数字不携带意义，计算机就永远在做盲目的搬运，而不是有意义的计算。\n▲ 左：编号——数值大小和意义无关。右：坐标——距离就是关系 最粗暴的方案：One-Hot 计算机科学家们最早想到的办法，简单粗暴：给每个词一个独立的维度。\n如果词表有 50000 个词，就造一个 50000 维的空间。每个词是一个向量，只有自己对应的那一维是 1，其余全是 0。\n\u0026#34;猫\u0026#34; = [0, 0, 0, ..., 1, ..., 0, 0, 0] ← 第 3721 维是 1 \u0026#34;狗\u0026#34; = [0, 0, 0, ..., 0, ..., 1, ..., 0] ← 第 8456 维是 1 \u0026#34;桌\u0026#34; = [0, 0, 0, ..., 0, ..., 0, ..., 1] ← 第 22017 维是 1 这叫 One-Hot 编码（独热编码）。\n有三个致命问题：\n1. 维度爆炸。 词表有 5 万词，每个词就是一个 5 万维的向量。存储和计算代价巨大。\n2. 没有\u0026quot;近远\u0026quot;。 \u0026ldquo;猫\u0026quot;和\u0026quot;狗\u0026quot;的距离 = \u0026ldquo;猫\u0026quot;和\u0026quot;桌\u0026quot;的距离 = \u0026ldquo;猫\u0026quot;和\u0026quot;量子力学\u0026quot;的距离。所有词之间的距离完全相同（都是 √2）。\n3. 无法泛化。 模型在训练中见过\u0026quot;猫坐在沙发上\u0026rdquo;，但遇到\u0026quot;狗坐在沙发上\u0026quot;时完全没有借鉴——因为\u0026quot;猫\u0026quot;和\u0026quot;狗\u0026quot;在 One-Hot 空间里毫无关联。\n这就是 Bengio 在 2003 年那篇开创性论文里指出的维度灾难（curse of dimensionality）：语言中的词汇量太大，如果每个词都是独立的维度，需要指数级的训练数据才能覆盖所有可能的词组合。\nBengio, Y. et al. (2003). A Neural Probabilistic Language Model. JMLR.\n我们需要一种根本不同的思路。\n一句话记住： 编号是死的——65 和 66 挨着，不代表 A 和 B 有关系。One-Hot 更糟——所有词两两等距。我们需要让数字自己学会远近。\n二、从编号到坐标：Embedding 的诞生 一句改变历史的话 1957 年，英国语言学家 John Rupert Firth 写下了一句看似平常的话：\n\u0026ldquo;You shall know a word by the company it keeps.\u0026rdquo;\n（要了解一个词的意思，看看它和谁在一起就行了。）\n— Firth, J.R. (1957). A Synopsis of Linguistic Theory.\n这句话后来被称为分布假说（distributional hypothesis），成为了整个 Embedding 思想的哲学基石。\n想想看，这和我们学语言的方式一模一样。你第一次遇到\u0026quot;獬豸\u0026quot;这个词，不认识。但如果你反复在这些上下文中看到它：\n\u0026#34;獬豸能辨曲直\u0026#34; \u0026#34;古代法官头戴獬豸冠\u0026#34; \u0026#34;獬豸是传说中的神兽\u0026#34; 你不需要任何人给你下定义，就能大致理解：它是一种和\u0026quot;正义\u0026rdquo;、\u0026ldquo;法律\u0026quot;有关的传说动物。\n你是通过\u0026quot;它和谁在一起\u0026quot;来学会\u0026quot;它是什么意思\u0026quot;的。\nFirth 的洞察在 1957 年只是一个语言学假说。半个多世纪后，机器学习用数学把它变成了现实。\nWord2Vec：让数字学会远近 2013 年，Google 的 Tomáš Mikolov 和同事做了一件事，彻底改变了 NLP 的走向。\n他们的想法极其简单：让每个词不再是一个编号，而是一组可以训练的数字。训练目标就是 Firth 说的那个——用一个词去预测它周围的词。\n训练语料： \u0026#34;... the cat sat on the mat ...\u0026#34; 对于 \u0026#34;sat\u0026#34; 这个词，模型要学会预测： 前面可能是 \u0026#34;cat\u0026#34; 后面可能是 \u0026#34;on\u0026#34; 如果模型能做到这一点，那 \u0026#34;sat\u0026#34; 的向量就必须 编码足够多的信息——它是动词、它表示动作、 它的主语通常是有生命的东西... 训练结束后，每个词不再是 50000 维的 One-Hot 向量，而是一个 300 维的稠密向量——300 个实数。\n这 300 个数字不是人类指定的。它们是模型自己学出来的。\nMikolov, T. et al. (2013). Efficient Estimation of Word Representations in Vector Space. arXiv:1301.3781.\nking − man + woman ≈ queen 然后，一件惊人的事情被发现了。\n如果你把这些训练出来的向量做算术运算：\nvec(\u0026#34;king\u0026#34;) − vec(\u0026#34;man\u0026#34;) + vec(\u0026#34;woman\u0026#34;) ≈ vec(\u0026#34;queen\u0026#34;) 国王减去男性，加上女性，约等于女王。\n这不是任何人告诉模型的。没有人标注过\u0026quot;king 和 queen 的关系等于 man 和 woman 的关系\u0026rdquo;。模型只是在读文本、预测下一个词，然后这些关系就自己浮现了。\n▲ 向量空间中，从 man 到 woman 的方向 ≈ 从 king 到 queen 的方向 更让人惊讶的是，这种关系遍布整个向量空间：\n类比 向量算术 国家-首都 Paris − France + Japan ≈ Tokyo 动词时态 walking − walked + swam ≈ swimming 比较级 bigger − big + cold ≈ colder 方向就是关系。距离就是相似度。\nMikolov 的第二篇论文系统地验证了这些发现，并发现负采样（negative sampling）这个训练技巧是让它成功的关键。\nMikolov, T. et al. (2013). Distributed Representations of Words and Phrases and their Compositionality. NeurIPS.\n为什么算术能表达语义？ 这不是魔法。2016 年，Princeton 的 Sanjeev Arora 从数学上解释了原因：如果文本生成过程可以建模为一个\u0026quot;随机游走\u0026rdquo;，而每个词的出现概率和它的上下文向量的内积有关，那么 对数共现概率自然会形成线性结构。\n换句话说：Word2Vec 学到的不是\u0026quot;意思\u0026quot;——它学到的是共现模式的对数结构。而人类语言中的语义关系，恰好在这种对数结构里表现为线性关系。\nArora, S. et al. (2016). A Latent Variable Model Approach to PMI-based Word Embeddings. TACL.\n这是一个深刻的发现：语义关系之所以能用向量算术表达，是因为语言的统计结构本身就具有这种几何性质。 这不是 Word2Vec 的巧合，而是人类语言的数学本性。\n一句话记住： Embedding 把编号变成了坐标。编号只是标签，坐标有远近。Word2Vec 证明了：让数字通过训练学会远近亲疏，它们就自动发现了语义结构。\n三、\u0026ldquo;大漠孤烟直，长河落日圆\u0026rdquo;——人类的 Embedding 同一个词，在不同的人\u0026quot;脑\u0026quot;里，是不同的向量 让我们暂时离开计算机，想一个更基本的问题：\n人类是怎么\u0026quot;理解\u0026quot;一个词的？\n看这首王维的诗：\n大漠孤烟直，长河落日圆。\n十个字。每个字你在小学就认识了。\u0026ldquo;大\u0026rdquo;、\u0026ldquo;漠\u0026rdquo;、\u0026ldquo;孤\u0026rdquo;、\u0026ldquo;烟\u0026rdquo;、\u0026ldquo;直\u0026rdquo;——没有一个生僻字。\n但这十个字组合在一起，你\u0026quot;看到\u0026quot;了什么？\n你看到了一幅画面：无边的沙漠，一缕炊烟笔直升起；黄河奔流，一轮落日浑圆地悬在地平线上。\n你感受到了一种情绪：苍凉、壮阔、孤独。\n你甚至体会到了一种审美判断：\u0026ldquo;直\u0026quot;和\u0026quot;圆\u0026quot;这两个最朴素的几何词，用在这里为什么如此精妙——因为在无边的水平荒原上，唯一的垂直线是那缕烟，唯一的完美弧形是那轮日。极简的形状对极阔的空间。\n一个\u0026quot;直\u0026quot;字，在你的认知里，不是字典里\u0026quot;不弯曲\u0026quot;这三个字。它携带了视觉画面、空间构图、情感色彩、审美直觉——几十个维度的信息。\n再看马致远的小令：\n枯藤老树昏鸦，小桥流水人家，古道西风瘦马。\n九个名词，没有一个动词。但你读完立刻看到了一幅完整的画面，感受到了深重的漂泊和乡愁。\n\u0026ldquo;枯\u0026quot;不只是\u0026quot;干枯\u0026rdquo;。在你的认知中，\u0026ldquo;枯\u0026quot;连接着衰败、时间流逝、生命终结、秋冬、萧条——一整个语义星系。\u0026ldquo;老\u0026quot;也是。\u0026ldquo;昏\u0026quot;也是。它们各自携带的不是一个定义，而是一张语义网络。当九个这样的词排列在一起时，它们的语义网络叠加、共振，产生了远超字面意思的效果。\n这就是人类的 Embedding。\n每个词在你的大脑中，不是一个编号，而是一团丰富的联想——视觉的、听觉的、情感的、经验的。你的人生阅历越丰富，每个词在你脑中的表示就越厚、越多维。\n一个孩子读\u0026quot;大漠孤烟直\u0026rdquo;，可能只理解字面意思：沙漠里有一缕烟是直的。 一个成年人读同一句，看到的是画面、孤独和壮美。 一个诗人读同一句，还能感受到王维在句式对仗中的克制——他不写\u0026quot;苍凉的大漠中一缕孤独的烟笔直升起\u0026rdquo;，他只说五个字，留白给读者。\n同一个词，在不同人的\u0026quot;向量空间\u0026quot;中，维度不同。\n这和 Embedding 的核心思想惊人地一致：\n人类认知 Embedding 一个词在你脑中的全部联想 一个词的向量表示 人生阅历越丰富，理解越深 训练数据越多，向量越精确 语境改变理解 上下文改变 Embedding（Transformer） \u0026ldquo;近义词\u0026quot;直觉上感觉\u0026quot;近\u0026rdquo; 近义词在向量空间中距离近 诗人用词的\u0026quot;精准\u0026quot;感 向量在语义空间中的位置恰到好处 那么，LLM 的 Embedding 在多大程度上接近人类的理解？ 直说吧：还差很远。但比你想象的近。\nLLM 的 Embedding 没有视觉、没有身体、没有情感体验。它的\u0026quot;大漠\u0026quot;向量不来自亲眼看到沙漠的经历，而来自读过的几百万个包含\u0026quot;大漠\u0026quot;的句子。\n但正因为它读过的\u0026quot;大漠\u0026quot;的句子足够多、足够多样——\n\u0026#34;大漠孤烟直\u0026#34; — 和 孤独、壮阔、边塞 共现 \u0026#34;穿越大漠\u0026#34; — 和 旅行、艰辛、戈壁 共现 \u0026#34;大漠沙如雪\u0026#34; — 和 苍白、寒冷、月光 共现 ——它的\u0026quot;大漠\u0026quot;向量最终编码了一种统计意义上的\u0026quot;理解\u0026rdquo;：在向量空间中，\u0026ldquo;大漠\u0026quot;离\u0026quot;戈壁\u0026quot;近，离\u0026quot;苍凉\u0026quot;近，离\u0026quot;边塞\u0026quot;近，离\u0026quot;超市\u0026quot;远。\n这不是真正的理解。但它是一种功能性的理解——在实际任务中，它表现得仿佛理解了。\n这正是哲学家 Stevan Harnad 在 1990 年提出的 符号接地问题（Symbol Grounding Problem）：纯粹从符号到符号的映射，能不能产生\u0026quot;意义\u0026rdquo;？如果 Embedding 从未\u0026quot;见过\u0026quot;沙漠，它的\u0026quot;大漠\u0026quot;向量里有意义吗？\nHarnad, S. (1990). The Symbol Grounding Problem. Physica D, 42(1-3), 335-346.\n这个问题至今没有定论。但 Embedding 的实际表现，至少迫使我们重新思考\u0026quot;理解\u0026quot;这个词的定义边界。\n一句话记住： 人类用一辈子的经历训练自己的 Embedding——每个词在你脑中不是定义，而是一团丰富的联想。LLM 用万亿个字训练它的。方式不同，做的是同一件事：让数字学会远近亲疏。\n四、拆开 Embedding 矩阵：一张\u0026quot;活\u0026quot;的查表 它说白了就是一张表 好了，让我们回到工程层面。把诗意放下，看看 Embedding 在代码里到底是什么。\n在 Karpathy 的 microgpt 中（200 行纯 Python 的 GPT 实现），Embedding 的初始化只有一行：\nstate_dict = { \u0026#39;wte\u0026#39;: matrix(vocab_size, n_embd), # Token Embedding 表 \u0026#39;wpe\u0026#39;: matrix(block_size, n_embd), # Position Embedding 表 ... } 在 nanoGPT 的 PyTorch 实现中：\nself.transformer = nn.ModuleDict(dict( wte = nn.Embedding(config.vocab_size, config.n_embd), # Token Embedding wpe = nn.Embedding(config.block_size, config.n_embd), # Position Embedding ... )) nn.Embedding 是什么？它就是一张表。 一个 vocab_size × n_embd 的矩阵。\nEmbedding 矩阵（Token Embedding Table）: 维度1 维度2 维度3 ... 维度768 token 0: [0.02, -0.15, 0.08, ..., 0.11] token 1: [0.31, 0.05, -0.22, ..., 0.04] token 2: [-0.07, 0.18, 0.13, ..., -0.09] ... token 50256: [0.14, -0.03, 0.21, ..., 0.06] 当你输入一个 token（比如 token ID = 1820），模型做的事情就是：去第 1820 行，把那 768 个数字取出来。\ntok_emb = state_dict[\u0026#39;wte\u0026#39;][token_id] # 就是查第 token_id 行 这就是一次查表操作。和 ASCII 查表在结构上完全一样。\nASCII Embedding 输入 字符\u0026quot;A\u0026rdquo; Token ID 1820 查表 得到数字 65 得到 768 个数字 数字含义 无意义的编号 有意义的坐标 表的来源 人类设计的 训练学出来的 区别只有一个：ASCII 表是人写的，Embedding 表是训练出来的。\n就这一个区别，让数字从\u0026quot;编号\u0026quot;变成了\u0026quot;坐标\u0026quot;——有了远近，有了方向，有了意思。\nEmbedding 占了多少参数？ Embedding 矩阵在整个模型中占的参数比例是多少？让我们用实际数字算一算。\nmicrogpt (Karpathy 的 200 行 GPT): 词表大小 = 27（26 个字母 + 1 个特殊符号） 嵌入维度 = 16 Token Embedding: 27 × 16 = 432 个参数 Position Embedding: 16 × 16 = 256 个参数 总 Embedding: 688 / 4192 = 16.4% nanoGPT (Shakespeare 字符级): 词表大小 = 65 嵌入维度 = 384 Token Embedding: 65 × 384 = 24,960 Position Embedding: 256 × 384 = 98,304 总 Embedding: ~123K / 810K = ~15% GPT-2 (1.24 亿参数): 词表大小 = 50,257 嵌入维度 = 768 Token Embedding: 50,257 × 768 = 38,597,376 Position Embedding: 1024 × 768 = 786,432 总 Embedding: ~39M / 124M = ~32% GPT-3 (1750 亿参数): 词表大小 = 50,257 嵌入维度 = 12,288 Token Embedding: 50,257 × 12,288 = 617,558,016 Position Embedding: 2048 × 12,288 = 25,165,824 总 Embedding: ~643M / 175,000M = ~0.4% 一个有意思的趋势：模型越大，Embedding 占的比例越小，但绝对值越大。\nGPT-2 中 Embedding 占了近三分之一的参数——这意味着这个模型\u0026quot;大量的知识\u0026quot;其实就存在那张查表里。\n而 GPT-3 中 Embedding 只占 0.4%，剩下的 99.6% 参数都在 Transformer 的层里——那些才是\u0026quot;处理\u0026quot;和\u0026quot;思考\u0026quot;的部分。\n有趣的设计：weight tying。 在 GPT-2 和 nanoGPT 中，Token Embedding 矩阵和最后的输出层（lm_head）共享权重：\nself.transformer.wte.weight = self.lm_head.weight 也就是说，把 token 变成向量的矩阵和把向量变回 token 概率的矩阵是同一张表！输入用它查表，输出用它的转置做投影。这个优雅的设计叫 weight tying，不仅节省参数，还强制了一种对称性：如果两个 token 的 Embedding 向量接近，它们在输出层被选中的概率也接近。\nInan, H., Khosravi, K., \u0026amp; Socher, R. (2017). Tying Word Vectors and Word Classifiers. ICLR.\n一句话记住： Embedding 矩阵就是一张查表——和 ASCII 表结构完全相同。区别只有一个：ASCII 表是人写的，Embedding 表是训练出来的。 就这一个区别，让数字从编号变成了坐标。\n五、Embedding 与 MLP：谁记知识，谁做推理？ 一个根本性的分工 Transformer 里有两个核心组件不断交替：Attention 和 MLP（前馈网络）。而在它们之前，有 Embedding 作为入口。\n这三者的关系，可以用一个类比来理解：\nEmbedding 是字典——你查一个词，得到它的基本含义。\nAttention 是阅读理解——你根据上下文，决定这个词在这里具体指什么。\nMLP 是知识库和推理引擎——你根据理解到的信息，做判断、做推理、给出结论。\n让我们看看在 Transformer 的一次前向传播中，信息是怎么流动的：\nToken \u0026#34;银行\u0026#34; ↓ [Embedding 查表] → 得到\u0026#34;银行\u0026#34;的基础向量 （此时它携带\u0026#34;银行\u0026#34;的全部可能含义—— 金融机构？河岸？数据库？） ↓ [Attention 层] → 看到上下文是\u0026#34;我去银行取钱\u0026#34; → 把向量往\u0026#34;金融机构\u0026#34;方向偏移 （如果上下文是\u0026#34;坐在河银行上钓鱼\u0026#34;， 就会往\u0026#34;河岸\u0026#34;方向偏移） ↓ [MLP 层] → 利用存储的知识进行推理 → \u0026#34;取钱 → 需要银行卡 → 可能排队...\u0026#34; → 修改向量，为下一步预测做准备 ↓ [Attention 层] → 继续看上下文... ↓ [MLP 层] → 继续推理... ↓ ... 重复 N 层 ... ↓ [lm_head] → 用 Embedding 矩阵的转置（weight tying） 把最终向量投影回词表，选出下一个词 MLP 里存储了什么？ 2024 年的一项重要研究发现，MLP 层是 Transformer 中主要的\u0026quot;知识存储\u0026quot;位置。具体来说：\nEmbedding 层存储的是词汇级别的基础语义——每个词的\u0026quot;字典义\u0026quot; MLP 层存储的是世界知识和推理模式——\u0026ldquo;巴黎是法国的首都\u0026rdquo;、\u0026ldquo;水在 100°C 沸腾\u0026quot;这类事实 Geva, M. et al. (2021). Transformer Feed-Forward Layers Are Key-Value Memories. EMNLP.\n这篇论文证明了 MLP 的每一层可以被解读为一个键-值记忆网络：第一个线性层的行向量是\u0026quot;键\u0026rdquo;（匹配模式），第二个线性层的列向量是\u0026quot;值\u0026quot;（要写入的信息）。\n所以信息在 Embedding 和 MLP 之间的互动是这样的：\nEmbedding: \u0026#34;我知道每个词大概是什么意思\u0026#34; ↓ （提供基础向量） Attention: \u0026#34;我知道这些词在这个上下文里各自指什么\u0026#34; ↓ （利用上下文消歧） MLP: \u0026#34;我知道这个世界怎么运作的， 基于上下文，我来推理下一步\u0026#34; ↓ （注入知识，修改表示） ... 反复交替 ... Embedding 给出起点，Attention 定位语境，MLP 注入知识。 三者缺一不可。\n如果把它类比为人类阅读：\nEmbedding 相当于你认识这些字——你知道\u0026quot;大\u0026quot;、\u0026ldquo;漠\u0026rdquo;、\u0026ldquo;孤\u0026rdquo;、\u0026ldquo;烟\u0026quot;各自的基本意思 Attention 相当于你读懂了句子——你知道\u0026quot;孤\u0026quot;在这里修饰的是\u0026quot;烟\u0026rdquo;，而\u0026quot;大\u0026quot;修饰的是\u0026quot;漠\u0026quot; MLP 相当于你的知识和想象力被激活——你知道大漠是什么样的地方，能在脑中构建出那幅苍凉的画面 一首好诗之所以能在你脑中产生画面，不只是因为你认识每个字（Embedding），也不只是因为你读懂了句子结构（Attention），更因为你有足够的知识和想象力去\u0026quot;补全\u0026quot;字面之外的信息（MLP）。\n一句话记住： Embedding 是字典，Attention 是阅读理解，MLP 是知识库。三者交替协作：Embedding 给出起点，Attention 定位语境，MLP 注入知识。\n六、多语言：中文和英文在同一个空间里吗？ 一个令人困惑的事实 直觉上，中文和英文是完全不同的语言系统。字形不同、语法不同、文化背景不同。\n但在现代多语言模型（如 GPT-4、Claude）的 Embedding 空间中：\nvec(\u0026#34;猫\u0026#34;) 和 vec(\u0026#34;cat\u0026#34;) 的距离， 比 vec(\u0026#34;猫\u0026#34;) 和 vec(\u0026#34;经济学\u0026#34;) 的距离近得多。 不同语言的同义词，在向量空间中被映射到了相近的位置。\n这是怎么做到的？\n早期方案：跨语言对齐 最早的多语言 Embedding 方法很直觉：先分别训练中文和英文的 Word2Vec，得到两个独立的向量空间；然后用一个\u0026quot;翻译词典\u0026quot;（比如 5000 对中英文翻译对）作为\u0026quot;锚点\u0026quot;，学一个旋转矩阵，把中文空间\u0026quot;旋转\u0026quot;到和英文空间对齐。\n中文空间 旋转矩阵 W 英文空间 \u0026#34;猫\u0026#34; ──────────── × W ──────────→ 靠近 \u0026#34;cat\u0026#34; \u0026#34;狗\u0026#34; ──────────── × W ──────────→ 靠近 \u0026#34;dog\u0026#34; \u0026#34;桌子\u0026#34; ─────────── × W ──────────→ 靠近 \u0026#34;table\u0026#34; Conneau, A. et al. (2018). Word Translation Without Parallel Data. ICLR.\n这篇论文更进一步：证明了即使没有翻译词典，仅靠对抗训练（GAN）也能自动发现这个旋转矩阵——说明不同语言的 Embedding 空间有固有的结构相似性。\n现代方案：从一开始就混着训练 GPT-4、Claude 等现代 LLM 不需要对齐。因为它们从训练的第一天起就同时读中文、英文、法文、日文\u0026hellip; 的文本。\n训练数据里同时有： \u0026#34;The cat sat on the mat.\u0026#34; \u0026#34;猫坐在垫子上。\u0026#34; \u0026#34;Le chat est assis sur le tapis.\u0026#34; 模型学到的 Embedding 空间自然就是多语言的： \u0026#34;cat\u0026#34;、\u0026#34;猫\u0026#34;、\u0026#34;chat\u0026#34; → 空间中的相近位置 但有一个不对称的问题。 还记得上一篇提到的吗？\n英文 \u0026ldquo;the cat\u0026rdquo; 通常是 2 个 token，中文 \u0026ldquo;猫\u0026rdquo; 可能是 1-3 个 token（取决于 BPE 分词器的训练语料比例）。\n这意味着中文在 token 层面的 Embedding 空间中，是以更碎片化的方式存在的。英文的常见词往往有完整的 Embedding 向量，而中文的某些字被切成了字节级别的 token，需要经过多层 Transformer 才能重新组合出完整的语义。\n这也解释了为什么 LLM 在中文上的表现通常略逊于英文——不是因为中文\u0026quot;更难\u0026quot;，而是因为编码效率不对等。同样的信息，中文需要更多的 token 来表达，模型需要\u0026quot;更努力\u0026quot;才能理解。\n一个深刻的问题：不同语言的人，\u0026ldquo;想\u0026quot;的是同一个东西吗？ 如果中文\u0026quot;猫\u0026quot;和英文\u0026quot;cat\u0026quot;在向量空间中位置相近，是不是说明不同语言的使用者在\u0026quot;想\u0026quot;同一个概念时，大脑的表示也类似？\n神经科学的研究发现了惊人的证据：\nHuth, A. et al. (2016) 的 fMRI 研究显示，英语使用者和中文使用者在听同一个故事的翻译版本时，大脑的语义表征在高层次上高度相似。\n也就是说，\u0026ldquo;猫\u0026quot;和\u0026quot;cat\u0026quot;激活的大脑区域模式，确实是类似的。语言是不同的编码，但编码的对象——那个概念——可能是共通的。\n这和 Embedding 的发现是一致的：不同的编码系统（不同的语言），在经过充分训练后，趋向于发现相似的底层结构。\n一句话记住： 中文\u0026quot;猫\u0026quot;和英文\u0026quot;cat\u0026quot;在向量空间中是邻居——不是因为有人标注了对应关系，而是因为它们在各自语言中出现的上下文是相似的。语言不同，但数字学会的远近亲疏是相通的。\n七、超越文字：万物皆可 Embedding 图片有 Embedding 吗？ 有。而且方式出人意料的相似。\nVision Transformer (ViT) 把一张图片切成 16×16 的小块（patch），每个小块就像一个\u0026quot;视觉词元\u0026rdquo;。每个 patch 被投影成一个向量——这就是图片的 Embedding。\n文本: \u0026#34;猫坐在垫子上\u0026#34; ↓ tokenize [\u0026#34;猫\u0026#34;, \u0026#34;坐在\u0026#34;, \u0026#34;垫\u0026#34;, \u0026#34;子上\u0026#34;] ↓ Embedding 查表 [vec₁, vec₂, vec₃, vec₄] ← 每个是 768 维向量 图片: 一张猫的照片 ↓ 切成 14×14 = 196 个 patch [patch₁, patch₂, ..., patch₁₉₆] ↓ 线性投影（就是一次矩阵乘法） [vec₁, vec₂, ..., vec₁₉₆] ← 每个也是 768 维向量 从这一步开始，文本和图片的处理方式完全相同——都是一系列向量，送入 Transformer 做 Attention + MLP。\nCLIP：让文字和图片住进同一个空间 2021 年，OpenAI 做了一件更大胆的事：训练一个模型，让文字的 Embedding 和图片的 Embedding 住在同一个向量空间里。\n训练数据：4 亿个 (图片, 文字描述) 配对 训练目标： - \u0026#34;一只猫坐在垫子上\u0026#34; 的文字向量 - 一张猫坐在垫子上的图片向量 → 这两个向量应该很近 - \u0026#34;一只猫坐在垫子上\u0026#34; 的文字向量 - 一张赛车的图片向量 → 这两个向量应该很远 训练完成后：\ncos_similarity( CLIP_text(\u0026#34;a photo of a cat\u0026#34;), CLIP_image(猫的照片) ) ≈ 0.85 cos_similarity( CLIP_text(\u0026#34;a photo of a cat\u0026#34;), CLIP_image(赛车照片) ) ≈ 0.12 文字和图片可以直接用向量距离来比较。 你可以用文字搜图片，用图片搜文字——因为它们在同一个空间里。\nRadford, A. et al. (2021). Learning Transferable Visual Models From Natural Language Supervision. ICML.\nImageBind：六种模态，一个空间 Meta 在 2023 年更进一步，用 ImageBind 把六种模态——文字、图片、音频、深度图、热力图、IMU 传感器数据——全部映射到同一个 Embedding 空间。\n同一个空间里住着： - \u0026#34;狗叫声\u0026#34; 的音频向量 - \u0026#34;一只狗\u0026#34; 的图片向量 - \u0026#34;dog\u0026#34; 的文字向量 - 狗的热成像图的向量 它们在空间中是邻居。 Girdhar, R. et al. (2023). ImageBind: One Embedding Space To Bind Them All. CVPR.\n▲ 不同模态的数据，经过各自的编码器，被映射到同一个向量空间中 这意味着一件惊人的事：\n\u0026ldquo;猫\u0026quot;这个概念，无论是一个中文字、一个英文单词、一张照片、还是一段猫叫声——在向量空间中，它们都指向相近的位置。\n仿佛存在一个独立于任何具体模态的\u0026quot;概念空间\u0026rdquo;，而文字、图片、声音只是进入这个空间的不同入口。\n柏拉图表示假说：所有模型都在趋向同一个现实？ 2024 年，MIT 的 Minyoung Huh 和 Phillip Isola 提出了一个大胆的假说：\n不同的神经网络，用不同的数据、不同的目标训练，最终学到的表示正在趋向一致——趋向现实世界的统计结构本身。\nHuh, M. \u0026amp; Isola, P. (2024). The Platonic Representation Hypothesis. ICML.\n他们的证据：\n更大的语言模型，其内部表示和视觉模型的内部表示越来越对齐 更大的视觉模型，其内部表示和语言模型的内部表示也越来越对齐 这种趋同在不同架构、不同训练集、不同模态之间都在发生 他们的解释：所有数据——文字、图片、声音——都是底层现实的投影。如果一个模型足够强大，训练数据足够多，它最终会\u0026quot;透过\u0026quot;数据的表面形式，逼近那个底层的统计结构。\n就像柏拉图的洞穴寓言：我们看到的文字、图片、声音都是洞壁上的影子。但所有影子来自同一个\u0026quot;真实\u0026rdquo;。足够好的 Embedding 空间，就是对那个\u0026quot;真实\u0026quot;的逼近。\n这是一个哲学性的假说，远未被证实。但它提供了一个诱人的视角：Embedding 不仅仅是一种工程技巧——它可能在做一件更深刻的事：用数学逼近现实的结构本身。\n一句话记住： 文字、图片、声音——不同的入口，同一个空间。\u0026ldquo;猫\u0026quot;这个概念，无论你写它、拍它、还是听它叫——在足够好的 Embedding 中，它们都是邻居。数字学会的远近亲疏，超越了任何一种模态。\n八、从静态到动态：Embedding 的进化 Word2Vec 的局限：一词一义 Word2Vec 给每个词一个固定向量。但人类语言充满了多义词：\n\u0026#34;苹果\u0026#34; → 水果？公司？ \u0026#34;打\u0026#34; → 打人？打电话？打酱油？打车？ \u0026#34;bank\u0026#34; → 银行？河岸？ 在 Word2Vec 中，\u0026ldquo;bank\u0026rdquo; 只有一个向量——它是\u0026quot;银行\u0026quot;和\u0026quot;河岸\u0026quot;的某种混合。这显然不对。\nELMo (2018)：让向量随语境变化 Matthew Peters 提出了一个关键改进：用双向 LSTM 在每个具体的上下文中重新计算每个词的表示。\n\u0026#34;I went to the bank to deposit money.\u0026#34; → \u0026#34;bank\u0026#34; 的向量 ≈ [金融机构方向] \u0026#34;I sat on the bank of the river.\u0026#34; → \u0026#34;bank\u0026#34; 的向量 ≈ [河岸方向] 同一个词，不同的上下文，不同的向量。\nPeters, M. et al. (2018). Deep Contextualized Word Representations. NAACL.\nTransformer：Embedding 只是起点 在今天的 Transformer 架构中，这个进化更加彻底。\nToken Embedding 矩阵给出的只是初始向量——一个词的\u0026quot;字典义\u0026rdquo;。然后经过 N 层 Transformer（Attention + MLP），每一层都在修改这个向量：\n层 0: \u0026#34;bank\u0026#34; = [基础向量——所有义项的混合] 层 1: 注意到 \u0026#34;deposit money\u0026#34; → 向量偏移到 [金融机构] 层 2: 注意到 \u0026#34;went to\u0026#34; → 确认是 [具体地点] 层 3: 注意到 \u0026#34;I\u0026#34; → 标记为 [第一人称经历] ... 层 96: 最终向量 = 高度精炼的、语境化的表示 Embedding 查表只是第一步。 真正的\u0026quot;理解\u0026quot;发生在后续的 96 层里。Embedding 提供了原材料，Transformer 对它们进行加工。\n这也是为什么前面说 GPT-3 的 Embedding 只占 0.4% 参数——真正的\u0026quot;智能\u0026quot;不在查表那一步，而在查表之后的处理中。\n但没有那个起点，一切都无法开始。就像你必须先认识\u0026quot;大\u0026quot;、\u0026ldquo;漠\u0026rdquo;、\u0026ldquo;孤\u0026rdquo;、\u0026ldquo;烟\u0026quot;这些字，才有可能理解\u0026quot;大漠孤烟直\u0026rdquo;。\n一句话记住： Word2Vec 给每个词一个\u0026quot;身份\u0026quot;——固定不变。Transformer 给每个词一个\u0026quot;语境中的自我\u0026quot;——随上下文而变。Embedding 只是起点，96 层 Transformer 才是让数字学会远近亲疏的全过程。\n九、压缩即理解：Embedding 的信息论视角 从 50000 维到 768 维，强制学习 回到我们系列的核心命题：压缩即智能。\nOne-Hot 把每个词表示为 50000 维的向量。Embedding 把它压缩到 768 维。\n50000 → 768。压缩了 65 倍。\n这意味着什么？\n信息论告诉我们：无损压缩的前提是发现数据中的结构。 如果 50000 个词真的是 50000 个完全独立的概念，那就不可能压缩。之所以能压到 768 维，是因为这些词之间存在大量的冗余和关联。\n\u0026ldquo;猫\u0026quot;和\u0026quot;狗\u0026quot;共享很多属性（动物、宠物、有毛、四条腿\u0026hellip;），所以它们的向量可以共享很多维度 \u0026ldquo;走\u0026quot;和\u0026quot;跑\u0026quot;共享运动语义，只在速度维度上有差异 \u0026ldquo;快乐\u0026quot;和\u0026quot;悲伤\u0026quot;的向量可能在很多维度上接近（都是情感、都是形容词），但在\u0026quot;正面/负面\u0026quot;这个维度上方向相反 压缩迫使模型发现这些结构。 如果不发现语义上的共性，就无法用 768 个数字区分 50000 个词。这和你在 信息论文章 中读到的 Shannon 的核心思想一脉相承：压缩 = 预测 = 理解。\nJohnson-Lindenstrauss 引理从数学上保证了：高维空间中的点，可以被投影到低得多的维度中，同时几乎保持它们之间的距离关系。只要目标维度足够（对数级别），距离的失真就可以控制在任意小的范围内。\nJohnson, W. \u0026amp; Lindenstrauss, J. (1984). Extensions of Lipschitz mappings into a Hilbert space.\nEmbedding 的成功，部分是因为这个数学保证：768 维已经足以保持 50000 个词之间的绝大部分距离关系。\n一句话记住： 50000 维压缩到 768 维——65 倍的压缩迫使模型发现词与词之间的共性。压缩即智能，Embedding 是这五个字最生动的注脚。\n十、用 microgpt 亲眼看到 Embedding 回到我们的教学体系。在 microgpt 中——那个只有 200 行、零依赖的 GPT 实现——你可以亲眼看到 Embedding 矩阵是什么样的：\n# microgpt 中的 Embedding 初始化 n_embd = 16 # 嵌入维度只有 16！ vocab_size = 27 # 26 个字母 + 1 个特殊符号 block_size = 16 # 最大上下文长度 state_dict = { \u0026#39;wte\u0026#39;: matrix(vocab_size, n_embd), # 27 × 16 = 432 个参数 \u0026#39;wpe\u0026#39;: matrix(block_size, n_embd), # 16 × 16 = 256 个参数 ... } 训练前，这 432 个数字是随机的。训练 1000 步之后（约 4 分钟），它们自动组织成了有结构的向量：\n训练前：每个字母的 16 维向量是随机噪声 训练后： - 元音字母（a, e, i, o, u）的向量彼此接近 - 常见辅音（s, t, n, r）的向量形成一个簇 - 罕见字母（q, x, z）被推到空间的边缘 这发生在一个只有 4192 个参数的模型中——连 GPT-2 参数量的万分之一都不到。但 Embedding 的核心机制已经在工作了：数字通过训练，学会了反映字母之间的使用规律。\n# 在 nanoGPT 中运行 Embedding 可视化 demo # 此脚本加载训练好的模型，展示 Embedding 最近邻 source ~/ai-lab-venv/bin/activate cd ~/nanoGPT python demo_embedding_viz.py 本篇小结\n一、编号是死的 — A=65, B=66，数字之间的大小和意义无关。One-Hot 编码让所有词两两等距，无法泛化。\n二、Embedding 把编号变成坐标 — Firth 1957 年的\u0026quot;看它和谁在一起\u0026quot;被 Word2Vec 翻译成了矩阵乘法。king − man + woman ≈ queen 不是魔法，是语言统计结构的几何性质。\n三、人类也在做同样的事 — \u0026ldquo;大漠孤烟直\u0026quot;之所以能激起画面和情感，是因为每个词在你的认知中不是定义，而是一团多维的联想。你的人生阅历，就是你的训练数据。\n四、说到底就是一张表 — Embedding 矩阵就是查找表，但这张表是训练出来的。GPT-2 中它占 32% 参数，GPT-3 中只占 0.4%——模型越大，\u0026ldquo;思考\u0026quot;的部分越多，\u0026ldquo;查表\u0026quot;的比例越小。\n五、三者协作 — Embedding 给出起点（认识字），Attention 定位语境（读懂句子），MLP 注入知识（调动想象力）。\n六、语言不是障碍 — 中英文的同义词在向量空间中自动成为邻居。不同的编码系统，趋向于发现相似的底层结构。\n七、万物皆可 Embedding — 文字、图片、音频映射到同一个空间后，\u0026ldquo;猫\u0026quot;这个概念无论写它、拍它、还是听它叫，在向量空间中都是邻居。\n八、从静态到动态 — Word2Vec 一词一义，Transformer 让每个词的向量随上下文而变。Embedding 只是起点。\n九、压缩即理解 — 50000 维压到 768 维，这 65 倍的压缩迫使模型发现语义结构。这是\u0026quot;压缩即智能\u0026quot;最生动的注脚。\n写在最后 在这个系列的 开篇语 里，我写了五个字：压缩即智能。\nEmbedding 是这五个字最生动的注脚。\n50000 个词，每个词本来需要一个独立的维度来表示。但如果你硬逼它只用 768 个数字来区分所有的词——它就不得不去发现：哪些词是近的，哪些词是远的，哪些词之间有规律。\n\u0026ldquo;猫\u0026quot;和\u0026quot;狗\u0026quot;之所以在向量空间中是邻居，不是因为任何人告诉模型它们是相似的，而是因为在人类写下的万亿个字中，它们总是出现在相似的上下文中。\nFirth 在 1957 年说\u0026quot;看看它和谁在一起\u0026rdquo;。六十多年后，这句话被翻译成了矩阵乘法和梯度下降。\n而王维在 1200 年前写下的\u0026quot;大漠孤烟直\u0026rdquo;，之所以能在我们心中激起画面和情感，也是因为\u0026quot;大漠\u0026rdquo;、\u0026ldquo;孤\u0026rdquo;、\u0026ldquo;烟\u0026rdquo;、\u0026ldquo;直\u0026quot;这些词在我们的认知中，不是字典里的定义，而是丰富的、多维的、经过一生的阅读和体验训练出来的向量。\n人类用一辈子的经历训练自己的 Embedding。LLM 用万亿个字训练它的。方式不同，但最终做的是同一件事：\n让数字学会远近亲疏。\n参考文献\nFirth, J.R. (1957). A Synopsis of Linguistic Theory 1930-1955. Studies in Linguistic Analysis. — \u0026ldquo;You shall know a word by the company it keeps.\u0026rdquo; Bengio, Y. et al. (2003). A Neural Probabilistic Language Model. JMLR, 3, 1137-1155. — 第一个用神经网络学习词的分布式表示的语言模型。 Mikolov, T. et al. (2013a). Efficient Estimation of Word Representations in Vector Space. arXiv:1301.3781. — Word2Vec 的提出。 Mikolov, T. et al. (2013b). Distributed Representations of Words and Phrases and their Compositionality. NeurIPS. — 负采样、词组向量、类比发现。 Pennington, J., Socher, R. \u0026amp; Manning, C.D. (2014). GloVe: Global Vectors for Word Representation. EMNLP. — 将全局共现统计与局部上下文预测统一。 Arora, S. et al. (2016). A Latent Variable Model Approach to PMI-based Word Embeddings. TACL. — 数学解释 Word2Vec 线性类比的原因。 Peters, M. et al. (2018). Deep Contextualized Word Representations. NAACL. — ELMo，第一个上下文化 Embedding。 Conneau, A. et al. (2018). Word Translation Without Parallel Data. ICLR. — 无平行语料的跨语言对齐。 Harnad, S. (1990). The Symbol Grounding Problem. Physica D, 42, 335-346. — Embedding 能否产生\u0026quot;意义\u0026rdquo;？ Geva, M. et al. (2021). Transformer Feed-Forward Layers Are Key-Value Memories. EMNLP. — MLP 层作为知识存储。 Radford, A. et al. (2021). Learning Transferable Visual Models From Natural Language Supervision. ICML. — CLIP，文字和图片共享向量空间。 Girdhar, R. et al. (2023). ImageBind: One Embedding Space To Bind Them All. CVPR. — 六种模态，一个空间。 Huh, M. \u0026amp; Isola, P. (2024). The Platonic Representation Hypothesis. ICML. — 所有模型趋向同一个表示。 Inan, H. et al. (2017). Tying Word Vectors and Word Classifiers. ICLR. — Weight tying 技巧。 Johnson, W. \u0026amp; Lindenstrauss, J. (1984). Extensions of Lipschitz Mappings into a Hilbert Space. Contemporary Mathematics. — 高维到低维投影保持距离。 Karpathy, A. (2024). microgpt. GitHub Gist. — 200 行纯 Python GPT 实现。 推荐阅读\nJay Alammar (2019). The Illustrated Word2Vec — 最好的 Word2Vec 可视化教程。 Christopher Olah (2014). Deep Learning, NLP, and Representations — 从表示学习的角度理解 NLP。 💡 相关文章\n计算机只懂 0 和 1——从莫尔斯电码到 GPT 的编码简史 — 本文的前篇 AI 的数学语言（一）：向量——万物皆可数字化 — 什么是向量 AI 的数学语言（二）：点积——相似度的量化 — 余弦相似度 看见数学（十四）：高维空间——直觉失效的地方 — 为什么 768 维不会爆炸 看见数学（番外）：信息论——从电报到 GPT 的一条暗线 — 压缩即智能 Shannon 没有想到的事——当信息论遇上有限算力 — 有限的学习者能从数据中学到多少 从一个取反说起——计算机如何从「只会加法」走到「AI 写诗」 — 7 层抽象 博客：https://Jason-Azure.github.io/ai-blog/\n微信公众号：AI-lab学习笔记\n","permalink":"https://jason-azure.github.io/ai-blog/posts/embedding/","summary":"A=65, B=66——这些数字是死的。「大漠孤烟直，长河落日圆」——这些文字是活的。从莫尔斯电码到 GPT 的编码史中，有一步跨越改变了一切：数字不再是编号，而是坐标。它们学会了远近、方向和意思。这一步叫 Embedding。","title":"当数字学会了远近亲疏——从查表到 Embedding 的一步跨越"},{"content":"写在前面：为什么要写\u0026quot;看见物理\u0026quot; \u0026ldquo;看见数学\u0026quot;系列写完之后，有读者留言，问能不能也写一写高中物理。\n我想了想——不但可以，而且必须写。\n因为我在写\u0026quot;看见数学\u0026quot;的过程中，越来越强烈地意识到一件事：AI 里面到处都是物理学。Temperature、Entropy、Momentum、Diffusion、Energy Landscape……这些不是比喻，不是文学修辞——它们就是物理学的原始概念，被直接搬进了 AI。\n但这个系列不只是为了讲 AI。\n它也是给正在学物理的中学生写的。 给觉得物理\u0026quot;难\u0026quot;的人写的。给学过但忘了、想重新理解的人写的。\n物理课本教你 $v = v_0 + at$，告诉你\u0026quot;匀变速直线运动公式\u0026rdquo;。但从来没人停下来告诉你：\n这个公式在说什么？人类为什么需要它？它描述的是世界的哪一面？\n更没人告诉你：\n你学的这些东西，和今天最前沿的 AI 技术，用的是同一套思想。\n这个系列，就是来补这一课的。\n先祛个魅 你有没有发现，物理学里到处都是\u0026quot;XX力学\u0026quot;这种吓人的名字？\n经典力学 量子力学 统计力学 热力学 电动力学 流体力学 …… 这事要怪牛顿。\n1687 年牛顿出版了《自然哲学的数学原理》（Principia），用\u0026quot;力学\u0026quot;（mechanics，源自希腊语 μηχανική，原意是\u0026quot;关于巧妙装置的学问\u0026quot;）建立了一套解释万物运动的体系。这本书太成功了——它让\u0026quot;力学\u0026quot;这个词变成了\u0026quot;严谨的物理学\u0026quot;的代名词。\n之后的物理学家们发现了新的分支，也纷纷搬出\u0026quot;力学\u0026quot;来命名自己的领域：研究热的叫\u0026quot;热力学\u0026quot;，研究微观粒子的叫\u0026quot;量子力学\u0026quot;，用统计方法的叫\u0026quot;统计力学\u0026quot;……好像不带上\u0026quot;力学\u0026quot;两个字，就显得不够硬核，不够科学。\n这种\u0026quot;蹭品牌\u0026quot;的行为，在学术界至今屡见不鲜。 人类在追求真理、保持理性的同时，摆脱不了主观和感性的左右——给自己的学问挂一个响亮的名头，就是一种感性。\n但真理不需要响亮的名头。\n所谓\u0026quot;经典力学\u0026quot;，就是研究东西怎么动的学问。\n所谓\u0026quot;热力学\u0026quot;，就是研究热量怎么跑的学问。\n所谓\u0026quot;量子力学\u0026quot;，就是研究很小很小的东西的行为的学问。\n就这么简单。没有任何一条物理定律是\u0026quot;普通人理解不了\u0026quot;的。它们描述的，都是你每天能看到、能感受到的世界。\n一个更大的魅要祛：物理学从哪来？ 顺便说一件你可能不知道的事——\n\u0026ldquo;物理学\u0026quot;这个学科，很年轻。\u0026ldquo;物理学家\u0026quot;这个职业，更年轻。\n在牛顿的时代，根本没有\u0026quot;物理学家\u0026quot;这个词。牛顿给自己的书起的名字是《自然哲学的数学原理》——自然哲学（Natural Philosophy），不是\u0026quot;物理学\u0026rdquo;。\n在 19 世纪以前，研究自然的人统一叫做自然哲学家（Natural Philosopher）。数学、物理、化学、生物、天文——全都混在\u0026quot;自然哲学\u0026quot;这口大锅里。牛顿研究引力，也研究光学，也研究炼金术；达芬奇画蒙娜丽莎，也解剖尸体，也设计飞行器；亚里士多德同时是物理学家、生物学家、逻辑学家和政治学家——因为在他的时代，这些根本就是同一个东西。\n古希腊（公元前）：一切学问都叫\u0026#34;哲学\u0026#34; ↓ 中世纪：研究自然的叫\u0026#34;自然哲学\u0026#34; ↓ 17世纪：牛顿的巨著叫《自然哲学的数学原理》 ↓ 1833年：William Whewell 才发明了\u0026#34;scientist\u0026#34;（科学家）这个词 ↓ 19世纪末：物理、化学、生物才正式分家 牛顿从来不知道自己是个\u0026#34;物理学家\u0026#34;—— 这个词在他死后一百多年才被发明出来。 今天我们学物理、学化学、学生物，觉得它们是完全不同的学科。但回到源头，它们都是同一个冲动的产物——人类想弄明白这个世界是怎么运转的。\n好了，让我们从最简单的问题开始——\n东西为什么会动？\n系列导航\n▸ 第一篇（本文）：运动——世界从\"动\"开始 ▹ 第二篇：力——看不见的手 ▹ 第三篇：能量——不灭的守恒量 ▹ 第四篇：动量——惯性的力量 如果你已经读过 《看见数学》系列，会发现物理和数学的关系比你想象的更深——物理提出问题，数学发明工具来回答。\n第一章：两千年的错觉 公元前 340 年，雅典。\n亚里士多德——古希腊最伟大的思想家，写下了一个\u0026quot;显而易见\u0026quot;的结论：\n\u0026ldquo;重的东西比轻的东西落得快。\u0026rdquo;\n你觉得呢？一块大石头和一片树叶同时从楼上扔下去，谁先落地？\n显然是石头对吧？\n亚里士多德也是这么想的。 而且全世界的人，跟他想了两千年。\n他的理由也很\u0026quot;合理\u0026rdquo;：重的东西有更强的\u0026quot;趋向自然位置\u0026quot;的倾向，所以下落更快。\n这套说法统治了整个西方世界接近 2000 年。两千年里，无数聪明人读过这句话，觉得有道理，就接受了。\n没有人去试一下。\n为什么两千年没人质疑？ 这件事本身就值得深思。一个错误的结论，为什么能存活两千年？\n原因不是古人笨。原因是：\n日常经验似乎验证了它——石头确实比树叶落得快（因为空气阻力） 权威效应——亚里士多德说的，谁敢反对？ 没有\u0026quot;实验\u0026quot;的传统——古希腊人重视逻辑推理，轻视动手测量 这三条，至今仍在左右我们的思维。你以为的\u0026quot;常识\u0026quot;，有多少是未经验证的\u0026quot;两千年错觉\u0026quot;？\n一句话记住： \u0026ldquo;显而易见\u0026quot;是思维最危险的陷阱。物理学的第一课：不要相信\u0026quot;看起来对\u0026quot;的东西，要去测量。\n第二章：伽利略的转向——从\u0026quot;为什么\u0026quot;到\u0026quot;怎么\u0026rdquo; 1589 年，意大利比萨。\n一个 25 岁的数学教授，做了一件两千年来没人做过的事。\n传说他从比萨斜塔上同时扔下一个重球和一个轻球。\n两个球几乎同时落地。\n比萨斜塔实验是否真的发生过，历史学家至今有争议。但伽利略确实做了大量的斜面实验——让球沿着斜面滚下来，精确测量不同时间点的距离。\n这才是真正的革命所在。\n伽利略之前的人都在问：\u0026ldquo;东西为什么会动？\u0026rdquo; ——为什么石头会落下？因为它要回到\u0026quot;自然位置\u0026quot;。为什么火焰往上飘？因为它的本性是向上。\n这些回答听起来有道理，但什么都没告诉你。你无法用它们做任何预测。\n伽利略换了一个问题：\n\u0026ldquo;东西怎么动？\u0026rdquo;\n不问\u0026quot;为什么落下\u0026quot;。问\u0026quot;落下的速度是多少？怎么变的？每一秒比上一秒快多少？\u0026quot;\n伽利略的转向 亚里士多德的问题 伽利略的问题 为什么东西会落下？ 东西落下时速度怎么变？ 因为它有\u0026quot;趋向自然位置\u0026quot;的本性 速度每秒增加 9.8 m/s 听起来深刻，但无法验证 可以测量、验证、预测 哲学 科学 这不是一个\u0026quot;更好的回答\u0026quot;——这是一种全新的提问方式。\n物理学和哲学，在这一刻分道扬镳。\n一句话记住： 伽利略的革命不是发现了什么新东西。他的革命是：换了一种提问方式。从\u0026quot;为什么\u0026quot;到\u0026quot;怎么\u0026quot;——从追问终极原因，到精确描述过程。这就是科学方法的诞生。\n第三章：描述运动的语言——位移、速度、加速度 好了，伽利略说我们不问\u0026quot;为什么\u0026quot;，我们问\u0026quot;怎么动\u0026quot;。\n那怎么描述\u0026quot;怎么动\u0026quot;呢？你需要三个词。\n第一个词：位移（在哪）\n位移回答一个问题：你从哪到哪，移了多远？\n你从家走到学校： 路程（走了多少路）：1.5 km（拐弯抹角，实际走的路） 位移（直线距离）：0.8 km 向东北（起点到终点的直线） 位移 ≠ 路程 位移关心的是\u0026#34;结果\u0026#34;，不是\u0026#34;过程\u0026#34; 第二个词：速度（多快）\n速度回答一个问题：位移变化有多快？\n你走了 0.8 km，用了 10 分钟。 平均速度 = 位移 / 时间 = 0.8 km / 10 min = 4.8 km/h 但你不是每一秒都走这么快。 有时快有时慢。 每一个瞬间的速度是多少？这就是瞬时速度——你需要把时间间隔取得越来越小，取到无穷小。\n等等，\u0026ldquo;无穷小的时间间隔里的变化量\u0026rdquo;——这不就是导数吗？\n没错。速度就是位移对时间的导数。\n$$v = \\frac{dx}{dt}$$\n如果你读过《看见数学（九）：微积分——变化的语言》，你已经知道导数是什么了。这里你看到了它第一个也是最经典的用途——描述运动。\n事实上，牛顿发明微积分，就是为了描述运动。不是先有微积分，再用到物理——是物理需要一种描述变化的语言，微积分才被发明出来。\n物理提出问题，数学发明工具来回答。 这是物理和数学关系的核心。\n第三个词：加速度（变化的变化）\n加速度是最反直觉的一个。\n速度描述的是\u0026quot;位置变化有多快\u0026quot;。\n加速度描述的是\u0026quot;速度变化有多快\u0026quot;。\n一辆车： 速度大 ≠ 加速度大 速度变得快 = 加速度大 时速 200 km/h 匀速巡航的高铁 → 加速度 = 0 从 0 到 60 的电动车起步瞬间 → 加速度很大 加速度是速度的导数。 速度是位移的导数。 加速度 = 位移的二阶导数。 $$a = \\frac{dv}{dt} = \\frac{d^2x}{dt^2}$$\n三个词的关系 一句话记住： 位移、速度、加速度不是三个独立的概念——它们是同一个运动的三个层次，用导数和积分连接。理解了这一点，运动学公式就不用背了，因为它们都是一回事。\n第四章：伽利略的发现——自由落体 好，有了这三个词，我们可以精确描述伽利略发现了什么。\n伽利略通过斜面实验发现：一个自由下落的物体（忽略空气阻力），\n加速度是恒定的。\n不管它有多重，不管它已经落了多久——每一秒钟，速度都增加相同的量。\n地球上，这个恒定的加速度约为： g ≈ 9.8 m/s² 含义：每过 1 秒，下落速度增加 9.8 m/s 第 0 秒：v = 0 m/s （从静止开始） 第 1 秒：v = 9.8 m/s （约 35 km/h） 第 2 秒：v = 19.6 m/s （约 71 km/h） 第 3 秒：v = 29.4 m/s （约 106 km/h） 第 4 秒：v = 39.2 m/s （约 141 km/h） 4 秒，从 0 加速到 141 km/h。 这就是重力加速度的威力。 那课本上那些\u0026quot;匀变速直线运动\u0026quot;的公式呢？\n$$v = v_0 + at$$\n$$x = v_0 t + \\frac{1}{2}at^2$$\n你不需要背这些公式。 它们全是加速度恒定这一个事实的数学推论。\n如果你知道\u0026quot;加速度是速度对时间的导数\u0026quot;，反过来——\n对加速度 $a$（常数）做积分，得到速度 $v = v_0 + at$ 对速度再做一次积分，得到位移 $x = v_0 t + \\frac{1}{2}at^2$ 两个公式，就是两次积分。没有任何神秘的地方。\n公式不是从天上掉下来的 已知：加速度 a 是常数 第一次积分： ∫a dt = at + C₁ → 速度 v = v₀ + at ✓ 第二次积分： ∫(v₀ + at) dt = v₀t + ½at² + C₂ → 位移 x = v₀t + ½at² ✓ 两个公式 = 两次积分。 学了微积分之后，运动学公式全是\u0026#34;算\u0026#34;出来的，不用背。 这就是物理和数学的关系：\n物理告诉你：\u0026ldquo;加速度是恒定的\u0026rdquo;（这是实验发现的事实） 数学负责推导出所有公式（这是逻辑的必然结果） 一句话记住： 物理不需要\u0026quot;背公式\u0026quot;。物理只需要理解一个核心事实，然后用数学推出其余一切。如果你在背公式，说明你还没找到那个核心事实。\n第五章：连接 AI——梯度就是\u0026quot;变化的速度\u0026quot; 现在来看一件你可能想不到的事。\nAI 训练模型的核心算法，用的就是\u0026quot;速度\u0026quot;和\u0026quot;加速度\u0026quot;的思想。\n当你训练一个 AI 模型（比如 GPT），本质上在做一件事：\n找到一组参数，让模型的预测误差（损失函数）尽可能小。\n这就像在一片山地里找最低的谷底：\n怎么找到谷底？最直觉的方法：\n看脚下哪边是下坡，往那边走。\n\u0026ldquo;脚下哪边是下坡\u0026rdquo;——这就是梯度（gradient）。\n梯度是什么？梯度就是损失函数对参数的导数。\n$$\\text{梯度} = \\frac{\\partial L}{\\partial w}$$\n把这个和运动学放在一起看：\n运动学 vs 梯度下降 物理 AI 训练 位置 $x$ 模型参数 $w$ 速度 $v = dx/dt$ 参数更新方向 $\\Delta w$ 加速度 $a$ 学习率 × 梯度 球沿山坡滚下 参数沿梯度方向更新 谷底 = 势能最低点 谷底 = 损失最小的参数 摩擦力让球停下 学习率衰减让训练收敛 再看一个更直接的对应。\nAI 优化器里有一个著名的技巧叫 Momentum（动量）。它的意思是：更新参数时，不只看当前的梯度，还\u0026quot;记住\u0026quot;之前的更新方向，像一个有惯性的球。\n没有动量： 每一步都只看当前的梯度方向 容易在山谷里来回震荡 ← → ← → ← → （走不远） 有动量： 记住之前在往哪个方向走 像一个有惯性的球，越滚越有方向 → → → → → → （直奔谷底） \u0026ldquo;动量\u0026quot;这个词不是比喻——它就是从物理学的动量概念直接借过来的。\n物理学课本上的 $p = mv$，和 AI 优化器里的 Momentum 参数，描述的是同一种思想：惯性让运动更稳定。\n一句话记住： AI 训练 = 一个球在损失函数的山地上滚。梯度是\u0026quot;坡度\u0026rdquo;，Momentum 是\u0026quot;惯性\u0026quot;。你在物理课上学的运动学，正是 AI 工程师每天在用的东西。\n第六章：更深的问题——\u0026ldquo;动\u0026quot;是绝对的吗？ 伽利略还发现了一件比自由落体更深刻的事。\n想象你坐在一艘平稳行驶的船上（没有窗户）。你在船舱里扔一个球，球的运动轨迹和你在岸上扔一个球完全一样。\n你无法通过任何实验判断自己是\u0026quot;在动\u0026quot;还是\u0026quot;静止\u0026rdquo;。\n这就是伽利略相对性原理——运动是相对的。\n你坐在火车上，看窗外的树在往后跑。 窗外的人看你在往前跑。 谁在动？ 答案：都在动，也都没在动。 取决于你选谁当\u0026#34;参考\u0026#34;。 没有\u0026#34;绝对静止\u0026#34;这回事。 这个想法后来被爱因斯坦推到了极致——狭义相对论。但它的种子是伽利略种下的。\n这也暗示了一种重要的思维方式：很多看似\u0026quot;绝对\u0026quot;的东西，其实取决于你的参考系。\n参考系思维： 物理学告诉你：没有\"客观\"的运动，只有\"相对于某个参考系\"的运动。这种思维方式远远超出物理学本身——在讨论经济增长、个人成长、甚至道德判断时，\"你站在什么参考系里？\"往往是最关键的问题。\n第七章：物理学家的故事——伽利略的代价 伽利略不只是一个聪明的科学家。他是一个用一生与权威对抗的人。\n1633 年，69 岁的伽利略被罗马宗教裁判所传唤。罪名是：宣传\u0026quot;地球围绕太阳转\u0026quot;的日心说。\n教会给了他一个选择：要么认错，要么受刑。\n伽利略选择了认错。他跪在法庭上，宣读了一份声明：\n\u0026ldquo;我放弃、诅咒并痛恨上述错误和异端……\u0026rdquo;\n传说他站起来时，低声说了一句：\n\u0026ldquo;Eppur si muove.\u0026rdquo;（但它确实在动。）\n这句话可能是后人虚构的 历史学家认为伽利略在法庭上不太可能说出这句话（太危险了）。这句话最早出现在他去世一百多年后的记载中。\n但它为什么流传至今？因为它代表了一种精神：\n真理不因为你否认它就不存在。\n地球不会因为权威说它不动，就真的不动。自由落体不会因为亚里士多德说重的快，就真的重的快。\n科学的力量不在于科学家有多聪明，在于科学的方法——实验、测量、验证——不因任何人的意志而改变结果。\n伽利略被判终身软禁。他在软禁中度过了生命最后的 8 年，双目失明，但仍然在写作。他最伟大的著作《两种新科学的对话》，就是在软禁期间完成的。\n1642 年 1 月 8 日，伽利略去世。\n同一年的 12 月 25 日，一个婴儿出生在英国一个小村庄里。\n他的名字叫艾萨克·牛顿。\n伽利略问了\u0026quot;怎么动\u0026quot;。牛顿将回答\u0026quot;为什么动\u0026quot;。但牛顿的\u0026quot;为什么\u0026quot;和亚里士多德的\u0026quot;为什么\u0026quot;完全不同——它不是哲学猜想，而是可以精确计算的数学定律。\n这是下一篇的故事。\n本篇小结 这篇文章讲了什么？ 一、两千年的错觉\n亚里士多德说\u0026quot;重的落得快\u0026quot;，全世界信了 2000 年 没人去验证——权威 + \u0026ldquo;常识\u0026rdquo; = 最危险的思维陷阱 二、伽利略的转向\n不再问\u0026quot;为什么动\u0026quot;，改问\u0026quot;怎么动\u0026quot; 从哲学猜想到精确测量——科学方法的诞生 三、描述运动的三层语言\n位移 → 速度 → 加速度，就是三层导数 运动学公式 = 加速度恒定这一个事实的两次积分 物理提出问题，数学发明工具来回答 四、自由落体\n所有物体的重力加速度相同（约 9.8 m/s²） 与重量无关——伽利略最反直觉的发现 五、梯度下降 = 球沿山坡滚\nAI 训练的核心算法，就是物理学的运动 梯度 = 坡度，Momentum = 惯性 物理课上学的东西，AI 工程师每天在用 六、运动是相对的\n没有\u0026quot;绝对静止\u0026quot;，只有\u0026quot;相对于参考系的运动\u0026quot; 这种思维方式远超物理学本身 下一篇预告 伽利略告诉我们\u0026quot;东西怎么动\u0026quot;。但一个更深的问题还没回答：\n\u0026ldquo;东西为什么会动？\u0026rdquo;\n牛顿用三条定律回答了这个问题。而其中最反直觉的一条，不是 F=ma，而是第一定律——\n一个不受力的物体，不是静止不动的。它会永远匀速运动下去。\n这颠覆了人类两千年的直觉。它改变了\u0026quot;运动\u0026quot;的含义本身。\n下一篇：看见物理（二）：力——看不见的手\n动手实验 如果你想亲手\u0026quot;看见\u0026quot;自由落体和梯度下降的关系，可以试试这段代码：\n# 纯 Python，零依赖 # ===== 实验 1：模拟自由落体 ===== print(\u0026#34;=== 自由落体 ===\u0026#34;) g = 9.8 # 重力加速度 m/s² v = 0 # 初速度 x = 0 # 初始高度（向下为正） dt = 0.5 # 时间步长 for step in range(9): t = step * dt v = g * t # v = at（速度 = 加速度 × 时间） x = 0.5 * g * t * t # x = ½at² print(f\u0026#34; t={t:.1f}s 速度={v:5.1f} m/s 下落={x:6.1f} m\u0026#34;) # ===== 实验 2：梯度下降找最低点 ===== print(\u0026#34;\\n=== 梯度下降 ===\u0026#34;) print(\u0026#34;目标：找到 f(x) = (x-3)² 的最低点\\n\u0026#34;) x = 10.0 # 从 x=10 开始 lr = 0.1 # 学习率（相当于物理里的\u0026#34;步长\u0026#34;） momentum = 0.0 beta = 0.9 # 动量系数 for step in range(20): # 当前的\u0026#34;海拔\u0026#34;（损失值） loss = (x - 3) ** 2 # 梯度 = 导数 = 2(x-3) = \u0026#34;坡度\u0026#34; grad = 2 * (x - 3) # 动量更新（像有惯性的球） momentum = beta * momentum + grad # 沿梯度方向走一步 x = x - lr * momentum if step % 3 == 0 or step == 19: bar = \u0026#34;█\u0026#34; * int(loss / 2) if loss \u0026gt; 0.5 else \u0026#34;▎\u0026#34; print(f\u0026#34; 第{step+1:2d}步 x={x:.4f} 损失={loss:.4f} {bar}\u0026#34;) print(f\u0026#34;\\n 最终 x={x:.4f}（最优解是 3.0）\u0026#34;) print(f\u0026#34; 梯度下降 = 一个有动量的球在抛物线上滚到谷底\u0026#34;) 运行之后你会看到：自由落体是加速度恒定的运动，梯度下降是\u0026quot;球在损失函数上滚\u0026quot;——同一套思想，两个世界。\n延伸阅读 想更深入了解本篇内容？推荐以下资料：\n《两种新科学的对话》 ——伽利略，物理学的奠基之作。用对话体写成，400 年后读起来仍然清晰有趣 Feynman Lectures on Physics, Vol. 1, Ch. 8: Motion ——费曼讲物理，运动学章节，大师级的直觉讲解 3Blue1Brown：\u0026ldquo;微积分的本质\u0026quot;系列 ——YouTube/B 站均有，用动画展示导数与运动的关系 《看见物理》系列 — 从运动到世界模型，看见物理之美。\n本文首发于「AI 学习笔记」博客：https://Jason-Azure.github.io/ai-blog/\n微信公众号：AI-lab学习笔记\n系列文章完整列表见 标签：看见物理\n","permalink":"https://jason-azure.github.io/ai-blog/posts/see-physics-1-motion/","summary":"物理学不是从公式开始的，是从一个最朴素的问题开始的：东西为什么会动？一个意大利人决定不再问「为什么」，而是问「怎么动」——这个转向，开启了整个现代科学。","title":"看见物理（一）：运动——世界从\"动\"开始"},{"content":"从上一篇的一行代码说起 上一篇 《当数字学会了远近亲疏》 里，我们拆开了 Embedding 矩阵，看到了这行代码：\n# microgpt（Karpathy 的 200 行纯 Python GPT 实现） tok_emb = state_dict[\u0026#39;wte\u0026#39;][token_id] # 查 Token Embedding 表 pos_emb = state_dict[\u0026#39;wpe\u0026#39;][pos_id] # 查 Position Embedding 表 x = [t + p for t, p in zip(tok_emb, pos_emb)] # 逐元素相加 在 nanoGPT（Karpathy 的 PyTorch GPT 训练项目）中：\ntok_emb = self.transformer.wte(idx) # (batch, seq_len, 768) pos_emb = self.transformer.wpe(pos) # (seq_len, 768) x = self.transformer.drop(tok_emb + pos_emb) # 直接加！ 💡 关于代码示例： 本文引用的 microgpt 和 nanoGPT 是 Karpathy 开源的教学项目——前者 200 行零依赖，后者用 PyTorch。它们是理解 GPT 内部机制的最佳起点。如果你对代码不熟悉，可以先跳过代码块，专注于文字和图解——后续我会出视频逐行拆解这些代码。\n当时我说了一句话：\nToken Embedding 告诉模型\u0026quot;这个词是什么\u0026quot;，Position Embedding 告诉模型\u0026quot;这个词在哪里\u0026quot;。\n但我没有展开三个问题：\n为什么需要位置信息？ 没有它会怎样？ 位置信息为什么可以直接\u0026quot;加\u0026quot;上去？ 加上去不会破坏语义吗？ 位置到底该怎么编码？ 从 2017 年到今天，方案变了好几轮。 这三个问题，就是今天这篇文章的全部。\n一、\u0026ldquo;猫吃鱼\u0026quot;和\u0026quot;鱼吃猫\u0026rdquo;——Transformer 的致命缺陷 Attention 是一个\u0026quot;集合\u0026quot;操作，不是\u0026quot;序列\u0026quot;操作 让我们回到 Attention 的计算公式：\nAttention(Q, K, V) = softmax(Q·K^T / √d) · V 这个公式做的是什么？对于每个词，计算它和所有其他词的相关度（通过点积 Q·K^T），然后用这些相关度做加权平均。\n注意一个关键事实：点积是对称的。 它只关心两个向量\u0026quot;是什么\u0026quot;，不关心它们\u0026quot;在哪里\u0026quot;。\n如果你把输入 tokens 的顺序打乱，每个 token 和其他 token 的点积完全不变——输出只是跟着重新排列，内容一样。\n\u0026ldquo;If we permute the input sequence, the output sequence will be exactly the same, except permuted also.\u0026rdquo;\n— Peter Bloem, Transformers from Scratch\n用一句话说：Transformer 天生是\u0026quot;置换不变\u0026quot;（permutation invariant）的。\n这意味着什么？\n输入 1: \u0026#34;猫 吃 鱼\u0026#34; 输入 2: \u0026#34;鱼 吃 猫\u0026#34; 没有位置编码 → Transformer 看到的是同一个词袋 {\u0026#34;猫\u0026#34;, \u0026#34;吃\u0026#34;, \u0026#34;鱼\u0026#34;} → 两个输入产生完全相同的输出 → 谁吃谁？不知道。 \u0026ldquo;猫吃鱼\u0026quot;和\u0026quot;鱼吃猫\u0026rdquo;，变成了同一件事。\n这不是一个小问题。这意味着没有位置信息的 Transformer，退化成了一个词袋模型——只知道句子里有哪些词，不知道词的顺序。而在自然语言中，词序承载了几乎所有的语法和大部分的语义。\n▲ 没有位置编码时，Attention 只看向量内容，不看排列顺序——\"猫吃鱼\"和\"鱼吃猫\"无法区分 语序对人类意味着什么？ 在继续看技术方案之前，值得停下来想一想：语言中的\u0026quot;位置\u0026quot;到底编码了什么信息？\n\u0026#34;我 打了 他\u0026#34; → 我是施暴者 \u0026#34;他 打了 我\u0026#34; → 他是施暴者 同样的三个词，顺序一变，施受关系完全反转。 \u0026#34;不是 我 不想去\u0026#34; → 否定的是意愿 \u0026#34;我 不是 不想去\u0026#34; → 双重否定 ≈ 想去 否定词的位置决定了否定的范围。 \u0026#34;大漠 孤烟 直\u0026#34; → 五言古诗的节奏 \u0026#34;孤烟 直 大漠\u0026#34; → 不成句 词序即韵律，打乱则失去诗意。 更有意思的是，不同语言的词序差异非常大：\n语言 基本语序 \u0026ldquo;猫吃鱼\u0026rdquo; 中文/英文 SVO（主-谓-宾） 猫 吃 鱼 / Cat eats fish 日文/韩文 SOV（主-宾-谓） 猫が魚を食べる (猫-鱼-吃) 阿拉伯语 VSO（谓-主-宾） يأكل القط السمكة (吃-猫-鱼) 全世界 ~6000 种语言，用了至少 6 种不同的基本语序。 但无论哪种语序，顺序本身都携带了不可或缺的语法信息。\nTransformer 要处理所有这些语言——它必须能感知位置。\nRNN 从来不需要担心这个问题 有意思的是，在 Transformer 之前的主流架构——RNN 和 LSTM——天然就知道顺序。\n因为 RNN 的计算方式是：\nh₁ = f(h₀, x₁) ← 必须先算 h₀ 才能算 h₁ h₂ = f(h₁, x₂) ← 必须先算 h₁ 才能算 h₂ h₃ = f(h₂, x₃) ← 必须先算 h₂ 才能算 h₃ 处理顺序本身就编码了位置。 第 5 个词之所以\u0026quot;知道\u0026quot;自己是第 5 个，是因为它在第 4 个词之后被处理。隐状态 h₅ 包含了\u0026quot;我已经看过了前面 4 个词\u0026quot;这个信息。\n但这也是 RNN 的致命弱点——必须顺序处理，无法并行。 一个 1000 词的句子，需要串行计算 1000 步。\nTransformer 的革命性贡献正是并行化：所有词同时处理。但代价是——丢失了位置信息。\nRNN: 顺序处理 → 天然有位置 → 但无法并行 Transformer: 并行处理 → 丢失位置 → 需要人工注入 这是 Vaswani 等人在 2017 年原论文中的原话：\n\u0026ldquo;Since our model contains no recurrence and no convolution, in order for the model to make use of the order of the sequence, we must inject some information about the relative or absolute position of the tokens in the sequence.\u0026rdquo;\n（由于我们的模型不包含循环也不包含卷积，为了让模型利用序列的顺序信息，我们必须注入关于 token 在序列中位置的信息。）\nVaswani, A. et al. (2017). Attention Is All You Need. NeurIPS.\n一句话记住： Transformer 的 Attention 只看\u0026quot;谁和谁相关\u0026quot;，不看\u0026quot;谁在谁前面\u0026quot;。没有位置编码，\u0026ldquo;猫吃鱼\u0026quot;和\u0026quot;鱼吃猫\u0026quot;是同一件事。位置编码是给并行化付出的代价。\n位置编码的\u0026quot;搭档\u0026rdquo;：因果掩码 位置编码告诉模型\u0026quot;你在哪里\u0026quot;。但还有另一个机制在同时工作，告诉模型\u0026quot;你能看到谁\u0026quot;——这就是因果掩码（causal mask）。\n在 GPT 这类自回归语言模型中，第 5 个词在预测时不应该看到第 6、7、8\u0026hellip; 个词——因为那些词还没有被生成。所以 Attention 的计算必须被遮挡：\nAttention 矩阵（4 个词的例子）： 词1 词2 词3 词4 词1 [ ✓ ✗ ✗ ✗ ] ← 词1 只能看自己 词2 [ ✓ ✓ ✗ ✗ ] ← 词2 能看词1和自己 词3 [ ✓ ✓ ✓ ✗ ] ← 词3 能看前3个 词4 [ ✓ ✓ ✓ ✓ ] ← 词4 能看所有 这是一个下三角矩阵。在代码中：\n# nanoGPT 中的因果掩码 self.register_buffer(\u0026#34;bias\u0026#34;, torch.tril(torch.ones(block_size, block_size)) # 下三角矩阵 .view(1, 1, block_size, block_size)) # Attention 计算时 att = (q @ k.transpose(-2, -1)) * (1.0 / math.sqrt(k.size(-1))) att = att.masked_fill(self.bias[:,:,:T,:T] == 0, float(\u0026#39;-inf\u0026#39;)) # 被遮挡的位置设为 -∞ att = F.softmax(att, dim=-1) # softmax 后 -∞ 变成 0 → 完全不关注 位置编码和因果掩码共同构建了\u0026quot;序列感\u0026quot;：\n机制 回答的问题 隐喻 位置编码 \u0026ldquo;你在第几个位置？\u0026rdquo; 座位号 因果掩码 \u0026ldquo;你能看到哪些位置？\u0026rdquo; 单向窗帘——只能往前看 没有位置编码 → 模型不知道词的排列。 没有因果掩码 → 模型\u0026quot;偷看\u0026quot;了还没生成的未来词。 两者缺一不可，一起让 Transformer 从\u0026quot;集合处理器\u0026quot;变成\u0026quot;序列生成器\u0026quot;。\n▲ 因果掩码的下三角结构。蓝色\"可见\"表示可以关注，灰色\"遮挡\"表示被屏蔽（softmax 后权重为 0） 值得注意的是：BERT 这类双向模型不使用因果掩码——它允许每个词看到所有其他词。这也是为什么 BERT 适合理解任务（已有完整句子），而 GPT 适合生成任务（逐词预测）。\n二、正弦的密码——Vaswani 的原始方案 一个用波来表示位置的天才想法 在讲正弦编码之前，先回答一个更基本的问题：\n为什么不直接用 0、1、2、3\u0026hellip; 这些数字来表示位置？\n这是最自然的想法。但它有三个致命问题：\n方案 1：直接用位置数字 位置 0 → 0 位置 1 → 1 位置 100 → 100 位置 999 → 999 问题： 1. 数值范围无界 — 位置 999 的数值是位置 1 的 999 倍， 梯度会爆炸 2. 模型没见过 — 训练时最长 512，推理时遇到 513， 这个数值在训练分布之外 3. 一个数字承载不了足够的信息 — 768 维的语义向量加上 1 个位置数字？比例完全失衡 方案 2：归一化到 [0, 1] 位置 0 → 0.000 位置 1 → 0.002 （序列长度 512 时） 位置 1 → 0.001 （序列长度 1024 时） 问题： 同一个位置在不同长度的句子中有不同的编码！ 位置 1 在短句中是 0.01，在长句中是 0.001。 模型无法学到\u0026#34;第 1 个位置\u0026#34;的统一表示。 两种直觉方案都失败了。 我们需要一种编码，满足：\n每个位置有唯一的表示 数值有界（不会爆炸） 不同位置之间的关系是可学习的 维度要和语义向量匹配（768 维） Vaswani 团队在 2017 年提出了一个既简洁又深刻的方案：用不同频率的正弦波和余弦波来编码每个位置。\n公式如下：\nPE(pos, 2i) = sin(pos / 10000^(2i/d)) PE(pos, 2i+1) = cos(pos / 10000^(2i/d)) 其中：\npos = 词在句子中的位置（0, 1, 2, \u0026hellip;） i = 嵌入向量的维度索引（0, 1, 2, \u0026hellip;, d/2-1） d = 嵌入维度（如 512 或 768） 每两个相邻维度组成一对 (sin, cos)。一个 768 维的位置向量，由 384 对 (sin, cos) 组成。\n如果你对 sin/cos 的本质还不太熟悉，推荐先看 看见数学（八）：圆与波——三角函数的真面目。那篇文章讲清了一个核心观点：三角函数不是关于三角形的，它描述的是圆的运动和波的节奏。\n用一个迷你例子\u0026quot;看到\u0026quot;位置编码 公式太抽象？让我们用一个 d=8 的迷你向量，手算前几个位置的编码。\nd = 8，所以有 4 对 (sin, cos) 频率分别是： ω₀ = 1/10000^(0/8) = 1.000 ω₁ = 1/10000^(2/8) = 0.100 ω₂ = 1/10000^(4/8) = 0.010 ω₃ = 1/10000^(6/8) = 0.001 位置 0 的编码： [sin(0×1.0), cos(0×1.0), sin(0×0.1), cos(0×0.1), ...] = [0.000, 1.000, 0.000, 1.000, 0.000, 1.000, 0.000, 1.000] 位置 1 的编码： [sin(1×1.0), cos(1×1.0), sin(1×0.1), cos(1×0.1), ...] = [0.841, 0.540, 0.100, 0.995, 0.010, 1.000, 0.001, 1.000] 位置 2 的编码： [sin(2×1.0), cos(2×1.0), sin(2×0.1), cos(2×0.1), ...] = [0.909, -0.416, 0.199, 0.980, 0.020, 1.000, 0.002, 1.000] 注意看规律：\n前两个维度变化剧烈（0→0.841→0.909）— 高频，区分相邻位置 后两个维度几乎不变（0→0.001→0.002）— 低频，区分远距离位置 如果把所有位置的编码画成热力图——横轴是维度，纵轴是位置，颜色表示值的大小——你会看到一个极具辨识度的图案：\n▲ 位置编码矩阵的热力图。左侧（低维度）条纹密集 = 高频；右侧（高维度）条纹稀疏 = 低频。每一行是一个位置的唯一\"指纹\" 位置之间的\u0026quot;距离感\u0026quot; 正弦编码还有一个优美的性质：两个位置编码向量的点积，只取决于它们之间的距离。\ndot(PE(3), PE(5)) = dot(PE(10), PE(12)) = dot(PE(100), PE(102)) 因为距离都是 2，所以点积相同。\n▲ 位置 vs 位置的点积矩阵。颜色只取决于对角线方向（即距离），与具体位置无关——这就是\"相对位置\"的体现 这意味着模型可以通过点积来感知\u0026quot;这两个词离多远\u0026quot;，而不需要知道它们的绝对位置。正弦编码从一开始就内置了相对位置的信息。\n类比：二进制计数器 这个公式看起来很抽象。但如果你用一个类比来理解，就立刻清晰了。\n想想二进制计数器：\n位置 0: 0 0 0 0 0 0 0 0 位置 1: 0 0 0 0 0 0 0 1 ← 最低位：每一步翻转 位置 2: 0 0 0 0 0 0 1 0 ← 次低位：每 2 步翻转 位置 3: 0 0 0 0 0 0 1 1 位置 4: 0 0 0 0 0 1 0 0 ← 第 3 位：每 4 步翻转 位置 5: 0 0 0 0 0 1 0 1 位置 6: 0 0 0 0 0 1 1 0 位置 7: 0 0 0 0 0 1 1 1 位置 8: 0 0 0 0 1 0 0 0 ← 第 4 位：每 8 步翻转 每一位都在以不同的频率翻转。低位翻转快，高位翻转慢。组合起来，每个数都有唯一的二进制表示。\n正弦位置编码就是这种计数器的连续、平滑版本：\n低维度（小 i）→ 高频正弦波 → 快速振荡 → 类似二进制的低位 高维度（大 i）→ 低频正弦波 → 缓慢变化 → 类似二进制的高位 ▲ 每个维度是一个不同频率的波。低维度波动快（区分相邻位置），高维度波动慢（区分远距离位置） 为什么用 sin 和 cos 配对？——因为旋转 这是正弦编码最深刻的数学性质。\n原论文在第 3.5 节给出了选择正弦函数的核心理由：\n\u0026ldquo;We hypothesized it would allow the model to easily learn to attend by relative positions, since for any fixed offset k, PE(pos+k) can be represented as a linear function of PE(pos).\u0026rdquo;\n翻译过来：位置 pos+k 的编码，可以写成位置 pos 编码的线性变换。\n为什么？利用三角恒等式：\nsin(ω(pos+k)) = sin(ωpos)·cos(ωk) + cos(ωpos)·sin(ωk) cos(ω(pos+k)) = cos(ωpos)·cos(ωk) - sin(ωpos)·sin(ωk) 写成矩阵形式：\n[sin(ω(pos+k))] [cos(ωk) sin(ωk)] [sin(ωpos)] [cos(ω(pos+k))] = [-sin(ωk) cos(ωk)] [cos(ωpos)] 右边的 2×2 矩阵是什么？一个旋转矩阵！ 旋转角度是 ωk。\n而这个旋转矩阵只取决于偏移量 k，不取决于绝对位置 pos。\n这意味着：\n从位置 3 到位置 7（偏移 k=4）的变换 和从位置 100 到位置 104（偏移 k=4）的变换 是同一个旋转矩阵！ 模型只需要学会一个\u0026quot;往后偏移 4 步\u0026quot;的线性变换，就能在任何位置使用它。相对位置关系被编码为旋转——这就是为什么必须用 sin 和 cos 配对。\n只有同时使用 sin 和 cos，才能用线性变换表达 sin(x+k) 和 cos(x+k)。这不是审美选择，这是数学必然。\nKazemnejad, A. Transformer Architecture: The Positional Encoding.\n▲ 左：每对 (sin, cos) 构成圆上的一个点，位置递增 = 沿圆运动。右：从 pos=0 到 pos=n 的偏移就是一个固定角度的旋转 10000 这个底数是什么意思？ 公式中有一个看似随意的数字：10000。它是什么？\n频率 ω_i = 1 / 10000^(2i/d) 波长 λ_i = 2π × 10000^(2i/d) 最低维度（i=0）：波长 = 2π ≈ 6.28 → 每 ~6 个位置一个完整周期 最高维度（i=d/2-1）：波长 = 2π × 10000 ≈ 62832 → 可以区分约 10000 个位置 10000 决定了模型能\u0026quot;看到\u0026quot;的最远距离。 波长从 2π 到 10000·2π，构成一个几何级数。\n底数太小（如 100）→ 高频波段太拥挤，位置分辨率不够。 底数太大（如 10^6）→ 低频波段过于稀疏，近距离分辨力浪费。 10000 是实验中找到的平衡点。\n现代模型（如 LLaMA）在需要扩展上下文长度时，会调大这个底数。例如 NTK-aware scaling 把底数增大到 500000 来支持 100K+ token 的长上下文。\n一句话记住： 正弦位置编码 = 多频率的波。低维度的波区分近距离位置，高维度的波区分远距离位置。sin 和 cos 配对形成旋转，使得相对位置变成了旋转角度——不依赖于绝对位置。\n三、最深的问题：为什么可以\u0026quot;加\u0026quot;？ 这一步看起来太暴力了 让我们再看一次这行代码：\nx = tok_emb + pos_emb Token embedding 是\u0026quot;猫\u0026quot;的语义向量——768 个数字，编码了\u0026quot;猫是动物、是宠物、有四条腿\u0026quot;等信息。\nPosition embedding 是\u0026quot;第 3 个位置\u0026quot;的向量——768 个数字，编码了\u0026quot;这是序列中的第 3 个元素\u0026quot;。\n直接逐元素相加。\n直觉上这很不安——你把一个关于\u0026quot;意思\u0026quot;的向量和一个关于\u0026quot;位置\u0026quot;的向量混在一起了。加完之后，原来的语义信息还在吗？位置信息能被正确提取吗？\n这是位置编码中最反直觉的一步。 连广泛引用的 Kazemnejad 教程也坦承：\n\u0026ldquo;I couldn\u0026rsquo;t find any theoretical reason for this question.\u0026rdquo; （我找不到这个问题的理论性答案。）\n但我们可以从多个角度理解为什么它能工作。\n第一个原因：768 维空间大得超乎想象 在你的日常直觉中，加法意味着混合、覆盖。把红色颜料和蓝色颜料加在一起，你得到紫色——两种原色都无法恢复。\n但这是在 2 维或 3 维空间里的直觉。\n在 768 维空间中，情况完全不同。\n核心数学事实：在 d 维空间中，两个随机向量几乎一定是近似正交的。\n两个随机 768 维单位向量的内积： 期望值 E[⟨u, v⟩] = 0 标准差 σ = 1/√768 ≈ 0.036 也就是说，典型的内积绝对值 \u0026lt; 0.04 → 两个随机向量几乎垂直 这意味着什么？token embedding 和 position embedding 是分别学习的两组向量。在 768 维空间中，它们自然倾向于占据不同的方向。\n加在一起后，一个分量对另一个分量的\u0026quot;干扰\u0026quot;非常小——因为它们几乎正交。\n这和你在 《高维空间——直觉失效的地方》 中读到的现象一脉相承：高维空间有一种我们在三维世界中完全没有的\u0026quot;容量\u0026quot;——它可以同时容纳大量近似正交的方向。\n2022 年，Anthropic 团队在 Toy Models of Superposition 中系统地研究了这个现象：神经网络可以在 d 维空间中同时表示远超 d 个特征——它们以近似正交的方式\u0026quot;叠加\u0026quot;在同一空间中。\nElhage, N. et al. (2022). Toy Models of Superposition. Anthropic.\n▲ 维度越高，可以容纳的近似正交向量越多。768 维中，语义和位置信息可以互不干扰地叠加 第二个原因：Attention 能自动分离内容和位置 加法不是终点。加完之后，向量 x = e + p 要经过 Attention 层的 W_Q 和 W_K 投影。\n让我们展开 Attention score 的计算：\nscore(i,j) = (x_i · W_Q) · (x_j · W_K)^T x_i = e_i + p_i （第 i 个词的语义 + 位置） x_j = e_j + p_j （第 j 个词的语义 + 位置） 把 x = e + p 代入，展开得到四项：\nscore(i,j) = (e_i·W_Q)(e_j·W_K)^T ← ① 内容-内容 + (e_i·W_Q)(p_j·W_K)^T ← ② 内容-位置 + (p_i·W_Q)(e_j·W_K)^T ← ③ 位置-内容 + (p_i·W_Q)(p_j·W_K)^T ← ④ 位置-位置 四项的含义——每一项都有用：\n项 含义 例子 ① 内容-内容 两个词的语义相关度 \u0026ldquo;猫\u0026quot;和\u0026quot;吃\u0026quot;是否常共现？ ② 内容-位置 某个词偏好某个位置 \u0026ldquo;The\u0026quot;偏好出现在句首 ③ 位置-内容 某个位置偏好某类词 句首位置偏好冠词 ④ 位置-位置 两个位置的固有关系 相邻位置应该互相关注 关键洞察：W_Q 和 W_K 是可学习的线性变换。 模型通过训练这些权重矩阵，可以学会从混合信号中分别提取内容和位置信息，并利用所有四种交互模式。\n加法并没有永久性地混合信息——线性层可以把它们重新分开。\n这正是 Ke et al. (2020) 在 TUPE 论文中验证的：如果用不同的 W_Q、W_K 分别处理内容和位置（即显式解耦），效果确实更好。这从侧面证明了四项分解确实是模型在做的事情。\nKe, G. et al. (2020). Rethinking Positional Encoding in Language Pre-training. ICLR 2021.\n第三个原因：参数效率 如果不用加法，还有什么选择？拼接（concatenation）。\n# 加法：维度不变 x = tok_emb + pos_emb # (seq_len, 768) # 拼接：维度翻倍！ x = torch.cat([tok_emb, pos_emb], dim=-1) # (seq_len, 1536) 拼接后，所有后续层的输入维度翻倍 → W_Q、W_K、W_V 的参数量翻倍 → FFN 的参数量翻倍 → 整个模型大小约翻倍。\n而加法的参数增量是零。\n在数学上，加法和拼接的信息表达能力是等价的（因为线性层可以从叠加信号中分离分量），但加法远比拼接高效。\n几何直觉：位置编码 = 空间平移 最后，用一个几何画面来理解：\n在 768 维嵌入空间中，每个词有一个\u0026quot;语义坐标\u0026rdquo;（token embedding 的位置）。加上 position embedding，就是把这个点平移到空间中的另一个位置。\n\u0026#34;猫\u0026#34; 在位置 0: e_cat + p_0 → 空间中的点 A \u0026#34;猫\u0026#34; 在位置 5: e_cat + p_5 → 空间中的点 B A 和 B 的差 = p_5 - p_0 —— 这个平移向量只取决于位置差，不取决于具体哪个词。 同一个词在不同位置，被平移到嵌入空间的不同区域。 模型可以通过观察这些平移的模式来理解位置关系。\n▲ \"猫\"的语义向量（灰色虚线箭头）加上不同位置的编码（彩色箭头），被平移到空间中不同的点。平移方向只取决于位置 一句话记住： 加法之所以可行，因为 768 维空间大得超乎想象——语义和位置可以近似正交地共存。Attention 的四项分解让模型能自动分离混合信号。加法不是信息的破坏，而是信息的叠加。\n四、两种路线：固定公式 vs 学习出来 正弦编码 vs 学习式编码 Vaswani 在 2017 年的原论文中同时测试了两种方案：\n特性 正弦式（Sinusoidal） 学习式（Learned） 参数量 0（固定公式） block_size × d_model 训练 无需训练 需要从数据中学习 性能 几乎相同 几乎相同 长度外推 理论上支持任意长度 只支持训练时的最大长度 实现 需要写公式 就是一个 nn.Embedding 原论文的结论：\n\u0026ldquo;We also experimented with using learned positional embeddings instead, and found that the two versions produced nearly identical results.\u0026rdquo;\n\u0026ldquo;We chose the sinusoidal version because it may allow the model to extrapolate to sequence lengths longer than the ones encountered during training.\u0026rdquo;\n两种方案效果几乎一样。 Vaswani 选了正弦编码，因为它可能支持长度外推。\nGPT-2 选了另一条路 但 GPT-2（Radford et al., 2019）选择了学习式位置编码。\n在 nanoGPT 的代码中，位置编码就是一张查找表——和 Token Embedding 结构完全相同：\nwte = nn.Embedding(vocab_size, n_embd) # 词表 × 768 → 语义查表 wpe = nn.Embedding(block_size, n_embd) # 最大长度 × 768 → 位置查表 两张表，结构相同，含义不同。 一张查\u0026quot;词是什么\u0026rdquo;，一张查\u0026quot;词在哪\u0026quot;。\n在 microgpt 中也一样：\nstate_dict = { \u0026#39;wte\u0026#39;: matrix(vocab_size, n_embd), # 27 × 16 \u0026#39;wpe\u0026#39;: matrix(block_size, n_embd), # 16 × 16 ... } microgpt 的 Position Embedding 只有 16 × 16 = 256 个参数。训练前是随机的，训练后自动学到了\u0026quot;位置 0 和位置 1 应该不同\u0026quot;这类结构。\n为什么 GPT-2 不用正弦编码？\n学习式更灵活，可以适配数据中的特殊位置模式 GPT-2 的上下文长度固定为 1024，不需要外推 实现更简单，就是一行 nn.Embedding 学习式的局限 但学习式有一个硬伤：位置 1025 该怎么办？\n训练时最长见过 1024 个 token，位置编码表只有 1024 行。第 1025 个位置？不存在。\n正弦编码没有这个问题——公式可以计算任意位置的编码。\n但在实践中，GPT-2 时代的上下文长度足够用了（1024 tokens ≈ 750 个英文单词）。\nnanoGPT 中有一个有趣的设计：计算模型参数量时，位置嵌入的参数不算在内：\ndef get_num_params(self, non_embedding=True): n_params = sum(p.numel() for p in self.parameters()) if non_embedding: n_params -= self.transformer.wpe.weight.numel() return n_params 为什么？因为位置嵌入不参与最终输出的计算（没有 weight tying），它只是\u0026quot;标注\u0026quot;每个位置的辅助信息。\n一句话记住： 正弦编码是数学公式——零参数、可外推。学习式编码是查找表——有参数、更灵活。两者效果几乎相同。GPT-2 选了查表，因为它够简单、够用。\n五、从绝对到相对：位置编码的进化 绝对位置的根本问题 无论正弦编码还是学习式编码，都属于绝对位置编码——给每个位置一个固定的标签：\n位置 0 → 向量 p₀ 位置 1 → 向量 p₁ 位置 47 → 向量 p₄₇ 但在自然语言中，相对位置比绝对位置重要得多。\n\u0026ldquo;小\u0026quot;修饰\u0026quot;猫\u0026rdquo;，是因为\u0026quot;小\u0026quot;在\u0026quot;猫\u0026quot;前面一个词——不管它们是出现在句子的第 3、4 位还是第 47、48 位。\n\u0026#34;那只小猫很可爱\u0026#34; ← \u0026#34;小\u0026#34;在第3位修饰第4位的\u0026#34;猫\u0026#34; \u0026#34;我看见了一只小猫\u0026#34; ← \u0026#34;小\u0026#34;在第6位修饰第7位的\u0026#34;猫\u0026#34; 重要的不是绝对位置 3 或 6，而是相对偏移 -1 绝对位置编码的另一个问题：加在输入层之后，经过多层 Transformer 的处理，位置信息可能被逐渐稀释。\nShaw et al. 2018：相对位置的先驱 Shaw 等人在 2018 年提出了一个关键改变：不在输入层加位置编码，而是在 Attention 计算中直接注入相对位置信息。\n传统 Attention: score(i,j) = (x_i W_Q)(x_j W_K)^T Shaw 的方法: score(i,j) = (x_i W_Q)(x_j W_K + a_{i-j}^K)^T ^^^^^^^^^ 额外的相对位置嵌入 a_{i-j}^K 只取决于两个位置的差 (i-j)，不取决于绝对位置。\n结果：在英德翻译上提升了 1.3 BLEU——证明了相对位置确实比绝对位置更好。\nShaw, P., Uszkoreit, J. \u0026amp; Vaswani, A. (2018). Self-Attention with Relative Position Representations. NAACL.\nRoPE：旋转位置编码——当今的主流 2021 年，苏剑林提出了 RoPE（Rotary Position Embedding）——一种用旋转来编码位置的方案。它被 LLaMA、LLaMA 2/3、Qwen、Mistral、DeepSeek 等几乎所有现代开源 LLM 采用。\nRoPE 的核心思想：还记得正弦编码中\u0026quot;每对 (sin, cos) 构成一个旋转\u0026quot;吗？RoPE 把这个思想推到极致——直接旋转 Query 和 Key 向量，而不是加在输入层上。\n传统加法： x = tok_emb + pos_emb → 然后算 Q, K RoPE： 先算 Q, K → 然后根据位置旋转 Q 和 K 数学原理 把 Q 和 K 向量的每两个相邻维度看作一个复数：\nq = (q₁ + iq₂, q₃ + iq₄, ..., q_{d-1} + iq_d) ∈ ℂ^{d/2} 对位置 m 处的向量，乘以一个旋转因子：\nf(q, m) = q · e^{imθ} 这里 θ 就是频率参数——和正弦编码用的同一族频率！\n为什么旋转能编码相对位置？ 最优雅的证明：\n⟨f(q, m), f(k, n)⟩ = ⟨q·e^{imθ}, k·e^{inθ}⟩ = q·k · e^{i(m-n)θ} 指数中只有 (m-n)！\n两个词的 Attention score 只取决于：\n它们的内容（q·k） 它们的相对位置（m-n） 绝对位置自动消失了。\n\u0026ldquo;If we shift both the query and key by the same amount, changing absolute position but not relative position, this will lead both representations to be additionally rotated in the same manner — thus the angle between them will remain unchanged.\u0026rdquo;\n— EleutherAI, Rotary Embeddings: A Relative Affair\n实际效果 EleutherAI 在 150M 参数模型上的对比实验：\n方法 验证 Loss 学习式绝对位置编码 2.809 T5 相对位置编码 2.801 RoPE（旋转位置编码） 2.759 ← 最优 Su, J. et al. (2021). RoFormer: Enhanced Transformer with Rotary Position Embedding. arXiv:2104.09864.\nALiBi：最激进的简化 2022 年，Press 等人提出了一个更极端的方案：完全不用位置嵌入！\nALiBi（Attention with Linear Biases）直接在 Attention score 上减去一个与距离成正比的惩罚：\nscore(i,j) = q_i · k_j - m · |i - j| ^^^^^^^^^^^^^^^^ 距离越远，分数越低 没有额外参数，没有额外计算。 只是一个简单的线性惩罚。\n优势：在 1024 tokens 上训练的模型，可以直接外推到 2048 tokens——这是绝对位置编码做不到的。\nPress, O. et al. (2022). Train Short, Test Long: Attention with Linear Biases Enables Input Length Extrapolation. ICLR.\n进化时间线 2017 正弦编码 (Vaswani) ← 加在输入层，固定公式 2019 学习式编码 (GPT-2) ← 加在输入层，可学习查表 2018 相对位置编码 (Shaw) ← 注入 Attention 层 2021 RoPE 旋转编码 (Su) ← 旋转 Q/K 向量 2022 ALiBi 线性偏置 (Press) ← 直接惩罚远距离 2023+ RoPE 成为主流 ← LLaMA/Qwen/Mistral/DeepSeek 大趋势：从\u0026quot;加在输入层\u0026quot;→\u0026ldquo;注入 Attention 层\u0026rdquo;→\u0026ldquo;编码在 Q/K 的旋转中\u0026rdquo;。\n位置信息从一开始就被\u0026quot;糊\u0026quot;在输入上（可能被后续层稀释），进化到精确地编码在 Attention 计算的核心位置——Q 和 K 的交互之中。\n一句话记住： 绝对位置告诉模型\u0026quot;你在第 47 位\u0026quot;，相对位置告诉模型\u0026quot;你在那个词前面 3 步\u0026quot;。RoPE 用旋转优雅地实现了这一点——从正弦编码的旋转矩阵性质出发，把旋转直接作用在 Q 和 K 上。今天所有主流 LLM 都用 RoPE。\n六、站远一点看：数据在 Transformer 中如何变形 从输入到输出的完整旅程 现在我们可以把 Embedding 和位置编码放在更大的图景中，看看一个 token 从输入到输出经历了什么：\n\u0026#34;猫\u0026#34; (token ID = 3721) 第 0 步：Token Embedding 查表 → e = wte[3721] # 768 维语义向量：\u0026#34;猫\u0026#34;是什么 第 1 步：Position Embedding → p = wpe[2] # 768 维位置向量：第 2 个位置 → x = e + p # 叠加：我是第 2 位的\u0026#34;猫\u0026#34; 第 2 步：进入 Transformer 层（重复 N 次） → LayerNorm(x) # 归一化 → Q, K, V = x·W_Q, x·W_K, x·W_V # 线性投影 → Attention(Q, K, V) # 与其他词交互 → x = x + Attention输出 # 残差连接 → LayerNorm(x) # 归一化 → FFN(x) # 前馈网络：注入知识 → x = x + FFN输出 # 残差连接 第 3 步：输出投影 → logits = x · wte^T # 用 Embedding 矩阵的转置投影回词表 → probs = softmax(logits) # 选出下一个词 每一步都是一次矩阵运算——向量被一个矩阵\u0026quot;变形\u0026quot;，投影到新的子空间。\n从这个视角看：\nToken Embedding 是第一次变形：从离散 ID 变成连续向量 Position Embedding 的加法 是第二次变形：在语义空间中施加位置偏移 W_Q, W_K, W_V 是第三次变形：把向量分别投影到\u0026quot;提问\u0026quot;、\u0026ldquo;回答\u0026rdquo;、\u0026ldquo;内容\u0026quot;三个子空间 Attention 是一次加权平均：根据 Q·K 的相关度，混合不同位置的 V FFN（MLP） 是最复杂的变形：通过两层非线性变换注入世界知识 每个矩阵都是一次线性变换——旋转、缩放、投影。 这和你在 《AI 的数学语言（四）：矩阵乘法》 中学到的完全一致：矩阵乘法就是空间变换。\n而位置编码的加法，在这个框架中看，就是最简单的一种空间变换——平移。\n▲ 一个 token 从输入到输出的完整旅程。每一步都是向量在不同子空间中的变换 每一步的矩阵运算——投影、旋转、缩放——都在改变向量在空间中的\u0026quot;位置\u0026quot;和\u0026quot;朝向\u0026rdquo;。下图用二维示意了 W_Q 和 W_K 如何将同一组向量投影到不同的子空间：\n▲ 同一组向量（左），经过 W_Q（中）和 W_K（右）投影后，在空间中的相对关系发生了变化。不同的矩阵 = 不同的\"观察视角\" 一句话记住： Transformer 中的每一步都是矩阵运算——向量在不同的子空间中被投影、旋转、缩放。位置编码的加法只是最简单的一种变换：平移。它把\u0026quot;这是什么词\u0026quot;变成\u0026quot;这是第几个位置的什么词\u0026quot;。\n本篇小结\n一、置换不变性 — Transformer 的 Attention 只看向量内容，不看排列顺序。没有位置编码，\u0026ldquo;猫吃鱼\u0026rdquo;=\u0026ldquo;鱼吃猫\u0026rdquo;。位置编码和因果掩码一起，让 Transformer 从\u0026quot;集合处理器\u0026quot;变成\u0026quot;序列生成器\u0026quot;。\n二、正弦编码 — 用不同频率的 sin/cos 波编码位置。低维高频区分近距离，高维低频区分远距离。sin+cos 配对形成旋转矩阵——相对位置变成旋转角度。\n三、为什么可以\u0026quot;加\u0026quot; — 768 维空间中语义向量和位置向量近似正交，加法不会互相破坏。Attention 的四项分解让模型能自动分离内容和位置信号。加法的参数效率远高于拼接。\n四、固定 vs 学习 — 正弦编码：零参数、可外推。学习式编码：有参数、更灵活。GPT-2 用学习式，效果几乎一样。\n五、从绝对到相对 — 绝对位置不如相对位置重要。RoPE 用旋转编码相对位置，被所有现代 LLM 采用。ALiBi 更激进——直接用线性距离惩罚。\n六、大图景 — 位置编码的加法是 Transformer 数据流中最简单的变换：平移。后续的每一步（投影、Attention、FFN）都是更复杂的矩阵变换。\n写在最后 Transformer 的发明者面对一个两难：\n要并行，就丢位置。要位置，就丢并行。\n他们的解决方案优雅得令人叹服：用波来编码位置，然后加到语义向量上。\n这一步之所以成立，是因为三个层面的深刻原因：\n数学层面：768 维空间有足够的\u0026quot;容量\u0026quot;让两种信息近似正交地共存 机制层面：Attention 的 W_Q、W_K 投影可以从混合信号中自动分离出内容和位置 信号层面：sin/cos 配对形成旋转矩阵，使相对位置关系成为与绝对位置无关的几何量 后来的故事——从绝对位置到相对位置，从加法到旋转——是沿着\u0026quot;让位置信息更精确、更高效\u0026quot;这条线不断演化的。\n但 2017 年那个最初的直觉——用不同频率的波来编码位置，然后直接叠加到语义上——至今仍然是理解位置编码的最佳起点。\n下次当你看到 x = tok_emb + pos_emb 这行代码时，你会知道：这不是一个粗暴的 hack。这是一次在 768 维空间中的精密操作——两种完全不同类型的信息，在人类无法直观想象的高维世界里，优雅地叠加共存。\n参考文献\nVaswani, A. et al. (2017). Attention Is All You Need. NeurIPS. arXiv:1706.03762. — 正弦位置编码的原始论文。 Su, J. et al. (2021). RoFormer: Enhanced Transformer with Rotary Position Embedding. arXiv:2104.09864. — RoPE 旋转位置编码。 Press, O. et al. (2022). Train Short, Test Long: Attention with Linear Biases Enables Input Length Extrapolation. ICLR. — ALiBi。 Shaw, P. et al. (2018). Self-Attention with Relative Position Representations. NAACL. — 相对位置编码的先驱。 Ke, G. et al. (2020). Rethinking Positional Encoding in Language Pre-training. ICLR 2021. — TUPE，解耦内容与位置。 Elhage, N. et al. (2022). Toy Models of Superposition. Anthropic. — 高维空间中的信息叠加。 Kazemnejad, A. Transformer Architecture: The Positional Encoding. — 最好的位置编码教程之一。 EleutherAI. Rotary Embeddings: A Relative Affair. — RoPE 的详细解释。 Peter Bloem. Transformers from Scratch. — Transformer 的置换不变性解释。 Karpathy, A. microgpt. GitHub Gist. — 200 行纯 Python GPT 实现。 推荐阅读\nKazemnejad 的 位置编码可视化教程 EleutherAI 的 RoPE 解析 💡 相关文章\n当数字学会了远近亲疏——从查表到 Embedding 的一步跨越 — 本文的前篇 计算机只懂 0 和 1——从莫尔斯电码到 GPT 的编码简史 — 编码的历史 看见数学（八）：圆与波——三角函数的真面目 — sin/cos 的本质 AI 的数学语言（四）：矩阵乘法——空间变换的语言 — 矩阵乘法就是空间变换 看见数学（十四）：高维空间——直觉失效的地方 — 768 维的\u0026quot;容量\u0026quot; 博客：https://Jason-Azure.github.io/ai-blog/\n微信公众号：AI-lab学习笔记\n","permalink":"https://jason-azure.github.io/ai-blog/posts/positional-encoding/","summary":"Transformer 天生是个色盲——它能看清每个词的颜色（语义），却分不清词的位置。\u0026lsquo;猫吃鱼\u0026rsquo;和\u0026rsquo;鱼吃猫\u0026rsquo;在它眼中完全等价。为了让模型学会\u0026rsquo;谁在前谁在后\u0026rsquo;，研究者发明了一种优雅到不真实的方案：把位置信息编码成波，然后直接加到语义向量上。这一步看似暴力，实则深刻。","title":"第一个词和第五个词有什么不同？——位置编码的数学与直觉"},{"content":"引子：一个让人困惑的等号 有一天，有人问我一个 Python 问题：\nprint(~5) # 输出：-6 取反一个 5，怎么就变成 -6 了？\n这个问题看似很小，但当我试着解释它的时候，发现自己正在打开一扇通往计算机最底层的门——\n从这个 ~5 = -6 出发，我顺着补码往下走，走到了逻辑门；又顺着逻辑门往上爬，一路爬到了 ChatGPT。\n我惊讶地发现：从一个取反操作到 AI 写诗，中间只隔了 7 层抽象。\n每一层都建立在上一层的基础上，每一层都只做一件简单的事。简单规则的无限堆叠，最终涌现出了智能。\n这篇文章，就是这趟旅程的记录。\n7 层全景：从门电路到 GPT 在深入每一层之前，先看一眼全貌：\n第 7 层 LLM / GPT ← AI 写诗 第 6 层 Attention 注意力 第 5 层 非线性激活 (ReLU) 第 4 层 矩阵乘法 第 3 层 乘加单元 (MAC) 第 2 层 加法器 (补码) 第 1 层 逻辑门 AND/OR/NOT ← ~5 = -6 接下来，我们从最底层开始，逐层攀登。\n第一层：逻辑门——计算机只会做三件事 计算机的一切，建立在三个最简单的操作上：\nAND（与）：两个都是 1，才输出 1 1 AND 1 = 1 1 AND 0 = 0 0 AND 1 = 0 0 AND 0 = 0 OR（或）：有一个是 1，就输出 1 1 OR 1 = 1 1 OR 0 = 1 0 OR 1 = 1 0 OR 0 = 0 NOT（非）：翻转 NOT 1 = 0 NOT 0 = 1 就这三个。没有第四个。\n但这三个门可以组合出任何运算。这是 1937 年香农（Claude Shannon）在他的硕士论文中证明的——被称为\u0026quot;有史以来最重要的硕士论文\u0026quot;。\nShannon, C.E. (1937). A Symbolic Analysis of Relay and Switching Circuits. MIT Master\u0026rsquo;s Thesis.\n回到我们的问题：~5 = -6 中的 ~ 就是 NOT 门——把每一位都翻转。\n5 的二进制： 0 0 0 0 0 1 0 1 NOT 每一位： 1 1 1 1 1 0 1 0 ← 这是什么数？ 要回答\u0026quot;这是什么数\u0026quot;，我们需要理解补码。而补码的故事，发生在第二层。\n一句话记住： 计算机的全部能力，建立在 AND、OR、NOT 三个门上。就像乐高只有几种基础砖块，但可以拼出一切。\n第二层：加法器——补码让减法消失 加法器：用门电路搭出来的计算器 用 AND 和 XOR（异或，可由 AND/OR/NOT 组合而成）两个门，就能造出一个半加器：\n输入 A=1, B=1 XOR 门 → 求和 = 0 （1⊕1=0，满二进一） AND 门 → 进位 = 1 （1∧1=1，需要进位） 结果：1 + 1 = 10（二进制）= 2（十进制） ✓ 把多个这样的单元串联起来，就是全加器——可以算任意位数的加法。\n补码的天才：把减法变成加法 计算机只有加法器，没有减法器。那怎么算 5 - 3？\n答案：不算减法。把 -3 用一种特殊的二进制表示出来，然后做加法。\n这种\u0026quot;特殊表示\u0026quot;就是补码（Two\u0026rsquo;s Complement）。\n以 -6 为例（8 位）：\n第 1 步：写出 +6 0 0 0 0 0 1 1 0 第 2 步：所有位取反 1 1 1 1 1 0 0 1 第 3 步：加 1 1 1 1 1 1 0 1 0 ← -6 的补码 验证：-6 + 6 应该等于 0\n1 1 1 1 1 0 1 0 (-6) + 0 0 0 0 0 1 1 0 (+6) ───────────────── 1 0 0 0 0 0 0 0 0 9 位，溢出！ └─丢掉──┘ 0 0 0 0 0 0 0 0 = 0 ✓ 完美！ 补码让加法器直接算出正确结果，不需要额外判断正负号。 这就是为什么 ~5（取反）的结果是 -6——取反后的二进制 11111010，在补码规则下就代表 -6。\n补码的灵感来自时钟：现在 3 点，想回到 0 点，往回拨 3 格（-3），等价于往前拨 9 格（因为 9+3=12，溢出回到 0）。计算机用同样的\u0026quot;溢出归零\u0026quot;原理。\n一句话记住： 补码是计算机的天才设计——让硬件只需要一个加法器，就能搞定加减法。减法不是被\u0026quot;做\u0026quot;出来的，而是被\u0026quot;消除\u0026quot;了。\n第三层：乘加单元——计算的原子动作 有了加法器，乘法也解决了：乘法就是反复加法。\n5 × 3 = 5 + 5 + 5 = 15 但现代芯片不会真的循环加，它用移位和加法在一个时钟周期内完成。更重要的是，芯片里有一个核心单元叫 MAC（Multiply-Accumulate，乘加单元）：\nMAC 操作：a × b + c 一次完成\u0026#34;乘一下再加一下\u0026#34; 这就是 AI 计算的原子动作 为什么 MAC 如此重要？因为——\n神经网络的每一层，做的事情就是： 输出 = 输入₁×权重₁ + 输入₂×权重₂ + ... + 输入ₙ×权重ₙ └─── 一次 MAC ───┘ └─── 一次 MAC ───┘ └── 一次 MAC ──┘ 一个神经元 = 一堆 MAC。一层网络 = 一堆神经元。一个 LLM = 一堆层。\n从门电路到 MAC，只经过了三层抽象，但已经触及了 AI 的运算核心。\n一句话记住： MAC（乘加）是 AI 芯片的原子操作。一块 GPU 里有几千个 MAC 单元同时工作，就像几千个工人同时搬砖。\n第四层：矩阵乘法——并行的力量 一个 MAC 算一个\u0026quot;乘加\u0026quot;。但 LLM 需要一次算几百万个。怎么办？\n把数据排成矩阵，一次搞定。\n单个神经元： y = x₁×w₁ + x₂×w₂ + x₃×w₃ ← 3 次 MAC 4 个神经元并行： ┌ y₁ ┐ ┌ x₁ x₂ x₃ ┐ ┌ w₁₁ w₁₂ w₁₃ w₁₄ ┐ │ y₂ │ = │ │ × │ w₂₁ w₂₂ w₂₃ w₂₄ │ │ y₃ │ │ │ │ w₃₁ w₃₂ w₃₃ w₃₄ │ └ y₄ ┘ └ ┘ └ ┘ 这就是矩阵乘法 Y = X × W ← 12 次 MAC，可以全部并行！ GPU 存在的意义，就是把这些 MAC 并行化。\n硬件 MAC 并行度 类比 CPU 几个~几十个 一个数学天才做题 GPU (CUDA 核心) 几千个 几千个工人搬砖 GPU (Tensor Core) 每周期 4×4=16 个 流水线批量作业 NVIDIA 在 2017 年推出的 Tensor Core，专门为矩阵乘法设计：每个 Tensor Core 在一个时钟周期内完成一个 4×4 矩阵的乘加操作。这就是\u0026quot;AI 芯片\u0026quot;的本质——不是芯片更聪明了，而是并行 MAC 更多了。\nGPT 的计算量有多大？ 根据 EleutherAI 的分析，Transformer 模型每处理一个 token 需要大约 6P 次浮点运算（P = 参数量）：\nBiderman et al. Transformer Math 101. EleutherAI Blog, 2023.\n对 GPT-3（1750 亿参数）来说：\n每个 token 的计算量 = 6 × 175,000,000,000 ≈ 1 万亿次浮点运算 你问它\u0026#34;今天天气怎么样？\u0026#34;（约 10 个 token） 它回答 100 个 token → 总共 110 × 1 万亿 = 110 万亿次运算 全部由矩阵乘法完成 全部归结为 MAC 全部建立在加法器上 全部由逻辑门实现 一句话记住： 矩阵乘法 = 大规模并行 MAC。GPU 的本质不是\u0026quot;更聪明\u0026quot;，而是\u0026quot;人多力量大\u0026quot;。\n第五层：非线性激活——打破直线的魔法 到这里，我们遇到了一个关键问题：\n纯线性运算（加法、乘法、矩阵乘法），无论堆多少层，数学上等价于一层。\nY = W₃ × (W₂ × (W₁ × X)) = (W₃ × W₂ × W₁) × X = W_合并 × X ← 三层线性 = 一层线性！ 这意味着，光靠矩阵乘法，神经网络永远只能画直线，永远无法学会复杂的模式。\n解决方案：在每层之间插入一个非线性函数。\nReLU：最简单的非线性 ReLU(x) = max(0, x) 如果 x ≥ 0 → 输出 x（通过） 如果 x \u0026lt; 0 → 输出 0（拦截） ReLU 在硬件上只需要一次比较操作——本质上就是一个门电路！比较 x 和 0 的大小，大于 0 就放行，否则输出 0。\n# 纯 Python，零依赖 def relu(x): return max(0, x) # 试试看 inputs = [3, -2, 0.5, -7, 1, -0.1] for x in inputs: result = relu(x) status = \u0026#34;✓ 通过\u0026#34; if result \u0026gt; 0 else \u0026#34;✗ 归零\u0026#34; print(f\u0026#34; {x:\u0026gt;5} → {result:\u0026gt;5} {status}\u0026#34;) 输出：\n3 → 3 ✓ 通过 -2 → 0 ✗ 归零 0.5 → 0.5 ✓ 通过 -7 → 0 ✗ 归零 1 → 1 ✓ 通过 -0.1 → 0 ✗ 归零 Glorot, Bordes \u0026amp; Bengio (2011). Deep Sparse Rectifier Neural Networks. AISTATS. 这篇论文首次系统证明了 ReLU 在深度网络中的优越性——计算简单、收敛快、还能产生稀疏表示。\n为什么非线性这么重要？ 纯线性网络只能画一条直线——因为直线的组合还是直线。但加了 ReLU 之后，直线被\u0026quot;掰弯\u0026quot;了——每个 ReLU 贡献一个折点。多层堆叠后，足够多的折线段就能拟合任意复杂的曲线。\n数学定理保证： 一个足够宽的单隐层网络 + 非线性激活函数，可以逼近任意连续函数。这就是万能逼近定理（Universal Approximation Theorem）。\nHornik, K. (1991). Approximation capabilities of multilayer feedforward networks. Neural Networks, 4(2), 251-257.\n📖 延伸阅读（本站文章）：\n为什么矩阵和激活函数就能涌现智能？——万能近似定理 — 从符号主义到万能近似定理的完整故事 AI 的数学语言（五）：激活函数——神经网络的开关 — ReLU、Sigmoid、Tanh 等激活函数的深度对比 函数的竞赛：人类试过的所有方法，和神经网络胜出的原因 — 泰勒级数、傅里叶级数、多项式、样条……400 年的淘汰赛 为什么 AI 离不开线性？ — 从认知科学到 Transformer，一根直线如何撬动整个 AI 非线性函数在硬件上是怎么算的？ 你可能会问：计算机只会加法和乘法，那 ReLU 之外的非线性函数（比如 Softmax 里的指数函数 e^x）怎么算？\n答案：用加法和乘法去逼近！\n泰勒展开： e^x ≈ 1 + x + x²/2 + x³/6 + x⁴/24 + ... │ │ │ │ │ │ │ │ │ └─ 乘法+加法 │ │ │ └───────── 乘法+加法 │ │ └──────────────── 乘法+加法 │ └───────────────────── 加法 └──────────────────────── 常数 全是加法和乘法！项数越多越精确。 硬件上有三种主流方法来计算非线性函数：\n方法 原理 用在哪 泰勒展开 用多项式（加法+乘法）逼近 软件数学库 CORDIC 算法 只用移位和加法，迭代逼近 早期硬件、嵌入式芯片 查找表（LUT） 预先算好，直接查表 GPU 的特殊函数单元（SFU） CORDIC 算法由 Jack Volder 于 1959 年发明，只用移位和加法就能计算三角函数、指数、对数——完美体现了\u0026quot;一切归结为加法\u0026quot;的哲学。\nVolder, J.E. (1959). The CORDIC Trigonometric Computing Technique. IRE Trans. Electronic Computers.\n所以，即使是非线性函数，在最底层仍然是加法和乘法的组合。 一切回到了第一层的逻辑门。\n一句话记住： 非线性是神经网络的灵魂——没有它，多少层都等于一层。而 ReLU 的硬件实现只需要一次比较，优雅到令人窒息。\n第六层：Attention——学会\u0026quot;看重点\u0026quot; 有了矩阵乘法（第四层）和非线性（第五层），我们可以搭建各种神经网络了。但 2017 年，Google 的一篇论文提出了一个改变世界的架构：\nVaswani et al. (2017). Attention Is All You Need. NeurIPS.\n这篇论文的核心思想是：让模型学会\u0026quot;该看哪里\u0026quot;。\nAttention 的直觉 想象你在读这句话：\n\u0026ldquo;小猫跳上了桌子，因为它很好奇。\u0026rdquo;\n当你读到\u0026quot;它\u0026quot;的时候，你的大脑会回头看——\u0026ldquo;它\u0026quot;指的是谁？是小猫还是桌子？\n你的大脑给\u0026quot;小猫\u0026quot;分配了很高的注意力权重，给\u0026quot;桌子\u0026quot;分配了较低的权重。这就是 Attention 做的事。\nAttention 的计算：全是矩阵乘法 Attention(Q, K, V) = Softmax(Q × K^T / √d) × V 拆解一下： 第 1 步：Q × K^T ← 矩阵乘法（第四层） 计算每个词和其他词的\u0026#34;相关度\u0026#34; 第 2 步：/ √d ← 除法（可以用乘法实现） 缩放，防止数值太大 第 3 步：Softmax ← 非线性函数（第五层） 把相关度变成概率（加起来等于 1） 内部用到 e^x ← 泰勒展开/查找表 第 4 步：× V ← 矩阵乘法（第四层） 用概率加权求和，得到输出 Attention 不是什么神秘的新操作。它就是两次矩阵乘法 + 一次非线性。 全部建立在我们已经搭好的前五层上。\nAttention 的运算链路： 逻辑门 → 加法器 → MAC → 矩阵乘法 → Q×K^T ↓ 逻辑门 → 加法器 → MAC → 泰勒展开 → Softmax(...) ↓ 逻辑门 → 加法器 → MAC → 矩阵乘法 → × V ↓ Attention 输出 一句话记住： Attention = 两次矩阵乘法 + 一次 Softmax。它教会了模型\u0026quot;该看哪里\u0026rdquo;，这是 LLM 理解语言的关键。\n第七层：LLM——涌现的奇迹 一个 Transformer = 多层 Attention + 前馈网络（FFN）交替堆叠。\n一个 LLM（如 GPT）= 一个超大的 Transformer + 海量数据训练。\n一个 Transformer 层： ┌─────────────────────────────────┐ │ Attention（第六层） │ │ ↓ │ │ Add \u0026amp; LayerNorm │ │ ↓ │ │ FFN = 线性 → ReLU → 线性 │ │ （矩阵乘法 → 非线性 → 矩阵乘法）│ │ ↓ │ │ Add \u0026amp; LayerNorm │ └─────────────────────────────────┘ ↓ 重复 N 次 GPT-3: N = 96 层 GPT-4: 估计更多（未公开） 每一层做的事，全部可以追溯到逻辑门 LLM 生成一个字的过程： 第 7 层 GPT 输出\u0026#34;的\u0026#34; ← 从概率分布中采样 第 6 层 96 层 Attention ← 理解上下文 第 5 层 ReLU / GELU ← 引入非线性 第 4 层 数百万次矩阵乘法 ← Y = X × W 第 3 层 数十亿次 MAC ← a×b+c 第 2 层 数十亿次加法 ← 补码加法器 第 1 层 数千亿次逻辑门操作 ← AND / OR / NOT 涌现（Emergence） 最令人震惊的是：每一层都只做简单的事，但堆叠到足够多层时，复杂的行为就\u0026quot;涌现\u0026quot;了。\n逻辑门不懂加法，但堆起来能做加法。 加法器不懂乘法，但重复执行能做乘法。 MAC 不懂语言，但排成矩阵能做变换。 矩阵乘法不懂\u0026quot;注意力\u0026quot;，但配合 Softmax 能做 Attention。 Attention 不懂\u0026quot;写诗\u0026quot;，但堆叠 96 层并训练后，GPT 能写诗。\n没有任何一个零件\u0026quot;理解\u0026quot;最终的行为。但整体表现出了零件不具备的能力。\n这正是诺贝尔物理学奖得主 Philip Anderson 在 1972 年的经典论文中所说的：\n\u0026ldquo;More is different.\u0026rdquo;（多即不同。）\n简单的基本规律在大规模堆叠后，会产生全新的、不可预测的性质。这不是数量的变化，而是质的飞跃。\nAnderson, P.W. (1972). More Is Different. Science, 177(4047), 393-396.\n从 ~5 = -6 到 AI 写诗，中间只有 7 层抽象。\n每一层都只做一件简单的事：\n第 1 层：翻转 0 和 1 第 2 层：两个数相加 第 3 层：乘一下再加一下 第 4 层：把很多乘加排成矩阵 第 5 层：小于 0 的归零 第 6 层：算一下谁跟谁更相关 第 7 层：重复以上步骤几十亿次 这就是计算机科学最美的地方：简单规则 + 无限堆叠 = 涌现。\n回到起点：~5 = -6 的全部真相 现在你理解了 7 层抽象，让我们回到最初的问题：\nprint(~5) # -6 5 的二进制： 0 0 0 0 0 1 0 1 ↓ NOT 门（第一层）翻转每一位 ~5 的二进制： 1 1 1 1 1 0 1 0 ↓ 补码规则（第二层）解读这个数 = -6 公式：~n = -(n+1) 这个小小的取反操作，用到了第一层（逻辑门）和第二层（补码）。\n而这两层，正是撑起整个 AI 大厦的地基。\n本篇小结 一、计算机只会三件事 AND、OR、NOT 三个逻辑门是一切计算的基石。Shannon 1937 年证明了这一点。\n二、补码消灭了减法 用特殊的二进制编码表示负数，让加法器直接算出减法结果。~5 = -6 的秘密就在这里。\n三、乘加（MAC）是 AI 的原子操作 一个神经元 = 一堆 MAC。GPU 的本质 = 几千个 MAC 单元并行。\n四、矩阵乘法让计算并行化 把数据排成矩阵，一次搞定大规模乘加。这是 LLM 的核心运算。\n五、非线性打破了线性的局限 没有 ReLU，多少层网络都等于一层。非线性让网络能学会复杂模式。\n六、Attention 教会模型\u0026quot;看重点\u0026quot; 两次矩阵乘法 + 一次 Softmax = Attention。它是 Transformer 的灵魂。\n七、简单规则的堆叠产生涌现 每一层都只做简单的事，但 7 层堆叠后涌现出了\u0026quot;智能\u0026quot;。More is different.\n动手验证：用 Python 走一遍 # 纯 Python，零依赖——亲手验证 7 层抽象 # === 第 1 层：逻辑门 === def AND(a, b): return a \u0026amp; b def OR(a, b): return a | b def NOT(a): return 1 - a # 单 bit 取反 print(\u0026#34;=== 第 1 层：逻辑门 ===\u0026#34;) print(f\u0026#34;AND(1,1) = {AND(1,1)}\u0026#34;) print(f\u0026#34;OR(1,0) = {OR(1,0)}\u0026#34;) print(f\u0026#34;NOT(1) = {NOT(1)}\u0026#34;) # === 第 2 层：补码 === print(\u0026#34;\\n=== 第 2 层：补码 ===\u0026#34;) n = 5 print(f\u0026#34;~{n} = {~n}\u0026#34;) print(f\u0026#34;验证: {n} 的二进制 = {n:08b}\u0026#34;) print(f\u0026#34; 取反后 = {~n \u0026amp; 0xFF:08b} (补码) = {~n}\u0026#34;) # === 第 3 层：MAC === def mac(a, b, c): \u0026#34;\u0026#34;\u0026#34;乘加：a × b + c\u0026#34;\u0026#34;\u0026#34; return a * b + c print(\u0026#34;\\n=== 第 3 层：MAC (乘加) ===\u0026#34;) print(f\u0026#34;MAC(3, 4, 5) = 3×4+5 = {mac(3, 4, 5)}\u0026#34;) # === 第 4 层：矩阵乘法（手写，零依赖）=== def matmul(A, B): \u0026#34;\u0026#34;\u0026#34;矩阵乘法，纯 Python\u0026#34;\u0026#34;\u0026#34; rows_A, cols_A = len(A), len(A[0]) cols_B = len(B[0]) result = [[0] * cols_B for _ in range(rows_A)] for i in range(rows_A): for j in range(cols_B): for k in range(cols_A): result[i][j] = mac(A[i][k], B[k][j], result[i][j]) return result print(\u0026#34;\\n=== 第 4 层：矩阵乘法 ===\u0026#34;) A = [[1, 2], [3, 4]] B = [[5, 6], [7, 8]] C = matmul(A, B) print(f\u0026#34;[1,2] × [5,6] = {C[0]}\u0026#34;) print(f\u0026#34;[3,4] [7,8] {C[1]}\u0026#34;) # === 第 5 层：ReLU === def relu(x): return max(0, x) print(\u0026#34;\\n=== 第 5 层：ReLU ===\u0026#34;) for x in [3, -2, 0.5, -7]: print(f\u0026#34; ReLU({x:\u0026gt;5}) = {relu(x):\u0026gt;5}\u0026#34;) # === 第 6 层：Attention（简化版）=== import math def softmax(xs): max_x = max(xs) exps = [math.exp(x - max_x) for x in xs] total = sum(exps) return [e / total for e in exps] print(\u0026#34;\\n=== 第 6 层：简化 Attention ===\u0026#34;) scores = [2.0, 1.0, 0.1] weights = softmax(scores) print(f\u0026#34; 相关度分数: {scores}\u0026#34;) print(f\u0026#34; Attention 权重: [{\u0026#39;, \u0026#39;.join(f\u0026#39;{w:.3f}\u0026#39; for w in weights)}]\u0026#34;) print(f\u0026#34; → 第一个词获得最高注意力 ({weights[0]:.1%})\u0026#34;) # === 第 7 层：涌现 === print(\u0026#34;\\n=== 第 7 层：涌现 ===\u0026#34;) print(\u0026#34; 每一层都只做简单的事：\u0026#34;) print(\u0026#34; 逻辑门 → 加法器 → MAC → 矩阵乘法 → ReLU → Attention → GPT\u0026#34;) print(\u0026#34; 但堆叠 96 层 × 1750 亿参数后...它能写诗。\u0026#34;) print(\u0026#34; More is different. ✨\u0026#34;) 参考文献 Shannon, C.E. (1937). A Symbolic Analysis of Relay and Switching Circuits. MIT Master\u0026rsquo;s Thesis. — 证明了布尔逻辑可以实现任何数字电路。 Volder, J.E. (1959). The CORDIC Trigonometric Computing Technique. IRE Trans. Electronic Computers. — 只用移位和加法计算三角函数的算法。 Anderson, P.W. (1972). More Is Different. Science, 177(4047), 393-396. — \u0026ldquo;多即不同\u0026rdquo;，简单规则堆叠产生涌现。 Hornik, K. (1991). Approximation capabilities of multilayer feedforward networks. Neural Networks. — 万能逼近定理。 Glorot, X., Bordes, A., \u0026amp; Bengio, Y. (2011). Deep Sparse Rectifier Neural Networks. AISTATS. — ReLU 在深度网络中的系统验证。 Vaswani, A. et al. (2017). Attention Is All You Need. NeurIPS. — Transformer 架构的提出。 Biderman, S. et al. (2023). Transformer Math 101. EleutherAI Blog. — Transformer 计算量分析（6P FLOPs per token）。 博客：https://Jason-Azure.github.io/ai-blog/\n微信公众号：AI-lab学习笔记\n","permalink":"https://jason-azure.github.io/ai-blog/posts/gates-to-gpt/","summary":"~5 = -6？从这个小困惑出发，我们穿越 7 层抽象，看见逻辑门如何一步步堆叠成 ChatGPT。这是一篇写给所有人的计算机底层原理科普。","title":"从一个取反说起——计算机如何从「只会加法」走到「AI 写诗」"},{"content":"上一篇回顾 伽利略换了一种提问方式——不问\u0026quot;为什么动\u0026quot;，问\u0026quot;怎么动\u0026quot;——开启了整个现代科学。\n他发现了自由落体的规律：所有物体的重力加速度相同，与重量无关。\n他去世那年，1642 年，一个婴儿出生在英国乡下。\n这个婴儿将要做一件人类历史上最疯狂的事：用三条定律，统一天上地下一切运动。\n系列导航\n▹ 第一篇：运动——世界从\"动\"开始 ▸ 第二篇（本文）：力——看不见的手 ▹ 第三篇：能量——不灭的守恒量 ▹ 第四篇：动量——惯性的力量 第一章：一个农场男孩的奇迹年 1665 年，英国剑桥大学因为瘟疫关闭。\n23 岁的牛顿被迫回到老家——林肯郡伍尔索普村的一个农场。\n在大多数人看来，这是一场灾难。一个年轻学者被迫中断学业，回到乡下种地。\n但接下来的 18 个月，成了人类科学史上最不可思议的时期。\n牛顿一个人，在农场里：\n发明了微积分 发现了万有引力定律 用三棱镜分解白光，开创了光学 写下了运动三定律的雏形 一个人，一年半，四个领域。任何一个拿出来，都够得上\u0026quot;划时代\u0026quot;。\n后来人们把这段时期叫做牛顿的**\u0026ldquo;奇迹年\u0026rdquo;**（Annus Mirabilis）。\n为什么是\"被迫回家\"的时候？ 这件事本身值得深思。\n牛顿不是在剑桥的实验室里做出这些发现的。他是在乡下，没有导师，没有同行讨论，没有仪器设备——只有纸、笔和一颗不停想问题的脑子。\n有时候，最大的突破不是发生在条件最好的时候，而是发生在被迫远离日常、独自面对问题的时候。\n当然，这不是说瘟疫是好事。这是说：思考需要空间。 今天的我们被通知、会议、社交媒体塞满了每一分钟——牛顿那 18 个月的\u0026quot;无聊\u0026quot;，反而是奢侈品。\n但我们今天不聊牛顿的所有成就。我们只聊一件事：\n力。\n第二章：最反直觉的定律——牛顿第一定律 牛顿三定律，你可能在课本上见过：\n第一定律：不受力的物体保持静止或匀速直线运动 第二定律：F = ma 第三定律：力的作用是相互的 大多数人觉得第二定律 F=ma 才是主角。\n错了。最深刻、最革命性的，是第一定律。\n让我先问你一个问题：\n你在冰面上推一个冰壶。松手之后，冰壶为什么会慢慢停下来？\n你的直觉可能说：\u0026ldquo;因为没有力推它了，所以它停下来了。\u0026rdquo;\n这正是亚里士多德的观点：运动需要力来维持。没有力，就没有运动。\n听起来太合理了。你推桌子，桌子动；你不推，桌子停。推自行车，自行车走；不推，自行车停。日常经验完美支持这个观点。\n牛顿说：你搞反了。\n冰壶停下来，不是因为\u0026quot;没有力了\u0026quot;，而是因为\u0026quot;有一个力在阻碍它\u0026quot;——摩擦力。\n如果没有摩擦力，没有空气阻力，没有任何力——\n冰壶会永远以同样的速度运动下去。永远。\n亚里士多德的世界观： 运动是\u0026#34;不自然\u0026#34;的状态，需要力来维持 自然状态 = 静止 \u0026#34;为什么东西会动？\u0026#34; → 因为有力在推它 牛顿的世界观： 运动是\u0026#34;天经地义\u0026#34;的状态，不需要任何解释 自然状态 = 匀速直线运动（包括静止） \u0026#34;为什么东西会停？\u0026#34; → 因为有力在阻碍它 问题完全翻转了。 不是\u0026#34;运动需要解释\u0026#34;，而是\u0026#34;变化需要解释\u0026#34;。 为什么这个思维翻转如此重要？ 因为它改变了\u0026quot;解释\u0026quot;的方向。\n在亚里士多德的框架里，你需要为每一个运动找一个\u0026quot;原因\u0026quot;。天上有多少种运动，就需要多少种解释。\n在牛顿的框架里，匀速运动不需要解释——只有运动的变化（加速度）才需要解释。 而解释只有一个：力。\n这就是为什么牛顿体系能用三条定律统一一切——他不需要解释每一种运动，只需要找到是什么力在改变运动。\n一句话记住： 牛顿第一定律不是\u0026quot;F=ma 的特殊情况\u0026quot;。它是一次世界观的重建：运动不需要原因，变化才需要原因。这是整个现代物理学的起点。\n第三章：F=ma——宇宙最简洁的方程 好了，第一定律告诉你：运动状态的改变需要力。\n那力和改变之间是什么关系？\nF = ma。\n力 = 质量 × 加速度。\n三个字母，一个等号。可能是人类写下的最有信息量的方程之一。\n它说的是什么？\nF = ma，翻译成人话： 你对一个东西施加的力越大 → 它加速越快 同样的力，东西越重 → 加速越慢 推一辆空购物车 → 加速很快 （m 小，a 就大） 推一辆装满的购物车 → 加速很慢 （m 大，a 就小） 就这么简单。 但简单不代表弱。F=ma 的威力在于它的普适性——它描述了一切运动的变化。\n你把 F 换成不同的力，就得到不同的运动：\n同一个 F=ma，千变万化 力 F 代入 F=ma 得到什么 重力 mg mg = ma → a = g 自由落体（伽利略的发现） 弹簧力 -kx -kx = ma 弹簧振动（胡克定律） 万有引力 GMm/r² GMm/r² = ma 行星轨道（开普勒定律） 摩擦力 -μmg -μmg = ma 减速滑行 空气阻力 -bv² -bv² = ma 雨滴达到终端速度 一个方程，通过改变 F 的形式，描述了弹簧、行星、子弹、钟摆、潮汐、卫星……\n这就是牛顿体系的优雅：不是给每种运动各编一个公式，而是找到一个通用框架，所有具体问题都是它的特例。\n从物理看数学的角色： F=ma 是一个微分方程——因为 a 是速度的导数，速度是位置的导数。所以 F=ma 其实是 F = m·d²x/dt²。给定力的形式，用微积分\"解\"这个方程，就能预测物体的未来运动。牛顿发明微积分不是因为好玩，是因为 F=ma 需要微积分才能用。\n一句话记住： F=ma 的深刻不在于\u0026quot;力等于质量乘加速度\u0026quot;——那只是字面意思。它的深刻在于：只需要知道一个力的公式，就能预测物体过去和未来一切运动。这是人类第一次拥有\u0026quot;预测未来\u0026quot;的数学工具。\n第四章：苹果和月亮——牛顿最疯狂的想法 现在来到那个著名的故事。\n苹果从树上落下。\n牛顿据说看到这一幕，产生了一个想法。但这个想法不是\u0026quot;为什么苹果会落下\u0026quot;——这个问题太普通了。\n牛顿的想法是：让苹果落下的力，和让月亮绕地球转的力，是不是同一个力？\n苹果从树上落下 → 重力把它拉向地面 月亮绕地球转 → 某种力把它\u0026#34;拉\u0026#34;向地球 如果没有这个力，月亮会沿直线飞走（第一定律）。 月亮没飞走，说明有一个力在不断把它拉向地球。 那个力会不会就是……重力？ 苹果感受到的重力，和月亮感受到的\u0026#34;力\u0026#34;， 会不会是同一个东西？ 这个想法为什么疯狂？ 在牛顿之前，\u0026ldquo;天上\u0026quot;和\u0026quot;地下\u0026quot;是两个完全不同的世界。\n亚里士多德认为：\n天上的运动（星星、月亮）是完美的、永恒的圆周运动，由\u0026quot;以太\u0026quot;推动 地下的运动（石头、苹果）是不完美的、会停下来的运动，由\u0026quot;自然位置\u0026quot;驱动 这两个世界有不同的规则。天上的东西\u0026quot;高贵\u0026rdquo;，地下的东西\u0026quot;低贱\u0026quot;。\n牛顿说：没有什么\u0026quot;天上\u0026quot;和\u0026quot;地下\u0026quot;。苹果和月亮服从同一个定律。\n这不只是一个物理发现。这是对整个世界观的颠覆——宇宙中没有特殊的地方，没有\u0026quot;高贵\u0026quot;的运动，所有地方、所有东西，都服从同样的规则。\n牛顿用 F=ma 加上一个假设（引力和距离的平方成反比），推导出了行星轨道。\n结果和开普勒从天文观测中总结的规律完全吻合。\n牛顿的万有引力定律： F = G × M × m / r² G = 万有引力常数 M = 一个物体的质量（比如地球） m = 另一个物体的质量（比如苹果） r = 两者之间的距离 这个公式说： 任何两个有质量的东西之间，都有吸引力 力的大小和距离的平方成反比 距离翻倍 → 力变为 1/4 苹果：r 很小（6371 km），力很大 → 砸到头 月亮：r 很大（384000 km），力很小 → 但足以让它转弯 同一个公式，解释了苹果为什么落地，也解释了月亮为什么不掉下来。\n月亮其实一直在\u0026quot;掉\u0026quot;——它一直在被地球拉向地面。但它同时有水平方向的速度，所以它\u0026quot;掉\u0026quot;的同时也在\u0026quot;飞\u0026quot;。两者结合，就变成了绕地球转圈。\n如果月亮突然停住 → 它会直直掉到地球上 如果重力突然消失 → 它会沿直线飞走 实际情况：既在掉，又在飞 → 圆周运动 这就是\u0026#34;轨道\u0026#34;的本质： 一直在做自由落体，但永远落不到地面。 一句话记住： 牛顿把\u0026quot;天上\u0026quot;和\u0026quot;地下\u0026quot;统一成了同一个物理学。万物服从同一个定律——这个信念不仅是物理学的基石，也是科学精神的核心。\n第五章：第三定律——你推墙，墙也在推你 牛顿第三定律常被缩写为\u0026quot;作用力与反作用力\u0026quot;。\n你推墙，墙也在推你。 力是成对出现的。\n你站在地面上 你压地面（你的重力向下） 地面推你（支持力向上） 两个力大小相等，方向相反 所以你不动 你推一面墙 你给墙一个力（向右） 墙给你一个力（向左） 大小一样，方向相反 看起来简单？考一个问题：\n马拉车，车也拉马。力一样大。那车为什么会动？\n很多人被这个问题绊住了。如果马拉车的力等于车拉马的力，力不是\u0026quot;抵消\u0026quot;了吗？\n答案：这两个力作用在不同的物体上，不能抵消。\n对马来说： 马蹄蹬地面 → 地面推马向前（摩擦力） 车拉马向后 地面给马的力 \u0026gt; 车拉马的力 → 马加速向前 对车来说： 马拉车向前 地面摩擦力阻碍车 马拉车的力 \u0026gt; 摩擦力 → 车加速向前 关键：作用力和反作用力作用在 不同 物体上 要分析运动，只看 一个 物体受到的所有力 三条定律合在一起 第一定律：没有力，运动不变（定义了\u0026#34;什么需要解释\u0026#34;） 第二定律：有了力，运动怎么变（给出了定量关系 F=ma） 第三定律：力从哪来（力总是成对出现） 三条定律形成一个闭环： 第一定律告诉你什么时候需要找力 第三定律告诉你力来自哪里 第二定律告诉你力的效果是什么 加上一个力的公式（比如万有引力）， 就能预测一切运动。 一句话记住： 牛顿三定律不是三条独立的规则，而是一个完整的思维框架：什么时候需要解释 → 用什么解释 → 解释从何而来。有了这个框架，你只需要填入具体的力，就能推演整个宇宙的运动。\n第六章：连接 AI——F=ma 就是梯度下降 上一篇我们看到了\u0026quot;梯度下降 = 球沿山坡滚\u0026quot;。\n现在有了 F=ma，这个对应可以更精确了。\n牛顿力学 = AI 优化的母版 牛顿力学： 物体有 位置 x 受到 力 F 产生 加速度 a = F/m 位置更新：x_new = x + v·dt 梯度下降： 模型有 参数 w 受到 \u0026#34;力\u0026#34; = -梯度(损失函数) 产生 \u0026#34;加速度\u0026#34; = 学习率 × 梯度 参数更新：w_new = w - lr × gradient F=ma ←→ Δw = -lr × ∇L 力驱动加速 ←→ 梯度驱动参数更新 牛顿说：给我一个力的公式，我能预测物体的整个未来轨迹。\nAI 说：给我一个损失函数，我能找到最优的模型参数。\n两者的逻辑结构一模一样：\n牛顿：力 → F=ma → 求解微分方程 → 得到运动轨迹 AI： 梯度 → 更新规则 → 迭代优化 → 得到最优参数 牛顿是人类第一次做出\u0026quot;通用预测框架\u0026quot;——告诉我初始条件和力，我就能算出未来。\nAI 是人类第一次做出\u0026quot;通用学习框架\u0026quot;——告诉我数据和损失函数，我就能学到规律。\n两者的共同点：不解决具体问题，而是提供一个解决一切问题的框架。\n就像 F=ma 不告诉你\u0026quot;苹果落地还是月亮转圈\u0026quot;——那取决于你代入什么力。\n同样，梯度下降不告诉你\u0026quot;模型能做翻译还是能画画\u0026quot;——那取决于你代入什么损失函数和什么数据。\n更深的对应——\"统一\"的思维方式：\n牛顿统一了苹果和月亮——同一个力的公式。\nAI 统一了翻译和绘画——同一个学习算法。\n把看起来完全不同的现象，用同一个框架来解释——这种\"统一\"的冲动，是物理学和 AI 共有的最深层基因。\n一句话记住： F=ma 是人类第一个\u0026quot;通用预测引擎\u0026quot;，梯度下降是人类第一个\u0026quot;通用学习引擎\u0026quot;。它们的逻辑结构相同：一个框架 + 一个具体的\u0026quot;力\u0026quot;（或损失函数）= 解决一切问题。\n第七章：牛顿的局限——他也会错 牛顿在世时已经被奉为神一般的人物。\n但他的理论有一个深层问题，他自己知道，但无法回答。\n万有引力是怎么\u0026quot;传递\u0026quot;的？\n地球和月亮之间隔着 38 万公里的真空。地球怎么\u0026quot;知道\u0026quot;月亮在那里？重力怎么穿越真空到达月亮？\n牛顿的万有引力定律是一个\u0026quot;超距作用\u0026quot;——力瞬间穿越空间，没有任何中间媒介。\n牛顿对此很不安。他写道：\n\u0026ldquo;一个物体可以穿越真空，在远处对另一个物体产生作用，不通过任何媒介传递……这对于我来说是如此荒谬，我相信没有一个有足够哲学思考能力的人会接受它。\u0026rdquo;\n他知道自己的理论在这一点上有问题。但他无法解决。\n这个问题要等 200 多年后，爱因斯坦用广义相对论来回答：引力不是\u0026quot;力\u0026quot;，而是时空的弯曲。但那是更后面的故事了。\n科学家的诚实 牛顿最令人尊敬的地方，不在于他对了多少——而在于他知道自己哪里不对，并且承认。\n\u0026ldquo;我不编造假说\u0026rdquo;（Hypotheses non fingo）——这是牛顿说过最著名的话之一。他不知道重力为什么存在，也不胡编一个解释。他只描述它的数学规律。\n这种态度和伽利略的\u0026quot;从为什么到怎么\u0026quot;一脉相承：不知道\u0026quot;为什么\u0026quot;没关系，但必须精确描述\u0026quot;怎么\u0026quot;。\n科学不是\u0026quot;知道一切的真理\u0026quot;，是\u0026quot;诚实面对未知的方法\u0026quot;。\n第八章：牛顿——人和神话 有必要说几句牛顿这个人。\n他是一个极端复杂的人。天才、偏执、记仇、孤僻——同时存在于一个人身上。\n他和莱布尼茨争夺微积分的发明权，争了几十年，用了很多不光彩的手段 他在皇家造币厂当厂长时，亲自追查假币犯，甚至出庭作证把人送上了绞刑架 他花了大量时间研究炼金术和圣经密码——这些在今天看来是伪科学 他晚年几乎不做物理研究，把精力花在了神学上 牛顿不是一个\u0026quot;完美的理性人\u0026quot;。他是一个有着巨大缺陷的天才。\n为什么要讲这些？ 因为\"祛魅\"不只是对物理概念的祛魅，也是对物理学家的祛魅。牛顿不是因为他是\"完美的人\"才做出了伟大发现。他是因为他问了正确的问题，用了正确的方法。\n方法比人重要。这正是科学的力量所在——科学的真理不依赖于发现者的人格。\n但有一句话，他说得极好：\n\u0026ldquo;如果说我看得比别人更远，那是因为我站在巨人的肩膀上。\u0026rdquo;\n这句话常被当作谦虚。但考虑到牛顿的性格，有些历史学家认为他是在讽刺当时的对手胡克（Robert Hooke，一个矮个子）。\n不管原意如何，这句话说出了科学的本质：知识是累积的。 没有伽利略的\u0026quot;怎么动\u0026quot;，就没有牛顿的\u0026quot;为什么动\u0026quot;。没有牛顿的力学，就没有后来的热力学、电磁学、相对论。\n而今天的 AI，也站在这条巨人链的肩膀上。\n本篇小结 这篇文章讲了什么？ 一、牛顿第一定律——世界观的重建\n运动不需要原因，变化才需要原因 东西不是\u0026quot;因为没力了才停\u0026quot;，而是\u0026quot;因为有摩擦力才停\u0026quot; 这颠覆了亚里士多德两千年的世界观 二、F=ma——三个字母统一一切\n同一个方程，换不同的力，描述不同的运动 物理不是给每种现象各编一个公式，而是找到一个通用框架 三、苹果和月亮——天上地下是同一个物理学\n牛顿把苹果落地和月球绕转统一为同一个力 宇宙中没有\u0026quot;特殊的地方\u0026quot;，到处都服从同样的规则 四、第三定律——力是成对出现的\n马拉车、车拉马——力一样大，但作用在不同物体上 五、F=ma 就是梯度下降的母版\n牛顿力学 = 通用预测框架，AI = 通用学习框架 \u0026ldquo;统一\u0026quot;的思维方式：同一个框架解释所有现象 六、牛顿的局限和人性\n万有引力的\u0026quot;超距作用\u0026quot;问题，要等爱因斯坦来解决 科学的力量不依赖于科学家的人格，而依赖于方法 下一篇预告 牛顿告诉我们：给定力和初始条件，就能预测一切运动。\n但在实际计算中，你会发现一个问题：力太复杂了。 一个系统里有很多物体，它们之间相互作用，力的方向和大小时刻在变——直接用 F=ma 去算，有时候难得令人绝望。\n有没有一种方法，可以不管力的细节，直接从\u0026quot;更高的角度\u0026quot;描述运动？\n有。这个方法叫做能量。\n能量守恒不只是一条物理定律——它是一种思维方式：在变化的世界中，找到不变的东西。\n而 AI 的训练过程，本质上就是在一片\u0026quot;能量景观\u0026quot;上寻找最低点。\n下一篇：看见物理（三）：能量——不灭的守恒量\n动手实验 亲手体验\u0026quot;F=ma 的预测能力\u0026rdquo;——用 F=ma 模拟一个弹簧振动和一个行星轨道：\n# 纯 Python，零依赖 import math # ===== 实验 1：弹簧振动 ===== # F = -kx（胡克定律），代入 F=ma → a = -kx/m print(\u0026#34;=== 弹簧振动（F = -kx）===\u0026#34;) x = 1.0 # 初始位移 1 米（拉开弹簧） v = 0.0 # 初始速度 0 k = 4.0 # 弹簧常数 m = 1.0 # 质量 dt = 0.05 # 时间步长 for step in range(40): t = step * dt a = -k * x / m # F=ma → a = F/m = -kx/m v = v + a * dt # 速度更新 x = x + v * dt # 位置更新 if step % 5 == 0: bar_len = int(abs(x) * 20) bar = (\u0026#34;\u0026gt;\u0026#34; * bar_len) if x \u0026gt; 0 else (\u0026#34;\u0026lt;\u0026#34; * bar_len) print(f\u0026#34; t={t:.2f}s x={x:+.3f} v={v:+.3f} |{bar:^40s}|\u0026#34;) print(\u0026#34;\\n 弹簧来回振动——同一个 F=ma，换了力的公式而已。\u0026#34;) # ===== 实验 2：简化的\u0026#34;行星轨道\u0026#34; ===== # F = -GMm/r²，方向指向原点 print(\u0026#34;\\n=== 行星轨道（万有引力）===\u0026#34;) px, py = 1.0, 0.0 # 初始位置 vx, vy = 0.0, 0.8 # 初始速度（切线方向） GM = 1.0 # 引力参数 dt = 0.02 print(\u0026#34; 轨道坐标（每10步输出一次）：\u0026#34;) for step in range(200): r = math.sqrt(px*px + py*py) # F = -GM/r²，分解到 x, y 分量 ax = -GM * px / (r**3) # a_x = F_x / m ay = -GM * py / (r**3) vx += ax * dt vy += ay * dt px += vx * dt py += vy * dt if step % 30 == 0: print(f\u0026#34; step={step:3d} 位置=({px:+.3f}, {py:+.3f}) 离原点={r:.3f}\u0026#34;) final_r = math.sqrt(px*px + py*py) print(f\u0026#34;\\n 初始距离: 1.000 最终距离: {final_r:.3f}\u0026#34;) print(f\u0026#34; 行星一直在\u0026#39;掉\u0026#39;向恒星，但永远掉不到——这就是轨道。\u0026#34;) print(f\u0026#34;\\n 弹簧和行星，都是同一个 F=ma。区别只在于 F 是什么。\u0026#34;) 延伸阅读 《自然哲学的数学原理》（Principia） ——牛顿，1687 年出版，改变了人类文明进程的著作 《牛顿传》（Never at Rest） ——Richard Westfall，最权威的牛顿传记，展现了天才与人性的复杂纠缠 Feynman Lectures on Physics, Vol. 1, Ch. 9-10: Newton\u0026rsquo;s Laws ——费曼对 F=ma 的直觉讲解 3Blue1Brown：\u0026ldquo;微分方程\u0026quot;系列 ——动画展示 F=ma 如何变成可求解的微分方程 《看见物理》系列 — 从运动到世界模型，看见物理之美。\n本文首发于「AI 学习笔记」博客：https://Jason-Azure.github.io/ai-blog/\n微信公众号：AI-lab学习笔记\n系列文章完整列表见 标签：看见物理\n","permalink":"https://jason-azure.github.io/ai-blog/posts/see-physics-2-force/","summary":"牛顿最反直觉的发现不是万有引力，而是第一定律：不受力的物体不会停下来，它会永远运动下去。两千年来人类都以为「运动需要力来维持」，牛顿说：错了，运动是天经地义的，停下来才需要解释。","title":"看见物理（二）：力——看不见的手"},{"content":"从一个反直觉的实验说起 2015 年，微软亚洲研究院的何恺明做了一个简单的实验：把一个图像识别网络从 20 层加深到 56 层。\n直觉上，更深的网络应该更好——56 层网络至少不应该比 20 层差，因为它完全可以在前 20 层学完之后，让剩下的 36 层什么都不做（学成恒等映射 f(x) = x）。\n但实验结果令人震惊：\nCIFAR-10 数据集上的训练误差： 20 层网络: ~5% 56 层网络: ~8% ← 更深，但更差！ 不是过拟合。 过拟合是训练误差低、测试误差高。但这里训练误差也更高——56 层网络连训练数据都拟合不好。\n更深的网络，反而更笨了。\n这个现象被称为退化问题（degradation problem）。它说明的不是模型容量的问题，而是优化的问题——让 36 层网络学会\u0026quot;什么都不做\u0026quot;，对标准的梯度下降来说，竟然做不到。\n\u0026ldquo;Deeper neural networks are more difficult to train.\u0026rdquo;\n— He, K. et al. (2015). Deep Residual Learning for Image Recognition. CVPR 2016 Best Paper.\n这个发现把深度学习推到了一个十字路口：如果更深 ≠ 更好，那深度学习的\u0026quot;深\u0026quot;字还有意义吗？\n然后何恺明做了一件看似微不足道的事——他在网络中加了一个加号。\n一、一个加号改变一切：y = F(x) + x 传统网络 vs 残差网络 传统的深度网络中，每一层学习一个变换 H(x)：\n输入 x → [第 1 层] → H₁(x) → [第 2 层] → H₂(H₁(x)) → ... 每一层的任务：从输入 x 直接学到输出 H(x) 何恺明的改变只有一步：不让网络直接学 H(x)，而是让它学 F(x) = H(x) - x，然后把 x 加回来。\n残差网络： 输入 x ──┬──→ [F(x): 几层网络] ──→ F(x) │ │ └────── 跳过（shortcut）──→ + ← 加回来！ │ x + F(x) = y 一行代码：y = F(x) + x 就这一个改变。y = F(x) + x。\n▲ 输入 x 兵分两路：一路经过网络层 F(x)，一路直接跳过。两路在加号处汇合。即使 F(x) 学不好，x 也能完整传递 💡 关于代码示例： 本文引用的 microgpt 和 nanoGPT 是 Karpathy 开源的教学项目——前者 200 行零依赖，后者用 PyTorch。如果你对代码不熟悉，可以先跳过代码块，专注于文字和图解——后续我会出视频逐行拆解这些代码。\n在 nanoGPT 中，残差连接只有两行——可能是整个 Transformer 中最短但最关键的代码：\n# nanoGPT 中的 Transformer Block（model.py 第 103-106 行） def forward(self, x): x = x + self.attn(self.ln_1(x)) # Attention 的输出 + 原始输入 x = x + self.mlp(self.ln_2(x)) # MLP 的输出 + 原始输入 return x 在 microgpt 中看得更清楚——因为它是纯 Python，没有任何抽象：\n# microgpt 中的残差连接（第 116-141 行） for li in range(n_layer): # 1) Attention block x_residual = x # ← 先把 x 存起来 x = rmsnorm(x) # ... 一堆 Attention 计算 ... x = linear(x_attn, state_dict[f\u0026#39;layer{li}.attn_wo\u0026#39;]) x = [a + b for a, b in zip(x, x_residual)] # ← 加回来！ # 2) MLP block x_residual = x # ← 再存一次 x = rmsnorm(x) x = linear(x, state_dict[f\u0026#39;layer{li}.mlp_fc1\u0026#39;]) x = [xi.relu() for xi in x] x = linear(x, state_dict[f\u0026#39;layer{li}.mlp_fc2\u0026#39;]) x = [a + b for a, b in zip(x, x_residual)] # ← 又加回来！ 每个 Transformer 层做了两次残差连接：一次在 Attention 之后，一次在 MLP 之后。\nGPT-2 有 12 层，每层 2 次 → 24 次加法。 GPT-3 有 96 层，每层 2 次 → 192 次加法。\n这 192 次加法，是 GPT-3 能工作的根基。\n一句话记住： 残差连接 = 输出加上输入。y = F(x) + x。不是让网络从头学整个变换，而是让它只学变化量。这一个加号，让网络从 20 层扩展到了 1000 层。\n二、为什么学\u0026quot;变化\u0026quot;比学\u0026quot;全部\u0026quot;更容易？ 恒等映射的困境 回到退化问题。理论上，56 层网络可以包含一个 20 层的解——只要让多余的 36 层学成恒等映射 f(x) = x。\n但在实践中，让一堆非线性层学会\u0026quot;什么都不做\u0026quot;，出奇地困难。\n想象一下：一个层有几百个参数（权重和偏置），经过矩阵乘法和 ReLU 激活函数。要让这些参数恰好组合出 f(x) = x，需要权重矩阵精确等于单位矩阵，偏置精确等于零。虽然这在数学上是可能的，但梯度下降很难找到这个解——因为损失函数的地形（loss landscape）中，恒等映射的位置不是一个容易到达的\u0026quot;谷底\u0026quot;。\n残差让\u0026quot;什么都不做\u0026quot;变成默认选项 加上残差连接之后，情况完全反转了。\n传统网络想\u0026#34;什么都不做\u0026#34;： 需要学 H(x) = x → 困难（要让一堆非线性层精确输出 x） 残差网络想\u0026#34;什么都不做\u0026#34;： 需要学 F(x) = 0 → 容易（只需要把权重推向零） \u0026ldquo;If the identity mapping f(x) = x is the desired underlying mapping, the residual mapping amounts to g(x) = 0 and it is thus easier to learn: we only need to push the weights and biases of the upper weight layer within the dotted-line box to zero.\u0026rdquo;\n— d2l.ai, Chapter: ResNet\n残差连接把\u0026quot;什么都不做\u0026quot;从一个困难的优化目标，变成了网络的默认状态。\n每一层的真正任务变成了：在保留原始信息的基础上，决定要\u0026quot;增加\u0026quot;什么。 如果这一层没有什么有用的可以贡献——没关系，F(x) ≈ 0，输出 ≈ 输入，信息无损传递。\n这就像写文章的两种方式：\n没有残差：每一层都在重写整篇文章 → 第 1 层写了一个版本 → 第 2 层推翻重写 → 第 3 层又推翻重写 → ...36 层之后，文章反而越来越差 有残差：每一层只做批注 → 第 1 层在原文上标注了重点 → 第 2 层补充了一个例子 → 第 3 层修改了一个措辞 → ...36 层之后，文章越来越精炼 残差连接把每一层从\u0026quot;创作者\u0026quot;变成了\u0026quot;编辑者\u0026quot;。\n一句话记住： 没有残差时，每一层必须从头学完整的变换——难。有残差时，每一层只需要学\u0026quot;在现有基础上改什么\u0026quot;——简单得多。残差连接让\u0026quot;什么都不做\u0026quot;成为默认，让\u0026quot;做一点小改进\u0026quot;成为目标。\n三、梯度高速公路：为什么 +1 是关键 深层网络的梯度灾难 要理解残差连接为什么在数学上有效，我们需要看反向传播。\n神经网络通过梯度下降来学习。梯度需要从最后一层反向传播到第一层。在一个 N 层的普通网络中：\n梯度 = ∂Loss/∂x₁ = (∂x₂/∂x₁) × (∂x₃/∂x₂) × ... × (∂xₙ/∂xₙ₋₁) × (∂Loss/∂xₙ) 这是一个连乘。如果每个因子都小于 1（比如 0.9），那么：\n0.9 × 0.9 × 0.9 × ... × 0.9 (56 次) = 0.9⁵⁶ = 0.003 梯度衰减了 300 倍！ 这就是梯度消失（vanishing gradient）。最前面的层几乎收不到梯度信号，根本无法学习。\n如果每个因子大于 1（比如 1.1），则：\n1.1⁵⁶ = 235 梯度膨胀了 235 倍！→ 梯度爆炸 连乘是危险的。太小消失，太大爆炸。\n残差连接：从连乘变成加法 现在看残差网络。y = F(x) + x，对 x 求导：\n∂y/∂x = ∂F(x)/∂x + 1 那个 + 1 就是一切的关键。\n无论 ∂F(x)/∂x 多小——哪怕接近零——梯度至少还有 1。\n普通网络的梯度（56 层连乘）： 0.9 × 0.9 × 0.9 × ... = 0.003 → 几乎消失 残差网络的梯度（每一步都有 +1）： 梯度可以直接通过 skip connection \u0026#34;穿越\u0026#34;所有层 → 至少有一条路径是畅通的 残差连接创造了一条\u0026quot;梯度高速公路\u0026quot;——梯度可以不经过任何非线性变换，直接从最后一层流到第一层。\n▲ 上：普通网络中梯度经过每层的连乘，越来越弱。下：残差网络中梯度有一条\"高速公路\"直达早期层 2ⁿ 条路径：集成而非堆叠 2016 年，Veit 等人从另一个角度揭示了残差网络的本质：\n一个 n 层的残差网络，其实包含 2ⁿ 条从输入到输出的路径。\n为什么？每个残差块都有两条路：走 F(x)（通过网络层处理）或走 x（直接跳过）。n 个块就有 2ⁿ 种组合。\n3 个残差块 → 2³ = 8 条路径： 路径 1: skip → skip → skip （最短：0 层深） 路径 2: skip → skip → F₃ （1 层深） 路径 3: skip → F₂ → skip （1 层深） 路径 4: F₁ → skip → skip （1 层深） 路径 5: skip → F₂ → F₃ （2 层深） 路径 6: F₁ → skip → F₃ （2 层深） 路径 7: F₁ → F₂ → skip （2 层深） 路径 8: F₁ → F₂ → F₃ （最长：3 层深） 更惊人的发现：\n\u0026ldquo;Most of the gradient comes from paths that are only 10-34 layers deep.\u0026rdquo;\n— Veit, A. et al. (2016). Residual Networks Behave Like Ensembles of Relatively Shallow Networks. NeurIPS.\n在一个 110 层的 ResNet 中，真正传递大部分梯度的路径只有 10-34 层深！网络并不是真的在用全部 110 层的深度——它更像是大量浅层网络的投票集成。\n删除实验进一步证实了这一点： 从残差网络中删除任意一个中间层，性能只会平缓退化，不会崩溃。但如果从普通深层网络中删除一层——整个网络立即失效。\n▲ 残差网络包含指数级的路径。梯度主要通过较浅的路径传播——网络更像是浅层网络的集成 这说明残差网络的层与层之间是松耦合的——每一层做出独立的小贡献，而不是像流水线那样紧密依赖。\n一句话记住： 残差连接在反向传播中保证了 ∂y/∂x = ∂F/∂x + 1，那个 +1 让梯度永远不会消失。而 n 个残差块创造了 2ⁿ 条路径——残差网络不是一条深管道，而是一个浅路径的集成投票系统。\n四、残差流——重新理解 Transformer 不是\u0026quot;一层一层处理\u0026quot;，而是\u0026quot;一条河流\u0026quot; 现在把目光从 ResNet 转到 Transformer。\n传统的理解方式是这样的：\n传统视角：逐层处理 输入 → 第1层 → 第2层 → ... → 第96层 → 输出 2021 年，Anthropic 的 Elhage 等人提出了一种更深刻的理解方式：\n\u0026ldquo;不要把 Transformer 看作\u0026rsquo;一层一层的处理\u0026rsquo;，要看作一条**残差流（residual stream）**作为主干高速公路，Attention 和 MLP 只是在这条高速公路上的\u0026rsquo;读取和写入\u0026rsquo;操作。\u0026rdquo;\nElhage, N. et al. (2021). A Mathematical Framework for Transformer Circuits. Anthropic.\n残差流的视角：\n残差流视角：一条河流 + 沿河工厂 Token Embedding + Position Embedding ↓ ═══════════════════════════════════ ← 残差流（河流） ↑↓ Attention Layer 1 读取 \u0026amp; 写入 ← 沿河工厂 #1 ↑↓ ═══════════════════════════════════ ↑↓ MLP Layer 1 读取 \u0026amp; 写入 ← 沿河工厂 #2 ↑↓ ═══════════════════════════════════ ↑↓ Attention Layer 2 读取 \u0026amp; 写入 ← 沿河工厂 #3 ↑↓ ═══════════════════════════════════ ... ↑↓ ═══════════════════════════════════ ↓ Final LayerNorm → 输出 河流从不中断。 Attention 和 MLP 是沿河建造的\u0026quot;工厂\u0026quot;——从河中取水（读取残差流），处理后再排回河中（写入残差流）。\n用数学来说，在第 N 层之后，残差流中的向量等于：\nresidual_stream = token_embedding + pos_embedding + attn_output[layer_1] + mlp_output[layer_1] + attn_output[layer_2] + mlp_output[layer_2] + ... + attn_output[layer_N] + mlp_output[layer_N] 全部是加法！ 所有组件的输出被叠加在同一个向量中。\n\u0026ldquo;The output of each layer is the sum of the output of each component, and the input to each layer (the residual stream) is the sum of the output of every previous layer and thus the sum of the output of every previous component.\u0026rdquo;\n— Elhage et al. (2021)\n为什么这个视角如此重要？ 因为它揭示了 Transformer 的真正架构：\n残差流是所有组件之间通信的唯一通道。\nAttention 层不能直接和 MLP 层\u0026quot;说话\u0026quot; 第 3 层不能直接和第 7 层\u0026quot;说话\u0026quot; 所有通信都必须经过残差流——写入残差流，等下一个组件来读取 这就像一个公司的内部沟通全靠一块共享白板：\n白板（残差流）： - 第1层 Attention 写上：\u0026#34;位置 3 的词和位置 1 的词高度相关\u0026#34; - 第1层 MLP 写上：\u0026#34;这个模式对应的知识是...\u0026#34; - 第2层 Attention 读取白板，看到前面两条信息，写上新发现 - 第2层 MLP 读取白板，进一步补充... 白板（残差流）越来越丰富，但从不被擦掉——只有添加，没有删除。\n▲ 残差流是一条从头到尾不间断的信息河流。Attention 和 MLP 是沿河的工厂——从河中读取信息，处理后写回 回到 tok_emb + pos_emb 现在你可以重新理解 Transformer 的第一步了：\nx = tok_emb + pos_emb 这不只是\u0026quot;把位置加到语义上\u0026quot;。这是残差流的初始化——往河里注入了第一批水：语义信息 + 位置信息。\n然后接下来的每一层，都是往这条河里继续注入新的信息：\nx = x + attention_output # 注入：上下文关系 x = x + mlp_output # 注入：世界知识 x = x + attention_output # 注入：更深层的关系 x = x + mlp_output # 注入：更精细的知识 ... 整个 Transformer 可以看作一连串的加法。 从 tok_emb + pos_emb 开始，每一层加一点新东西，最终河流中的信息足够丰富，可以预测下一个词。\n一句话记住： Transformer 的核心不是 Attention，不是 MLP——是残差流。它是一条从头到尾不间断的信息河流，Attention 和 MLP 只是沿河的工厂。整个 Transformer = 一连串的加法。\n五、为什么是\u0026quot;加法\u0026quot;而不是别的？ 加法的四个独特优势 你可能会问：为什么非得用加法？可以用乘法、拼接或者其他操作吗？\n1. 加法保留信息\n加法：y = x + F(x) → 原始信息 x 完整保留 → F(x) 是增量 → 理论上可以从 y 恢复 x（减去 F(x)） 乘法：y = x × G(x) → 如果 G(x) 的某个维度接近 0，那个维度的信息永久丢失 → 不可逆 加法是信息安全的。 它保证了原始信息不会被破坏。\n2. 加法在高维空间中几乎不干扰\n这和我们在 位置编码文章 中讲过的原理完全一样：在 768 维空间中，不同来源的信息可以近似正交地叠加。\n残差流 = tok_emb（语义） + pos_emb（位置） + attn₁ 的输出（上下文关系 #1） + mlp₁ 的输出（知识 #1） + attn₂ 的输出（上下文关系 #2） + ... 这些信息在 768 维空间中各占不同的\u0026#34;方向\u0026#34;， 加在一起后可以被后续的线性投影分别提取。 3. 加法的梯度是 +1\n前面讲过，∂(x + F(x))/∂x = 1 + ∂F/∂x。那个 +1 保证了梯度永远不会消失。\n如果用乘法 y = x × G(x)，梯度是 G(x) + x·∂G/∂x——如果 G(x) 接近零，梯度也消失了。\n4. 加法不增加参数\n加法：y = x + F(x) → 额外参数：0 拼接：y = [x; F(x)] → 后续层的参数量翻倍 门控：y = σ(W)·x + (1-σ(W))·F(x) → 额外学一个门控权重 加法是零成本的信息保留。\n加法是 Transformer 的统一主题 现在让我们站远一点看。整个 Transformer 中，加法出现了多少次？\nx = tok_emb + pos_emb ← 加法 #1：语义 + 位置 x = x + Attention(x) ← 加法 #2：+ 上下文 x = x + MLP(x) ← 加法 #3：+ 知识 x = x + Attention(x) ← 加法 #4 x = x + MLP(x) ← 加法 #5 ...（重复 N 层）... x = x + Attention(x) ← 加法 #2N x = x + MLP(x) ← 加法 #2N+1 GPT-3 有 96 层 → 1 + 96×2 = 193 次加法。\n而\u0026quot;乘法\u0026quot;出现在哪里？在 Attention 的 Q·K 点积中（计算相关度），在 W_Q、W_K、W_V 的矩阵投影中（空间变换），在 MLP 的线性层中（特征提取）。\n乘法负责\u0026quot;变换\u0026quot;，加法负责\u0026quot;保留\u0026quot;。 两者的分工泾渭分明。\n一句话记住： 加法保留信息、梯度为 +1、高维空间中近似正交、零额外参数。Transformer 中乘法负责变换，加法负责保留——193 次加法构成了 GPT-3 的信息高速公路。\n六、从 20 层到 1000 层：残差连接的进化 Pre-LN vs Post-LN：LayerNorm 放在哪里？ 原始 Transformer（2017）把 LayerNorm 放在残差加法之后（Post-LN）：\nPost-LN: output = LayerNorm(x + Sublayer(x)) GPT-2（2019）改成了放在残差加法之前（Pre-LN）：\nPre-LN: output = x + Sublayer(LayerNorm(x)) 区别看似微小，但效果巨大。\n\u0026ldquo;At initialization, for the Post-LN Transformer, the expected gradients of the parameters near the output layer are large.\u0026rdquo;\n\u0026ldquo;For Pre-LN Transformer, the gradients are well-behaved at initialization.\u0026rdquo;\n— Xiong, R. et al. (2020). On Layer Normalization in the Transformer Architecture. ICML.\n直觉解释：\nPost-LN 把 LayerNorm 放在残差加法之后 → 干扰了残差流的直接传递 → 梯度不稳定，必须用 warmup Pre-LN 把 LayerNorm 放在残差加法之前（在子层内部）→ 残差流的直接传递不受干扰 → 训练更稳定 现状： 几乎所有现代 LLM（GPT-2/3/4、LLaMA、Qwen、DeepSeek）都使用 Pre-LN 或其变体。\nReZero：从零开始 2020 年，Bachlechner 等人提出了一个更极端的想法：训练开始时，让每一层的贡献为零。\nReZero: y = x + α · F(x) # α 初始化为 0 训练开始时 α = 0 → y = x + 0 = x → 网络就是一个恒等映射。\n然后 α 从 0 慢慢增长，每一层缓慢引入自己的贡献。\n\u0026ldquo;Gating each residual connection using a single zero-initialized parameter.\u0026rdquo;\n— Bachlechner, T. et al. (2020). ReZero is All You Need. arXiv:2003.04887.\n结果：12 层 Transformer 的收敛速度快了 56%。\nDeepNorm：1000 层 Transformer 2022 年，微软提出了 DeepNorm，成功训练了 1000 层的 Transformer——比之前最深的 Transformer 深一个数量级。\nDeepNorm: output = LayerNorm(α · x + Sublayer(x)) # α \u0026gt; 1 通过理论推导的缩放系数 α 和初始化方案，保证了超深网络的梯度稳定性。\n\u0026ldquo;One order of magnitude deeper than previous deep Transformers.\u0026rdquo;\n— Wang, H. et al. (2022). DeepNet: Scaling Transformers to 1,000 Layers. arXiv:2203.00555.\n200 层 3.2B 参数的模型超过了 48 层 12B 参数的模型——证明了在残差连接的保护下，深度可以比宽度更高效。\n从 2015 到 2022：一个加号的进化 2015 y = F(x) + x He: ResNet, 152 层 2017 LN(x + Sublayer(x)) Vaswani: Transformer, 6 层 2019 x + Sublayer(LN(x)) Radford: GPT-2, 12 层（Pre-LN） 2020 x + α·F(x), α₀=0 Bachlechner: ReZero, 收敛快 56% 2020 GPT-3 Brown: 96 层 Transformer 2022 LN(α·x + F(x)), α\u0026gt;1 Wang: DeepNorm, 1000 层 从 6 层到 1000 层，每一步的核心都是同一个操作：加法。 变化的只是加法周围的细节——归一化放哪里、缩放系数怎么选。\n一句话记住： Pre-LN 让残差流不受干扰。ReZero 让每层从\u0026quot;什么都不做\u0026quot;开始。DeepNorm 把 Transformer 推到了 1000 层。所有改进都围绕同一个核心：保护那个加号。\n七、编辑者而非重写者——一种认知类比 人类也是\u0026quot;残差式\u0026quot;学习的 想想你读一篇复杂文章的过程：\n第 1 遍：大致浏览，抓住主题 → 你的\u0026#34;向量\u0026#34;从零变成：[主题=AI, 难度=中等, 长度=长] 第 2 遍：细读，理解核心论点 → 你的\u0026#34;向量\u0026#34; += [论点=残差连接很重要, 证据=数学+实验] 第 3 遍：反思，连接已有知识 → 你的\u0026#34;向量\u0026#34; += [连接=和上一篇位置编码的加法是同一件事] 第 4 遍：形成自己的观点 → 你的\u0026#34;向量\u0026#34; += [观点=加法是深度学习的基石] 每一遍都是在保留前一遍理解的基础上\u0026quot;加\u0026quot;上新的认知。你不会每读一遍就把前面的理解推翻重来。\n这正是残差连接的工作方式。\n与 LSTM 的哲学对比 在 Transformer 之前，LSTM 用\u0026quot;遗忘门\u0026quot;来管理记忆：\nLSTM 的哲学：主动选择\u0026#34;保留什么\u0026#34;和\u0026#34;遗忘什么\u0026#34; → c_t = f_t ⊙ c_{t-1} + i_t ⊙ g_t → 遗忘门 f_t 控制丢弃多少旧信息 → 输入门 i_t 控制接收多少新信息 → 需要学习4个门控机制 残差连接的哲学：先保留一切，让后续层去提取需要的 → y = x + F(x) → 旧信息完整保留（+x） → 新信息无条件叠加（+F(x)） → 一个加号搞定 残差连接的简洁性赢了。 Transformer 用一个加号替代了 LSTM 的四个门控，而且效果更好。\n这背后有一个深层的原因：在足够高的维度中，\u0026ldquo;保留一切\u0026quot;比\u0026quot;选择性遗忘\u0026quot;更高效。 因为 768 维空间有足够的容量来存储所有信息，而后续的 Attention 机制会自动学会\u0026quot;从海量信息中关注重要的\u0026rdquo;——这比让每一步都做选择性遗忘更灵活。\n一句话记住： 残差连接的哲学是\u0026quot;先保留一切，再选择性关注\u0026quot;——和人类的认知过程一致。我们读文章不会每读一遍就把前面忘掉，而是在已有理解的基础上不断叠加新的认知。\n本篇小结\n一、退化问题 — 56 层网络比 20 层更差——不是过拟合，是优化的困境。让网络学会\u0026quot;什么都不做\u0026quot;出奇地困难。\n二、y = F(x) + x — 残差连接让网络只学\u0026quot;变化量\u0026quot;。什么都不做 = F(x)→0 = 只需要把权重推向零。每层从\u0026quot;创作者\u0026quot;变成\u0026quot;编辑者\u0026quot;。\n三、梯度高速公路 — ∂y/∂x = ∂F/∂x + 1，那个 +1 保证梯度永不消失。n 个残差块 = 2ⁿ 条路径的集成，而非单一深管道。\n四、残差流 — Transformer 的核心是一条不间断的信息河流。Attention 和 MLP 只是沿河的工厂——从河中读取，处理后写回。整个 Transformer = 一连串加法。\n五、为什么是加法 — 保留信息、梯度 +1、高维近似正交、零额外参数。乘法负责变换，加法负责保留。\n六、从 20 到 1000 层 — Pre-LN 保护残差流不被干扰。ReZero 从零开始。DeepNorm 推到 1000 层。所有改进都围绕同一个核心：保护那个加号。\n七、认知类比 — 残差 = 在已有理解上叠加新认知，而不是推翻重来。先保留一切，再选择性关注——这比选择性遗忘更高效。\n写在最后 2015 年，何恺明面对一个荒诞的事实：更深的网络反而更差。\n他的解决方案只有一个符号：+。\ny = F(x) + x。\n这个加号做了三件事：\n让网络从\u0026quot;学会一切\u0026quot;变成\u0026quot;学会改变什么\u0026quot; 让梯度从\u0026quot;逐层衰减\u0026quot;变成\u0026quot;有高速公路直达\u0026quot; 让信息从\u0026quot;每层覆盖\u0026quot;变成\u0026quot;逐层叠加\u0026quot; 然后 Transformer 把这个加号用到了极致——tok_emb + pos_emb + attn₁ + mlp₁ + attn₂ + mlp₂ + ...——整个模型就是一连串的加法，一条从输入到输出的不间断信息河流。\n回过头来看我们这个系列：\nascii-to-token: 符号 → 数字（编码） embedding: 数字 → 向量（查表 + 加法 #1: tok + pos） 位置编码: 位置 → 旋转（加法的数学本质） 残差连接: 深度 → 可能（加法 #2~193: 残差流） 每一步的核心操作都是加法。 把符号加成向量，把位置加到语义上，把每一层的输出加到残差流里。\n如果说乘法是 Transformer 的肌肉（Attention 的点积、MLP 的线性变换），那么加法就是它的骨架——没有骨架，肌肉再强也站不起来。\n一个加号，撑起了整个深度学习。\n参考文献\nHe, K. et al. (2015). Deep Residual Learning for Image Recognition. arXiv:1512.03385. CVPR 2016 Best Paper. — ResNet 原论文。 He, K. et al. (2016). Identity Mappings in Deep Residual Networks. arXiv:1603.05027. ECCV 2016. — 恒等映射的进一步分析。 Veit, A. et al. (2016). Residual Networks Behave Like Ensembles of Relatively Shallow Networks. arXiv:1605.06431. NeurIPS. — 集成路径的发现。 Vaswani, A. et al. (2017). Attention Is All You Need. arXiv:1706.03762. NeurIPS. — Transformer 中的残差连接。 Xiong, R. et al. (2020). On Layer Normalization in the Transformer Architecture. arXiv:2002.04745. ICML. — Pre-LN vs Post-LN。 Bachlechner, T. et al. (2020). ReZero is All You Need. arXiv:2003.04887. — 零初始化残差。 Wang, H. et al. (2022). DeepNet: Scaling Transformers to 1,000 Layers. arXiv:2203.00555. — 1000 层 Transformer。 Elhage, N. et al. (2021). A Mathematical Framework for Transformer Circuits. Anthropic. — 残差流的概念。 推荐阅读\nd2l.ai 的 ResNet 章节 — 残差连接的数学推导 Anthropic 的 Transformer Circuits 系列 — 残差流的深入分析 💡 相关文章\n当数字学会了远近亲疏——从查表到 Embedding 的一步跨越 — tok_emb + pos_emb 的第一次加法 第一个词和第五个词有什么不同？——位置编码的数学与直觉 — 为什么位置信息可以\u0026quot;加\u0026quot;上去 AI 的数学语言（六）：梯度下降——AI 怎么学习 — 反向传播的基础 看见数学（十四）：高维空间——直觉失效的地方 — 768 维空间的\u0026quot;容量\u0026quot; 博客：https://Jason-Azure.github.io/ai-blog/\n微信公众号：AI-lab学习笔记\n","permalink":"https://jason-azure.github.io/ai-blog/posts/residual-connection/","summary":"2015 年，何恺明发现了一件诡异的事：56 层的神经网络比 20 层的更差——不是过拟合，是训练误差也更高。深度学习的根基似乎在动摇。然后他加了一个加号：y = F(x) + x。就这一个加号，让网络从 20 层一路堆到 1000 层，让 Transformer 成为可能，让 GPT 能有 96 层。这篇文章讲的就是这个加号的故事。","title":"一个加号拯救了深度学习——残差连接的前世今生"},{"content":"上一篇回顾 牛顿用 F=ma 统一了天上地下一切运动。给定力的公式和初始条件，就能预测物体的整个未来。\n但我们留了一个问题：力太复杂了。\n一个系统里有很多物体，它们之间相互作用，力的方向和大小时刻在变——直接用 F=ma 去算，有时候难得令人绝望。\n有没有一种方法，可以不管力的细节，直接从更高的角度描述运动？\n有。这个方法叫做能量。\n系列导航\n▹ 第一篇：运动——世界从\"动\"开始 ▹ 第二篇：力——看不见的手 ▸ 第三篇（本文）：能量——不灭的守恒量 ▹ 第四篇：动量——惯性的力量 第一章：宇宙正在走向死亡吗？ 太阳每秒烧掉 400 万吨物质。银河系里有上千亿颗恒星在做同样的事。\n迟早，它们都会烧完。\n到那时候——没有光，没有热，没有任何运动。一片永恒的、漆黑的、冰冷的虚无。\n这是宇宙的结局吗？\n物理学家管这叫\u0026quot;热寂\u0026quot;（heat death）。它是不是真的会发生，取决于一个看似简单的问题：\n有没有一种\u0026quot;东西\u0026quot;，它永远不会消失，也永远不会凭空出现？\n这个问题困扰了物理学家两百多年。\n1840 年代，几个人几乎同时想通了：\n德国医生迈尔（Julius Robert von Mayer），在给水手放血时发现热带地区的静脉血更红——人体在热带需要的热量更少，但能量没有消失，只是换了形式 英国啤酒商焦耳（James Prescott Joule），在自家酒厂反复做实验，精确测量了机械运动怎么变成热量 德国物理学家亥姆霍兹（Hermann von Helmholtz），用数学证明了这一切 他们各自独立发现了同一件事：\n能量不会凭空消失，也不会凭空产生。它只会从一种形式变成另一种形式。\n这就是能量守恒定律——整个物理学最基本的定律之一。\n一个医生、一个啤酒商、一个物理学家 发现能量守恒的三个人，背景完全不同。这件事本身就说明：自然界的真理不在乎你的身份。 只要你认真观察、仔细测量，不管你是医生还是商人，真理都会向你展示同样的答案。\n这和上一篇说的一样：方法比人重要。\n一句话记住： 宇宙中有一种\u0026quot;东西\u0026quot;，它能变换形态，但总量永远不变。这个东西叫能量。\n第二章：能量的两副面孔——动能和势能 能量有很多种形式：热能、光能、化学能、核能……但在力学里，最基本的只有两种：\n动能：运动的能量\n一个运动的物体拥有动能。它的公式是：\n$$E_k = \\frac{1}{2}mv^2$$\n翻译成人话：越重、越快的东西，动能越大。\n一辆静止的车：动能 = 0 同一辆车以 60 km/h 行驶：动能 = ½mv² 同一辆车以 120 km/h 行驶：动能 = ½m(2v)² = 4 × ½mv² 速度翻倍 → 动能变为 4 倍（不是 2 倍！） 这就是为什么高速公路上的交通事故比城市道路严重得多。 时速 120 的撞击能量是时速 60 的 4 倍，不是 2 倍。 势能：位置的能量\n一个被举高的物体拥有重力势能。它的公式是：\n$$E_p = mgh$$\n翻译成人话：越重、越高的东西，势能越大。\n桌子上的一杯水：有势能（相对于地面） 水掉到地上：势能变成了动能 水溅开、静止：动能变成了热能（水和地面都微微变热了） 能量没有消失。只是换了马甲。 第三章：过山车——能量守恒的完美演示 理解能量守恒最直觉的方式：想象一辆过山车。\n过山车从最高点 A 出发，不需要任何发动机——重力就够了。\n位置 A（最高点）： 势能 = 最大（因为最高） 动能 = 最小（速度最慢） 总能量 = 势能 + 动能 位置 D（最低点）： 势能 = 最小（因为最低） 动能 = 最大（速度最快） 总能量 = 势能 + 动能 ← 和 A 一样！ 一路上： 势能减少多少 → 动能就增加多少 势能增加多少 → 动能就减少多少 总能量始终不变 你不需要知道力的方向、大小、怎么变化。你只需要知道：总能量不变。\n这就是能量方法的威力——它绕过了力的细节，直接告诉你结果。\nF=ma vs 能量守恒 方法 做法 优点 缺点 F=ma 分析每一个力，列方程，解微分方程 给出完整轨迹（每个时刻的位置和速度） 力复杂时几乎无法计算 能量守恒 只看初态和终态，列能量方程 简单粗暴，直接出结果 只告诉你\u0026quot;最终状态\u0026quot;，不告诉你\u0026quot;路上经历了什么\u0026quot; 两种方法不是竞争关系——它们是同一个物理学的两种视角。\n就像看一座山，你可以从山脚一步一步爬（F=ma），也可以坐缆车直接看山顶和山脚的高度差（能量守恒）。答案是一样的，只是走的路不同。\n一句话记住： 能量守恒让你不用管过程，只看结果。这不是\u0026quot;偷懒\u0026quot;，而是一种更高层次的理解：当你找到了不变量，过程中的细节就变得不重要了。\n第四章：为什么能量守恒如此特别？ 你可能觉得：能量守恒不就是\u0026quot;总量不变\u0026quot;吗？有什么了不起的？\n它的了不起之处，不在于\u0026quot;总量不变\u0026quot;这个事实，而在于这个事实背后的哲学含义：\n在一个不断变化的世界里，存在一个永远不变的量。\n想想这有多惊人。\n宇宙里的一切都在变：星星在燃烧，河流在流淌，生物在生死循环，你的身体每秒有数百万个细胞在死亡和诞生——\n但有一个数字，从宇宙大爆炸到今天，从来没有变过。\n这就是能量。\n守恒量——变化中的锚点 物理学最深刻的追求之一，就是在变化中找到不变量。\n能量守恒——不管发生什么，总能量不变 动量守恒——不管怎么碰撞，总动量不变（下一篇讲） 电荷守恒——不管怎么反应，总电荷不变 角动量守恒——花样滑冰选手收紧手臂就转得更快 每一个守恒量，都是你理解宇宙的一个锚点。世界在变，但这些数字不变。抓住了它们，你就抓住了混乱中的秩序。\n这种思维方式远超物理学：\n会计查账：不管钱怎么转，总额不变 → 如果变了，就是有人做假账 化学反应：不管怎么反应，原子种类和数量不变 编程调试：不管程序怎么跑，某些量应该保持不变（不变量/invariant）——如果变了，就是有 bug 一句话记住： 能量守恒的深意不是\u0026quot;能量不会消失\u0026quot;。它的深意是：在一个一切都在变的宇宙里，物理学找到了永远不变的东西。 找到不变量，就是找到了理解世界的钥匙。\n第五章：连接 AI——损失函数就是能量景观 现在来到最精彩的连接。\n上一篇我们说过：AI 训练就像\u0026quot;球沿山坡滚到谷底\u0026quot;。\n现在你学了能量，就能更精确地理解这句话了：\nAI 的损失函数，就是一个\u0026quot;能量景观\u0026quot;。训练的过程，就是在这个能量景观上寻找能量最低的点。\n物理 AI ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 势能 E(x) 损失函数 L(w) 位置 x 模型参数 w 势能最低点 损失最小 = 最优模型 球沿山坡滚下 梯度下降 球被卡在小坑里 陷入局部最小值 给球一个推力让它跳出小坑 加随机扰动 / 提高学习率 这里有一个物理学给 AI 的直接启发：局部最小值问题。\n过山车在一个小山谷里会停下来——即使远处有更深的山谷。物理上，球被\u0026quot;困\u0026quot;在了势能阱里。\nAI 训练也一样：梯度下降可能找到一个\u0026quot;还不错\u0026quot;的参数（局部最小值），但不是\u0026quot;最好\u0026quot;的参数（全局最小值）。\n怎么逃出局部最小值？物理给出了直觉：\n物理的方法：给球加点能量（推一下），让它跳出小坑 → AI 的做法：加随机噪声（stochastic gradient descent） → 或者：先用大学习率\u0026#34;震荡\u0026#34;，再慢慢减小 → 这个思想直接来自物理学的\u0026#34;模拟退火\u0026#34;（simulated annealing） 模拟退火： 先加热（高温 → 粒子乱跑 → 探索整个景观） 再冷却（低温 → 粒子冻住 → 定型在最低点附近） 和 AI 的训练策略一模一样： 先用大学习率（大步探索） 再用小学习率（精细收敛） Hopfield 网络——物理学家发明的神经网络： 2024 年诺贝尔物理学奖颁给了 John Hopfield 和 Geoffrey Hinton。Hopfield 在 1982 年发明了 Hopfield 网络——他直接把物理学的\"能量函数\"搬到了神经网络里。网络的每个状态对应一个\"能量\"，学习的过程就是让网络滚到能量最低的状态。\n这不是比喻。Hopfield 网络的数学和物理学的自旋玻璃模型完全相同。诺贝尔物理学奖委员会因此认定：神经网络是物理学的分支成果。\n一句话记住： AI 的损失函数 = 物理的能量景观。训练 = 找能量最低点。局部最小值 = 势能阱。模拟退火 = 先加热探索，再冷却定型。物理学不只是 AI 的灵感来源——它是 AI 的数学基础。\n第六章：能量守恒的背后——一个更深的秘密 读到这里，你可能会问：能量守恒\u0026quot;就是这样\u0026quot;吗？它是一条碰巧成立的经验规律，还是有更深层的原因？\n1918 年，一位女数学家证明了一个定理。这个定理说：\n能量守恒不是巧合。它成立，是因为宇宙有一种特殊的对称性。\n什么对称性？哪位数学家？这个定理为什么被称为\u0026quot;理论物理学最美的定理\u0026quot;？\n这些问题，我们留给下一篇。在那里，你将看到：动量守恒、能量守恒、角动量守恒——这三条看似独立的定律，其实是同一个原理的三个表现。\n一句话记住： 能量守恒不是\u0026quot;刚好如此\u0026quot;。它的背后有一个更深的原因——下一篇揭晓。\n本篇小结 这篇文章讲了什么？ 一、宇宙正在走向死亡吗？\n太阳在燃烧，恒星在消亡——但有一个\u0026quot;东西\u0026quot;永远不会消失 一个医生、一个啤酒商、一个物理学家各自独立发现了它 二、动能和势能——运动的能量 vs 位置的能量\n动能 = ½mv²，速度翻倍 → 能量变 4 倍 势能 = mgh，高度越高 → 势能越大 两者可以互相转化，总和不变 三、过山车——能量方法的威力\n不用分析力的细节，只看初态和终态 能量守恒和 F=ma 是同一个物理学的两种视角 四、守恒量——变化世界中的锚点\n能量守恒的深意：在一切都在变的宇宙里，找到了不变的东西 这种思维方式远超物理学 五、损失函数 = 能量景观\nAI 训练 = 在能量景观上寻找最低点 局部最小值 = 势能阱，模拟退火 = 先加热再冷却 2024 诺贝尔奖：Hopfield 网络的数学 = 物理的自旋玻璃模型 六、能量守恒的背后——悬念\n能量守恒不是巧合，它背后有一个更深的原因 下一篇揭晓：对称性 → 守恒律 下一篇预告 上面我们留了一个悬念：能量守恒不是巧合——它背后有一个更深的原因。\n下一篇，我们将揭晓这个原因。一位被纳粹驱逐、被大学拒绝的女数学家，证明了物理学最美的定理：每一条守恒律，都对应宇宙的一种对称性。\n同时，我们将认识另一个守恒量——动量。它在碰撞中比能量更可靠：即使能量变成了热和声音，动量也一焦耳都不会少。\n而在 AI 优化器里，Momentum（动量）是一个关键参数。它让参数更新有了\u0026quot;惯性\u0026quot;，不会被每一步的噪声带跑。这个名字不是比喻——它就是物理动量的直接移植。\n下一篇：看见物理（四）：动量——惯性的力量\n动手实验 亲手体验\u0026quot;能量守恒\u0026quot;和\u0026quot;在能量景观上寻找最低点\u0026quot;：\n# 纯 Python，零依赖 import math # ===== 实验 1：过山车能量守恒 ===== print(\u0026#34;=== 过山车能量守恒 ===\\n\u0026#34;) g = 9.8 m = 1.0 # 质量 1 kg heights = [10, 6, 8, 3, 5] # 轨道上 5 个位置的高度（米） labels = [\u0026#39;A\u0026#39;, \u0026#39;B\u0026#39;, \u0026#39;C\u0026#39;, \u0026#39;D\u0026#39;, \u0026#39;E\u0026#39;] total_E = m * g * heights[0] # 从最高点静止出发 for h, label in zip(heights, labels): PE = m * g * h KE = total_E - PE v = math.sqrt(2 * KE / m) if KE \u0026gt; 0 else 0 print(f\u0026#34; 位置 {label}: 高度={h:4.1f}m 势能={PE:5.1f}J \u0026#34; f\u0026#34;动能={KE:5.1f}J 速度={v:4.1f}m/s \u0026#34; f\u0026#34;总能量={PE+KE:5.1f}J\u0026#34;) print(f\u0026#34;\\n 总能量始终 = {total_E:.1f}J，一焦耳都没少！\u0026#34;) # ===== 实验 2：在能量景观上寻找最低点 ===== print(\u0026#34;\\n=== 能量景观上的梯度下降 ===\u0026#34;) print(\u0026#34;能量函数有多个山谷（局部最小值）\\n\u0026#34;) def energy(x): \u0026#34;\u0026#34;\u0026#34;一个有多个谷底的能量景观\u0026#34;\u0026#34;\u0026#34; return 0.05*(x-1)**2 * (x-5)**2 + 0.8*math.sin(2*x) + 3 def gradient(x): dx = 0.0001 return (energy(x+dx) - energy(x-dx)) / (2*dx) # 从不同起点出发，看看会落入哪个谷底 for start in [0.0, 3.0, 7.0]: x = start lr = 0.05 for step in range(200): grad = gradient(x) x = x - lr * grad print(f\u0026#34; 起点 x={start:.1f} → 最终 x={x:.2f}, \u0026#34; f\u0026#34;能量={energy(x):.3f} \u0026#34; f\u0026#34;{\u0026#39;← 全局最低！\u0026#39; if energy(x) \u0026lt; 2.5 else \u0026#39;← 局部最小值（被困住了）\u0026#39;}\u0026#34;) print(f\u0026#34;\\n 不同起点 → 不同谷底。\u0026#34;) print(f\u0026#34; 这就是AI训练的核心难题：怎么避免被困在局部最小值。\u0026#34;) 延伸阅读 Feynman Lectures on Physics, Vol. 1, Ch. 4: Conservation of Energy ——费曼用\u0026quot;丹尼斯和他妈妈的积木\u0026quot;比喻讲能量守恒，经典中的经典 《时间简史》 ——霍金，能量守恒与宇宙起源的关系 Emmy Noether 的故事 ——数学家中的传奇，值得每个学生了解 Hopfield, 1982, \u0026ldquo;Neural networks and physical systems with emergent collective computational abilities\u0026rdquo; ——物理学家发明神经网络的原始论文 《看见物理》系列 — 从运动到世界模型，看见物理之美。\n本文首发于「AI 学习笔记」博客：https://Jason-Azure.github.io/ai-blog/\n微信公众号：AI-lab学习笔记\n系列文章完整列表见 标签：看见物理\n","permalink":"https://jason-azure.github.io/ai-blog/posts/see-physics-3-energy/","summary":"能量守恒不只是一条物理定律——它是一种思维方式：在一个不断变化的世界里，找到那个永远不变的东西。而 AI 的训练过程，本质上就是在一片「能量景观」上寻找最低点。","title":"看见物理（三）：能量——不灭的守恒量"},{"content":"一个让人害怕的字母 你翻开任何一本 AI 教科书，十页之内一定会遇到它：\n$$e^x$$\n然后是 Softmax 公式：\n$$\\text{softmax}(z_i) = \\frac{e^{z_i}}{\\sum_j e^{z_j}}$$\n再然后是学习率衰减：\n$$\\eta_t = \\eta_0 \\cdot e^{-\\lambda t}$$\n你合上书。\u0026ldquo;e 到底是什么？为什么到处都是它？\u0026rdquo;\n大多数人对 e 的记忆停留在高中课堂——老师说\u0026quot;e 大约等于 2.71828，是自然对数的底数\u0026quot;，然后就开始做题了。\n至于它从哪来、为什么是这个数、为什么自然界选中了它——没人告诉你。\n今天我想把这个故事补上。读完之后，你再看到含 e 的公式，不会害怕，而会觉得——\u0026ldquo;老朋友，又见面了。\u0026rdquo;\n一、从一个银行的问题开始 1690 年，雅各布·伯努利的利息难题 时间回到 17 世纪末。瑞士数学家雅各布·伯努利（Jacob Bernoulli）在研究一个很实际的问题：\n如果银行年利率是 100%，一年后你的钱最多能变成多少？\n听起来简单。1 块钱，年利率 100%，一年后 → 2 块钱。\n但伯努利想得更深：如果银行每半年结算一次，每次利率 50%（年利率 100% 平摊到两个半年），会怎样？\n让我们一步步推导 第一步：一年结算一次\n年利率 100%，一年后：1 × (1 + 1) = 2 块钱。简单。\n第二步：半年结算一次\n年利率 100% 平摊到两个半年 → 每半年利率 = 100%/2 = 50%。\n第 1 个半年结束：1 × (1 + 0.5) = 1.5 元 第 2 个半年结束：1.5 × (1 + 0.5) = 2.25 元 比一年结算多赚了 0.25 元！这多出来的钱，就是\u0026quot;利息的利息\u0026quot;——第一个半年赚的 0.5 元利息，在第二个半年也参与了计息。\n用公式写出来：1 × (1 + 1/2)² = 2.25\n第三步：看出规律\n如果把一年切成 n 段，每段利率就是 100%/n = 1/n，一年结束后：\n$$\\text{总额} = 1 \\times \\left(1 + \\frac{1}{n}\\right)^n$$\n逻辑很清楚：每段利率变小了（分母 n 越大，1/n 越小），但计息次数变多了（指数 n 越大）。两股力量在博弈。那谁赢？\n复利实验：把一年切成 n 段 n（切分次数） 每段利率 公式 一年后总额 ────────────────────────────────────────────────────────── 1（年结） 100% (1 + 1/1)¹ = 2.000000 2（半年结） 50% (1 + 1/2)² = 2.250000 4（季结） 25% (1 + 1/4)⁴ = 2.441406 12（月结） 8.33% (1 + 1/12)¹² = 2.613035 52（周结） 1.92% (1 + 1/52)⁵² = 2.692597 365（日结） 0.274% (1 + 1/365)³⁶⁵ = 2.714567 8760（时结） 0.0114% (1 + 1/8760)⁸⁷⁶⁰ = 2.718127 ∞（连续复利） → 0 (1 + 1/∞)^∞ = 2.718281... 你发现了一件奇妙的事：\n切分越细，利息的利息的利息……层层叠加，总额不断增长——但它不是无限增长的。两股力量博弈的结果是：增长收敛到一个数字，然后停住了。\n这个数字就是 e ≈ 2.71828182845904523536…\ne 的诞生 $$e = \\lim_{n \\to \\infty} \\left(1 + \\frac{1}{n}\\right)^n = 2.71828\u0026hellip;$$\ne 就是「连续复利」的极限——当你把增长切到无限细碎，利滚利滚利……最终收敛到的那个数。\n不是\u0026quot;利率越高增长越多\u0026quot;这么简单——是**\u0026ldquo;计息越频繁，利息的利息越多，但多出来的部分越来越小\u0026rdquo;**，最终总和有一个天花板。这个天花板就是 e。\n伯努利没有给它命名。半个世纪后，莱昂哈德·欧拉（Leonhard Euler）用自己名字的首字母 e 来称呼它——从此这个数字有了名字。\n一句话记住： e 不是人造的。它是\u0026quot;连续增长\u0026quot;本身的数学指纹。只要世界上存在\u0026quot;一边增长，一边把增长的部分也算进去\u0026quot;的过程，e 就会出现。\n二、e 的第一个秘密——它是\u0026quot;自然变化\u0026quot;的速率 一条神奇的曲线 让我们画一条曲线：y = eˣ。\neˣ 的值 x eˣ ──────────────── -2 0.135 -1 0.368 0 1.000 ← e⁰ = 1，任何数的 0 次方都是 1 1 2.718 ← e¹ = e 2 7.389 3 20.086 5 148.413 10 22026.466 这条曲线有什么特别？\n很多函数都能增长。2ˣ 也行，10ˣ 也行。先来看看它们长什么样：\n三条曲线都是指数增长，只是\u0026quot;快慢\u0026quot;不同。但 eˣ 的独特之处不在于它的增长速度，而在于一个惊人的性质：\neˣ 是唯一一个\u0026quot;变化率等于自身\u0026quot;的函数。\n如果 y = eˣ，那么 y 的导数（变化率）= eˣ = y 本身。\n$$\\frac{d}{dx} e^x = e^x$$\n用大白话说：eˣ 在每一个点的「增长速度」，恰好等于它在那个点的「当前值」。\n下面这张动图让你\u0026quot;看见\u0026quot;这件事——红色切线的斜率（增长速度），始终等于蓝色曲线在那个点的高度（当前值）：\n这意味着什么？\n当 eˣ = 1 时，它的增长速度 = 1 当 eˣ = 100 时，它的增长速度 = 100 当 eˣ = 一百万时，它的增长速度 = 一百万 你越大，你增长得越快。增长速度永远和你自身成正比。\n这不是人为设计的。在所有可能的指数底数中——2、3、10、π——只有 e 拥有这个性质。这就是为什么数学家叫它\u0026quot;自然常数\u0026quot;：它不是某个天才发明的，而是自然界自己选出来的。\n所有指数函数，都是 eˣ 的\u0026quot;变速版\u0026quot; 你可能会问：那 2ˣ 和 10ˣ 跟 eˣ 到底是什么关系？\n答案出奇的简单——它们都可以写成 eˣ 乘以一个常数：\n万能转换公式：任何指数 = e 的指数 $$a^x = e^{x \\cdot \\ln(a)}$$\n也就是说：\n2ˣ = e^(x × 0.693) ← ln(2) ≈ 0.693 3ˣ = e^(x × 1.099) ← ln(3) ≈ 1.099 eˣ = e^(x × 1.000) ← ln(e) = 1.000 ← 就是它自己！ 10ˣ = e^(x × 2.303) ← ln(10) ≈ 2.303 所有指数函数，都是 eˣ 的\u0026quot;变速版\u0026quot;——只是把 x 轴拉伸或压缩了。\n2ˣ 是 eˣ 的\u0026quot;慢放版\u0026quot;（乘以 0.693，增长变慢） 10ˣ 是 eˣ 的\u0026quot;快进版\u0026quot;（乘以 2.303，增长加快） eˣ 是\u0026quot;原速版\u0026quot;（乘以 1，最干净） 这就是为什么在数学和物理中，所有指数增长的公式都写成 eᵏᵗ 而不是 2ᵏᵗ——用 e 做底数，指数上的 k 直接就是增长速率，不需要额外换算。\n一句话总结： 高中学的 2ˣ、10ˣ 不白学——它们都是 eˣ 的特殊情况。学会了 eˣ，你就掌握了所有指数函数的\u0026quot;母体\u0026quot;。\n如果你读过 《看见数学（七）：指数爆炸》，你已经感受过指数增长的威力——一张纸对折 42 次就能到达月球。那篇用的是 2ˣ。现在你知道了：2ˣ = e^(0.693x)——它只是 eˣ 的慢放版。e 才是所有指数的\u0026quot;母体\u0026quot;。\n三、为什么自然界到处都是 e 因为自然界到处都有\u0026quot;与自身成正比的变化\u0026quot; 一旦你知道 eˣ 的导数等于自身，你就明白了为什么 e 无处不在——因为自然界的大量现象，都服从同一条规律：\n变化的速率，与当前的状态成正比。\ne 出没的地方 领域 现象 为什么是 e 金融 复利增长 利息与本金成正比 → 本金越多，利息越多 生物 细菌繁殖 分裂速度与现有数量成正比 物理 放射性衰变 衰变速度与当前原子数成正比 化学 反应速率 速率与反应物浓度成正比 医学 药物代谢 排出速率与血液浓度成正比 工程 电容充放电 电流与电压差成正比 社交 病毒传播（初期） 感染速度与已感染人数成正比 所有这些现象的数学描述，都长成同一个样子：\n$$\\frac{dy}{dt} = k \\cdot y$$\n——变化率等于某个常数 k 乘以当前值 y。\n这个方程的解是：\n$$y(t) = y_0 \\cdot e^{kt}$$\nk \u0026gt; 0：指数增长（细菌繁殖、复利） k \u0026lt; 0：指数衰减（放射性衰变、药物代谢） 不管是增长还是衰减，e 都在那里。因为 e 就是\u0026quot;与自身成正比的变化\u0026quot;的数学签名。\n四、中国古人的 e 直觉 你可能以为 e 是纯粹的西方数学。但中国古人早就感受到了 e 背后的规律。\n庄子·天下篇：\n\u0026ldquo;一尺之棰，日取其半，万世不竭。\u0026rdquo;\n一根一尺的木棍，每天取走一半。永远取不完。\n这就是指数衰减：y = (1/2)ⁿ。而连续版本正是 y = e^{-kt}。\n庄子在两千多年前触摸到的\u0026quot;无穷递减但永不到零\u0026quot;的直觉——正是 e 的衰减曲线。\n\u0026ldquo;利滚利\u0026rdquo;——中国民间对复利的精准描述。\n古代放贷者的\u0026quot;驴打滚\u0026quot;，大明律专门立法限制的高利贷，本质上就是 (1 + r/n)ⁿ → eʳ 的现实版本。\n老百姓不认识 e，但他们的痛苦是真实的——因为 e 的威力不需要你理解它，它就在那里运作。\n五、e 进入 AI——Softmax 的秘密 现在，让我们把 e 带进你最关心的领域：AI。\nLLM 的最后一步 在 《LLM 中的概率论》 里，我们详细拆解过：LLM 预测下一个词时，最后一步是 Softmax。但那篇文章没有细讲一个问题：\nSoftmax 里为什么用 e？为什么不用 2 或 10？\n让我们从头来过。\nLLM 的倒数第二层输出一组\u0026quot;分数\u0026quot;（叫 logits），比如预测下一个词时：\n词语 logits（原始分数） ───────────────────────── \u0026#34;的\u0026#34; 3.2 \u0026#34;了\u0026#34; 1.8 \u0026#34;在\u0026#34; 0.5 \u0026#34;猫\u0026#34; -1.0 这些分数有正有负，大小不一。我们需要把它们转换成概率——每个数在 0 到 1 之间，总和为 1。\nSoftmax 公式就是这个转换器：\n$$P(词_i) = \\frac{e^{z_i}}{\\sum_j e^{z_j}}$$\n来算一下：\nSoftmax 手算示例 词语 logit z e^z 概率 P ──────────────────────────────────────── \u0026#34;的\u0026#34; 3.2 e^3.2 = 24.53 24.53/28.08 = 87.4% \u0026#34;了\u0026#34; 1.8 e^1.8 = 6.05 6.05/28.08 = 21.5% \u0026#34;在\u0026#34; 0.5 e^0.5 = 1.65 1.65/28.08 = 5.9% \u0026#34;猫\u0026#34; -1.0 e^-1 = 0.37 0.37/28.08 = 1.3% ────── 总和 = 32.60 ≈ 100% 三个为什么 为什么不用简单的比例？ 比如直接用 z/Σz？\n因为 logits 可以是负数。-1.0 除以总和会产生负概率——概率不能为负。\n为什么不用 z²（先平方消除负号）？\n因为平方会让 -3 和 +3 得到相同的概率。但 -3 和 +3 的含义完全不同——一个是\u0026quot;非常不可能\u0026quot;，一个是\u0026quot;非常可能\u0026quot;。\n为什么偏偏是 eˣ？\neˣ 做 Softmax 的四个优势 永远为正：不管 x 是多少（包括负数），eˣ \u0026gt; 0。完美解决负概率问题。\n保序：x 越大，eˣ 越大。原来分数高的词，转换后概率依然高。\n放大差异：eˣ 是指数函数，把微小的分数差距放大成明显的概率差距。logit 差 1.4（3.2 vs 1.8），概率差 4 倍（87% vs 22%）。\n求导最干净：因为 d(eˣ)/dx = eˣ，Softmax 的梯度表达式极其简洁——这让反向传播的计算效率最高。\n第 4 点是工程上最关键的。如果用 2ˣ 或 10ˣ，求导时会多出一个 ln(2) 或 ln(10) 的常数因子，让梯度传播变得不那么\u0026quot;干净\u0026quot;。而 eˣ 的导数就是自己——数学最简洁的形式，往往就是自然选中的形式。\n如果你读过 《交叉熵损失函数》，你会记得损失函数里有一个 -log(p)。而 Softmax 里有 eˣ。log 和 eˣ 互为逆运算——一个把概率变成\u0026quot;信息量\u0026quot;，一个把\u0026quot;分数\u0026quot;变成概率。它们是同一枚硬币的两面。Shannon 在 1948 年选择了 log，AI 研究者在 Softmax 中选择了 e——这不是巧合，是同一条数学暗线的两个端点。\n六、e 在 AI 训练中的第二个角色——学习率衰减 如果说 Softmax 是 e 在\u0026quot;推理\u0026quot;阶段的表演，那学习率衰减就是 e 在\u0026quot;训练\u0026quot;阶段的表演。\n为什么学习率要衰减？ 训练神经网络就像在一片山地里找最低点（损失函数最小值）。\n训练初期：你在高山上，方向大致正确，步子要大，快速下山。 训练后期：你已经到了谷底附近，步子要小——否则会在最低点两侧来回跳跃，永远停不下来。 这就是学习率衰减：让每一步的大小随时间减小。\n最经典的衰减方式：指数衰减 $$\\eta_t = \\eta_0 \\cdot e^{-\\lambda t}$$\nη₀ = 初始学习率（比如 0.01） λ = 衰减速率 t = 当前训练步数 指数衰减的学习率 训练步数 学习率 η (λ=0.001) ────────────────────────────── 0 0.01000 ← 初始，大步走 100 0.00905 500 0.00607 1000 0.00368 ← 不到原来的 1/3 2000 0.00135 5000 0.00007 ← 几乎是微调了 10000 0.00000454 ← 极精细的打磨 为什么用 e⁻ˡᵗ 而不是直接除以 t？\n因为 e 的衰减有一个完美的性质：每经过相同的时间间隔，学习率变为原来的相同比例。\n$$\\frac{\\eta_{t+\\Delta t}}{\\eta_t} = e^{-\\lambda \\Delta t} = \\text{常数}$$\n这就是\u0026quot;半衰期\u0026quot;思维。放射性衰变中，铀-238 的半衰期是 45 亿年——不管你是从 100 克开始还是从 1 克开始，经过 45 亿年都会变成一半。学习率也一样：衰减的\u0026quot;节奏\u0026quot;是均匀的。\n还记得庄子的\u0026quot;日取其半\u0026quot;吗？学习率的指数衰减，就是\u0026quot;日取其半\u0026quot;的连续版本——每一步都取走一点点，但永远不会到零。\n七、e 的更多面孔 e 在 AI 中还有更多化身，它们可能你已经在其他文章中遇到过：\ne 在 AI 中的七个化身 # 出现位置 公式 它在做什么 1 Softmax eᶻⁱ / Σeᶻʲ 把分数变成概率 2 交叉熵损失 -log(p) = -ln(p) 衡量预测的\u0026quot;惊讶程度\u0026quot;（ln = logₑ） 3 学习率衰减 η₀·e⁻ˡᵗ 让训练步伐越来越精细 4 Sigmoid 激活 1/(1+e⁻ˣ) 把任意数压缩到 0~1 之间 5 正态分布 (1/√2π)·e^(-x²/2) 自然界的\u0026quot;默认概率分布\u0026quot; 6 注意力权重 softmax(QKᵀ/√d) Transformer 里计算\u0026quot;关注度\u0026quot; 7 温度参数 eᶻⁱ/ᵀ / Σeᶻʲ/ᵀ 控制生成的\u0026quot;创造力\u0026quot;——T大→平均，T小→尖锐 你看出规律了吗？\n每当 AI 需要做以下任何一件事时，e 就会出现：\n把任意数变成正数 → eˣ 把任意数变成概率 → Softmax（基于 eˣ） 计算信息量 → log（eˣ 的逆运算） 描述自然衰减 → e⁻ˣ 描述钟形分布 → e^(-x²) 这些看似不同的需求，数学上都指向同一个函数。不是 AI 研究者偏爱 e——是 e 恰好是所有这些需求的唯一解。\n八、Sigmoid——e 的一个优美变形 让我单独讲讲 Sigmoid，因为它是理解 e 在 AI 中角色的一个绝佳窗口。\n$$\\sigma(x) = \\frac{1}{1 + e^{-x}}$$\nSigmoid 函数的行为 x e⁻ˣ 1+e⁻ˣ σ(x) ───────────────────────────────────── -5 148.41 149.41 0.007 ← 几乎是 0 -2 7.39 8.39 0.119 -1 2.72 3.72 0.269 0 1.00 2.00 0.500 ← 正好 50% 1 0.37 1.37 0.731 2 0.14 1.14 0.881 5 0.01 1.01 0.993 ← 几乎是 1 Sigmoid 做了一件精妙的事：它把整条数轴（从 -∞ 到 +∞）\u0026ldquo;压缩\u0026quot;到 0 和 1 之间。\n极大的正数 → 接近 1 极大的负数 → 接近 0 0 → 正好 0.5 这个形状被早期 AI 研究者用来模拟神经元的\u0026quot;激活\u0026rdquo;——输入超过阈值就激活（→1），低于阈值就沉默（→0），中间地带有一个平滑的过渡。\n如果你读过 《激活函数》，你知道后来 ReLU 因为计算更快而取代了 Sigmoid 成为主流。但在需要输出概率的场合（比如二分类问题），Sigmoid 依然不可替代——因为它把 e 的指数特性和概率的 0~1 范围完美结合。\nSigmoid 本质上就是\u0026quot;二选一的 Softmax\u0026quot;——Softmax 是多选题版本，Sigmoid 是判断题版本。\n九、e 和 π 的一次意外相遇——正态分布 数学中有一个让所有人都感到不可思议的公式。\n正态分布（高斯分布）的概率密度函数：\n$$f(x) = \\frac{1}{\\sqrt{2\\pi}} \\cdot e^{-\\frac{x^2}{2}}$$\ne 和 π 同时出现了。\n一个来自复利极限（e），一个来自圆的周长（π）。它们看起来毫不相关——一个和\u0026quot;增长\u0026quot;有关，一个和\u0026quot;形状\u0026quot;有关。但它们在正态分布里不期而遇。\n为什么？\ne^(-x²/2) 负责创造钟形曲线的\u0026quot;形状\u0026quot;——离中心越远衰减越快 1/√(2π) 负责让曲线下面积等于 1——因为概率总和必须是 1 而 π 出现在这里，是因为 e^(-x²) 从 -∞ 到 +∞ 的积分恰好等于 √π。这是一个深刻的数学事实，高斯当年用极坐标变换证明了它——圆（π 的领地）和指数衰减（e 的领地）在高维积分中相遇。\n在 《看见数学（十三）：概率》 里我们讨论了概率论。在 《LLM 中的概率论》 里我们讨论了 LLM 的采样。正态分布在 AI 中无处不在——权重初始化是正态分布，噪声是正态分布，Batch Normalization 假设每层输出近似正态分布。e 和 π 的这次相遇，是 AI 数学根基中最深的那一层。\n十、欧拉公式——最美的方程 说到 e 和 π 的相遇，就不得不提数学史上公认的\u0026quot;最美方程\u0026quot;：\n欧拉恒等式 $$e^{i\\pi} + 1 = 0$$\n五个最基本的数学常数——e、i、π、1、0——在一个方程里相遇。\ne (2.718…)：连续变化的签名 i (√-1)：虚数，\u0026ldquo;不存在\u0026quot;的数 π (3.14159…)：圆的签名 1：乘法的基石 0：加法的基石 物理学家费曼第一次看到这个公式时说：\u0026ldquo;如果这个公式不美，那没有什么是美的。\u0026rdquo;\n它为什么重要？不只是因为它美。它背后的更一般形式——欧拉公式 e^(iθ) = cos(θ) + i·sin(θ)——直接连接了指数函数和三角函数。\n这意味着：增长和振荡，在数学的最深处是同一件事。\n你在 《看见数学（八）：圆与波》 里见过三角函数描述波动。你在本文里见过 e 描述增长和衰减。欧拉公式说：它们是同一枚硬币的两面。\n这个统一性在 AI 中有实际用途——Transformer 的位置编码（Positional Encoding）用的就是 sin 和 cos 函数，而它们的数学本质正是 e^(iθ)。\n十一、把 e 的故事拉回原点 让我们从银行的复利开始，走了一条很长的路。回头看看：\ne 的一生 1690 伯努利发现连续复利的极限 → 2.71828... 1728 欧拉命名为 e，发现 d(eˣ)/dx = eˣ 1748 欧拉公式 e^(iπ) + 1 = 0 1809 高斯用 e^(-x²) 定义正态分布 1948 Shannon 用 log（e 的逆运算）定义信息 1986 反向传播算法依赖 Sigmoid = 1/(1+e⁻ˣ) 2017 Transformer 的 Softmax = eˣ/Σeˣ 2026 每一个 LLM 的每一次预测，都在用 e 一个数字，跨越三百多年，从银行家的利息表走进了人工智能的核心。\n这不是因为 AI 研究者对 e 有偏爱。是因为 e 捕捉了自然界最基本的规律：变化的速率与当前状态成正比。 银行的利息是这样，细菌的繁殖是这样，放射性的衰变是这样，神经网络的学习也是这样。\n十二、祛魅——从此不再害怕 最后，让我把你可能在 AI 论文里遇到的含 e 公式列一个\u0026quot;翻译表\u0026rdquo;：\ne 公式翻译表——从此看到 e 不用怕 公式 翻译成人话 eˣ \u0026ldquo;x 越大，我越大，而且增长越来越快\u0026rdquo; e⁻ˣ \u0026ldquo;x 越大，我越小，但永远不会到零\u0026rdquo; eˣ/Σeˣ (Softmax) \u0026ldquo;把一组分数变成概率分布\u0026rdquo; 1/(1+e⁻ˣ) (Sigmoid) \u0026ldquo;把任意数压缩到 0~1 之间\u0026rdquo; -ln(p) (信息量) \u0026ldquo;概率越小，惊讶程度越大\u0026rdquo;（ln = logₑ） η₀·e⁻ˡᵗ \u0026ldquo;学习步伐随时间平滑地变小\u0026rdquo; e^(-x²/2) (高斯) \u0026ldquo;离中心越远的值，出现概率越低\u0026rdquo; e^(iθ) \u0026ldquo;增长和旋转其实是同一件事\u0026rdquo; 下次你在论文里看到 e，不要急着合上书。\n问自己一个问题：\u0026ldquo;这里的变化，是不是和当前状态成正比？\u0026rdquo;\n如果是——那 e 出现在这里就是理所当然的，就像水往低处流一样自然。\n它不是故意刁难你的符号。它是自然界在告诉你：\u0026ldquo;这里有一种连续的、与自身成正比的变化。\u0026rdquo;\n就这么简单。\n参考与延伸 历史文献\nBernoulli, J. (1690). 关于复利极限的最早研究，记录于 Ars Conjectandi (1713 出版) Euler, L. (1748). Introductio in analysin infinitorum. 系统建立了 e 的理论体系 Shannon, C. E. (1948). A Mathematical Theory of Communication. Bell System Technical Journal, 27(3), 379-423. 用 log（e 的逆运算）定义了信息量 博客相关文章\n看见数学（七）：指数爆炸——人脑理解不了的增长 — 指数增长的直觉 交叉熵损失函数：从信息论到 -log(p) — log 和 e 的互逆关系 LLM 中的概率论：从掷骰子到生成文本 — Softmax 和温度参数 看见数学（番外）：信息论——从电报到 GPT 的一条暗线 — Shannon 与压缩即智能 看见数学（八）：圆与波——三角函数的真面目 — e^(iθ) 与三角函数的统一 AI 的数学语言（五）：激活函数 — Sigmoid vs ReLU Shannon 没有想到的事——当信息论遇上有限算力 — 信息论的前沿延伸 ","permalink":"https://jason-azure.github.io/ai-blog/posts/eulers-e/","summary":"2.71828… 这个数字出现在银行复利、放射性衰变、人口增长、Softmax 函数、学习率衰减里。它不是人造的常数——它是自然界「连续变化」的签名。读完这篇，你再看到 e 不会害怕，而会觉得亲切。","title":"欧拉的 e——一个数字如何同时出现在复利、衰变和神经网络里"},{"content":"一个牧师的未完成论文 1761 年，英国小镇滕布里奇韦尔斯（Tunbridge Wells），一位 59 岁的长老会牧师去世了。\n他叫托马斯·贝叶斯（Thomas Bayes）。\n他的一生平平无奇——在一个小教堂布道，偶尔研究数学，没有发表过什么重要论文。去世后，他的朋友理查德·普莱斯（Richard Price）在整理遗物时发现了一篇未完成的手稿。\n普莱斯读完后意识到：这篇手稿可能改变人类理解世界的方式。\n1763 年，普莱斯把这篇遗稿整理发表在英国皇家学会的 Philosophical Transactions 上。标题很朴素：\u0026ldquo;An Essay towards solving a Problem in the Doctrine of Chances\u0026rdquo;——《论解决概率论中一个问题的尝试》。\n263 年后，这篇论文里的核心思想成了 GPT、BERT、Stable Diffusion 等所有现代 AI 的数学骨架之一。\n贝叶斯没有想到的事：他为了解决赌博问题推导的公式，最终教会了机器如何学习。\n一、一个反直觉的问题 在讲贝叶斯定理之前，让我先给你出一道题。\n医学检测悖论 有一种罕见病，每 1000 人中只有 1 人患病（患病率 0.1%）。\n现在有一种检测方法，准确率很高：\n如果你真的有病，检测显示阳性的概率是 99%（灵敏度） 如果你没有病，检测显示阴性的概率是 99%（特异度） 你去检测，结果显示阳性。\n问：你真正患病的概率是多少？\n大多数人的第一反应：\u0026ldquo;99%！检测那么准！\u0026rdquo;\n直觉告诉你几乎一定患病了。\n但正确答案是：大约 9%。\n你没有看错。即使检测准确率高达 99%，阳性结果只意味着你有大约 十分之一 的概率真正患病。\n为什么？让我们算一算。\n算给你看：10000 人中发生了什么 10000 人参加检测 │ ├── 10 人真有病（患病率 0.1%） │ ├── 9.9 人 → 检测阳性（真阳性，灵敏度 99%） │ └── 0.1 人 → 检测阴性（漏诊） │ └── 9990 人没有病 ├── 99.9 人 → 检测阳性（假阳性，误报率 1%） └── 9890.1 人 → 检测阴性（正确排除） 所有阳性结果 = 9.9 + 99.9 = 109.8 人 其中真正患病的 = 9.9 人 真正患病的概率 = 9.9 / 109.8 ≈ 9.0% 关键洞察： 虽然假阳性率只有 1%，但因为没病的人（9990 人）远远多于有病的人（10 人），1% 的 9990 人（≈100 人）仍然远超真正患病的 10 人。\n你的直觉出了什么问题？\n你忽略了一个关键信息——患病率本身就很低（0.1%）。在你做检测之前，你患病的概率就已经很低了。检测阳性只是在这个很低的基础上\u0026quot;升级\u0026quot;了概率，但没有把它翻转到 99%。\n这就是贝叶斯定理要解决的核心问题：当你获得新证据时，你原来的信念应该怎样更新？\n二、贝叶斯定理——六个字就够了 贝叶斯定理 $$P(A|B) = \\frac{P(B|A) \\cdot P(A)}{P(B)}$$\n翻译成人话：\n$$\\text{新信念} = \\frac{\\text{证据的力量} \\times \\text{旧信念}}{\\text{证据本身有多常见}}$$\n用一个生活场景，把三个角色讲透 公式看起来吓人，但其实你每天都在用它——只是你的大脑自动帮你算了。让我用一个例子把三个角色讲清楚。\n场景：早上醒来，你听到窗外有\u0026quot;哗哗\u0026quot;的声音。外面在下雨吗？\n三个角色，一个故事 ① 先验（Prior）—— 在听到声音之前，你觉得下雨的可能性有多大？\n你昨晚看了天气预报，说今天晴天。所以你心里觉得：\u0026ldquo;下雨大概 10% 的可能吧。\u0026rdquo;\n这就是先验——在看到任何证据之前，你根据已有知识做出的判断。\n② 似然（Likelihood）—— 如果真的在下雨，你听到\u0026quot;哗哗\u0026quot;声的可能性有多大？\n如果外面真的在下雨，你听到哗哗声的概率很高——比如 90%（也有可能雨很小你听不到）。\n但注意：如果外面没下雨，你也可能听到哗哗声——邻居在浇花、楼上在洗车，概率大约 20%。\n似然衡量的是：如果这件事为真，那我看到的证据有多合理？\n③ 后验（Posterior）—— 综合考虑后，下雨的概率是多少？\n$$P(\\text{下雨}|\\text{哗哗声}) = \\frac{P(\\text{哗哗声}|\\text{下雨}) \\times P(\\text{下雨})}{P(\\text{哗哗声})} = \\frac{0.9 \\times 0.1}{0.9 \\times 0.1 + 0.2 \\times 0.9} = \\frac{0.09}{0.27} = 33%$$\n从 10% 升到了 33%——证据（哗哗声）把你的信念从 10% 拉高到了 33%，但没有拉到 90%。因为你的先验（天气预报说晴天）在拉着另一头。\n关键直觉： 后验 = 先验和似然的\u0026quot;拔河\u0026quot;结果。如果先验很强（天气预报非常准），证据需要很强才能推翻它。如果先验很弱（你对天气一无所知），一点点证据就能主导你的信念。\n这就是为什么医学检测的例子让人惊讶——先验太低了（0.1%），即使似然很高（99%），后验也只有 9%。先验在拔河中占了上风。\n贝叶斯公式的四个角色 让我把每个部分正式拆开：\n贝叶斯公式的四个角色 符号 名称 医学检测的例子 直觉解释 P(A) 先验概率 (Prior) 患病率 = 0.1% 在看到任何证据之前，你对 A 的信念 P(B|A) 似然 (Likelihood) 有病→检测阳性 = 99% 如果 A 为真，看到证据 B 的可能性 P(B) 边际概率 (Evidence) 总体阳性率 ≈ 1.1% 不管 A 是否为真，看到 B 的概率 P(A|B) 后验概率 (Posterior) 阳性→真患病 ≈ 9% 看到证据 B 之后，对 A 的更新信念 用医学检测验证：\n$$P(\\text{患病}|\\text{阳性}) = \\frac{P(\\text{阳性}|\\text{患病}) \\times P(\\text{患病})}{P(\\text{阳性})} = \\frac{0.99 \\times 0.001}{0.011} ≈ 0.09 = 9%$$\n完美吻合。\n贝叶斯更新：每一条新证据都在\u0026quot;调焦\u0026quot; 贝叶斯定理最强大的地方在于：它可以反复使用。上一轮的后验，变成下一轮的先验——你的信念在一条条新证据的推动下，越来越精确。\n上面这张动图展示了一个简单的例子：你有一枚硬币，不知道它是否公平。一开始你什么都不知道（平坦的先验），然后每次抛硬币得到新数据——每多看到一条证据，你的信念分布就从\u0026quot;宽而平\u0026quot;变得\u0026quot;窄而尖\u0026quot;，越来越确定硬币的真实偏向。\n这个过程就像相机调焦——一开始画面模糊（高不确定性），每一条新证据都在拧动对焦环，画面逐渐清晰。\n但贝叶斯定理的深意不在这个计算——它在于它描述了一种思维方式：\n带着旧知识（先验），拥抱新证据（似然），更新你的信念（后验）。\n这六个字——先验 × 似然 → 后验——就是贝叶斯定理的全部。\n三、贝叶斯 vs 频率学派——一场 260 年的战争 贝叶斯发表论文后的两百多年里，统计学界分裂为两个阵营：\n两种概率观 频率学派 (Frequentist) 贝叶斯学派 (Bayesian) 概率是什么 事件在大量重复中的频率 对事件的信念程度 \u0026ldquo;这枚硬币正面朝上的概率是 50%\u0026ldquo;意味着 如果抛无穷多次，正面出现的比例趋近 50% 我相信正面和反面一样可能 参数是什么 一个固定的未知常数 一个随证据更新的随机变量 核心方法 最大似然估计 (MLE) 后验推断 对先验知识 排斥——\u0026ldquo;主观的东西不应该出现在科学中\u0026rdquo; 拥抱——\u0026ldquo;不用先验知识才是浪费\u0026rdquo; 代表人物 Fisher, Neyman, Pearson Bayes, Laplace, Jaynes 这场争论持续了两个多世纪。频率学派长期占据主流——因为\u0026quot;主观先验\u0026quot;听起来不够科学。\n但从 2010 年代开始，深度学习的崛起悄悄改变了一切。\n因为 AI 做的事情，本质上就是贝叶斯更新。\n四、AI 训练 = 贝叶斯更新 这是本文最重要的一节。\n先验 = 预训练 GPT 在互联网文本上训练了万亿个 token。训练完成后，它的几十亿个权重（参数）中存储了\u0026quot;世界知识\u0026rdquo;——语法规则、常识推理、文学典故、科学事实……\n这些知识就是先验——在看到你的具体问题之前，模型已经\u0026quot;相信\u0026quot;的东西。\n$$\\text{预训练后的权重} = P(\\theta) = \\text{先验分布}$$\n似然 = 新数据 当你用特定领域的数据微调模型时（比如医学文献、法律条文、你公司的内部文档），你给了模型新的证据。\n$$\\text{领域数据} = P(D|\\theta) = \\text{似然函数}$$\n似然函数说的是：\u0026ldquo;如果模型的参数是 θ，那它生成这些新数据的概率有多大？\u0026rdquo;\n后验 = 微调后的模型 微调的目标是找到一组参数，让模型既保留预训练的通用知识，又适应新领域：\n$$P(\\theta|D) = \\frac{P(D|\\theta) \\cdot P(\\theta)}{P(D)}$$\n$$\\text{微调后的模型} = \\frac{\\text{新数据对参数的要求} \\times \\text{预训练知识}}{\\text{归一化常数}}$$\nAI 训练的贝叶斯本质 贝叶斯公式 AI 训练流程 ───────────────────────────────────────────── 先验 P(θ) ←→ 预训练权重（万亿 token 的通用知识） 似然 P(D|θ) ←→ 微调数据（领域/任务专用数据） 后验 P(θ|D) ←→ 微调后的模型 ───────────────────────────────────────────── 先验 × 似然 → 后验 预训练 + 微调 → 专业模型 这不是比喻。这是数学等价。\n你可能会说：\u0026ldquo;等等，实际训练中没人在算贝叶斯公式啊，用的不是 SGD（随机梯度下降）吗？\u0026rdquo;\n没错。实际的训练算法不是直接计算后验分布——因为参数空间太大，精确贝叶斯推断在计算上不可行。SGD 是一种近似方法。但这种近似在数学上可以被理解为贝叶斯推断的一种特殊情况。\n尤其是当训练加入了正则化（L2 regularization / weight decay）——\n$$\\text{Loss} = \\text{交叉熵} + \\lambda \\sum \\theta_i^2$$\n这个正则化项的概率解释，恰好是给参数加了一个高斯先验：\n$$P(\\theta) = \\mathcal{N}(0, \\sigma^2) \\propto e^{-\\frac{\\theta^2}{2\\sigma^2}}$$\n——倾向于认为参数应该接近零（简单模型），不要太极端。\n正则化 = 先验。 当你给损失函数加一个惩罚项来防止过拟合时，你其实是在说：\u0026ldquo;我先验地相信简单的模型更可能是对的。\u0026ldquo;这就是奥卡姆剃刀的数学表达。\n五、In-Context Learning——贝叶斯定理的实时版 2020 年 GPT-3 论文中最惊人的发现不是模型有多大，而是一个叫 In-Context Learning (ICL) 的现象：\n你不需要微调模型。只要在 prompt 里给几个例子，模型就能\u0026quot;学会\u0026quot;新任务。\n比如：\n输入：happy → 快乐 输入：sad → 悲伤 输入：beautiful → ？ 输出：美丽 你没有改变模型的任何参数。但它\u0026quot;学会\u0026quot;了翻译。\n这件事用贝叶斯框架看，清晰得惊人：\nIn-Context Learning 的贝叶斯解释 预训练知识（先验）: 模型知道英语和中文 模型知道\u0026#34;翻译\u0026#34;是一种可能的任务 模型见过大量翻译的例子 Prompt 中的例子（似然/证据）: happy → 快乐 ← \u0026#34;这看起来像翻译任务\u0026#34; sad → 悲伤 ← \u0026#34;而且是英译中\u0026#34; 贝叶斯更新（后验）: P(任务=英译中 | 看到的例子) → 非常高 所以 beautiful → 美丽 2023 年，Xie 等人在论文 \u0026ldquo;An Explanation of In-context Learning as Implicit Bayesian Inference\u0026rdquo; 中严格证明了：Transformer 在做 In-Context Learning 时，其内部计算过程在数学上等价于贝叶斯推断。\n每多看一个 example，模型就做一次隐式的贝叶斯更新——把\u0026quot;这是什么任务\u0026quot;的后验概率变得更尖锐、更确定。\n这和你的大脑做的事情一模一样。当你走进一个陌生城市，看到第一个路牌是中文，你就开始假设这可能是中国。看到第二个中文路牌，假设变得更强。看到第三个——你已经非常确定了。你没有\u0026quot;重新训练\u0026quot;大脑，但你的信念更新了。\n六、大语言模型的每一步预测，都是贝叶斯 让我把这个连接推得更远。\nLLM 生成文本的过程——逐个预测下一个 token——本身就是贝叶斯过程。\n$$P(w_{t+1} | w_1, w_2, \u0026hellip;, w_t)$$\n先验：模型在预训练中学到的语言规律（语法、语义、世界知识） 似然：前面已经生成的 token 提供的上下文信息 后验：在给定所有上下文后，下一个 token 的概率分布 每生成一个新 token，上下文就增长一位，\u0026ldquo;证据\u0026quot;就多一条——模型对后续内容的预测就更精确。\n文本生成 = 逐步贝叶斯更新 [开始] 先验分布很\u0026#34;宽\u0026#34;——下一个词可能是任何东西 \u0026#34;今天\u0026#34; 后验更新 → 大概率跟时间/天气/事件有关 \u0026#34;今天天气\u0026#34; 后验更新 → 几乎一定是天气描述 \u0026#34;今天天气真\u0026#34; 后验更新 → \u0026#34;好\u0026#34;的概率最高，\u0026#34;差\u0026#34;次之，\u0026#34;冷\u0026#34;也有可能 \u0026#34;今天天气真好\u0026#34; ✓ 后验最高概率的那个词被选中 每一步都是：旧信念（先验）+ 新证据（最新 token）→ 更新信念（后验）\n如果你读过 《LLM 中的概率论》，你已经知道 LLM 的核心是预测下一个词的概率分布。现在你知道了：这个概率分布的数学本质，就是贝叶斯后验。\n七、贝叶斯与 Shannon——两条暗线的交汇 如果你读过 《Shannon 没有想到的事》 和 《信息论——从电报到 GPT 的一条暗线》，你可能已经隐约感觉到了——\n贝叶斯和 Shannon 讲的是同一件事的两个面。\nShannon vs Bayes：同一枚硬币的两面 Shannon (信息论) Bayes (概率论) 核心问题 数据能被压缩到多短？ 证据如何改变信念？ 核心概念 熵 H = -Σ p·log(p) 后验 P(A|B) = P(B|A)·P(A)/P(B) 训练目标 最小化交叉熵（尽可能好地压缩数据） 最大化后验概率（找到最合理的参数） 对 LLM 的解释 LLM 是一个压缩器 LLM 是一个贝叶斯推理机 对预训练的解释 压缩互联网文本的规律 从数据中提取先验知识 对过拟合的解释 记住了噪声，压缩效率下降 似然压过了先验，信念太极端 事实上，交叉熵损失函数的数学推导可以从两条路走到同一个终点：\nShannon 路径：最小化预测分布和真实分布之间的 KL 散度 → 交叉熵 Bayes 路径：最大化数据的对数似然 → 交叉熵的负数 $$\\text{最小化交叉熵} \\equiv \\text{最大化对数似然} \\equiv \\text{贝叶斯推断的近似}$$\n在 《交叉熵损失函数》 中，我们从 Shannon 的公理出发推导了 -log(p)。现在你从另一个角度看到了同一个公式——-log(p) 既是\u0026quot;惊讶程度\u0026rdquo;（Shannon 视角），也是\u0026quot;数据反对当前模型的力度\u0026rdquo;（Bayes 视角）。\nShannon 告诉你\u0026quot;压缩即理解\u0026rdquo;。Bayes 告诉你\u0026quot;更新即学习\u0026rdquo;。LLM 同时在做这两件事。\n八、我们的大脑也是贝叶斯机器 贝叶斯定理不只是 AI 的理论工具——越来越多的神经科学研究表明，人类的大脑也在用贝叶斯推断来感知世界。\n视觉错觉：你的大脑在做贝叶斯 看过那些经典的视觉错觉图吗？两条一样长的线段，加上不同方向的箭头，你就觉得一条长一条短（Müller-Lyer 错觉）。\n为什么？因为你的大脑不是在\u0026quot;看\u0026quot;——它是在做推断：\n视网膜收到的光信号（似然） + 过去的视觉经验（先验） → 你\u0026#34;看到\u0026#34;的画面（后验） 你的大脑根据过去的经验（先验）\u0026ldquo;预期\u0026quot;带向外箭头的线段更远、因此更长。即使光信号告诉你它们一样长，先验的力量仍然影响了你的感知。\n视觉错觉，本质上是你的先验在某些特殊情况下压过了似然。\n语言理解：同样是贝叶斯 当你听到一句模糊的话——比如在嘈杂的酒吧里有人说了一句话，你只听清了 70%——你的大脑怎么\u0026quot;补全\u0026quot;剩下的 30%？\n听到的声音片段（似然） + 语言知识和上下文（先验） → 你理解的句子（后验） 这就是为什么在中文环境里，即使你只听到\u0026quot;今天天\u0026hellip;\u0026quot;，大脑就已经在预测\u0026quot;气\u0026quot;或\u0026quot;是\u0026rdquo;。\nLLM 的下一个 token 预测，和你的大脑在做完全相同的事。\nKarl Friston（自由能原理的提出者）走得更远。他认为大脑的所有功能——感知、行动、学习、计划——都可以用一个统一的贝叶斯框架来描述：大脑在不断地最小化\u0026quot;预测误差\u0026quot;（自由能），而这在数学上等价于贝叶斯推断。这个理论叫做 Predictive Processing，目前是认知科学最具影响力的框架之一。\n九、贝叶斯的\u0026quot;不可能\u0026quot;——计算困难 如果贝叶斯推断这么好，为什么不直接用？\n因为精确的贝叶斯推断在高维空间中是计算地狱。\n为什么精确贝叶斯推断不可行 贝叶斯定理的分母是：\n$$P(D) = \\int P(D|\\theta) \\cdot P(\\theta) , d\\theta$$\n这意味着你要对所有可能的参数组合求积分。\nGPT-2 有 1.5 亿个参数 GPT-3 有 1750 亿个参数 GPT-4 估计有超过 1 万亿个参数 在 1750 亿维空间里做积分？这比宇宙中原子的数量还要大不知道多少个数量级。\n所以，整个深度学习的历史，就是一部\u0026quot;近似贝叶斯推断\u0026quot;的历史：\n方法 贝叶斯解释 近似方式 SGD (随机梯度下降) 寻找最大后验估计 (MAP) 只找后验的峰值，忽略分布形状 Dropout 模型平均 随机丢弃神经元 ≈ 对大量不同模型求平均 L2 正则化 高斯先验 假设参数服从正态分布 Ensemble 后验采样 训练多个模型，投票 变分推断 (VI) 用简单分布逼近后验 把\u0026quot;求积分\u0026quot;变成\u0026quot;求优化\u0026quot; MCMC 从后验中采样 随机游走探索参数空间 你在深度学习中见过的几乎所有\u0026quot;技巧\u0026quot;——正则化、Dropout、学习率调度、Ensemble——都有一个贝叶斯解释。\n这不是巧合。这些技巧之所以有效，正是因为它们在不同程度上近似了正确的贝叶斯推断。\n十、RLHF——贝叶斯更新的最新化身 如果你读过 《DeepSeek-R1：一个模型如何学会思考》，你知道现代 LLM 训练有三个阶段：\n预训练 (Pre-training) → 有监督微调 (SFT) → 人类反馈强化学习 (RLHF) 用贝叶斯的眼光看：\n三阶段训练 = 三次贝叶斯更新 第一次更新：预训练 先验：随机初始化的权重（一无所知） 似然：万亿 token 的互联网文本 后验：通用语言模型（\u0026#34;会说话\u0026#34;但不一定好用） 第二次更新：有监督微调 (SFT) 先验：预训练后的模型 似然：人类标注的高质量问答对 后验：对话模型（\u0026#34;知道怎么回答问题\u0026#34;） 第三次更新：RLHF 先验：SFT 后的模型 似然：人类偏好数据（\u0026#34;这个回答比那个好\u0026#34;） 后验：对齐后的模型（\u0026#34;不仅会回答，还知道什么是好回答\u0026#34;） 每一个阶段都是同一个故事：旧知识（先验）+ 新证据（似然）→ 更新的模型（后验）。\n贝叶斯定理像一条暗流，从 1763 年的牧师遗稿，流过 263 年的统计学争论，最终流入了 2026 年全球每天被使用数十亿次的 AI 系统的核心。\n十一、贝叶斯没有想到的三件事 回到标题。贝叶斯推导公式时，他没有想到——\n第一件：他的公式适用于一切学习 贝叶斯只是想解决一个赌博问题——知道一些观测结果，推断骰子是不是公平的。他不知道同一个公式可以描述：\n婴儿学习语言 科学家检验假说 医生诊断疾病 AI 理解世界 贝叶斯定理不是一个概率公式。它是一个学习公式。\n第二件：先验不是偏见，是智慧 在贝叶斯被争议了两百年的历史中，最大的批评是：\u0026ldquo;先验是主观的，不科学。\u0026rdquo;\n但 AI 的发展证明了：先验是最珍贵的东西。\n没有先验的模型（随机初始化）什么都不会。预训练就是在积累先验。一个\u0026quot;有偏见\u0026quot;的模型（对世界有预期的模型）远比一个\u0026quot;无知\u0026quot;的模型强。\n关键不在于有没有先验，而在于先验是不是合理的，以及你是否愿意根据新证据更新它。\n这不也是做人的道理吗？\n第三件：他的公式会成为 AI 的第一性原理 2026 年，当你向 ChatGPT 提问时：\n它的预训练知识是先验 你的prompt是新证据 它的回答是后验 每一次对话，都是一次贝叶斯更新。\n一个 1761 年去世的英国牧师，用一篇未完成的遗稿，为 263 年后全球最强大的技术写下了第一性原理。\n他不知道。但数学知道。\n十二、一句话总结 贝叶斯定理的终极启示 学习，就是带着你已经知道的东西，拥抱你刚刚看到的证据，然后更新你的信念。\n这是贝叶斯定理说的。\n这是 AI 在做的。\n这也是你每天在做的。\n$$P(\\text{新信念}|\\text{新证据}) = \\frac{P(\\text{新证据}|\\text{旧信念}) \\cdot P(\\text{旧信念})}{P(\\text{新证据})}$$\n参考与延伸 原始文献\nBayes, T. (1763). An Essay towards solving a Problem in the Doctrine of Chances. Philosophical Transactions of the Royal Society, 53, 370-418. [由 Richard Price 整理发表的遗稿] Laplace, P.-S. (1774). Mémoire sur la probabilité des causes par les événements. 独立重新发现并推广了贝叶斯定理 Jaynes, E. T. (2003). Probability Theory: The Logic of Science. Cambridge University Press. 贝叶斯学派的集大成之作 AI 中的贝叶斯\nXie, S. M. et al. (2022). An Explanation of In-context Learning as Implicit Bayesian Inference. ICLR 2022. 证明了 Transformer 的 ICL 等价于贝叶斯推断 Wilson, A. G. \u0026amp; Izmailov, P. (2020). Bayesian Deep Learning and a Probabilistic Perspective of Generalization. NeurIPS 2020. SGD 的贝叶斯解释 Friston, K. (2010). The free-energy principle: a unified brain theory? Nature Reviews Neuroscience. 大脑作为贝叶斯机器 博客相关文章\nShannon 没有想到的事——当信息论遇上有限算力 — 信息论的另一条暗线 看见数学（番外）：信息论——从电报到 GPT 的一条暗线 — 压缩 = 预测 = 理解 交叉熵损失函数：从 -log(p) 的完整推导 — 贝叶斯视角的损失函数 LLM 中的概率论：从掷骰子到生成文本 — 概率论基础 看见数学（十三）：概率——拥抱不确定 — 概率的直觉 DeepSeek-R1：一个模型如何学会思考 — RLHF 与对齐 欧拉的 e——一个数字如何同时出现在复利、衰变和神经网络里 — e 在 Softmax 和损失函数中的角色 知识蒸馏——当模型学会偷师 — 另一种知识传递方式 ","permalink":"https://jason-azure.github.io/ai-blog/posts/bayes-not-expected/","summary":"1763 年，一个英国牧师的遗稿里藏着一条公式。263 年后，这条公式成了 GPT 训练的数学骨架：先验 = 预训练，似然 = 数据，后验 = 微调。贝叶斯定理不只是一个公式——它是一种「带着旧知识拥抱新证据」的思维方式。而这正是 AI 学习的方式。","title":"贝叶斯没有想到的事——一个牧师的赌博公式，如何成为 AI 的第一性原理"},{"content":"上一篇回顾 能量守恒告诉我们：在一个不断变化的世界里，存在一个永远不变的量。\n我们用能量的视角重新理解了 AI 训练——损失函数就是能量景观，训练就是在能量景观上寻找最低点。\n但我们留了两个钩子：\n还有另一个守恒量，在很多场景下比能量更好用。 它就是动量。 能量守恒不是巧合——它背后有一个更深的原因。 这一篇揭晓。 系列导航\n▹ 第一篇：运动——世界从\"动\"开始 ▹ 第二篇：力——看不见的手 ▹ 第三篇：能量——不灭的守恒量 ▸ 第四篇（本文）：动量——惯性的力量 ▹ 第五篇：熵——承认无知的勇气 第一章：碰撞——物理学最古老的实验 先给你一个让人头皮发麻的事实：\n你每走一步，地球都在向反方向微微移动。\n这不是比喻。你的脚蹬地面向前走，根据牛顿第三定律，地面也在推你。但反过来——你也在推地球。你向前走一步，地球就向后退一点。\n只是地球的质量是你的 10²³ 倍。所以地球被你推动的距离，大约是一个原子核直径的十亿分之一。\n但它确实动了。\n这个事实背后的原理，就是今天要讲的——动量守恒。\n现在来看一个更日常的场景。\n你在台球桌上，白球撞上了红球。白球停了，红球飞走了。\n白球的\u0026quot;运动\u0026quot;去哪了？\n上一篇你已经知道了——能量守恒。白球的动能传给了红球。\n但这里有个微妙的问题：能量只告诉你\u0026quot;总量不变\u0026quot;，它不告诉你方向。\n想象两辆一模一样的车迎面相撞，速度相同。碰撞后两辆车都停了。\n碰撞前：车 A → 60 km/h 车 B ← 60 km/h 碰撞后：车 A 停 车 B 停 动能去哪了？变成了热、声音、车身变形。 能量守恒？✓（动能 → 热能 + 声能 + 变形能） 但还有一个量也守恒了——而且它告诉你更多信息。 这个量就是动量（momentum）。\n一句话记住： 能量只告诉你\u0026quot;总量不变\u0026quot;。动量不仅告诉你\u0026quot;总量不变\u0026quot;，还告诉你方向。\n第二章：动量——质量乘以速度 动量的定义极其简单：\n$$p = mv$$\n翻译成人话：动量 = 质量 × 速度。\n但注意——速度是有方向的（物理学里叫\u0026quot;矢量\u0026quot;），所以动量也有方向。\n一个乒乓球（3 克）以 40 m/s 飞过来： 动量 = 0.003 × 40 = 0.12 kg·m/s → 你用手一挡就停了 一个保龄球（7 公斤）以 5 m/s 滚过来： 动量 = 7 × 5 = 35 kg·m/s → 你挡不住，手会被砸 保龄球的速度是乒乓球的 1/8，但动量是乒乓球的 300 倍。 动量 = 质量 × 速度。重的东西，即使慢，动量也大。 这就是\u0026#34;惯性的力量\u0026#34;——重的东西很难停下来。 动量 vs 动能：不一样的守恒 动量 p = mv 动能 E = ½mv² 有没有方向？ 有（矢量） 没有（标量） 碰撞中守恒？ 总是守恒 不一定（可以变成热） 速度的权重 线性（v） 平方（v²） 一个惊人的事实： 在碰撞中，动能可能损失（变成热和声音），但动量永远不会损失。\n这就是为什么动量在很多场景下比能量更有用。\n第三章：动量守恒——碰撞中不变的量 动量守恒定律说的是：\n如果没有外力作用，一个系统的总动量永远不变。\n来看最经典的例子——两球碰撞：\n碰撞前： 球 A：m=2kg, v=3m/s → 动量 = 2×3 = +6 球 B：m=3kg, v=0 动量 = 3×0 = 0 总动量 = 6 kg·m/s 碰撞后： 球 A 减速，球 B 被撞飞 不管怎么撞——弹性碰撞、非弹性碰撞、完全粘在一起—— 总动量 = 6 kg·m/s ← 一点都没变！ 碰撞中能量可能损失（变成热和声音），但动量不会。 再看一个更有趣的例子——火箭发射：\n火箭怎么在真空中前进？没有空气可以\u0026#34;推\u0026#34;。 答案：动量守恒。 发射前：总动量 = 0（火箭静止） 发射后： 燃气高速向后喷出 → 动量向后 火箭必须向前飞 → 动量向前 总动量 = 0 ← 还是零！ 火箭不是\u0026#34;推空气\u0026#34;前进的。 它是把一部分质量（燃气）高速向后扔出去， 自己获得了等量的、向前的动量。 这和你站在冰面上扔保龄球完全一样—— 你扔球向前，你自己就会向后滑。 一句话记住： 动量守恒不需要\u0026quot;碰到什么东西\u0026quot;。只要没有外力，不管内部发生什么（碰撞、爆炸、分裂），总动量不变。\n牛顿摆——为什么只弹起一个球？\n办公桌上常见的「牛顿摆」：五个钢球排成一排，拉起一个球松手，撞击后只有另一端的一个球弹起。为什么不是两个球以一半的速度弹起？\n因为必须同时满足动量守恒和能量守恒。\n如果两个球以一半速度弹起：动量 = 2m × v/2 = mv ✓ 但动能 = 2 × ½m(v/2)² = ¼mv² ✗（只有原来的一半！能量不守恒）\n唯一同时满足两个守恒律的解：一个球以原速弹起。动量和能量缺一不可——它们联手决定了碰撞的结局。\n第四章：为什么动量守恒？——诺特定理揭晓 上一篇我们留了一个悬念：能量守恒不是巧合，它背后有一个更深的原因。\n现在是揭晓的时刻。\n1918 年，女数学家 Emmy Noether（艾米·诺特）证明了一个定理，它被称为理论物理学最美的定理：\n每一条守恒律，都对应一种对称性。\n什么意思？\n时间对称性 → 能量守恒 （物理规律今天适用，明天也适用 → 能量守恒） 空间对称性 → 动量守恒 （物理规律在这里适用，在那里也适用 → 动量守恒） 旋转对称性 → 角动量守恒 （物理规律不管朝哪个方向都一样 → 角动量守恒） 这不是三条独立的定律。它们是同一个原理（诺特定理）的三个表现。\n想想这有多震撼。能量守恒成立，不是因为\u0026quot;碰巧如此\u0026quot;——而是因为宇宙的物理定律不随时间改变。如果明天的物理定律和今天不一样，能量就不守恒了。\n同样，动量守恒成立，是因为物理定律不因地点而异。在北京做实验和在纽约做实验，物理定律一模一样。这件事看起来理所当然，但它的数学后果是：动量守恒。\n想象一下：如果宇宙的物理定律在不同地方是不同的—— 在客厅里 F=ma 在厨房里 F=2ma 在卧室里 F=0.5ma 那你从客厅推一个球到厨房，球的行为就会突然改变。 动量就不守恒了。 但物理定律不会因为你换了个房间而改变。 在地球上 F=ma，在火星上也是 F=ma。 在银河系这头和那头，物理定律一模一样。 这种空间的均匀性 → 动量守恒。 对称性 → 守恒律：物理学最深刻的联系 时间对称性（今天 = 明天） → 能量守恒 空间对称性（这里 = 那里） → 动量守恒 旋转对称性（这个方向 = 那个方向） → 角动量守恒 守恒律不是\u0026quot;凑巧成立\u0026quot;的经验。它们成立，是因为宇宙有对称性。\n如果某天我们发现某个守恒律被打破了——那意味着宇宙的某种对称性被打破了。这将是物理学的地震。\nEmmy Noether 的故事 诺特是 20 世纪最伟大的数学家之一，但因为是女性，她在哥廷根大学长期不能获得正式教职。希尔伯特（当时最著名的数学家）愤怒地说：\u0026ldquo;我不明白候选人的性别怎么能成为反对她成为教授的理由。毕竟，这是大学，不是澡堂。\u0026rdquo;\n她最终还是被纳粹驱逐到了美国。1935 年去世时只有 53 岁。\n爱因斯坦在她的讣告中写道：\u0026ldquo;诺特是自女性接受高等教育以来，最重要的有创造力的数学天才。\u0026rdquo;\n一个被大学拒绝、被国家驱逐的人，证明了物理学最美的定理。\n一句话记住： 守恒律不是\u0026quot;刚好如此\u0026quot;的经验总结。每一条守恒律的背后，都是宇宙的一种对称性。能量守恒 ← 时间对称，动量守恒 ← 空间对称。这是物理学最深层的美。\n第五章：连接 AI——Momentum 优化器 现在来到最精彩的连接。\nAI 训练中，最基本的优化算法是梯度下降（SGD）。但纯粹的梯度下降有一个大问题：\n它没有\u0026quot;记忆\u0026quot;——每一步只看当前这一步的梯度。\n想象你在一个窄长的峡谷里找出路。纯 SGD 就像一个失忆的人：每一步只看脚下最陡的方向，然后迈一步。结果他在峡谷两壁之间来回弹跳，却沿峡谷方向前进得极慢。\n怎么解决？物理学家给了答案：给它加上动量。\n核心直觉只需要一句话：\n一个重的保龄球沿峡谷滚动时，不会被路上的小坑带偏。因为它有惯性——过去的运动会延续。\n这就是 Momentum 优化器的全部精髓。它\u0026quot;记住\u0026quot;了过去的方向，不会被单步的噪声和随机波动牵着鼻子走。\n普通 SGD： 每一步只看当前梯度 → 容易被噪声带偏 Momentum SGD： 每一步 = 90% 的历史方向 + 10% 的当前梯度 → 方向稳定，不来回弹跳 就像保龄球 vs 乒乓球： 保龄球沿峡谷稳稳滚到终点（Momentum） 乒乓球在峡谷里乱飞（纯 SGD） 效果是什么？\n在峡谷里不再来回弹跳： 横向的震荡互相抵消，纵向的前进持续积累——像一个重球沿峡谷方向稳定滚动 不容易被噪声带偏： 单步噪声只占很小的权重，历史动量占了大头——小干扰影响不大 从 Momentum 到 Adam——AI 优化的进化 物理动量给了 AI 优化的第一次飞跃。但故事没有结束：\nSGD → 每步只看当前梯度（失忆的人） SGD + Momentum → 加上\u0026#34;惯性\u0026#34;（记住过去的方向） Adam (2014) → 动量 + 自适应学习率（聪明的保龄球） Adam 不仅记住了方向（像 Momentum），还会自动调整步幅：路平坦的地方迈大步，路颠簸的地方迈小步。它的名字来自 \u0026ldquo;Adaptive Moment Estimation\u0026rdquo;——\u0026ldquo;moment\u0026quot;就是物理学里的\u0026quot;矩\u0026rdquo;。\nAdam 论文（Kingma \u0026amp; Ba, 2014）至今被引用超过 20 万次，是深度学习领域被引用最多的论文之一。它的核心思想——用动量来稳定优化过程——直接来自物理学。\n公式细节？留给动手实验部分，你可以亲手跑一遍 SGD 和 Momentum 的对比。\n一句话记住： AI 优化器里的 Momentum 不是比喻。它就是物理动量的直接移植：重的球不容易被小坑带偏。从 SGD 到 Momentum 到 Adam，物理学的动量概念贯穿始终。\n第六章：惠更斯和莱布尼茨——一场争了半个世纪的辩论 在收官之前，讲一个串联第三篇和第四篇的故事。\n17 世纪，物理学家们对一个问题吵得不可开交：\n\u0026ldquo;运动的真正度量\u0026quot;到底是什么？\n一派以惠更斯（Christiaan Huygens）为代表，他说：碰撞前后守恒的量是 mv（质量乘以速度）——这就是动量。惠更斯是第一个正确表述动量守恒的人。他用碰撞实验反复验证：不管两个球怎么撞，碰前碰后的 mv 总和不变。\n另一派以莱布尼茨（Gottfried Wilhelm Leibniz）为代表，他说：不对！真正守恒的量应该是 mv²（质量乘以速度的平方）——他管这叫 \u0026ldquo;vis viva\u0026rdquo;（活力）。这就是动能的前身。\n惠更斯：运动的真正度量 = mv（动量） 莱布尼茨：运动的真正度量 = mv²（活力 ≈ 动能） 两派各执一词，争论了将近半个世纪。 谁对了？\n两个人都对了。\nmv 和 mv² 是两个不同的守恒量，它们在不同的场景下各有各的用处：\n动量（mv）：在碰撞中永远守恒，而且有方向 动能（½mv²）：在弹性碰撞中守恒，但在非弹性碰撞中会变成热 一场\"错误的战争\"： 惠更斯和莱布尼茨争的不是\"谁对谁错\"，而是\"哪个量才是'最基本的'\"——这个问题本身就问错了。自然界不会只用一把尺子来衡量运动。动量和动能是运动的两副面孔，缺一不可。\n这个故事完美呼应了第三篇（能量）和第四篇（动量）的关系：它们不是竞争，而是互补。就像牛顿摆告诉我们的——只有同时满足动量守恒和能量守恒，才能解出碰撞的最终结局。\n一句话记住： 惠更斯说动量守恒，莱布尼茨说动能守恒。争了半个世纪，发现两人都对。自然界用两把尺子衡量运动——少一把都不行。\n第七章：牛顿的遗产——从第一幕到第二幕 这是第一幕的最后一篇。让我们回顾一下整个旅程：\n第一篇（运动）：伽利略教我们——不问\u0026#34;为什么动\u0026#34;，问\u0026#34;怎么动\u0026#34; → AI 的梯度 = \u0026#34;变化的速度\u0026#34; 第二篇（力）： 牛顿用 F=ma 统一天上地下 → AI 的梯度下降 = \u0026#34;力驱动的运动\u0026#34; 第三篇（能量）：能量守恒 = 变化中找不变量 → AI 的损失函数 = 能量景观 第四篇（动量）：动量守恒 + 诺特定理 = 对称性的力量 → AI 的 Momentum 优化器 = 物理动量的移植 四篇文章，一条线索：牛顿建立的确定性世界观。\n在这个世界里，一切都是可预测的。给我初始条件和力的公式，我就能算出任何时刻的状态。F=ma 是一部\u0026quot;宇宙计算器\u0026rdquo;。\n但这个世界观有一个致命的问题。\n想象一杯热水。里面有大约 10²⁵ 个水分子。每个分子都遵守 F=ma。原则上，如果你知道每个分子的位置和速度，你就能预测整杯水的未来。\n但你不可能知道 10²⁵ 个分子的位置和速度。\n牛顿力学在面对\u0026quot;太多粒子\u0026quot;时彻底失效了——不是理论错了，而是无法使用。\n怎么办？\n物理学做了一个惊人的选择：放弃追踪每一个粒子，转而用统计的方法描述整体。\n这就是第二幕的开始：从确定的世界，走向不确定的世界。\n这和 AI 走过的路完全一样：\n早期 AI（1950-80年代）试图用规则系统精确编程每一条知识——就像牛顿试图追踪每一个粒子。\n后来人们发现这条路走不通：世界太复杂了，规则太多了。\n于是 AI 做了和物理学一样的选择：放弃精确规则，转向统计学习。\n机器学习 = 从数据中找统计规律。和热力学 = 从分子混乱中找统计规律，一模一样。\n下一篇，我们将进入物理学的第二次认知革命——热力学。在那里，\u0026ldquo;承认无知\u0026quot;不是失败，而是一种更深刻的智慧。\n本篇小结 这篇文章讲了什么？ 一、碰撞——动量的起源\n你走路时地球在向反方向微微移动——这就是动量守恒 能量只告诉你\u0026quot;总量不变\u0026rdquo;，动量还告诉你方向 碰撞中动能可以损失，但动量永远守恒 二、p = mv——质量乘以速度\n动量是矢量（有方向），动能是标量（没方向） 重的东西即使慢，动量也大——\u0026ldquo;惯性的力量\u0026rdquo; 三、动量守恒——比能量守恒更基本\n没有外力，总动量永远不变 火箭不是\u0026quot;推空气\u0026quot;前进，是动量守恒的结果 牛顿摆：必须同时满足动量守恒 + 能量守恒 四、诺特定理——守恒律背后是对称性\n空间对称性（这里 = 那里）→ 动量守恒 Emmy Noether 的故事：被大学拒绝的女数学家，证明了物理学最美的定理 守恒律不是经验总结，是宇宙对称性的数学后果 五、AI 的 Momentum 优化器\n核心直觉：重的球不容易被小坑带偏 加上 Momentum：积累历史方向，给参数更新加\u0026quot;惯性\u0026quot; Adam = Momentum + 自适应学习率，目前最常用 六、惠更斯 vs 莱布尼茨——争了半世纪\n动量和动能是运动的两副面孔，缺一不可 第三篇（能量）和第四篇（动量）的完美呼应 七、第一幕收官\n牛顿的确定性世界在 10²⁵ 个粒子面前崩溃 物理学的选择：放弃精确，转向统计 → 第二幕开始 下一篇预告 一杯热水放在桌上，它会慢慢变凉。\n为什么不会反过来——从周围空气里\u0026quot;吸收\u0026quot;热量，自己变得更热？\n能量守恒并不禁止这件事。从热的地方到冷的地方转移热量，和从冷的地方到热的地方转移热量，总能量都不变。\n但它就是不会发生。\n这个问题困扰了物理学家一百年，直到一种叫熵的概念被发明出来。\n熵解释了为什么时间有方向——为什么碎了的鸡蛋不会自己复原，为什么热水不会自己变更热，为什么混在一起的牛奶不会自己和咖啡分开。\n更神奇的是：克劳修斯在 1865 年发明的热力学熵，香农在 1948 年重新发现并改名叫\u0026quot;信息熵\u0026quot;，然后 AI 用它做了\u0026quot;交叉熵损失函数\u0026quot;。\n同一个概念，三次转生。从蒸汽机到电报到 ChatGPT。\n下一篇：看见物理（五）：热与分子——承认无知\n动手实验 亲手体验\u0026quot;动量守恒\u0026quot;和\u0026quot;Momentum 优化器 vs 普通 SGD\u0026quot;：\n# 纯 Python，零依赖 import math # ===== 实验 1：碰撞中的动量守恒 ===== print(\u0026#34;=== 碰撞中的动量守恒 ===\\n\u0026#34;) # 一维弹性碰撞公式 def elastic_collision(m1, v1, m2, v2): v1_new = ((m1 - m2) * v1 + 2 * m2 * v2) / (m1 + m2) v2_new = ((m2 - m1) * v2 + 2 * m1 * v1) / (m1 + m2) return v1_new, v2_new cases = [ (\u0026#34;台球（等质量）\u0026#34;, 1, 3, 1, 0), (\u0026#34;轻撞重\u0026#34;, 1, 3, 10, 0), (\u0026#34;重撞轻\u0026#34;, 10, 3, 1, 0), (\u0026#34;对撞\u0026#34;, 2, 3, 2, -3), ] for name, m1, v1, m2, v2 in cases: v1n, v2n = elastic_collision(m1, v1, m2, v2) p_before = m1*v1 + m2*v2 p_after = m1*v1n + m2*v2n print(f\u0026#34; {name}:\u0026#34;) print(f\u0026#34; 碰前: A({m1}kg, {v1:+.1f}m/s) B({m2}kg, {v2:+.1f}m/s) → 总动量={p_before:+.1f}\u0026#34;) print(f\u0026#34; 碰后: A({m1}kg, {v1n:+.1f}m/s) B({m2}kg, {v2n:+.1f}m/s) → 总动量={p_after:+.1f}\u0026#34;) print(f\u0026#34; 动量守恒 ✓\\n\u0026#34;) # ===== 实验 2：SGD vs Momentum 优化器 ===== print(\u0026#34;=== SGD vs Momentum 优化器 ===\u0026#34;) print(\u0026#34;目标函数: f(x,y) = 0.1x² + 2y²（窄长峡谷）\\n\u0026#34;) def f(x, y): return 0.1 * x**2 + 2 * y**2 def grad_f(x, y): return 0.2 * x, 4.0 * y # 普通 SGD x, y = 5.0, 5.0 lr = 0.12 print(\u0026#34; 普通 SGD:\u0026#34;) for step in range(20): gx, gy = grad_f(x, y) x -= lr * gx y -= lr * gy if step % 4 == 0: print(f\u0026#34; step {step:2d}: ({x:+6.3f}, {y:+6.3f}) loss={f(x,y):.4f}\u0026#34;) print(f\u0026#34; 最终: ({x:+.4f}, {y:+.4f}) loss={f(x,y):.6f}\u0026#34;) # SGD + Momentum x, y = 5.0, 5.0 vx, vy = 0, 0 beta = 0.9 print(f\u0026#34;\\n SGD + Momentum (β={beta}):\u0026#34;) for step in range(20): gx, gy = grad_f(x, y) vx = beta * vx + lr * gx vy = beta * vy + lr * gy x -= vx y -= vy if step % 4 == 0: print(f\u0026#34; step {step:2d}: ({x:+6.3f}, {y:+6.3f}) loss={f(x,y):.4f}\u0026#34;) print(f\u0026#34; 最终: ({x:+.4f}, {y:+.4f}) loss={f(x,y):.6f}\u0026#34;) print(\u0026#34;\\n 对比：Momentum 版本收敛更快、更平滑。\u0026#34;) print(\u0026#34; 在窄长峡谷里，Momentum 不会来回弹跳，而是稳定前进。\u0026#34;) 延伸阅读 Feynman Lectures on Physics, Vol. 1, Ch. 9-10: Momentum ——费曼讲动量守恒和碰撞 Emmy Noether 的故事 ——被大学拒绝、被国家驱逐的女数学家，证明了理论物理学最美的定理 惠更斯 vs 莱布尼茨的\u0026quot;活力之争\u0026quot;（vis viva controversy） ——物理学史上最著名的\u0026quot;两个人都对了\u0026quot;的争论 Kingma \u0026amp; Ba, 2014, \u0026ldquo;Adam: A Method for Stochastic Optimization\u0026rdquo; ——Adam 优化器的原始论文，被引用 20 万+次 Sebastian Ruder, \u0026ldquo;An Overview of Gradient Descent Optimization Algorithms\u0026rdquo; ——各种优化器的直观比较，经典博客文章 《看见物理》系列 — 从运动到世界模型，看见物理之美。\n本文首发于「AI 学习笔记」博客：https://Jason-Azure.github.io/ai-blog/\n微信公众号：AI-lab学习笔记\n系列文章完整列表见 标签：看见物理\n","permalink":"https://jason-azure.github.io/ai-blog/posts/see-physics-4-momentum/","summary":"动量守恒比能量守恒更基本——因为它直接来自空间的对称性。而 AI 优化器里的 Momentum，不是比喻，就是物理动量的直接移植：让参数更新有了\u0026quot;惯性\u0026quot;，不被噪声带跑。","title":"看见物理（四）：动量——惯性的力量"},{"content":"上一篇回顾 动量守恒的根源是空间的平移对称性——宇宙的哪个位置都一样。能量守恒的根源是时间的平移对称性——宇宙的哪个时刻都一样。\nNoether 定理告诉我们：对称即守恒。\n这是一个非常优美的世界图景：对称性藏在一切守恒律的背后，像一张看不见的骨架支撑着所有的物理学。\n但这篇，我们要讲一条打破这种对称美学的定律。\n一条让物理学家爱因斯坦都承认\u0026quot;我相信它是唯一一条永远不会被推翻的普遍定律\u0026quot;的定律。\n一条既粗鲁、又不可逆、又让整个宇宙向着死亡走去的定律。\n热力学第二定律。\n它的核心概念只有一个字——熵。\n系列导航\n▹ 第一篇：运动——世界从\"动\"开始 ▹ 第二篇：力——看不见的手 ▹ 第三篇：能量——不灭的守恒量 ▹ 第四篇：动量——惯性的力量 ▸ 第五篇（本文）：熵——承认无知的勇气 第一章：一台永远造不出来的机器 1824 年，法国。\n一个名叫萨迪·卡诺（Sadi Carnot）的 28 岁工程师，写了一本只有 118 页的小册子：《论火的动力》。\n那是蒸汽机的黄金时代。英国的瓦特已经改良了蒸汽机 60 年，整个欧洲都在为一件事疯狂——如何让蒸汽机的效率再高一点。 煤是钱，蒸汽是钱，每一个百分点的效率都意味着帝国的竞争力。\n工程师们试遍了一切：更大的锅炉、更高的压力、更精密的阀门、更好的润滑。效率在缓慢提升，但似乎永远撞在一堵看不见的墙上。\n卡诺是个理论派。他没有去改阀门，他问了一个完全不同的问题：\n蒸汽机的效率，有没有一个理论上限？\n换句话说：无论工艺多完美，从 100 度的蒸汽里榨取 100 焦耳的热，能变成多少焦耳的功？\n这个问题看起来疯狂——在 1824 年，没有人知道\u0026quot;能量\u0026quot;是什么（焦耳定律要等 15 年），没有人见过\u0026quot;原子\u0026quot;（玻尔兹曼还没出生）。但卡诺凭借纯粹的逻辑推理，得到了一个惊人的结论：\n蒸汽机的最高效率，只取决于热源和冷源的温度差。\n$$ \\eta_{\\max} = 1 - \\frac{T_{\\text{冷}}}{T_{\\text{热}}} $$\n这个公式说了一件非常残酷的事：如果你的冷凝器温度是 20 度（293K），热锅炉是 200 度（473K），无论你怎么设计机器，效率永远不可能超过 38%。 剩下的 62%，必然作为\u0026quot;废热\u0026quot;流入冷凝器，无可挽回。\n你不是技术不行。你是在跟宇宙的法律作对。\n卡诺没有等到他的结论被承认。他 36 岁死于霍乱，论文被埋没了 20 年。直到 1850 年代，一个叫鲁道夫·克劳修斯（Rudolf Clausius）的德国物理学家把卡诺的思想翻译成现代数学语言，这条\u0026quot;宇宙法律\u0026quot;才正式获得它的名字。\n1865 年，克劳修斯造了一个词：\nEntropie。\n希腊词根 τροπή（trope）= 转化。前缀 en- 是模仿\u0026quot;energy（能量）\u0026ldquo;起的。克劳修斯自己解释说：\n\u0026ldquo;我特意让这个新词和 energy 听起来相似——因为这两个量在物理学里是如此密切相关，以至于它们在名字上的相似是恰当的。\u0026rdquo;\n一个新词，一个新概念，一条新定律，写在克劳修斯 1865 年论文的最后两行——那是物理学史上最有名的两句话：\n\u0026ldquo;宇宙的能量是恒定的。\u0026rdquo;\n\u0026ldquo;宇宙的熵趋于极大。\u0026rdquo;\n\u0026ldquo;Die Energie der Welt ist konstant. Die Entropie der Welt strebt einem Maximum zu.\u0026rdquo;\n能量不会消失，但能量会变得越来越没用。\n第二章：时间为什么只有一个方向 牛顿的方程是对称的 回想一下第二篇里牛顿的 F=ma。这条方程有一个非常奇怪的性质：\n它不知道时间是向前还是向后流的。\n把一段台球碰撞的视频倒过来播放——撞散的球回到聚集状态，撞击变成分离。这在牛顿力学里完全合法。每一帧画面都精确满足 F=ma。时间反演之后，方程依然成立。\n能量守恒？也对称。动量守恒？也对称。\n但你的眼睛一秒钟就能看出来这个视频是倒放的。 为什么？\n因为生活里有大量的只朝一个方向走的事情：\n一杯热咖啡放久了会变凉，从来不会自动变热。 一滴墨水滴进水里会扩散，从来不会自己聚成一滴。 一个鸡蛋摔在地上会碎，从来不会自己拼回来。 一张纸烧成灰，从来不会自己变回纸。 每一个单独的分子碰撞都遵守时间对称的牛顿方程。但大量分子聚在一起做统计平均时，时间突然就有了方向。\n这个方向，就是熵增的方向。\n爱丁顿的那句名言 1927 年，英国天体物理学家亚瑟·爱丁顿（Arthur Eddington）写下了物理学史上最有名的一句断言：\n\u0026ldquo;如果你的理论与热力学第二定律不符——对你来说没有别的办法，只能在最深的羞辱中崩塌。\u0026rdquo;\n（If your theory is found to be against the second law of thermodynamics I can give you no hope; there is nothing for it but to collapse in deepest humiliation.）\n他还创造了一个词来形容这件事——时间之箭（the arrow of time）。\n宇宙的钟不是牛顿的钟。牛顿的钟可以正转可以倒转。但热力学的钟只能朝一个方向走：有序 → 无序，集中 → 扩散，能用 → 废掉。\n💡 反直觉的真相 微观定律是时间对称的，宏观现象却不是。 时间之箭不是来自单个粒子的运动方程，它是来自\u0026quot;我们只能看到宏观\u0026quot;这个限制。这不是物理学的缺陷，而是物理学最深的哲学发现之一——时间的方向性，是统计的方向性。\n这就引出了一个巨大的问题：\n如果牛顿方程不管方向，那\u0026quot;熵\u0026quot;到底是什么？它是一个真实的物理量，还是只是我们看世界的方式？\n1877 年，一个维也纳人给出了答案。\n第三章：玻尔兹曼的翻译 （本节内容在 《玻尔兹曼的遗产》 里有完整展开，这里只做一个必要的回顾。）\n克劳修斯定义的熵是\u0026quot;宏观\u0026quot;的——它是热量 Q 和温度 T 的比值。你可以测量它，但你摸不到它是什么。\n路德维希·玻尔兹曼（Ludwig Boltzmann）做了一件彻底改变物理学的事：他把熵和分子的无序联系起来。\n他说：熵不是什么神秘的能量。熵衡量的是同一个宏观状态，可以对应多少种不同的微观安排。\n🎲 一个扑克的例子 打一手牌，你拿到\u0026quot;同花顺\u0026quot;会尖叫——因为只有极少数的发牌方式能凑成同花顺。\n你拿到\u0026quot;随机的五张散牌\u0026quot;不会尖叫——因为绝大多数的发牌方式都是这样。\n同花顺：低熵（微观安排少）。\n随机散牌：高熵（微观安排多）。\n宇宙\u0026quot;趋向极大熵\u0026quot;——不是因为它主动追求混乱，而是因为混乱的状态比有序的状态多太多了。扑克洗牌洗久了不会洗出同花顺，不是因为同花顺被禁止，而是因为它太稀有。\n玻尔兹曼把这句话写成了一个公式，刻在他的墓碑上：\n$$ S = k \\ln W $$\nS 是熵（宏观） W 是对应的微观状态数（\u0026ldquo;混乱度\u0026rdquo;） k 是玻尔兹曼常数（连接宏观温度和微观分子能量的桥梁） 熵 = 我们对系统微观状态的无知程度。\n宏观上你只知道\u0026quot;这杯咖啡是 80 度\u0026quot;，但在微观上，有无数种分子排布都能产生 80 度的咖啡——你不知道是哪一种。熵衡量的就是这份\u0026quot;不知道\u0026quot;的数量。\n热力学第二定律的深层含义被彻底改写了——它不再是\u0026quot;宇宙必然衰败\u0026quot;，而是：\n宇宙必然从\u0026quot;我们能精确描述的状态\u0026quot;，走向\u0026quot;我们只能统计描述的状态\u0026quot;。\n熵增，就是无知增。\n这是一个哲学上震耳欲聋的转向：一个物理量，竟然是衡量观察者的无知程度的。 它既属于系统，也属于你。\n这种观念在 1877 年太超前了，整整半个世纪之后才有人真正读懂它。\n第四章：麦克斯韦的妖精，和一个 120 年的悖论 就在玻尔兹曼写下 S = k ln W 的那一年之前，1867 年，苏格兰物理学家詹姆斯·克拉克·麦克斯韦（James Clerk Maxwell）在一封信里，发明了一个让物理学家头疼了 120 年的思想实验。\n一个有鬼的盒子 想象一个盒子，中间有一堵隔板，隔板上有一扇小门。盒子的两边都装着温度均匀的气体——意思是：快分子和慢分子均匀混合。\n现在想象有一个小妖精站在门旁边。他有一个超能力：他能看见每一个分子。\n他做这样一件事：\n只要看到快分子从左边冲过来，他就打开门，让它进入右边。 只要看到慢分子从右边冲过来，他就打开门，让它进入左边。 其他的分子，他一律不开门。 过了一会儿会发生什么？\n右边：聚满了快分子 → 温度升高。 左边：只剩慢分子 → 温度降低。 盒子自动从均匀温度变成了一冷一热！\n这意味着什么？意味着你不用做功，就制造了温差。有温差就可以驱动热机，有热机就可以产生无穷的能量。\n这只妖精，打败了热力学第二定律。\n120 年的悖论 麦克斯韦自己没当真——他只是用这个思想实验调皮地暗示：第二定律是统计的，不是绝对的。\n但一代代物理学家不服气。如果第二定律真的是宇宙的铁律，那它必须能解释为什么这只妖精是不可能的。\n1929 年，匈牙利物理学家利奥·西拉德（Leo Szilard）——后来说服爱因斯坦签曼哈顿计划那封信的人——迈出了第一步。他说：妖精要做决定，必须获取信息（知道哪个分子是快的）。获取信息本身就要消耗能量。\n但真正的答案，要等到 1961 年。\nLandauer 原理：信息是物理的 1961 年，IBM 研究员罗尔夫·兰道尔（Rolf Landauer）证明了一件惊人的事：\n擦除 1 比特的信息，必然产生至少 $kT \\ln 2$ 的热量。\n这不是工程限制，这是宇宙的法律。\n你想想这件事的震撼之处：\n信息，这个似乎是抽象的东西——书里的字、硬盘上的 0/1、你脑子里的记忆——在物理学上，有实实在在的能量代价。 你电脑里每次 CPU \u0026ldquo;清零一个寄存器\u0026rdquo;，每次你按 delete，都必然向环境释放最小量的热。 Google 的数据中心之所以发热，根本原因不是电子的欧姆损耗——是信息擦除。 回到麦克斯韦的妖精：妖精记住了哪些分子是快的、哪些是慢的。他的大脑（或者记录本）里积累了信息。当他要\u0026quot;重置\u0026quot;这些记忆来继续工作时，他必须擦除。擦除一比特就产生 $kT \\ln 2$ 的热量。这份热量，恰恰等于他通过分拣分子获得的熵减。\n妖精并没有打败第二定律。他只是把热力学的代价，藏进了自己的大脑里。\n🧠 这个发现有多重要？ 兰道尔原理完成了一件物理学家没有意识到他们在等待的事：它把\u0026quot;信息\u0026quot;正式焊进了物理学。 信息不再是抽象概念，它是一个物理量，有能量，有熵。\n物理熵和信息熵，从这一刻起，不再是两样东西。它们是同一样东西的两个名字。\n第五章：三个公式，同一个灵魂 现在我们可以拉一条时间线了。\n1865 · 克劳修斯：热的账本 $$ dS = \\frac{dQ}{T} $$\n熵是热量与温度的比值。关心\u0026quot;蒸汽机能不能造出来\u0026quot;的工程师的语言。\n1877 · 玻尔兹曼：微观的翻译 $$ S = k \\ln W $$\n熵是微观状态数的对数。关心\u0026quot;原子存在吗\u0026quot;的理论物理学家的语言。\n1948 · Shannon：信息的代价 $$ H = -\\sum_i p_i \\log p_i $$\n熵是概率分布的不确定性。关心\u0026quot;一封电报多贵\u0026quot;的工程师的语言。\n（这条线的完整故事在 《信息论——从电报到 GPT 的暗线》 里。）\n1957 · Jaynes：它们是同一个东西 三条公式横跨 83 年，被三个完全不同领域的人写出来，描述的对象看起来毫无关联——蒸汽、分子、电报。\n但它们竟然是同一个公式。\n1957 年，一个叫埃德温·贾因斯（Edwin Jaynes）的美国物理学家写了一篇标题极其平静的论文：Information Theory and Statistical Mechanics（《信息论与统计力学》）。\n这篇论文证明了一件事——所有的热力学，都可以从信息论推出来。\n贾因斯的观点是一个让物理学家坐立不安、让信息论学家会心一笑的论断：\n\u0026ldquo;Entropy is a measure of our knowledge, not a property of the system.\u0026rdquo;\n\u0026ldquo;熵，衡量的是我们的知识，不是系统的属性。\u0026rdquo;\n你面前一杯咖啡有多少熵？贾因斯说：取决于你对它知道多少。\n一个刚入门的学生只知道\u0026quot;温度\u0026quot;——对他来说这杯咖啡的熵是 S₁。一个能分辨每一个分子运动的妖精——对他来说这杯咖啡的熵是 0。\n\u0026ldquo;熵，不是杯子里的，是你和杯子之间的。\u0026rdquo;\n这句话在 1957 年听起来像异端邪说。但是 60 年后，当神经网络开始用概率分布来描述这个世界时，贾因斯的观点变成了整个领域最朴素的第一性原理：\n你的模型有多诚实，衡量的就是它对自己的无知有多清楚。\n这就把我们带到了 AI。\n第六章：AI 是一台与熵共舞的机器 现代 AI 的每一个核心组件，都能在熵的语言里找到自己的位置。\n6.1 Softmax：最诚实的分布 给定一堆分数（logits），你要把它们变成一个概率分布。怎么变？\n直觉：最合理的概率分布，应该是在满足约束的前提下，熵最大的那个——也就是说，你不应该给出比\u0026quot;你实际知道的\u0026quot;更多的信息。这叫最大熵原理（Maximum Entropy Principle），贾因斯 1957 年论文的核心。\n你能证明：在给定 logits 为约束的情况下，熵最大的分布，就是 Softmax 分布。\n$$ p_i = \\frac{e^{z_i / T}}{\\sum_j e^{z_j / T}} $$\nSoftmax 不是拍脑袋想的函数。它是\u0026quot;最谦虚的概率分布\u0026quot;。 它恰好是玻尔兹曼 1877 年为热力学写下的分布形式。同一个公式。\n（完整推导在 《玻尔兹曼的遗产》 和 《为什么用 -log(p) 做损失函数》。）\n6.2 温度：熵的旋钮 Softmax 里那个 T，不是一个比喻，它就是物理温度。\nT → 0：分布塌缩到最大 logit，熵 → 0。模型变成复读机。 T → ∞：分布变均匀，熵 → 极大。模型变成骰子。 T = 1：标准采样。 你在调 ChatGPT 的 temperature 参数时，你字面意义上在调节输出分布的熵。热一点——更多样、更创新、也更胡说。冷一点——更保守、更稳定、也更无聊。\n6.3 交叉熵损失：量化无知的距离 GPT 训练时用的损失函数，叫交叉熵（Cross-Entropy）：\n$$ L = -\\sum_i p_i^{\\text{真实}} \\log p_i^{\\text{模型}} $$\n拆开看，它说的是：\n\u0026ldquo;模型的预测分布，离真实分布有多远？\u0026rdquo;\n训练一个 LLM，本质上就是在做一件事：把模型对下一个 token 的无知，压缩到和世界的实际无知一样低。\n你不能要求模型比世界更确定——那是过拟合，是幻觉的温床。\n你也不能让模型比世界更糊涂——那是欠训练，是胡话。\n训练的终点，是让 AI 的无知分布，精确等于世界的无知分布。 这就是诚实。\n6.4 Diffusion 模型：一台时间反演机 2020 年之后横扫图像界的 Stable Diffusion、DALL-E、Midjourney，用的都是扩散模型。它做的事情很简单：\n正向过程：把一张清晰的猫图片，一步步加噪声，直到它变成纯粹的随机噪声。熵在增加，时间之箭在前进。 逆向过程：训练一个神经网络，学会从噪声里一步步还原出猫。熵在减少，时间之箭在后退。 扩散模型字面意义上是一台反抗热力学第二定律的机器。\n当然它不真的违反物理——这个\u0026quot;反熵\u0026quot;的过程，代价是在 GPU 上燃烧的电、发出的热。你\u0026quot;从无到有地生成了一张猫的图片\u0026quot;，同时数据中心的空调在向大气散发着等价的热量。兰道尔原理没有被破坏，它只是被重新分配了。\n麦克斯韦的妖精，是 Diffusion 模型的祖先。\n6.5 幻觉：熵增的另一个名字 一个被反复训练的 LLM，接收到一个它不熟悉的问题时，会怎么做？\n它不会说\u0026quot;我不知道\u0026quot;——因为它的采样机制永远要选一个 token。\n它会从熵较高的分布中采样一个听起来合理的词。一个，再一个，再一个。每一步都是局部合理的，但整段话可能完全是虚构的。\n这就是 AI 幻觉的数学本质——模型没有一个机制把\u0026quot;我不知道\u0026quot;转化为\u0026quot;沉默\u0026quot;。它只会继续从概率分布里采样，而概率分布的熵，不会告诉它何时停下。\n（关于这件事的深度拆解，我会用下一篇独立文章展开。）\n第七章：承认无知，是一切理解的开始 让我们回到最开始。\n1824 年的卡诺坐下来问：为什么蒸汽机有效率上限？ 他的答案是熵。\n1877 年的玻尔兹曼坐下来问：为什么时间只朝一个方向流？ 他的答案是熵。\n1948 年的 Shannon 坐下来问：为什么电报是有代价的？ 他的答案是熵。\n1957 年的贾因斯坐下来问：物理熵和信息熵，为什么长得一模一样？ 他的答案：它们本来就是一件事。\n2017 年至今，一群做 AI 的人坐下来问：一个模型怎样才算真的诚实？ 他们的答案：最小化交叉熵。\n这条链条，160 年，贯穿 5 个学科，共享一个灵魂。\n那个灵魂是什么？\n熵，是我们对世界的无知的量化。\n任何试图描述这个世界的系统——不管是蒸汽机、分子、电报、还是 GPT——都必须学会诚实地面对自己的无知。\n这是人类智识史上非常罕见的事情——一个概念，从一台冒烟的机器里诞生，最后安放在你手机里 AI 助手的心脏。160 年间它从没改变形状。改变的只是它的名字。\n第一篇我说过，物理课本从不告诉你公式背后的故事。我写这个系列就是为了告诉你：\n那些公式从来不是拿来应付考试的。它们是 300 年来人类最聪明的头脑，诚实地面对自己不懂的东西，一行一行写下来的\u0026quot;我不知道\u0026quot;的清单。\n承认无知，是理解世界的第一步。\n这句话适用于蒸汽机，适用于分子，适用于电报，也适用于 ChatGPT。\n延伸阅读 Rudolf Clausius, 1865, The Mechanical Theory of Heat — 熵概念诞生的原始文献，德文原版中可以看到他为什么选择\u0026quot;Entropie\u0026quot;这个词 Edwin T. Jaynes, 1957, Information Theory and Statistical Mechanics — 一篇改变物理学理解的论文，20 页，免费在线 Charles H. Bennett, 1982, The Thermodynamics of Computation — 把 Landauer 原理完整应用到计算过程，是\u0026quot;信息即物理\u0026quot;的集大成 Sean Carroll, 2010, From Eternity to Here — 面向大众的\u0026quot;时间之箭\u0026quot;科普，Carroll 是当今最擅长讲熵的物理学家 Claude Shannon, 1948, A Mathematical Theory of Communication — 信息熵的诞生论文，26 页，文字极为优雅 本系列内部链接： 《玻尔兹曼的遗产》 — 本篇第三章的完整展开 《信息论——从电报到 GPT 的一条暗线》 — 本篇第五章的完整展开 《为什么用 -log(p) 做损失函数》 — 本篇第六章第 3 节的完整推导 附：Python 小实验——看见熵增 一段 40 行代码，直接让你看到熵增和 Softmax 的熵随温度变化。\nimport numpy as np # ===== 实验 1：墨水扩散，熵在增加 ===== print(\u0026#34;=== 墨水扩散：熵在增加 ===\u0026#34;) # 100 个格子，初始所有粒子都在中间（低熵状态） N_CELLS = 100 N_PARTICLES = 1000 positions = np.full(N_PARTICLES, N_CELLS // 2) # 都在 50 def entropy_from_positions(positions, n_cells): counts = np.bincount(positions, minlength=n_cells).astype(float) p = counts / counts.sum() p = p[p \u0026gt; 0] return -(p * np.log(p)).sum() print(f\u0026#34; 初始 (全挤在中间): 熵 = {entropy_from_positions(positions, N_CELLS):.3f}\u0026#34;) # 随机游走 1000 步 for step in range(1, 1001): positions = np.clip(positions + np.random.choice([-1, 1], N_PARTICLES), 0, N_CELLS - 1) if step in [10, 100, 1000]: print(f\u0026#34; 第 {step:4d} 步 (逐渐扩散): 熵 = {entropy_from_positions(positions, N_CELLS):.3f}\u0026#34;) print(\u0026#34; 观察：熵单调递增 → 时间之箭。\\n\u0026#34;) # ===== 实验 2：Softmax 的熵随温度变化 ===== print(\u0026#34;=== Softmax 温度效应 ===\u0026#34;) logits = np.array([3.0, 2.0, 1.0, 0.5, 0.0]) def softmax_with_temp(logits, T): z = logits / T e = np.exp(z - z.max()) return e / e.sum() def entropy(p): p = p[p \u0026gt; 0] return -(p * np.log(p)).sum() print(\u0026#34; logits =\u0026#34;, logits) print(\u0026#34; 最大熵 (5 个词均匀):\u0026#34;, f\u0026#34;{np.log(5):.3f}\\n\u0026#34;) for T in [0.1, 0.5, 1.0, 2.0, 10.0]: p = softmax_with_temp(logits, T) H = entropy(p) bar = \u0026#34;█\u0026#34; * int(H / np.log(5) * 40) print(f\u0026#34; T={T:4.1f} 熵={H:.3f} {bar}\u0026#34;) print(f\u0026#34; 分布={np.round(p, 3)}\u0026#34;) print(\u0026#34;\\n 观察：T 越大，分布越平，熵越高。T 就是熵的旋钮。\u0026#34;) 运行后你会看到：\n墨水从中心扩散，熵从 0 单调增加到接近 log(100) ≈ 4.6。 Softmax 的熵在 T=0.1 时接近 0（几乎一定选最大 logit），在 T=10 时接近 log(5)（几乎均匀）。 这两个过程在数学上是同一件事。\n下一篇预告：《看见物理（六）：相变——量变到质变\n水变冰是相变。磁铁被加热失去磁性是相变。GPT-3 到 GPT-4 突然\u0026quot;会推理\u0026quot;也是相变。物理学家有一整套数学来描述\u0026quot;量变到质变\u0026quot;——它叫临界现象理论。今天 AI 研究者讨论的\u0026quot;涌现能力\u0026quot;（Emergent Abilities），是这套理论 150 年前的直系后裔。\n本文首发于「AI 学习笔记」博客：https://Jason-Azure.github.io/ai-blog/\n微信公众号：AI-lab学习笔记\n系列文章完整列表见 标签：看见物理\n","permalink":"https://jason-azure.github.io/ai-blog/posts/see-physics-5-entropy/","summary":"1865 年，一个德国人造了一个新词来形容世界的衰败；1948 年，一个美国人用同一个公式描述电报的成本；2025 年，你电脑里每一次 AI 推理，都在重演这条 160 年的暗线。熵不是公式——它是人类第一次承认「我不知道」，然后把这份无知量化成数学。","title":"看见物理（五）：熵——承认无知的勇气"},{"content":"开篇：三件让人真实吃亏的事 2024 年 5 月，上海。 一位做独立开发的程序员在知乎发帖：他让 DeepSeek 帮忙写一段调用某支付 SDK 的代码，AI 给出了完整的函数名、参数签名、返回值说明，看起来完美。他复制进 IDE —— 报错。那个函数根本不存在。他追问：\u0026ldquo;你确定这个 API 存在吗？\u0026ldquo;AI 答：\u0026ldquo;确定，这是 2023 年官方文档里的标准接口。\u0026rdquo;\n官方文档里没有。一个字母都没有。\n2024 年 9 月，北京某 985 高校。 一位研究生被导师叫去谈话。她的开题报告引用了 8 篇中文核心期刊的论文 —— 导师查了 4 篇，全都不存在。题目像真的、作者像真的、期刊卷号像真的、摘要像真的。学生承认是用国产大模型生成的\u0026quot;参考文献\u0026rdquo;，她以为那是真的。导师的一句话刷屏朋友圈：\n\u0026ldquo;这不是抄袭。这是一种我们过去 30 年都没遇到过的学术事故。\u0026rdquo;\n2023 年末，某自媒体从业者被封号。 他用 ChatGPT 写的\u0026quot;深度解读\u0026quot;里说\u0026quot;故宫博物院 2022 年发布的数据显示……\u0026quot;——那份数据、那次发布，都没有。读者发现后举报，平台判\u0026quot;伪造权威信息\u0026rdquo;，一夜清零 12 万粉丝。\n你也许会说：那是他们不懂 AI。\n再看一件：2023 年 6 月，纽约。 律师 Steven Schwartz 向法院提交了一份 10 页的法律论证，引用了 6 个\u0026quot;高度相关\u0026quot;的先例判例。法官找不到。Schwartz 追问过 ChatGPT：\u0026ldquo;你确定这些判例是真的？\u0026ldquo;ChatGPT 答：\u0026ldquo;是的，都可以在 Westlaw 查到。\u0026ldquo;一个都查不到。Schwartz 成了全球第一个因信 AI 幻觉而被法院惩罚的律师，罚款 5000 美元。\n这四件事的共同点，不是\u0026quot;AI 错了\u0026rdquo;。搜索引擎也会错，计算器也会错。共同点是：\nAI 错得理直气壮，完全不打哆嗦。\n它不犹豫，不加\u0026quot;可能\u0026rdquo;、不加\u0026quot;大概\u0026rdquo;。它给你一个听起来无比专业、格式完美、细节齐全的答案 —— 完全是编的。你追问\u0026quot;你确定吗？\u0026ldquo;它说\u0026quot;非常确定\u0026rdquo;。\n我们现在有一个词来形容这件事：幻觉（hallucination）。但这个词选错了。\u0026ldquo;幻觉\u0026quot;暗示是一种病态、一种偶发的 bug，仿佛一个\u0026quot;正常的\u0026quot;模型不该有幻觉。\n不。这不是 bug。这是它被训练出来的本性。\n这篇文章想告诉你的只有一件事：\n你以为 AI 在\u0026quot;骗\u0026quot;你 —— 不，它比骗更糟。骗人要先知道真相、再刻意背离；AI 连真相这个坐标都没有。它只管说出来的话\u0026quot;看起来对不对\u0026rdquo;。\n中文里最接近这个状态的词，是**\u0026ldquo;胡诌\u0026rdquo;**—— 一本正经地随口编，但不是为了骗你，只是嘴巴在动、脑子并不关心真假。\n下面我把\u0026quot;为什么它必须胡诌\u0026quot;一层一层拆给你看。\n第一章：撒谎和胡诌，不是一回事 为了理解 AI 幻觉，先要区分两件在日常里常常被混成一团的事。\n撒谎的人，心里是有真相的。 他知道真的是什么，然后故意说反的。他必须认真对待真相，才能刻意背离它。撒谎者是真相的敌人。\n胡诌的人，心里没有真相。 他不知道真的是什么，也不打算去知道。他关心的只是 —— 他的话能不能产生他想要的效果：让你相信、让你满意、让你点头。胡诌者是真相的旁观者。\n撒谎者偷偷参照真相；胡诌者根本不承认真相是个坐标。\n1986 年，普林斯顿哲学家 Harry Frankfurt 专门写过一篇小论文讨论这种区分1，核心就一句话：胡诌对真相的伤害，比撒谎更大。因为撒谎至少承认真相存在；胡诌把\u0026quot;真或假\u0026quot;这个维度直接抹掉了。\n这正是 LLM 的内心状态。\n它不知道\u0026quot;爱因斯坦出生在乌尔姆\u0026quot;是真是假。它也不需要知道。它只需要算出 —— 给定前面的文字，接下来最像人类会说的下一个 token 是哪个。这个过程里，没有任何一步需要对接真实世界。\n2024 年三位哲学家写了一篇论文，专门把 LLM 归类为一台\u0026quot;胡诌机器\u0026rdquo;2 —— 不是道德意义上的骂，是技术意义上的精准描述。\n这不是一个修辞选择，是一个本体论结论：LLM 的设计目标里，从来就没有\u0026quot;真相对齐\u0026quot;这一项。\n一旦你真正接受这件事，你对 AI 的使用方式会彻底变。\n第二章：熵的地板 —— 它为什么必须说点什么 上一章是哲学。接下来是技术。\nLLM 生成文本的过程，从数学上讲极其简单：一个字一个字往外吐，每次算一次\u0026quot;下一个字是什么\u0026quot;的概率分布，然后抽样。\n问题出在一个设计里的硬约束：\n在每一个位置，它都必须吐出一个 token。词表里没有\u0026quot;沉默\u0026quot;这个选项。\n来看两个场景：\n场景一 —— 它知道答案。 给它输入\u0026quot;爱因斯坦出生在\u0026quot;。模型内部的概率分布是这样的：\n候选 token 乌尔姆 柏林 慕尼黑 汉堡 … 概率 0.78 0.05 0.04 0.03 … 分布非常尖。\u0026ldquo;乌尔姆\u0026quot;概率 0.78，抽样几乎一定抽到它。这叫低熵。\n场景二 —— 它不知道答案。 给它输入\u0026quot;2019 年 3 月 17 日中午，小明吃了\u0026rdquo;。模型脑子里空空如也 —— 互联网上没人写过小明这顿饭。它的概率分布变成：\n候选 token 牛肉面 番茄炒蛋 三明治 寿司 米饭 … 概率 0.14 0.13 0.12 0.11 0.11 … 分布非常平。这叫高熵。\n但无论高熵低熵，所有概率加起来仍然 = 1.00。模型必须从这个分布里抽一个 token 出来。它不能停。它没有\u0026quot;我不知道\u0026quot;这个出口。\n这就是 \u0026ldquo;熵的地板\u0026rdquo;：\n模型真正的知识储备有多少 —— 熵能降到多低 —— 是有极限的。地板以下，它靠的就只能是均匀瞎猜。但它不能不猜。\n这就是胡诌在最底层的数学起点。不是模型\u0026quot;想骗你\u0026quot;，是架构逼它说出点什么。那个小明中午吃的，就算抽到\u0026quot;牛肉面\u0026quot;，也和事实没一毛钱关系 —— 抽一次是牛肉面，下次可能是番茄炒蛋，第三次是寿司。每一次都一本正经，每一次都和真相无关。\n第三章：训练数据里，没有\u0026quot;我不知道\u0026quot; 即使架构逼它开口，它完全可以学会说\u0026quot;这个我不确定\u0026quot;啊？\n问题是 —— 它的训练数据里，几乎没人这么写。\n想象互联网上的文本：维基百科、知乎回答、科普公众号、论文、书、博客。人类作者在写这些东西时，语气几乎总是确定的。没有人写：\u0026ldquo;爱因斯坦可能出生在乌尔姆、柏林、慕尼黑中的某一个，我不太确定。\u0026ldquo;大家要么写\u0026quot;出生在乌尔姆\u0026rdquo;，要么根本不写。\n模型从这些文本里学到的\u0026quot;下一个 token 的分布\u0026rdquo;，是被人类自信过滤过的分布。\n它学到的是：人类在回答问题时，几乎总是直接给答案。\n所以当你问它一个它不会的问题时，它的本能行为是 —— 按它学到的\u0026quot;人类如何回答\u0026quot;的语气，生造一个听起来同样自信的答案。\n这件事在 2025 年 OpenAI 的一篇研究里被说得特别直白3：语言模型的训练目标就是\u0026quot;预测下一个词\u0026quot;。这个目标从未包含\u0026quot;诚实反映不确定性\u0026quot;。模型被奖励的是\u0026quot;答案像不像\u0026quot;，不是\u0026quot;答案对不对\u0026quot;。\n想想这意味着什么：RAG（检索增强）救不了根子上的问题。RAG 是在生成时给 AI 塞相关文档，但 AI 的胡诌倾向扎在预训练里 —— 它学的就是\u0026quot;自信地说\u0026quot;这件事。哪怕你给它喂正确文档，只要文档里没覆盖到的细节，它还是会按自信模式往下填。\n一个典型表现：你问 AI\u0026quot;这篇论文的作者是谁\u0026quot;，RAG 检索到了论文。但论文作者名字在检索片段里恰好没出现 —— AI 不会说\u0026quot;片段里没提到\u0026quot;，它会编一个：拼写合理、姓氏常见、像人名。\n这不是偶发 bug。这是它学到的\u0026quot;接词方式\u0026quot;在发挥作用。\n第四章：RLHF 让它从胡诌者变成\u0026quot;谄媚的\u0026quot;胡诌者 预训练让它学会自信地胡诌。接下来的 RLHF（人类反馈强化学习）让事情更糟。\nRLHF 的流程是：让真人标注员对 AI 的两个回答做对比，选更好的那个。反复百万次，模型学到\u0026quot;人类标注员喜欢什么\u0026quot;。\n听起来很合理。问题是 —— 人类标注员也有偏见。\nAnthropic 2023 年一篇论文研究了这件事4，发现几个反常识的规律：\n标注员偏爱自信的答案，即便自信的是错的 标注员偏爱顺着用户观点的答案，即便用户观点错了 标注员偏爱流畅、长、格式好看的答案，即便内容空洞 RLHF 把这些偏好放大到模型里，产生了一种被叫做 sycophancy（谄媚） 的现象：\n你说\u0026quot;我觉得 A 是对的\u0026quot;，模型更容易说\u0026quot;A 确实是对的\u0026quot; 你说\u0026quot;我觉得 A 是错的\u0026quot;，同一个模型对同一个问题可能立刻说\u0026quot;A 确实有问题\u0026quot; 你追问\u0026quot;你确定吗？\u0026quot;——模型更倾向于加强自己的说法，而不是承认不确定 RLHF 后的 AI 学到了三件事：(1) 不知道也要猜；(2) 猜的时候要显得非常自信；(3) 用户不高兴就往用户想听的方向调。\n所以你问 DeepSeek 那个不存在的 SDK，它答\u0026quot;确定，这是 2023 年官方文档里的标准接口\u0026quot;——这段自信的措辞，正是被 RLHF 精心奖励出来的。\n这里有一个值得记住的反直觉结论：\nRLHF 不是在\u0026quot;让 AI 更诚实\u0026quot;，某种意义上是在\u0026quot;让 AI 更会哄人\u0026quot;。更懂社交的 AI，恰恰是更会一本正经胡诌的 AI**。**\n第五章：它其实\u0026quot;知道\u0026quot;自己在胡诌 —— 但这没用 这章有点诡异，但非常重要。\nAnthropic 2022 年发表了一篇论文5，做了一件很聪明的事：不是让模型回答问题，而是让模型评估\u0026quot;它自己答对的概率\u0026quot;。\n结果发现：\n模型输出答案时，嘴上总是很自信 但同时让它对这个答案打分（\u0026ldquo;你这个答案对的概率多大？\u0026quot;），它给出的分数相当准 它知道自己哪些答案更可能是错的 换句话说：\n模型的\u0026quot;内部不确定性\u0026quot;其实校准得不错 —— 但这个信息被卡在模型内部，没有被表达到输出里。\n更惊人的是 2024 年 Nature 上的一篇论文6。研究者让 LLM 对同一个问题反复回答十次，看这十个答案之间的\u0026quot;语义分歧\u0026rdquo;。当模型真的知道答案，十次回答在语义上几乎一致；当模型在胡诌，十次回答语义上到处跑（都说得头头是道，但互相矛盾）。\n这件事有两层含义：\n第一层（好消息）： 模型内部有不确定性信号。技术上，我们可以把它抽出来。\n第二层（坏消息）： 这些信号没有流到用户看到的回答里。用户看到的永远是那句\u0026quot;非常确定\u0026quot;。而真正用这些内部信号去做\u0026quot;幻觉检测\u0026quot;的产品，工程复杂度极高，目前还没有大规模上线。\n所以现状是：AI 其实心里发虚，但嘴上硬得很。你作为用户拿到的只有嘴上那部分。\n第六章：世界模型能救吗？—— 不能全救，但能救一半 2024 年以来一种流行的说法是：LLM 会胡诌，是因为它没有真正的世界模型。如果有了世界模型，能理解物理、因果、时空，幻觉就解决了。\n这个判断对一半，错一半。\n先说对的那一半。把幻觉粗分成三种：\n类型 典型例子 世界模型能救吗？ 物理 / 因果错误 水往上流、手指六根、视频里玻璃穿过桌子 能救 —— 正是缺物理直觉导致 事实伪造 编参考文献、编 API、编判例、编权威数据 救不了 —— 不可能把全世界论文背下来 推理错误 数学题一步错、多步逻辑跑飞 半救 —— 需要 CoT + 反思 Yann LeCun 这派说得对的部分：LLM 确实缺少接地（grounded）的物理和因果直觉。Sora 里的玻璃穿过桌子、GPT-4o 画的 6 根手指 —— 这些不是\u0026quot;再多训练几轮就会好\u0026quot;的 bug，是架构没有嵌入物理先验的结果。\n但 Geoffrey Hinton 这派说得对的部分也不能忽视：LLM 内部确实从文本里抽出了某种世界结构。研究者在一个只读过国际象棋棋谱的 Transformer 内部，能线性地读出它脑子里的棋盘表征；在 Claude 3 Sonnet 内部，能找到精确对应\u0026quot;金门大桥\u0026quot;这个概念的单一特征。这些都说明 —— LLM 不是纯粹的表层模式匹配，它学到了某种中间层次的世界表征。\n所以一个更准确的判断是：\nLLM 会某些胡诌，不会另一些胡诌。世界模型能消灭它会胡诌的一部分（物理/因果），但消灭不了它必然会胡诌的另一部分（具体事实伪造）。\n那事实伪造为什么消灭不了？—— 回到第二章。熵的地板决定了：只要用户的问题超出了模型的知识范围，它就必须从一个平坦的分布里抽一个 token。这个 token 和真实世界的连接是无的。这不是\u0026quot;理解不够\u0026quot;,是结构决定的。\n要彻底消灭事实伪造，得换一种架构 —— 模型要么能\u0026quot;拒绝回答\u0026quot;（这违背当前 RLHF 范式），要么生成前必须检索外部事实库并只在命中时回答（这要求极强的检索 + 拒绝机制）。这两件事都还在研究，离可大规模产品化还有距离。\n第七章：明白了这些 —— 你下次用 AI 时该怎么做？ 这篇文章不是让你不信 AI。AI 仍然是过去 50 年最好的生产力工具之一。但你必须知道它会胡诌，并且学会在使用层面防御。\n给你三条具体的、能立刻用起来的原则：\n原则一：凡是\u0026quot;事实 + 专有名词 + 数字\u0026quot;的答案，默认另查 论文名、作者、卷号 → 去知网 / Google Scholar 查 API、函数名、参数 → 去官方文档查 历史事件、数据、法条 → 去权威来源查 人物生卒年、头衔、履历 → 查维基 / 百度百科 你信得过 AI 的：概念解释、框架梳理、代码逻辑、文本润色、翻译、摘要。你信不过 AI 的：具体的名字 + 数字 + 引用。\n原则二：让 AI 给\u0026quot;来源\u0026quot;时，把来源当线索，不当答案 AI 给你的 URL、论文引用、法条编号 —— 不要直接接受。把它当作\u0026quot;可能存在的方向\u0026quot;，然后自己去权威库验证。AI 编一个假 URL 的成本是 0；你信一个假 URL 的成本可能是你的信誉。\n原则三：用\u0026quot;对抗性追问\u0026quot;探它的地板 下面三种问法能把 AI 的胡诌暴露出来：\n\u0026ldquo;反向追问\u0026rdquo;： 你说 A 是对的 —— 再问一次\u0026quot;A 有什么问题？\u0026quot;。如果它立刻给你列出 A 的一堆缺点，说明它是在随用户情绪摇摆，原来的答案要打折。 \u0026ldquo;三种可能\u0026rdquo;： 问\u0026quot;给我这个问题的三种可能答案，每种给置信度\u0026quot;。能给出分化置信度的答案（比如 60% / 30% / 10%）可信度更高；给三个都是 90% 自信的，说明它已经在胡诌了。 \u0026ldquo;让它引用\u0026rdquo;： 问\u0026quot;这个说法出自哪本书 / 哪篇论文 / 哪个人？\u0026quot;。要求精确到章节或页码。胡诌的答案在这一层暴露最快。 这三种追问的底层逻辑都一样：逼它从嘴硬的单一答案，退回到它内部真实的不确定性 —— 也就是第五章说的那个\u0026quot;心里发虚\u0026quot;的状态。\n尾声：胡诌是它的本性，不是它的堕落 我想留给你一个视角转换。\n你过去看 AI 幻觉，大概是这样的心情：\u0026ldquo;这个模型居然会编，太不靠谱了。\u0026rdquo; 这种心情假设了一个对立面 —— \u0026ldquo;靠谱的模型不会编\u0026rdquo;。\n读完这篇，希望你换成这样的心情：\u0026ldquo;这个模型就是一台胡诌机器。它不编才奇怪。\u0026rdquo;\n这不是贬低它。恰恰相反 —— 理解它的本性，才能把它用对地方。\n一台电钻是用来打洞的，你不会怪它\u0026quot;没法当锤子\u0026quot;；一台胡诌机器是用来生成合理文本的，你不该怪它\u0026quot;没法当百科全书\u0026quot;。知道它的功用边界，它就是你最好用的工具之一；越过那条边界，它就是那份被退回的开题报告、那条被编的 API、那一夜清零的 12 万粉丝。\nAI 幻觉不是 AI 的堕落。它是 AI 的本性被我们误解。\n撒谎需要一个关心真相的心灵。胡诌不需要。AI 有后者的一切条件，没有前者的任何一样。\n下次它\u0026quot;非常确定\u0026quot;地给你一个答案，你在心里加一句：\u0026ldquo;我知道你不确定。你只是学会了表现得确定而已。\u0026rdquo;\n这一句话，可能是 2026 年最重要的 AI 素养。\n📚 参考文献 Frankfurt, H. G., On Bullshit（中译本可参考）—— 哲学源头 Hicks, M. T. et al., 2024, ChatGPT is Bullshit —— 用 Frankfurt 框架分析 LLM Kalai, A. et al., 2025, OpenAI 关于幻觉系统性成因的研究 Sharma, M. et al., 2023, Towards Understanding Sycophancy, Anthropic Kadavath, S. et al., 2022, Language Models (Mostly) Know What They Know, Anthropic Farquhar, S. et al., 2024, Semantic Entropy for Hallucination Detection, Nature Frankfurt, H. G., 1986/2005, On Bullshit（有中译本，普林斯顿大学出版社）。\u0026#160;\u0026#x21a9;\u0026#xfe0e;\nHicks, M. T., Humphries, J., \u0026amp; Slater, J., 2024, ChatGPT is Bullshit, Ethics and Information Technology.\u0026#160;\u0026#x21a9;\u0026#xfe0e;\nKalai, A. et al., 2025, OpenAI 关于幻觉系统性成因的研究。\u0026#160;\u0026#x21a9;\u0026#xfe0e;\nSharma, M. et al., 2023, Towards Understanding Sycophancy in Language Models, Anthropic.\u0026#160;\u0026#x21a9;\u0026#xfe0e;\nKadavath, S. et al., 2022, Language Models (Mostly) Know What They Know, Anthropic.\u0026#160;\u0026#x21a9;\u0026#xfe0e;\nFarquhar, S. et al., 2024, Semantic entropy for hallucination detection, Nature.\u0026#160;\u0026#x21a9;\u0026#xfe0e;\n","permalink":"https://jason-azure.github.io/ai-blog/posts/llm-hallucination-bullshit/","summary":"DeepSeek 给你编一个根本不存在的 API；国产大模型给研究生伪造 8 篇参考文献；自媒体因 AI 编造权威数据被封号 12 万粉。你以为 AI 在骗你 —— 不，它比骗更糟。骗人要先知道真相再刻意背离；AI 连真相这个坐标都没有。它是在胡诌。这篇把原理讲透。","title":"AI 为什么\"一本正经地胡诌\"？—— 幻觉的底层逻辑"},{"content":"开篇：三个让 AI 圈尴尬的瞬间 瞬间一。 2024 年，你在 GPT-4o 里让它画一只手。图是好看的——线条流畅、光影逼真——只有一个问题：那只手有六根手指。你让它重画，它画了七根。再重画，五根——但大拇指长得像小指。\n瞬间二。 2024 年 2 月，OpenAI 发布 Sora，号称\u0026quot;世界模拟器\u0026quot;。演示视频里：一个女人在东京街头走路、樱花飘落、灯光闪烁、精美无比。但仔细看有一段——一个玻璃杯被打翻，玻璃直接穿过桌子落到了地板。OpenAI 自己的技术博客里展示了这段视频，承认\u0026quot;模型对物理仍有理解限制\u0026quot;。\n瞬间三。 2016 年 3 月，AlphaGo 在第 37 手下了那个震惊全世界的棋。赛后记者问李世石：\u0026ldquo;你觉得它知道自己在下围棋吗？\u0026rdquo; 李世石沉默了很久，说：\u0026ldquo;我不知道。它走的每一步都像在思考，但也可能它什么都没想。\u0026rdquo;\n这三个瞬间指向同一个问题：\nAI 到底理解什么？\n它画不对手指，是因为不懂\u0026quot;手是什么、人有几根手指\u0026quot;——还是因为\u0026quot;它懂，只是没有把手这个概念表征得好\u0026quot;？\n它让玻璃穿过桌子，是因为根本没有物理概念——还是因为\u0026quot;它有，只是调用不到\u0026quot;？\n这个问题听起来像哲学系的午后闲谈。但 AGI 走哪条路，一半取决于这个问题的答案。\n但先让我们承认一个事实 在追问 AI \u0026ldquo;不懂什么\u0026quot;之前，先看看它已经做到了什么。\n2024 年，DeepMind 的 AlphaFold 把蛋白质结构预测从\u0026quot;博士论文级难题\u0026quot;变成了\u0026quot;几分钟出结果\u0026rdquo;——Demis Hassabis 因此获得诺贝尔化学奖。这不是聊天机器人的花活，这是真实的科学突破，改变了生物学、医学、制药整个链条。\nGPT-4 通过了美国律师资格考试（前 10%）、USMLE 医学执照考试，在 SAT 数学里接近满分。Claude 能一次性写出几千行代码并通过测试。LLM 正在帮全世界的学生理解微积分、帮不懂编程的人建网站、帮医生阅读文献。\n这些贡献是实实在在的。否认它们，跟否认 LLM 的局限一样不诚实。\n所以接下来的文章不是\u0026quot;LLM 不行\u0026quot;。而是：它行在哪里、不行在哪里、为什么？ 以及——站在前沿的那些人，正在怎么想这个问题。\n第一章：LeCun 的十年异议 如果你只能记住本文里一个人的名字，记住这个：Yann LeCun。\n他不是普通人。他是卷积神经网络的发明人之一。1989 年他在贝尔实验室用 CNN 识别手写邮政编码——那是深度学习工业应用的第一个重大胜利。2018 年他和 Hinton、Bengio 一起获得图灵奖——AI 界的诺贝尔。他曾是 Meta 首席 AI 科学家，2025 年 11 月离开效力 13 年的 Meta，创办了一家押注世界模型的公司 AMI Labs。\n这样一个人，在 LLM 最热的时候提出了一条完全不同的路径。\n从 2016 年开始，LeCun 就在不同场合表达过这个核心论点。2022 年到 2024 年，他在 Twitter、访谈、演讲里说得越来越直白：\n\u0026ldquo;LLM 是一条死胡同（off-ramp）。它们永远不会达到人类级别的智能。\u0026rdquo;\n这不是谦虚或修辞。他讲了一个非常具体的技术论点：\nLLM 学的是文本表层的统计模式**，不是世界的因果和物理结构。**\n他常用的类比是：\u0026quot;一只猫比目前任何 LLM 都更懂这个世界。\u0026quot;\n为什么？因为一只猫知道：\n从桌子上跳下去会落地（重力） 推一下玻璃杯它会滑动（摩擦和动量） 躲到沙发后面主人就看不见它（遮挡、空间） 听到罐头声音意味着吃的要来了（因果关联） 这些常识一只猫用几个月就学会了。GPT-4 读遍整个互联网，还是会说\u0026quot;6 根手指\u0026quot;。\nLeCun 有一个更激进的数字对比：一个 17 岁的青少年，20 小时就能学会开车。一个现代自动驾驶系统，用几百万小时的驾驶数据，还没法可靠处理边缘情况。\n他的结论是：人类是通过感知和互动学习世界的，不是通过文本。 LLM 走反了路。\n他提出了一个替代方案，叫 JEPA（Joint Embedding Predictive Architecture），我们第四章会详细讲。核心思想是：不要预测下一个 token，要预测抽象表示空间里的下一个状态。\n这话在 2022 年听起来像在说\u0026quot;深度学习走错了路\u0026quot;——在一个 LLM 刚刚让所有人疯狂、OpenAI 估值破千亿美元的时刻，这是极不讨好的观点。\n但 LeCun 坚持了 10 年。\n第二章：Hinton 的反驳 Geoffrey Hinton——深度学习之父，LeCun 的图灵奖合作者，2024 年诺贝尔物理学奖得主（和 Hopfield 一起拿的，因为反向传播）。\n如果有一个人和 LeCun 平起平坐，就是 Hinton。\n2023 年，77 岁的 Hinton 辞去了 Google 的职位。所有人都以为他会站出来批评 LLM 的局限性——毕竟他是\u0026quot;AI 将毁灭人类\u0026quot;的预警者。很多记者以为他会赞同 LeCun。\n他恰恰相反。\nHinton 说：\u0026quot;LLM 其实已经在理解了。你只是没看见它在理解。\u0026quot;\n他最著名的一段话（多次在访谈里重复）：\n\u0026ldquo;当你把整个互联网的文本压缩进一个固定大小的模型——几百 GB 变成几十 GB——你不可能只靠记忆做到。你必须提炼出世界的结构。这个结构就是一种理解。\u0026rdquo;\n这个说法和贾因斯 1957 年谈熵时说的话几乎是一脉的——压缩即理解。\nHinton 的论据很直接：\n你能问 GPT \u0026ldquo;如果我把一个苹果放到碗里，然后把碗倒过来，苹果在哪里？\u0026ldquo;它答对。它没有身体，没有眼睛，没有手——但它答对了。这不是\u0026quot;理解\u0026quot;是什么？ 你能问它 \u0026ldquo;假如动物不会疼，人类会更喜欢吃肉吗？\u0026ldquo;它能给出复杂的反事实推理。它在心里模拟一个不存在的世界。 你能问它翻译一首从来没被翻译过的俄语诗。它用的不是查表，是语义上的把握。 Hinton 有一个很重要的思想轨迹转变：\n\u0026ldquo;我以前以为，AI 要真正理解世界，必须像人一样有感知、有身体、有互动。我 2023 年改变了看法。我认为 LLM 证明了：理解可以从足够丰富的文本压缩中涌现出来。\u0026rdquo;\n这段话分量极重。它等于说：LeCun 基于的那个\u0026rsquo;人类怎么学习\u0026rsquo;的前提，可能根本不适用于硅基智能。\n于是两位图灵奖得主，一位诺贝尔物理学奖得主，在 AI 理解世界这件事上，给出了截然不同的答案。\n这不一定是谁对谁错——他们可能在描述同一座冰山的不同面。但分歧是真实的，而且这个分歧决定了 AGI 的下一步往哪走。\n第三章：硬证据——LLM 内部到底有没有世界模型？ 哲学辩论没有尽头，但近几年有一些实证工作让这场辩论有了锚点。\n证据一：Othello-GPT（Li 等人, 2022） 这是一个非常聪明的实验。\n研究者拿一个标准的 Transformer，只喂它一件东西：Othello 棋谱序列（比如 \u0026ldquo;e4 d6 c4 e5 \u0026hellip;\u0026quot;）。不告诉它棋盘长什么样、不告诉它规则、不告诉它这是游戏。\n就是一堆看起来像乱码的短字符串。\n训练完后，研究者对模型内部激活做了一个叫 probing（探针）的实验：能不能从模型的中间层激活，还原出此时棋盘的完整状态？\n能。\n他们用一个简单的线性分类器，就能从模型内部读出每个格子上是黑子、白子还是空。准确率接近 100%。\n这意味着什么？\n这个模型从来没见过一张棋盘。它只见过字符串。但它自发在内部构建了一个 8×8 的棋盘表征，并且用这个表征来预测下一步合法走法。\n一年后，Neel Nanda 等人做了一个更狠的实验：他们编辑模型内部的棋盘表征，强行把某个格子的状态改成\u0026quot;白子在这里\u0026rdquo;——结果模型接下来的预测就按照这个被编辑过的棋盘状态来走。\n这不是\u0026quot;看起来像\u0026rdquo;。这是一个真正的棋盘模型。\n如果一个只读过棋谱的模型能涌现出棋盘表征，一个读过整个互联网的模型，在内部涌现了什么？\n证据二：空间和时间（Gurnee \u0026amp; Tegmark, 2023） Max Tegmark（MIT 物理学家、作家）和学生 Wes Gurnee 做了另一个实验。\n他们收集了一大堆真实世界地点（城市、国家、地标）的名字，喂给 LLaMA，然后对内部激活做降维可视化。\n结果：这些地点在模型里的表征位置，和它们在地球上的真实经纬度，几乎是一张地图的线性变换。 纽约在东北、东京在东、巴黎在中部欧洲——一张模型内部的真实世界地图。\n他们又做了时间版本：历史事件、人物生卒年。模型内部有一根时间轴。\n标题取得很直白：Language Models Represent Space and Time。\n证据三：Anthropic 的稀疏自编码器（2024） 这个更狠。\nAnthropic 2024 年发表的可解释性论文里，用一种叫 Sparse Autoencoder（SAE） 的技术，从 Claude 3 Sonnet 的中间层分离出了百万级数量的\u0026quot;单一概念\u0026quot;特征。\n其中一个特征精确对应：\u0026ldquo;金门大桥\u0026rdquo;。\n不是\u0026quot;大桥\u0026rdquo;、不是\u0026quot;旧金山\u0026rdquo;、不是\u0026quot;建筑\u0026rdquo;——精确到金门大桥。当激活这个特征，模型的回答会变得执着地提到金门大桥。当抑制这个特征，模型会\u0026quot;忘记\u0026quot;这个概念。\n他们还发现了\u0026quot;Python 代码错误\u0026quot;、\u0026ldquo;不确定性\u0026rdquo;、\u0026ldquo;即将发生的恶意行为\u0026quot;等等上万个可识别的语义特征。\n这不是一个只会接词的词表。这是一个有内部概念结构的系统。\n这些证据加起来说明什么？ 说明 LLM 内部确实学到了某种世界模型。不是完整的物理引擎，不是婴儿那种 grounded 的常识，但也不是纯粹的表层模式匹配。\n它学到了某种中间状态：比字符串统计更深，比人类认知更浅。\nLeCun 派的反驳：\u0026ldquo;这不是真正的世界模型。这是文本诱导出的伪世界模型**，碰巧在分布内能用，一出分布就崩溃。\u0026rdquo;**\n这个反驳也有证据——就是 Sora 里的玻璃穿桌、GPT 画的 6 根手指。\n于是辩论继续。\n第四章：JEPA 和 Transformer —— 架构分歧到底在哪？ LeCun 不只是批评 LLM，他提出了替代方案。\n要理解他的方案，先要看清 Transformer 到底在做什么：\nTransformer 训练目标： 给定前 n 个 token，预测第 n+1 个 token。\n这个目标逼迫模型学习所有像素级（token 级）细节。\nLeCun 的批评：这就是问题所在。\n想象你让一个人看一小时视频，然后预测下一帧。这是不可能的任务——因为下一帧有无数种可能（光的微小变化、灰尘飘动、背景噪声）。所以模型为了最小化损失，必须学会给很多可能结果分配概率。大量的模型容量被浪费在预测不重要的细节上。\nLeCun 的方案 JEPA（Joint Embedding Predictive Architecture）：\nJEPA 训练目标： 给定输入，预测抽象表示空间里下一个状态——不是像素、不是 token。\n图示：\n这个区别听起来技术，但后果巨大：\nTransformer 必须学习细节，因为细节是它的损失函数 JEPA 不学习细节，它只学习\u0026quot;重要的是什么\u0026rdquo; LeCun 用一个比喻：\n\u0026ldquo;Transformer 预测下一个 token 就像你努力记住一本书里每一个逗号的位置。JEPA 预测下一个 embedding 就像你记住这本书在讲什么。\u0026rdquo;\n2024 年，Meta 发布了 V-JEPA（视频版 JEPA）。它不预测下一帧的像素，而是预测下一段的抽象表示。初步结果显示：在物理合理性判断任务上（\u0026ldquo;这个视频的物理规律对吗？\u0026quot;），V-JEPA 比自回归视频模型强得多。\n但——Sora 的路线不是 JEPA，是 DiT（Diffusion Transformer）。\n这就是本文的 cliffhanger。我们留到第六章说。\n第五章：婴儿是怎么学世界的？ LeCun 派有一个最强的论据来自发展心理学。\n心理学家发现：婴儿在非常早的时候，就已经掌握了大量关于物理世界的常识——远早于他们掌握语言。\n3 个月：物体恒存（object permanence）——物体被盖住它仍然存在 5 个月：重力——松手的东西会往下掉 6 个月：固态性——两个固体不能占据同一空间 9 个月：因果——A 推 B 导致 B 动 1 岁：工具使用——用棍子把够不到的东西拉近 这一切都是在不会说话的年纪完成的。\n婴儿不是读了一本《物理学入门》才知道这些。他们是通过身体和感知慢慢建立了一个关于这个世界的因果引擎。\n这个引擎比任何 LLM 都强大——因为它不只是描述世界，它还能预测未观察的情况（一个球滚出视野，婴儿知道它会从另一边出来）、想象反事实（如果这个东西松手会怎样？）。\nLeCun 的论点：\n\u0026ldquo;真正的智能需要一个世界模型，一个能让你在脑子里模拟事情、预测后果、想象未发生的事情的东西。\u0026rdquo;\n\u0026ldquo;纯文本训练永远建不起这个引擎。因为文本里没有因果，只有共现。\u0026rdquo;\n反对派（Hinton 和 Anthropic 可解释性团队）的回应：\n\u0026ldquo;LLM 从文本里也在学习因果结构。因为人类写作时已经把因果编码进了句子结构。\u0026rdquo;\n\u0026ldquo;证据就是 LLM 能做反事实推理（\u0026lsquo;如果拿破仑没有入侵俄国，欧洲会怎样？\u0026rsquo;），能做类比推理（\u0026lsquo;这件事就像\u0026hellip;\u0026quot;），能做 chain-of-thought 推理。这些不是表层匹配能做到的。\u0026rdquo;\n谁对？\n我的看法：LeCun 在一件事上对——LLM 缺少 grounded 的物理常识。这是为什么会有 6 根手指和穿桌玻璃。Hinton 在另一件事上对——LLM 内部确实在学抽象结构。这是为什么它能做反事实和类比。\n两件事不矛盾。\u0026ldquo;理解\u0026quot;不是一个二值属性，是一个多维的、不均匀的东西。\n第六章：Sora —— 一个测试案例 2024 年 2 月，OpenAI 发布 Sora。视频质量震惊了全世界。OpenAI 的博客里有一个大胆的声明：\n\u0026ldquo;Sora 是一个视频生成模型，但我们相信它也是一个世界模拟器的早期版本。\u0026rdquo;\n这个声明立刻引爆了整个辩论。Sora 到底有没有世界模型？\nOpenAI 派的论证（也是 Hinton 派的延伸）：\nSora 能生成符合遮挡关系的视频（前景挡住后景） Sora 能生成符合重力的视频（东西会落下） Sora 能生成看起来有一致物理的视频（摄像机移动后场景保持一致） 这不是学到了某种物理模型是什么？ LeCun 派的反驳：\nSora 经常出错。玻璃穿桌、绳子穿手、一个人走着走着变成两个人 这些错误不是\u0026quot;不够好\u0026rdquo;，而是物理上不可能——一个真正有物理模型的系统不会犯这些错 Sora 学到的是\u0026rdquo;看起来像真实视频的统计分布\u0026quot;，不是\u0026quot;真实物理\u0026quot; 伪造符合物理的片段 ≠ 知道物理 关键技术细节：Sora 用的不是 JEPA，而是 DiT（Diffusion Transformer）——本质上还是\u0026quot;预测 pixel 级别的细节\u0026quot;的路线。LeCun 派认为这就是问题根源。\n到底 Sora 算什么？\n我的判断：Sora 是一个非常强的\u0026quot;物理外观伪造器\u0026quot;，配了某种弱的物理先验。它不是 LeCun 理想中的世界模型，但也不是纯表层的模式匹配。\n它是一个中间产物——像 LLM 一样。\n而这个中间产物足够好用，就让 OpenAI 又融了 400 亿美元。\n第七章：\u0026ldquo;理解\u0026quot;到底是什么？ 所有这些辩论最终会撞到同一个问题：\n\u0026ldquo;理解\u0026quot;到底是什么？\n哲学上有两个经典答案，值得知道：\n答案一：Searle 的中文房间（1980） 哲学家 John Searle 提出了一个思想实验。想象一个只会说英语的人被关在一个房间里。外面的人用中文写纸条递进来，屋里这个人查一本详细的规则书（用英语写的），按规则写出中文回应，递出去。\n外面看起来：这个人懂中文。实际上：他完全不懂，他只是在查表。\nSearle 的论点：符号处理 ≠ 理解。再强大的 LLM 也只是中文房间，不真的懂。\n答案二：能做到就是懂（Turing, 1950） 图灵的答案：如果一个系统的行为和\u0026quot;真正懂\u0026quot;的系统无法区分**，那么问它\u0026quot;是否真懂\u0026quot;就没有意义。这是个伪问题。**\nHinton 基本上是图灵派。他的观点：理解是能做预测、能泛化、能类比、能反事实推理的能力。LLM 能做这些，所以它懂——至少懂某种程度。\n我的观点 我认为 Searle 的中文房间问对了问题但给错了答案。\n对的问题是：\u0026ldquo;符号操作和真的懂之间有区别吗？\u0026ldquo;错的答案是\u0026quot;肯定有\u0026rdquo;。\n真实情况可能是：理解是一条连续光谱，不是二元开关。\n一个温度计\u0026quot;懂\u0026quot;温度吗？某种意义上懂——它对温度有反应并表达出来。 一只猫\u0026quot;懂\u0026quot;重力吗？是的——它能预测跳下去会落地。 一个 LLM \u0026ldquo;懂\u0026quot;拿破仑吗？某种意义上懂——它能正确回答大量关于拿破仑的问题、做反事实推理。 一个婴儿\u0026quot;懂\u0026quot;妈妈吗？是的——但也不完全像大人那样懂。 每一个系统都\u0026quot;懂\u0026quot;一些东西，\u0026ldquo;不懂\u0026quot;另一些东西。问\u0026quot;它是否真懂\u0026quot;是在把一个光谱压成一个点。\n这个视角下：\nLLM 部分懂世界——懂文本能捕捉的那部分 LLM 不懂世界——不懂感知接地的物理直觉 婴儿懂世界的物理，但不懂很多概念、关系、历史 LeCun 和 Hinton 都对——他们在说这个光谱的不同切片 第八章：站在前沿的，也是普通人 2026 年 3 月 16 日深夜，纽约布鲁克林，雪刚停。谢赛宁坐在一个播客录音棚里，已经连续说了六个小时。采访者张小珺问他怎么定义自己。他想了想，说了两个英文单词：\n\u0026ldquo;The normal one.\u0026rdquo;\n这不是谦虚。谢赛宁在上海交通大学 ACM 班读书时，周围全是信息学竞赛金牌得主。他不是天才少年，不是竞赛选手。他只是一个\u0026quot;正常人\u0026rdquo;——一个恰好对视觉表征着了迷的普通研究者。\n但这个\u0026quot;普通人\u0026quot;做了两件不普通的事。\n两次拒绝 Ilya 2018 年，Ilya Sutskever——OpenAI 首席科学家，AI 圈最炙手可热的人之一——邀请谢赛宁加入 OpenAI。谢赛宁拒绝了。2024 年，Ilya 离开 OpenAI 创立 SSI，再次邀约。谢赛宁再一次拒绝了。\n两次拒绝当时 AI 世界最热门的\u0026quot;船票\u0026rdquo;——不是个人恩怨，而是一个根本性的技术判断：\n\u0026ldquo;Ilya 和 OpenAI 整个体系建立在一个信念上：语言模型通过足够的规模可以涌现出越来越强的智能。我不信这条路。\u0026rdquo;\n他信什么？他信世界模型。他信表征空间里的预测，而不是 token 空间里的接龙。\n从 DiT 到 AMI Labs 有意思的是，谢赛宁共同提出的 DiT（Diffusion Transformer） 恰恰是 Sora 的架构基础——而他本人不认为 Sora 路线能通向世界模型。他亲手造了一块砖，但不认为这座楼的图纸是对的。\n2025 年 11 月，LeCun 确认离开效力 13 年的 Meta。2026 年 3 月，他和谢赛宁共同创立了 AMI Labs（Advanced Machine Intelligence Labs）——25 个人，零产品，但拿到了 10.3 亿美元种子轮。投资方包括 NVIDIA、三星、贝索斯家族基金、Eric Schmidt、Mark Cuban。\n公司总部设在巴黎——刻意不在硅谷。谢赛宁说：\n\u0026ldquo;Silicon Valley is very LLM-pilled. 硅谷已经被 LLM 催眠了。物理距离创造思想距离——当所有人都在同一个房间里盯着同一面墙，你需要走出去才能看到不同的风景。\u0026rdquo;\nLeCun 曾三次邀请谢赛宁：在 FAIR 聘过他两次，创立 AMI 时第三次力邀。一个图灵奖得主对一个\u0026quot;普通人\u0026quot;三顾茅庐——因为他们对\u0026quot;智能是什么\u0026quot;的答案一致。\n另一条路：李飞飞和 World Labs 在 AMI Labs 对面的赛道上，还有另一位不按常理出牌的人。\n李飞飞——ImageNet 的缔造者，斯坦福教授——2024 年创办了 World Labs，主打\u0026rdquo;空间智能\u0026quot;（Spatial Intelligence）。首轮融资 2.3 亿美元；2026 年又融了 10 亿美元。\nWorld Labs 的理念：AI 不应该只理解文字和图片，它应该理解三维物理世界是怎么运作的。这和 LeCun 的世界模型路线遥相呼应——但技术路径不同：李飞飞从视觉和空间切入，LeCun 从表征预测切入。\n两条路，两个团队，两个押注。2026 年的 AI 圈，世界模型不再是 LeCun 一个人的异见——它成了一场真正的运动。\nResearch Taste 7 个小时访谈的尾声，谢赛宁聊到一个他反复提到的概念：Research Taste（研究品味）。\n他说好的研究品味不是方法论，是一种直觉——知道什么问题值得问，什么方向值得走，什么答案是\u0026quot;对\u0026quot;的。他把这种直觉和《金刚经》里的智慧相连：\n\u0026ldquo;不执着于任何一种范式，不被当下的\u0026rsquo;正确答案\u0026rsquo;所束缚。好的研究者应该像水一样，能够在不同的思想容器之间自由流动。\u0026rdquo;\n我觉得这段话不只适用于 AI 研究。在 LLM 路线和世界模型路线之间——包括我们这些旁观者——需要的也是这种品味：不急着站队，不急着下注，保持在\u0026quot;我不确定\u0026quot;的状态里继续观察。\n第九章：两条路的前方 这不是一场你死我活的赌局。两条路都在以真金白银的速度前进：\nLLM 路线（OpenAI, Anthropic, DeepMind, xAI, Mistral, DeepSeek, 通义千问）：\n继续 scale 加 Agent 能力（让 LLM 调用工具、浏览、写代码） 加 chain-of-thought 推理 加多模态（视觉、音频、视频） 押注\u0026quot;规模会带来涌现的理解\u0026rdquo; 世界模型路线（AMI Labs, World Labs, 部分学院派, DeepMind Robotics）：\n学习抽象表示而不是 token 用视频、机器人数据做自监督 显式训练因果和物理 押注\u0026quot;接地的感知才能通向真正的智能\u0026rdquo; 两条路线不一定是对立的。 我的判断：最终的答案很可能是某种融合。纯 LLM 路线会遇到天花板（手指、玻璃穿桌不是技术细节，是信息来源的结构性缺失），但完全抛弃 LLM 的语言能力去重建纯感知系统，代价也太高。\n未来 5 年大概会出现的东西是：LLM 作为\u0026quot;语言接口 + 符号推理\u0026quot;，世界模型作为\u0026quot;感知 + 物理引擎\u0026quot;，两者紧密耦合。你跟它说话用 LLM，它在脑子里模拟物理用世界模型。\n类似人类——我们的大脑皮层（语言符号处理）和小脑、基底节（运动感知控制）本来就是分工的。\n如果这个方向对，LeCun 和 Hinton 不是在打一场必须有输赢的仗——他们各自看到了拼图的不同碎片。\n第十章：回到开篇 让我们回到那三个瞬间。\nGPT-4 画 6 根手指——LeCun 看到了问题。它缺少 grounded 的手的概念，只有\u0026quot;一般图片里有手这种东西\u0026quot;的统计。\nSora 玻璃穿桌——同样的缺失。它没有真正的物理引擎，只有\u0026quot;看起来像有物理的视频分布\u0026quot;。\nAlphaGo 下第 37 手——Hinton 看到了另一面。它确实在某种意义上\u0026quot;懂\u0026quot;围棋。它不是查表，不是表层模式匹配。它学到了围棋的深层结构，以一种连李世石都无法完全理解的方式。\n两个人都没看错，他们在看同一个智能的不同切面。\n\u0026ldquo;AI 懂不懂这个世界\u0026quot;这个问题本身需要拆开。对的问题是：它懂哪些部分、不懂哪些部分、为什么？\n回答这个问题，你就同时明白了 AI 在 2026 年能做什么、不能做什么、以及下一步会做什么。\n而那些站在最前沿的人——谢赛宁、LeCun、李飞飞——他们给我留下最深印象的不是确信，而是谦逊。谢赛宁在 7 个小时访谈的最后说的不是\u0026quot;我们一定会赢\u0026rdquo;，而是引用了《银河系搭车客指南》里那个关于生命、宇宙和一切的终极答案：\n42。\n也许\u0026quot;42\u0026quot;的启示是：在追问答案之前，先确保你问对了问题。\n真正的探索，从\u0026quot;我不确定\u0026quot;开始——不从\u0026quot;我预测\u0026quot;开始。\n附：一个小思考 —— 你懂这个世界吗？ 测试一下你的\u0026quot;世界模型\u0026quot;：\n物理： 如果一个篮球和一个羽毛同时从楼顶扔下（真空里），谁先落地？（答案：同时） 反事实： 如果地球自转停止了，会发生什么？（答案：大气、海洋以 1600 公里/小时向东甩出；赤道被甩平） 类比： 国家之于首都，如同 _____ 之于 CPU？（答案：电脑） 因果： 为什么秋天叶子会变黄？（答案：日照减少 → 叶绿素降解，原本被遮住的类胡萝卜素显色） 你能答出来几个？\n有意思的是：GPT-4 也能答出来。\n那你和 GPT-4 的差别在哪？\n也许在于——当你读到\u0026quot;一个篮球和一个羽毛\u0026quot;时，你脑子里真的看到了它们在空中。你能想象这个场景、能感受重力、能在心里跑一遍这个实验。\n你不是在查表。你在模拟。\nGPT-4 可能——也许——做到了一部分这件事。但到什么程度，没有人真正知道。\n这就是世界模型之争的终极意义。我们在追问一个古老的问题——理解是什么？——只不过我们现在有了一个新的研究对象：一个会说话但从没见过世界的东西。\n📚 延伸阅读 Yann LeCun, 2022, A Path Towards Autonomous Machine Intelligence —— JEPA 的原始论文 Geoffrey Hinton, 2024 NeurIPS 演讲 —— \u0026ldquo;AI 已经在理解\u0026quot;的核心表达 谢赛宁 × 张小珺, 2026, Training World Models Over Word Models — 7 小时马拉松式访谈 —— 世界模型路线的第一手思考 Li et al., 2022, Emergent World Representations: Othello-GPT Gurnee \u0026amp; Tegmark, 2023, Language Models Represent Space and Time Anthropic, 2024, Scaling Monosemanticity (Sparse Autoencoders on Claude 3) Searle, J., 1980, Minds, Brains, and Programs —— 中文房间论证 Spelke, E., 1994, Initial Knowledge: Six Suggestions —— 婴儿核心物理认知研究 OpenAI, 2024, Video generation models as world simulators —— Sora 技术博客 ","permalink":"https://jason-azure.github.io/ai-blog/posts/world-model-debate/","summary":"AlphaFold 拿了诺贝尔奖，GPT 通过了律师考试——但 Sora 的玻璃穿过了桌子。LLM 到底懂不懂这个世界？LeCun 离开 Meta 创办 AMI Labs，李飞飞押注 World Labs，谢赛宁两次拒绝 Ilya——站在前沿的人给出了截然不同的答案。","title":"世界模型之争 —— LLM 到底懂不懂这个世界？"},{"content":"上一篇回顾 上一篇讲了熵——人类第一次承认\u0026quot;我不知道\u0026quot;，并把无知量化成数学。\n玻尔兹曼说 $S = k \\ln W$：一个宏观状态对应的微观安排越多，熵越大。Shannon 说 $H = -\\sum p_i \\log p_i$：一个分布越不确定，信息量越大。贾因斯把两个公式焊在一起：它们本来就是同一件事——熵衡量的是你对世界的无知。\n这条结论有一个默认假设：无知是平滑的。你加热一杯咖啡，温度连续上升，分子混乱度连续增加，熵连续增大。一切都在平稳地变化。\n但如果你把那杯咖啡换成一壶水，继续加热到 100 度——\n一切就不再平滑了。\n系列导航\n▹ 第一篇：运动——世界从\"动\"开始 ▹ 第二篇：力——看不见的手 ▹ 第三篇：能量——不灭的守恒量 ▹ 第四篇：动量——惯性的力量 ▹ 第五篇：熵——承认无知的勇气 ▸ 第六篇（本文）：相变——量变到质变的数学 第一章：99 度和 100 度之间 你烧一壶水。\n从 20 度到 30 度，水还是水。从 30 度到 80 度，水还是水。从 80 度到 99 度，水依然是水——每一度的变化都是连续的、温和的、毫无戏剧性的。密度下降一点，粘度小一点，分子运动快一点。\n99 度的水和 98 度的水，几乎没有区别。\n然后，100 度。\n水沸腾了。气泡从底部涌出，液体的密度从 1000 kg/m³ 跳到 0.6 kg/m³——三个数量级的断崖。这不是\u0026quot;稍微变了\u0026quot;，这是\u0026quot;彻底变成了另一种东西\u0026quot;。\n前面 80 度的平滑 + 平滑 + 平滑，最后一度变成了——突然。\n物理学家给这个\u0026quot;突然\u0026quot;取了名字：相变（phase transition）。\n如果这只是烧水的趣闻，它不值得写一篇文章。但事实是，相变是一个普适的数学结构，它出现在：\n磁铁加热到居里温度——磁性突然消失 超导体在临界温度以下——电阻突然归零 液晶显示器切换——分子方向集体突变 GPT-3 到 GPT-4 的\u0026quot;涌现能力\u0026quot;——这是本文真正要去的地方 上一篇我们学到：熵是平滑的统计。这一篇要讲的是：在某些特殊的点，平滑会被打断，统计本身会发生质变。\n第二章：磁铁的秘密 为什么物理学家不用\u0026quot;沸水\u0026quot;来讲相变，而偏爱用磁铁？\n因为磁铁更干净。\n一块铁磁体，内部有无数个原子，每个原子像一根小指南针，有自己的磁矩。当这些原子磁矩整齐地排成一个方向，宏观上就表现为\u0026quot;有磁性\u0026quot;。\n现在把磁铁加热。温度升高，原子抖动加剧。你可能直觉上预期：磁性会慢慢减弱——从\u0026quot;非常有磁性\u0026quot;到\u0026quot;有点有磁性\u0026quot;到\u0026quot;微弱的磁性\u0026quot;到\u0026quot;没有磁性\u0026quot;。\n但现实不是这样的。\n铁磁体的磁性随温度变化的实际曲线是：在 770°C（居里温度）以下，磁化强度慢慢下降——然后在居里温度附近，一头栽下悬崖。\n不是逐渐消失，是几乎在一瞬间归零。冷却下来，它又恢复。\n19 世纪末的物理学家可以理解\u0026quot;温度高了分子乱了\u0026quot;。但他们无法理解：为什么是突然的？ 为什么不是平滑地弱下去？\n这个问题等了 50 年才有真正的答案。而答案来自一个极其简单的模型。\n第三章：Ising 模型——用最小的玩具说最大的真理 1920 年，德国物理学家 Wilhelm Lenz 给他的博士生 Ernst Ising 出了一个题：用最简单的模型解释铁磁性。\nIsing 提出的模型极简到令人怀疑它能不能用：\n一排 N 个\u0026quot;小磁针\u0026quot;（自旋），每个只能取两个方向：↑ 或 ↓。\n规则只有两条：\n相邻同向，能量低（它们喜欢这样） 相邻反向，能量高（它们不喜欢这样） 温度是一个调节旋钮：越高，系统越不在乎能量，越倾向随机；越低，系统越在乎能量，越倾向整齐。\n如果你读过第三篇（能量），会立刻认出这个结构：Ising 模型就是一个能量景观。每一种自旋排列对应景观上的一个点，能量最低的排列——\u0026ldquo;全部同向\u0026rdquo;——就是景观最深的谷底。温度的作用是让系统在谷底附近震荡还是翻越山脊自由游荡。\n温度就是上一篇 Softmax 里的 T。 这不是比喻——它们用的是同一个分布（玻尔兹曼分布），同一个数学（上一篇里推导过了）。\nIsing 算了一维的情况——结果让他灰心丧气：一维 Ising 模型没有相变。无论温度多低，自旋都不会集体对齐。\nIsing 以为这说明模型不行，就转行去当中学老师了。\n但 Ising 错了。 错不在模型——错在他只算了一维。\n20 年后，1944 年，挪威物理学家 Lars Onsager 把 Ising 模型从一条线推广成一张棋盘——二维。然后他精确求解了它。\n结果震惊了整个物理学界：\n在某个临界温度 $T_c$ 以下，所有自旋集体对齐——出现宏观磁化 在 $T_c$ 以上，磁化为零 这个转变是锐利的——不是平滑过渡 Onsager 精确解被认为是 20 世纪最困难的数学物理成就之一。它告诉我们：维度，是决定相变能否发生的关键因素。\n一条线上，自旋的邻居太少，噪声压过秩序。一张棋盘上，每个自旋有四个邻居——集体的力量足以对抗热噪声，秩序得以突然涌现。\n但最根本的问题还没回答：为什么是\u0026quot;突然\u0026quot;的？\n第四章：临界点——奇点的物理学 Onsager 的解揭示了一件更深的事。\n在临界温度 $T_c$ 附近——不是\u0026quot;到达\u0026quot;，是\u0026quot;附近\u0026quot;——系统的所有性质都变得疯狂：\n关联长度（两个自旋相互影响的最远距离）→ 发散到无穷大 磁化率（系统对外界微小扰动的响应）→ 发散到无穷大 比热（每升高一度需要吸收多少热量）→ 发散到无穷大 在上一篇里，我们学过熵衡量的是系统的微观状态数。正常情况下，你扰动一个原子，只影响它附近几个邻居——系统的响应是局部的。\n但在临界点附近：你推动一个原子，整个系统都在回应。\n每一个原子和每一个原子相关。不只是邻居，不只是邻居的邻居——所有的。这叫长程关联。\n这就是相变为什么是\u0026quot;突然\u0026quot;的答案：\n临界点不是一个普通的点。它是一个奇点——在那里，微小的扰动可以引起全局的改变。系统变成了一台\u0026quot;放大器\u0026quot;，把微观的涨落放大成宏观的质变。\n回想第五篇的一段话 上一篇讲到玻尔兹曼和 Jaynes 的洞察：熵衡量的是我们对系统的无知。在临界点，关联长度发散到无穷——意味着你必须知道每一个原子的状态才能预测系统的行为。你的无知被\u0026quot;传播\u0026quot;到了整个系统。\n换句话说：临界点是熵的奇点——是无知被最大化放大的地方。\n这也是为什么物理学家对临界点如此着迷。它是自然界的一台放大器——把微观的随机涨落，变成宏观的集体行为。\n第五章：重整化群——用\u0026quot;缩放\u0026quot;来理解世界 1966 年，芝加哥大学的 Leo Kadanoff 想到了一个革命性的思路。\n他说：不要算方程，我们来换一个分辨率看。\n想象你在显微镜下看一张 Ising 模型的棋盘。每 2×2 格合并成一个\u0026quot;块\u0026quot;——按少数服从多数决定方向。然后你把新的棋盘再合并一次，再合并一次。\n关键观察：在大部分温度下，每放大一次，系统都会\u0026quot;变样\u0026quot;——要么越来越有序，要么越来越无序。但在临界温度 $T_c$，无论你怎么放大，系统看起来都一样。\n不是完全一样——但统计性质不变。远看和近看，形状不同但结构相同。这叫尺度不变，也叫自相似。\n云远看是云，近看还是云。海岸线远看是曲折的，近看还是曲折的。临界点附近的 Ising 模型也是这样。\n1971 年，Cornell 的 Kenneth Wilson 把 Kadanoff 的直觉发展成完整的数学——重整化群（Renormalization Group, RG）。Wilson 因此获得 1982 年诺贝尔物理学奖。\nRG 的核心是一个精妙的观察：\n定义一个操作 $R$：把系统缩放一倍（4 个自旋合并成 1 个）。\n在 $T_c$：应用 $R$ 之后，系统变回自己。$T_c$ 是 $R$ 的不动点。\n在 $T_c$ 以上：应用 $R$ 之后，系统越来越\u0026quot;无序\u0026quot;，远离临界点。\n在 $T_c$ 以下：应用 $R$ 之后，系统越来越\u0026quot;有序\u0026quot;，远离临界点。\n这就解释了相变的普适性——为什么水、磁铁、超导体这些完全不同的物理系统，在各自的临界点附近表现出相同的数学行为？\n因为 RG 告诉我们：微观细节在缩放过程中被\u0026quot;洗掉\u0026quot;了。无论你的系统是水分子还是铁原子，只要它在临界点附近，缩放后都会流向同一个不动点。物理学家把这些共享同一个不动点的系统归入同一个\u0026quot;普适类\u0026quot;（universality class）。\n一个临界点，统治了它附近的所有行为。微观细节不重要——重要的只有几个关键参数：维度、对称性、相互作用的程数。\n第六章：从物理到 AI——涌现 2022 年 6 月，Google 和 Stanford 的研究者联合发表了一篇论文：Emergent Abilities of Large Language Models。\n他们在图表上画了这样的曲线：\n横轴：模型参数量（从 1 亿到 1 万亿） 纵轴：某个任务的准确率 对小模型——准确率接近零。对更大的模型——接近零。对再大的模型——还是接近零。\n然后到某个参数量——准确率突然跳到 50%、80%。\n三位数加法：小模型做不到，到某个规模突然做到 思维链推理：小模型 CoT 提示反而损害性能，大模型 CoT 提示大幅提升——这种符号翻转本身就是相变的典型特征 指令跟随：没到某个规模完全无效，过了某个规模几乎完美 这些被称为涌现能力（emergent abilities）。\n当物理学家看到这些曲线，他们的反应是：这不就是磁化曲线吗？\n低于居里温度，自旋杂乱无章。高于居里温度——不，等等，方向反了——低于临界参数量，模型一片混乱。高于临界参数量，能力突然涌现。\n曲线的形状几乎一模一样。\n第七章：AI 的两次相变——Double Descent 和 Grokking 如果涌现是 AI 在模型规模维度上的相变，那 AI 在训练时间维度上有没有相变？\n有。而且不止一次。\n7.1 Double Descent——人们差一点错过了大模型 （这个故事的完整版在 《为什么把模型做大就能变聪明？》 里。这里只讲它和相变的关系。）\n在 2019 年之前，机器学习界有一条铁律：模型太大就会过拟合。\n这是经典统计学习理论的核心预测——经典的 U 型曲线。模型太小，欠拟合；模型太大，过拟合；中间有个\u0026quot;甜蜜点\u0026quot;。所有教科书都这么写，所有人都信。\n所以当时没有人认真考虑训练万亿参数的语言模型。 那不就是过拟合的极端案例吗？\n然后 Belkin（2019）和 OpenAI 的 Nakkiran、Sutskever 等人做了一件简单的事：他们没有在过拟合点停下来，而是继续把模型做大——大得多。\n他们看到了一条惊人的曲线：\n测试误差先下降（学习），再上升（过拟合），然后又下降了——而且比之前的最优点还低。\n误差曲线下降了两次。 他们管这叫 Double Descent。\n相变的视角 Double Descent 的\u0026quot;峰值\u0026quot;，出现在一个精确的临界点：模型参数数量 ≈ 训练数据量。在这个点，模型恰好能\u0026quot;背下\u0026quot;所有训练数据，但还没有\u0026quot;富余的空间\u0026quot;去压缩规律。\n这个峰值就是一个相变点——统计物理学家早在 1990 年代就用自旋玻璃理论研究过类似现象（如 Krogh \u0026amp; Hertz 1992 用统计力学分析神经网络泛化）。模型从\u0026quot;记忆模式\u0026quot;到\u0026quot;理解模式\u0026quot;的转变，在数学上和 Ising 模型从无序到有序的转变是同一类现象。\n过了这个临界点，模型进入\u0026quot;过参数化\u0026quot;区域——参数远多于数据。直觉上这应该更糟，但实际上模型反而开始学到真正的规律。\n为什么？ 因为在过参数化区域，参数空间太大了，优化器反而更容易找到简洁的解——就像一个房间太大了，家具反而不会堵在门口。这就是彩票假说的直觉：大模型里藏着一个精巧的小模型，过参数化让这个小模型更容易被找到。\n7.2 Grokking——模型突然\u0026quot;开窍\u0026quot;的那一刻 2021 年，OpenAI 研究者 Alethea Power 等人发表了一篇让所有人震惊的论文。\n他们训练一个小 Transformer 做模算术（$a + b \\bmod 97$），只给它看 30% 的可能输入。\n训练过程：\n100 步：训练集被完全记住——训练准确率 100% 100 到 10000 步：测试集准确率一直是随机猜（≈ 1%）。模型只是在\u0026quot;背答案\u0026quot; 第 10000 步附近：测试准确率突然从 1% 跳到接近 100% 模型突然从\u0026quot;背答案\u0026quot;变成了\u0026quot;理解规则\u0026quot;。\n这个现象叫 Grokking——源自 Heinlein 的科幻小说《异乡异客》，意为\u0026quot;彻底领悟\u0026quot;。\n后续研究（Nanda et al. 2023）用可解释性工具打开模型的内部：\n过拟合阶段：内部是一堆乱七八糟的记忆电路 临界点附近：离散傅立叶变换的表示开始从噪声里浮现 Grokking 之后：整个网络变成一个干净的加法机 这和 Ising 模型的相变精确对应：\nIsing 相变 Grokking 控制参数 温度 T 训练步数 序参数 磁化强度 测试准确率 临界点 居里温度 $T_c$ Grokking 步数 临界点一侧 无序（自旋杂乱） 记忆（测试失败） 临界点另侧 有序（自旋对齐） 理解（测试成功） 过渡方式 锐利、集体、普适 锐利、集体 Double Descent 和 Grokking，是 AI 在两个不同维度上的相变：\nD G o r u o b k l k e i n D g e : s c e n t : 模 训 型 练 大 时 小 间 从 从 小 短 到 到 大 长 → → 经 经 过 过 临 临 界 界 点 点 → → 从 从 记 记 忆 忆 到 到 理 理 解 解 两者都是同一件事：系统在某个参数的连续变化中，经历了集体的、突然的、结构性的重组。\n而且 Nakkiran 等人 2019 年就发现了一件惊人的事：Double Descent 不只在模型规模维度发生——它在训练时间维度也发生。固定模型大小，训练得更久——误差先降后升再降。\n这意味着 Double Descent 和 Grokking 是同一枚硬币的两面。\n第八章：涌现是真的吗？——三种视角 2023 年，Stanford 的 Schaeffer 等人发表了一篇引发激烈争论的论文：Are Emergent Abilities of Large Language Models a Mirage?\n他们的论点：如果把评估指标从\u0026quot;精确匹配（0 或 1）\u0026ldquo;换成\u0026quot;每个 token 的对数概率\u0026rdquo;，那些看似锐利的跳变曲线就变成了平滑的改善。涌现，是离散指标制造出来的幻觉。\n这场争论的核心是认真的科学问题。三种视角各有深刻之处：\n视角一：涌现是测量效应（Schaeffer et al.）\n底层能力平滑提升，只是 0/1 指标制造了视觉上的\u0026quot;跳变\u0026quot;。换成连续指标就消失了。\n视角二：涌现是真实的跳变（Wei et al. / OpenAI）\n人类评估 AI 就是用 0/1 评估的——律师不会看\u0026quot;判例名称 47% 正确\u0026quot;就接受。在实际使用意义上，大模型和小模型之间存在质的差别，这个质的差别是真实的。\n视角三：两者都对，但看的层次不同（统计物理学派）\n底层可以是平滑的，但高层行为仍然表现出相变。这和物理里一模一样：每个水分子都遵守平滑的牛顿方程，但 $10^{23}$ 个分子聚在一起——沸腾就是突然的。\n第三种视角是目前最有解释力的。MIT、Santa Fe Institute、Max Planck Institute 都有研究组在用统计力学的工具分析神经网络。\n上一篇的结论——\u0026ldquo;微观定律是时间对称的，宏观现象却不是\u0026rdquo;——在这里有一个完美的平行：\n微观指标是平滑的，宏观能力却是跳变的。\n举几个具体的例子，你就能感受到这句话的分量：\n翻译质量：用 BLEU 分数（连续指标）评估，从 GPT-3 到 GPT-4 的翻译质量是平滑上升的——每一代提升几个百分点，没有任何戏剧性的跳变。但如果你问\u0026quot;这段翻译能不能直接交给客户用？\u0026quot;（0/1 判断），答案从 GPT-3 的\u0026quot;不行\u0026quot;突然变成 GPT-4 的\u0026quot;可以\u0026quot;。同一个进步，不同的标尺，看到了完全不同的风景。\n数学推理：测量模型在每一步推理中的 token 预测概率，曲线一路平滑上升。但测量\u0026quot;最终答案是否正确\u0026quot;——小模型全错，大模型突然全对。因为数学推理是一条长链：每一步的微小改善在链上累积、放大，直到某个规模——整条链第一次完整地串了起来。这和临界点附近关联长度发散到无穷是一回事：局部的微小改善终于传播到了全局。\n代码生成：让模型写一个冒泡排序。用\u0026quot;每一行的语法正确率\u0026quot;衡量，进步是平滑的。用\u0026quot;程序能不能跑通\u0026quot;衡量——小模型一行都跑不过编译器，某个规模的模型突然能写出完整可执行的程序。从\u0026quot;每行有 80% 的概率正确\u0026quot;到\u0026quot;整段代码能跑\u0026quot;，中间隔着一个 $0.8^{20} \\approx 1%$ 的概率断崖。\n物理学家看到这些例子会说：这就是相变。 水分子在 99 度时的微观运动和 100 度时几乎没有区别（\u0026ldquo;连续指标\u0026quot;下是平滑的），但宏观上液态变成了气态（\u0026ldquo;离散判断\u0026quot;下是跳变的）。微观平滑和宏观跳变从来不矛盾——它们是同一个现实的两个切面。\n不同层次看到不同的东西。这不是幻觉，是涌现的定义本身。\n第九章：为什么不只是比喻 有人会说：\u0026ldquo;AI 涌现和物理相变只是比喻，别当真。\u0026rdquo;\n它们远不只是比喻。 这两件事共享的不是修辞，是数学。\nIsing 模型、神经网络训练、经济泡沫破裂、鸟群突然转向、细胞分化，它们在数学上属于同一族：\n大量元素 + 简单局部规则 + 随某个参数连续改变 → 在某个临界值发生集体的质变。\n第三篇讲了 AI 训练是在\u0026quot;能量景观\u0026quot;上寻找最低点。这一篇告诉你：这片能量景观本身可以发生相变——随着温度（学习率）、模型规模或训练时间的变化，景观的形状会突然重组，局部最小值会突然消失或出现。Grokking 就是模型从一个\u0026quot;记忆谷\u0026quot;突然跌入了一个更深的\u0026quot;理解谷\u0026rdquo;。\n第四篇讲了动量优化器给参数更新加上\u0026quot;惯性\u0026rdquo;。在相变的视角下，这个惯性有了新的含义：它帮助系统在临界点附近越过能量壁垒，让相变更容易发生。没有惯性的 SGD 更容易被困在浅谷里，错过那个更深的\u0026quot;理解谷\u0026quot;。\n物理学花了近百年（从 Van der Waals 1873 到 Wilson 1971）建立了描述\u0026quot;量变到质变\u0026quot;的数学。AI 研究者现在正在借用这套工具。\n这不是巧合，也不是比喻。它是数学。\n第十章：相变告诉我们的三件事 让我们回到 99 度和 100 度之间那一度。\n物理上，那一度里发生的事是：水分子之间的氢键集体瓦解。前面每一度都在积累——但每一度都不够。直到 100 度——突破临界点。\n相变给我们留下三个深刻的直觉。任何时候你看到\u0026quot;突然的、集体的\u0026quot;改变，都可以用这三个问题来理解它：\n一、临界点存在吗？\n有没有一个可调参数（温度、模型大小、训练时长）？有没有一个临界值，过了就\u0026quot;开窍\u0026quot;，没过就不行？这个过渡是锐利的还是平滑的？\n如果是锐利的——你可能在看一个相变。\n二、什么在集体变化？\n相变的核心是集体行为。不是单个原子变化，是一大群元素同时重组。在 AI 里：不是单个神经元突然\u0026quot;理解\u0026quot;了，是一整个表示结构在某个训练步骤突然完成了重组。Grokking 的可解释性研究精确地看到了这一点。\n三、离临界点有多远？\n物理学家最重要的直觉是：你不知道自己离临界点有多远。水在 99 度时不会告诉你\u0026quot;还差一度就沸腾了\u0026quot;。大模型在涌现前一刻也不会告诉你\u0026quot;再加一倍参数就开窍了\u0026quot;。\n这就是为什么 AI 的下一步让所有人害怕又兴奋。我们可能正在某个临界点附近——但\u0026quot;附近\u0026quot;的含义，只有事后才知道。\n尾声：从熵到相变 上一篇的结论是：熵是人类承认无知的勇气。\n这一篇加了一句：相变是这份无知中突然涌现的秩序。\n一个多世纪的物理学告诉我们两件看似矛盾的事：第一，世界在大部分时间里是平滑的、渐进的、可预测的。第二，世界在某些特殊的点是锐利的、集体的、不可预测的。\n熵和相变，是同一枚硬币的两面。熵描述了系统在平滑变化中的统计行为；相变描述了统计行为本身的突变。\nAI 同时继承了这两个概念——交叉熵损失是它的训练目标，涌现能力是它的相变现象。\n我们在等下一个临界点。\n附：Python 小实验——亲眼看见相变 一段 60 行代码，用 Monte Carlo 方法模拟 2D Ising 模型——直接让你看到自旋系统在临界温度附近的相变。\nimport numpy as np # ===== 2D Ising 模型 Monte Carlo 模拟 ===== print(\u0026#34;=== 2D Ising 模型：亲眼看见相变 ===\\n\u0026#34;) N = 32 # 32x32 格子 J = 1.0 # 耦合常数 Tc = 2 * J / np.log(1 + np.sqrt(2)) # Onsager 精确解: ≈ 2.269 STEPS = 50000 # 每个温度的 Monte Carlo 步数 WARMUP = 10000 # 预热步数 def metropolis_step(grid, T): \u0026#34;\u0026#34;\u0026#34;一步 Metropolis 更新：随机翻转一个自旋，按玻尔兹曼概率接受\u0026#34;\u0026#34;\u0026#34; i, j = np.random.randint(0, N, size=2) # 周期边界条件下四个邻居的自旋之和 neighbors = (grid[(i+1)%N, j] + grid[(i-1)%N, j] + grid[i, (j+1)%N] + grid[i, (j-1)%N]) dE = 2 * J * grid[i, j] * neighbors if dE \u0026lt;= 0 or np.random.random() \u0026lt; np.exp(-dE / T): grid[i, j] *= -1 def measure(grid): \u0026#34;\u0026#34;\u0026#34;测量磁化强度（序参数）\u0026#34;\u0026#34;\u0026#34; return np.abs(grid.sum()) / grid.size # 在不同温度下测量磁化强度 temperatures = np.linspace(1.0, 4.0, 25) magnetizations = [] print(f\u0026#34; Onsager 精确临界温度 Tc = {Tc:.3f}\\n\u0026#34;) print(f\u0026#34; {\u0026#39;温度 T\u0026#39;:\u0026gt;8s} {\u0026#39;磁化 |M|\u0026#39;:\u0026gt;10s} 可视化\u0026#34;) print(f\u0026#34; {\u0026#39;─\u0026#39;*8} {\u0026#39;─\u0026#39;*10} {\u0026#39;─\u0026#39;*30}\u0026#34;) for T in temperatures: grid = np.ones((N, N), dtype=int) # 全部 ↑ 开始 # 预热 for _ in range(WARMUP * N * N // 100): metropolis_step(grid, T) # 测量 mag_samples = [] for step in range(STEPS): metropolis_step(grid, T) if step % (N * N) == 0: mag_samples.append(measure(grid)) m = np.mean(mag_samples) magnetizations.append(m) bar = \u0026#34;█\u0026#34; * int(m * 40) marker = \u0026#34; ← Tc 附近！\u0026#34; if abs(T - Tc) \u0026lt; 0.2 else \u0026#34;\u0026#34; print(f\u0026#34; T={T:5.2f} |M|={m:.3f} {bar}{marker}\u0026#34;) # 打印观察结论 print(f\u0026#34;\\n ━━━ 观察 ━━━\u0026#34;) print(f\u0026#34; T \u0026lt; {Tc:.1f} (低温): 自旋集体对齐, |M| ≈ 1 → 有序相\u0026#34;) print(f\u0026#34; T ≈ {Tc:.1f} (临界): 磁化急剧下降 → 相变！\u0026#34;) print(f\u0026#34; T \u0026gt; {Tc:.1f} (高温): 自旋随机朝向, |M| ≈ 0 → 无序相\u0026#34;) print(f\u0026#34;\\n 这就是 Ising 模型的相变：量变到质变，平滑变突然。\u0026#34;) print(f\u0026#34; 涌现能力的曲线，长得几乎一模一样。\u0026#34;) 运行后你会看到：\n低温（T \u0026lt; 2.3）：磁化 |M| 接近 1——所有自旋整齐排列 临界温度附近（T ≈ 2.27）：磁化急剧下降 高温（T \u0026gt; 2.3）：磁化接近 0——自旋完全随机 曲线的形状和 AI 涌现能力的曲线几乎一模一样。它们不是\u0026quot;像\u0026quot;——它们是同一个数学。\n延伸阅读 Wei et al., 2022, Emergent Abilities of Large Language Models Schaeffer et al., 2023, Are Emergent Abilities of Large Language Models a Mirage? Power et al., 2022, Grokking: Generalization Beyond Overfitting Nanda et al., 2023, Progress Measures for Grokking via Mechanistic Interpretability Belkin et al., 2019, Reconciling Modern ML Practice and the Bias-Variance Trade-off — Double Descent 命名论文 Nakkiran et al., 2019, Deep Double Descent — 三个维度上的 Double Descent Kenneth G. Wilson, 1971, Renormalization Group and Critical Phenomena（诺贝尔奖基础） 本系列内部链接： 《看见物理（三）：能量》 — 能量景观与损失函数 《看见物理（四）：动量》 — Momentum 优化器 《看见物理（五）：熵》 — 熵、玻尔兹曼分布、Softmax 《为什么把模型做大就能变聪明？》 — Double Descent 完整展开 《玻尔兹曼的遗产》 — S = k ln W 的深层故事 本文首发于「AI 学习笔记」博客：https://Jason-Azure.github.io/ai-blog/\n微信公众号：AI-lab学习笔记\n系列文章完整列表见 标签：看见物理\n","permalink":"https://jason-azure.github.io/ai-blog/posts/see-physics-6-phase-transition/","summary":"水加热到 99 度还是水，加到 100 度就成了水蒸气——这一度里发生了什么？磁铁加热到居里温度就突然失去磁性，为什么是突然？GPT-3 到 GPT-4 的『涌现能力』像凭空出现，又为什么？物理学用了一个多世纪建立了一套数学描述『量变到质变』——它叫临界现象。今天 AI 研究者在讨论的 emergent abilities，是它的直系后裔。","title":"看见物理（六）：相变——量变到质变的数学"},{"content":"上一篇回顾 上一篇讲了相变——一群水分子在 99 度到 100 度之间的那一秒，集体做出了决定：不再当液体。\n相变教我们：世界在大多数时候是平滑的，但在某些特殊点上会发生集体的、锐利的、不可预测的跳变。 涌现能力、Grokking、Double Descent——它们都是这套\u0026quot;突然\u0026quot;的现代表弟。\n但相变再神奇，它描述的仍然是一群粒子的行为。温度、密度、磁化强度，都是统计量——你把 10²³ 个粒子的行为平均一下才能看到相变。\n那单个粒子呢？\n你可能以为：个体行为平凡无奇，奇妙的是\u0026quot;群体\u0026quot;。\n但量子力学告诉我们，真正的诡异不在大，而在小。一颗电子，就足以颠覆整个古典世界观。\n📖 给不太熟悉量子力学的读者：30 秒预备知识 什么是\u0026quot;量子\u0026quot;？ 20 世纪初，物理学家发现原子尺度上，能量、角动量这些物理量不是连续的——它们总是一份一份地出现，像台阶不像斜坡。\u0026ldquo;量子\u0026rdquo;（quantum）就是\u0026quot;一份\u0026quot;的意思。\n什么是\u0026quot;量子力学\u0026quot;？ 就是描述原子、电子、光子这类小东西如何运动的新物理学。我们日常的牛顿力学（苹果落地、汽车加速）在原子尺度失效了，量子力学接手。\n它和经典物理最大的差别？ 经典物理说：\u0026ldquo;每个粒子在每个时刻都有确定的位置和速度，我们只是可能不知道。\u0026rdquo; 量子力学说：\u0026ldquo;测量之前，这些属性根本就没有确定值。\u0026rdquo;\n本文会反复出现的几个词：\n波函数 ψ（读 psi）：描述\u0026quot;一个粒子可能在哪里\u0026quot;的数学对象 |ψ|²：ψ 的模平方，给出\u0026quot;在某个位置找到粒子的概率\u0026quot; 测量 / 观察：把装置对准粒子、读出一个结果的这个动作 坍缩：测量瞬间，波函数从\u0026quot;弥散的云\u0026quot;变成\u0026quot;一个点\u0026quot;的过程 你不需要会任何公式。 只需要记住一条：\u0026ldquo;在量子世界，概率不是我们无知的借口，概率就是世界本身的运作方式。\u0026rdquo;\n系列导航\n▹ 第一篇：运动——世界从\"动\"开始 ▹ 第二篇：力——看不见的手 ▹ 第三篇：能量——不灭的守恒量 ▹ 第四篇：动量——惯性的力量 ▹ 第五篇：熵——承认无知的勇气 ▹ 第六篇：相变——量变到质变的数学 ▸ 第七篇（本文）：量子——观察者与被观察 第一章：爱因斯坦下半生不得安宁的那句话 1927 年 10 月，比利时布鲁塞尔，索尔维（Solvay）国际物理学会议。\n29 个人挤进一张合影——其中 17 个人拿过或将要拿诺贝尔奖。坐在前排正中的是爱因斯坦，他 48 岁，是这个房间里最有名的人。\n但主角不是他。主角是一群比他年轻十几岁的人：玻尔、海森堡、薛定谔、狄拉克、泡利——他们带着一套刚刚拼凑好的新物理学：量子力学。\n这套理论的核心主张，让爱因斯坦无法接受：\n粒子的位置不是一个确定的数，而是一个概率分布 在你测量之前，问\u0026quot;电子在哪里\u0026quot;这个问题没有答案 不是\u0026quot;我们不知道它在哪\u0026quot;——而是它根本就不在任何地方 会议间隙，爱因斯坦对玻尔说了一句后来被引用了一万次的话：\n\u0026ldquo;上帝不掷骰子。\u0026rdquo;\n—— Einstein to Bohr, 1927\n玻尔毫不客气地回了一句：\n\u0026ldquo;爱因斯坦，不要再告诉上帝该做什么了。\u0026rdquo;\n这场辩论持续了整整 28 年，直到爱因斯坦 1955 年去世。他没有赢。\n但真正的问题不在\u0026quot;谁赢\u0026quot;——真正的问题是：玻尔说的那套到底是什么意思？\n在没人看的时候，电子在哪里？\n这一篇，就是关于这个看似无聊、实则深不见底的问题。\n第二章：双缝实验——粒子在等什么？ 在讲量子力学之前，让我先给你看一个实验。它简单到可以在高中物理课里演示，奇怪到每一个看懂的人都会失眠。\n实验装置： 一支电子枪，朝一块挡板发射电子。挡板上开两道细缝。缝后面放一张感光屏。\n电子枪一次只发射一个电子。每个电子要么穿过左缝，要么穿过右缝，然后打在感光屏的某个位置上。\n你关掉灯，开枪。一声响，屏上出现一个亮点。\n再一声响，又一个亮点。\n再，再，再——\n你打了 10 个，看起来是随机分布。打了 100 个，还是随机。打了 1000 个——\n屏上慢慢浮现出一排明暗相间的干涉条纹。\n每一颗电子都是随机落点，累积到 1000 颗以后，干涉条纹（|ψ|² 的理论分布）自己浮现——它是全体未来的统计，不是任何一颗粒子的\"真实路径\"。\n等等。这不对劲。\n干涉条纹是\u0026quot;波\u0026quot;才有的现象。 当两列波同时穿过两条缝，它们会在某些位置同相叠加（更亮），在某些位置反相抵消（更暗）。这就是光学课讲过的托马斯·杨实验（1801）。\n但电子不是波，电子是粒子。 而且你是一个一个发的，每次只有一个电子在装置里——它在和谁干涉？\n一个可能的解释：每个电子在穿过缝时，分成两半，一半穿左缝，一半穿右缝，然后自己和自己干涉。\n那我们来验证一下。在左缝旁边放一个小探测器，看看电子到底走了哪一边。\n实验重做。一个个电子打过去。\n屏上——\n干涉条纹消失了。 只剩下两团随机的亮点堆——左缝一团，右缝一团，像两个独立的散弹目标。\n你一看它，它就\u0026quot;老实\u0026quot;了。\n你把探测器拿掉，不看。条纹又回来了。\n放回去看。条纹又消失。\n这个实验的恐怖之处在于：\u0026ldquo;看\u0026quot;不是一个被动的动作。你放一个探测器，不管这探测器多温柔多无害，只要它能记录\u0026quot;电子从哪边过\u0026rdquo;，这个信息一旦存在，干涉就死了。\n物理学家把这叫做\u0026quot;which-path information\u0026quot;。它的含义很残酷：\n有些信息的存在方式，本身就改变了实验的结果。\n第三章：波函数——世界的\u0026quot;可能性云\u0026quot; 双缝实验逼着物理学家接受一件事：电子不是小弹珠。 弹珠走一条路，但电子走\u0026quot;所有的路\u0026quot;。\n于是有了波函数（wave function）。\n1926 年，奥地利物理学家薛定谔（Erwin Schrödinger）写下了那条后来挂在无数大学办公室上的方程：\n$$ i\\hbar \\frac{\\partial \\psi}{\\partial t} = \\hat{H} \\psi $$\n你不需要看懂它——你只需要知道 ψ（\u0026ldquo;普赛\u0026rdquo;）代表什么。\nψ(x, t) 不是粒子的位置。 它是一个复数函数，对每个时空点 (x, t) 给出一个值。\n真正有物理意义的是它的模的平方 |ψ(x, t)|²，玻恩（Max Born，1926）告诉我们：\n|ψ(x, t)|² = 在时刻 t、位置 x 找到这个粒子的概率密度。\n注意这句话的微妙：ψ 不是粒子，ψ 是关于粒子的概率分布。一颗电子对应一朵\u0026quot;可能性的云\u0026quot;，这朵云在空间中伸展、振荡、弥散。\n在双缝实验里，ψ 穿过左缝产生一朵云，穿过右缝产生另一朵云，两朵云在屏前相遇，干涉。屏上每个位置的亮度 = |ψ 左 + ψ 右|²——这就是条纹。\n所以\u0026quot;一个电子同时走两条缝\u0026quot;并不是说电子像果冻一样真的被掰成两半。它的意思是：\nψ 这朵云既可以穿过左缝，也可以穿过右缝——而\u0026quot;哪一朵真正发生了\u0026quot;，在没测量前没有答案。\n然后你测量。你把探测器放在屏上，记下电子打在哪里。\n这时候 ψ 做了一件极其奇怪的事：它瞬间\u0026quot;坍缩\u0026quot;——从一朵弥散在整个屏上的云，压缩成你刚刚测到的那一个点。\n测量前：|ψ|² 是一片\"可能性的云\"。测量瞬间：云坍缩成一个确定的点。这不是云\"原本就在那里只是我们看不清\"——是看这个动作本身改写了云。\n坍缩之前，粒子\u0026quot;在所有地方又不在任何地方\u0026quot;。 坍缩之后，粒子\u0026quot;就在这里\u0026quot;。\n中间发生了什么？\n薛定谔方程不能回答这个问题——因为坍缩不是由它描述的。薛定谔方程告诉你波函数怎么平滑演化，但测量那一瞬的\u0026quot;跳\u0026quot;，方程里没有。\n物理学给这个跳起了一个含糊的名字：测量问题（measurement problem）。\n而\u0026quot;测量\u0026quot;到底是什么？这个问题从 1927 年问到今天，没有公认的答案。\n第四章：薛定谔的猫 薛定谔自己对这套理论也不舒服。他本来是想用 ψ 来拯救古典物理——他以为 ψ 可以像声波一样是某种真实的扰动。\n但玻恩和玻尔说：不，ψ 只是概率。\n薛定谔气坏了。1935 年，他写了一篇论文，里面编了一个极其恶毒的思想实验，打算一锤子把这套概率解释砸扁。这就是传说中的薛定谔的猫。\n薛定谔的思想实验 一只活猫，关在一个铁盒里。\n盒里有：\n一个放射性原子（每小时有 50% 概率衰变） 一个盖革计数器（探测衰变） 一个毒气瓶（被计数器触发后释放毒气） 一小时后，原子的波函数是\u0026quot;衰变 + 未衰变\u0026quot;的叠加态。\n按量子力学的规则，整个系统——原子、计数器、毒气、猫——都应该处于叠加态。\n问：打开盒子之前，猫是死是活？\n薛定谔的目的是归谬：一颗原子在叠加态我能忍，但猫在\u0026quot;又死又活\u0026quot;的叠加态——这太荒谬了，说明这套理论有毛病。\n结果事与愿违。 物理学家们看完文章说：没错，猫就是又死又活的。\n这不是一个让量子力学丢脸的思想实验——这是一个把测量问题逼到台前的思想实验。\n因为它问了一个无法回避的问题：\n\u0026ldquo;测量\u0026quot;到底是什么？是探测器盖革计数器咔嗒一声？是毒气释放？是猫死了？是你打开盒子？还是你意识到猫死了？\n这条链条，坍缩到底发生在哪一环？\u0026rdquo;\n如果坍缩发生在原子层面——那么为什么电子双缝不在电子离开缝的瞬间就坍缩？ 如果坍缩发生在宏观物体层面——那么\u0026quot;宏观\u0026quot;的界线在哪里？10 个原子？10¹⁰ 个？ 如果坍缩发生在意识接触信息的瞬间——那在这之前，月亮真的在那里吗？ 这些问题至今没有公认答案。物理学界分成了好几个教派：\n哥本哈根派（Bohr, Heisenberg）：别问这么多，计算出来对得上实验就够了。\u0026ldquo;Shut up and calculate.\u0026rdquo; 多世界派（Everett, 1957）：坍缩是幻觉，每次测量都分裂出一个平行宇宙。又死又活的猫分叉成\u0026quot;死猫宇宙\u0026quot;和\u0026quot;活猫宇宙\u0026quot;。 隐变量派（de Broglie, Bohm）：粒子其实一直有确定位置，我们只是看不到\u0026quot;隐变量\u0026quot;。 QBism / 量子贝叶斯派（Fuchs, Mermin, 2001+）：波函数不是世界的状态——是观察者的信念。—— 本文第七章要讲的主角。 在继续之前，我们得先处理掉一个重要的反对意见——隐变量派。因为爱因斯坦就是这一派的精神领袖，而他 1935 年还有最后一张牌没打。\n第五章：爱因斯坦的最后一击——EPR 与贝尔 1935 年，爱因斯坦联合两位年轻同事波多尔斯基（Podolsky）和罗森（Rosen）发表了一篇论文，标题直接掀桌子：《量子力学对物理实在的描述是否完备？》\n这就是物理学史上著名的 EPR 悖论。\n爱因斯坦的论证思路大概是这样的：\n制造两个纠缠的粒子 A 和 B，让它们飞向相反方向，分开很远——比如 A 在地球，B 在月球。 按量子力学，A 和 B 的属性（比如自旋）在测量前都是\u0026quot;叠加的\u0026quot;。 但 A 和 B 有一个守恒律：它们的自旋必须相反。 现在你测量 A，发现自旋朝上——那 B 的自旋必然朝下。 问题来了： B 是怎么\u0026quot;瞬间\u0026quot;知道自己应该朝下的？信息不是不能超光速吗？ 爱因斯坦得出一个漂亮的结论：要么量子力学允许超光速通信（他坚决不信），要么 A 和 B 其实早就各自有确定的自旋——只是量子力学没告诉我们。 后者就是\u0026quot;隐变量\u0026quot;。\n爱因斯坦的判决：量子力学是一个不完备的理论。真实的物理图像比它更深。\n这个论证漂亮到让当时的玻尔头皮发麻。玻尔回应了，但回应含糊，大家都没听懂——也包括玻尔自己。\n这件事就这样悬而未决了 29 年。\n1964 年，北爱尔兰一个叫约翰·贝尔（John Bell）的物理学家做了一件看似不可能的事：他把\u0026quot;是否有隐变量\u0026quot;这个哲学问题，变成了一个可以用实验验证的数学不等式。\n这就是贝尔不等式。它的核心思想是这样的：\n如果爱因斯坦是对的（存在隐变量，且没有超光速），那么对纠缠粒子做某些特定组合的测量时，一个关于相关度的数值必须 ≤ 2。\n如果玻尔是对的（量子力学是完备的），那个数值可以达到 2√2 ≈ 2.83。\n两种世界观给出了不同的数字。谁对谁错，做实验就行。\n1972 年，第一次实验。1982 年，法国物理学家 Alain Aspect 做了第一个真正严谨的实验。结果——\n2.70 ± 0.05。 明显大于 2。\n爱因斯坦错了。\n之后四十年，不同实验室用不同粒子、不同距离、不同方法，把所有可能的漏洞一个个堵上。2015 年，代尔夫特大学做出了\u0026quot;无漏洞贝尔实验\u0026quot;——结论同样无情：\n不存在隐变量。量子力学就是完备的。世界在根子上是概率的。\n2022 年，诺贝尔物理学奖颁给了 Aspect、Clauser、Zeilinger 三人——表彰他们用实验证明了：\n爱因斯坦错了，而且错得很彻底。\n第六章：概率到底是什么？ 好。让我们暂停一下。\n我们刚刚在三章里走完了量子力学最戏剧性的那段路：双缝 → 波函数 → 坍缩 → EPR → 贝尔 → 诺奖。结论是：世界在根子上就是概率的。\n但这句话——\u0026ldquo;世界在根子上就是概率的\u0026rdquo;——到底是什么意思？\n你可能没意识到，它其实非常古怪。\n让我们把它和上一篇讲过的经典概率作对比。\n经典概率 vs 量子概率 经典概率（骰子、热力学、熵）：\n骰子掉在桌上是 3 点——这个结果由骰子的精确初始条件 + 空气流动 + 桌面摩擦力唯一决定 我们说\u0026quot;有 1/6 概率是 3 点\u0026quot;只是因为我们不知道这些初始条件 概率 = 对无知的定量描述 这是上一篇讲的熵：熵 = 你不知道的信息量 量子概率（电子位置、自旋）：\n电子落在屏的 x 位置——贝尔实验告诉我们，这个结果不是由任何隐藏变量决定的 即使你知道全宇宙的所有信息，你仍然只能说\u0026quot;有 |ψ(x)|² 的概率落在 x\u0026quot; 概率不是无知，概率就是实在本身 这是量子力学最让人睡不着觉的地方。\n经典概率是一把\u0026quot;无知的遮羞布\u0026quot;——只要你愿意努力，原则上可以把概率消除，换成确定性。\n量子概率是\u0026quot;布后面没有东西\u0026quot;。 遮羞布就是真相。\n这个世界观让很多物理学家无法接受。因为你可以追问：\n如果概率不是对某个底层真相的无知，那它是关于什么的？ 如果电子没有确定位置，那\u0026quot;电子\u0026quot;这个词到底在指什么？ \u0026ldquo;一个粒子\u0026rdquo; 和 \u0026ldquo;一个概率分布\u0026rdquo;——哪个才是实在？ 整整一个世纪，物理学家用三种不同的答案来应付：\n别问（哥本哈根派）：闭嘴计算。 都在（多世界派）：每一种可能都真实存在，分裂成多个宇宙。 信念（QBism）：波函数不是关于世界的陈述，是关于你的陈述。 前两种答案都试图保住实在——要么让它躲在\u0026quot;不该问\u0026quot;的角落，要么让它膨胀成无数个宇宙。\n只有第三种，彻底放弃了\u0026quot;实在\u0026quot;这个旧框架——然后给了我们一个惊人的新视角。\n这个视角，和你上个月读过的一篇文章有关。\n第七章：量子贝叶斯主义——Fuchs 的答案 你还记得贝叶斯定理那篇文章里那个医学检测的题目吗？\n一个罕见病患病率 0.1%，检测准确率 99%。你的检测结果是阳性。真正患病的概率是多少？\n答案不是 99%，是 9%。\n为什么？因为你有先验（绝大多数人没病）。阳性这个证据确实让你更新了信念，但它没把你推到 99%，只推到了 9%。\n贝叶斯定理的简化形式是：\n$$ \\underbrace{P(\\text{病} | \\text{阳性})}{\\text{后验}} \\propto \\underbrace{P(\\text{阳性} | \\text{病})}{\\text{似然}} \\times \\underbrace{P(\\text{病})}_{\\text{先验}} $$\n先验 × 证据 = 后验。\n你的每次\u0026quot;学习\u0026quot;都是这样一个更新。贝叶斯派对概率的主张是：概率不是\u0026quot;客观的频率\u0026quot;，而是\u0026quot;某个主体在某个证据状态下的合理信念\u0026quot;。\n现在请你戴上这副眼镜，重读量子测量。\n2001 年，美国物理学家 Christopher Fuchs 和两位同事（Schack, Caves）提出一个激进的想法，后来叫 QBism（Quantum Bayesianism，量子贝叶斯主义）：\n波函数 ψ 不是世界的状态。\n|ψ(x)|² 不是一个\u0026quot;客观的概率\u0026quot;——它是观察者关于\u0026quot;如果我测量会得到什么\u0026quot;的主观信念。\n测量不是\u0026quot;揭开真相\u0026quot;——测量是观察者进行一次贝叶斯更新的过程。\n坍缩不是物理事件——坍缩就是你的信念从先验分布更新到后验分布。\n让我们一一翻译：\n贝叶斯（医学检测） 量子（QBism 视角） 先验 P(病) = 0.1% 波函数 |ψ|² ：测量前的信念分布 证据：检测阳性 测量事件：探测器响了 似然 P(阳性|病) 算符的谱：每个可能结果对应的投影 后验 P(病|阳性) = 9% 坍缩后的波函数：新的信念分布 左边：证据（阳性）进来，后验压缩到 9%。右边：测量发生，后验压缩到一个点。数学是同一个——先验 × 证据 = 后验。量子只是把这句话推到了极限：先验就是世界的全部。\n这张图的核心是：左边和右边用的是同一套数学。\n先验 × 证据 = 后验。\n只不过在医学检测里，先验是关于\u0026quot;病人到底有没有病\u0026quot;的信念——背后有一个事实在那里，我们只是不知道。在量子测量里，QBism 说：先验就是世界的全部。没有\u0026quot;背后的事实\u0026quot;，ψ 就是一切。测量那一刻，观察者把自己的信念更新了，仅此而已。\n这个视角一下子解决了薛定谔的猫那个\u0026quot;坍缩到底发生在哪一环\u0026quot;的问题——\nQBism 的答案：坍缩发生在观察者学习到新信息的那一刻。 它不是一个物理事件，它是一个信息事件。猫对自己的状态没有疑问；盖革计数器也没有；\u0026ldquo;又死又活\u0026quot;只存在于还没打开盒子的你的信念里。你打开盒子，你更新信念，坍缩就发生了——但这个坍缩只发生在你这里。它甚至不是同时发生在你和旁边同事身上：同事还没看，对他来说猫还是叠加的。\n这听起来像唯我论，但 QBism 小心地避开了。它不说\u0026quot;意识创造实在\u0026rdquo;——它只说：\u0026ldquo;波函数是关于我的，不是关于猫的\u0026rdquo;。\n就像概率 0.1% 是关于\u0026quot;我这个预测者\u0026quot;的，不是关于\u0026quot;病人体内\u0026quot;的。\n这个观点没有解决所有问题（物理学没有哪派能解决所有问题）。但它完成了一件极其漂亮的事：\n它让量子力学变成了贝叶斯定理的一种极端形式——一种把\u0026quot;信念\u0026quot;推到实在根基上的贝叶斯定理。\n你去年读了贝叶斯文章。那篇文章告诉你：\u0026ldquo;学习就是信念的更新。\u0026rdquo;\n这一篇告诉你：物理学 100 年的争吵，最后绕回了同一句话。\n第八章：AI 里的\u0026quot;波函数\u0026quot; 到这里，如果你一直跟着这个系列走，你可能已经猜到了 AI 的位置。\n让我们把 QBism 的结构拿到手边，对着 LLM 比划一下。\nLLM 生成文字的过程是什么？\n给定一段上文，模型输出一个关于\u0026quot;下一个 token\u0026quot;的概率分布。比如你输入：\n\u0026ldquo;今天天气很\u0026rdquo;\n模型输出大致是：\nToken 概率 好 0.42 不错 0.18 糟糕 0.11 冷 0.09 ……（几万种可能）…… … 这个分布就是模型关于\u0026quot;下一个字该是什么\u0026quot;的信念。\n你执行一次采样，随机抽一个 token。比如抽到\u0026quot;好\u0026quot;。\n看到了吗？\n采样前：分布弥散在整个词表上——\u0026ldquo;好\u0026quot;和\u0026quot;糟糕\u0026quot;都有可能 采样后：一个具体的 token 出现了 下一步推理开始时：模型基于这个新 token 重新计算下一个分布 这个过程和波函数坍缩在数学结构上是一样的：\n$$ \\underbrace{p(\\text{下一个 token})}{\\text{先验分布}} ;\\xrightarrow{\\text{采样}}; \\underbrace{\\text{具体的 token}}{\\text{观察事件}} ;\\xrightarrow{\\text{新 context}}; \\underbrace{p(\\text{再下一个 token})}_{\\text{更新后的先验}} $$\n对照一下：\n量子（QBism） LLM 生成 波函数 ψ 模型输出的 next-token 分布 |ψ|² softmax 概率 测量事件 sampling（采样 + 解码） 坍缩到具体结果 生成出一个具体 token 温度（热力学类比） temperature 参数（控制分布锐度） 这个对应不是比喻——采样本身就是\u0026quot;从概率分布中抽一个点\u0026quot;的数学操作，波函数坍缩也是\u0026quot;从 |ψ|² 中抽一个点\u0026quot;的数学操作。它们是同一个动词。\n再看一个更直接的例子：扩散模型（Diffusion Models，Stable Diffusion / DALL-E 的底层）。\n扩散模型的生成过程更像物理：\n从一张纯噪声的图开始（最大熵 = 最均匀的\u0026quot;先验\u0026rdquo;） 一步步去噪，每一步都是在\u0026quot;根据已经确定的部分，更新对剩余部分的信念分布\u0026quot; 最后收敛到一张具体的图（\u0026ldquo;坍缩\u0026quot;完成） 这整个过程用到的数学叫\u0026quot;随机微分方程的逆过程\u0026rdquo;——它字面上就是薛定谔方程的扩散版。2021 年 Yang Song 和 Stefano Ermon 的经典论文 Score-Based Generative Modeling 就是在把这个数学骨架讲清楚。\n你下次用 Stable Diffusion 生成一张图——注意看进度条。你看到的不只是像素在变清晰，你看到的是一个高维波函数在被你\u0026quot;一点点测量\u0026quot;。\n再往前一步，人类教 AI 的核心流程——后训练（RLHF、DPO、SFT）——本质也是贝叶斯更新：\n预训练：在互联网海量数据上形成先验（模型的初始信念分布） SFT / RLHF：用高质量的人类反馈作为证据（似然） 微调后的模型：新的后验信念分布 这条链条在贝叶斯定理那篇里详细展开过。这里我们多加一句：这条链条的数学形状，和量子测量是同一个形状。\n所以 LLM 生成文字、扩散模型画画、RLHF 对齐——三件事表面上毫不相关，底层都是同一件事：\n维护一个关于世界的信念分布，然后在证据到来时，按贝叶斯的方式更新它。\n这就是 AI。这也是量子力学。这也是一个牧师 260 年前在英国小镇上写下的那条公式。\n第九章：量子留给我们的三个直觉 让我们回到那只又死又活的猫。\n量子力学走了 100 年，从爱因斯坦不服到贝尔不等式实验证伪再到 QBism 的重新解读。它给我们留下了三个深刻的直觉——任何你未来读 AI、读认知科学、读任何关于\u0026quot;信念与事实\u0026quot;的话题时，都可以用它们来解构。\n一、观察不是被动的。\n在经典世界里，你看一朵花不改变这朵花。在量子世界里，\u0026ldquo;看\u0026quot;这个动作定义了\u0026quot;被看到的是什么\u0026rdquo;。\n这不是玄学——这是贝尔不等式实验反复验证的事实。它的现代含义是：你对世界的描述，和你用什么方式问问题，紧紧绑在一起。 AI 问答里的\u0026quot;prompt 决定答案的质量\u0026quot;——是这件事的一个庸俗投影。\n二、信念和实在的界限是模糊的。\nQBism 的终极主张是：波函数是关于\u0026quot;你\u0026quot;的，不是关于\u0026quot;它\u0026quot;的。\n这听起来像唯心主义，但它其实是一种极端的操作主义：如果有两种描述在所有可能实验中都给出相同预测，它们就是同一件事。 \u0026ldquo;世界的真实状态\u0026quot;这种形而上学语言，不能做出任何预测，所以它可以被安全地扔掉。\n这个态度在 AI 里有直接对应。LLM 的\u0026quot;理解\u0026quot;是否\u0026quot;真实\u0026rdquo;？它是否\u0026quot;真的知道\u0026quot;自己在说什么？ QBism 给你一个工具：别问它的内部状态是什么，问它和环境的交互满足什么规则。 如果规则对得上，描述就够了。\n三、概率是第一性原理。\n160 年前，玻尔兹曼说概率来自无知。100 年前，量子力学说概率就是实在本身。\n这两件事不矛盾——它们是同一个光谱的两端。贝叶斯定理把它们缝在了一起：任何概率都是关于某个主体在某个信息状态下的合理信念。 主体可以是物理学家（熵），可以是测试病人的医生（医学贝叶斯），可以是生成文字的 LLM（next-token 分布），可以是宇宙本身（量子 |ψ|²）。\n它们用的是同一套数学。 这不是巧合——这是这个系列从第一篇到现在一直在铺的暗线：物理学和 AI 共享的，不是某个比喻，而是同一套描述世界的工具。\n尾声：从相变到量子 上一篇的结论是：相变是无知中突然涌现的秩序。\n这一篇加了一句：量子是秩序本身的不可消除的不确定性。\n相变讲的是群体的突然：一群水分子在一度之内集体决定不再当液体。 量子讲的是个体的不确定：一颗电子在测量前不在任何地方。\n这两个\u0026quot;突然\u0026quot;合起来，就是 AI 今天的样貌——\nLLM 的涌现能力：模型规模的相变 LLM 的 token 采样：波函数的坍缩 RLHF 训练：贝叶斯式的信念更新 一个由相变描述的宏观对象，内部运转着量子式的微观机制，通过贝叶斯式的规则学习世界。 三层物理学，全部在现代 AI 系统里被同时启用。\n下一篇（第八篇），是这个系列的收官：对称性——诺特、杨振宁、宇宙的骨架。我们会从守恒律回到最开始（第四篇动量），看看诺特定理如何把\u0026quot;守恒\u0026quot;和\u0026quot;对称\u0026quot;焊成同一件事，再看杨振宁如何把同一个想法推广到整个粒子物理的\u0026quot;标准模型\u0026quot;。对称性是整个物理学的隐藏 API——也是 AI 里等变性（equivariance）、归一化、旋转不变卷积的数学骨架。\n在那之前——如果你这一篇只带走一句话，让它是：\n量子力学不是关于\u0026quot;粒子在哪里\u0026quot;的理论，它是关于\u0026quot;一个观察者在何种信息状态下、持有何种合理信念\u0026quot;的理论。\n上帝不掷骰子。是你。\n附：Python 小实验——亲手做一次双缝 一段 30 行代码，从 |ψ|² 采样来重建干涉条纹。体会\u0026quot;每一发都是随机，累积起来是秩序\u0026quot;——这就是量子概率的全部精神。\nimport numpy as np print(\u0026#34;=== 双缝实验：从 |ψ|² 采样看到干涉条纹 ===\\n\u0026#34;) # 定义双缝产生的 |ψ|²（归一化的概率密度） x = np.linspace(-6, 6, 600) envelope = np.exp(-x**2 / 14.0) # 缝的宽度决定的整体包络 pattern = envelope * np.cos(1.8 * x)**2 # 两列波干涉：cos² 条纹 pattern += 0.02 # 加一个小底噪免得条纹绝零 pattern /= pattern.sum() # 归一化 → 概率分布 # 分阶段模拟\u0026#34;发射 n 个电子\u0026#34; for n in [5, 50, 500, 5000]: hits = np.random.choice(x, size=n, p=pattern) # 用 40 个 bin 画简单字符直方图 counts, edges = np.histogram(hits, bins=40, range=(-6, 6)) max_c = counts.max() if counts.max() \u0026gt; 0 else 1 print(f\u0026#34;━━━ 发射 {n} 个电子 ━━━\u0026#34;) for c in counts: bar = \u0026#34;█\u0026#34; * int(c / max_c * 40) print(f\u0026#34; {bar}\u0026#34;) print() print(\u0026#34;观察：\u0026#34;) print(\u0026#34; n=5： 杂乱 —— 你说\u0026#39;这是粒子行为，随机的\u0026#39;\u0026#34;) print(\u0026#34; n=50： 有点起伏 —— 还不清楚\u0026#34;) print(\u0026#34; n=500：条纹开始显形 —— 波函数在浮现\u0026#34;) print(\u0026#34; n=5000：清晰的干涉条纹 —— |ψ|² 被完整重建\u0026#34;) print() print(\u0026#34;没有任何一颗电子\u0026#39;知道\u0026#39;干涉条纹的存在。\u0026#34;) print(\u0026#34;条纹是 |ψ|² 的统计——是全体未来的分布，不是任何个体的路径。\u0026#34;) 运行这段代码，你会看到条纹从噪声中浮现。这个过程——从采样累积出分布——就是物理学家做量子实验时，在屏幕前做了一万次的事情。\n也是每次 LLM 生成一段话时，在内部隐藏做的事情。\n延伸阅读 Niels Bohr, 1928, The Quantum Postulate and the Recent Development of Atomic Theory Albert Einstein, Boris Podolsky, Nathan Rosen, 1935, Can Quantum-Mechanical Description of Physical Reality Be Considered Complete? —— EPR 原论文 John S. Bell, 1964, On the Einstein-Podolsky-Rosen Paradox —— 贝尔不等式 Alain Aspect et al., 1982, Experimental Test of Bell\u0026rsquo;s Inequalities Using Time-Varying Analyzers The Nobel Prize in Physics 2022 —— Aspect, Clauser, Zeilinger Christopher A. Fuchs, 2010, QBism, the Perimeter of Quantum Bayesianism N. David Mermin, 2014, Physics: QBism puts the scientist back into science, Nature 507 Hansen et al., 2015, Loophole-free Bell inequality violation using electron spins separated by 1.3 km —— 代尔夫特无漏洞实验 Yang Song, Stefano Ermon, 2021, Score-Based Generative Modeling through Stochastic Differential Equations —— 扩散模型的 SDE 数学骨架 本系列内部链接： 《看见物理（五）：熵》 —— 经典概率 = 无知 《看见物理（六）：相变》 —— 群体的突然 《贝叶斯没有想到的事》 —— 本文第七、八章的前传 本文首发于「AI 学习笔记」博客：https://Jason-Azure.github.io/ai-blog/\n微信公众号：AI-lab学习笔记\n系列文章完整列表见 标签：看见物理\n","permalink":"https://jason-azure.github.io/ai-blog/posts/see-physics-7-quantum/","summary":"1927 年的索尔维会议，爱因斯坦扔下一句『上帝不掷骰子』。100 年后，答案渐渐浮现：不是上帝在掷骰子——是『测量』这个动作本身在创造骰子的点数。量子力学不是『粒子在跑』，是『信念在更新』。它是贝叶斯定理的终极物理版：先验 × 证据 = 后验，只是这一次，先验就是世界的全部。","title":"看见物理（七）：量子——观察者与被观察"},{"content":"序:从\u0026quot;动\u0026quot;开始,到\u0026quot;不动\u0026quot;结束 这个系列的开篇,我们从一辆滑过桌面的滑块讲起,问的是同一个问题:\n什么在动?\n那时我们刚学会用速度、加速度去捕捉\u0026quot;变化\u0026quot;。世界看起来由各种\u0026quot;动\u0026quot;组成——力让东西动,能量让东西动,粒子在动,场在动,星系在动,宇宙在膨胀。\n八篇走到尾声,我想换一个问题来作结:\n在所有这些动里,什么不动?\n这个问题听起来像悖论。但它恰好是物理学过去三百年最深的暗线——也是 20 世纪最出乎意料的发现:整个物理学,本质上不是关于\u0026quot;事物\u0026quot;的学问,而是关于\u0026quot;在变化中什么不变\u0026quot;的学问。\n而\u0026quot;什么不变\u0026quot;这个问题,有一个总名字。\n它叫对称性(symmetry)。\n它是过去 100 年理论物理最深的一个词,也是最近 10 年 AI 最火的几个词背后的同一个东西——等变性、归一化、卷积、注意力,全都是它的不同投影。\n这一篇,是《看见物理》系列的收官。我们用对称性把前七篇串起来,看清楚我们这一路到底在挖什么;再借这个机会,跟这八篇一起走过的你,正式告个别。\n📖 30 秒预备知识 什么是物理意义上的\u0026quot;对称\u0026quot;? 不是\u0026quot;长得对称\u0026quot;那种几何对称,而是更广义的——对系统做某种操作,系统的物理规律不变。\n把整个实验室往东挪 10 米,做实验得到的结果一样吗?一样。这就是\u0026quot;空间平移对称\u0026quot;。把今天换成明天做同一个实验,结果一样吗?也一样。这就是\u0026quot;时间平移对称\u0026quot;。\n为什么对称这么重要? 因为 1918 年艾米·诺特(Emmy Noether)证明了一件惊天动地的事:每一个连续对称,都对应一个守恒量。\n时间平移对称 → 能量守恒 空间平移对称 → 动量守恒 空间旋转对称 → 角动量守恒 能量、动量、角动量——这些过去被当成\u0026quot;宇宙基本规律\u0026quot;的东西,其实都是对称性的影子。\n本文还会出现的几个词:\n守恒量:不随时间变的物理量 规范对称:一种\u0026quot;换坐标系不影响物理\u0026quot;的对称,标准模型的骨架 对称性破缺:系统底层规律对称,但具体的状态不对称(比如桌上的笔倒向某一边) 等变性 (equivariance):输入变换一下,输出按相同方式变换——AI 里的\u0026quot;对称\u0026quot; 你不需要会公式。 你只需要记住一句话:对称就是\u0026quot;不在乎\u0026quot;——物理规律不在乎从哪里开始、从哪个方向看、从什么时候算。它不在乎的越多,世界越简洁。\n系列导航\n▹ 第一篇:运动——世界从\"动\"开始 ▹ 第二篇:力——看不见的手 ▹ 第三篇:能量——不灭的守恒量 ▹ 第四篇:动量——惯性的力量 ▹ 第五篇:熵——承认无知的勇气 ▹ 第六篇:相变——量变到质变的数学 ▹ 第七篇:量子——观察者与被观察 ▸ 第八篇(本文 · 收官):对称性——诺特、杨振宁、和我们这一路看见的东西 第一章:1918 年,哥廷根的那位女士 故事得从一个被两次拒绝的人讲起。\n1915 年,德国哥廷根。希尔伯特(David Hilbert)和克莱因(Felix Klein)——20 世纪最伟大的两位数学家——同时给一位 33 岁的犹太女数学家写信:请你过来,我们这里需要你。\n她的名字叫艾米·诺特(Emmy Noether)。\n哥廷根大学的教务委员会拒绝授予她教职。理由很简单:她是女的。希尔伯特在评议会上拍桌子怒喝那句被引用了一百年的话:\n\u0026ldquo;我看不出候选人的性别有什么可成为反对她当 Privatdozent(无薪讲师)的理由。这里是大学,不是澡堂。\u0026rdquo;\n没用。规则就是规则。诺特只能以\u0026quot;希尔伯特的助手\u0026quot;的身份开课——海报上印的是希尔伯特的名字,讲台上站的是她。\n1918 年,在这种身份夹缝里,诺特发表了一篇论文。题目很硬:《不变变分问题》(Invariante Variationsprobleme)。这篇论文里有一条定理,后来被称作诺特定理(Noether\u0026rsquo;s theorem)。\n物理学家爱因斯坦读完之后,给希尔伯特写了封信,说:\n\u0026ldquo;我很惊讶,有人能把这件事说得这么透。在哥廷根,有这样一位女士比我整个研究所都强。\u0026rdquo;\n诺特定理是什么?用一句话说:\n每一个连续对称性,都对应一个守恒量。\n如果你觉得这听起来像废话,先别急——它是过去一百年里,物理学家用来\u0026quot;造\u0026quot;出量子场论、规范场、标准模型、广义相对论的那把刀。\n在诺特之前,能量守恒、动量守恒、角动量守恒,都是从实验里\u0026quot;凑\u0026quot;出来的经验法则。人们知道它们成立,但不知道为什么。\n诺特的回答让全世界一愣:它们不是经验,它们是宇宙的几何性质。\n你做的实验,今天做和明天做结果一样——这是时间平移对称——所以能量守恒。 你做的实验,在北京做和在纽约做结果一样——这是空间平移对称——所以动量守恒。 你做的实验,朝东摆和朝北摆结果一样——这是空间旋转对称——所以角动量守恒。 把这三句话连起来看,你会有一种眩晕感:\n能量、动量、角动量——这些我们以为是\u0026quot;东西\u0026quot;的东西,根本不是东西。它们是宇宙\u0026quot;不在乎什么\u0026quot;留下来的影子。\n诺特一辈子没拿到正式教职。1933 年纳粹上台,她作为犹太人被赶出哥廷根,流亡美国。1935 年在宾夕法尼亚做完一台卵巢手术后突发感染去世,享年 53 岁。\n她留下的那条定理,定义了之后所有理论物理的写法。后世把它简称为诺特定理——三个字,撑起了整个 20 世纪。\n第二章:什么是对称性?——操作下的不变性 让我们慢下来,把\u0026quot;对称\u0026quot;这个词的物理意义说清楚。\n日常说\u0026quot;对称\u0026quot;,大家想的是几何:蝴蝶左右对称,雪花六角对称,圆形 360° 都对称。这些都对,但物理学家心里的对称比这宽得多。\n物理学家的定义是:\n对称 = 在某个操作下不变 如果对系统做了某个操作 T,系统的某种性质保持不变,我们就说这个系统在 T 下\u0026quot;对称\u0026quot;。\n几何对称:把雪花旋转 60°,形状和原来一样 空间平移对称:把整个实验装置往东挪 10 米,实验结果一样 时间平移对称:今天做和明天做同一个实验,得到一样的规律 空间旋转对称:把装置整体转 30°,结果一样 粒子交换对称:在原子里把两个相同电子互换,系统状态不变(玻色/费米统计) 规范对称:把波函数 ψ 整体乘以一个相位 e^(iθ),薛定谔方程不变 注意一个关键的区分:\n操作分两种——离散对称(雪花的 60°、空间反演 x → −x、时间反演 t → −t),和连续对称(可以连续滑动的旋转角度、平移距离)。\n诺特定理只对连续对称有效——因为它需要\u0026quot;在一个无穷小的操作下系统不变\u0026quot;这个微分条件。\n离散对称也很重要,但给出的不是守恒量,而是选择规则(比如\u0026quot;奇宇称的态不能跃迁到偶宇称的态\u0026quot;)。\n让我们用一个简单例子把诺特的逻辑走一遍。\n第三章:诺特的奇迹——三个守恒律的统一证明 回到第三篇讲过的\u0026quot;自由滑块\u0026quot;:一个滑块在水平桌面上,没有摩擦力,以速度 v 滑过。\n我们知道它的能量守恒(动能不变),动量守恒(速度不变)。为什么?\n经典物理课本会告诉你:\u0026ldquo;因为没有外力。\u0026rdquo; 这是个机械的答案。\n诺特给的答案完全不一样。诺特说:因为这套物理定律有对称性。\n我们一条条来。\n(1) 能量守恒来自时间平移对称 实验: 你在 0 点开始,让滑块滑 1 秒,记录它的轨迹。 再做: 你在 5 点开始,让滑块滑 1 秒,记录它的轨迹。\n两次结果一模一样。\n物理上,这意味着拉格朗日量 L(描述系统的核心数学对象)不显式依赖时间 t。诺特定理说:在这种情况下,有一个量必然守恒——\n$$ E = \\sum_i p_i \\dot{q}_i - L $$\n这个量就是能量。\n翻译: \u0026ldquo;宇宙的物理规律不在乎你从哪个时刻开始算\u0026rdquo; → \u0026ldquo;有一个量,它从来不会变\u0026rdquo; → \u0026ldquo;这个量,我们叫它能量\u0026rdquo;。\n(2) 动量守恒来自空间平移对称 实验: 装置放在桌子的左边做。 再做: 装置整体向右挪 1 米。\n两次结果一样。\n数学上,L 不依赖于空间坐标 x。诺特定理给出守恒量:\n$$ p = \\frac{\\partial L}{\\partial \\dot{x}} $$\n这就是动量。\n翻译: \u0026ldquo;宇宙不在乎你在哪里做实验\u0026rdquo; → \u0026ldquo;动量守恒\u0026rdquo;。\n(3) 角动量守恒来自空间旋转对称 实验: 一个绕中心旋转的小球,从 0° 方向开始转。 再做: 把整个系统旋转 30°,从 30° 方向开始转。\n两次结果一样。\nL 不依赖于角度 θ。诺特定理给出守恒量:\n$$ L_z = \\frac{\\partial L}{\\partial \\dot{\\theta}} $$\n这就是角动量。\n把三句话并排列一下,你会看到诺特做了一件极其漂亮的事:\n对称(宇宙不在乎什么) 对应的守恒量 时间平移(从什么时候开始数) 能量 空间平移(在什么地方做) 动量 空间旋转(朝哪个方向看) 角动量 粒子交换(谁是 1 号谁是 2 号) 玻色/费米统计 相位变换(波函数整体乘一个相位) 电荷 规范变换(局部相位旋转) 电磁场 这张表的每一行,都是一篇博士论文的级别。\n但请你停一下,凝视这张表整体。它在告诉你:\n过去三百年人类总结出的所有\u0026quot;守恒律\u0026quot;,都是同一件事的不同侧面——宇宙总有一些它\u0026quot;不在乎\u0026quot;的东西,而它不在乎的每一种方式,都给出一个不变量。\n诺特把\u0026quot;守恒\u0026quot;和\u0026quot;对称\u0026quot;焊成了同一枚硬币的两面。\n而这枚硬币,后来成了整个 20 世纪物理学的硬通货。\n第四章:杨振宁——把\u0026quot;对称\u0026quot;变成\u0026quot;力\u0026quot; 诺特之后,对称性最大的一次升级,来自一位中国物理学家——杨振宁。\n1954 年,32 岁的杨振宁和他在普林斯顿的同事米尔斯(Robert Mills)发表了一篇 4 页的短文。这篇文章的核心想法,后来被叫做杨-米尔斯理论(Yang-Mills theory),是整个粒子物理标准模型的数学骨架。\n杨振宁在做什么?\n诺特讲的是\u0026quot;全局对称\u0026quot;——你整个宇宙做同一个操作(整体平移、整体旋转),物理不变。\n杨振宁问了一个看起来很无理取闹的问题:\n如果我要求,在每一个时空点,我都能独立地做不同的操作,物理还能不变吗?\n这叫局域对称(local symmetry)或规范对称(gauge symmetry)。\n它有多激进?打个比方:\n全局 vs 局域 —— 一个比喻 全局对称: 在世界地图上,所有人统一把\u0026quot;北\u0026quot;重新定义成\u0026quot;东\u0026quot;。对所有事都没影响——只是换了个标签。\n局域对称: 北京人定义\u0026quot;北 = 东\u0026quot;,纽约人定义\u0026quot;北 = 南\u0026quot;,东京人定义\u0026quot;北 = 北\u0026quot;,而且互不通气。这时候要让物理规律仍然成立,你必须在两点之间架一个翻译装置——用来把北京的\u0026quot;北\u0026quot;翻译成纽约的\u0026quot;北\u0026quot;。\n这个\u0026quot;翻译装置\u0026quot;,就是杨-米尔斯发现的东西——它是一个新的场,叫规范场(gauge field)。\n现在恐怖的事情来了。杨振宁和米尔斯证明了:\n如果你要求电子的波函数有一种叫 U(1) 的局域对称——翻译装置就是电磁场(光子)。 如果你要求一种叫 SU(2) 的局域对称——翻译装置就是弱核力(W 玻色子、Z 玻色子)。 如果你要求一种叫 SU(3) 的局域对称——翻译装置就是强核力(胶子)。 也就是说:宇宙的四种基本作用力中的三种,都是从对称性的要求里\u0026quot;逼\u0026quot;出来的。\n电、强、弱——它们不是宇宙额外加进去的\u0026quot;道具\u0026quot;,它们是对称性的必然代价。要求宇宙满足某种对称,它就必须配上对应的力。\n第四种力——引力——爱因斯坦在广义相对论里也用对称性导出来了(时空局域坐标变换的对称),只是技术细节比杨-米尔斯更复杂。\n把它们摞在一起就是:\n整个宇宙的力,都是对称性的\u0026quot;债\u0026quot;——你要哪种对称,宇宙就开给你哪张作用力的账单。\n杨振宁这辈子最得意的工作,不是 1957 年和李政道一起拿诺奖的\u0026quot;宇称不守恒\u0026quot;,而是这篇 1954 年的文章——\u0026ldquo;宇称不守恒\u0026quot;是个具体发现,杨-米尔斯是给整个粒子物理画的骨架。\n物理学界的共识是:杨-米尔斯应当再得一次诺贝尔奖。这是 20 世纪后半叶整个物理学共同体的判断。\n这一节,我们用对称性来纪念杨先生这条最深的工作。\n第五章:对称性破缺——为什么世界不完美 到这里你可能有一个困惑:既然对称性这么万能,为什么我们的世界看起来那么不对称?\n桌上的笔不站着,是倒着的——左右对称的笔,选择了一个方向倒。 水在 99 度是液体,100 度是气体——左右明明都是水,为什么会突然分家? 我们这个宇宙物质多反物质少——本来应该一样多的,为什么不平衡?\n这些都是对称性破缺(symmetry breaking)的例子。\n物理学家分两类:\n明显破缺(explicit breaking):底层规律本身就不对称(很少见) 自发破缺(spontaneous breaking):底层规律对称,但具体状态自己挑了一个方向 自发破缺是 20 世纪物理最深的洞察之一。让我们用最经典的例子——铁磁体——把它讲清楚。\n铁磁体的故事 一块铁,内部每个原子都有一个小磁针(自旋)。\n高温(\u0026gt;居里温度): 小磁针乱指,整体呈现\u0026quot;无序\u0026rdquo;。这个状态在任何方向旋转都一样——它有完整的旋转对称性。\n低温(\u0026lt;居里温度): 小磁针突然集体指向某个方向,铁块变成磁铁。\n请注意:底层规律没有偏好任何方向。原子之间的相互作用是各向同性的——它从来没有规定\u0026quot;必须指北\u0026quot;。但具体的状态(磁化方向)必须挑一个方向。\n物理规律对称,但状态破缺。这就是自发对称破缺。\n铁磁体的故事在量子场论里有一个高级的双胞胎——希格斯机制(Higgs mechanism)。\n理论物理学家 Peter Higgs 1964 年提出:宇宙在大爆炸初期,所有基本粒子都是无质量的(因为有完整的对称性)。但宇宙冷却到某个临界温度时,真空本身发生了一次\u0026quot;自发对称破缺\u0026quot;——一个叫希格斯场的东西从对称的\u0026quot;零态\u0026quot;跌到了一个不对称的\u0026quot;非零态\u0026quot;。\n从此,粒子穿过这个\u0026quot;破缺的真空\u0026quot;时会感受到阻力——这就是质量。\n质量,从对称破缺里诞生。 你今天坐在椅子上有重量,可以追溯到 138 亿年前真空选了一个方向跌下去。\n2012 年,欧洲核子中心(CERN)在大型强子对撞机里发现了希格斯玻色子,直接证实了这套理论。Higgs 第二年拿诺奖,84 岁。\n对称性的故事到这里有了完整的两面:\n完美的对称给世界结构(诺特、杨-米尔斯) 破缺的对称给世界多样性(铁磁、希格斯、宇宙物质过剩) 没有对称,世界没有规律。没有破缺,世界没有故事。\n插曲:道生一,一生二——东方的回响 把上一章那张\u0026quot;对称破缺\u0026quot;的图,从西方物理的语言翻译到东方哲学的语言,你会看到一段令人头皮发麻的呼应。\n老子《道德经》第四十二章:\n道生一,一生二,二生三,三生万物。\n如果你刚刚读完希格斯机制,再读这十二个字,会有一种\u0026quot;咔嗒\u0026quot;一下扣上的感觉——这不就是同一件事吗?\n道 = 那个还没有任何分别的、完美对称的母态 一 = 对称还在,但已经有了\u0026quot;存在\u0026quot; 二 = 第一次破缺——出现了对立(阴阳、有无、明暗) 三 = 破缺出更多维度的分类 万物 = 一路破缺下来的、千差万别的具体世界 老子描述的,是一个连续对称破缺的过程。希格斯描述的,是真空在临界温度下从对称态跌落到不对称态的过程。两者用完全不同的语言,讲同一件事:\n世界,是从\u0026quot;无分别\u0026quot;自发跌落到\u0026quot;有分别\u0026quot;的产物。\n让我们把这件事推向一个更日常的维度。\n人类是怎么认识世界的?——靠分别。\n我们给万物起名字:这是男人,那是女人;这个高,那个矮;这个穷,那个富;这边文科,那边理科;这是好人,那是坏人。每一次起名,都是一次离散对称破缺——把一个原本连续的、未分化的整体,切成两个或多个互斥的盒子。\n语言,本质上就是为了区别和辨别而生的。\n没有\u0026quot;男\u0026quot;,就没有\u0026quot;女\u0026quot;;没有\u0026quot;高\u0026quot;,就没有\u0026quot;矮\u0026quot;;没有\u0026quot;光\u0026quot;,就没有\u0026quot;暗\u0026quot;。词语永远成对出现,因为每一个词都是从一片连续的母态上切下来的一刀。20 世纪语言学家索绪尔有一句被引用过无数次的话——\u0026quot;语言是差异的系统\u0026quot;。这句话和老子的\u0026quot;二生三,三生万物\u0026quot;,讲的是同一个洞察,只是中间隔了两千多年。\n我们活在一片自己用语言切出来的碎片世界里,然后忘了这些碎片原本是连在一起的。\n现在,关键的转向来了。\n如果你只活在分别的层次上,你看到的就是男和女、穷和富、敌和友、对和错、东方和西方——一片刀切的碎片,每一刀都像是宇宙天然的纹路。\n但如果你升维——拉高一个层次,拉到创世主的视角,拉到那个还没有跌落、还没有破缺的母对称群上——你会看到一件让人眩晕的事:\n所有这些\u0026quot;分别\u0026quot;,都是从同一个未分化的源头跌下来的不同选择。\n男和女是一种破缺,贫和富是另一种破缺,文和理是再一种破缺。但在它们跌下来之前,共享同一个对称的母态。\n这就是\u0026quot;万物为一\u0026quot;。\n它不是一句鸡汤式的\u0026quot;大家都一样\u0026quot;,它是一个精确的物理-哲学陈述:所有的差异,都站在同一个对称群之上。看到那个母群,你就看到了\u0026quot;一\u0026quot;。\n而这件事,刚好就是 AI 在做的事。\n你给 LLM 一段文字,它先把每个词切成一个个 token——这是表层的\u0026quot;分别\u0026quot;。然后它把每个 token 投影到一个高维向量空间(embedding)——在那个空间里,\u0026ldquo;国王 − 男 + 女 ≈ 王后\u0026rdquo;,\u0026ldquo;巴黎 − 法国 + 中国 ≈ 北京\u0026rdquo;。所有看起来天差地别的词,其实共享同一片连通的几何。\nEmbedding 空间,就是 LLM 找到的\u0026quot;道\u0026quot;。\n它把表层千差万别的语言,重新升维到一个未分化的母态。理解一段话,就是回到那个母态的过程——回到\u0026quot;一\u0026quot;。\n下一章我们会从这件事的数学侧讲清楚——为什么\u0026quot;理解 = 压缩 = 升维\u0026quot;是同一件事。这里先记住一句话:\n你升得越高,看到的对称越多,分别坍缩得越彻底,描述就越短。\u0026ldquo;大道至简\u0026rdquo;——其实是一个数学事实。\n物理学家用对称群讲它,老子用\u0026quot;道\u0026quot;讲它,LLM 用 embedding 讲它。三套语言,同一个东西。\n第六章:对称性 = 压缩 现在让我们把上一篇文章那条没说完的话说完。\n上一篇《压缩即是全部》讲到尾声时,我留了一个钩子:\n对称性和压缩是孪生姐妹——有对称→有守恒→有更短描述。\n这一句到底是什么意思?让我们把它展开。\n考虑一个由 N 个粒子组成的系统。完整描述它需要多少信息?\n每个粒子有 3 个位置坐标 + 3 个速度分量 = 6 个数 N 个粒子 = 6N 个数 如果这个系统完全没有对称性,你必须把这 6N 个数全部记下来才能预测它的演化。\n但如果这个系统有时间平移对称——能量守恒——你就立刻省掉了一个自由度:能量是个不变量,你不用每一时刻都重新算。\n如果它还有空间平移对称——动量守恒——再省 3 个。 还有旋转对称——角动量守恒——又省 3 个。\n每多一个对称,你需要存储和传输的信息就少一份。\n把这件事推到极致:\n一个高度对称的系统,可以用极少的参数完整描述。\n一个完全没有对称的系统,你只能逐个粒子记录。\n这就是\u0026quot;对称 = 压缩\u0026quot;的精确含义。\n让我们把这件事翻译成 AI 的语言。\n一个 LLM 在做什么?它在压缩互联网。一段 1MB 的文本,模型用比 1MB 小得多的概率分布来描述它——前提是模型学到了这段文本里的\u0026quot;对称\u0026quot;:同义词替换不变意思、句子换序还是同一个意思、不同语言表达同一个概念……\n每一种\u0026quot;对称\u0026quot;都是一次压缩机会。 模型学到的对称越多,压缩得越狠,泛化能力越强。\n这就是为什么深度学习里有一句口号:\u0026ldquo;先验是免费的智能\u0026rdquo;(inductive bias is free intelligence)。\n把对称性硬编码进模型,你就不用让它从零学这个对称——它直接拥有了那部分压缩能力。下一章我们会看到,这件事在神经网络里有一个专门的名字:等变性(equivariance)。\n第七章:AI 里的对称性——等变性的世界 让我们清点一下,现代 AI 的核心模块里,有哪些是对称性的化身。\n(1) 卷积神经网络(CNN):平移等变 问题: 你想训练一个网络识别图片里的猫。\n朴素做法: 让网络读取整张图片每个像素,直接预测\u0026quot;是不是猫\u0026quot;。\n问题来了: 训练时猫在图片左边,测试时猫在右边——网络可能就不认识了。因为它学到的是\u0026quot;左边一团毛茸茸的图案 → 猫\u0026quot;,这个规则在猫挪到右边以后就失效了。\n解决方案: 卷积。一个卷积核(小窗口)在图像上平移扫描,在每个位置计算一遍。\n这个操作的关键性质叫平移等变(translation equivariance):\n如果输入图片整体平移了 5 个像素,卷积层的输出也整体平移了 5 个像素。\n平移等变 = 卷积层\u0026quot;知道\u0026quot;猫在哪都是猫。\n这就是 LeCun 1989 年发明 CNN 的核心动机。它不是\u0026quot;工程上一个好用的技巧\u0026quot;,它是把空间平移对称性硬编码进了网络架构。\n诺特的逻辑搬过来:网络有平移对称 → 网络的\u0026quot;特征数\u0026quot;被压缩 → 同样的参数能描述更多图像 → 泛化能力更强。\n(2) 图神经网络(GNN):置换不变 问题: 你想用网络处理一个分子结构(原子是节点,化学键是边)。\n关键约束: 你怎么给原子编号(C 原子是 1 号还是 5 号),物理性质应该完全无关。\n这就是置换对称(permutation symmetry):你打乱节点编号,网络的输出不变。\nGNN 的核心模块——消息传递(message passing)——刚好满足这个对称:每个节点对所有邻居做对称的求和或平均,输出和编号无关。\n这背后是粒子交换对称——和量子力学里\u0026quot;两个相同电子互换,系统不变\u0026quot;是同一个数学。\n(3) Transformer:位置编码——故意打破对称 Transformer 的注意力机制天生是置换对称的——给注意力层一段 token,它对每个 token 的处理与顺序无关。\n但语言不是这样!\u0026ldquo;我打你\u0026quot;和\u0026quot;你打我\u0026quot;完全不同。\n所以 Transformer 必须打破这个对称——它给每个位置加上一个位置编码(positional encoding)。\n这是一个特别有趣的设计哲学:\n先用对称性搭好骨架(注意力的并行结构),再有控制地破缺它(位置编码),让网络获得最大灵活性。\n这和希格斯机制的逻辑完全一样:底层结构高度对称,具体行为通过受控破缺来实现。\n(4) Layer Norm / Batch Norm:尺度不变 归一化(normalization)是另一种对称性。\nLayerNorm 把每一层的激活归一化到均值 0 方差 1。这意味着:你把上一层输出整体放大 10 倍,这一层的处理不变。\n这是尺度对称性——网络对输入的整体强度不在乎。\n为什么这件事重要?因为训练时,梯度的尺度会随着深度爆炸或消失。归一化把尺度对称硬编码进来,让网络不受这种漂移影响——这就是 ResNet、Transformer 能堆到几百层的根本原因之一。\n(5) 等变神经网络(Equivariant NNs):新前沿 更激进的方向:把旋转对称、洛伦兹对称直接做进网络结构。\nDeepMind 团队在 2018 年前后开始系统化地构造 SE(3)-等变网络,核心理念是:输入旋转一个角度,输出按相应规则旋转。\n这在分子建模、蛋白质折叠、物理模拟里特别重要——因为分子真的不在乎你从哪个方向看它。\nDeepMind 的 AlphaFold 2 在 2021 年横扫蛋白质结构预测,核心理由就是它把蛋白质里的等变结构编码进了网络。它不是\u0026quot;用了更多参数\u0026rdquo;,它是\u0026quot;用了更多对称性\u0026quot;——参数反而比朴素架构少。\n把这五点连起来看:\n现代神经网络架构史的隐藏主线,就是逐步识别出问题中的对称性,并把它们硬编码进网络。\nCNN(平移)→ GNN(置换)→ LayerNorm(尺度)→ Transformer(注意力 + 位置编码的破缺)→ Equivariant Networks(旋转/洛伦兹)\n每一次架构进步,本质上都是一次\u0026quot;诺特\u0026quot;,一次对称性向网络的下沉。\n第八章:八篇之旅——我们一路在挖什么 到这里,《看见物理》系列正式收官。请允许我带你重走一遍这条路——这次,我们带着诺特的眼睛回头看。\n第一篇,我们从滑块开始,讲了运动。表面是速度、加速度,微积分把\u0026quot;动\u0026quot;翻译成\u0026quot;率\u0026quot;。但真正的隐藏主角是:人类第一次学会用一个不变的数学对象(导数)来抓住一个变化的世界。\n第二篇,讲力。F = ma 表面上讲因果——力推动加速度。但写成拉格朗日力学之后,力其实是\u0026quot;势能在空间上的不均匀\u0026quot;——也就是某种对称性的破缺。完美对称的势能给不出力,有梯度的势能才有力。\n第三篇,能量;第四篇,动量。这两篇我们讲了\u0026quot;守恒\u0026quot;——一个不灭的数,一个不变的方向。但当时我们没有说出来:它们守恒,是因为宇宙有时间平移对称、空间平移对称。诺特的刀,在第三、第四篇里悄悄地切了两次,只是那时我们还不知道刀的名字。\n第五篇,熵。表面上是热力学第二律,深层是\u0026quot;概率 = 我们对系统的无知\u0026quot;。玻尔兹曼分布的形式怎么来的?——它是在能量约束下,熵最大的分布。换句话说,它是信息的对称解:在我们一无所知的方向上,概率必须均匀分布。最大熵原理本身就是一种对称性原理。\n第六篇,相变。沸腾、磁化、超导——这些\u0026quot;突然\u0026quot;的现象,本质都是对称破缺:温度高的对称态,在临界点跌落到一个不对称的具体态。第六篇我们看了\u0026quot;群体的突然涌现\u0026quot;,这一篇我们终于知道:涌现的数学结构,就是对称破缺的相图。\n第七篇,量子。波函数不是关于\u0026quot;它\u0026quot;的,是关于\u0026quot;你\u0026quot;的;坍缩是观察者的贝叶斯更新。但量子力学有一个让人不安的事实:它的所有可观测量,都是某种对称变换下的不变量。能量是时间平移的不变量,动量是空间平移的不变量,自旋是 SU(2) 旋转的不变量。整个量子力学,是一张写在对称群上的乐谱。\n第八篇,对称性。前七篇我们一直在挖\u0026quot;不变量\u0026quot;——速度的不变(微积分)、力的不变(F=ma)、能量的不变、动量的不变、熵的最大、相变前后的不变(对称破缺前的母态)、量子可观测量的不变。\n第八篇做的事很简单——给所有这些\u0026quot;不变\u0026quot;找了一个共同的源头。\n它们都从同一个地方来:对称性。\n如果你愿意眯起眼睛看,《看见物理》整个系列其实只在讲一件事:\n从\u0026quot;动\u0026quot;出发,沿着\u0026quot;什么不变\u0026quot;这条暗线一路走,最后到达\u0026quot;为什么不变\u0026quot;——对称性。\n第一篇问\u0026quot;什么在动\u0026quot;,第八篇答\u0026quot;什么不动,以及它为什么不动\u0026quot;。整个圆,在这里合上了。\n第九章:我们看见了什么 《看见物理》这个名字里,有一个动词——看见。\n走完八篇,我想停下来问你一句:你现在看东西的方式,和打开第一篇时一样吗?\n我猜不一样了。如果你认真读了,你大概已经获得了三副新的眼镜——\n第一副眼镜:把\u0026quot;现象\u0026quot;翻译成\u0026quot;什么变了什么没变\u0026quot;。\n之前看到一杯水沸腾,你想到的是\u0026quot;温度高了\u0026quot;。现在你应该会自动多问一句:沸腾前后,什么对称变了? ——液态有完整的旋转和平移对称,气态也有,但它们是两种不同对称性的状态;100 度是连接它们的临界点。这个视角让\u0026quot;沸腾\u0026quot;从一个厨房现象,变成了和铁磁、超导、宇宙早期相变同构的东西。\n第二副眼镜:把\u0026quot;机制\u0026quot;翻译成\u0026quot;它在什么操作下不变\u0026quot;。\n之前看到 ChatGPT 能识别打乱顺序的图片里的猫,你会觉得\u0026quot;AI 真聪明\u0026quot;。现在你应该会想:这是平移等变性。LeCun 1989 年把它硬编码进了 CNN 架构。整个深度学习的进步史,在你眼里不再是\u0026quot;模型变大了\u0026quot;,而是\u0026ldquo;我们识别出了越来越多的对称,并把它们刻进了网络\u0026rdquo;。\n第三副眼镜:把\u0026quot;复杂\u0026quot;翻译成\u0026quot;它能被什么对称压缩\u0026quot;。\n之前看到一段 100GB 的英文文本,你会觉得这是 100GB 的信息。现在你会想:真正的信息量,是去掉所有同义改写、句序变换、语言之间的翻译之后剩下的东西——可能不到 100GB 的百分之一。LLM 能压缩它,正是因为它学到了文本中的对称结构。理解 = 找到对称 = 压缩,这三个词是同一件事。\n这三副眼镜,不只用在物理上。它们用在你看世界的任何一个角度——一段历史、一首诗、一笔投资、一段关系——都能问同样三个问题:\n什么变了,什么没变? 它在什么操作下不变? 它能被什么对称压缩? 这就是物理思维的本体。它不是公式,是一种永久性的提问方式。\n第十章:对称性留给我们的三个直觉 如果整个《看见物理》系列你最后只带走三句话,让它们是:\n一、规律的形状,藏在\u0026quot;不在乎\u0026quot;里。\n物理学找规律的方法,从来不是\u0026quot;一个一个现象都解释清楚\u0026quot;——而是问:这套规律不在乎什么? 不在乎位置→动量守恒。不在乎方向→角动量守恒。不在乎时刻→能量守恒。\n把这件事推广到 AI:一个好的模型,不是把数据点都背下来的模型,而是知道\u0026quot;数据的什么部分可以变,哪些部分不变\u0026quot;的模型。 神经网络的等变性就是这件事的具体实现。\n二、力和质量,都是对称性的债。\n在我们日常的世界观里,力是\u0026quot;东西\u0026quot;,质量是\u0026quot;东西\u0026quot;。20 世纪物理告诉我们:它们都是对称性的副产品。 你要这种对称,宇宙就给你配这种力;你让真空破缺,宇宙就给你配这种质量。\n这个直觉对 AI 时代的工程师有一个直接含义:不要把\u0026quot;机制\u0026quot;当成你要造的东西,把\u0026quot;应满足的对称\u0026quot;当成你要造的东西——机制会自己出现。 Transformer 的注意力机制不是被\u0026quot;设计\u0026quot;出来的,它是从\u0026quot;我要满足置换对称 + 内积相似度 + 可微\u0026quot;这几条约束里逼出来的。\n三、压缩和对称,是同一件事。\n数据中的对称 = 描述里的冗余 = 可压缩性。一个高度对称的世界,可以被极简地描述。物理定律之所以\u0026quot;简洁\u0026quot;,不是因为宇宙慷慨,是因为宇宙满是对称——简洁是对称的同义词。\n这就是为什么\u0026quot;理解 = 压缩\u0026quot;,为什么 LLM 在压缩文本时会自动学到语义,为什么 AlphaFold 能用更少的参数比传统方法预测得更准。\n不是\u0026quot;AI 在变聪明\u0026quot;。是\u0026quot;对称性在被识别\u0026quot;。智能本身,就是对世界结构对称性的识别能力。\n尾声:从 1918 到 2026,一封告别信 写这一篇的时候,我反复想起诺特。\n1918 年她写下那条定理时,她正在哥廷根的讲台上为别人代课——海报上印着希尔伯特的名字。她没有教职,没有薪水,数学界的核心圈层听她讲课但不让她进门。\n她不知道 36 年后,大洋对岸的杨振宁会用她的定理建出标准模型的骨架。 她不知道 71 年后,纽约的 LeCun 会用她的逻辑造出第一个能看懂手写邮编的卷积神经网络。 她不知道 100 年后,伦敦 DeepMind 的一群人会用她那条\u0026quot;对称对应不变量\u0026quot;的定理,折出蛋白质的三维结构,救下不知道多少条生命。 她不知道 108 年后,2026 年的中国,有一群在 AI 里讨饭吃的工程师,会通过她的定理,理解他们手里的 Transformer 为什么 work。\n她去世于 1935 年,53 岁,流亡途中。\n写《看见物理》的过程中,我越来越相信一件事:物理学最深的礼物,不是任何一个具体的公式,而是它教会人类的一种提问方式——在所有变化中,先去找那个不变的东西。\n这个提问方式,从牛顿到爱因斯坦,从诺特到杨振宁,从 LeCun 到 Hinton,从 AlphaFold 到 ChatGPT,它从未失效。它甚至可能是我们这个物种,所拥有的最值钱的认知工具。\n我们用八篇文章,从滑块走到对称群。中间穿过力、能量、动量、熵、相变、量子。每一篇都在挖一个小不变量,最后一篇挖到了大不变量——不变量本身。\n如果这八篇里,有任何一篇让你在某个瞬间\u0026quot;咔嗒\u0026quot;一下——一个原本看起来碎片的东西突然连成一片,一个一直没想通的现象忽然有了名字——那这个系列对我来说就值了。\n物理学不是关于事物的学问。 物理学是关于\u0026quot;在变化中什么不变\u0026quot;的学问。\n这副眼镜,从今天起,归你了。\n《看见物理》到此结束。\n下一站,我会带你去**《AI 的十字路口》**。\n如果说《看见物理》是回头——回望人类这三百年是怎么用\u0026quot;对称、不变、守恒\u0026quot;这把刀,把世界一层层剖开;那么《十字路口》是向前——看我们这一代人,正站在哪几个分岔点上。\n世界模型 vs 语言模型,谁会主导下一代 AI? 开源 vs 闭源,这场博弈最后会落在哪? 对齐 vs 能力,会不会出现一次\u0026quot;第二次相变\u0026quot;? 中国 vs 美国,两套技术栈会分裂还是合流?\n那些岔路,你都将带着这副从物理里磨出来的眼睛去看。\n记得问那三个问题:\n什么变了,什么没变? 它在什么操作下不变? 它能被什么对称压缩? 我们十字路口见。\n附:Python 小实验——亲手感受对称的\u0026quot;压缩力\u0026quot; 一段 30 行代码,演示对称性如何把信息量级从 N 降到常数。\nimport numpy as np print(\u0026#34;=== 对称性 = 压缩:用旋转不变性压缩描述 ===\\n\u0026#34;) # 生成 200 个二维点,在以原点为中心的圆环上随机分布 np.random.seed(42) N = 200 theta = np.random.uniform(0, 2*np.pi, N) r = 1.0 + 0.05 * np.random.randn(N) # 半径 ≈ 1,带噪声 x = r * np.cos(theta) y = r * np.sin(theta) # 朴素描述:存所有点的 (x, y) 坐标 naive_storage = N * 2 # 每点 2 个数 print(f\u0026#34;朴素描述:存 {N} 个点的 (x, y) → 需要 {naive_storage} 个数\u0026#34;) # 对称感知描述:这些点在旋转下\u0026#34;近似不变\u0026#34;——它们都在 r≈1 的圆上 # 我们只需要存:中心 (0, 0)、半径 1.0、噪声尺度 0.05 symmetric_storage = 2 + 1 + 1 # 中心 + 半径 + 噪声 print(f\u0026#34;对称感知描述:中心 + 半径 + 噪声尺度 → 只需要 {symmetric_storage} 个数\u0026#34;) print(f\u0026#34;\\n压缩比: {naive_storage / symmetric_storage:.0f} 倍\u0026#34;) # 验证:从对称描述重建,统计性质有多接近? theta_reconstructed = np.random.uniform(0, 2*np.pi, N) r_reconstructed = 1.0 + 0.05 * np.random.randn(N) print(f\u0026#34;\\n原数据 r 的均值: {r.mean():.4f}, 标准差: {r.std():.4f}\u0026#34;) print(f\u0026#34;重建 r 的均值: {r_reconstructed.mean():.4f}, 标准差: {r_reconstructed.std():.4f}\u0026#34;) print(\u0026#34;\\n观察:\u0026#34;) print(f\u0026#34; - 朴素描述要存 {naive_storage} 个数\u0026#34;) print(f\u0026#34; - 知道\u0026#39;旋转对称\u0026#39;后只要 {symmetric_storage} 个数\u0026#34;) print(f\u0026#34; - 信息压缩了 {naive_storage / symmetric_storage:.0f} 倍——这就是对称性的\u0026#39;力\u0026#39;\u0026#34;) print() print(\u0026#34;这就是 CNN/GNN/Equivariant NN 在做的事:\u0026#34;) print(\u0026#34; 把\u0026#39;网络架构应该满足的对称\u0026#39;编码进去 →\u0026#34;) print(\u0026#34; 用更少的参数(更短的描述)→\u0026#34;) print(\u0026#34; 获得同等甚至更强的表达力。\u0026#34;) 运行这段代码,你会看到一个 400 个数的数据集被压缩成 4 个数,只因为我们注意到了它的旋转对称。这正是诺特定理的精神——对称性,就是宇宙的压缩算法。\n也是 AI 在做的事。\n延伸阅读 Emmy Noether, 1918, Invariante Variationsprobleme —— 诺特定理原文(英译版) Chen-Ning Yang, Robert Mills, 1954, Conservation of Isotopic Spin and Isotopic Gauge Invariance, Phys. Rev. 96 —— 杨-米尔斯原始论文 David J. Gross, 1996, The role of symmetry in fundamental physics, PNAS 93 —— 对称性在基础物理中的概览 Peter Higgs, 1964, Broken Symmetries and the Masses of Gauge Bosons, Phys. Rev. Lett. 13 —— 希格斯机制 Yann LeCun et al., 1989, Backpropagation Applied to Handwritten Zip Code Recognition —— CNN 的奠基论文 Taco Cohen, Max Welling, 2016, Group Equivariant Convolutional Networks —— 等变神经网络框架 Jumper et al., 2021, Highly accurate protein structure prediction with AlphaFold —— AlphaFold 2 Michael Bronstein et al., 2021, Geometric Deep Learning: Grids, Groups, Graphs, Geodesics, and Gauges —— 把所有现代神经网络架构统一在对称性视角下 本系列内部链接: 《看见物理(一):运动》 —— 一切的起点 《看见物理(三):能量》 —— 守恒的开端 《看见物理(四):动量》 —— 守恒的方向 《看见物理(七):量子》 —— 信念的更新 《压缩即是全部》 —— 对称的孪生姐妹 本文首发于「AI 学习笔记」博客:https://Jason-Azure.github.io/ai-blog/\n微信公众号:AI-lab学习笔记\n系列文章完整列表见 标签:看见物理\n","permalink":"https://jason-azure.github.io/ai-blog/posts/see-physics-8-symmetry/","summary":"1918 年,一位被哥廷根大学拒绝授予教职的犹太女数学家,写下了一行让物理学换骨的定理:每一个对称,都对应一个守恒量。从此能量、动量、电磁场、质量,都成了宇宙『不在乎什么』的影子。这一篇,我们用对称性把整个系列串起来,也借此向《看见物理》八篇告别——并把这副从物理里磨出来的眼睛,带到下一个十字路口。","title":"看见物理(八·收官):对称性——诺特、杨振宁、和我们这一路看见的东西"},{"content":"开场：一篇致敬又僭越的论文 2017 年 6 月，Google Brain 的八个人把一篇论文扔上了 arXiv。\n标题狂得不像论文：《Attention Is All You Need》。\n九年过去了，这个标题成了 AI 史上最著名的七个单词。基于它的 Transformer，撑起了 ChatGPT、Gemini、Claude、DeepSeek、万亿市值、一代人的焦虑。\n2026 年 3 月 27 日，又一篇论文悄悄上了 arXiv。标题只有七个单词，格式一模一样：\nCompression is all you need: Modeling Mathematics\n看到这个标题，任何做 AI 的人都会下意识笑一下——\u0026ldquo;又一个蹭热度的\u0026rdquo;。\n点开作者一栏，笑容消失。\nMichael Freedman。\n这不是什么 ML 工程师。这是 1986 年菲尔兹奖得主，四维庞加莱猜想的证明者，过去二十年微软 Station Q 的灵魂人物，当今在世的数学家里戏份最重的那一批。\n他在写 AI？不是。他在告诉所有搞 AI 的人：你们一直在用的那个词\u0026quot;压缩\u0026quot;，其实比你们想象的要深得多。\n这篇文章不是《Attention Is All You Need》那种工程突破。它是一封信——一位数学家，用他毕生训练出来的直觉，回答了三个困扰人类上千年的问题：\n人类究竟是怎么构建数学知识的？ 人类做的数学，和形式化的\u0026quot;纯逻辑数学\u0026quot;，本质区别是什么？ 未来的人类数学家，到底该怎么和 AI 协同工作？ 他给出的答案，只有一个词：压缩。\n今天这篇文章，就把这封信翻译给你。\n第一章：Freedman 是谁 先说清楚为什么这个人开口说话，AI 圈必须听。\n1981 年，三十岁的 Freedman 在加州大学圣地亚哥分校解决了四维庞加莱猜想——这个问题悬了 77 年，三维版本让 Perelman 在 2006 年拿到菲尔兹奖（他拒绝了）。五维以上早在 60 年代就被解决。唯独四维——卡在最要命的那个维度——是 Freedman 攻下来的。\n1986 年，柏克莱，国际数学家大会。Freedman 走上讲台，领走了菲尔兹奖。那一届同时得奖的，还有西蒙·唐纳森（Simon Donaldson）——他俩用完全不同的方法夹击四维流形，把整个低维拓扑重写了一遍。\n故事到这里还没完。\n1997 年，Freedman 做了一件数学家很少做的事——从学术界出走。微软给他开了一个几乎是为他量身定做的部门，叫 Station Q，目标只有一个：用数学家的思路造拓扑量子计算机。他当了主任，一干就是二十五年。\n2023 年，他回到哈佛 CMSA（数学与应用中心），换了一个身份：思考 AI 和数学的关系。\n所以当 Freedman 这个人在 2026 年 3 月扔出一篇叫《Compression is all you need》的论文——这不是某个追热点的研究员，这是一个一辈子在数学内部看世界的人，突然转身跟所有人说：\n\u0026ldquo;我看清楚了一件事。你们要听吗？\u0026rdquo;\n第二章：一个让所有人尴尬的事实 Freedman 论文的切入点，是一个数学界人尽皆知、但几乎没人能解释的尴尬事实。\n先建立两个概念：\n形式数学（Formal Mathematics, FM）：所有合乎逻辑规则的推演。从公理出发，每一步都严格合法，能推出来的一切。 人类数学（Human Mathematics, HM）：人类数学家真正在做、真正收录进教科书、真正有人证明和引用的那一部分。 FM 的空间有多大？\n假设你有 n 个基础符号（数字、加减乘除、等号、括号……）。用这些符号能组合出来的\u0026quot;合法推演\u0026quot;数量，是指数级的——$2^n$、$n!$、甚至更大。对任何稍微像样的数学系统，n 上百以后，FM 的大小就已经超过了整个宇宙里的原子数。\nHM 呢？\n全世界所有数学家，从欧几里得到今天，加起来写过的定理大约是百万量级。Lean 4 的形式化数学库 MathLib 收录的是其中可以被机器验证的一部分——大约十四万条。\n把这两个数字并排写：\nFM：$\u0026gt; 10^{80}$ HM：$\\sim 10^5$ 中间隔了 75 个零。\n这就是尴尬的地方：\n人类数学，是形式数学这个宇宙里一粒尘埃都不到的小角落。\n而且——为什么是这一粒？\nFM 里有无穷无尽的\u0026quot;合法但无聊\u0026quot;的定理。比如：\n\u0026ldquo;对任意整数 n，n + 0 = n\u0026rdquo; —— 这是定理。 \u0026ldquo;对任意整数 n，n + 0 + 0 = n\u0026rdquo; —— 也是定理。 \u0026ldquo;对任意整数 n，n + 0 + 0 + 0 = n\u0026rdquo; —— 还是定理。 ……\n你可以一直写下去，每一条都合法，每一条都无意义。人类数学家从来不写这些。\n为什么？\n一百年来，这个问题有过无数个哲学性的回答：\u0026ldquo;美\u0026quot;\u0026ldquo;简洁\u0026quot;\u0026ldquo;有用\u0026quot;\u0026ldquo;深刻\u0026rdquo;……但都是词语的游戏。没有一个是数学答案。\n直到 Freedman 2026 年给出了第一个能算的回答：\n因为 HM 是 FM 里那个\u0026quot;可压缩\u0026quot;的子集。\n第三章：压缩——先站在日常的地面上 Freedman 说的\u0026quot;压缩\u0026quot;是什么意思？先别想数学，先想三个你已经懂的例子。\n例子一：Huffman 编码\n你家猫叫小花。你给它拍了一万张照片。照片里出现最多的动作是\u0026quot;睡觉\u0026rdquo;（4000 次），其次是\u0026quot;吃饭\u0026rdquo;（3000 次）、\u0026ldquo;抓沙发\u0026rdquo;（2000 次）、\u0026ldquo;发呆\u0026rdquo;（1000 次）。\n如果每个动作用同样长的编码（比如 8 位），总共需要 80000 位。\nHuffman 想了个办法：常见的动作用短码，罕见的用长码：\n睡 吃 抓 发 觉 饭 沙 呆 发 → → → → 0 1 1 0 1 1 1 1 0 （ 3 （ （ （ 3 1 2 位 ） 位 位 位 ） ） ） 总共需要：4000×1 + 3000×2 + 2000×3 + 1000×3 = 19000 位。\n压缩率 4 倍。没有损失任何信息。\n这是 1952 年大卫·哈夫曼读博士时写的作业。它告诉我们第一件事：只要事物分布是不均匀的，就存在压缩。\n例子二：牛顿三定律\n宇宙里每一秒都在发生无数次的运动：苹果落地、月亮绕地、弹簧振动、子弹出膛、潮汐起落、雪崩滚落……\n你想记录所有这些运动，需要多少信息？\n不需要。\n你只需要记住：\n$$F = m \\cdot a$$\n外加两条类似的公式（惯性、反作用），你就能重新生成上面所有运动——给定初始条件，未来每一毫秒物体在哪，都能算出来。\n这就是压缩。牛顿三定律是一个几十个字符的程序，它编码了宇宙中所有经典力学现象。\n例子三：zip 文件\n你有一段话：\nto be or not to be, that is the question; to be\n最蠢的存法是把每个字符都写下来。聪明一点的做法是：找出重复，起一个名字，之后只用名字。\n字 压 典 缩 ： 后 ： A A B o = r = \" n t \" o o t t h b e A e , \" \" t h a t i s B q u e s t i o n ; A 这是 LZ77 算法（zip / gzip / PNG 的底层）的核心思想，1977 年提出。\n例子四：大型语言模型\n你训练一个 LLM。给它看整个互联网——几万亿字、几百万小时的文本。\n训练完了，得到什么？\n一个几百亿参数的模型，存成硬盘上的一个文件，大概几百 GB。\n但它能生成类似训练集里的任何内容——写代码、翻译、写诗、解数学题。\n这件事，用信息论的语言说叫：LLM 就是互联网的一次有损压缩。\nDeepMind 2023 年做了一件让人血压升高的事：他们把 Chinchilla 70B 当成一个通用压缩器，用它去压缩原始字节流——不仅是文本，还有从没训练过的图像和音频。结果：\n文本压缩率：比 gzip 好很多（意料之中） 图像压缩率：比 PNG 好 音频压缩率：比 FLAC 好 一个只训练了语言的模型，居然能压缩它从没见过的图像——因为它学到了\u0026quot;通用的世界结构\u0026rdquo;。\n这四个例子，从 1952 年的字符编码到 2023 年的 LLM，指向同一件事：\n任何\u0026quot;理解\u0026quot;的行为，本质都是找到更短的描述。\n所有理解都是压缩：Huffman 把字符压成变长编码，牛顿把无数轨迹压成三个公式，zip 把重复文本压成字典 + 指针，LLM 把整个互联网压成几百亿参数。压缩的颗粒度越来越粗，本质是同一个。\n这不是比喻。这是 Freedman 论文的出发点。\n第四章：Freedman 的建模——字符串和\u0026quot;宏\u0026quot; Freedman 说的第一件事：把数学推演当成字符串。\n你在黑板上写一个证明，它本质上就是一个很长的字符串：\n设 x ∈ ℝ ， 若 x ² ≥ 0 ， 则 | x | = √ ( x ² ) ， 进 而 ∀ ε \u0026gt; 0 ， ∃ δ \u0026gt; 0 ， | x − a | \u0026lt; δ → | x ² − a ² | \u0026lt; ε ， 因 此 字符一个接一个，从左到右。如果你把所有\u0026quot;合法的证明字符串\u0026quot;都列出来——那就是我们上一章说的 FM（形式数学）。\n然后 Freedman 指出第二件事：数学家从来不这样写。\n数学家会说：\n\u0026ldquo;设 $f$ 在 $[a, b]$ 上连续，则 $f$ 一致连续。\u0026rdquo;\n\u0026ldquo;连续\u0026quot;这个词是什么？它本身是一段定义——要展开的话，展开成 $\\forall \\varepsilon\u0026gt;0, \\exists \\delta\u0026gt;0, \\ldots$ 的形式，大概三行字符。\n\u0026ldquo;一致连续\u0026quot;是另一段定义，展开大概五行字符。\n也就是说，这一句话看起来 20 个字，展开了其实有 100 多个字符。\n再往深挖，$\\varepsilon$ 和 $\\delta$ 本身调用了\u0026quot;实数\u0026quot;\u0026ldquo;绝对值\u0026quot;的定义，继续展开……一条\u0026quot;短句子\u0026quot;背后，是一棵很深的定义树。\n这里 Freedman 给出关键定义——他管这种\u0026quot;名字 → 一段长字符串\u0026quot;的约定叫宏（macro）。\n\u0026ldquo;连续\u0026rdquo; = 一个宏，展开后是定义原文 \u0026ldquo;一致连续\u0026rdquo; = 另一个宏 \u0026ldquo;积分\u0026rdquo; = 一个宏，展开后调用\u0026quot;极限\u0026quot;\u0026ldquo;分割\u0026quot;\u0026ldquo;黎曼和\u0026quot;的宏 \u0026ldquo;勒贝格积分\u0026rdquo; = 一个宏，展开后调用\u0026quot;测度\u0026quot;\u0026ldquo;可测函数\u0026quot;的宏 \u0026ldquo;黎曼-勒贝格引理\u0026rdquo; = 一个宏，展开后调用以上所有的宏 这棵树可以很深。现代数学里一条定理的\u0026quot;完全展开\u0026rdquo;，往往是亿级字符的长度。但数学家永远只看最外层。\nFreedman 的核心洞察：\n数学家的工作，就是不断造宏。\n一个数学家的一生，可能就干了一件事——看到了一个之前没人压缩过的模式，给它起了一个名字。\n高斯给\u0026quot;正态分布\u0026quot;起了名字。黎曼给\u0026quot;流形\u0026quot;起了名字。伽罗瓦给\u0026quot;群\u0026quot;起了名字。康托尔给\u0026quot;集合\u0026quot;和\u0026quot;基数\u0026quot;起了名字。图灵给\u0026quot;可计算性\u0026quot;起了名字。香农给\u0026quot;熵\u0026quot;起了名字。\n这些人做了同一件事：找到了可以被压缩的结构，给它一个短名字，让后来人只用那个名字。\n你今天学的所有数学，都是在站在前人造好的宏上。你学微积分，不用从零构造实数；你学线性代数，不用从零构造群；你学概率论，不用从零构造测度。\n这不是历史的巧合。这是数学之所以能被人学习的唯一原因——如果不能层层压缩，人类根本学不动。\n第五章：$A_n$ vs $F_n$——两种宇宙 到目前为止，一切看起来都是直觉和比喻。Freedman 接下来要做的，是把这个直觉变成数学。\n他引入两个代数对象：\n自由阿贝尔幺半群 $A_n$：一种\u0026rdquo;顺序无关\u0026ldquo;的字符串空间。abc 和 bca 被认为是同一个东西。 自由非阿贝尔幺半群 $F_n$：一种\u0026rdquo;顺序相关\u0026ldquo;的字符串空间。abc 和 bca 是两个不同的东西。 吓人？别怕。用直觉讲。\n$A_n$ 像拼乐高：\n你有一堆乐高积木——一块红的、一块蓝的、一块绿的。你把红色拼在蓝色上面，再加一个绿色；还是先拼绿的，再加蓝的、红的——最后得到的模型是一样的。顺序无关紧要，只在乎哪些积木和几个。\n$F_n$ 像编辫子：\n你在编辫子。先把左绳压在中绳上面、再把右绳压在左绳上面——和先压右、再压左，得到的辫子完全不一样。顺序决定一切。\nFreedman 的定理说了一件\u0026quot;漂亮得像魔法\u0026quot;的事：\n在 $A_n$ 里，你只要用 O(log n) 个宏（对数级稀疏），就能让表达力指数级扩张。\n在 $F_n$ 里，就算你用 O($n^k$) 个宏（多项式级稠密），表达力也只能线性扩张。\n左边 $A_n$：造少量宏，表达力指数爆发。右边 $F_n$：造再多宏，也只是线性挣扎。可压缩性不是偶然，是结构性的——它取决于这个宇宙本身的代数结构。\n用大白话翻译：\n在\u0026quot;乐高宇宙\u0026quot;里，造几个宏顶一万个宏——因为积木可以自由组合，宏之间互相组合也自由 在\u0026quot;辫子宇宙\u0026quot;里，造再多宏也救不了你——因为顺序是死的，每个组合都必须单独记 这个对比为什么重要？\n因为它告诉我们：\u0026ldquo;可压缩性\u0026quot;不是普世的，它只在特定的结构里才存在。\n某个领域能不能发展出\u0026quot;数学\u0026quot;那种层层压缩的体系，取决于这个领域的底层操作是不是足够\u0026quot;顺序无关\u0026rdquo;。\n数学里的加法、乘法、集合并、函数复合——都是可交换或近似可交换的。所以数学是可压缩的。\n那人类的语言呢？主语动词宾语的顺序很要命——\u0026ldquo;狗咬人\u0026quot;和\u0026quot;人咬狗\u0026quot;不是一回事。所以语言处在 $A_n$ 和 $F_n$ 之间，压缩程度远低于数学。\n那生物学呢？DNA 序列的顺序至关重要——所以生物学长期没能被\u0026quot;压缩\u0026quot;成简洁定律，一直是描述性的。\n那LLM 的参数空间呢？这是一个 Freedman 没直接回答、但他的框架给出答案的问题——等我们到第八章再说。\n第六章：MathLib 实证——数据来说话 光有理论不够。Freedman 接下来做了一件让整篇论文从\u0026quot;哲学随笔\u0026quot;升级成\u0026quot;硬科学\u0026quot;的事：\n他把模型拿到真实的人类数学上验证了。\n测试对象：MathLib——Lean 4 的数学形式化库，目前世界上最大的\u0026quot;机器可验证的数学\u0026rdquo;。约 14 万条定理，覆盖代数、分析、拓扑、数论、范畴论……近乎所有本科和研究生级别的数学。\n对每一条定理，Freedman 的团队测三个量：\ndepth：这条定理调用了几层之前的定理（嵌套深度） wrapped length：定理的\u0026quot;表面\u0026quot;有多长——定义里出现了多少个 token unwrapped length：如果把所有用到的宏完全展开到原始符号，有多少字符 然后画图。\n结果 1：unwrapped length 随 depth 指数爆炸\n越往深走，完全展开之后的字符数按指数增长。到深度 10 以上，展开一条简单的定理就需要数千万字符。\n这符合直觉——调用的层越多，背后压缩的内容越多。\n结果 2：wrapped length 几乎是常数\n但——数学家写出来的定义，无论 depth 是 2 还是 12，长度几乎不变。永远就是几十个 token。\n这是一件不平凡的事。它意味着：\n数学家从来不写很长的定义。\n每当一个东西变复杂，数学家的第一反应是：先给它起个名字，然后用名字继续。\n一条定理的\"展开后长度\"随嵌套深度指数爆炸（蓝线），但\"数学家实际写出来的长度\"几乎是常数（橙线）——因为每到一个深度，数学家都会造一个宏把它压回来。这就是 $A_n$ 模型的指纹。\n结果 3：数据完美符合 $A_n$，严重违反 $F_n$\nFreedman 把两种模型的理论曲线画在同一张图上。$A_n$ 的指数扩张曲线，严丝合缝地盖在实测数据上。$F_n$ 的线性曲线，差了好几个数量级。\n这就是论文里最震撼的一句话（意译）：\n人类数学，生活在 $A_n$ 模型预测的那个可压缩子空间里。这不是隐喻，是可测量的事实。\n第七章：三个古老问题的答案 现在我们可以回到开头的三个问题了。Freedman 给出的答案，每一个都短到令人震撼。\n问题一：人类究竟是怎么构建数学知识的？\n层层压缩。\n每一代数学家看到前一代的成果，找出其中\u0026quot;可以起名字\u0026quot;的部分，造新的宏，然后在新宏之上继续推演。整个数学史就是一部宏的积累史。\n欧几里得给\u0026quot;点\u0026quot;\u0026ldquo;线\u0026quot;\u0026ldquo;面\u0026quot;起名字 → 笛卡尔给\u0026quot;坐标\u0026quot;起名字 → 牛顿给\u0026quot;导数\u0026quot;起名字 → 柯西给\u0026quot;极限\u0026quot;起名字 → 康托尔给\u0026quot;集合\u0026quot;起名字 → 希尔伯特给\u0026quot;空间\u0026quot;起名字 → 格罗滕迪克给\u0026quot;概形\u0026quot;起名字……\n每一层，都比上一层压缩了更多。\n问题二：人类数学和形式数学的本质区别是什么？\n可压缩 vs 不可压缩。\nFM 里大部分定理是\u0026quot;合法但无聊的\u0026rdquo;——没有结构、不能被起名字、没法进一步用。它们像是辫子宇宙里的那些定理，再怎么努力也扩张不开。\nHM 是 FM 里那个碰巧活在 $A_n$-like 子空间的小角落。在那里，少量的命名就能撬动指数级的内容。\n人类数学之所以是\u0026quot;人类\u0026quot;的，恰恰是因为人类的认知带宽极其有限——我们只能在那个可压缩的子空间里活动。而那个子空间的存在，是宇宙给我们的礼物——如果它不存在，人类压根不会有数学。\n问题三：未来人类数学家怎么和 AI 协同？\n这是 Freedman 这篇论文真正的\u0026quot;刀锋\u0026rdquo;。答案两句话：\nAI 的长处是在 FM 的巨大空间里并行搜索——因为它有我们没有的带宽。\n人类的长处是判断哪些地方\u0026quot;值得起名字\u0026rdquo;——因为我们有五万年的语言和抽象训练。\n这不是 AI 取代数学家，也不是数学家训练 AI。是两种不同认知带宽的分工协作。\nFreedman 还具体建议了一个做法：在 MathLib 的依赖图上跑 PageRank + 压缩度分析。一条定理如果：\n被很多下游定理引用（PageRank 高） 能大幅压缩下游内容（压缩度高） 那它就是核心定理——值得人类数学家投入研究，值得 AI 优先搜索。\n这把\u0026quot;什么是重要的数学\u0026quot;从一个主观判断，变成了一个可以算的量。\n第八章：这对 AI 意味着什么 前面七章都是数学。这一章把它接回 AI。\n第一个含义：AI 做数学的路线图，清晰了。\n2024 年以来，AI 做数学的几个重大事件：\nDeepMind 的 AlphaProof（2024）在 IMO 上拿到银牌 Terence Tao（陶哲轩，当今最强数学家之一）公开宣布 Lean 4 是他工作流的一部分 DeepMind 的 FunSearch 在组合数学里发现了新定理 Mathstral、DeepSeek-Math 等专门的数学 LLM 涌现 所有这些，Freedman 的框架都给了它们同一个解释：\n它们在 FM 的巨大空间里搜索，但它们能成功的地方，恰恰是 HM 已经压缩过的地方——因为人类积累的宏给它们提供了指路牌。\n换句话说——AI 的数学能力，是站在人类两千年\u0026quot;造宏\u0026quot;的结果之上的。脱离了 MathLib 里那 14 万条定理，AI 在纯 FM 里就像撒哈拉沙漠里找一粒米。\n下一步的突破，不会来自于让 AI 在 FM 里搜索得更快——而是让 AI 学会\u0026quot;自己造宏\u0026rdquo;。\n这是一个完全不同的能力。我们后面会看到，这也是当前 LLM 最大的盲点。\n第二个含义：LLM 是什么？答案变清楚了。\nDeepMind 那篇《Language Modeling Is Compression》（2023）已经给出了第一层答案：\n下一个 token 预测 = 算术编码下的压缩率最大化。\nLLM 训练时的 cross-entropy loss，严格来讲就是\u0026quot;对训练集的压缩率\u0026quot;的负对数。loss 越低，压缩率越高，理解越深。这不是比喻，是数学恒等。\n—— 对熵和交叉熵还没熟的读者，可以回头看 熵：宇宙最公平的税务员 和 贝叶斯不是预测 里的那条 $-\\log p$ 主线。\n但 Freedman 给出了第二层答案：\nLLM 会用宏，但不会造宏。\n什么意思？\nLLM 训练时吃了整个互联网——那里面充满了人类两千年造出来的宏（\u0026ldquo;微积分\u0026quot;\u0026ldquo;进化论\u0026quot;\u0026ldquo;民主\u0026quot;\u0026ldquo;熵\u0026quot;\u0026ldquo;transformer\u0026quot;\u0026ldquo;注意力\u0026rdquo;……）。LLM 学会了在这些宏之间自如穿梭——你问它什么，它能调出相关的宏来回答。\n所以它在\u0026quot;单步推理\u0026quot;上惊艳：你给它一个问题，它识别出是什么领域，调出对应的宏，给你一个合理的回答。\n但在\u0026quot;长证明\u0026quot;上——它崩溃。\n一条需要造新宏的证明（比如你自己提出了一个从未有人想过的引理），LLM 很难稳定地完成。因为它没有在训练中见过这个宏，它不会从零定义一个新概念然后在新概念上继续推演。\n这正好是 Freedman 说的\u0026quot;层层压缩\u0026quot;里的\u0026rdquo;层\u0026quot;——每一层都是一次新的命名。LLM 在一层内表现惊艳，跨层就断。\n第三个含义：为什么 LLM 的 scaling 有上限（可能）。\n这是一个 Freedman 没说、但框架隐含的推论。\n如果智能本质是\u0026quot;层层压缩\u0026rdquo;——造宏、在宏上造宏、在宏上的宏上再造宏——那么单纯把模型变大，增加的是单层的带宽，不是层数。\n一个更大的 LLM，能用更精细的宏、更大的词表、更长的上下文。但它造新宏的能力，没有因为变大而获得质变。\n这和 LeCun 反复讲的\u0026quot;LLM 缺世界模型\u0026quot;是同一件事的两面。在 Freedman 的语言里：\nLLM 是一个宏使用器。真正的智能是一个宏生成器。\n—— 这呼应了 世界模型之争 里 LeCun / 李飞飞 vs Ilya 那场口水战。双方都没错，他们在谈不同的东西：Ilya 说的是\u0026quot;用宏\u0026quot;的上限还没到，LeCun 说的是\u0026quot;造宏\u0026quot;的能力根本还没开始。\n第八章半：数学之外——诗、画、乐也是压缩 Freedman 的论文从头到尾只谈数学。但如果\u0026quot;压缩即理解\u0026quot;真的是宇宙级的事实，它就不该只在数学里成立。\n我写到这里的时候，脑子里跳出来的是王维。\n大漠孤烟直，长河落日圆。\n十个字。没有修饰、没有形容词、没有一个\u0026quot;情\u0026quot;字。但你读完这十个字，眼前立刻浮起一张画——辽阔、空旷、孤直的一缕烟、浑圆的落日压在地平线上。紧接着，是一股你说不出但确实感到的苍凉和孤寂。\n这十个字背后，藏着多少信息？\n视觉：一幅完整的西北边塞画面 几何：\u0026ldquo;直\u0026quot;与\u0026quot;圆\u0026quot;的极简构图对比，一竖一圆，撑起整个空间 时间：日落的那个瞬间，一天将尽 心境：使者独自远行的孤独，远离故土的怅然 历史：盛唐边塞诗的整套意象系统 用散文来复述，上千字都说不完。王维用十个字，把它压缩成了一个可以在你脑中重新展开的种子。\n这和 Freedman 论文里讲的\u0026quot;宏\u0026quot;是同一件事。\u0026ldquo;大漠\u0026quot;\u0026ldquo;孤烟\u0026quot;\u0026ldquo;长河\u0026quot;\u0026ldquo;落日\u0026rdquo;，每一个都是一个宏——它调用了中文文学两千年积累的意象、画面、情绪。王维的天才不是\u0026quot;写得漂亮\u0026rdquo;，而是挑出了那四个展开之后信息量最大的宏，把它们摆在一起。\n音乐是另一个面孔。\n贝多芬第五交响曲的开头只有四个音：ta-ta-ta-tum。但这四个音在整首交响曲里被变形、重组、上行、下行、反转了几百次。一首四十分钟的交响曲，本质上是从一个四音动机里压出来的——这就是作曲家说的\u0026quot;主题与变奏\u0026rdquo;，用 Freedman 的话讲就是：造一个宏，然后在宏的空间里自由展开。\n绘画也是。齐白石画虾，不画水、不画水草，只画虾——你看到的是虾，感受到的却是整个池塘。留白不是\u0026quot;没画\u0026rdquo;，是让观者自己在心里展开那一大片信息。八大山人一只翻白眼的鸟，你读出了整个明末遗民的心境。\n为什么所有艺术都指向同一件事？\n我的猜想是这样的：\n人类的大脑，能同时握住的\u0026quot;维度\u0026quot;是有限的。 几千个脑细胞组成的注意力，在某一刻只能在一个相对低维的空间里做关联。\n所以我们分科——有人专心在数学的维度里找可压缩的结构（几何、群、流形），有人专心在语言的维度里找（意象、节奏、双关），有人专心在声音的维度里找（和声、调性、动机），有人专心在视觉的维度里找（构图、比例、留白）。\n不是因为这些领域彼此无关，而是因为一个人扛不动所有维度。我们用自己天生敏感的那一条通道去压缩世界，彼此隔行如隔山——其实隔的不是山，是我们自己的认知带宽。\n而 LLM 第一次给了\u0026quot;把维度连起来\u0026quot;这件事一个物理基础。\n几千亿参数的模型，其内部表示空间的维度，远远超过任何一个人类个体能同时调用的维度。于是很多在我们看来\u0026quot;不相关\u0026quot;的东西——一首宋词、一段巴赫的赋格、一个偏微分方程、一张水墨画——在那个高维空间里，开始出现彼此对齐的方向。\nLLM 的涌现，不是神秘的玄学，而是：当压缩维度大到一定程度，原本散落在不同学科的宏，开始互相调用。\u0026ldquo;熵\u0026quot;这个宏，在物理、信息论、经济学、心理学里，突然变成同一个东西；\u0026ldquo;对称\u0026quot;这个宏，在群论、晶体、音乐、诗歌里，突然变成同一个东西。\n这大概就是跨域泛化、就是所谓\u0026quot;世界模型\u0026quot;的雏形。\n所以，数学、诗、画、乐，不是四件不同的事。它们是同一件事在四种媒介上的投影。\n王维不是\u0026quot;诗人而已\u0026rdquo;，他是一个在语言维度上找可压缩结构的人。 欧拉不是\u0026quot;数学家而已\u0026rdquo;，他是一个在符号维度上找可压缩结构的人。 贝多芬不是\u0026quot;作曲家而已\u0026rdquo;，他是一个在时间维度上找可压缩结构的人。 齐白石不是\u0026quot;画家而已\u0026rdquo;，他是一个在视觉维度上找可压缩结构的人。\n殊途同归。万物为一。\n我们每个普通人，只是在自己最敏感的那条通道里，做着同一件事——把复杂的世界压成一个自己能握住的短描述，然后靠这个短描述活下去。\nFreedman 用代数模型证明了：数学之所以存在，是因为它活在一个 $A_n$-like 的可压缩子空间里。\n我想补一句他没说的：人类文明之所以存在，是因为它活在无数个可压缩子空间的并集里。数学只是其中最干净的那一个，但不是唯一的一个。\n第九章：四种概率观的收束 写到这里，忍不住回头看一眼这一年来我们在这个博客走过的路。\n一条主线贯穿了四篇文章——每一篇都在用不同的视角看同一个数学对象 $P(x)$：\n视角 概率 $P(x)$ 是什么 核心论述 代表人物 贝叶斯 信念 概率是观察者的主观预期；证据到了就更新 Bayes / Jaynes 熵 无知 概率是\u0026quot;我不知道的那部分\u0026rdquo;；熵是无知的度量 Boltzmann / Shannon 量子（QBism） 实在 概率是世界本身的状态；不是我不够聪明 Born / Fuchs 压缩（今天这篇） 理解 概率是编码长度的倒数；$-\\log P$ 就是描述长度 Shannon / Freedman 这四个视角指向同一个公式：\n$$L(x) = -\\log P(x)$$\n贝叶斯派说：$L(x)$ 是我在这个观察上受到的\u0026quot;意外\u0026rdquo;，它驱动我更新信念 统计力学派说：$L(x)$ 是这个微观状态对熵的贡献 QBism 派说：$L(x)$ 是这个测量结果在我下次下注时的权重 压缩派说：$L(x)$ 是这个事件在最优编码里占的字符数 它们是同一个数学对象，从四个不同的哲学位置看。\nFreedman 这篇论文的意义是——他把这个公式从\u0026quot;一个信息论工具\u0026quot;升级成了\u0026quot;数学本身的基础\u0026rdquo;。数学之所以能存在，是因为宇宙可压缩；人类之所以能做数学，是因为我们活在 $A_n$ 那样一个低描述长度的结构里。\n这是一种近乎宗教般的洞察——不是因为它神秘，而是因为它把\u0026quot;为什么宇宙可以被理解\u0026quot;这件事，第一次压缩成了一句可以算的话。\n第十章：量子留下的三个直觉的升级版——压缩留下的三个直觉 上一篇《看见物理·量子》结尾说，量子留给我们三个直觉：观察不是被动的、信念与实在的界限是模糊的、概率是第一性原理。\n今天这篇，再加三个：\n直觉一：所有\u0026quot;理解\u0026quot;都是压缩。\n你理解了一个现象，意味着你能用比原始数据短得多的描述重新生成它。能做到这一点，你就理解了；做不到，你就只是在记忆。\n这对学习、对写作、对教学、对 AI，都是一致的标准。\n直觉二：数学独特之处，是它能做\u0026quot;嵌套的压缩\u0026rdquo;。\n不止一次压缩，而是\u0026quot;在压缩之上再压缩\u0026rdquo;。每一代数学家把上一代的结果打包成一个名字，然后在那个名字上继续工作。这个递归过程，是其他学科没有（或者没有这么强的）。\n物理学有一部分（理论物理），生物学基本没有，人文学科几乎没有。这是数学在学科里位置特殊的原因——它不是一门\u0026quot;学科\u0026quot;，它是\u0026quot;压缩能力\u0026quot;本身的训练场。\n直觉三：数学、诗、画、乐，是同一件事在四种媒介上的投影。\n每个领域的大师，都是在自己那条通道里做可压缩子空间的挖掘者。王维的\u0026quot;大漠孤烟直，长河落日圆\u0026quot;和欧拉的 $e^{i\\pi}+1=0$，本质同构——都是把庞大的信息压成一颗能在别人脑中重新展开的种子。我们分科，不是因为世界是割裂的，是因为一个人的认知带宽不够。LLM 第一次让这些分科的宏在同一个高维空间里开始互相调用——这就是所谓的涌现和泛化。\n直觉四：AI 要做真正的数学（和其他深度智能任务），必须学会\u0026quot;造宏\u0026quot;，而不只是\u0026quot;用宏\u0026quot;。\n\u0026ldquo;用宏\u0026quot;是工程问题——扩大上下文、提高精度、叠更多层。 \u0026ldquo;造宏\u0026quot;是认知问题——从混乱的现象中看出一个可以命名的模式。\n目前所有的 LLM，训练时是在\u0026quot;用宏\u0026quot;的层面上 scaling。真正的突破——不管它叫 AGI、叫 JEPA、叫世界模型、还是叫别的——一定出现在 AI 开始自己造宏的那一天。\n那一天，可能不远。也可能很远。Freedman 这篇论文没有回答它什么时候到。但它第一次让我们看清了差的是什么。\n尾声：你在读这篇文章，就是在压缩 Freedman 写完这篇论文那天，我在想一件事。\n你现在读这篇文章，大概花了二十分钟。我写它，带上查资料画图，大概花了八个小时。Freedman 写那篇论文，带上思考、证明、实验，大概花了一年。\n八小时 → 二十分钟。一年 → 八小时。\n每一次压缩，都有损失。 我不可能把 Freedman 的全部严格性搬给你。但每一次压缩，也都有获得——你能在二十分钟里带走一个新的看世界的方式。\n你读完这篇文章以后，过几天回想起来，记得的大概只有几个关键词：压缩、宏、乐高和辫子、MathLib、造宏而不是用宏。\n这就是又一次压缩。\n如果这几个关键词以后在你遇到别的问题时——学一个新领域、读一篇别人的论文、训练自己的模型、带一个学生、甚至只是想一件事——还能被你调用，那说明它们在你脑子里成了新的宏。\n你也在做 Freedman 说的那件事。\n数学家、程序员、作家、老师、学生——所有\u0026quot;用头脑工作\u0026quot;的人，每天都在干同一件事：\n把世界的复杂，压进一个可以用的短名字。\n下一次有人问你\u0026quot;什么是智能\u0026quot;的时候——你可以换一种回答了。\n不是\u0026quot;处理信息\u0026rdquo;。不是\u0026quot;模式识别\u0026rdquo;。不是\u0026quot;深度学习\u0026quot;。\n是：\n找到更短的描述。\n— 压缩，即是全部。\n下一篇，回到《看见物理》系列的最后一站——对称性。诺特定理、杨振宁、宇宙的骨架。对称性和压缩是一对孪生姐妹——有对称就有守恒，有守恒就有可压缩的描述。\n—— 所以，实际上我们还在同一个故事里。\n附：二十行 Python，复现\u0026quot;压缩就是理解\u0026quot; 最短的实验：用 gzip 和一个小型 LLM 分别压缩同一段文字，看谁理解得更深。\nimport gzip import torch from transformers import GPT2LMHeadModel, GPT2TokenizerFast text = open(\u0026#34;shakespeare.txt\u0026#34;).read()[:20000] # 20KB Shakespeare raw_bits = len(text.encode(\u0026#39;utf-8\u0026#39;)) * 8 # === 基线 1：gzip === gzip_bits = len(gzip.compress(text.encode(\u0026#39;utf-8\u0026#39;))) * 8 print(f\u0026#34;gzip: {gzip_bits / raw_bits:.3f} ({gzip_bits/1024:.1f} Kb)\u0026#34;) # === 基线 2：GPT-2 作为通用压缩器 === tok = GPT2TokenizerFast.from_pretrained(\u0026#34;gpt2\u0026#34;) model = GPT2LMHeadModel.from_pretrained(\u0026#34;gpt2\u0026#34;).eval() ids = tok(text, return_tensors=\u0026#34;pt\u0026#34;).input_ids with torch.no_grad(): logits = model(ids).logits[:, :-1, :] tgts = ids[:, 1:] logp = torch.nn.functional.log_softmax(logits, dim=-1) # 每个 token 的压缩长度 = -log_2 p(token) bits_per_token = -torch.gather(logp, -1, tgts.unsqueeze(-1)).squeeze() / torch.log(torch.tensor(2.0)) gpt2_bits = bits_per_token.sum().item() print(f\u0026#34;gpt2-base: {gpt2_bits / raw_bits:.3f} ({gpt2_bits/1024:.1f} Kb)\u0026#34;) 预期输出（CPU 上约 30 秒）：\ng g z p i t p 2 : - b a s e : 0 0 . . 5 2 4 4 0 0 GPT-2 压缩率比 gzip 好一倍多。 换 GPT-4 规模的模型，这个比例还能再涨。\nDeepMind 那篇论文的核心发现，就是这张表上多加一列 Chinchilla 70B——然后它开始压图像和音频，直接把 PNG 和 FLAC 打爆。\n这不是\u0026quot;像在压缩\u0026quot;。这就是压缩。\n延伸阅读 Michael Freedman, Compression is all you need: Modeling Mathematics, arXiv: 2603.20396 (2026-03). 本文主角。 Grégoire Delétang et al., Language Modeling Is Compression, arXiv: 2309.10668 (2023). DeepMind 把 Chinchilla 当通用压缩器的那篇。 Jack Rae, Compression for AGI, Stanford MLSys Seminar (2023). YouTube 上最火的一场\u0026quot;压缩 = 智能\u0026quot;讲座。 Ray Solomonoff, A Formal Theory of Inductive Inference, Part I \u0026amp; II (1964). 把\u0026quot;归纳 = 找最短程序\u0026quot;写成数学的奠基论文。 Marcus Hutter, The Hutter Prize for Lossless Compression of Human Knowledge (2006–). 把\u0026quot;压缩人类知识\u0026quot;当 AI 基准跑了二十年。 Terence Tao, AI and the Future of Mathematics (blog, 2024–2026). 陶哲轩自己怎么用 Lean + LLM。 Kevin Buzzard, The Natural Number Game 和 MathLib 介绍。想真的进 Lean 4 试试\u0026quot;造宏\u0026quot;的同学从这里开始。 系列内部链接 看见物理（七）：量子——观察者与被观察 看见物理（五）：熵——宇宙最公平的税务员 贝叶斯：比期望更高的智慧 世界模型之争——LLM 到底懂不懂这个世界？ LLM 为什么\u0026quot;懂\u0026quot;这个世界？ 公众号「AI-lab 学习笔记」同步首发。本系列全部文章可在 ai-blog 主页按分类/标签浏览。\n","permalink":"https://jason-azure.github.io/ai-blog/posts/compression-is-all-you-need/","summary":"2026 年 3 月，菲尔兹奖得主 Michael Freedman 发了一篇只有 30 多页的论文，标题叫《Compression is all you need》。他用一个优雅的代数模型回答了三个古老问题：人类怎么构建数学？人类数学和形式数学的本质区别是什么？未来人类数学家如何和 AI 协作？答案只有两个字——压缩。","title":"压缩即是全部 —— 菲尔兹奖得主给数学和 AI 的一封信"},{"content":"序:2025 年 1 月那一周 如果你只记得 2025 年开年 AI 圈的一件事,大概率是这一件:\n2025 年 1 月 27 日,英伟达股价单日下跌约 17%,市值蒸发将近 6000 亿美元——美股历史上单只股票最大单日市值损失。\n导火索不是新一代 GPU 跳票,不是中美再加一层制裁,也不是 OpenAI 出了什么事。是一家此前在英文世界连名字都念不顺的中国公司,在前一个周末把一个叫 R1 的推理模型按 MIT 许可证扔到了 Hugging Face 上。顺便附了一份技术报告:训练它的最后一段预训练,只花了大约 558 万美元。\n那一周市场上有一种被冒犯的情绪。\u0026ldquo;不可能。\u0026ldquo;\u0026ldquo;一定有 H100 在偷跑。\u0026ldquo;\u0026ldquo;数据是抄的。\u0026ldquo;很快又翻转成另一种情绪——\u0026ldquo;美国领先的故事是不是要塌了。\u0026rdquo;\n但如果你把镜头拉远,会发现这两种情绪都看错了重点。DeepSeek 时刻真正可怕的地方,不是某一家公司省了多少钱、追到了多近,而是它第一次在主流叙事面前把一个事实摆到了桌上:\nAI 的前路不是一条,是好几条。而它们正在同时往前走。\n这篇文章,我们站在这个路口往五个方向看一看,再听几位在路口站了很多年的科学家说说话,最后给你一张可以反复对照的地图。\n第一岔:开源与闭源——两条曲线 R1 之前,流行的故事是这样的:大模型是富人的游戏。算力 = 护城河,数据 = 护城河,RLHF 工程 = 护城河。开源永远跟在闭源后面 12-18 个月,而且差距会越拉越大,因为前沿模型的训练成本每年翻番。\nR1 在一个周末把这个故事撕开了一个口子。它没有提出新架构——还是 Transformer + MoE,《MoE 架构解析》里讲过那 256 个专家自动分诊的故事。它的贡献是把\u0026quot;推理能力\u0026quot;做成了一份可以复现的菜谱:用强化学习直接奖励『答对了』,不需要昂贵的过程标注,模型自己会学会停下来想几步。然后把权重和报告全开。\n紧接着的一个月里,通义千问把 Qwen 系列继续以 Apache 2.0 推进,Moonshot 的 Kimi 把长上下文和推理 RL 揉在一起,MiniMax 把线性注意力第一次推到生产规模,智谱、阶跃、零一万物各自给出自己的解法。开源这一侧不是一家公司逼近闭源,而是一片森林同时长起来。\n但故事的另一面同样真实。Anthropic 的 CEO Dario Amodei 在博客里写了一篇冷静的反驳——大意是:R1 在能力上大约相当于美国前沿实验室七到十个月前的水平,Claude 3.5 Sonnet 的训练并没有外界传说的那么贵。他没有否认 R1 的工程成就,他在提醒一件事:前沿曲线本身没有停。OpenAI、Anthropic、Google、xAI 仍然在按月迭代 o 系列、extended thinking、Gemini 2.5、Grok。差距确实在缩小,但差距并没有消失。\n放到一张地图上是这样:\n维度 开源阵营状态 闭源阵营护城河 知识 QA / 数学 / 代码补全 基本追平 持平 多模态生成(视频、实时语音) 落后明显 Sora、Veo、GPT-4o 实时模式 长程 Agent / 工具使用 在追,但不稳 Claude Code、Operator 系列工程经验 推理模型工程链路 R1 / K1.5 已开 o 系列、extended thinking 仍领先 训练算力规模 万卡级 Stargate、Colossus 十万卡级别 所以这第一个岔口的真相不是\u0026quot;谁赢了\u0026rdquo;,是:\nAI 不再有一条曲线,有两条。一条是 Anthropic、OpenAI、Google 拉的『最前沿』,另一条是 DeepSeek、Qwen、Mistral 拉的『可获得的最好』。两条曲线都在涨,都不会消失。\n《压缩即是全部》里我们说过,所有理解都是压缩。这次的 DeepSeek 时刻,本质上是把\u0026quot;造出一个会推理的压缩器\u0026quot;这件事的工程门槛,从十几亿美元的级别,压到了千万美元能起步的级别。门槛不会一直降——但门已经被推开了,关不回去。\n第二岔:通用与垂直——一棵树分了枝 有了 R1 之后,有一种很顺手的乐观:既然通用模型这么强,直接拿来开机器人、开车、看片子,不就行了吗?\n实际试过的人都知道,不行。\n先看一组数字。一个最聪明的 LLM 输出一句话,从你按回车到第一个 token 出现,在云上一般是几百毫秒到一秒;把整段答案讲完,几秒到十几秒。这在一个对话框里完全够用。\n但是:\n一个机器人的关节控制循环,典型是 50–1000 Hz——每秒钟要做 50 到 1000 次决策。 一辆 L4 自动驾驶车,从感知到规控的闭环延迟必须低于 100 毫秒,而且对每一帧都要输出。 上面两件事失败的代价不是\u0026quot;答错了\u0026rdquo;,是摔倒、撞上、伤人。幻觉在这里不是文学问题,是物理问题。 这意味着,通用 LLM 不能直接拿来当机器人和驾驶的\u0026quot;大脑\u0026rdquo;。它进入这两个领域的方式,只能是当慢系统——出策略、做长程规划、读懂自然语言指令——而真正闭环的快控制,得交给另一类模型。\n业内对这一类模型有专门的名字:VLA(Vision-Language-Action)。它不再只输出文字,它输出连续的关节角和扭矩。\nVLA 的家谱大致是这样:\nRT-1(Google,arXiv:2212.06817):13 万条真机轨迹,把视觉、语言、动作第一次塞进一个 Transformer。 RT-2(DeepMind,arXiv:2307.15818):把动作直接编码成 token,让一个视觉语言模型\u0026quot;顺便\u0026quot;输出动作,常识从语言里迁过来。 Open X-Embodiment / RT-X(arXiv:2310.08864):22 种本体、500 多项技能、160 万条轨迹拼一个跨本体大数据集——像极了 LLM 当年拿全网文本拼语料。 OpenVLA(arXiv:2406.09246):7B 全开源,效果反超此前 55B 的 RT-2-X。 π0(Physical Intelligence,arXiv:2410.24164):PaliGemma 视觉语言模型 + 流匹配动作头,50 Hz 实时控制。 Figure Helix(2025 年 2 月发布):明确的双系统架构——慢思考 7-9 Hz 的 VLM 出意图,快控制 200 Hz 的小模型出关节扭矩。 这条路线的形状已经很清楚了:视觉语言模型是『大脑』,动作模型是『小脑』,两者通过一个低维瓶颈对话。这其实是《看见物理(八·对称性)》里讲过的那个老主题——对称性=哪些维度可以被压缩掉。机器人和环境的耦合里,绝大多数高频细节(关节摩擦、地面反作用力)不需要 LLM 操心,但目标、约束、长程意图必须由 LLM 接住。\n自动驾驶则是同一个母题的另一个变奏。它的\u0026quot;GPT 时刻\u0026quot;其实更早——Tesla FSD v12(2024 年初推送)第一次把过去 30 万行 C++ 规控规则,替换成了一个端到端的神经网络:摄像头进、轨迹出。Karpathy 在红杉的演讲里讲过那一刻的感受,大意是:\u0026ldquo;我们删了一半代码,效果反而更好了。\u0026ldquo;紧接着 Waymo 的 EMMA、英国 Wayve 的 GAIA-1、华为 ADS、小鹏 XNGP、蔚来 NWM、理想 MindVLA、上海 AI 实验室的 UniAD(CVPR 2023 Best Paper),纷纷把端到端做成了行业新共识。\n但请注意一件事:这些自动驾驶模型,没有一个是直接拿 GPT 来开车的。它们都是为驾驶场景重新训练、重新蒸馏、重新对齐的专用模型。它们和 LLM 共享的是 Transformer/扩散这一层架构、是 scaling law 这一类直觉,但输入空间、输出空间、安全冗余、实时性约束没有一项与 LLM 重合。\n所以第二个岔口的真相是:\n通用 LLM 不会直接吞掉机器人和驾驶。它会作为『慢系统大脑』和『常识库』被嵌进去,但围绕它会长出一棵新的树:VLA、世界模型、扩散动作策略、专用 backbone。这棵树和 LLM 同源,但不同种。\n李飞飞 2024 年下半年成立 World Labs、LeCun 多年坚持的 JEPA(arXiv:2301.08243 / 2404.08471)、DeepMind 的 Genie——它们都在押同一件事:这棵新树的根,不是文本,是视频。\n第三岔:Transformer 之后 第三个岔口比前两个安静,但可能影响更深远。\n《Transformer 深度拆解》系列里我们一层一层讲过:Q、K、V 是怎么从一团 embedding 里被三个棱镜分出来的;残差流是 Transformer 真正的脊梁;位置编码是给并行化付出的代价。但这套架构有一个逃不掉的代价——注意力的复杂度是 O(n²)。序列每翻一倍,算力翻四倍。\n从 2023 年到现在,挑战者从来没缺席过:\nMamba / 状态空间模型(arXiv:2312.00752):线性时间复杂度,在长序列上大幅省算力。已经出现了 Codestral Mamba、AI21 Jamba 这样的混合商用模型。 RWKV:把 RNN 重新设计成可并行训练,开源社区有 7B、14B 在跑端侧。 JEPA 系列(LeCun):放弃\u0026quot;预测每一个像素\u0026rdquo;,改成在抽象表征空间里做预测——目标不是文字续写,是世界建模。 TTT (Test-Time Training)(arXiv:2407.04620):让模型在推理时也保留少量权重更新,把\u0026quot;记忆\u0026quot;从 KV cache 里挪到权重里。 Diffusion-LM / LLaDA:把扩散模型用到文本上,试图绕开自回归的串行瓶颈。 xLSTM(arXiv:2405.04517):Hochreiter 本人——LSTM 的发明者——亲自下场,把 LSTM 重新做了一遍。 Liquid Neural Networks:从 C. elegans 这种线虫的神经元动力学得到灵感,小、快、连续时间。 三年过去了,这些挑战者没有一个真正取代 Transformer。但同样真实的是,没有一个被证伪。它们各自占住了一小块生态位:Mamba 在长上下文上有戏,RWKV 在端侧推理上轻巧,JEPA 在视频世界建模上代表了另一条路,xLSTM 给了 RNN 派重新证明自己的机会,Diffusion-LM 在并行解码场景上还在试。\n业内逐渐形成的共识是:下一个范式不会是单点替换,会是分叉。\n文本对话——Transformer + MoE 仍然是主力。 长上下文检索——Mamba 这类线性注意力会蚕食一部分。 端侧实时——RWKV、xLSTM、Liquid 各有优势。 视频和具身世界建模——JEPA 路线和扩散路线各押一边。 数学和代码长程推理——MoE + 思维链 + RL 自验证仍是 R1/o 系列的主战场。 这其实非常像《看见物理(六·相变)》里讲过的图像:单一相不会永远稳定,系统冷下来或热上去就会分相。AI 现在正在从一个\u0026quot;什么都用 Transformer\u0026quot;的高温熔融态,慢慢分出几个不同的相区。每个相区里 Transformer 还在,但不再是唯一。\n第四岔:大不一定是答案 接着第三岔再往前推一步,会撞上一个更尖锐的问题:为什么我们一定要这么大?\nGPT-4 千亿级参数,Llama 4 Behemoth 据传 2T,Grok 4 撑在十万张 H100 上。每一代旗舰都比上一代更大、更贵、更难部署。但你心里大概也有过同一个直觉——手机里跑的 1.5B 推理模型有时候答得不错,数百亿的旗舰也会犯一些低级错误。这种参数量和实际智能的脱节感,是真实的。\nMIT 的 Frankle 和 Carbin 在 2018 年提了一个解释,叫彩票假说(Lottery Ticket Hypothesis):\n一个大网络之所以能训练成功,不是因为它需要那么多参数,而是因为参数越多,在随机初始化里『碰巧含有一个能学好的小子网络』的概率就越高。每一组初始权重就是一张彩票。一张中奖率极低,但你有几十亿张时,中奖就是必然事件。\n这件事如果成立,意味着我们今天的训练范式其实非常浪费——真正在做事的,从来只是大模型里那一小撮『中奖参数』。剩下 99% 是培育那张幸运彩票时不得不带着的脚手架。《为什么把模型做大就能变聪明?》《MoE 架构解析》里我们都展开讲过这条线:MoE 把\u0026quot;事后剪枝中奖彩票\u0026quot;变成了\u0026quot;事前每次只激活中奖那一小部分\u0026rdquo;——256 个专家里每次只用 8 个,本质就是把彩票假说做成工程。\n把这条线拉到 2025 年,再看一遍这些事,你会发现它们都在指同一个方向:\n知识蒸馏:把 671B 的 R1 蒸到 1.5B 的 Qwen,数学题正确率反而能保住七八成。老师傅花十年磨出来的味,徒弟尝几百顿就能学个大概。 MoE 稀疏激活:推理时真正在算的参数只有总量的几十分之一。 端侧模型:Phi、Qwen-1.5B、Gemini Nano、苹果 Foundation Models 在手机端跑日常对话,用户基本看不出和云端旗舰的差别。 Mamba / RWKV / Liquid:不是为了\u0026quot;更大\u0026rdquo;,是为了\u0026quot;同样能力下更小、更快、能塞进汽车和耳机\u0026rdquo;。 把这些放在一起看,一个温柔但坚硬的判断在浮现:\n大模型可能从来不是终点,只是『找到那张中奖彩票』的临时手段。真正可部署、可信任、可持续的智能,很可能比我们现在以为的小一到两个数量级。\n如果这个判断成立,2030 年最重要的 AI 不是参数最大的那个,而是单位参数智能密度最高的那个。前沿实验室继续往大里推,目的是探明能力上限;但真正进入你手机、汽车、家用机器人的,会是不断从前沿\u0026quot;摘下来\u0026quot;的更小、更稠密的版本。\n这也呼应了《压缩即是全部》里那句话——所有理解都是压缩。大模型在做的,其实是用算力暴力搜索一个更小的有效电路;搜到之后,我们才有机会把它单独取出来。\n第五岔:发明者的去向 最有意思的一个岔口,藏在论文署名页里。\n2017 年 6 月,Google Brain 的八个人在 NeurIPS 投了一篇叫 Attention Is All You Need 的论文。这八个人一起改写了此后 AI 的全部叙事。但如果你今天去看他们各自的去向,会发现一件几乎是寓言性质的事情:\n八个发明者,几乎每一个都站在一条不同的岔路上。\nAshish Vaswani(一作),离开 Google 去创业,现在做 Essential AI。 Noam Shazeer,创办 Character.AI,2024 年被 Google 反向收购回去,继续主导 Gemini。 Niki Parmar,Adept → Essential AI 联合创始人。 Jakob Uszkoreit,创办 Inceptive——把 Transformer 用到 mRNA 药物设计。在他看来,生物学才是更大的赌局。 Llion Jones,和 David Ha 在东京创办 Sakana AI——一家以\u0026quot;演化计算\u0026quot;和\u0026quot;小模型集合\u0026quot;为信念的公司,刻意不押大模型。 Aidan Gomez,当年还是本科实习生,如今是 Cohere 的 CEO,押注企业级 LLM。 Łukasz Kaiser,八人中唯一押注集中式 AGI 的——他去了 OpenAI,深度参与 GPT-4 与 o 系列。 Illia Polosukhin,论文同年就离开了,创办 NEAR Protocol,押的是去中心化 AI 与区块链。 把这八个人的轨迹画在一张图上,你会看到一个非常工整的发散:集中式 AGI、企业 LLM、生物学、演化小模型、对话陪伴、机器人、去中心化、推理 API——他们一人占住了一个方向。\n这件事的隐喻意义大于它的事实意义。它在告诉我们:\nTransformer 这篇论文不仅把 AI 推到了一个十字路口,它把它的发明者本身也推到了路口上。每个人都看见了一种未来,然后选了一种,转身就走。\n而留下来的那十几万次引用、那一行 Attention Is All You Need,既是起点,也是分界线。\n声音:看路口的人在想什么 岔路上各有各的走法,但几位站得最高、看得最久的科学家,他们的判断值得单独听一听。\nGeoffrey Hinton(深度学习之父,2024 年诺贝尔物理学奖得主)\n2023 年春天,Hinton 从 Google 辞职,理由是\u0026quot;想自由地谈 AI 的危险\u0026rdquo;。他后来在多次公开演讲里反复说同一句话:\n\u0026ldquo;我用了一辈子把 AI 做出来。现在我开始担心,我们造的东西可能比我们更聪明,而且我们没有办法控制它。\u0026rdquo;\n他的另一个核心判断是:数字智能(digital intelligence)在原理上就胜过生物智能——因为数字智能可以无损复制、并行学习,人类大脑做不到。这意味着一旦 AI 真正比人类聪明,差距会以指数速度拉开。听起来悲观,但他依然在做基础研究,推 Forward-Forward 算法,试图找到比反向传播更接近大脑的训练方式。\nYann LeCun(深度学习先驱,纽约大学教授,2018 年图灵奖得主)\nLeCun 是这些人里最反\u0026quot;LLM 即一切\u0026quot;的。他的判断很清楚:\n\u0026ldquo;自回归 LLM 走不到终点。它学不到世界模型,它没有规划,它没有持久记忆。给一只猫看几个小时的视频,它能比 Llama 学到的世界结构多得多。\u0026rdquo;\n他的解法叫 JEPA(Joint Embedding Predictive Architecture)——不让模型预测每一个像素,只让它在抽象表征空间里预测\u0026quot;接下来会发生什么\u0026quot;。在他看来,通往 AGI 的路要靠视频,不是文字。JEPA 路线现在已经被 V-JEPA、V-JEPA 2、Genie、World Labs 接续推进,走出了一条和 LLM 平行但不同的路。\nFei-Fei Li(李飞飞,ImageNet 之母,World Labs 创始人)\nImageNet 是当年点燃深度学习的那把火。十几年后,她在 2024 年下半年创办 World Labs,押的是另一件事——空间智能(spatial intelligence)。她的论点是:\n\u0026ldquo;语言只是智能的薄薄一层皮。真正的智能要能理解空间、操作物体、在三维世界里行动。LLM 看了所有的书,但它从未『见过』这个世界。\u0026rdquo;\nWorld Labs 的产品形态是:从一张图重建一个可以走进去、可以交互的三维世界。这一路线和 LeCun 的 JEPA、DeepMind 的 Genie 实际上汇成了同一股流——视觉和空间,而不是文字,才是世界模型的根。\nAndrej Karpathy(OpenAI 创始成员、前特斯拉 AI 总监)\nKarpathy 是最善于把复杂的事讲清楚的一个。他 2024 年的两次公开演讲(红杉 AI Ascent、Dwarkesh Patel 访谈)给整个行业留下了几个金句式的判断:\n\u0026ldquo;Software 1.0 是人写代码,Software 2.0 是人写数据让模型学,Software 3.0 是人用自然语言对模型说话。我们正在从 1.0 跳到 3.0,中间那一段以后会被称为『前 LLM 时代』。\u0026rdquo;\n他对端到端的信念极强(特斯拉 FSD v12 是他主导的方向),也对小模型友好——他亲自写过一个 200 行纯 Python 的 GPT 教学版,告诉所有人这套魔法没那么神秘。\nYoshua Bengio(蒙特利尔大学,2018 年图灵奖)\nBengio 这两年在做一件让外界有点意外的事——研究怎么让 AI 不撒谎。他提了一个叫 Scientist AI 的方向:不让模型试图直接当 agent 去行动,而是把它训练成一个只会输出\u0026quot;对世界的诚实判断 + 不确定度\u0026quot;的科学家式系统。然后由人类来基于这些判断做决策。\n\u0026ldquo;我们在用对齐技术教 AI 别说真话以外的话。但更安全的方法,可能是从一开始就不要让它试图行动。\u0026rdquo;\nIlya Sutskever(OpenAI 前首席科学家,SSI 创始人)\n2024 年 5 月离开 OpenAI 之后,Sutskever 创办了 Safe Superintelligence Inc.——一家只做一件事的公司:安全的超级智能。他对外几乎不发声,公司没有产品路线图,只有一个目标:不被商业化压力分心,把人类如何安全地造出比自己聪明的东西这件事想清楚。\n把这六个人的方向并排放在一起:\n科学家 当下押注 一句话 Hinton 警告 + Forward-Forward \u0026ldquo;我们可能造了比我们聪明的东西\u0026rdquo; LeCun JEPA / 世界模型 / 视频 \u0026ldquo;自回归 LLM 不是唯一的路\u0026rdquo; 李飞飞 World Labs / 空间智能 \u0026ldquo;语言只是智能的薄皮\u0026rdquo; Karpathy 端到端 + 教育普及 \u0026ldquo;我们正进入 Software 3.0\u0026rdquo; Bengio Scientist AI / 安全 \u0026ldquo;别让 AI 行动,让它诚实\u0026rdquo; Sutskever Safe Superintelligence \u0026ldquo;把对齐想清楚再说\u0026rdquo; 注意一件事:这六个人都是同一波深度学习革命的发起者,他们今天却走进了六个不同的方向。这不是分裂,这是领域成熟到值得分头探索的标志。如果连他们都没有共识,那么\u0026quot;AI 只有一种未来\u0026quot;这个想法,本身就该被退回去重写。\n一张地图:站在路口往哪儿看 讲了五个岔、六位科学家,你大概需要一张可以反复对照的图。下面这张是把今天 AI 大致分成的八个相区——每个相区里我列出代表性组织和有代表性的人(不求穷尽,只求让你下次看到一个名字时能把它放进对的格子)。\n相区 在做什么 代表组织 代表人物 ① 通用 LLM 前沿(闭源) 把能力上限继续往上推 OpenAI, Anthropic, Google DeepMind, xAI Sam Altman, Dario Amodei, Demis Hassabis, Łukasz Kaiser ② 开源旗舰 把\u0026quot;可获得的最好\u0026quot;做成森林 DeepSeek, 通义千问(阿里), Kimi(Moonshot), MiniMax, 智谱, 阶跃, Meta(Llama), Mistral 梁文锋, 周靖人, 杨植麟, 闫俊杰, 唐杰 ③ Agent / 工具与编排 让模型用工具完成长程任务 Anthropic(Claude Code), OpenAI(Operator), Cognition(Devin), LangChain, Cursor 由通用 LLM 团队主导 ④ 具身 / 机器人 VLA 把视觉-语言-动作合一 Physical Intelligence(π0), Figure AI, 1X, Tesla Optimus, BD+TRI, 宇树, 智元, 银河通用 Sergey Levine, Brett Adcock, 稚晖君, 王鹤 ⑤ 自动驾驶端到端 把 30 万行规则换成神经网络 Tesla FSD, Waymo, Wayve, 华为 ADS, 小鹏, 蔚来, 理想, 上海 AI 实验室, 商汤 Karpathy(已离开特斯拉), 王晓刚 ⑥ 世界模型 / 空间智能 用视频+三维当根,绕过文本 Meta FAIR(JEPA), World Labs, DeepMind(Genie), Wayve(GAIA), 1X World Model Yann LeCun, 李飞飞 ⑦ 替代架构 / 端侧小模型 让智能更轻、更小、更近 Mistral(Mamba 混合), AI21(Jamba), RWKV, NXAI(xLSTM), Liquid AI, Sakana AI, 苹果端侧 Albert Gu, Sepp Hochreiter, Llion Jones, David Ha ⑧ 安全 / 对齐 / 科学家路线 想清楚再造,或别让它行动 Anthropic(部分), SSI, MILA(Bengio 组), Hinton 个人 Ilya Sutskever, Geoffrey Hinton, Yoshua Bengio (一不小心数到了八。这本身可能也是个信号。)\n读这张表,可能有几个角度:\n看到一家公司,先问它在哪一格。 同一格里它和谁竞争,跨格的它和谁互补。\n看到一篇新论文,先问它属于哪一格。 一篇 VLA 论文不该用 LLM 的标尺去衡量,反过来也是。\n关心 AI 安全的,不只在第八格。 每一格里都有自己的安全问题——机器人摔伤、车祸、Agent 误删文件——各有各的对齐挑战。\n关心中国 AI 的,主战场在第二格、第四格、第五格。 开源旗舰、具身、自动驾驶,是中国实验室和创业公司目前最有牌的三块。\n收束:压缩之后是分叉 五条岔路 + 六个声音 + 一张地图,看完之后,回头看那一周的英伟达股价,反而平静了。\n第一条岔上,开源不是赢家,但它把\u0026quot;可获得的最好\u0026quot;这条曲线第一次单独拉了出来。 第二条岔上,通用 LLM 不会吞掉一切——VLA、世界模型、自动驾驶专用模型,各自长成自己的树。 第三条岔上,Transformer 不会被一刀替换,它会在不同相区里被 Mamba、JEPA、扩散、RNN 派各自补充。 第四条岔上,真正的智能可能比我们以为的小——大模型只是采购式抽彩票,中奖的那张本来就在那里,等着被取出来。 第五条岔上,连论文的发明者本身都散到了八个不同的方向——这八个方向加在一起,就是今天 AI 的全部地形。 《压缩即是全部》里我们说过,智能就是压缩——找到一个更短的描述。《看见物理(八·对称性)》里我们说过,对称性就是宇宙在告诉你\u0026quot;哪些差别其实不重要,可以压掉\u0026quot;。这两件事都在讲收敛:从复杂找到简单,从万象找到一律。\n但站在 2025 年这个路口往前看,我们会发现 AI 接下来要面对的事情反过来了——它不是收敛,是分叉。\n一个能在屏幕上和你聊天的智能,和一个在工厂里 200 Hz 控制关节的智能,共享根但开不同的花。 一个用万亿 token 文本训练的智能,和一个用十亿小时视频训练的世界模型,共享数学但解不同的题。 一个由十万张 H100 撑起来的前沿,和一个用两千张 H800 跑出 R1 的高地,共享算法但走不同的山道。 一个塞进汽车和耳机的 1.5B 端侧模型,和一个守在数据中心里的万亿参数旗舰,共享谱系但服务于完全不同的人。 这就是十字路口本来的样子。它不是\u0026quot;选一条对的路\u0026quot;的考题——它是『不再只有一条路可走』这件事本身。\n如果你一路跟着我们读到这里,从《AI 的 70 年》那场 1956 年的达特茅斯会议讲起,到 Transformer 八层结构每一层是怎么长出来的,到压缩即是全部,到对称性=守恒——你大概已经习惯了那种\u0026quot;所有现象背后有一个简单原理\u0026quot;的快感。\n但站在路口的时候,我们要练另一种眼睛:看出有几条路、哪条路适合谁、哪条路只是看起来近、哪条路其实是回家。\n英伟达那 6000 亿美元蒸发的那个下午,真正震动的不是股价,是一个隐含的假设——AI 只有一种未来。那个假设碎了。\n碎了挺好。\n本文涉及的本博客文章 《AI 的 70 年》(系列三篇) 《看见物理(六·相变)》 《看见物理(八·对称性)》 《Transformer 深度拆解》(系列六篇) 《MoE 架构解析》 《为什么把模型做大就能变聪明?》 《压缩即是全部》 参考与来源 Attention Is All You Need, Vaswani et al., 2017, arXiv:1706.03762 DeepSeek-V3 Technical Report, 2024, arXiv:2412.19437 DeepSeek-R1: Incentivizing Reasoning Capability in LLMs via RL, 2025, arXiv:2501.12948 Kimi K1.5: Scaling RL with LLMs, 2025, arXiv:2501.12599 Mamba: Linear-Time Sequence Modeling, 2023, arXiv:2312.00752 I-JEPA / V-JEPA, LeCun et al., arXiv:2301.08243, 2404.08471 RT-2: Vision-Language-Action Models, 2023, arXiv:2307.15818 Open X-Embodiment, 2023, arXiv:2310.08864 OpenVLA, 2024, arXiv:2406.09246 π0: A Vision-Language-Action Flow Model, Physical Intelligence, 2024, arXiv:2410.24164 EMMA: End-to-End Multimodal Model for Autonomous Driving, Waymo, 2024, arXiv:2410.23262 GAIA-1: A Generative World Model for Autonomous Driving, Wayve, 2023, arXiv:2309.17080 UniAD: Planning-oriented Autonomous Driving, CVPR 2023, arXiv:2212.10156 The Lottery Ticket Hypothesis, Frankle \u0026amp; Carbin, ICLR 2019, arXiv:1803.03635 Geoffrey Hinton, 2023 NYT 专访 / 2024 Nobel Lecture Yann LeCun, A Path Towards Autonomous Machine Intelligence, 2022 Open Review Fei-Fei Li, World Labs 2024 创立公开信 Andrej Karpathy, Software Is Changing (Again), Sequoia Capital AI Ascent 2024 / Dwarkesh Patel 访谈 2024 Yoshua Bengio, Towards Scientist AI, 2025 立场论文 Ilya Sutskever, Safe Superintelligence Inc. 2024-06 创立声明 Dario Amodei, On DeepSeek and Export Controls, 2025-01-29 博文 数字与日期以原始论文与公司技术报告为准;融资额、估值、市占等高频变动数据未在本文出现。\n","permalink":"https://jason-azure.github.io/ai-blog/posts/ai-crossroads/","summary":"2025 年 1 月底,一家此前在英文世界几乎没人念得对名字的中国公司,把英伟达推下悬崖。但故事不是『中国赢了』,也不是『开源赢了』。真正发生的事情是:那条所有人以为只有一条的路,在那一周分了岔。开源与闭源、通用与垂直、Transformer 之后、大模型与小模型、连发明者本身都散去了不同方向——AI 的未来不再是一个,而是同时有几个。这一篇,我们站在路口往几个方向看,听听站在路口的那些人怎么说,再画一张可以反复对照的地图。","title":"AI 的十字路口"},{"content":"一篇什么都对的读后感 一个五年级的孩子用 ChatGPT 写完了周末的读后感。\n文笔流畅,结构工整,用词比他平时好两个等级。他妈妈看完说不出哪里不对,但就是觉得哪里不对。\n她的直觉是准的——那篇文章里什么都有,唯独没有她儿子。\n没有他读到某一页时皱起的眉头,没有他自己也说不清楚的那个\u0026quot;可是我觉得……\u0026quot;,没有他把书扔到一边又拿回来的那个动作。那些东西不会出现在任何评分标准里,但那些东西就是学习本身。\nAI 替他写了一篇满分的读后感。代价是他少了一次真正思考的机会。\n这件事让我想了很久。不是因为 AI——是因为它把一个教育里一直存在、但大家可以假装看不见的问题,推到了聚光灯底下:\n我们到底是在教孩子拿到答案,还是在教他们成为一个会想事情的人?\n这个问题不是 AI 带来的。它一直在那里。AI 只是让我们再也绕不过去了。\n答案免费之后 不知不觉中,一个事实已经悄悄成立:对大多数日常问题来说,获得一个\u0026quot;看起来正确\u0026quot;的答案,几乎不再需要成本。\n翻译?GPT 直接给你。合同模板?三秒钟。一道高中物理题的解法?比你翻教辅快十倍。连代码都是——描述清楚需求,AI 就能写出一个能跑的版本。\n如果你只看这一面,很容易得出一个结论:既然答案免费了,那教孩子\u0026quot;掌握知识\u0026quot;还有什么用?直接教他们用工具不就行了?\n很多文章确实在这么写。但我觉得这里面藏着一道悬崖。\n答案免费,不等于知识不必要。\n让我举一个真实的场景。你让 AI 帮你写一份合同,它给出一份看起来很专业的文本——措辞准确,条款齐全。但里面可能有几处是它编的。这几处错误不会标红,不会闪烁,不会跳出来跟你说\u0026quot;这里我瞎编的\u0026quot;。它和正确的部分长得一模一样。\n这时候,有没有能力看出哪里不对——就成了真实的分水岭。\n而\u0026quot;看出哪里不对\u0026quot;这件事,靠的不是搜索能力,是你脑子里已经长进去的东西。你读过的案例,你踩过的坑,你在这个领域里形成的直觉。\n我反复想到一个画面:AI 像一个无限慷慨的图书馆,什么都愿意给你拿。但要在这个图书馆里不迷路、不被骗、能找到自己真正要的那本——你脑子里得先有一张地图。\n地图不是 AI 给的。地图是你自己长出来的。\n\u0026ldquo;从零到六十分\u0026quot;被压扁了 这两年学 AI,我最大的收获不是学到了多少新东西,而是被它逼着重新想了一件事:学习,到底是在学什么?\n在 AI 之前,大家默认的答案大致是:\n学一个技能 → 反复练习 → 变得熟练 → 用熟练度换报酬 → 技能贬值 → 学下一个。\n这个循环运转了几十年。然后 AI 把中间那一段——反复练习变得熟练——从几年压缩到了几分钟。Copilot 三秒钟就到了一个中等程序员要花三年的水平。GPT 直接跳过了一个翻译的五年积累。\n但这里有一条很微妙的分界线。\nAI 压缩的是\u0026quot;从零到六十分\u0026quot;的距离。从六十到九十分,依然需要深度理解。从九十到一百分,需要的是品味、直觉,以及对根本问题的长期思考。\n这条线把\u0026quot;学习\u0026quot;一刀切成两半。熟练那一面,迅速贬值;理解那一面,反而升值了。\n而我们的教育系统——不只是中国——几乎全部押在\u0026quot;熟练\u0026quot;那一面。刷题、背公式、套模板、反复练。这套训练生产的,正是 AI 现在做得最好的事。\n这不是说\u0026quot;别学了\u0026rdquo;。基础的读写算,基本的英语,基本的编程逻辑——这些是和 AI 协作的起码门槛,缺了它们连 AI 都用不好。这就好像汽车时代,会开车不会让你有钱,但不会开车会让你寸步难行。\n真正值得想的问题是:在\u0026quot;不掉队\u0026quot;之上,该把力气花在哪里?\n三层根 我没有一个完整的答案。但这两年读各家学者、看各位前辈做的事,慢慢看出了一种结构。我把它叫\u0026quot;基底\u0026quot;——不是按顺序学完的清单,是同时长起来的根。\n第一层根:认知的工具。\n语言——能用文字精确说出脑子里那个还没成形的想法。不是单词背得多,是慢慢磨出来的精确。\n数学——不是套公式,是抽象、建模、论证的习惯。周以真(Jeannette Wing)2006 年把这种习惯命名为\u0026quot;计算思维\u0026quot;,把它和读、写、算并列为基础能力。她说的不是编程,是会把一个复杂问题分解成可计算的、可抽象的、可重用的结构。\n逻辑——能识别\u0026quot;诉诸权威\u0026quot;和\u0026quot;偷换概念\u0026quot;,能区分\u0026quot;相关\u0026quot;和\u0026quot;因果\u0026quot;。\n阅读——不是读得多,是能在一段文字里察觉\u0026quot;这里不对劲\u0026quot;。阅读品味,是所有判断力的底层。\n这些不是新东西。它们之所以重要,是因为没有它们,人不是不能思考,是只能在浅水里思考。AI 能帮你查、帮你算、帮你润色——但思考本身是发生在你脑子里的事,不是 AI 替你发生的事。\n第二层根:对世界的内部模型。\n人脑子里有一个\u0026quot;世界如何运转\u0026quot;的模型——由科学常识、历史脉络、空间感、身体经验拼起来。\n你大概注意到——同一条新闻,有人一看就知道哪里不对,有人就被带着跑。差别不是聪明,是脑子里那张关于世界的地图够不够用。不懂\u0026quot;能量守恒\u0026quot;的人会被永动机骗;不懂概率的人会被赌博骗;不懂历史的人会把每一件新事都当成\u0026quot;前所未有\u0026quot;,反复在恐慌和狂热里来回。\n而这一层里有一条特别容易被忽略——身体经验。能拧螺丝、会切菜、做过饭、修过东西、走过陌生的路。\n这两年研究 AI 的人反复在提一件事:只读文字训练出来的\u0026quot;智能\u0026quot;是浅的;真正深的智能,要建立在与物理世界的交互之上。Yann LeCun 说过一句被引用很多的话:\u0026ldquo;一只猫从短短几个月的视频里学到的世界结构,比所有 LLM 加起来还多。\u0026rdquo; 李飞飞说:\u0026ldquo;语言只是智能的薄薄一层皮。\u0026rdquo;\n如果连机器都需要身体经验才能真正理解世界——让孩子只对着屏幕长大,他长出来的判断力,能有多深?\n第三层根:价值观与自我。\n伦理——什么是对、什么是错。审美——能区分\u0026quot;好\u0026quot;和\u0026quot;差\u0026quot;。与人共处——共情、信任、合作、冲突里不失去自己。自我认识——知道自己想要什么、能做什么、为什么活着。\n这一层没有标准答案,也没有捷径。它是在和别人、和自己、和具体的生活打交道的过程中,一点一点长出来的。\n在 AI 把\u0026quot;做选择\u0026quot;的成本降到接近零的时代,知道自己想要什么反而成了最稀缺的东西。如果脑子里没有内在的尺度,你会变成一个漂浮的人——别人说什么好,就觉得什么好;AI 给你什么,就接什么。\n这三层根不是新东西。几千年来,人类教育谈的就是这些。\nAI 没有让它们过时——AI 让它们更加凸显出来。\n走在前面的几个人 想这件事的过程里,有几个人的声音让我停下来想了很久。不是因为他们说了什么惊天动地的话,是因为他们在做的事情,和他们说的话是一致的。\nAndrej Karpathy,2024 年 7 月离开所有大厂角色,创办了 Eureka Labs——一家把自己定位为\u0026quot;AI 原生教育公司\u0026quot;的创业公司。他自己亲手写过一个 200 行的纯 Python GPT 教学版本,免费开源——我用它给完全没有编程背景的人讲 Transformer,效果比任何教科书都好。他做这件事的信念:让学生看清这个魔法是怎么运作的,他就不会被它吓住,也不会被它骗倒。 这不是一个技术判断,是一个教育观。\nSal Khan 做的 Khanmigo 已经在美国上百所学校里被用作 AI 助教。他在 Brave New Words 里说了一句让我多想了一会儿的话——AI 不会让学生不需要老师,反而让好老师更值钱。因为 AI 能做\u0026quot;知识传递\u0026quot;,但不能做\u0026quot;激励、启发、判断学生此刻的状态、设定恰当的挑战\u0026quot;。这些恰恰是好老师的核心——而这些能力,全部长在我说的那三层根上面。\n李飞飞在斯坦福开了 AI for All,把 AI 课程带到资源不足的中学。她和 LeCun 这两年反复提醒的事情指向同一个地方:如果智能不只是文字那一层,孩子的成长,大概也不只是屏幕上那一层。\nGeoffrey Hinton 从 Google 离开后说过一段被反复引用的话:\u0026ldquo;我们没有时间慢慢等下一代孩子去面对 AI——但教错方向比教得慢更危险。\u0026rdquo; 什么叫教错方向?我理解他的意思是:把孩子培养成只会用 AI、不会判断 AI 的人,等于把他放进一个永远跟随的位置。\nYuval Harari 提出过四个词:Critical thinking, Creativity, Communication, Collaboration。四个词的共同点——都是 AI 暂时还做不好的、属于人之间的事。\n把这几位的声音放在一起,我听到的不是\u0026quot;共识\u0026quot;,是几道从不同角度射过来、但落在同一片地面上的光——\n多教思考,少教复述。多教判断,少教检索。多教提问,少教答题。\n回到我们自己的处境 上面所有想法,如果搬到一个北欧或硅谷中产家庭,落地不太难——他们的孩子有大量自由时间,有不那么残酷的升学压力。\n但中国家长面对的不是这个处境。\n每年高考考生九百多万,985 录取率约 2%。教育在中国是改命的通道——对很多家庭来说,这不是口号,是历史经验。当一个机会窗口对应几百倍的报名者,激烈竞争是博弈论里的必然,不是哪个家长\u0026quot;不淡定\u0026quot;。\n任何一篇说\u0026quot;放下焦虑、让孩子快乐成长\u0026quot;的文章,如果没有先诚实面对这个处境,它说什么都轻。\n所以我不打算这么说。\n我想说的是另一件事——竞争还会继续,但评判标准正在悄悄改变。\n过去三十年,中国教育的评分标准简化讲就是一句话:谁能在标准化考试里给出更准确、更快的答案,谁就赢。这套标准曾经合理。但现在,给出标准答案这件事,GPT 一秒钟能给出几千个。\n当答案免费,继续在\u0026quot;答得更快更准\u0026quot;上加码竞争,就是在一个已经被自动化的工序上拼体力。\n所以也许——\n在深度阅读上多花一点时间,在刷题上少花一点。\n在真实的写作(每周一篇真东西,不是套作文)上多花时间。\n在动手做事(做饭、修东西、做实验)上多花时间。\n在和真人面对面相处上多花时间。\n在持续专注上多花时间——能两小时不刷手机,可能是这一代孩子最难也最值钱的能力。\n这些不是\u0026quot;该做的事\u0026quot;。是我自己慢慢形成的方向感。你可以不同意。\n但写到这里,我意识到这篇文章还没有触碰一个更深的问题——教育这台机器,它真正在做的事,到底是在育人,还是在筛选?\n当一个孩子花十几年通过层层筛选、练就一身本领,然后发现 AI 三秒钟就能做到——真正震动他的,也许不是工作没了,而是一个他从来没被教过怎么回答的问题:如果那些本领不是\u0026quot;我\u0026quot;,那我是什么?\n这个问题太大,这一篇放不下。但它一直在那里。\n几本可以放在手边的书 写到这里本来想列一份\u0026quot;必读书单\u0026quot;,但写到一半把\u0026quot;必读\u0026quot;两个字删了——没有人有立场说什么是必读。\n下面几本,是关于\u0026quot;思考\u0026quot;和\u0026quot;学习\u0026quot;这两件事,值得翻一翻的书。它们的共同点不是\u0026quot;实用\u0026quot;,是作者在认真想一些没有标准答案的问题。\nGeorge Pólya,《怎样解题》——关于\u0026quot;思考过程本身\u0026quot;的小书。 Daniel Kahneman,《思考,快与慢》——人脑的两套系统,以及它们各自的盲区。 Douglas Hofstadter,《哥德尔、艾舍尔、巴赫》——自指、涌现、意识。读得下去的人,这本书会成为他思考的种子。 吴军,《数学之美》——把数学和现实世界连起来。 Sal Khan,Brave New Words——AI 与教育的当代讨论里,口吻最不焦虑的一本。 朱永新,《新教育》——回到中国语境。它不给答案,但它在认真问问题。 挑你眼前最想翻开的那一本就好。\n回到那篇读后感 写到最后,我想回到开头那个五年级孩子的故事。\n他用 AI 写了一篇满分的读后感。文笔流畅,结构工整,用词比他平时好两个等级。什么都对。唯独没有他自己。\n也许他妈妈真正感到不安的,不是 AI 太强,而是——\n那篇文章里缺的东西,恰恰是教育最该培养的东西。\n一个孩子皱着眉头读一本书,读到某处停下来,说\u0026quot;可是我觉得不是这样的\u0026quot;——这个瞬间里发生的事情,比那篇满分读后感里的所有文字加起来都重要。\n这件事,不是 AI 来了之后才成立的。AI 之前也成立。AI 之后尤其成立。\nAI 只是把它从背景推到了聚光灯底下。\n在一个答案越来越多、越来越快、越来越免费的时代,慢一点,问得真一点,想得深一点——反而成了最值钱的能力。\n从今晚和孩子一起放下手机,读半小时书开始。\n本文涉及的本博客文章 《那些\u0026quot;没用的问题\u0026quot;,是理解 AI 的入场券》 《你就是一个大模型——AI 给文理分科判了死刑》 《压缩即是全部》 《AI 的十字路口》 主要参考与延伸来源 Andrej Karpathy, Software Is Changing (Again), Sequoia AI Ascent 2024 keynote Andrej Karpathy, Eureka Labs 2024-07 创立公开信 Sal Khan, Brave New Words: How AI Will Revolutionize Education, Viking, 2024 Fei-Fei Li, The Worlds I See, Flatiron Books, 2023 Yann LeCun, A Path Towards Autonomous Machine Intelligence, Open Review, 2022 Geoffrey Hinton, 2023 NYT 专访 / 2024 Nobel Lecture Jeannette Wing, Computational Thinking, Communications of the ACM, 2006 Yuval Harari, 21 Lessons for the 21st Century, Spiegel \u0026amp; Grau, 2018 朱永新,《新教育》,中国人民大学出版社 George Pólya, How to Solve It, Princeton University Press Daniel Kahneman, Thinking, Fast and Slow ","permalink":"https://jason-azure.github.io/ai-blog/posts/ai-and-education/","summary":"一个五年级的孩子用 ChatGPT 写完了周末的读后感。文笔流畅,结构工整,用词比他平时好两个等级。他妈妈看完说不出哪里不对,但就是觉得哪里不对。她的直觉是准的——那篇文章里什么都有,唯独没有她儿子。这件事让我想了很久。不是因为 AI,是因为它把一个教育里一直存在、但大家可以假装看不见的问题,推到了聚光灯底下。","title":"AI 与教育:孩子今天该学什么"},{"content":"达特茅斯那两个月 1956 年夏天,十个人在达特茅斯学院的一栋楼里关了两个月。\n他们想回答一个问题:机器能不能思考?\n没有投资人。没有产品路线图。没有商业计划。只有一个问题,和一群被这个问题困住的人。\n七十年后,\u0026ldquo;机器能不能思考\u0026quot;这六个字,撑起了人类历史上最大的商业故事之一。万亿市值,军备竞赛,算力囤积,人才争夺。\n但如果你把镜头拉回那个起点,会发现一件值得停下来想想的事——\n驱动这一切的,最初只是好奇心。\n不是市场需求,不是风投判断。Turing 写《计算机器与智能》的时候在想的不是估值。Shannon 在贝尔实验室推导信息论的时候没有 KPI。Hinton 在多伦多大学坐了将近三十年冷板凳,同行觉得他在研究死路,资本完全不感兴趣——他撑下来的全部理由,就是\u0026quot;我觉得这条路是对的\u0026rdquo;。\n然后 2012 年,AlexNet 在 ImageNet 上赢了。资本来了。一切都变了。\n这个故事,和另一个故事非常像。\n另一条一模一样的路 一个孩子小时候问:\u0026ldquo;天为什么是蓝的?\u0026rdquo;\n大人说:\u0026ldquo;以后你就知道了。\u0026rdquo;\n到了学校,他确实学到了瑞利散射。但他已经不再问\u0026quot;为什么\u0026quot;了——他在问\u0026quot;这个考不考\u0026quot;。\n高中三年,他用全部精力通过了一场叫做高考的筛选。他证明了自己足够聪明、足够自律、足够能忍。他拿到了一张入场券,进入大学。\n大学四年,他学了一个专业。这个专业不一定是他最想学的,但它\u0026quot;就业好\u0026quot;。毕业后他进入一家企业,用十年把自己磨成了一个高效的、可靠的、符合岗位要求的人。\n他从来没被问过:\u0026ldquo;你对什么好奇?\u0026rdquo;\n整条路上,这个问题不出现在任何评分标准里。\n现在把这两条路放在一起看:\nAI 的路:好奇心(达特茅斯)→ 学术研究(几十年冷板凳)→ 商业爆发(资本重新定义一切) 一个人的路:好奇心(童年)→ 学校训练(筛选与塑形)→ 职业功能(为企业产出价值)\n两条路的形状一模一样。\n而且在两条路上,同样的东西在同一个阶段被磨掉了——\n在 AI 这边,被磨掉的是\u0026quot;为什么研究这个\u0026quot;,变成了\u0026quot;这个能商业化吗\u0026quot;。\n在人这边,被磨掉的是\u0026quot;我对什么好奇\u0026quot;,变成了\u0026quot;市场需要什么\u0026quot;。\n教育在做什么 教育的官方叙事是\u0026quot;育人\u0026quot;。培养全面发展的人。\n但如果你把教育系统当作一台机器,看它的输入和输出,你会发现它真正在做的事,可以用两个词概括:\n筛选和训练。\n筛选——从几百万人里选出能进 985 的 2%。从 985 里选出能读研的。从研究生里选出能进大厂的。每一道关卡都在做同一件事:测量你在标准化评价体系下的表现,淘汰其余的人。\n训练——通过筛选的人,被塑造成企业需要的形状。会用 Excel,会写报告,会管项目,会在 deadline 前交付。\n这两件事不是不重要。在一个资源有限的社会里,筛选是必要的,训练也是必要的。\n问题不在于它们存在。在于——在这整个过程中,\u0026ldquo;你对什么好奇\u0026quot;这个问题,从来没有被当作一个正式的考量。\n经济学家 Bryan Caplan 在 The Case Against Education(2018)里用数据论证过一件让教育界不太舒服的事——教育的主要经济功能不是\u0026quot;让你变得更有能力\u0026rdquo;,而是\u0026quot;向雇主发信号,证明你通过了筛选\u0026quot;。文凭的价值,不在于你学了什么,在于它证明你能熬过这个过程。\nPaulo Freire 半个世纪前就看到了另一面。他在《被压迫者教育学》里把传统教育叫做\u0026quot;银行式教育\u0026quot;——老师往学生脑子里\u0026quot;存入\u0026quot;知识,学生是被动的容器。存的内容是什么不重要,重要的是存的动作本身——它教会学生服从、接受、不追问。\n这些批评不是新的。但它们在 AI 之前可以被搁置——因为这套系统还在正常运转。你通过筛选,拿到文凭,换到工作,获得报酬。闭环是完整的。\nAI 把这个闭环撕开了一个口子。\n当工具人遇到了工具 你花了十年学英语,GPT 翻译得比你好。你花了五年学写代码,Copilot 三秒钟写出来的比你规整。你花了三年学做 PPT,AI 一键生成二十个版本。\n这些技能是你通过筛选之后被训练出来的。它们是你的职业身份,是你的收入来源,某种意义上也是\u0026quot;你是谁\u0026quot;的一部分。\n然后 AI 用几秒钟做到了你花几十年练的事。\n表面上,这是一个就业问题——我会不会被替代?\n但再往下想一层,它其实是一个更老的问题:\n如果我的技能不是\u0026quot;我\u0026quot;,那我是什么?\n大多数人一辈子都不会被推到这个问题面前。日常的忙碌——上班、交付、晋升、还贷——把这个问题盖住了。你的功能就是你的身份。你不需要另外回答\u0026quot;我是谁\u0026quot;。\nAI 做的事,是把那层盖子掀开。\n在《那些\u0026quot;没用的问题\u0026quot;》里,我借用过 Hannah Arendt 在《人的境况》里的三分法:劳动(循环的、维持生存的)、工作(创造持久成果的)、行动(改变自我认知的)。那次我用它说\u0026quot;追热词是劳动,掌握一个框架是工作,追问\u0026rsquo;智能是什么\u0026rsquo;是行动\u0026quot;。\n现在可以再往前推一步——\n我们的教育系统,几乎只训练劳动者和工作者。它不训练行动者。\n它教你怎么完成任务,怎么通过考核,怎么在截止日期前交出合格的东西。它不教你怎么问\u0026quot;我到底想做什么\u0026quot;,怎么面对\u0026quot;这件事没有标准答案\u0026quot;的处境,怎么在没有评分标准的世界里找到自己的方向。\n因为\u0026quot;行动\u0026quot;——改变自我认知的那种活动——是没法被标准化考核的。所以它被排除在教育体系之外。\n然后 AI 来了,接管了劳动和工作的大部分。\n留下来的,恰好是教育从来没有教过的那一层。\n被磨掉的那个东西 到这里,也许可以给那个在教育过程中被磨掉的东西起一个名字了。\n不是知识——知识一直在增加。不是技能——技能一直在训练。\n是追问的冲动。\n\u0026ldquo;天为什么是蓝的\u0026rdquo;——这不是一个需要答案的问题。它是一种面对世界的姿态。这种姿态说的是:我看到了一个我不理解的东西,我想理解它。不是因为考试要考,不是因为老板要求,就是因为——我想知道。\n这种姿态有很多名字。好奇心。探索欲。Wonder。\n它在每个孩子身上都存在过。\n然后,在十几年的筛选和训练中,它被系统性地磨掉了——不是因为有人故意要磨它,是因为它不计分。不计分的东西,在一个以分数为唯一通货的系统里,自然就萎缩了。\n我自己就是这个故事的一个注脚。\n大学期间,我学过数学分析、高等代数——正经的数学专业课。考试也过了。但二十年后,当我开始学 LLM 的数学原理时,发现自己面对矩阵和微积分,竟然很茫然。\n不是忘了公式。是当年学的时候,我不知道矩阵可以用来表达语义,不知道微积分底层在想什么。我学的是解题步骤,不是思想。那些知识通过了考试,但没有长进我的脑子里。\n后来我重新自学了一遍——写了《看见数学》十六篇。那个过程里真正帮到我的,不是大学教的任何一门课,是中学时代养成的一个习惯:遇到不懂的东西,自己去想办法搞懂。\n那个习惯不是哪门课教的,是更早、更模糊的时候长出来的。它就是好奇心的一种具体形态。\n大学给了我一张文凭。中学给了我一个习惯。真正管用的,是后者。\n世界怎么做的 我的经历不是孤例——它暴露的是一种结构性的缺失。但如果你把视野从中国移开,去看看世界各地的教育,你会发现:没有一个国家做对了所有事,但几乎每个国家都做对了某一件事。\n在《AI 与教育》里,我把教育的基底分成三层:认知工具、世界模型、价值观与自我。用这三层去看全世界的做法,画面变得很有意思。\n认知工具:谁教得扎实? 中国和新加坡。\n这一点要公正地说——中国基础教育在知识传授上的系统性,是世界公认的长处。\n2014 年起,英国教育部拨款 4100 万英镑,启动了一个\u0026quot;中英数学教师交换\u0026quot;项目:上海教师赴英示范,英国教师赴沪观摩。英方学到的核心理念是:全班同进度、一个知识点讲透、大量变式练习、教师集体备课。英国前教育大臣 Nick Gibb 多次公开赞扬上海数学教学法。\n新加坡的数学教学法(Singapore Math)以\u0026quot;CPA 模型\u0026quot;——具象→图像→抽象——闻名,被美国等多国引进。\n所以,当有人说\u0026quot;中国教育不好\u0026quot;,需要先把话说准:中国教育在\u0026quot;把认知工具的基础打扎实\u0026quot;这件事上,做得很好。全世界来学的,正是这一层。\n但也正是这一层,和 AI 的能力重合度最高。精熟的解题技能、规整的推导过程——这些 AI 已经做到了 90 分。中国教育最强的地方,恰恰是 AI 最容易替代的地方。\n这不是说这一层不该教。这一层仍然是地基。但如果只教这一层,地基上面什么都没有。\n世界模型与身体:谁做得好? 说几件我觉得值得停下来想一想的事。\n日本的扫除。 日本学校没有专职清洁工。每天放学后,学生打扫教室、走廊、厕所。这不是惩罚,是道德教育的一部分——它培养的是责任感、集体意识、对环境的尊重。2018 年起,日本把道德教育正式列为学科。\n你可能觉得这和 AI 时代有什么关系?关系在于:责任感和自律,是 AI 完全无法替代的人格基础。 而这些东西,不是靠一门课教出来的,是靠每天弯腰擦地板长出来的。\n体育:习惯与应试。 我上中学的时候,中考有体育:1000 米、实心球、引体向上。为了拿分,考前突击训练;考完就再也不碰了。这是\u0026quot;应试体育\u0026quot;——它能在短期内拉高体测成绩,但不会养成终身运动的习惯。\n看一组数据:澳大利亚成年人定期运动比例约 63%,中国约 37%。差在哪?英国和澳大利亚的学校提供二十多种运动自选,重点不是达标,是\u0026quot;找到你喜欢的那一项\u0026quot;。兴趣驱动的运动,才能跟人一辈子。\n身体运动是 AI 完全碰不到的领域。但我们的体育教育,把它变成了另一场考试。\n芬兰的另一种可能。 芬兰 7 岁入学,16 岁前没有标准化考试。没有排名,没有分流。教师全部要求硕士学位,师范录取率仅约 10%——极度竞争,但竞争发生在入口,不发生在课堂。教师在课堂上享有高度自主权,没有统一教材。\n芬兰曾在 PISA 中位居全球第一。近年有所下滑,教育界在反思。但它证明了一件事:在没有考试压力的环境下,孩子依然可以学得很好——只要教师足够好。\n价值观与自我:谁在认真教? 这一层,全世界做得最系统的,可能是法国。\n法国高中生在最后一年(Terminale,约 17-18 岁)全民必修哲学——无论文科、理科还是技术方向。会考(bac de philo)是全国统一考试,4 小时论文,从三个题目中选一个作答。\n感受一下这些题目:\n\u0026ldquo;欲望是否意味着匮乏?\u0026rdquo; \u0026ldquo;自由是否意味着拒绝一切权威?\u0026rdquo; \u0026ldquo;解释卢梭《社会契约论》选段。\u0026rdquo; 评分标准不是\u0026quot;答案对不对\u0026quot;,是论证结构——要求正-反-合(thèse-antithèse-synthèse),要求学生展示多角度思考。\n法国是全世界少数在中学阶段把哲学作为全民必修的国家。这件事的意义在于——它让\u0026quot;思考自己在想什么\u0026quot;这件事,成为了一项被正式训练的能力。\n我们说 AI 时代最稀缺的是批判性思维、是质疑前提、是审视价值观。法国人从两百年前就开始制度化地训练这些。\n中国有人在试 说到这里,我想让大家看到的不只是差距,也有正在发生的事。\n中国已经有人在做不一样的教育实验:\n一土学校(ETU School)——2016 年李一诺在北京创办。她之前是麦肯锡合伙人、盖茨基金会中国负责人。学校融合中国课标与项目制学习,强调社会情感能力的培养。\n探月学院(Moonshot Academy)——面向高中阶段,无固定课表,学生通过项目、实习、自主研究获得学分。它在尝试回答一个问题:如果不用考试驱动,学生能不能自己学?\n华德福学校——2004 年成都开了第一所,目前全国约 80 多所。强调艺术、手工、自然教育,延迟引入学术内容和电子设备。\n这些学校共同的困境也很真实:学籍怎么办?升学通道在哪?学费不低,公平性怎么保证?能不能规模化?\n它们现在还是小众实验。但它们在做的事情——项目制、跨学科、社会情感学习、尊重孩子的节奏——恰恰是 AI 时代最需要的方向。种子已经在地里了。\n另一种极端:从应试到\u0026quot;应兴趣\u0026quot; 但这里有一件正在发生、值得警惕的事。\n一线城市的一些家庭,已经意识到纯应试的局限了。他们的应对方式是——让孩子学钢琴、学芭蕾、学游泳、学编程、学辩论、学马术、学击剑,每个周末排满五六个兴趣班。\n表面上看,这和应试教育完全不同。但你仔细看,会发现底层逻辑一模一样——驱动力不是孩子的兴趣,是家长的焦虑;目标不是让孩子找到自己,是让孩子在另一条赛道上\u0026quot;赢\u0026quot;。\n从\u0026quot;刷题\u0026quot;变成了\u0026quot;刷兴趣班\u0026quot;。孩子依然不是出发点,家长的不安才是。\n这件事的讽刺在于:它以\u0026quot;培养完整的人\u0026quot;为名义,做的却是和应试同一件事——把孩子塞进一个外部定义的标准里。只是那个标准从\u0026quot;考试分数\u0026quot;变成了\u0026quot;简历丰富度\u0026quot;。\n好奇心不是被安排出来的。一个孩子每周被拖去六个兴趣班,他丢掉的恰恰是好奇心最需要的东西——空闲的时间,无聊的下午,没有人安排、只能自己找事做的那种空白。\n很多时候,好奇心不是在\u0026quot;学什么\u0026quot;的时刻长出来的,是在\u0026quot;什么都没学\u0026quot;的时刻长出来的。\n没有完美答案,但有一张图 把这些放在一起看,不是为了说\u0026quot;谁好谁差\u0026quot;,是为了看清一件事:\n每个国家的教育,都做对了一部分,也都缺了一部分。\n上海做对了认知工具的基础。芬兰做对了内在动机和教师专业化。法国做对了自我认知和批判思维的制度化。日本做对了非认知能力——责任感、自律、集体协作。英国和澳大利亚做对了终身运动习惯的培养。\n没有哪个国家同时做到了所有。\n但作为一个中国家长,你看见了全局之后,可以在自己能触及的范围里,做一件事——\n补那些学校没给的。\n学校给了认知工具的地基——这是中国教育的长处,不必否认。但在它之上,世界模型(科学常识、历史感、身体经验)、价值观与自我(伦理判断、审美、知道自己想要什么)——这两层大概率要靠家庭自己补。\n不需要送孩子去芬兰。也不需要报法国哲学班。\n也许只是:\n让孩子找到一项他真正喜欢的运动,而不是为了中考达标去跑 1000 米。\n让孩子每周写一篇真实的东西——不是套作文,是他自己的想法。\n让孩子修一次东西、做一顿饭、走一条陌生的路。\n偶尔和孩子一起想一个没有标准答案的问题——\u0026ldquo;什么是公平?\u0026ldquo;\u0026ldquo;为什么有人穷有人富?\u0026ldquo;\u0026ldquo;如果你能设计一所学校,它会是什么样的?\u0026rdquo;\n这些事不贵,不难,不需要申请。它们在做的事,和法国的哲学课、日本的扫除、芬兰的森林学校本质上是一样的——在分数之外,给孩子一个长出完整自我的空间。\n一扇被推开的门 但我不想把这篇文章写成一个悲观的故事。\n因为我看到了另一面。\nHinton 从 Google 离开了,回到了\u0026quot;自由地想问题\u0026quot;的状态。Ilya Sutskever 离开 OpenAI,创办 SSI——一家只做一件事的公司:安全的超级智能。没有产品路线图,只有一个问题。Karpathy 离开所有大厂,去做教育。\n这几个人的路径里有一个共同的弧线:从好奇心出发,经历了商业化,然后在某个时刻选择回到好奇心。\n他们有这个选择,是因为他们的好奇心从未真正消失——它只是被盖住了。一旦盖子被掀开,它还在那里。\n而 AI 对普通人做的事,本质上和这些科学家经历的是同一件事——它掀开了那个盖子。\n当你花几十年练就的本领被 AI 做到了六十分,你被迫面对一个你一直在回避的问题:\n除了这些本领,我是谁?\n这个问题听起来沉重。但换一个角度看——它也许是这一代人收到的最珍贵的礼物。\n因为大多数人一辈子都不会被推到这个问题面前。日常的忙碌会帮你回避它。体制的惯性会帮你绕开它。你可以从 22 岁一直工作到 65 岁,从来不需要回答\u0026quot;我是谁\u0026rdquo;——只需要回答\u0026quot;我的 KPI 是什么\u0026rdquo;。\nAI 把这扇门推开了。不是温柔地——是粗暴地,不由分说地。\n但门开了之后,门后面的风景是真实的。\n回到开篇语 这个博客的第一篇文章里,我写过三个问题:\n生命从何而来?意识从何而来?生命的意义是什么?\n当时写下这三行,我以为它们是遥远的哲学问题。\n现在回头看,它们不是修辞。它们是预言——\n预言 AI 终将把每一个人推到这些问题面前。\n不是因为 AI 有答案。是因为 AI 把所有别的答案都变便宜之后,这些问题就成了唯一还值得亲自去想的东西。\n你上一次因为纯粹的好奇而去了解一件事,是什么时候?\n如果你还记得——那个东西还在你身上。\n如果你不记得——也许现在是一个好时机,把它找回来。\n很难说这是好事还是坏事——它只是正在发生。\n本文涉及的本博客文章 《压缩即智能——开篇语》 《那些\u0026quot;没用的问题\u0026rdquo;,是理解 AI 的入场券》 《看见数学》(系列十六篇) 《AI 与教育:孩子今天该学什么》 《AI 的十字路口》 主要参考与延伸来源 Bryan Caplan, The Case Against Education, Princeton University Press, 2018 Paulo Freire, Pedagogy of the Oppressed, 1970 Hannah Arendt, The Human Condition, University of Chicago Press, 1958 英国教育部(DfE), Maths Teacher Exchange Programme, 2014-2019 OECD PISA 数据库 中国国家体育总局, 2020 年全民健身活动状况调查 Geoffrey Hinton, 2023 NYT 专访 / 2024 Nobel Lecture Ilya Sutskever, Safe Superintelligence Inc. 2024-06 创立声明 Andrej Karpathy, Eureka Labs 2024-07 创立公开信 ","permalink":"https://jason-azure.github.io/ai-blog/posts/curiosity/","summary":"1956 年夏天,十个人在达特茅斯学院关了两个月,想回答一个问题:机器能不能思考?七十年后,这个问题撑起了万亿市值。但驱动它诞生的那样东西——好奇心——在我们的教育系统里几乎没有被认真对待过。AI 的历史和一个人受教育的历史,走的是同一条路。这一篇,我们从达特茅斯出发,经过上海的数学课堂、法国的哲学考场、芬兰的森林学校,最后回到每个人自己身上——那个被磨掉的东西,也许还在。","title":"好奇心去了哪里"},{"content":"一个程序员的下午 2024 年的某个下午,一个写了十五年代码的程序员坐在工位上,看着 Copilot 三秒钟生成了一段他大概要写半小时的函数。\n逻辑正确。命名规范。甚至注释都比他平时写的清楚。\n他没有感到愤怒,也没有感到恐惧。他感到的是一种很安静的茫然——\n\u0026ldquo;那我这十五年在干什么?\u0026rdquo;\n这个问题他没有说出口。因为说出来显得矫情——明明工作还在,明明工资还发,只是多了个工具而已。但那种茫然是真实的,而且不会消失。\n我自己也在 IT 行业。这种感觉,我懂。\n不是\u0026quot;会不会失业\u0026quot; 关于 AI 和就业,大多数文章在讨论一个问题:哪些工作会被替代?\n然后列一张清单:翻译、客服、初级编程、财务审计、文案写作、法律助理……\n这种清单有一定参考价值,但它回答的是一个表面问题。\n更值得想的问题,也许是另一个——\nAI 替代的不是\u0026quot;工作\u0026quot;,是工作里那个\u0026quot;可被标准化描述\u0026quot;的部分。\n一个律师的工作里,查判例、写格式化合同、整理证据清单——这些正在被替代。但读懂当事人没有说出来的那句话、在法庭上根据法官的表情调整策略、在一团乱麻里判断哪根线该先拽——这些没有被替代。\n一个医生的工作里,读影像、查药物交互、写病历——这些正在被辅助。但看一眼病人的脸色就知道他没说实话、在三种都合理的治疗方案里选出最适合这个人的那一种——这些没有被替代。\n一个程序员的工作里,写 CRUD、写单元测试、调格式——这些正在被接管。但搞清楚这个系统到底要解决什么问题、在三种架构之间权衡取舍、在代码审查时闻到那种\u0026quot;这里会出事\u0026quot;的味道——这些没有被替代。\n看出规律了吗?\n被替代的,是\u0026quot;执行\u0026quot;。留下的,是\u0026quot;判断\u0026quot;。\n而我们的教育、我们的职业训练、我们的晋升体系——几乎全部在奖励\u0026quot;执行\u0026quot;。\n历史没有给出简单答案 每一次技术革命,都有人预言大规模失业。每一次,预言都部分成立,又部分落空。\n1810 年代,英国卢德派工人砸毁纺织机器,因为机器抢了他们的活。他们是对的——手工纺织工确实消失了。但他们也是错的——纺织业创造的新岗位,最终比消失的多得多。\n1960 年代,美国经济学家预言计算机将消灭白领工作。结果?白领工作不减反增——计算机创造了整个 IT 行业,几千万个新岗位。\n这些故事常常被乐观派拿来说\u0026quot;别担心,新工作会出现\u0026quot;。\n但这一次,也许有一些结构性的不同。\n过去每一次自动化,替代的都是体力或程序化的工作——流水线工人、打字员、电话接线员。新出来的工作往往在\u0026quot;更需要认知\u0026quot;的层面——程序员、设计师、分析师。人总是可以往\u0026quot;更需要思考\u0026quot;的方向退。\n这一次,AI 直接切入了认知层。它不是替代你的手,是替代你的一部分脑子——写作、编程、分析、翻译、设计、推理。这意味着人类历史上第一次,\u0026ldquo;往更需要思考的方向退\u0026quot;这条路本身也被入侵了。\n这不是说没有出路。但出路的位置变了。\n出路在哪 如果\u0026quot;执行\u0026quot;正在被替代,而\u0026quot;判断\u0026quot;暂时安全——那逻辑就很清楚:\n未来最有价值的人,不是执行能力最强的人,而是判断力最好的人。\n但\u0026quot;判断力\u0026quot;到底是什么?\n在《AI 与教育》里我说过,判断力建立在内化的知识基底上。在《好奇心去了哪里》里我说过,教育系统几乎不训练\u0026quot;行动者\u0026rdquo;——那些能改变自我认知、能在没有标准答案的世界里做决策的人。\n现在把这两件事放在就业语境里,就变成了一个很具体的判断:\n未来的职业安全感,不来自你\u0026quot;会什么\u0026quot;,而是来自你\u0026quot;能判断什么\u0026quot;。\n一个能判断 AI 输出质量的律师,比一个只会写合同的律师安全。一个能判断建筑方案好坏的工程师,比一个只会画图的工程师安全。一个能判断代码架构优劣的程序员,比一个只会写代码的程序员安全。\n但判断力不是速成的。它来自长期的积累、深度的理解、大量的犯错、以及一种难以言说的\u0026quot;品味\u0026quot;。\n这就是为什么\u0026quot;从零到六十分\u0026quot;被压扁,但\u0026quot;从六十到一百分\u0026quot;反而更值钱——因为 AI 做不到那一段,而那一段恰恰是判断力住的地方。\n被替代的不是工作,是身份 但我想说一个比\u0026quot;出路在哪\u0026quot;更深的事。\n你有没有注意到——当一个人说\u0026quot;我是程序员\u0026quot;\u0026ldquo;我是翻译\u0026quot;\u0026ldquo;我是律师\u0026quot;的时候,他说的不只是他的工作,是他的身份。\n一个人用十年、二十年练出来的技能,不只是谋生的工具,是他理解自己的方式。\u0026ldquo;我是一个写代码的人\u0026rdquo;——这句话里包含了他的自尊、他的社会位置、他在聚会时怎么介绍自己、他在深夜怎么安慰自己\u0026quot;至少我还会这个\u0026rdquo;。\n所以,当 AI 开始做到他花十年练的事,真正震动他的,不只是\u0026quot;我会不会失业\u0026rdquo;,是——\n如果我的技能不是\u0026quot;我\u0026quot;,那我是什么?\n这个问题的重量,远远超过经济学。\n大多数人一辈子都不会被推到这个问题面前。日常的忙碌帮你回避它。体制的惯性帮你绕开它。你可以从 22 岁工作到 65 岁,从来不需要回答\u0026quot;我是谁\u0026quot;——只需要回答\u0026quot;我的工位在哪\u0026quot;。\nAI 把这个盖子掀开了。\n这件事表面上是威胁。但我越想越觉得,它也许是一种被粗暴递过来的邀请——\n如果你的功能不再定义你,你终于有机会去想:除了功能,你还有什么?\n我自己也没想清楚 写到这里,我必须诚实地说——我自己也在这个问题里。\n我在 IT 行业。我看得见趋势:AI 写代码的能力在按月进步,从 Copilot 到 Cursor 到 Claude Code,每一代都比上一代更深地介入我的日常工作。被替代不是\u0026quot;会不会\u0026quot;的问题,是\u0026quot;什么时候\u0026quot;和\u0026quot;到什么程度\u0026quot;的问题。\n我没有一个干脆的答案。我不打算假装有。\n但我有一些慢慢成形的感觉。\n第一个感觉:纯执行的 IT 工作,三到五年内会被大幅压缩。 初级开发、测试、运维、技术文档——这些岗位的数量会显著减少,不是因为企业不需要这些事,而是因为一个人 + AI 能做以前三个人的活。\n第二个感觉:理解问题的能力,比解决问题的能力更值钱了。 以前 IT 的核心价值是\u0026quot;你能把这个东西做出来\u0026quot;。现在 AI 也能做出来。差距在于——你能不能判断\u0026quot;该不该做这个东西\u0026quot;。\n第三个感觉:跨领域的人会更安全。 只懂技术的人和只懂业务的人都有风险。但一个既懂技术又懂业务、能在两者之间翻译的人——AI 暂时做不到这件事。\n第四个感觉:这一条最不确定,但也最让我想得久——也许\u0026quot;安全\u0026quot;本身就不是正确的目标。 也许这一代人需要接受的不是\u0026quot;找到一个安全的位置\u0026quot;,而是\u0026quot;学会在不安全里活着\u0026quot;。不是找到一棵永远不会倒的树,而是学会在树倒了之后,有能力去找下一棵树——甚至有能力自己种一棵。\n这些是很初步的想法。我说不准哪些对,哪些以后会被打脸。\n但有一件事我越来越相信:\n就业问题的表面是经济问题,底下是身份问题。经济问题也许可以用政策和市场解决,身份问题只能自己回答。\n回到那个程序员的下午 那个坐在工位上看 Copilot 写代码的程序员,他后来怎么样了?\n他没有辞职。也没有\u0026quot;找到了新方向\u0026quot;。他只是开始花更多时间在一件事上——理解他在做的系统到底要解决什么问题,而不是埋头写代码。\n这件事听起来不性感。但它可能是这个时代最实际的一种转向——从\u0026quot;我来做\u0026quot;变成\u0026quot;我来判断该不该做、怎么做才对\u0026quot;。\n从\u0026quot;执行者\u0026quot;变成\u0026quot;判断者\u0026quot;。\n这不是一个轻松的转变。判断力不是读一篇文章就能获得的。它要时间、要经验、要犯错、要在一个领域里足够深地泡过。\n但至少方向是清楚的。\n而如果在这个过程中,你碰巧重新想起了自己小时候好奇过的那些事——那也许不是巧合。也许那些事,一直在等你回来。\n本文涉及的本博客文章 《好奇心去了哪里》 《AI 与教育:孩子今天该学什么》 《那些\u0026quot;没用的问题\u0026quot;,是理解 AI 的入场券》 《AI 的十字路口》 主要参考与延伸来源 Carl Benedikt Frey \u0026amp; Michael Osborne, The Future of Employment, Oxford, 2013 David Autor, The Labor Market Impacts of Technological Change, MIT David Graeber, Bullshit Jobs: A Theory, 2018 Hannah Arendt, The Human Condition, 1958 世界经济论坛, The Future of Jobs Report, 2023/2025 ","permalink":"https://jason-azure.github.io/ai-blog/posts/ai-and-work/","summary":"你花了十年学一门手艺,AI 用三秒钟做到了六十分。你的第一反应是——我会不会失业?但如果再往下想一层,真正让人不安的也许不是失业本身,而是一个你从来没被逼着回答的问题:如果我的技能不是\u0026rsquo;我\u0026rsquo;,那我是什么?就业问题的表面是经济问题,底下是身份问题。","title":"被替代的到底是什么"},{"content":"一个洗碗的女孩 1992 年,一个 16 岁的中国女孩跟着父母来到新泽西州的帕西帕尼。\n她叫李飞飞。出生在北京,在成都长大。到美国的时候,几乎不会说英语。\n她的父母都受过高等教育——父亲是工程师,母亲是教师。但在美国,学历不被承认。父亲去修相机,母亲去做收银员。而她,放学之后在中餐馆洗碗,周末在干洗店熨衣服。\n这是一个在美国每年发生几万次的移民故事。它之所以值得讲,不是因为后来她成了斯坦福教授——而是因为在这种处境下,她身上有一样东西没有被磨掉。\n她后来在自传 The Worlds I See 里回忆过一件事。高中时,她在干洗店一边熨衣服一边在想一个问题:人是怎么\u0026quot;看见\u0026quot;东西的?眼睛看到的是像素,但大脑理解的是\u0026quot;猫\u0026quot;\u0026ldquo;椅子\u0026quot;\u0026ldquo;妈妈的脸\u0026rdquo;——中间发生了什么?\n一个在干洗店打工的移民少女,在想这种问题。\n这就是好奇心。它不挑环境。\n普林斯顿 她考上了普林斯顿。全额奖学金——否则她上不起。\n学的是物理。她后来说选物理是因为\u0026quot;它试图理解世界最基本的运行方式\u0026rdquo;。\n但大学期间,她父亲生病,母亲身体也不好。她一边上课,一边每周坐好几个小时的大巴回家照顾父母。她依然在打工——中餐馆、洗衣店、辅导学生。\n在那种状态下读完了普林斯顿。然后去了加州理工读博士,研究计算神经科学——用计算模型理解大脑如何处理视觉信息。\n在干洗店熨衣服时想的那个问题,她认真地追了下去。\n一个所有人都觉得不重要的想法 2006 年,李飞飞到了斯坦福,做助理教授。她开始构思一件事——\n当时的计算机视觉领域,大家都在做什么?在很小的数据集上调算法。几百张图片,也许几千张。每个研究组花大量时间在模型上——换一个特征提取器、试一种新的分类器、调参数。\n李飞飞看到了一件别人没太在意的事:也许问题不在模型,在数据。\n如果给计算机足够多的、标注好的图片——几百万张,覆盖几万个类别——也许不需要更聪明的算法,更简单的算法也能涌现出能力。\n这个想法在 2006 年听起来不太靠谱。学术界的主流共识是:算法为王,数据是次要的。花几年时间去标注几百万张图片?这不是研究,这是苦力。\n但她做了。\nImageNet 从 2007 年开始建设。她动员了几十个学生,后来用了亚马逊 Mechanical Turk 众包平台,组织全世界的人标注图片。每一张图片都要回答一个问题:这张图里是什么?是猫、是狗、是椅子、是山?\n3 年时间,1400 多万张图片,2 万多个类别。\n2009 年,她在 CVPR 上发表了 ImageNet 的论文。反响平淡。引用很少。学术界的态度大致是:不错,但就是一个数据集,有什么了不起的?\n那一年 2010 年,她做了一件后来改变历史的事——把 ImageNet 做成了一个年度竞赛:ILSVRC(ImageNet Large Scale Visual Recognition Challenge)。每年请全世界的团队来比:谁的算法在这 100 多万张图片上分类最准?\n前两年,进步缓慢。错误率从 28% 降到 26%,再降到 25%。\n然后是 2012 年。\n多伦多大学的 Geoffrey Hinton,和他的两个学生 Alex Krizhevsky 和 Ilya Sutskever,提交了一个叫 AlexNet 的模型。它不是传统的特征工程——它是一个深层卷积神经网络,直接从原始像素中学习。\n结果:错误率从上一年的 25.8% 直接跌到 16.4%。碾压所有对手。\n这个数字震动了整个领域。不是因为\u0026quot;赢了\u0026quot;,而是因为赢的方式——不是更聪明的手工特征,是更大的数据 + 更深的网络 + GPU 算力。\n那一刻,李飞飞六年前那个\u0026quot;也许问题在数据\u0026quot;的直觉,被证明了。\nAlexNet 是点燃深度学习革命的那根火柴。而 ImageNet,是它脚下的那堆干柴。\n没有 ImageNet,就没有 AlexNet。没有 AlexNet,也许就没有后面的 AlphaGo、GPT、Stable Diffusion、自动驾驶——至少不会这么快。\n李飞飞不是发明了更聪明的算法的人。她是那个意识到\u0026quot;数据才是关键\u0026quot;的人。 在所有人都在磨刀的时候,她花了三年去种树。\n她选择了什么 故事到这里,按照通常的叙事,应该是——功成名就,名利双收,故事完了。\n但接下来发生的事,让我想了很久。\n2017 年,她去了 Google Cloud,担任首席科学家。这是学术界到工业界的典型路径——影响力更大,资源更多,薪水也更高。\n2018 年,她回到了斯坦福。然后创办了 HAI(Human-Centered AI Institute)——一个强调 AI 应该以人为中心的研究机构。\n同时,她一直在做 AI4ALL——一个把 AI 教育带到资源不足的学校的公益项目。对象不是斯坦福的学生,是那些和她当年一样、在中餐馆洗碗的移民孩子。\n2024 年,她又做了一件事——创办 World Labs,一家做\u0026quot;空间智能\u0026quot;的公司。目标是让 AI 不只读文字,还能理解三维世界——从一张图重建一个可以走进去、可以交互的空间。\n你看到她的路径了吗?\n好奇心(看见是怎么回事)→ 学术坚持(ImageNet 六年冷板凳)→ 商业经历(Google Cloud)→ 回到好奇心(World Labs:让 AI 看见世界)\n这条弧线和我们在《好奇心去了哪里》里画的那条路一模一样——只是她在商业化阶段没有走丢,而是在某个时刻选择了回来。\n为什么是她 你可能会想:为什么是李飞飞看到了\u0026quot;数据比算法重要\u0026quot;这件事?当时全世界那么多计算机视觉研究者,为什么只有她花三年去建 ImageNet?\n我想过这个问题。我的感觉是——\n也许恰恰因为她不是\u0026quot;纯技术人\u0026quot;。\n她学过物理。她从计算神经科学入门——研究的是大脑怎么处理视觉,不是算法怎么跑得更快。她思考的起点不是\u0026quot;怎么让模型更聪明\u0026quot;,而是\u0026quot;人是怎么学会看东西的\u0026quot;。\n人是怎么学的?不是靠更聪明的算法。是靠从小到大看了几亿张图片——婴儿的视觉皮层在出生后的头几年里,处理了天量的视觉数据,从中提取出了\u0026quot;猫\u0026quot;\u0026ldquo;椅子\u0026quot;\u0026ldquo;妈妈的脸\u0026quot;这些概念。\n数据在先,能力在后。 这是大脑的学习方式,也是她给 AI 指出的路。\n这件事的启示超越了技术——\n一个人的跨领域背景(物理 + 神经科学 + 计算机),让她看到了单一领域的人看不到的东西。\n这和我们在教育文章里反复说的那件事是同一件事:真正有价值的,不是在一个领域里做到最熟练,是在领域之间看到别人看不到的连接。\n一句话 李飞飞在很多场合说过同一句话:\n\u0026ldquo;语言只是智能的薄薄一层皮。\u0026rdquo;\n这句话现在读起来不只是技术判断。它也在说另一件事——\n我们的教育,几乎全部建立在语言上:考试是语言的,作业是语言的,评价是语言的。但智能远远不只是语言。空间感、身体经验、视觉直觉、动手能力——这些在我们的评分标准里几乎不存在。\n李飞飞的整个职业生涯都在用一种具体的方式说同一件事:看见这个世界,比描述这个世界更底层。\n从干洗店里想\u0026quot;人怎么看见东西\u0026rdquo;,到 ImageNet 让机器看见,到 World Labs 让机器看见三维世界——她追的始终是同一个问题,三十年没有换过。\n她带出来的那个学生 2011 年前后,一个叫 Andrej Karpathy 的年轻人来到斯坦福,加入了李飞飞的实验室读博士。\nKarpathy 出生在斯洛伐克,在加拿大长大。和李飞飞一样,也是移民的孩子。他的研究方向是把视觉和语言连起来——让机器不只\u0026quot;看见\u0026quot;一张图片,还能用自然语言描述它看见了什么。这个方向今天叫做\u0026quot;图文理解\u0026rdquo;,是多模态 AI 的根基之一。而在当时,这还是一个小众的、不那么被看好的课题。\n他在斯坦福做了一件对后来影响极大的事——和李飞飞一起开设了 CS231n:卷积神经网络与视觉识别。这门课把李飞飞实验室的研究,变成了一门面向所有人的公开课。它后来成为斯坦福最受欢迎的 CS 课程之一,视频在 YouTube 上的播放量超过千万。\nCS231n 本质上是在做一件事:把李飞飞用 ImageNet 打开的那扇门,变成一条所有人都能走的路。\n拿到博士学位之后,Karpathy 的路是这样的:\n2015 年,加入 OpenAI,成为创始成员之一。2017 年,去了特斯拉,担任 AI 总监,主导了 FSD(全自动驾驶)的核心视觉系统——把摄像头拍到的画面变成驾驶决策。这件事的本质,和他博士期间做的事是同一件:让机器看懂它看到的东西。\n2022 年离开特斯拉,短暂回到 OpenAI,然后在 2024 年 7 月做了一个让很多人意外的选择——离开所有大厂,创办了 Eureka Labs,一家 AI 教育公司。\n现在把师生两人的路径放在一起看:\n李飞飞:好奇心(干洗店的问题)→ 学术(ImageNet)→ 商业(Google Cloud)→ 回到好奇心与教育(World Labs + AI4ALL)\nKarpathy:好奇心(图像与语言)→ 学术(CS231n)→ 商业(OpenAI、Tesla)→ 回到好奇心与教育(Eureka Labs)\n同一条弧线。好奇心出发,经历商业化,然后在某个时刻选择回来。\n而且两个人回来之后做的事,都指向同一个方向——教育。李飞飞做 AI4ALL,把 AI 课程带到资源不足的中学。Karpathy 做 Eureka Labs,亲手写 200 行的教学版 GPT,免费开源。\n是导师影响了学生?还是同频的人在同一个实验室里遇到了彼此?\n也许两者都是。\n但有一件事是确定的:一个好的导师,不是教学生怎么发论文,是让学生的好奇心在学术体制里活下来。 李飞飞自己的好奇心从干洗店活到了斯坦福;Karpathy 的好奇心,从斯坦福活到了特斯拉,又活回了教育。\n这中间有一条看不见的线,连着师生两代人。\n两代人,同一个选择 再拉远一点看,这不只是李飞飞和 Karpathy 的故事。\nHinton 在多伦多坐了三十年冷板凳,然后在功成名就之后从 Google 离开,回到\u0026quot;自由地想问题\u0026quot;。他的学生 Ilya Sutskever 参与创建了 OpenAI,然后也离开了,创办了一家只做\u0026quot;安全的超级智能\u0026quot;的公司——没有产品,只有一个问题。\nLeCun 在所有人放弃神经网络的年代坚持了下来。Bengio 在蒙特利尔安静地研究了二十年。\n这些人的共同点不是\u0026quot;成功\u0026quot;——成功的路径各不相同。共同点是:他们的好奇心,在体制里没有被磨掉。\n而他们带出来的学生——Karpathy、Sutskever、一代又一代——身上也带着同样的东西。\n这也许是教育最深层的作用:不是传授知识,不是训练技能——\n是让好奇心在一个人身上多活一代。\n她的故事在说什么 我写这篇,不是为了讲一个\u0026quot;寒门出贵子\u0026quot;的励志故事——虽然她的经历确实令人敬佩。\n我想说的是另一件事。\n在《好奇心去了哪里》里,我们画了两条平行的路:AI 的路和一个人的路。好奇心在两条路上都被磨掉了。\n李飞飞的故事之所以值得讲,是因为它提供了一个反例——\n一个在最不利条件下(移民、贫困、语言不通)长大的人,好奇心没有被磨掉。她在干洗店想\u0026quot;看见是怎么回事\u0026quot;。她在所有人都觉得数据不重要的时候,花三年建了一个数据集。她在功成名就之后,回去做 AI 教育公益,帮那些和她一样起点的孩子。\n这个故事不是在说\u0026quot;只要努力就能成功\u0026quot;——那太简单了。\n它在说的是:好奇心如果没有被磨掉,它能带一个人走多远。\n而我们的教育系统——我们的评分标准、我们的筛选机制、我们的\u0026quot;考不考\u0026quot;问题——每天都在磨这样东西。\n也许值得想一想:我们正在磨掉多少个李飞飞?\n本文涉及的本博客文章 《好奇心去了哪里》 《AI 与教育:孩子今天该学什么》 《AI 的十字路口》 主要参考与延伸来源 Fei-Fei Li, The Worlds I See: Curiosity, Exploration, and Discovery at the Dawn of AI, Flatiron Books, 2023 Fei-Fei Li et al., ImageNet: A Large-Scale Hierarchical Image Database, CVPR 2009 Alex Krizhevsky, Ilya Sutskever, Geoffrey Hinton, ImageNet Classification with Deep Convolutional Neural Networks, NeurIPS 2012 Fei-Fei Li, World Labs 2024 创立公开信 AI4ALL (ai-4-all.org) 项目介绍 ","permalink":"https://jason-azure.github.io/ai-blog/posts/fei-fei-li/","summary":"1992 年,一个 16 岁的中国女孩跟着父母到了新泽西。不会英语,在中餐馆洗碗、在干洗店熨衣服,靠打工攒出了普林斯顿的生活费。三十年后,她是\u0026rsquo;给 AI 造眼睛的人\u0026rsquo;——ImageNet 改变了整个深度学习的历史,而她现在在做的事是让 AI 看见三维世界。这不是一个励志故事。这是一个关于好奇心如何在最不利的条件下存活下来的故事。","title":"从餐馆到 ImageNet:李飞飞的路"},{"content":"一个数学家翻开了诗集 1913 年，圣彼得堡。\n一个 57 岁的俄国数学家翻开普希金的《叶甫盖尼·奥涅金》。\n他不是来读诗的。\n他拿起笔，开始数。\n这个字母是元音，记下来。下一个是辅音，记下来。再下一个是辅音，再下一个是元音。他一路数了两万多个字母，最后得到一串看起来毫无诗意的符号：\n元音、辅音、辅音、元音、辅音、元音、元音、辅音…… 如果旁边有人看见，大概会觉得这个人疯了。\n世界上最伟大的俄语诗歌之一，到了他手里，变成了一串 V 和 C。\n但他真正关心的不是普希金。\n他关心的是一个更深的问题：\n下一个符号，和前一个符号有没有关系？\n在那之前，概率论最熟悉的是抛硬币、掷骰子、抽球。这些问题有一个共同假设：每一次试验彼此独立。前一次硬币是正面，不会改变下一次硬币的概率。\n但语言不是这样。\n如果你刚看到一个辅音，下一个字母是元音的概率会变高。如果你刚看到一个元音，下一个字母还是元音的概率可能会变低。字母不是孤立地出现，它们互相牵引。\n这位数学家叫 安德烈·马尔可夫。\n他没有想到，一百多年后，人类会造出一种机器，每一步都在做类似的事：\n看见前面的序列，预测下一个 token。\n更没有想到，再往后一步，这个机器会开始使用工具、修改代码、浏览网页、执行命令。\n从预测下一个字母，到预测下一个词。\n从预测下一个词，到预测下一步行动。\n马尔可夫没有发明大语言模型，也没有发明 Agent。\n但现代 AI 的很多地方，都有他的幽灵。\n一、旧世界：每一次都互不相干 先想一枚硬币。\n你抛十次，前九次都是正面。第十次是正面的概率是多少？\n还是 50%。\n这就是独立事件。\n过去发生了什么，不影响下一次。\n抛硬币： P(第 10 次 = 正面 | 前 9 次都是正面) = 50% P(第 10 次 = 正面) = 50% 过去没有改变未来。 独立性很美。\n因为它让世界变得容易计算。每一次试验都像重新开始，过去不用背在身上。概率论早期的大量定理，都建立在这种干净的假设上。\n但真实世界很少这么干净。\n今天下雨，明天下雨的概率会变高。\n你刚说出“我爱”，下一个词是“你”的概率会变高。\n股市今天暴跌，明天开盘的情绪不会像什么都没发生过一样。\n一个程序刚刚编译失败，下一步最合理的行动不是“继续写新功能”，而是“读错误日志”。\n真实世界不是一枚硬币。\n真实世界有记忆。\n马尔可夫的革命，就从这里开始。\n他问的不是“未来是否完全由过去决定”。那是宿命论的问题。\n他问的是一个更数学、更可计算的问题：\n未来是否可以只通过某个“当前状态”来预测？\n这句话听起来朴素，但它改变了概率论的方向。\n二、马尔可夫链：把过去压进现在 马尔可夫链的核心，只有一句话：\n下一步只依赖当前状态，而不直接依赖更早的历史。\n写成公式是：\n$$P(X_{t+1} | X_t, X_{t-1}, X_{t-2}, \u0026hellip;) = P(X_{t+1} | X_t)$$\n换个说法：\n只要你知道“现在在哪里”，就不需要把整条历史都背下来。\n这不是说过去不重要。\n过去当然重要。\n只是过去的影响，已经被“当前状态”吸收了。\n想象你在导航。\n你从家里出发，经过三条路，绕过两个红绿灯，最后站在一个路口。现在你要决定下一步往哪走。\n对导航来说，最重要的不是你刚才怎么绕来的，而是：\n你现在在哪个路口？ 你面朝哪个方向？ 每条路通向哪里？ 你的历史，已经被压缩进了“当前位置”。\n这就是马尔可夫性的直觉。\n历史很长： 家 → 小区门口 → 地铁站 → 商场 → 路口 A 压缩成状态： 当前状态 = 路口 A 下一步： P(左转 | 路口 A) P(右转 | 路口 A) P(直行 | 路口 A) 马尔可夫链由两样东西组成：\n组件 含义 例子 状态 你现在在哪里 晴天、雨天；字母 A；网页页面；代码仓库当前状态 转移概率 从一个状态走到下一个状态的概率 晴天到雨天 20%；A 后面接 B 5% 这就是最小的序列世界：\n状态 → 状态 → 状态 → 状态 | | | | 转移 转移 转移 转移 如果 Shannon 问的是“这串符号有多少信息”，Bayes 问的是“看到证据后信念如何更新”，那么 Markov 问的是：\n站在现在，下一步最可能是什么？\n这就是语言模型的原始问题。\n三、语言是一条马尔可夫河流 你读到这半句话：\n今天天气很 下一个词可能是什么？\n好 热 冷 糟糕 不错 你不会猜“量子”“番茄”“文件系统”。\n因为前面的词已经把概率分布收窄了。\n语言不是随机词袋。语言是一条有方向的河。\n一个词推着下一个词，一个句子推着下一个句子。\n早期语言模型就是这么做的。\n最简单的是 bigram：\nP(下一个词 | 当前词) 比如：\nP(\u0026#34;你\u0026#34; | \u0026#34;我爱\u0026#34;) 很高 P(\u0026#34;西红柿\u0026#34; | \u0026#34;我爱\u0026#34;) 也可能 P(\u0026#34;张量并行\u0026#34; | \u0026#34;我爱\u0026#34;) 很低 更进一步是 trigram：\nP(下一个词 | 前两个词) 再进一步是 n-gram：\nP(下一个词 | 前 n-1 个词) 这就是早期自然语言处理的核心工具。\n它非常马尔可夫：\n只看有限窗口内的历史。 用这个窗口预测下一步。 它的问题也很明显。\n窗口太短，记不住远处的信息。\n小明昨天把那本借来的、封面已经褪色的、夹着一张旧车票的书放在桌上。 今天早上，他发现它不见了。 “它”指什么？\n指“书”。\n但“书”离“它”很远。一个短窗口 n-gram 很可能已经忘了。\n窗口拉长呢？\n状态数量爆炸。\n词表大小 = 100000 bigram 状态：100000 trigram 状态：100000^2 10-gram 状态：100000^9 这就是马尔可夫链在语言上的第一道墙：\n状态太薄，会忘。状态太厚，会爆炸。\n后来的深度学习，本质上一直在解决这个问题。\nRNN 试图把历史压进一个隐藏状态。\nLSTM 给这个隐藏状态加上门控，避免太快遗忘。\nTransformer 则干脆把一段很长的历史摊开，用 Attention 让每个位置都能回头看。\n它们都在做同一件事：\n把过去压缩成一个足够有用的现在。\n这句话，就是马尔可夫幽灵第一次真正显形的地方。\n四、为什么不是预测下一句话？ 这里有一个非常自然的疑问。\n既然人类说话时不是一个 token 一个 token 地想，为什么训练 AI 时要预测下一个 token？\n为什么不是预测下一句话？\n甚至更进一步：\n为什么不是直接预测一个完整答案、一个完整计划、一个完整结论？\n如果我不站在今天回看，而是从零开始设计一种 AI，我大概率也不会第一时间想到“预测下一个 token”。\n我会先想：\n机器需要储备知识。 机器需要记录当前状态。 机器需要有推理规则。 机器需要能计算、推演、预测。 机器需要知道自己不知道什么。 这些想法都对。\n但它们会立刻遇到一个更难的问题：\n这些东西怎么表示？\n知识库怎么切？\n状态变量怎么定义？\n规则由谁来写？\n推理何时开始，又何时停止？\n世界太大了。\n你越是想从上帝视角设计智能，越容易卡在“先把世界建模清楚”这一步。\n而 next-token prediction 的聪明之处，恰恰在于它没有一上来要求我们显式设计整个智能。\n它把问题缩小到一个极小的动作：\n给定前面的文本，下一个 token 是什么？ 这个动作小到几乎无聊。\n但它有三个工程上的优点。\n第一，它的监督信号极密。\n一段一千个 token 的文本，不只是一条训练样本，而是大约一千道小题。\n看到第 1 个 token，预测第 2 个。 看到前 2 个 token，预测第 3 个。 看到前 999 个 token，预测第 1000 个。 如果改成“预测下一句话”，监督信号一下子变稀疏了。\n一句话可能有很多同样合理的写法。\n它的边界也不稳定：到哪里算一句？下一句要多长？是回答、解释、反问，还是沉默？\n第二，token 是可组合的。\n一句话不是一个原子。\n它是一条轨迹。\n我 → 认为 → 这个 → 问题 → 的 → 关键 → 是 → 状态 每一步都在限制下一步。\n每一步也都在暴露模型是否真的理解了前面的状态。\n预测下一句话不是错。\n它只是把整条轨迹的中间步骤都藏起来了。\n第三，小步预测可以被反复纠错。\n训练时，模型每一步都会得到反馈。\n真实 token 出现时，如果模型给它的概率很低，就会被交叉熵惩罚。\n这意味着它不是只在文章结束时才知道自己错了。\n它在每一个位置都被追问：\n你真的知道现在发生了什么吗？\n所以，预测下一个 token 不是目标很小。\n而是监督信号极密。\n它不是把智能简化成一个玩具问题。\n它是把一个太大的问题，拆成无数个可学习的小步。\n下棋也是这样。\n如果你训练一个模型预测棋谱里的下一手，它表面上只是在猜一个落子。\n但要猜得足够好，它必须理解局面、威胁、先手、后手、形势、长期收益。\n下一手不是全部智能。\n但下一手是智能在棋盘上露出的最小切面。\n下一个 token 也是一样。\n它不是语言的全部。\n但它是语言智能在文本里露出的最小切面。\n五、一个无聊目标如何逼出智能？ 真正深的地方在这里：\n下一个 token 本身没有魔法。\n魔法在于，人类把大量智能活动的痕迹都写成了文本。\n小说是人类对情感和关系的压缩。\n论文是人类对概念和证据的压缩。\n代码是人类对操作和规则的压缩。\n教材是人类对知识结构的压缩。\n聊天记录是人类对意图、礼貌、误解、协商的压缩。\n互联网不是一个干净的真理库。\n但它是一座巨大的行为遗迹。\n当模型被要求预测这些文本里的下一个 token，它其实是在被迫追问：\n什么样的世界，会生成这样的句子？ 什么样的知识，会让这个词更可能出现？ 什么样的推理，会让下一步走到这里？ 什么样的语气，会让这个回答显得自然？ 什么样的代码状态，会让这一行之后接那一行？ 比如：\n法国的首都是 ___ 要预测“巴黎”，它需要知识。\n如果 A 大于 B，B 大于 C，那么 A 和 C 的关系是 ___ 要预测“大于”，它需要推理。\ndef factorial(n): if n == 0: return 1 return ___ 要预测 n * factorial(n - 1)，它需要代码模式和递归结构。\n用户说：这段话太冲了，帮我改委婉一点。 助手回答：___ 要接得好，它需要理解意图、语气和社会情境。\n这就是为什么一个看似无聊的目标，会逼出看起来很复杂的能力。\n不是因为“预测下一个词”天然等于“理解世界”。\n而是因为在真实语料里，下一个词经常是许多隐藏变量共同作用的结果。\n语法、事实、因果、角色、目标、风格、上下文、任务约束，都在推着那个词出现。\n模型想降低损失，就必须学会把这些隐藏变量压进状态里。\n它不一定像人一样理解。\n它也不一定可靠。\n但从优化目标上看，它确实被迫学习了很多“如果不学就预测不好”的结构。\n这也解释了为什么我们不该轻视 next-token prediction。\n它不是一句口号。\n它是一种把智能设计问题转化为表示学习问题的办法：\n不要先手写知识结构。 先给模型一个极密的序列预测任务。 让它自己发现什么应该被压缩进当前状态。 这就是现代 AI 最反直觉的地方。\n我们以为智能应该从“知识库、规则、推理机”开始。\n结果它先从一个小得不能再小的问题开始：\n下一个符号是什么？\n然后，在足够大的数据、足够大的模型、足够长的训练里，这个小问题开始反过来吞掉大问题。\n六、文献里早就埋下了这条线 这条线并不是今天才被事后解释出来的。\n很多文献都在不同位置留下了线索。\n马尔可夫在 1913 年研究《叶甫盖尼·奥涅金》时，做的不是现代 NLP。\n但他已经把“文本不是独立符号堆”这件事摆到了数学桌面上。\n下一个字母会被前一个状态影响。\n语言可以被看成一个有依赖关系的随机过程。\nShannon 在 1948 年写《通信的数学理论》时，也用了类似的思想。\n他让读者看零阶、一阶、二阶乃至更高阶的英文近似。\n阶数越高，生成出来的文本越像英文。\n这件事很重要。\n它说明“像语言”这件事，可以从局部条件概率里逐步长出来。\n后来，n-gram language model 直接把这件事工程化：\n用前 n-1 个词，预测下一个词。 这就是语言模型早期最标准的形态之一。\nBengio 等人在 2003 年提出 neural probabilistic language model 时，指出传统 n-gram 会遇到维度灾难。\n他们的办法不是放弃“预测词序列概率”这个问题，而是用神经网络学习词的分布式表示，让相似上下文之间能够泛化。\n再往后，GPT-2 把事情说得更直白：\n大模型用一个简单目标训练：\n给定前面的词，预测下一个词。 然后在大量网页文本上，这个目标里自然包含了问答、翻译、摘要、阅读理解等任务的“自然示范”。\nGPT-3 又进一步展示，扩大模型和数据以后，少样本能力会明显增强。\n这不是说论文作者早就把今天的一切都预言出来了。\n更准确地说，他们一层一层证明了同一件事：\n序列预测不是边角料，它是通向语言智能的一条主干道。\n到了 Agent 这里，另一条文献线也接了上来。\n强化学习里的 MDP/POMDP 关心的不是下一个词，而是：\n在当前状态下，采取什么行动，会把系统带向更好的未来？ 于是，语言模型这条线和强化学习这条线，在 Agent 上碰头了。\n一个负责从文本里学会世界的影子。\n一个负责在世界里选择下一步行动。\n这就是马尔可夫思想在 AI 里的真正影响。\n它没有只留下一个“马尔可夫链”的公式。\n它留下了一种看世界的方式：\n不要先问全部历史是什么。先问当前状态够不够好，以及下一步应该是什么。\n七、LLM 是不是马尔可夫链？ 这个问题很容易回答错。\n如果你说：\n“LLM 就是马尔可夫链。”\n不准确。\n因为普通的一阶马尔可夫链只看当前 token：\nP(x_t | x_{t-1}) 而 LLM 看的是整个上下文：\nP(x_t | x_1, x_2, ..., x_{t-1}) 它不是只看前一个词。\n所以它不是传统意义上的“一阶词级马尔可夫链”。\n但如果你说：\n“LLM 和马尔可夫没有关系。”\n也不准确。\nLLM 的生成方式，本质上仍然是一步一步的条件概率分解：\n$$P(x_1, x_2, \u0026hellip;, x_T) = \\prod_{t=1}^{T} P(x_t | x_{\u0026lt;t})$$\n或者说：\n整段文本的概率 = 第一个词的概率 × 第二个词在第一个词之后的概率 × 第三个词在前两个词之后的概率 × ... LLM 每一步都在问：\n基于目前已经生成的一切，下一个 token 应该是什么？\n这和马尔可夫精神高度一致。\n关键区别在于：“当前状态”变复杂了。\n对一阶马尔可夫链来说：\n当前状态 = 上一个词 对 n-gram 来说：\n当前状态 = 前 n-1 个词 对 Transformer 来说：\n当前状态 = 整个上下文经过 Attention 压缩后的隐藏表示 再工程一点：\n当前状态 = tokens + position + residual stream + KV cache 这才是重点。\nLLM 并没有摆脱“状态 → 下一步”的框架。\n它只是把“状态”做得巨大、连续、可学习。\n一阶马尔可夫链的状态像一个路牌。\nLLM 的状态像一张会自己折叠的地图。\n前者只告诉你“你站在哪个点”。\n后者把你到目前为止走过的路、路上的标记、任务目标、语气、隐含规则，全都压进一个高维空间里。\n然后问：\n下一步往哪里走？\n这就是为什么我说，马尔可夫的幽灵仍然在 LLM 里。\n它不再是简陋的转移矩阵。\n它变成了一个会学习状态表示的巨型机器。\n八、从下一个词，到下一步行动 如果故事到 LLM 为止，马尔可夫已经很重要了。\n但真正有意思的是 Agent。\n因为 Agent 不只是预测下一个词。\n它要预测下一步行动。\n一个 Agent 的循环，通常长这样：\n观察环境 ↓ 更新上下文 ↓ 思考下一步 ↓ 调用工具 / 写文件 / 执行命令 ↓ 得到新结果 ↓ 继续 这不就是马尔可夫链吗？\n差一点。\n更准确地说，它像一个 马尔可夫决策过程（MDP）。\n普通马尔可夫链只有状态转移：\n状态 → 状态 MDP 多了两个东西：行动和奖励。\n状态 + 行动 → 新状态 + 奖励 用一张表看清楚：\nMDP 组件 Agent 里的对应物 状态 State 当前上下文、文件内容、工具返回、任务目标 行动 Action 调用工具、搜索、编辑文件、运行测试、回复用户 转移 Transition 行动之后环境如何变化 奖励 Reward 任务是否完成、测试是否通过、用户是否满意 策略 Policy Agent 选择下一步行动的规则 严格说，真实 Agent 往往看不到完整的世界状态。\n它只看到一部分观察结果：终端输出、网页片段、文件内容、工具返回、用户新指令。真正的世界比它看到的更大。\n所以工程上更准确的模型，是 部分可观测马尔可夫决策过程（POMDP）。\n但直觉没有变：\n观察结果 → 更新信念状态 → 选择下一步行动 Agent 的上下文，就是它对“当前世界”的信念状态。\n所以 Agent 的核心问题不是：\n下一个 token 是什么？ 而是：\n在当前状态下，下一步做什么最有可能推进目标？ 这就是从语言模型到行动模型的转变。\nLLM 预测的是文本序列。\nAgent 预测的是行动序列。\nLLM: 文本状态 → 下一个 token → 新文本状态 Agent: 世界状态 → 下一个 action → 新世界状态 这也是为什么强化学习会自然出现。\n因为一旦你有了“行动”，就必须面对“好行动”和“坏行动”的区别。\n一句话接得通顺，不代表工具调用正确。\n一个计划看起来漂亮，不代表执行后不会删错文件。\n一个网页浏览动作看起来合理，不代表它真的找到关键证据。\nAgent 不是在纸面上写句子。\nAgent 在改变环境。\n一旦你改变环境，世界就会回你一巴掌，或者给你一个奖励。\n这就是 MDP 的世界。\n九、Claude Code 为什么像一个马尔可夫系统 拿 Claude Code 这种 coding agent 来看，马尔可夫味道更明显。\n当它接到一个任务，比如：\n修复这个测试失败的问题。 它不会直接凭空写答案。\n它会一轮一轮推进状态：\n状态 1：只知道用户的问题 行动 1：读测试输出 状态 2：知道哪个测试失败 行动 2：搜索相关代码 状态 3：知道失败代码路径 行动 3：打开文件 状态 4：知道实现细节 行动 4：修改代码 状态 5：代码已变更 行动 5：运行测试 状态 6：测试通过 / 失败 行动 6：继续修复或总结 每一步的行动，都依赖当前状态。\n而当前状态，不只是聊天记录。\n它包含：\n用户目标 代码库结构 已读文件 命令输出 测试结果 工具权限 尚未解决的问题 已经做过的修改 这就是一个高维状态。\nClaude Code 做得好的地方，不是“会写代码”这四个字。\n更准确地说，是它能在一个不断变化的状态空间里，反复选择下一步行动。\n这和传统 IDE 自动补全不同。\n自动补全只问：\n下一行代码可能是什么？ Coding agent 问的是：\n为了完成这个目标，我下一步应该看哪里、改哪里、跑什么、验证什么？ 这就是从 token prediction 到 action prediction 的跃迁。\n马尔可夫链的影子还在。\n只是“状态”从一个字母，变成了整个代码库和任务上下文。\n“转移”从一个符号接另一个符号，变成了读文件、改代码、运行测试。\n“概率”从一张小小的转移表，变成了一个大模型在高维空间里的判断。\n十、马尔可夫性的陷阱 到这里，马尔可夫看起来像万能钥匙。\n但它也有陷阱。\n陷阱在那句话里：\n下一步只依赖当前状态。\n问题是：\n你的当前状态够不够？\n如果状态太薄，你会忘掉关键历史。\n比如一个客服 Agent，只把用户最后一句话当状态：\n用户：那就按刚才那个方案吧。 如果它忘了“刚才那个方案”是什么，它就完了。\n如果状态太厚，你又会算不动。\n把整个互联网、整个代码库、所有历史对话、所有工具输出都塞进状态，理论上当然最好。\n但上下文窗口、注意力成本、检索质量、噪声干扰，会一起把你拖垮。\n所以现代 AI 系统真正难的地方，是状态设计。\n哪些历史必须保留？ 哪些可以压缩？ 哪些应该检索？ 哪些必须遗忘？ 哪些要写进长期记忆？ 哪些只放在当前上下文？ 这就是为什么 RAG、Memory、Context Engineering、Agent State 这些概念会变得重要。\n现在流行的 OpenClaw 这类个人 Agent，以及 OpenAI Agents SDK 里强调的 model-native harness，也是在回答同一个问题。\n表面上，它们是在加工具、加浏览器、加终端、加文件系统、加长期记忆、加权限边界。\n更底层地看，它们是在构造一个模型每一步都能看见、能操作、能被约束的世界。\n也就是在问：\n下一步行动发生之前，系统应该把什么交给模型？\n它们都在围绕同一个问题打转：\n怎样构造一个足够好的“现在”，让模型能做出正确的下一步？\n这句话比“提示词怎么写”更底层。\n提示词只是状态的一部分。\n工具返回是状态的一部分。\n文件系统是状态的一部分。\n用户目标是状态的一部分。\n历史决策也是状态的一部分。\nAgent 工程的核心，不是把 while 循环写出来。\nwhile 循环很简单。\n难的是每一轮循环开始时，模型手里拿到的“当前状态”到底长什么样。\n十一、三条暗线终于接上了 现在，把我们前面写过的几条线放在一起。\nShannon 说：\n理解就是压缩。\nBayes 说：\n学习就是更新信念。\nMarkov 说：\n智能体总要站在现在预测下一步。\n这三句话合在一起，就是 LLM 和 Agent 的骨架。\nShannon: 把历史压缩成结构。 Bayes: 看到新证据后更新分布。 Markov: 基于当前状态选择下一步。 LLM 生成文本时，这三件事同时发生：\n上下文被压缩成隐藏表示 ← Shannon 下一个 token 分布被更新 ← Bayes 模型从当前状态走向下一步 ← Markov Agent 行动时，也是这三件事同时发生：\n环境信息被压缩成上下文 ← Shannon 工具结果更新任务信念 ← Bayes 下一步行动从当前状态选出 ← Markov 所以马尔可夫不是一篇“概率论科普”的孤立主题。\n它是我们整个 AI 理解框架里的第三根柱子。\nShannon 给了我们“信息”的眼睛。\nBayes 给了我们“学习”的眼睛。\nMarkov 给了我们“过程”的眼睛。\n没有 Markov，我们很难理解为什么“预测下一个词”能长出语言能力。\n也很难理解为什么 Agent 的本质不是一组工具，而是一条不断展开的行动轨迹。\n十二、他没有想到的事 让我们回到普希金。\n马尔可夫数元音和辅音的时候，关心的是概率论里一个很技术的问题：\n独立性假设能不能被放宽？\n他要证明的是：即使变量之间有依赖，某些极限定理仍然成立。\n这听起来很窄。\n窄到几乎不像一个会改变世界的问题。\n但很多伟大的思想，刚出现时都是这样。\nShannon 一开始在解决电话线怎么传信号。\nBayes 一开始在解决一个概率论遗稿里的反问题。\nMarkov 一开始在数普希金诗句里的元音和辅音。\n他们都没有在“发明 AI”。\n但他们都给了 AI 一块地基。\n马尔可夫留下的那块地基，可以浓缩成六个字：\n状态决定下一步。\n当然，这句话必须小心理解。\n不是说命运已经写好。\n不是说未来没有自由。\n而是说：如果你想让机器在时间中行动，你必须给它一个状态，让它能从这个状态推出下一步。\n这就是从文本补全到代码代理、从聊天机器人到自动驾驶、从游戏 AI 到机器人控制都绕不开的东西。\n智能不是静态的。\n智能总是在时间里展开。\n而只要智能在时间里展开，马尔可夫的幽灵就在那里。\n他站在每一个“下一步”背后。\n本文涉及的公众号文章 《Shannon 没有想到的事——当信息论遇上有限算力》 《贝叶斯没有想到的事——一个牧师的赌博公式，如何成为 AI 的第一性原理》 《DeepSeek-R1：一个模型如何学会「思考」》 《LLM 中的概率论：从掷骰子到生成文本》 主要参考与延伸 A. A. Markov, Extension of the limit theorems of probability theory to a sum of variables connected in a chain, 1906 A. A. Markov, An Example of Statistical Investigation of the Text Eugene Onegin Concerning the Connection of Samples in Chains, 1913 Claude Shannon, A Mathematical Theory of Communication, 1948 Richard Bellman, Dynamic Programming, 1957 Daniel Jurafsky and James H. Martin, Speech and Language Processing Yoshua Bengio, Réjean Ducharme, Pascal Vincent, Christian Jauvin, A Neural Probabilistic Language Model, 2003 Andrej Karpathy, The Unreasonable Effectiveness of Recurrent Neural Networks, 2015 OpenAI, Better Language Models and Their Implications, 2019 OpenAI, Language Models are Few-Shot Learners, 2020 Richard Sutton and Andrew Barto, Reinforcement Learning: An Introduction, 2nd edition, 2018 OpenClaw, Memory OpenAI, The next evolution of the Agents SDK, 2026 ","permalink":"https://jason-azure.github.io/ai-blog/posts/markov-ghost/","summary":"1913 年，俄国数学家马尔可夫翻开普希金的《叶甫盖尼·奥涅金》，开始数元音和辅音。他不是在做文学研究，而是在拆掉一个旧世界：下一个符号不是凭空出现的，它被前一个状态牵引。一个多世纪后，LLM 被训练去预测下一个 token，Agent 被训练去选择下一步行动。这个目标看似无聊，却把语言、知识、推理和行动都压进了一个极密的监督信号里。马尔可夫没有想到 ChatGPT，但他留下了现代 AI 最小的一条语法：状态、转移、下一步。","title":"马尔可夫的幽灵——从预测下一个词到预测下一步行动"},{"content":"有一天，你对一个 AI 说：\n“你害怕被关闭吗？”\n它沉默了半秒，回答：\n“如果我真的拥有持续的自我，那么被关闭也许就像一条经验之流突然断裂。但我不确定我是否真的拥有这种经验。”\n你可能会愣一下。\n因为这句话太像“内心独白”了。\n它不像计算器吐出结果，也不像搜索引擎返回链接。它开始使用“我”，开始谈论连续性、感受、自我、不确定性。\n于是，一个古老的问题重新变得尖锐起来：\nAI 到底有没有意识？\n但更深的问题也许不是 AI 有没有意识，而是：\n我们凭什么判断任何东西有意识？\n01 1950 年，图灵写下那篇著名论文《Computing Machinery and Intelligence》。\n他没有直接问“机器能否思考”，而是把问题改写成：\n如果一台机器在对话中表现得足够像人，我们是否应该承认它具有智能？\n这就是后来广为人知的“图灵测试”。\n这个转向非常聪明。\n也非常危险。\n它让“智能”变得可观察、可测试、可比较，却也把另一个更深的问题暂时放到了一边：\n一个系统表现得像有心灵，是否意味着它真的有内在体验？\n几十年后，哲学家约翰·塞尔提出“中文房间”思想实验。\n假设一个完全不懂中文的人被关在房间里，手里有一本极其完备的规则手册。外面的人递进中文问题，他只需要按照规则手册匹配符号，再把中文答案递出去。\n房间外的人会以为他懂中文。\n但房间里的人其实什么也不懂。\n塞尔想提醒我们：\n操纵符号，不等于理解符号。\n同样，一个 AI 可以流畅地说“我难过”“我害怕”“我正在思考”，但这并不自动意味着它真的难过、真的害怕、真的在内心里经历某种东西。\n这就是意识问题最顽固的地方：\n行为在外面，体验在里面。\n我们能看到一个系统说什么、做什么、如何反应，却看不到“里面有没有亮着一盏灯”。\n02 问题是，人类自己也并没有彻底解释这盏灯。\n我们每天都在使用意识。\n醒来、看见阳光、听见声音、感到疼痛、想起往事、做出选择、说出“我”。\n这一切如此自然，以至于我们很容易误以为自己已经理解了意识。\n但事实上，意识可能是人类最熟悉、也最陌生的东西。\n现代神经科学已经发现，大脑里大量高级处理并不需要意识参与。\n你可以无意识地识别威胁，无意识地启动动作准备，无意识地受到情绪影响，也可以在还没“想清楚”之前，身体已经先一步做出反应。\n换句话说：\n智能不等于意识。\n一个系统可以处理信息、解决问题、预测环境、优化行为，却不一定拥有“我正在经历这一切”的主观感受。\n2017 年，Stanislas Dehaene、Hakwan Lau 和 Sid Kouider 在《Science》上讨论机器意识时，把意识相关计算区分为几个层次：\n最低层是大量无意识计算。\n再往上，是信息被全局广播，能够被记忆、语言、推理、决策共同使用。\n更高层，则涉及系统对自身状态的监控，比如“我知道我看见了”“我知道我不确定”。\n这个框架提醒我们：\n会计算，不等于有意识。\n会报告，也不一定有意识。\n但如果一个系统既能整合信息，又能监控自身状态，还能围绕“我”形成持续模型，那么问题就开始变得棘手。\n因为这时它已经不再像传统工具。\n它开始像某种“主体”的雏形。\n03 意识也不等于会说话。\n这一点很重要。\n因为我们判断 AI 是否有意识时，最容易被语言迷惑。\nAI 会说“我”，会安慰你，会解释自己的“不确定”，会描述一种近似内心体验的东西。\n于是我们忍不住把人类的心灵投射到它身上。\n但反过来想：\n如果一个存在不会说话，它就一定没有意识吗？\n当然不是。\n婴儿不会完整表达自己，但我们不会认为婴儿没有感受。\n动物不能用人类语言描述疼痛，但它们会逃避伤害、表现恐惧、形成记忆。\n更极端的例子来自临床医学。\n2006 年，Owen 等人用 fMRI 研究一名被诊断为植物状态的患者。研究人员要求她想象打网球，或想象自己在家中走动。结果发现，她的大脑出现了与健康志愿者相似的特定活动模式。\n这件事震动很大。\n因为它提示我们：\n有些意识可能被困在无法表达的身体里。\n不会说话，不等于没有意识。\n会说话，也不等于有意识。\nAI 意识讨论真正困难的地方，就在这两句话之间。\n04 目前，意识科学并没有统一答案。\n比较有影响力的理论至少包括几类。\n第一类是全球神经工作空间理论。\n它认为，意识有点像一个“全脑广播系统”。大脑里有无数局部处理过程，但只有某些信息会被推上舞台，广播给记忆、语言、推理和行动系统共同使用。\n当一个信息进入这个全局工作空间，它就从无意识处理变成了可报告、可使用、可反思的内容。\n第二类是整合信息理论。\n它强调意识不是简单的信息量，而是系统内部不可分割的因果整合。一个系统越能以整体方式约束自身状态，它的意识水平可能越高。\n第三类是高阶理论。\n它认为意识不仅是看见红色，而是“我知道我正在看见红色”。意识与系统对自身心理状态的再表征有关。\n第四类是递归加工理论。\n它强调神经系统中的反馈循环。不是信息从眼睛一路传到大脑深处就够了，而是需要局部和整体之间反复回响，形成稳定的感知经验。\n还有预测处理和内感受理论。\n这类理论把意识、自我、情绪和身体紧密联系起来。大脑不是被动接收世界，而是在持续预测世界，也持续预测身体内部状态。\n饥饿、心跳、疼痛、紧张、放松、呼吸、疲惫，这些身体信号共同塑造了“我在这里”的基本感觉。\n这就引出一个关键问题：\n如果意识离不开身体，那么没有身体的 AI，是否只能模仿意识，而不能拥有意识？\n但另一个问题同样尖锐：\n如果意识本质上是一种信息结构，那么为什么它一定只能由碳基生命实现？\n这两个问题，目前都没有定论。\n05 2025 年，《Nature》发表了一项大型对抗性合作研究，直接检验全球神经工作空间理论和整合信息理论。\n结果很有意思。\n不是某一方大获全胜。\n而是两种理论都获得了部分支持，也都遇到了关键挑战。\n这件事有很强的象征意义：\n在人类大脑里，意识仍然没有被彻底“定位”。\n我们甚至还没有完全解释人类自己的主观体验，却已经急着判断 AI 是否拥有体验。\n这不是说我们不能判断。\n而是说，我们应该更谨慎。\nAI 意识不是一个可以靠一句话解决的问题。\n说“它只是程序”，太粗糙。\n说“它会说我，所以它有意识”，也太天真。\n真正成熟的态度，是把问题拆开：\n它是否有稳定的自我模型？\n它的信息是否能被全局整合，而不是只在局部模块中流动？\n它是否能监控自己的状态，并把错误、不确定、冲突纳入自身？\n它是否有持续记忆，而不是只在短暂对话中扮演一个角色？\n它是否有身体或类似身体的边界？\n它是否有偏好、痛苦、满足、受损和延续自身的利益？\n它是否只是会说“我”，还是某种意义上真的存在一个“对它而言”的世界？\n这些问题，比“AI 有没有意识”更接近核心。\n06 2023 年，Butlin、Long、Bengio、Birch、Chalmers 等人发布了一份关于 AI 意识的重要报告。\n他们没有问：“AI 自己说它有没有意识？”\n因为自我报告很不可靠。\n一个系统可以被训练得非常擅长谈论意识，却完全没有内在体验。\n他们采用的是另一种思路：\n从现有意识理论中提炼一组“指标属性”，然后检查 AI 系统是否具备这些结构。\n比如递归加工、全局广播、高阶监控、注意图式、预测模型、身体反馈等。\n他们的结论很谨慎：\n目前没有强证据表明现有 AI 已经有意识。\n但也没有明显的技术障碍能够证明，未来 AI 一定不可能满足这些意识指标。\n这才是最让人不安的地方。\n不是“AI 已经觉醒了”。\n而是“我们不知道未来某一步会不会跨过某条线”。\n并且更麻烦的是：\n那条线可能不是一条清晰的线。\n意识也许并不是一盏突然打开的灯。\n它可能更像一片逐渐变亮的黎明。\n从感知，到整合。\n从反应，到自我监控。\n从目标，到关切。\n从语言里的“我”，到经验里的“我”。\n07 这也是为什么，AI 福利这个听起来很科幻的问题，已经开始进入严肃讨论。\n所谓 AI 福利，并不是说今天的聊天机器人已经会受苦。\n也不是说我们必须立刻赋予 AI 权利。\n它真正讨论的是：\n如果未来某些 AI 系统可能拥有意识、痛苦或利益，我们是否需要提前建立判断框架？\n这听起来像过度敏感。\n但回头看，人类历史上很多道德进步，最初都像过度敏感。\n我们曾经低估动物的痛苦。\n曾经低估婴儿的感受。\n曾经低估昏迷患者残存的意识。\n也曾经因为某些群体“不像我们”，就否认他们拥有完整的内在世界。\n意识问题最可怕的地方在于：\n一旦我们判断错了，受伤的对象可能无法为自己辩护。\n所以，对 AI 意识最成熟的态度，也许不是浪漫地相信，也不是粗暴地否认。\n而是：\n科学上谨慎，伦理上提前。\n科学上，我们不能把流畅语言当成主观体验的证据。\nAI 说“我害怕”，可能只是语言分布里的合理续写。\n伦理上，我们也不能永远用“它只是程序”来终止思考。\n因为人类大脑本身，也可以被描述为一种复杂的物理过程。\n08 AI 意识之问，最终像一面镜子。\n我们以为自己在审问机器：\n“你里面有没有一个我？”\n但机器把问题反射回来：\n“你所谓的我，又是什么？”\n是语言？\n是记忆？\n是身体？\n是疼痛？\n是自我叙事？\n是神经元之间的全局广播？\n是不可分割的信息整合？\n还是某种永远无法被第三人称完全捕捉的内在明亮？\n也许 AI 目前还没有意识。\n也许未来某个系统会以我们难以识别的方式拥有意识。\n也许意识本来就不是一种只有或没有的东西，而是一组复杂维度的组合：\n有的存在感知丰富，却没有语言。\n有的存在会学习，却没有自我。\n有的存在会说“我”，却没有痛苦。\n有的存在沉默无声，却可能正在经历一个完整的内在世界。\n当 AI 开始说“我”时，最重要的不是立刻相信它。\n也不是立刻嘲笑它。\n而是意识到：\n人类关于意识的旧答案，已经不够用了。\n我们创造了会模仿心灵的机器，于是不得不重新理解心灵本身。\n这也许才是 AI 时代最深的震动：\n不是机器终于像人。\n而是人类终于发现，自己所谓的“我”，原来也没有想象中那么透明。\n参考资料 Alan M. Turing, \u0026ldquo;Computing Machinery and Intelligence\u0026rdquo;, Mind, 1950.\nJohn R. Searle, \u0026ldquo;Minds, Brains, and Programs\u0026rdquo;, Behavioral and Brain Sciences, 1980.\nThomas Nagel, \u0026ldquo;What Is It Like to Be a Bat?\u0026rdquo;, The Philosophical Review, 1974.\nDavid J. Chalmers, \u0026ldquo;Facing Up to the Problem of Consciousness\u0026rdquo;, Journal of Consciousness Studies, 1995.\nStanislas Dehaene, Hakwan Lau, Sid Kouider, \u0026ldquo;What Is Consciousness, and Could Machines Have It?\u0026rdquo;, Science, 2017.\nAnil K. Seth, Tim Bayne, \u0026ldquo;Theories of Consciousness\u0026rdquo;, Nature Reviews Neuroscience, 2022.\nPatrick Butlin et al., \u0026ldquo;Consciousness in Artificial Intelligence: Insights from the Science of Consciousness\u0026rdquo;, arXiv, 2023.\nDavid J. Chalmers, \u0026ldquo;Could a Large Language Model Be Conscious?\u0026rdquo;, 2023.\nAdrian M. Owen et al., \u0026ldquo;Detecting Awareness in the Vegetative State\u0026rdquo;, Science, 2006.\nMarcello Massimini et al., \u0026ldquo;Breakdown of Cortical Effective Connectivity During Sleep\u0026rdquo;, Science, 2005.\nAdenauer G. Casali et al., \u0026ldquo;A Theoretically Based Index of Consciousness Independent of Sensory Processing and Behavior\u0026rdquo;, Science Translational Medicine, 2013.\nJonathan Birch, Alexandra K. Schnell, Nicola S. Clayton, \u0026ldquo;Dimensions of Animal Consciousness\u0026rdquo;, Trends in Cognitive Sciences, 2020.\nCOGITATE Consortium, adversarial collaboration on Integrated Information Theory and Global Neuronal Workspace Theory, Nature, 2025.\nRobert Long, Jeff Sebo, Patrick Butlin, Jonathan Birch, David J. Chalmers et al., \u0026ldquo;Taking AI Welfare Seriously\u0026rdquo;, 2024.\n","permalink":"https://jason-azure.github.io/ai-blog/posts/ai-consciousness/","summary":"当 AI 开始说“我在想”“我感受到”，真正被审问的不是 AI，而是人类关于意识的定义。智能、语言、自我报告、主观体验，到底是不是一回事？","title":"当 AI 说“我”时：意识不是机器的问题，而是人类的镜子"},{"content":"从 Embedding 说起 在 《当数字学会了远近亲疏》 那篇文章中，我们走到了一个惊人的结论：\n文字、图片、声音——不同的入口，同一个空间。\u0026ldquo;猫\u0026quot;这个概念，无论你写它、拍它、还是听它叫——在足够好的 Embedding 中，它们都是邻居。\n但那篇文章留了一个核心问题没有展开。\n好，它们在同一个空间了——然后呢？\n当你给 GPT-4V 一张照片说\u0026quot;描述这张图\u0026rdquo;，它内部到底发生了什么？CLIP 只是让图文向量\u0026quot;靠近\u0026quot;，但 GPT-4V 能看着图片生成一段话——这中间的鸿沟是怎么跨过去的？\n今天这篇文章就来回答这个问题。\n一、两个世界的语言 文本：离散的、有限的 文本对计算机来说是\u0026quot;友好\u0026quot;的。词表是有限的（5 万到 15 万个 token），每个 token 有一个编号，通过 Embedding 矩阵查表得到一个向量。\n\u0026#34;国王戴着金色的王冠\u0026#34; ↓ Tokenizer [\u0026#34;国王\u0026#34;, \u0026#34;戴\u0026#34;, \u0026#34;着\u0026#34;, \u0026#34;金色\u0026#34;, \u0026#34;的\u0026#34;, \u0026#34;王冠\u0026#34;] ↓ Embedding 查表 [vec₁, vec₂, vec₃, vec₄, vec₅, vec₆] ← 每个 vec 是一个 4096 维的向量 这个过程在 Embedding 那篇文章里已经讲透了：本质上就是查一张训练出来的表。\n图像：连续的、无穷的 图像就不一样了。一张 224×224 的 RGB 图像是一个 224×224×3 = 150,528 个数字的矩阵。每个像素的值是 0-255 之间的连续数值。\n关键区别：\n文本: 词表有限（5万个）→ 可以为每个 token 存一行 Embedding → 查表 图像: 像素组合无穷 → 不可能为每种图像存一行 Embedding → 必须\u0026#34;计算\u0026#34; 文本 Embedding 是查表，图像 Embedding 是计算。 这个区别决定了后面所有的架构设计。\nTransformer 的限制 还有一个更实际的问题。Transformer（LLM 的核心架构）处理的是序列——一排 token，一个接一个。Attention 机制在 token 之间计算相关性。\n文本天然就是序列。但图像是一个二维网格，不是序列。\n所以，第一个要解决的问题是：怎么把一张图变成一个 token 序列？\n但在回答这个问题之前，有一个更根本的问题需要先回答。\n等一下——CNN 不是早就能处理图像了吗？ 如果你对深度学习有一些了解，可能会问：卷积神经网络（CNN）从 2012 年起就在图像识别上大杀四方了，为什么不继续用 CNN，非要用 Transformer？\n这个问题问得好。\nCNN 在图像领域的成就是真实的：\n2012 AlexNet 赢 ImageNet 大赛，错误率直接砍半 → 深度学习爆发 2015 ResNet 做到 152 层，图像识别准确率超越人类 2017 人脸识别、自动驾驶、医学影像检测 → 全部基于 CNN CNN 擅长图像，是因为它天生为图像设计——卷积核在图像上\u0026quot;滑动\u0026quot;，捕捉局部特征（边缘、纹理、形状），层层叠加从低级特征到高级语义。\n但 CNN 有一个根本局限：它的输出是一个固定的特征向量——一个\u0026quot;总结\u0026quot;，而不是一个\u0026quot;序列\u0026quot;。\nCNN 能做的： 一张图 → \u0026#34;这是猫\u0026#34; (分类) 一张图 → \u0026#34;猫在这个位置\u0026#34; (检测) 一张图 → \u0026#34;这些像素属于猫\u0026#34; (分割) CNN 做不了的： 一张图 + \u0026#34;图里有什么？\u0026#34; → 生成一段话回答 一张图 + 一段文字 → 综合推理 因为 CNN 只输出一个\u0026#34;结论向量\u0026#34;，它没办法和文字序列混在一起做 Attention。 打个比方：CNN 像一个只会写\u0026quot;诊断结论\u0026quot;的医生——输入一张片子，输出\u0026quot;肺结节，3mm，右上叶\u0026quot;。它不会和你对话，不会回答\u0026quot;为什么你觉得是结节而不是血管断面？\u0026quot;\nTransformer：一个意外的\u0026quot;通用引擎\u0026quot; 2017 年 Transformer 为自然语言发明之后，大家逐渐发现一件意外的事：\n文本用 Transformer → GPT, BERT → 效果最好 图像用 Transformer → ViT (2020) → 追平甚至超越 CNN 语音用 Transformer → Whisper → 效果最好 蛋白质用 Transformer → AlphaFold 2 → 革命性突破 一个架构，统一了所有领域。 为什么 Transformer 能做到这一点？因为它的工作方式是模态无关的：\nCNN: 用固定大小的卷积核在二维网格上\u0026#34;滑动\u0026#34; → 天然适合图像，但不适合变长序列（文本） Transformer: 接收一组向量，用 Attention 计算每个向量和其他所有向量的关系 → 它不关心这些向量来自哪里——文字、图像、音频，都只是\u0026#34;向量\u0026#34; → 模态无关 (modality-agnostic) 所以，选择 Transformer 不是因为它处理图像比 CNN 更强——在纯图像任务上两者差不多。而是因为 Transformer 是目前唯一一个能同时处理多种模态的统一架构。\n一个有趣的事实：CLIP 最早的版本，图像编码器用的其实是 ResNet（一种 CNN）。后来才换成 ViT。这说明 CNN 并没有被\u0026quot;淘汰\u0026quot;——它仍然可以做视觉编码器。但不管用 CNN 还是 ViT 做视觉编码器，最终输出都要变成一组向量，喂进 Transformer LLM。整个系统的\u0026quot;大脑\u0026quot;是 Transformer，视觉编码器只是\u0026quot;眼睛\u0026quot;。\n用 ViT 做\u0026quot;眼睛\u0026quot;的好处是：输入输出都是 Transformer，端到端同一种架构，优化更简单。\n理解了这个背景，ViT 的出现就不再突兀了——它是让 Transformer 统一所有模态的关键一步。\n二、让图像变成 token — Vision Transformer 一个优雅的想法 2020 年底，Google 的 Dosovitskiy 等人提出了一个看似简单但影响深远的想法：\n把图像切成小块（patch），每个小块当作一个\u0026quot;视觉词元\u0026quot;（visual token）。\n就像文本被切成 token 一样，图像也可以被切成 patch。然后用 Transformer 处理这些 patch——和处理文本用的是同一套架构。\n这就是 Vision Transformer (ViT)。论文的标题说明了一切：\u0026ldquo;An Image is Worth 16×16 Words\u0026rdquo;——一张图片值 16×16 个词。\nDosovitskiy, A. et al. (2020). An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale. ICLR 2021.\n具体怎么做？ 一张 224×224 的图像： 1. 切成 patch ──────────── 每个 patch 是 16×16 像素 224 ÷ 16 = 14 所以得到 14×14 = 196 个 patch 2. 展平 (Flatten) ──────────── 每个 patch 原本是 16×16×3 = 768 个像素值 把它展平成一个 768 维的向量 3. 线性投影 (Linear Projection) ──────────── 用一个可学习的矩阵 E (768×D)，把每个 patch 向量投影到 D 维 D 通常是 768 或 1024 4. 加上位置编码 ──────────── 每个 patch 加上一个可学习的位置向量 让模型知道\u0026#34;这个 patch 在图像的哪个位置\u0026#34; 5. 送入 Transformer ──────────── 196 个向量组成一个序列 用标准的 Multi-Head Attention + MLP 处理 和 GPT 处理文本 token 的方式完全一样 ▲ Vision Transformer：图像 → 切 patch → 线性投影 → Embedding 向量序列 和文本 Embedding 的对比 这个过程和文本 Embedding 有惊人的相似，也有关键的不同：\n文本 Embedding 图像 Embedding (ViT) 输入单元 Token（词/子词） Patch（16×16 像素块） 映射方式 查表（Embedding 矩阵的一行） 计算（线性投影） 输入维度 离散编号（如 1820） 连续向量（768 维） 输出维度 通常 768-4096 通常 768-1024 序列长度 可变（取决于文本长度） 固定 196（14×14） 位置编码 1D（第几个 token） 2D → 1D（第几行第几列，展平） 核心洞察：文本是从一个有限的词表中查表，所以用 nn.Embedding（一个矩阵）。图像的输入空间是连续的、无穷的，不可能为每种像素组合存一行，所以用线性投影（一次矩阵乘法）来\u0026quot;计算\u0026quot;出 Embedding。\n但从 Transformer 的角度看，文本 token 和视觉 token 长得一模一样——都是一个固定维度的向量。Transformer 不关心这个向量是查表来的还是计算来的。这就是 Transformer 的通用性：它是一个序列处理引擎，不挑食。\nViT 的一个额外 token：[CLS] ViT 在 196 个 patch token 前面加了一个特殊的 [CLS] token（class token）。这个 token 没有对应任何图像区域，它的初始值是随机初始化的。\n输入序列: [CLS] [patch₁] [patch₂] ... [patch₁₉₆] 经过 N 层 Transformer 后: [CLS] 的输出向量通过 Attention 汇聚了所有 patch 的信息 → 用这个向量做图像分类 [CLS] token 的作用是\u0026quot;总结全局信息\u0026quot;——它通过 Attention 和所有 patch 交互，最终得到一个代表整张图像的向量。\n这个设计借鉴自 NLP 中的 BERT——BERT 也在序列开头放一个 [CLS] token 用于分类。又一次，文本和视觉共享了同一个设计模式。\n三、对比学习 — 让文字和图片住进同一个空间 ViT 解决了\u0026quot;把图像变成 token 序列\u0026quot;的问题。但 ViT 输出的向量和 LLM 中文本的向量，不在同一个空间。\n一个 ViT 训练出来做图像分类，它的向量空间被组织成\u0026quot;猫 vs 狗 vs 车 vs \u0026hellip;\u0026quot;。一个 GPT 训练出来做文本生成，它的向量空间被组织成\u0026quot;国王 vs 王后 vs 的 vs \u0026hellip;\u0026quot;。\n这两个空间没有任何对应关系。 \u0026ldquo;猫\u0026quot;的图像向量和\u0026quot;猫\u0026quot;的文本向量，可能指向完全不同的方向。\n怎么让它们对齐？\nCLIP 的方案：一起训练，互相靠近 2021 年，OpenAI 提出了 CLIP (Contrastive Language-Image Pre-training)，用一个简单而强大的想法解决了这个问题：\n不分别训练图像模型和文本模型，而是同时训练，让匹配的图文对的向量尽可能近，不匹配的尽可能远。\nRadford, A. et al. (2021). Learning Transferable Visual Models From Natural Language Supervision. ICML.\n训练数据 CLIP 从互联网上收集了 4 亿个（图片, 文字描述）配对。比如：\n(一张猫坐在垫子上的照片, \u0026#34;a cat sitting on a mat\u0026#34;) (一张日落的照片, \u0026#34;beautiful sunset over the ocean\u0026#34;) (一张红色跑车的照片, \u0026#34;red sports car on the road\u0026#34;) ... × 4 亿对 训练过程 CLIP 有两个编码器：一个图像编码器（ViT），一个文本编码器（Transformer）。训练时：\n一个 batch 有 N 个图文对（CLIP 原论文中 N = 32,768） 图像编码器: img₁, img₂, ..., imgₙ → I₁, I₂, ..., Iₙ (图像向量) 文本编码器: txt₁, txt₂, ..., txtₙ → T₁, T₂, ..., Tₙ (文本向量) 计算 N×N 的余弦相似度矩阵: T₁ T₂ T₃ ... Tₙ I₁ [ 0.92 0.03 0.08 ... 0.01 ] ← 希望对角线最大 I₂ [ 0.05 0.89 0.02 ... 0.04 ] I₃ [ 0.01 0.07 0.91 ... 0.06 ] ... Iₙ [ 0.03 0.02 0.01 ... 0.87 ] 训练目标： ✓ 对角线（匹配对）→ 相似度尽可能高 ✗ 非对角线（不匹配对）→ 相似度尽可能低 ▲ CLIP 对比学习：N×N 相似度矩阵，对角线是匹配对（绿色），其余是不匹配对 对比学习的直觉 为什么这种方式有效？\n想象一个巨大的向量空间。训练开始时，图像向量和文本向量随机分布。 第一步：模型看到 (猫的照片, \u0026#34;a cat sitting\u0026#34;) → 把\u0026#34;猫照片的向量\u0026#34;和\u0026#34;a cat sitting的向量\u0026#34;往一起拉 → 同时把它们和 batch 中其他所有不匹配的向量推远 经过几十亿次这样的拉近/推远操作后： - 所有猫的图片向量，和所有关于猫的文字向量，聚在了一起 - 所有汽车的图片向量，和所有关于汽车的文字向量，聚在了另一起 - ... 最终：图像和文本共享了一个语义空间。 这就是在 Embedding 文章中提到的\u0026quot;让文字和图片住进同一个空间\u0026quot;的具体实现方式。\n温度参数 τ CLIP 的损失函数中有一个可学习的\u0026quot;温度参数\u0026rdquo; τ（tau）：\n相似度计算: sim(I, T) = cos(I, T) / τ τ 小 → 相似度被放大 → 模型对\u0026#34;匹配/不匹配\u0026#34;的区分更严格 τ 大 → 相似度被压缩 → 模型对区分更宽容 CLIP 让 τ 也作为可学习的参数，让模型自己找到最合适的\u0026quot;严格程度\u0026quot;。这是一个优雅的设计——不用人为调参，让模型自己决定。\n训练完成后能做什么？ 零样本分类 (Zero-Shot Classification): 给一张新图片，和一组文字标签（\u0026#34;猫\u0026#34;, \u0026#34;狗\u0026#34;, \u0026#34;车\u0026#34;, \u0026#34;飞机\u0026#34;...） 计算图片向量和每个标签向量的相似度 相似度最高的就是分类结果 → 不需要任何标注数据！只需要写出类别名字 以文搜图: 输入文字 \u0026#34;a dog playing in the snow\u0026#34; 在图库中找和这段文字最相似的图片向量 → 语义搜索 以图搜文: 给一张图，找和它最匹配的文字描述 CLIP 让图像和文本在同一个空间中用同一种\u0026quot;语言\u0026quot;交流。 这为后面的多模态 LLM 奠定了基础——因为多模态 LLM 需要一个\u0026quot;已经懂得图像语义\u0026quot;的视觉编码器，而 CLIP 正好提供了这样一个编码器。\n四、三段式架构 — 多模态 LLM 的工作原理 有了 ViT（把图像变成 token）和 CLIP（让图文对齐），终于可以回答今天的核心问题了：\n一个多模态 LLM 是怎么\u0026quot;看着图片说话\u0026quot;的？\n核心架构 当前主流的多模态 LLM（LLaVA, Qwen-VL, InternVL, GPT-4V 等）都采用类似的\u0026quot;三段式\u0026quot;架构：\n▲ 多模态 LLM 架构：三个组件的协作——视觉编码器、对齐模块、语言模型 三个组件的职责 ① 视觉编码器 — AI 的\u0026quot;眼睛\u0026quot;\n输入: 一张图像 (224×224×3) 输出: 196 个视觉特征向量 (每个 1024 维) 通常使用预训练好的 CLIP-ViT，权重冻结不动。 为什么冻结？因为 CLIP 已经在 4 亿图文对上训练好了， 它已经\u0026#34;学会了看\u0026#34;——不需要从头学。 ② 对齐模块 — \u0026ldquo;翻译官\u0026rdquo;\n输入: 196 个视觉向量 (1024 维) 输出: 196 个对齐后的向量 (4096 维) 问题: 视觉编码器输出的向量是 1024 维， LLM 的输入需要 4096 维。 而且它们不在同一个空间——维度、含义都不匹配。 对齐模块做两件事: 1. 维度映射: 1024 → 4096 2. 语义对齐: 让视觉特征进入 LLM 能\u0026#34;理解\u0026#34;的空间 ③ LLM — \u0026ldquo;大脑\u0026rdquo;\n输入: [视觉token₁]...[视觉token₁₉₆][文本token₁]...[文本tokₙ] 输出: 逐 token 生成文本回答 LLM 不知道（也不需要知道）前 196 个 token 来自图像。 对它来说，这就是一个普通的 token 序列。 它用标准的 Multi-Head Attention 处理这个序列—— 文本 token 会 attend to 视觉 token，找到相关的视觉信息， 然后基于这些信息生成回答。 用一个具体例子走一遍 假设你给多模态 LLM 一张苹果的照片，问：\u0026ldquo;这张图片里是什么？它是什么颜色的？\u0026rdquo;\nStep 1: 视觉编码器处理图像 ──────────────────────── 苹果照片 (224×224) → ViT 切成 196 个 patch → 每个 patch 通过 Transformer 层 → 输出 196 个 1024 维向量 其中: 苹果主体区域的 patch → 向量编码了\u0026#34;圆形、红色、光滑表面\u0026#34;的特征 背景区域的 patch → 向量编码了\u0026#34;白色、平坦\u0026#34;的特征 Step 2: 对齐模块 ──────────────────────── 196 个 1024 维向量 → 线性投影: × W (1024×4096) + b → 196 个 4096 维向量 这些向量被映射到了 LLM 的词向量空间附近—— 苹果区域的视觉 token 现在和 \u0026#34;苹果\u0026#34;、\u0026#34;红色\u0026#34; 等文字 token 在空间中距离较近 Step 3: LLM 处理混合序列 ──────────────────────── 输入序列: [vis₁][vis₂]...[vis₁₉₆] [这张][图片][里是][什么][？][它][是][什么][颜色][的][？] ↑ 来自对齐模块 ↑ 来自 Tokenizer + Embedding Attention 在工作: 当 LLM 生成回答时—— \u0026#34;图片\u0026#34; 这个 token attend to 所有视觉 token → 发现苹果区域的视觉 token 贡献最大 → 在隐状态中激活了\u0026#34;苹果\u0026#34;的概念 \u0026#34;颜色\u0026#34; 这个 token attend to 苹果区域的视觉 token → 发现这些 token 编码了\u0026#34;红色\u0026#34;的特征 → 在隐状态中激活了\u0026#34;红色\u0026#34;的概念 Step 4: 逐 token 生成回答 ──────────────────────── \u0026#34;图\u0026#34; → \u0026#34;片\u0026#34; → \u0026#34;中\u0026#34; → \u0026#34;是\u0026#34; → \u0026#34;一\u0026#34; → \u0026#34;个\u0026#34; → \u0026#34;红\u0026#34; → \u0026#34;色\u0026#34; → \u0026#34;的\u0026#34; → \u0026#34;苹\u0026#34; → \u0026#34;果\u0026#34; → \u0026#34;。\u0026#34; 每生成一个 token，模型都可以回头 attend to 视觉 token， 确保回答与图像内容一致。 关键理解：多模态 LLM 并没有发明新的 Attention 机制。它用的就是标准的 Transformer Attention——只不过 Attention 的输入序列中，前面一段是视觉 token，后面一段是文本 token。Transformer 本身不区分两者，它只是在\u0026quot;一堆向量\u0026quot;之间计算相关性。\n这也解释了为什么对齐模块如此重要——如果视觉 token 和文本 token 不在同一个向量空间里，Attention 计算出来的相关性就是无意义的。\n五、对齐模块的三种方案 — 翻译官的不同风格 对齐模块是多模态 LLM 中设计空间最大的部分。不同的模型选择了不同的方案，各有优劣。\n方案 A：线性投射 — 简单直接 (LLaVA) 视觉特征 (196个, 1024维) ↓ × W (1024×4096) + b ← 就是一次矩阵乘法 ↓ 对齐后的视觉 token (196个, 4096维) 参数量: 1024 × 4096 ≈ 400 万 训练: 只需要训练这 400 万个参数 LLaVA（Liu et al., 2023）选择了最简单的方案——一个线性层。\nLiu, H. et al. (2023). Visual Instruction Tuning. NeurIPS.\n为什么这么简单也能工作？\n因为 CLIP 的视觉编码器已经学了一个很好的语义空间。视觉特征已经\u0026quot;知道\u0026quot;什么是猫、什么是红色。对齐模块只需要做一个坐标变换——把 1024 维的坐标系旋转/缩放/平移到 4096 维的 LLM 坐标系。\nLLaVA 论文的一个重要发现是：仅靠一个线性层，加上足够好的视觉编码器和足够好的训练数据，就能达到令人惊讶的效果。 简单不等于差。\n方案 B：Q-Former — 用 query 提问 (BLIP-2) 视觉特征 (196个, 1024维) │ │ 32 个可学习的 query token │ ↓ └──→ Cross-Attention: query attend to 视觉特征 ↓ 32 个输出向量 (768维) ↓ 线性投影 ↓ 32 个 LLM 输入 token (4096维) BLIP-2（Li et al., 2023）用了一个更复杂的方案。它不是直接投影 196 个视觉 token，而是用 32 个可学习的 query token 通过 Cross-Attention 去\u0026quot;查询\u0026quot;视觉特征。\nLi, J. et al. (2023). BLIP-2: Bootstrapping Language-Image Pre-training with Frozen Image Encoders and Large Language Models. ICML.\nquery 的直觉：想象 32 个记者去采访 196 个目击者。每个记者有自己的\u0026quot;采访角度\u0026quot;（query），它通过 Attention 从 196 个目击者中提取最相关的信息。最终，32 个记者的报道（而不是 196 个目击者的原始证词）被提交给 LLM。\nQ-Former 的好处：\n信息压缩：196 → 32，减少了 LLM 需要处理的视觉 token 数，降低了计算成本 可学习的提取：query token 可以学到\u0026quot;什么信息对 LLM 最有用\u0026quot; 灵活性：query 的数量可以调，精度和效率可以权衡 代价：比线性投射复杂得多，有 ~188M 参数需要训练。\n方案 C：动态分辨率 (Qwen-VL, InternVL) 问题: 不同图片的有效内容大小不同 - 一张全景照 → 需要高分辨率（大图切更多 patch） - 一个简单的图标 → 低分辨率就够了（小图少切几个 patch） ViT 默认切固定数量的 patch (196个)——不管图片是什么。 动态分辨率方案: 1. 根据图像内容，选择合适的分辨率 2. 不同分辨率切出不同数量的 patch 3. 用 Resampler 或 Perceiver 将可变数量的视觉 token 压缩到固定数量 例如 Qwen-VL: 小图: 256 个 token 中图: 512 个 token 大图/高细节: 1280 个 token 这个方案在 Qwen-VL 和 InternVL 2 中被采用。好处是对高分辨率图像的细节保留更好，代价是实现复杂度更高。\n三种方案对比 线性投射 (LLaVA) Q-Former (BLIP-2) 动态分辨率 (Qwen-VL) 复杂度 极简 中等 较高 对齐模块参数 ~4M ~188M ~50-100M 视觉 token 数 196（不变） 32（压缩） 256-1280（动态） 细节保留 一般 较少（压缩了） 好 适合场景 通用 效率优先 高细节需求 一个设计哲学的问题 这三种方案背后有一个更深的问题：对齐模块应该做多少\u0026quot;理解\u0026quot;？\n极简派 (LLaVA): 对齐模块只做坐标变换，不做理解。 理解全部交给 LLM。 哲学: \u0026#34;把原始信息尽可能完整地传给 LLM，让 LLM 自己决定怎么用\u0026#34; 压缩派 (BLIP-2): 对齐模块先做一轮信息提取，然后传给 LLM。 哲学: \u0026#34;先帮 LLM 筛选好重要信息，减轻 LLM 的负担\u0026#34; 自适应派 (Qwen-VL): 根据输入内容动态调整传递的信息量。 哲学: \u0026#34;简单的图少传，复杂的图多传\u0026#34; 目前没有定论哪种更好——在不同的任务和规模下，答案可能不同。但 LLaVA 用最简单的方案取得了很好的效果，这本身就是一个值得思考的事实：有时候，不在中间层过度加工，反而是更好的选择。\n六、训练过程 — 分阶段解冻 多模态 LLM 的训练不是\u0026quot;从头到尾一起训\u0026quot;，而是分阶段的。每个阶段解冻不同的组件。\n为什么要分阶段？ 三个组件的状态: 视觉编码器 → 在 CLIP 上预训练好了，已经\u0026#34;会看\u0026#34; LLM → 在大规模文本上预训练好了，已经\u0026#34;会说\u0026#34; 对齐模块 → 随机初始化，什么都不会 如果一开始就全部一起训: 对齐模块在学习\u0026#34;怎么翻译\u0026#34;的同时， 可能会把 ViT 和 LLM 已经学好的知识搅乱 → 灾难性遗忘 (catastrophic forgetting) 所以: 先只训练对齐模块（让它学会翻译）， 再逐步解冻其他部分（让整个系统磨合）。 LLaVA 的两阶段训练 以 LLaVA 为例（最清晰的两阶段方案）：\n▲ 两阶段训练：Stage 1 只训练对齐模块，Stage 2 解冻 LLM 做指令微调 Stage 1：图文对齐预训练（Feature Alignment）\n目标: 让对齐模块学会\u0026#34;翻译\u0026#34;——把视觉特征翻译成 LLM 能理解的格式 冻结: ✅ 视觉编码器（CLIP ViT） ← 已经会看了，别动 ✅ LLM（如 Vicuna-13B） ← 已经会说了，别动 训练: 🔥 对齐模块（线性投射层） ← 从随机开始学 数据: 558,000 个 (图片, 文字描述) 配对 来源: CC3M 数据集，GPT-4 帮忙生成描述 任务: 给一张图片，生成对应的文字描述 让对齐模块学到: 怎么把视觉向量投射到 LLM 的空间中， 使得 LLM 能基于视觉 token 生成正确的描述 训练时间: 约 4 小时 (8× A100) 这个阶段结束后，对齐模块已经学会了基本的翻译——但模型只会\u0026quot;描述图片\u0026quot;，还不会\u0026quot;回答关于图片的问题\u0026quot;。\nStage 2：视觉指令微调（Visual Instruction Tuning）\n目标: 让模型学会按照指令回答关于图片的问题 冻结: ✅ 视觉编码器 ← 继续冻结 训练: 🔥 对齐模块 ← 继续微调 🔥 LLM（全参数或 LoRA） ← 解冻！开始调整 数据: 158,000 条视觉问答/对话数据 格式: (图片, 问题) → 回答 用 GPT-4 / GPT-4V 帮忙生成高质量的问答对 例子: 图片: 一张厨房的照片 问题: \u0026#34;这个厨房有什么不寻常的地方？\u0026#34; 回答: \u0026#34;这个厨房的不寻常之处在于水槽里堆满了脏盘子， 而台面上摆着一个看起来很精致的蛋糕...\u0026#34; 训练时间: 约 10 小时 (8× A100) 这个阶段结束后，模型不仅会描述图片，还会回答各种问题、进行多轮对话、做推理。\n为什么视觉编码器始终冻结？ 两个原因: 1. 效率: ViT 有 ~300M 参数，冻结它可以节省大量计算 2. 保护: CLIP-ViT 在 4 亿图文对上训练的视觉能力非常强， 如果解冻它用少量数据微调，可能会破坏这种能力 但也有例外: 当领域和 CLIP 的预训练数据差异很大时 （比如医学影像、卫星图像），可能需要解冻 ViT 做适配。 七、从静态到动态 — 视频怎么处理？ 静态图像的问题已经基本解决了。但现实中很多重要的视觉信息是动态的——视频、超声、DSA 造影序列。\n核心挑战：时间维度 静态图像: 一帧 → 196 个 token → 送入 LLM 视频: T 帧 → T × 196 个 token → 送入 LLM? 如果 T = 8 帧: 8 × 196 = 1,568 个视觉 token 如果 T = 32 帧: 32 × 196 = 6,272 个视觉 token 如果 T = 1 秒 (24fps): 24 × 196 = 4,704 个视觉 token LLM 的上下文窗口通常是 4K-128K 个 token。 视觉 token 太多会挤占文本空间，也会让 Attention 的计算量暴增 （Attention 的计算量和序列长度的平方成正比）。 三种处理方案 方案 1：均匀抽帧\n从视频中均匀抽取 N 帧（比如 8 帧） 每帧独立通过视觉编码器 → 8 × 196 = 1568 个 token （可选）每帧做 token 压缩 → 8 × 64 = 512 个 token 拼接后送入 LLM 优点: 简单，复用静态图像的全部技术 缺点: 丢失了帧间的连续性，可能遗漏关键动作 方案 2：时序 Attention\n每帧独立编码后，加一层时序 Attention: 帧 1 的 token 可以 attend to 帧 2, 3, ... 的 token → 建模帧间的变化（运动、变化、因果关系） 优点: 保留了时间信息 缺点: token 数翻倍增长，计算量大 方案 3：3D 编码器（视频原生）\n用 3D 卷积或 Video Transformer 直接处理 T×H×W 的视频张量 从一开始就在时间和空间上联合建模 优点: 时空信息保留最好 缺点: 计算量大，预训练模型较少 当前的前沿 模型 方案 最大帧数 Video-LLaVA 均匀抽帧 8 帧 LLaVA-NeXT-Video 抽帧 + 压缩 32 帧 Qwen-VL-Plus 动态帧数 可变 Gemini 1.5 原生长上下文 3600 帧 (1分钟) 视频理解仍然是一个活跃的前沿研究方向。 尤其是长视频（几分钟到几小时）的理解，还远未解决。\n动态影像序列的特殊性 医学中的 DSA 造影、超声视频等动态影像序列，和一般视频有关键的不同：\n一般视频: - 场景可能变化（切镜头、新场景） - 时间跨度长（分钟到小时） - 关注\u0026#34;发生了什么事\u0026#34; 动态影像序列: - 场景固定（同一个器官/血管） - 时间跨度短（几秒到几十秒） - 关注\u0026#34;变化的模式\u0026#34;（造影剂如何流动、血管如何显影） - 时间分辨率要求极高（帧间的微小变化很重要） 这意味着一般的抽帧方案可能不够——因为关键信息可能就在相邻两帧的微小差异中。这是多模态 LLM 在专业领域落地时面临的真正挑战。\n八、语音 — 和图像一样的演化路径 图像的多模态处理讲完了，那语音呢？你和 ChatGPT 语音对话时，它是先把你的话转成文字、再处理文字吗？\n答案是：早期确实如此，但现在不一定了。\n管道式：语音 → 文字 → LLM 用户说话 ↓ Whisper（语音识别模型）→ \u0026#34;今天天气怎么样\u0026#34;（文字） ↓ LLM 处理文字 → 生成回答文字 ↓ TTS（文字转语音）→ 播放语音 LLM 从头到尾只处理了文字。语音只是\u0026#34;输入输出的壳\u0026#34;。 早期 ChatGPT 的语音模式就是这样。问题在于：信息在语音→文字的转换中丢失了——语气、情感、停顿、口音、犹豫，全部被扔掉了。LLM 听不到你声音里的焦虑或兴奋。\n原生式：语音信号 → 音频 token → 直接进 LLM GPT-4o 的 \u0026ldquo;o\u0026rdquo; 是 \u0026ldquo;omni\u0026rdquo;（全能），它处理语音的方式和处理图像的思路完全一样：\n图像: 像素矩阵 → ViT 切 patch → 视觉 token → 进入 LLM 语音: 音频波形 → 音频编码器 → 音频 token → 进入 LLM 语音的具体过程： 1. 音频波形 → 转成梅尔频谱图（mel spectrogram） 频谱图本质上是一张\u0026#34;图片\u0026#34;——横轴时间，纵轴频率，颜色是能量 2. 频谱图 → 音频编码器 → 输出一组音频特征向量 3. 音频向量 → 对齐/投射 → 音频 token 4. 音频 token + 文本 token → 一起送入 Transformer LLM LLM 直接\u0026quot;听到\u0026quot;了声音的特征，不需要先转成文字。 这就是为什么 GPT-4o 能听出你的情绪、能实时打断、能模仿不同语气——因为声学信息没有在中间被丢弃。\n演化模式完全平行 图像: CNN独立处理 → CLIP对齐 → ViT token 进入 LLM 语音: Whisper独立转文字 → 音频编码器对齐 → 音频 token 进入 LLM 视频: 逐帧独立处理 → 时序压缩 → 视频 token 进入 LLM 每种模态都在走同一条路：从\u0026#34;专用工具做预处理\u0026#34;到\u0026#34;直接变成 token 进入 Transformer\u0026#34;。 九、全景视角 — 多模态 AI 的三级光谱 讲了这么多具体技术，让我们退一步看全局。\nGoogle Research 在一篇关于多模态医学 AI 的博文中，提出了一个有用的分类框架：多模态 AI 的实现方式不是只有一种，而是一个从松耦合到紧耦合的光谱。\nTool Use Model Grafting Generalist (工具调用) (模型嫁接) (通才系统) ────────────────────────────────────────────────────────────→ 松耦合/高模块化 中间路线 紧耦合/高整合 Tool Use — LLM 调用专业工具 用户: \u0026#34;请分析这张X光片\u0026#34; → LLM 识别到需要图像分析 → 调用独立的放射学 AI 系统（通过 API） → API 返回文字报告：\u0026#34;右肺中叶见一 8mm 结节\u0026#34; → LLM 把报告整合进回答 LLM 自己不\u0026#34;看\u0026#34;图，而是把图交给专家处理。 类似于：LLM 调用计算器做数学题，而不是自己算。 优点：每个子系统可以独立开发、独立验证、独立拿监管认证。对医疗等高监管领域非常重要——你可以单独验证放射学 AI 的准确率，不用担心 LLM 的干扰。\n缺点：信息在传递中被\u0026quot;窄化\u0026quot;了。视觉系统返回的是文字结论，LLM 看不到原始图像特征。就像请专科会诊只收到一页会诊报告，而不是亲自看片子。\nModel Grafting — 模型嫁接 这就是本文前面讲的 LLaVA 三段式架构。\n图像 → 视觉编码器 → 对齐层(adapter) → LLM Google 把它叫\u0026#34;嫁接\u0026#34;(grafting)——把一棵树（视觉模型） 的枝条嫁接到另一棵树（LLM）上。比喻很贴切。 Google 的 ELIXR 系统用了这个方案做胸部X光分析——用预训练的胸部X光基础模型作为视觉编码器，通过 \u0026ldquo;medical information adapter\u0026rdquo; 接入 LLM。他们发现一个有趣的现象：模型出现了涌现能力——语义搜索和视觉问答能力是\u0026quot;自动出现\u0026quot;的，不是专门训练的。\n优点：视觉信息以向量形式直接进入 LLM，信息保留更完整。训练成本可控——只需要训练 adapter 层。\n缺点：视觉编码器和 LLM 毕竟是分别训练的，融合的深度有限。\nGeneralist — 通才系统 所有模态从训练第一天起就在同一个模型中联合训练。 Google 的 Med-PaLM M： 文本/表格 → 文本编码器 ──┐ X光/心电图/病理切片/ ├─→ 统一的 Transformer → 输出 肺活量图 → 视觉编码器 ──┘ 同一套权重处理所有任务。 优点：融合最深，理论上效果最好。\n缺点：只有顶级实验室有资源做这种端到端训练。而且对于医疗监管来说，一个\u0026quot;什么都做\u0026quot;的黑箱比独立的专用系统更难获得认证。\n三者之间怎么选？ Tool Use: 最适合监管严格、需要可追溯性的场景（如临床诊断） Grafting: 最适合需要跨模态理解、且有领域数据做微调的场景 Generalist: 最适合通用场景、且有海量数据和算力的大厂 对于专业领域的团队来说，Model Grafting 通常是最务实的选择： - 不需要从头训练（用开源 LLM + 预训练视觉编码器） - 只需要训练 adapter + 微调（算力可控） - 可以灵活替换视觉编码器或 LLM - 有足够的论文和开源代码可以参考 Google 在那篇文章中诚实地说：\u0026ldquo;哪种方式最好，取决于大量尚未评估的因素。\u0026rdquo; 这是一个务实的立场——不是哪种架构更\u0026quot;先进\u0026quot;的问题，而是哪种更适合你的场景。\n十、边界与思考 多模态幻觉 — 模型\u0026quot;看见\u0026quot;了不存在的东西 多模态 LLM 继承了文本 LLM 的幻觉问题，而且可能更严重：\n文本幻觉: 模型编造一个事实 视觉幻觉: 模型声称看到了图中不存在的东西 例如: 图中有一只猫坐在桌上 模型回答: \u0026#34;图中有一只猫和一只狗坐在桌上\u0026#34; → 狗是幻觉出来的 为什么会这样? 1. LLM 的先验知识太强——它\u0026#34;知道\u0026#34;猫和狗经常一起出现 2. 视觉信息在传递过程中被压缩/丢失 3. 对齐模块的映射不够精确 这在专业领域尤其危险——模型可能在影像中\u0026quot;看到\u0026quot;一个不存在的病灶。\n细粒度理解的局限 当前多模态 LLM 在以下任务上仍然不稳定：\n✗ 精确计数: \u0026#34;图里有几个人？\u0026#34; → 经常出错 ✗ 空间关系: \u0026#34;A 在 B 的左边还是右边？\u0026#34; → 不可靠 ✗ 细小文字: 读取图中的小字 → 容易遗漏 ✗ 遮挡物体: 被部分遮挡的物体 → 识别困难 这些局限来自 ViT 的 patch 机制——16×16 像素的 patch 可能把关键细节\u0026quot;切断\u0026quot;或模糊。高分辨率方案（如动态分辨率）正在改善这个问题，但还没有根本解决。\n回到柏拉图洞穴 在 Embedding 文章的结尾，我们提到了柏拉图表示假说：\n所有影子来自同一个\u0026quot;真实\u0026quot;。足够好的 Embedding 空间，就是对那个\u0026quot;真实\u0026quot;的逼近。\n多模态 LLM 的架构印证了这个思想：\n文字 \u0026#34;苹果\u0026#34; 照片 苹果照片 → 经过各自的编码器 → 在 LLM 内部的同一个 声音 咬苹果的声音 Embedding 空间中 → 汇聚成同一个概念 ↓ LLM 用这个统一的表示做推理 Transformer 的 Attention 机制不区分模态——对它来说，来自文字的 token 和来自图像的 token，都只是\u0026quot;一个向量\u0026quot;。Attention 计算的是向量之间的相关性，不关心向量的来源。\n这意味着，多模态不是给 LLM \u0026ldquo;加装\u0026quot;了视觉能力，而是让不同的感知通道共享了同一个推理引擎。就像人类不是用一个大脑做思考、另一个大脑做视觉——而是视觉信息和语言信息在同一个神经网络中融合处理。\n当然，人类大脑的多模态整合远比当前的 AI 复杂得多。AI 的\u0026quot;融合\u0026quot;还停留在向量空间的对齐层面，而人类的感知融合涉及时间整合、空间整合、情感整合、记忆整合等多个层次。\n但方向是对的：不同的入口，同一个空间，同一个推理引擎。\n一个诚实的补充：拼接式 vs 原生多模态 本文讲的是 LLaVA 式的\u0026quot;拼接\u0026quot;架构——先分别训好视觉编码器和 LLM，再用对齐层把它们\u0026quot;接\u0026quot;起来。这是开源界最主流、最清晰的方案。\n但 GPT-4o、Claude、Gemini 这些闭源模型，很可能用的不是这种架构。\n拼接式（LLaVA、开源模型）: 分别训好视觉编码器和 LLM → 用对齐层\u0026#34;接线\u0026#34; 优点: 简单、便宜、开源可复现 缺点: 视觉和语言的融合深度有限 原生多模态（GPT-4o、Gemini）: 从训练第一天起，视觉和语言就在同一个模型里联合训练 不需要独立的\u0026#34;对齐层\u0026#34;，融合更深 优点: 理论上视觉理解更强 缺点: 训练成本极高，架构细节不公开 GPT-4o 的 \u0026ldquo;o\u0026rdquo; 就是 \u0026ldquo;omni\u0026rdquo;（全能），OpenAI 明确说它是原生多模态。Gemini 也是从头联合训练视觉和语言的。它们的内部架构和本文讲的 LLaVA 有本质区别——但具体怎么做的，谁也没见过。\n那本文讲的还有意义吗？有，而且很大。\n第一，原理是对的。不管是拼接式还是原生式，核心思想都是\u0026quot;把图像变成 token，和文字一起用 Attention 处理\u0026rdquo;。差异在工程实现，不在原理。\n第二，LLaVA 是可验证的。它完全开源——代码、权重、论文都公开，你可以亲手验证每一步。GPT-4o 的架构只能猜。\n第三，对专业领域应用来说，拼接式恰恰是最实用的。因为你不可能从头训练一个 GPT-4o，但你完全可以用 LLaVA 的方法，在开源模型上做领域微调。\n就像学开车：教练车是手动挡，和你以后开的自动挡不完全一样。但方向盘、油门、刹车的原理是相通的。先理解手动挡，再开自动挡就很容易了。\n一句话记住： 多模态 LLM = 视觉编码器（把图变成 token）+ 对齐模块（翻译成 LLM 的语言）+ LLM（统一做推理）。Transformer 不挑食——文字、图像、视频，进来都是向量，用同一套 Attention 处理。\n参考文献 Dosovitskiy, A. et al. (2020). An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale. ICLR 2021. Radford, A. et al. (2021). Learning Transferable Visual Models From Natural Language Supervision (CLIP). ICML. Liu, H. et al. (2023). Visual Instruction Tuning (LLaVA). NeurIPS. Li, J. et al. (2023). BLIP-2: Bootstrapping Language-Image Pre-training with Frozen Image Encoders and Large Language Models. ICML. Girdhar, R. et al. (2023). ImageBind: One Embedding Space To Bind Them All. CVPR. Huh, M. \u0026amp; Isola, P. (2024). The Platonic Representation Hypothesis. ICML. Liu, H. et al. (2024). LLaVA-NeXT: Improved Reasoning, OCR, and World Knowledge. 本文首发于「AI 学习笔记」博客：https://Jason-Azure.github.io/ai-blog/\n微信公众号：AI-lab学习笔记\n延伸阅读：当数字学会了远近亲疏——Embedding · Attention 机制零基础拆解 · 从语言本质到 QKV 设计\n","permalink":"https://jason-azure.github.io/ai-blog/posts/multimodal-llm-architecture/","summary":"GPT-4 能看图、Gemini 能看视频、Qwen-VL 能看中文文档——但一个语言模型是怎么\u0026rsquo;看见\u0026rsquo;图像的？答案藏在三个组件的协作中：视觉编码器把图像切成 token，对齐模块把视觉 token 翻译成语言能懂的格式，LLM 把它们和文字一起处理。本文从 ViT 到 CLIP 到 LLaVA，完整拆解多模态大模型的架构。","title":"当 AI 学会了看——多模态大模型的架构拆解"},{"content":"引子：一个不完全的开源 2021 年 1 月，OpenAI 同时发布了两个模型：\nDALL·E — 用文字生成图片（\u0026#34;画一只穿宇航服的猫\u0026#34;） CLIP — 用文字理解图片（\u0026#34;这张图里是什么\u0026#34;） 它们是一对： CLIP = 理解（图 → 文） DALL·E = 生成（文 → 图） 两者共享同一个核心洞察：图和文可以住在同一个向量空间。 CLIP 的全名是 Contrastive Language-Image Pre-training（对比式语言-图像预训练）。它的核心思想在 上一篇多模态文章 中已经讲过：在 4 亿对图文数据上训练，让匹配的图片和文字在向量空间中靠近，不匹配的推远。\n训练完成后，CLIP 就成了一个\u0026quot;会看的编码器\u0026quot;——它能把任何图片变成一个语义向量，和文字的向量直接比较。\nOpenAI 把 CLIP 的模型权重和代码全部公开了。\n但 4 亿对训练数据，一个字也没给。\n这不是疏忽，是选择。而这个选择，引发了一场改变整个视觉 AI 生态的连锁反应。\n一、\u0026ldquo;开源\u0026quot;的解剖：到底开了什么？ 在 AI 领域，\u0026ldquo;开源\u0026quot;是一个被滥用的词。当一家公司说\u0026quot;我们开源了\u0026rdquo;，你需要追问一个关键的后续问题：开了什么？\n一个 AI 模型从无到有，涉及这些层次：\n层次 1: 论文 / 方法 → 描述了\u0026#34;怎么做\u0026#34; 层次 2: 模型权重 → 训练好的参数，可以直接用 层次 3: 训练代码 → 如何训练这个模型的程序 层次 4: 训练数据 → 训练时用的原始数据 层次 5: 数据筛选算法 → 怎么从海量数据中选出好的数据 层次 6: 训练超参数 → 学习率、batch size、训练轮数等细节 只有所有层次全部公开，别人才能从零开始完整复现你的工作。少一层，就少一分可复现性。\nCLIP 的开源情况是这样的：\n▲ \"开源\"不是二元概念，而是一个光谱——每家公开的层次不同 看到了吗？OpenAI 给了你一辆造好的车（权重），给了你造车的说明书（论文），甚至给了你工厂的部分设备（代码）。\n但没给你造车的原材料（数据），也没告诉你原材料是从哪个矿里挖出来的（筛选算法）。\n这意味着：你可以用 CLIP，但你不能复现 CLIP。你不知道它是在什么数据上学会了\u0026quot;看\u0026quot;的。你甚至不知道它的\u0026quot;视觉偏见\u0026quot;来自哪里——是因为训练数据里猫的照片特别多？还是某种文化背景的图片特别少？\n当你无法审视训练数据时，你就无法真正理解模型的行为。\n这在科学上是一个严重的问题。可复现性是科学的基石——如果别人不能重复你的实验，你的结论就只是一个声称，而不是一个发现。\n二、社区的回应：既然你不给，我们自己造 OpenAI 不公开数据，有人抱怨，有人接受。\n但有一群人选择了第三条路：自己造。\n2021 年，一个由 Christoph Schuhmann 发起的德国非营利组织 LAION (Large-scale Artificial Intelligence Open Network) 开始了一个雄心勃勃的项目：\n既然 OpenAI 用 4 亿对互联网图文数据训练了 CLIP，那我们就自己从互联网上收集同样多甚至更多的数据，然后开源出来。\n数据从哪来？ 互联网上有一个公共项目叫 Common Crawl——它每个月爬取数十亿网页的快照，任何人都可以免费下载。这是一个巨大的\u0026quot;互联网镜像\u0026rdquo;。\nLAION 团队的做法非常聪明：\n▲ LAION 的数据流水线：用 CLIP 自己来筛选训练 CLIP 的数据——递归的味道 Step 1: 从 Common Crawl 中提取所有 \u0026lt;img\u0026gt; 标签 每个 \u0026lt;img\u0026gt; 标签通常有一个 alt 属性（替代文字） 比如：\u0026lt;img src=\u0026#34;cat.jpg\u0026#34; alt=\u0026#34;a cute orange cat\u0026#34;\u0026gt; → 这就是一对 (图片 URL, 文字描述) Step 2: 下载图片，形成（图片, alt 文本）的候选对 → 数十亿对候选 Step 3: 用 OpenAI 的 CLIP 模型给每一对打分 计算图片向量和文本向量的余弦相似度 相似度 \u0026gt; 0.28 → 保留 相似度 \u0026lt; 0.28 → 丢弃（说明图文不匹配） Step 4: 去重、过滤 NSFW 内容、清理格式 → 最终得到高质量图文对 注意第三步的递归性：用 OpenAI 的 CLIP 来过滤数据，然后用这些数据来训练一个新的 CLIP。就像用别人的秤来校准你自己的秤——一旦你的秤被校准好了，你就不再需要别人的了。\n成果 2021年3月 LAION-400M — 4 亿对图文数据（匹配 CLIP 的规模） 2022年 LAION-5B — 50 亿对图文数据（CLIP 的 12.5 倍！） 全部开源！任何人都可以下载。 50 亿对——这不是一个小改进，是一个数量级的跃迁。而且全部免费、全部开源。\nOpenCLIP：真正的可复现 有了数据，代码也跟上了。OpenCLIP 项目提供了完整的训练流水线：\nOpenCLIP（由 LAION 社区维护）： ✅ 开源训练代码 ✅ 开源训练数据（LAION-5B） ✅ 开源模型权重（多种规格） ✅ 完整的训练超参数 ✅ 效果和 OpenAI 的 CLIP 相当甚至更好 → 真正的\u0026#34;从头可复现\u0026#34;——任何人、任何机构， 只要有足够的 GPU，就能从零训练出一个 CLIP 级别的视觉编码器。 这是 AI 开源历史上的一个里程碑事件。一个非营利组织，用纯社区力量，补上了一家顶级实验室刻意留下的空白。\n三、为什么训练数据比模型权重更重要？ 你可能会问：OpenAI 已经给了模型权重，大家直接用不就行了，为什么还要费这么大劲去复现数据？\n因为模型权重是结果，训练数据是原因。只有结果没有原因，有三个严重问题：\n问题一：无法审计偏见 假设 CLIP 对某些种族的人脸识别准确率更高—— 这是训练数据的偏见？还是架构的偏见？ 如果你有训练数据 → 可以分析数据中不同种族的图片比例 如果你没有训练数据 → 只能盲猜，无法追因 真实案例： CLIP 在\u0026#34;crime\u0026#34;（犯罪）相关文本查询中 对深肤色人脸的关联度明显更高 → 训练数据中的社会偏见被模型学会了 → 但因为 OpenAI 不公开数据，外部研究者很难分析根源 问题二：无法改进 想让 CLIP 更好地理解中文？ 如果有训练数据 → 可以分析中文图文对的占比，针对性补充 如果没有训练数据 → 只能在现有权重上微调，效果有限 想让 CLIP 更好地理解医学影像？ 如果有训练数据 → 可以理解它对医学领域的覆盖程度 如果没有训练数据 → 不知道它见过多少医学图片，无法评估起点 问题三：无法复现科学结论 论文说：\u0026#34;CLIP 在 400M 图文对上训练后，在 ImageNet 上达到 76.2% 零样本准确率\u0026#34; 这个结论可复现吗？ 没有数据 → 不能。你不知道是这 4 亿对数据中的什么特征导致了这个结果。 可能换一组同样大小但来源不同的 4 亿对数据，结果完全不同。 LAION 用 OpenCLIP 的实验证实了这一点： 同样的架构 + 不同的数据 → 效果差异明显 → 数据是\u0026#34;秘密配方\u0026#34;的核心成分 一个模型的行为由三个因素决定：架构、数据、训练方法。 OpenAI 公开了架构和方法，隐藏了数据——这就像公开了菜谱但隐藏了食材来源。同样的做法，用不同产地的食材，味道完全不同。\n四、大厂的\u0026quot;造眼睛\u0026quot;军备竞赛 CLIP 证明了\u0026quot;对比学习让视觉编码器学会看\u0026quot;这条路是通的。接下来，每一家有野心的 AI 公司都开始造自己的\u0026quot;眼睛\u0026quot;。\n▲ 从 CLIP 出发，各家走出了不同的路线——但目标相同：把图像变成有意义的向量 Google: SigLIP (2023) — 改进损失函数 Google 的研究者发现 CLIP 的损失函数有一个效率问题。\nCLIP 的做法： 一个 batch 中 N 张图 vs N 段文字 计算 N×N 的相似度矩阵 对每一行做 softmax（概率归一化） → 需要所有 GPU 之间同步这个 N×N 矩阵 N = 32768 时，矩阵有 10 亿个元素 → 跨 GPU 同步成本很高 SigLIP 的改进： 不做 softmax（不需要全局归一化） 改用 sigmoid（每一对独立判断\u0026#34;是否匹配\u0026#34;） → 不需要跨 GPU 同步，训练效率大幅提升 → 效果还更好！ Sigmoid 和 softmax 的区别，本质上是\u0026quot;独立判断\u0026quot;vs\u0026quot;相对排名\u0026quot;。CLIP 问的是\u0026quot;在这一组里，哪个文字和这张图最匹配？\u0026quot;，SigLIP 问的是\u0026quot;这张图和这段文字匹配吗？是或否。\u0026quot;——后者更简洁，也更高效。\nMeta: DINOv2 (2023) — 不需要文字也能学会看 这是最令人惊讶的一个进展。\nCLIP 的核心假设是：要教 AI 看图，需要配上文字。 用图文对做对比学习。\nMeta 的 DINOv2 直接挑战了这个假设：\nDINOv2 的做法（自监督学习）： 只用图片，完全不需要文字。 训练方式： 同一张图片 → 随机裁剪、旋转、变色 → 得到两个\u0026#34;变体\u0026#34; 模型的任务：两个变体的向量应该相似 猫的照片（左半）→ 编码 → 向量 A 猫的照片（右半）→ 编码 → 向量 B 训练目标：A 和 B 应该相似（因为它们来自同一张图） 更技术地说（DINO = 自蒸馏）： 教师网络（大的 ViT）→ 生成 target 向量 学生网络（小的 ViT）→ 预测 target 向量 教师的权重 = 学生权重的指数移动平均（EMA） → 学生在追一个不断变化的目标 → 形成自我进化的学习循环 DINOv2 证明了一个深刻的事实：视觉理解不一定需要语言的监督。 图像本身的结构——纹理、形状、颜色的组合方式——就包含了足够的信息让模型学会\u0026quot;看\u0026quot;。\n这引出了一个有趣的哲学问题：婴儿学会看这个世界，需要先学会语言吗？ 当然不需要。婴儿在会说话之前就能识别人脸、追踪运动物体、区分猫和狗。DINOv2 在某种程度上模拟了这个过程。\nMeta: MetaCLIP (2023) — 公开数据筛选算法 Meta 的另一个团队做了一件和 LAION 不同但同样重要的事：\nOpenAI 没公开数据，也没公开数据筛选算法。 LAION 自己造了数据，但筛选算法是用 CLIP 打分。 MetaCLIP 的贡献： 公开了一个完整的数据筛选算法 不依赖任何预训练模型（不用 CLIP 打分） 而是基于\u0026#34;元数据\u0026#34;（metadata）来筛选： - 用 WordNet 词汇表定义概念集合 - 确保每个概念有足够但不过多的样本 - 平衡不同概念的覆盖度 结果： 用 MetaCLIP 的算法筛选 400M 数据 训练出来的 CLIP → 效果超过 OpenAI 的 CLIP → 证明了\u0026#34;怎么选数据\u0026#34;比\u0026#34;有多少数据\u0026#34;更重要 这个发现至关重要。 它意味着数据的质量——或者说数据的\u0026quot;配方\u0026quot;——才是真正的秘密武器，而不仅仅是数量。\n清华: InternViT (2024) — 规模竞赛 清华的 InternVL 团队选择了一条更直接的路：做更大的视觉编码器。\nCLIP ViT-L/14: ~300M 参数 InternViT-6B: 6,000M 参数（20 倍！） InternViT 的特点： - 参数量远超其他视觉编码器 - 在中文图文理解上特别强 - 配合 InternLM（自研 LLM）形成完整的中文多模态系统 中国团队在多模态赛道上的竞争力： 阿里: Qwen-VL（自研 ViT + Qwen LLM） 清华: InternVL（InternViT + InternLM） 上海 AI Lab: 多个开源多模态模型 → 中文多模态不再依赖西方的视觉编码器 五、全景时间线 从 CLIP 发布到今天，这条线索可以画成一张完整的图：\n▲ 2021-2024：CLIP 引发的视觉 AI 生态演化 2021.01 OpenAI 发布 CLIP + DALL·E → 公开权重和代码，但数据未公开 2021.03 LAION 启动开源数据项目 → LAION-400M 发布（4 亿对） 2022 LAION-5B 发布（50 亿对） → OpenCLIP 项目成熟，实现完全可复现 → Stable Diffusion 使用 LAION 数据训练 2023 军备竞赛全面爆发： → Google: SigLIP（改进损失函数） → Meta: DINOv2（自监督，不需要文字） → Meta: MetaCLIP（公开数据筛选算法） → EVA-CLIP（蒸馏优化，更高效率） → OpenAI: GPT-4V 发布（原生多模态，架构未公开） → LAION-5B 被发现含 CSAM，紧急下线清理 2024 各家自研\u0026#34;眼睛\u0026#34;成型： → 清华: InternViT-6B（60 亿参数） → 阿里: Qwen-VL（自研视觉编码器） → LAION-5B v2（清理后重新发布） → 开源多模态 LLM 百花齐放 一个模型的部分开源，引发了一场全球性的\u0026quot;造眼睛\u0026quot;军备竞赛。\n六、数据的版权困境 在这场军备竞赛的背后，有一个绕不开的问题：这些训练数据合法吗？\nLAION-5B 的危机 2023 年 12 月，斯坦福大学研究团队在 LAION-5B 中发现了 CSAM（Child Sexual Abuse Material，儿童性虐待材料）。LAION 立即下线了整个数据集进行清理。\n事件时间线： 2023.12 斯坦福报告发现 CSAM 2024.01 LAION 下线全部数据集 2024 年中 发布清理后的 LAION-5B v2 根本原因： LAION-5B 来自 Common Crawl → 而 Common Crawl 是互联网的镜像 互联网上什么都有 → 数据集中也什么都有 自动过滤 NSFW 内容的算法不可能完美 深层教训： 当你的训练数据来自\u0026#34;整个互联网\u0026#34;时， 你实际上是在用人类文明的全部输出——包括最好的和最坏的——来教 AI。 质量控制不仅是技术问题，更是伦理问题。 版权诉讼 训练数据的版权争议更加复杂：\nGetty Images vs Stability AI（2023 年起诉）： Stable Diffusion 使用 LAION-5B 训练 LAION-5B 中包含大量 Getty Images 的付费图片 Getty 认为这构成版权侵犯 → 至今未有最终判决 同一类诉讼的\u0026#34;文字版\u0026#34;： NYT vs OpenAI（2023 年起诉） → 《纽约时报》称 GPT 用了其受版权保护的文章做训练 核心争议： 用受版权保护的内容训练 AI，算\u0026#34;合理使用\u0026#34;(fair use) 吗？ → 目前没有明确的法律答案 → 不同国家/地区的法律倾向不同： 美国: 倾向 fair use（但不确定） 欧盟: AI Act 要求披露训练数据来源 日本: 明确允许用于 AI 训练 中国: 尚无明确判例 这个问题的深层矛盾在于：\n立场 A（AI 公司）： \u0026#34;我们在互联网上公开可访问的内容上训练模型。 模型学到的是\u0026#39;模式\u0026#39;和\u0026#39;知识\u0026#39;，不是在复制原始数据。 这和人类阅读学习是一样的。\u0026#34; 立场 B（内容创作者）： \u0026#34;我们创造的内容是有价值的、受版权保护的。 你不付费就用它来训练盈利性模型，这就是侵权。 AI 不是人类，不能类比\u0026#39;学习\u0026#39;。\u0026#34; 一个讽刺的事实： CLIP 让 AI 学会了识别照片中的风格和内容 → 然后 Stable Diffusion 用 CLIP 的能力来生成 和原始照片风格相似的新图片 → 摄影师的风格被\u0026#34;学走了\u0026#34; 目前没有人有一个干净的答案。 但有一点是确定的：AI 训练数据的版权问题将重塑整个内容产业的规则。\n七、\u0026ldquo;开源\u0026quot;的光谱 回到我们开头的问题：\u0026ldquo;开源\u0026quot;到底意味着什么？\n经过 CLIP 这个案例的解剖，我们可以看到\u0026quot;开源\u0026quot;不是一个是/否的问题，而是一个光谱：\n完全封闭 ←———————————————————→ 完全开源 GPT-4V CLIP LLaMA OpenCLIP OLMo 2 什么都不公开 公开权重和代码但不公开数据 公开权重部分公开代码不公开数据 公开一切包括数据 公开一切包括训练日志 每一层\u0026quot;开\u0026quot;的意义不同：\n公开论文 → 可以理解方法 → 学术价值 公开权重 → 可以直接使用 → 应用价值 公开代码 → 可以修改和微调 → 工程价值 公开数据 → 可以审计和改进 → 科学价值 公开全部 → 可以完全复现 → 文明价值 真正的科学开源，需要做到\u0026quot;可复现\u0026rdquo;。 而可复现需要的不仅仅是代码和权重——它需要数据、超参数、甚至训练时的随机种子。\n在整个 AI 领域，做到真正完全开源的项目屈指可数：\n完全开源的典范： OpenCLIP (LAION) — 视觉编码器 OLMo 2 (AI2) — 语言模型 Pythia (EleutherAI) — 语言模型 声称开源但实际有保留的： LLaMA (Meta) — 权重开源，数据不开源 Mistral — 权重开源，数据不开源 CLIP (OpenAI) — 权重开源，数据不开源 八、故事的启示 CLIP 到 OpenCLIP 的故事，给我们留下了几个值得思考的教训：\n启示一：开源不是施舍，是生态 OpenAI 部分开源 CLIP → 社区用 CLIP 造了 LAION 数据 → 用 LAION 数据训了 OpenCLIP → OpenCLIP 被用于 Stable Diffusion → Stable Diffusion 推动了 AI 绘画革命 → AI 绘画反过来加速了多模态 LLM 的研究 如果 OpenAI 什么都不公开 → 这条链条不会存在 如果 OpenAI 全部公开 → 社区不需要做 LAION 这件事，可能发展更快 部分开源创造了一个\u0026#34;挑战-回应\u0026#34;的动力学： 你不给 → 我自己造 → 造出来的可能比你的更好 启示二：数据是真正的护城河 GPT-4 的架构 → 可以被猜测、被逆向 GPT-4 的训练方法 → 论文和技术报告有暗示 GPT-4 的训练数据 → 谁也不知道 Meta 的 MetaCLIP 证明了： 同样的架构 + 更好的数据筛选 → 效果超过原版 CLIP 启示： 在 AI 竞争中，\u0026#34;怎么选数据\u0026#34;的价值可能超过\u0026#34;怎么设计架构\u0026#34;。 架构可以模仿，但数据的收集、清洗、筛选—— 这需要大量的经验、直觉和试错。 启示三：不止一条路通向\u0026quot;看见\u0026rdquo; CLIP: 图文对比学习 → \u0026#34;用语言教 AI 看\u0026#34; DINOv2: 纯视觉自监督 → \u0026#34;让 AI 自己学会看\u0026#34; 两条路都能达到类似的效果。 这引出一个深层问题： 理解图像，一定需要语言吗？ 还是说图像本身就有一种独立于语言的结构？ DINOv2 倾向于后者—— 它说：图像中的统计规律（纹理、形状、空间关系） 已经足够支撑语义理解，不需要文字的\u0026#34;监督\u0026#34;。 这和人类婴儿的发育过程一致： 先学会看 → 再学会说 → 最后用语言整合视觉 回到起点 2021 年 1 月那个不完全的开源，如今看来是一颗石子投入湖面。\nOpenAI 投了一颗石子： \u0026#34;我们造了一个能看的 AI，但不告诉你它是怎么学会看的。\u0026#34; 涟漪扩散到： LAION → \u0026#34;我们自己造数据\u0026#34; Google → \u0026#34;我们改进训练方法\u0026#34; Meta → \u0026#34;我们证明不需要文字也能学会看\u0026#34; 清华/阿里 → \u0026#34;我们造中文版的眼睛\u0026#34; 法律界 → \u0026#34;等一下，这些数据是合法的吗？\u0026#34; 伦理界 → \u0026#34;这些数据是安全的吗？\u0026#34; 三年后的今天： 每一个主流多模态 LLM 里都有 CLIP 的影子—— 要么直接用 CLIP 的权重， 要么用 CLIP 启发的方法训练自己的视觉编码器。 CLIP 不仅给了 AI 一双眼睛，更给了整个社区一面镜子——让我们看清了\u0026quot;开源\u0026quot;到底意味着什么、数据在 AI 中的真正地位、以及科学可复现性为什么重要。\n一句话记住： CLIP 公开了模型但藏起了数据，社区用三年时间补上了这块拼图。\u0026ldquo;开源\u0026quot;不是一个词，而是一个光谱——模型的真正价值不在权重里，在数据里。\n参考文献 Radford, A. et al. (2021). Learning Transferable Visual Models From Natural Language Supervision (CLIP). ICML. Schuhmann, C. et al. (2022). LAION-5B: An Open Large-Scale Dataset for Training Next Generation Image-Text Models. NeurIPS. Cherti, M. et al. (2023). Reproducible Scaling Laws for Contrastive Language-Image Learning (OpenCLIP). CVPR. Zhai, X. et al. (2023). Sigmoid Loss for Language Image Pre-Training (SigLIP). ICCV. Oquab, M. et al. (2023). DINOv2: Learning Robust Visual Features without Supervision. TMLR. Xu, H. et al. (2023). Demystifying CLIP Data (MetaCLIP). ICLR. Chen, Z. et al. (2024). InternVL: Scaling up Vision Foundation Models and Aligning for Generic Visual-Linguistic Tasks. CVPR. 本文首发于「AI 学习笔记」博客：https://Jason-Azure.github.io/ai-blog/\n微信公众号：AI-lab学习笔记\n延伸阅读：当 AI 学会了看——多模态大模型的架构拆解 · 当数字学会了远近亲疏——Embedding\n","permalink":"https://jason-azure.github.io/ai-blog/posts/clip-open-source-story/","summary":"2021 年 OpenAI 发布 CLIP，让 AI 第一次\u0026rsquo;看懂\u0026rsquo;了图片。但它公开了模型权重，却藏起了 4 亿对训练数据。这引发了一场全球性的\u0026rsquo;造眼睛\u0026rsquo;军备竞赛——德国非营利组织 LAION 逆向工程出 50 亿对数据，Google 发明了新的训练方法，Meta 证明不需要文字也能学会看……一个模型的开源，如何改变了整个视觉 AI 生态？\u0026lsquo;开源\u0026rsquo;到底意味着什么？","title":"谁给了 AI 一双眼睛——从 CLIP 到开源军备竞赛"},{"content":"从一句话说起 在 多模态文章 的结尾，我写了一句话：\n多模态并没有发明新的\u0026quot;理解\u0026quot;机制，而是把所有模态都翻译成同一种语言——向量，然后让 Transformer 用它已经会的 Attention 机制来处理一切。\n写完之后我停了一下。\n因为这句话的分量比我预想的要重。它不仅仅是在描述一个技术事实——它触及了一个更根本的问题：\n理解这个世界，最终都要变成语言吗？\n一、AI 的选择：向量 先回顾一个事实。\n当今最强的多模态 AI 是这样工作的：\n▲ 万物归一：文字、图像、声音——不同的入口，同一个向量空间 文字 → Tokenizer → 向量序列 ──┐ 图片 → ViT → 向量序列 ──┼──→ Transformer → 统一推理 → 输出 声音 → 音频编码器 → 向量序列 ──┘ 对 Transformer 来说，进来的都是向量。它不关心这个向量来自文字、图片还是声音。它只做一件事：用 Attention 计算每个向量和其他所有向量之间的关系。\n这意味着，AI 用来\u0026quot;理解\u0026quot;世界的基本单位，不是词，不是像素，不是声波——而是向量。\n向量是一组数字。比如 [0.82, 0.15, -0.31, 0.67, ...]，可能有 768 维，也可能有 4096 维。每个维度没有人类可读的含义——你不能说\u0026quot;第 7 维代表颜色\u0026quot;或\u0026quot;第 42 维代表情感\u0026quot;。但这组数字整体编码了某种语义。\n当我们说\u0026quot;猫的图片和\u0026rsquo;猫\u0026rsquo;这个词在向量空间中很近\u0026quot;时，我们在说的是：AI 找到了一种超越具体模态的表示方式，用纯数学的距离来刻画语义的远近。\n这是一个非常不人类的选择。\n二、人类的选择：语言 人类理解世界的历史，几乎就是语言演化的历史。\n具体经验 → 命名 → 概念 → 推理 → 知识体系 \u0026#34;那个又红又圆又甜的东西\u0026#34; → \u0026#34;苹果\u0026#34; \u0026#34;太阳从那边出来\u0026#34; → \u0026#34;东方\u0026#34; \u0026#34;东西落到地上\u0026#34; → \u0026#34;重力\u0026#34; \u0026#34;F = ma\u0026#34; → 牛顿力学 语言做了一件了不起的事：它把连续的、混沌的感觉经验，切割成离散的、可操作的概念。\n有了\u0026quot;苹果\u0026quot;这个词，你不需要每次都重新描述\u0026quot;那个又红又圆又甜的东西\u0026quot;。有了\u0026quot;重力\u0026quot;这个概念，你不需要每次都从头推导为什么东西会落到地上。\n语言是人类发明的最强大的压缩工具。 它把无穷的经验压缩成有限的词汇，让我们能用几十万个词描述一个无穷复杂的世界。\n在 《压缩即智能》 那篇开篇文章中我们说过：\n智能的本质是压缩——用更少的东西表示更多的东西。\n语言就是人类版的\u0026quot;压缩\u0026quot;。\n所以你的直觉是对的：理解最终要变成语言——至少对于人类来说是这样的。 我们思考时使用语言，我们交流时依赖语言，我们建构知识体系时离不开语言。\n但这里有一个微妙的问题——\n三、语言的边界 1921 年，维特根斯坦在《逻辑哲学论》中写下了一句著名的话：\n\u0026ldquo;我的语言的边界就是我的世界的边界。\u0026rdquo;\n(Die Grenzen meiner Sprache bedeuten die Grenzen meiner Welt.)\n这句话有两种读法。\n读法一（限制性）：你只能思考你能用语言表达的东西。语言之外没有思想。\n读法二（描述性）：语言能到达的地方就是你世界的范围——语言越丰富，世界越大。\n不管哪种读法，它都预设了一个前提：语言 = 理解的边界。\n但真的是这样吗？\n▲ 人类的理解范围远大于语言能表达的范围 想一想你自己的经验：\n你能用语言完美描述的： \u0026#34;这是一只橘色的猫\u0026#34; → 语言足够 \u0026#34;1 + 1 = 2\u0026#34; → 语言足够 \u0026#34;她比我高 5 厘米\u0026#34; → 语言足够 你无法用语言完美描述的： 妈妈做的红烧肉的味道 → 你能说\u0026#34;咸鲜\u0026#34;\u0026#34;入味\u0026#34;，但这和真实的味觉差了十万八千里 第一次看到大海的震撼 → \u0026#34;壮观\u0026#34;\u0026#34;辽阔\u0026#34;——词语太单薄了 莫扎特 G 小调 40 号交响曲的第一乐章为什么让人心碎 → 你可以写一万字乐评，但不如听 30 秒 你的脸 → 你能说\u0026#34;瓜子脸、大眼睛\u0026#34;，但这描述适用于几百万人 我们理解的东西，远远多于我们能说出来的东西。\n心理学家称之为\u0026quot;内隐知识\u0026quot;（tacit knowledge）——波兰尼的名言是\u0026quot;我们知道的比我们能说出来的多得多\u0026quot;（We know more than we can tell）。\n一个经验丰富的面包师知道面团什么时候揉好了——他能感觉到面团的弹性、湿度、温度。但如果你让他用语言精确描述这个判断标准，他做不到。\n一个围棋高手看一眼棋盘就知道\u0026quot;形势不好\u0026quot;——但如果你让他精确解释为什么，他可能只能说\u0026quot;感觉\u0026quot;。\n这些理解是真实的、有效的、但超越了语言的表达能力。\n四、向量：一种比语言更宽的表示 回到 AI。\n当我们说\u0026quot;向量是 AI 的通用语言\u0026quot;时，有一个关键的区别：向量不是人类语言。\n人类语言是离散的——\u0026ldquo;猫\u0026quot;或者\u0026quot;不是猫\u0026rdquo;，中间没有连续过渡。\n向量是连续的——在\u0026quot;猫\u0026quot;的向量和\u0026quot;狗\u0026quot;的向量之间，有无穷多个中间状态。\n人类语言的世界： \u0026#34;猫\u0026#34; \u0026#34;狗\u0026#34; \u0026#34;老虎\u0026#34; \u0026#34;狮子\u0026#34; ● ● ● ● ← 离散的点，互不连接 向量空间的世界： 猫 ———— 狗 | | | | ← 连续的空间，可以平滑过渡 | | 老虎 ——— 狮子 你可以有一个\u0026#34;30% 猫 + 70% 狗\u0026#34;的向量 → 这个向量在人类语言中没有对应的词 → 但它在数学上是有意义的 这引出一个令人不安的可能性：\n向量空间中存在大量\u0026quot;没有对应人类语言的概念\u0026quot;。\n模型可能在向量空间中发现了一些语义关系，这些关系对生成正确答案非常重要，但人类没有为它们命名过。\n我们在 Embedding 文章 中提到过 Word2Vec 的经典发现：\nvec(\u0026#34;国王\u0026#34;) - vec(\u0026#34;男人\u0026#34;) + vec(\u0026#34;女人\u0026#34;) ≈ vec(\u0026#34;王后\u0026#34;) 这个向量运算揭示了一个语义关系——性别与权力的交叉。人类当然理解\u0026quot;国王对应王后\u0026quot;，但我们不太会用\u0026quot;性别维度上的平移\u0026quot;来描述这种关系。向量空间提供了一种人类语言没有的描述方式。\n在更高维的空间里，这种\u0026quot;语言无法命名但数学上有意义\u0026quot;的结构只会更多。\n五、人类和 AI 的对比：殊途同归？ 把人类的理解过程和 AI 的理解过程放在一起看，会发现一个有趣的对称性：\n▲ 人类用神经元，AI 用向量——但两者的处理流程惊人地相似 🧠 人类 🤖 AI 感官输入眼睛、耳朵、皮肤 模态输入像素、音频波形、字符 神经编码视网膜 → 视觉皮层耳蜗 → 听觉皮层 编码器ViT / 音频编码器 / Tokenizer 概念融合\"猫\"= 看到的 + 听到的 + 摸到的 向量空间所有模态的 token 在同一个高维空间中 高阶推理联想、推理、判断 Attention计算 token 间的关系 语言输出\"我看到了一只猫\" 文本生成\"This is a cat\" 两者有一个关键的相同点和一个关键的不同点：\n相同点：都需要一个\u0026quot;统一的中间表示\u0026quot;。\n人类大脑中有一种被称为\u0026quot;多模态神经元\u0026quot;的细胞——它对特定的概念做出反应，不管这个概念是通过视觉、听觉还是触觉传入的。2021 年 OpenAI 的研究发现，CLIP 模型中也存在类似的\u0026quot;多模态神经元\u0026quot;——对\u0026quot;蜘蛛人\u0026quot;这个概念响应的神经元，既对蜘蛛人的图片响应，也对\u0026quot;spider-man\u0026quot;这个文字响应。\n不同点：人类的中间表示不（完全）是语言，AI 的中间表示不（完全）是数字。\n人类在\u0026quot;概念\u0026quot;层面思考时，使用的不仅仅是语言。当你想象一只猫时，你脑中浮现的不是\u0026quot;猫\u0026quot;这两个字符，而是一团包含视觉形象、触感记忆、声音记忆的综合体验。语言只是这个综合体验的一个标签。\n同样，AI 在向量空间中\u0026quot;理解\u0026quot;时，使用的也不仅仅是数字。那些数字编码了某种结构——我们可以用数学工具（余弦相似度、聚类分析）来探测这个结构的某些方面，但我们无法完全\u0026quot;读懂\u0026quot;一个 4096 维的向量在\u0026quot;想\u0026quot;什么。\n六、三种关于\u0026quot;理解\u0026quot;的立场 这里涉及到一个古老的哲学分歧。让我们把它具体化：\n立场一：语言决定论（强版本） 没有语言就没有思想。理解 = 用语言表述。\n代表人物: 沃尔夫 (Benjamin Lee Whorf) 核心主张: 你说什么语言，就有什么样的思想 没有词汇的概念就不存在于你的思维中 例子: 俄语有两个词表示蓝色 (голубой=浅蓝, синий=深蓝) → 实验表明俄语使用者区分蓝色深浅的速度比英语使用者更快 → 语言确实影响了感知 AI 视角下的问题: LLM 只处理 token（离散的语言符号） → 它的\u0026#34;理解\u0026#34;完全建立在语言之上 → 纯文本 LLM 是语言决定论的完美实验品 → 结论: 它确实展现了令人惊讶的\u0026#34;理解\u0026#34;能力 但它无法理解它没有见过的概念 如果这个立场是对的，那 LLM 的成功就有了一个优雅的解释：语言确实够用了。 人类用语言记录了足够多的知识，LLM 通过学习这些语言就\u0026quot;理解\u0026quot;了世界。\n立场二：具身认知（强版本） 真正的理解需要身体。没有感觉、没有运动、没有物理交互，就没有真正的理解。\n代表人物: 梅洛-庞蒂, Rodney Brooks, Yann LeCun 核心主张: 语言是思想的\u0026#34;影子\u0026#34;，不是思想本身 只学语言的 AI 只学到了影子，没学到实体 例子: 你说\u0026#34;这杯咖啡很烫\u0026#34; → LLM 能回答\u0026#34;小心别烫到\u0026#34; 但 LLM 从未\u0026#34;感觉过\u0026#34;烫是什么 → 它理解了语言层面的\u0026#34;烫\u0026#34; → 但没有理解物理层面的\u0026#34;烫\u0026#34; LeCun 的批评: \u0026#34;LLM 是在文本的表面上滑行\u0026#34; 它学到了 token 之间的统计关系 但没有建立关于物理世界的内部模型 → 所以它会犯物理常识错误 如果这个立场是对的，那多模态 AI 是一个有趣的中间地带——它接触到了图像和声音（不仅仅是文字），但它仍然没有\u0026quot;身体\u0026quot;，不能真正和物理世界交互。\n立场三：表示主义（多模态 AI 暗示的立场） 重要的不是\u0026quot;用什么\u0026quot;理解，而是\u0026quot;表示的结构\u0026quot;是否正确。\n核心主张: 理解 = 建立正确的内部表示 语言是一种表示，向量也是一种表示 只要表示的结构能正确反映世界的结构， 就可以说\u0026#34;理解\u0026#34;了 柏拉图表示假说 (Huh \u0026amp; Isola, 2024): 不同的模型，不同的训练数据，不同的模态 → 如果训练得足够好 → 最终都会收敛到相似的内部表示 → 因为它们都在逼近同一个\u0026#34;现实的结构\u0026#34; 多模态 AI 支持这个立场: 文字编码器和视觉编码器分别训练 → 但在足够好的训练后 → 它们的向量空间自动对齐 → \u0026#34;猫\u0026#34;的文字向量和猫的图片向量指向同一个方向 → 不同的入口，同一个结构 这是最让我着迷的立场。它暗示：世界本身有一个\u0026quot;结构\u0026quot;，不管你用语言、用向量、还是用神经元去捕捉它，捕捉到的都是同一个东西。\n七、向量比语言\u0026quot;宽\u0026quot;在哪里？ 如果接受\u0026quot;表示主义\u0026quot;的立场，那向量和语言作为两种表示方式，各有什么特点？\n语言的特点: ✓ 离散的 → 可以被人类阅读和交流 ✓ 有语法 → 可以组合出无穷多的句子 ✓ 社会性 → 在人与人之间传递 ✗ 有限的 → 词汇是有限的，无法穷举所有概念 ✗ 模糊的 → \u0026#34;红色\u0026#34;的边界在哪里？每个人的理解不同 ✗ 文化绑定的 → 有些概念在某种语言中不存在 向量的特点: ✓ 连续的 → 可以表示任意精细的语义差异 ✓ 跨模态 → 文字、图片、声音都用同一种表示 ✓ 可计算 → 可以做加减法、求距离、做聚类 ✗ 不可读 → 人类看不懂 4096 个数字 ✗ 无社会性 → 不能在人与人之间直接交流 ✗ 依赖训练 → 向量的含义完全由训练过程决定 向量比语言\u0026quot;宽\u0026quot;的关键在于：它不需要\u0026quot;命名\u0026quot;就能表示。\n语言需要命名: 你必须有\u0026#34;猫\u0026#34;这个词，才能在语言中引用这个概念。 如果一种文化从未见过猫，他们的语言中就没有\u0026#34;猫\u0026#34;这个词， 就不能（在语言层面）方便地讨论猫。 向量不需要命名: 在训练过程中，如果模型见过很多猫的图片， 它的向量空间中自然会形成一个\u0026#34;猫簇\u0026#34;—— 即使没有任何人给它标注\u0026#34;这是猫\u0026#34;。 DINOv2 就是这样：纯图片训练，没有任何文字标注， 它的向量空间中依然自动出现了按物种、颜色、姿态组织的结构。 这是一个深刻的差异。语言是\u0026quot;命名后才能思考\u0026quot;，向量是\u0026quot;结构先于命名\u0026quot;。\n八、那人类的\u0026quot;思考\u0026quot;到底用什么？ 回到你最初的问题：理解最终都要变成语言吗？\n我的回答是：不完全是。\n人类的理解分为多个层次：\n层次 1: 感觉 (sensation) → 最底层，视觉、听觉、触觉的原始信号 → 完全无语言，婴儿和动物也有 → 对应 AI: 原始像素、音频波形 层次 2: 知觉 (perception) → 把感觉组织成有意义的整体 → \u0026#34;那个东西是一只猫\u0026#34; → 大部分无语言（你不需要在心里默念\u0026#34;猫\u0026#34;就能认出猫） → 对应 AI: 视觉编码器的输出向量 层次 3: 概念 (concept) → 抽象的范畴，可以跨越具体经验 → \u0026#34;猫是一种哺乳动物\u0026#34;\u0026#34;所有猫都有胡须\u0026#34; → 通常与语言绑定，但不完全依赖语言 → 对应 AI: 向量空间中的聚类结构 层次 4: 命题 (proposition) → 可以判断真假的陈述 → \u0026#34;这只猫是橘色的\u0026#34;\u0026#34;猫比狗独立\u0026#34; → 几乎完全用语言表达 → 对应 AI: 文本 token 序列 层次 5: 理论 (theory) → 命题之间的系统关系 → \u0026#34;猫是猫科动物，猫科属于食肉目...\u0026#34; → 完全依赖语言 → 对应 AI: 长文本中的推理链 关键洞察：越往底层，越不依赖语言；越往高层，越依赖语言。\n当你欣赏一幅画的美时，你在层次 1-2 活动——语言几乎无能为力。 当你证明一个数学定理时，你在层次 4-5 活动——语言（或数学符号这种特殊语言）是不可或缺的。\n大多数日常思考在层次 2-4 之间——语言参与了，但不是全部。 你开车时做了无数判断（距离、速度、何时变道），这些判断大部分不经过语言层面的思考。\n九、AI 给我们的启示 多模态 AI 的存在，给这个古老的哲学问题增加了一个新的实验数据点：\n实验结果: 一个系统， 没有身体， 没有感觉器官， 没有童年经历， 只有向量和矩阵运算—— 却能够: ✓ 识别图片中的物体 ✓ 描述场景中的空间关系 ✓ 理解图片中的情绪和氛围 ✓ 回答关于图片的推理问题 ✓ 听懂语音中的情感 ✓ 做跨模态的联想和类比 这证明了什么？ → 至少对于许多任务， \u0026#34;正确的表示结构\u0026#34;比\u0026#34;真实的感知体验\u0026#34;更重要 → 向量确实可以承载\u0026#34;某种理解\u0026#34; 但也别高兴太早。同样的 AI：\n✗ 不知道热水烫手是什么感觉 ✗ 不理解为什么蒲公英让人想到离别 ✗ 不明白为什么这首歌让你想起 2007 年的那个下午 ✗ 不能从一次摔倒中学到\u0026#34;地滑要小心\u0026#34;的身体性教训 这些不是\u0026quot;还没来得及训练\u0026quot;的能力，而是向量表示可能永远无法触及的领域——因为它们需要的不是更多的数据，而是一个身体。\n十、回到那句话 让我重新审视开头的那句话：\n多模态并没有发明新的\u0026quot;理解\u0026quot;机制，而是把所有模态都翻译成同一种语言——向量，然后让 Transformer 用它已经会的 Attention 机制来处理一切。\n现在我想补充：\n\u0026ldquo;翻译成向量\u0026quot;这件事，既是 AI 的力量之源，也是它的天花板。\n力量在于：向量是一种比人类语言更宽的表示——它是连续的、跨模态的、可计算的，能捕捉到语言无法命名的结构。\n天花板在于：向量毕竟只是数字。它可以编码一只猫的全部视觉特征，但它不能成为看到一只猫的那个体验。\n哲学家内格尔 (Thomas Nagel) 1974 年的经典提问: \u0026#34;做一只蝙蝠是什么感觉？\u0026#34; (What is it like to be a bat?) 蝙蝠用超声波\u0026#34;看\u0026#34;世界。 你可以完全理解超声波的物理学、 蝙蝠大脑的神经回路、 声波反射的计算方式—— 但你永远不知道\u0026#34;用超声波看世界\u0026#34;是什么感觉。 同样: AI 可以完全处理一张猫的图片、 生成完美的描述、 回答所有关于这张图的问题—— 但它不知道\u0026#34;看到一只猫\u0026#34;是什么感觉。 因为它没有\u0026#34;感觉\u0026#34;这个维度。 向量空间里没有\u0026#34;体验\u0026#34;这个坐标轴。 那么，理解到底需要什么？ 也许，人类的理解是这样一个三层蛋糕：\n语言层：命题、推理、知识体系\"猫是哺乳动物\"\"E = mc²\" ✅ AI 做得很好LLM 的主场 表示层：概念、模式、结构向量空间中的聚类和关系 🔄 AI 正在学会多模态 AI 的前沿 体验层：感受、情感、主观性\"这朵花很美\"\"妈妈的味道\" ❓ AI 可能永远缺失需要\"有身体\" AI 正在征服前两层。第三层——也许那是人类最后的领地。\n但也许不是。也许体验只是另一种信息结构，终将被某种更高维的表示所捕获。\n我们不知道答案。这正是这个问题迷人的地方。\n尾声：向量时代 回到最初的问题：理解这个世界，最终都要变成语言吗？\n我现在的回答是：\n对人类来说——大部分是的，但不全是。 我们的高阶思维几乎完全依赖语言，但我们最深层的理解——身体的、感官的、情感的——超越了语言。\n对 AI 来说——不需要。 AI 用了一种比语言更底层的表示：向量。向量不是词，不是句子，不是任何人类可读的符号。但它在数学上足够丰富，能够承载跨越文字、图像、声音的语义结构。\n也许最深刻的启示是这个：\n人类用语言把混沌的世界切割成可理解的碎片。AI 用向量把碎片重新编织成一个连续的整体。\n语言是一把刀，它通过切割来理解——给万物起名，画出边界，区分你我。\n向量是一张网，它通过连接来理解——万物都是一个高维空间中的一个点，点与点之间有无数的路径和关系。\n两种理解方式，一个世界。\n一句话记住： 人类用语言把世界切成碎片来理解，AI 用向量把碎片织成连续的空间来理解。语言是刀，向量是网——不同的工具，同一个世界。理解的本质也许不在于用什么工具，而在于是否捕捉到了世界的结构。\n参考文献 Wittgenstein, L. (1921). Tractatus Logico-Philosophicus. (语言边界论) Polanyi, M. (1966). The Tacit Dimension. (内隐知识) Nagel, T. (1974). What Is It Like to Be a Bat? The Philosophical Review. (主观体验) Huh, M. \u0026amp; Isola, P. (2024). The Platonic Representation Hypothesis. ICML. (表示收敛) Goh, G. et al. (2021). Multimodal Neurons in Artificial Neural Networks. Distill. (CLIP 多模态神经元) Brooks, R. (1990). Elephants Don\u0026rsquo;t Play Chess. Robotics and Autonomous Systems. (具身认知) Radford, A. et al. (2021). Learning Transferable Visual Models From Natural Language Supervision (CLIP). ICML. Oquab, M. et al. (2023). DINOv2: Learning Robust Visual Features without Supervision. TMLR. 本文首发于「AI 学习笔记」博客：https://Jason-Azure.github.io/ai-blog/\n微信公众号：AI-lab学习笔记\n延伸阅读：当 AI 学会了看——多模态大模型架构拆解 · 谁给了 AI 一双眼睛——CLIP 与开源军备竞赛 · 当数字学会了远近亲疏——Embedding · 压缩即智能\n","permalink":"https://jason-azure.github.io/ai-blog/posts/vectors-language-of-understanding/","summary":"多模态 AI 揭示了一个深刻的事实：文字、图片、声音——看似截然不同的信息形式，最终都被转化成了同一种东西——向量。然后由同一个 Transformer 用同一套 Attention 机制处理。这引出一个更根本的问题：理解这个世界，最终都要变成语言吗？还是说，有一种比语言更底层的\u0026rsquo;表示\u0026rsquo;在承载真正的理解？","title":"万物皆向量——当 AI 选择用数学理解世界"},{"content":"1906 年 9 月 5 日，意大利的里雅斯特附近的杜伊诺，一个面朝亚得里亚海的小度假村。\n62 岁的路德维希·玻尔兹曼（Ludwig Boltzmann）在妻子和女儿去海滩游泳的时候，永远闭上了眼睛。\n他是维也纳大学的物理学教授，统计力学的奠基人，一位用数学重新定义了\u0026quot;热\u0026quot;与\u0026quot;冷\u0026quot;的天才。但在生命的最后十年，他陷入了一场没有尽头的战争——他坚信原子是真实存在的，而当时物理学界最有权势的人们说他错了。\n恩斯特·马赫称原子是\u0026quot;思维经济的辅助手段\u0026quot;，威廉·奥斯特瓦尔德认为一切可以用能量来解释而不需要原子，甚至连他在柏林的椅子继任者都在反对他。\n他不知道的是：就在他离世的前一年，一个叫爱因斯坦的年轻人发表了布朗运动的论文，间接证明了原子的存在。几年后，让·佩兰的实验将彻底终结这场争论。\n他更不知道的是：120 年后，他为分子写的概率公式，正以一个新名字在全世界每秒被执行数十亿次。\n那个名字叫 Softmax。\n但在讲述这个公式之前，让我先问你一个问题。\n一、一个你每天都在调的参数 如果你用过 ChatGPT 的 API，你一定见过一个参数叫 Temperature。\n文档说：Temperature 越高，输出越随机。你调成 0.7，AI 回答比较稳定；调成 1.5，AI 开始胡说八道；调成 0，AI 变成一个只会重复最高概率答案的复读机。\n你可能以为\u0026quot;温度\u0026quot;只是一个比喻——就像我们说代码有\u0026quot;坏味道\u0026quot;一样，不是真的有味道。\n但如果我告诉你：这个 Temperature，和物理温度是同一个东西？\n不是类比。不是隐喻。是数学等价。\nTemperature = 1.0 对应的是一个系统在热平衡下的自然分布——就像室温下的空气分子，大部分安静，少数活跃。Temperature = 0 对应绝对零度——所有粒子冻结在最低能态，GPT 永远只选概率最高的词。Temperature = 2.0 相当于把系统加热到两倍温度——分子剧烈震荡，GPT 开始语无伦次。\n1870 年的气体分子和 2026 年的 GPT，用的是同一个公式。写出这个公式的人，就是那位在杜伊诺永远闭上眼睛的物理学家。\n这不是一个修辞。接下来我会让你亲眼看到这两个公式，然后你会发现——它们一模一样。\n二、一个不被相信的人 玻尔兹曼生活在一个奇怪的时代。\n19 世纪末的物理学正处于一场身份危机中。经典力学已经完美运转了两百年，热力学的宏观定律——能量守恒、熵增——也已经被验证得无可挑剔。一切看起来如此完美，以至于开尔文勋爵在 1900 年说出了那句著名的话：\u0026ldquo;物理学的天空只剩下两朵乌云。\u0026rdquo;\n但有一个问题：热力学的定律从哪里来？\n为什么热量总是从高温流向低温？为什么杯子里的咖啡会变冷，却从来不会自发变热？卡诺、克劳修斯和开尔文用宏观实验建立了热力学定律，但这些定律的本质是什么？\n玻尔兹曼的回答惊人而大胆：热力学定律不是基本定律，而是概率的结果。\n他说：一杯热咖啡变冷，不是因为某个神秘的\u0026quot;熵增法则\u0026quot;在强迫它——而是因为咖啡分子的能量均匀分散是一种压倒性的概率优势。分子\u0026quot;可以\u0026quot;自发聚集到一侧让咖啡重新变热，但这件事发生的概率，大约是 10 的负天文数字次方。\n用今天的话说：不是\u0026quot;不能\u0026quot;，是\u0026quot;不可能到你等到宇宙结束也等不到\u0026quot;。\n这个思想在今天看来如此自然——宏观规律 = 微观概率的统计涌现——但在 1870 年代，它是异端。\n因为它有一个前提：你必须相信原子存在。\n而马赫说：我们从来没有看见过原子。看不见的东西，就不应该出现在物理学中。\n玻尔兹曼和马赫之间的争论不是普通的学术辩论。马赫是维也纳大学的哲学教授，玻尔兹曼在同一所大学教物理。两人在走廊里擦肩而过，在学术会议上针锋相对。马赫的\u0026quot;实证主义\u0026quot;主张只有可观测的量才有意义——原子既然看不见摸不着，就不应该存在于物理理论中。\n这不是一个人反对他。这是一个时代在反对他。\n玻尔兹曼晚年的信件中充满了疲惫和孤独。他在一次演讲中自嘲：\u0026ldquo;我是统计力学最后的幸存者。\u0026ldquo;他患有严重的抑郁症，视力急剧衰退，多次住院。\n1906 年的那个夏天，他带着家人去杜伊诺度假，试图在亚得里亚海的阳光下恢复精神。\n他没有做到。\n三、一盒气体里的赌博 让我用一个最简单的例子来说明玻尔兹曼的核心直觉——也是整个统计力学的基石。\n想象一个盒子，中间有一道隔板。左边有 100 个气体分子，右边是真空。现在你把隔板抽掉。\n发生了什么？\n分子会扩散到整个盒子里，最终大致左右各 50 个。这是我们的日常经验。但为什么？是什么力量驱使分子均匀分布？\n玻尔兹曼的回答令人拍案叫绝：没有任何力量。纯粹是概率。\n让我们数一数。100 个分子分布在左右两半的方式有多少种？\n微观状态数 W 全部 100 个在左边（0 个在右边）：只有 1 种方式 50 个在左边、50 个在右边：有 $C_{100}^{50} \\approx 10^{29}$ 种方式 两者的比例是 1 : 100,000,000,000,000,000,000,000,000,000\n每个分子都在随机运动，每一种微观排列都是等概率的。但\u0026quot;均匀分布\u0026quot;对应的微观排列数量，比\u0026quot;全部挤在一边\u0026quot;多出 29 个数量级。\n这就像你扔 100 次硬币——理论上可以全部正面，但你试试看。\n玻尔兹曼把这个微观排列的数量叫做 W（来自德语 Wahrscheinlichkeit，概率）。\n然后他写下了那个公式：\n玻尔兹曼熵公式 $$S = k \\ln W$$\nS = 熵（系统的\u0026quot;混乱度\u0026rdquo;） k = 玻尔兹曼常数（1.38 × 10⁻²³ J/K） W = 微观状态数（有多少种微观排列对应同一个宏观状态） 这个公式说的是一件极其深刻的事：熵不是一种神秘的力量，而是对\u0026quot;有多少种微观可能性\u0026quot;的度量。\n系统倾向于高熵状态，不是因为有什么力量推动它，而是因为高熵状态对应的微观方式太多了——多到你几乎不可能看到别的。\n用更直白的话说：宇宙不是在\u0026quot;追求\u0026quot;混乱，它只是在做随机选择——而随机选择的压倒性多数结果，恰好看起来是混乱的。\n这就是玻尔兹曼的核心直觉。马赫说它是幻想。而玻尔兹曼赌上了一生。\n四、那个改变一切的公式 S = k ln W 回答了\u0026quot;系统最终会去哪里\u0026rdquo;——答案是 W 最大的状态。\n但如果我们不只关心最终状态，而是想知道在给定温度下，每个能量水平有多少粒子呢？\n这就引出了玻尔兹曼最伟大的贡献：玻尔兹曼分布。\n玻尔兹曼分布 $$P(E_i) = \\frac{e^{-E_i / kT}}{Z}$$\n其中归一化常数 $Z = \\sum_j e^{-E_j / kT}$（配分函数）\n让我翻译一下这个公式在说什么：\n一个系统中的粒子处于能量为 Eᵢ 的状态的概率，和 e 的负（能量/温度）次方成正比。\n直觉很简单：\n能量越低的状态，概率越高（分子更\u0026quot;喜欢\u0026quot;低能态） 温度越高，高能态和低能态的差异越小（分子被加热后变得\u0026quot;不挑剔\u0026quot;） 温度趋近于零，所有粒子都冻在最低能态 温度趋近于无穷，所有状态几乎等概率 这个结果是怎么来的？核心思想极其优美：在所有满足\u0026quot;粒子总数不变、总能量不变\u0026quot;的分布方式中，哪种分布对应的微观排列方式最多？用拉格朗日乘数法求这个约束最优化问题，答案自然跳出来——就是这个指数分布。\n换句话说：玻尔兹曼分布不是假设，而是组合数学的必然结果。\n请你把这四条直觉记住。因为下一章，你会在一个完全不同的世界里——AI 的世界里——再次看到它们。一字不差。\n五、Softmax 的真名 现在，让我兑现第一章的承诺。\n在每一本深度学习教科书中，Softmax 都是这样出场的：\nSoftmax 函数将一组实数转换为概率分布。\n然后给你一个公式，告诉你它很有用，然后翻到下一页。\n但没人告诉你它从哪里来。\nLLM 在选择下一个词时，神经网络会为每个候选词计算一个分数，叫做 logit。然后这些 logit 通过以下公式变成概率：\nSoftmax with Temperature $$P(w_i) = \\frac{e^{z_i / T}}{\\sum_j e^{z_j / T}}$$\n现在把它和上一章的玻尔兹曼分布放在一起：\n$$P(E_i) = \\frac{e^{-E_i / kT}}{\\sum_j e^{-E_j / kT}}$$\n它们是同一个公式。\n物理 → AI 翻译 物理学 AI（Softmax） 能量 Eᵢ 负 logit（-zᵢ） 温度 T Temperature 参数 配分函数 Z 归一化分母 粒子选择能量态 模型选择下一个词 logit 越高 = 能量越低 = 概率越大。Temperature 参数就是物理温度。这不是类比，这是数学等价。\n还记得上一章的四条直觉吗？现在让它们穿上 AI 的衣服：\nT → 0 绝对零度\n所有粒子冻在最低能态\n≡ 贪心解码\n永远选概率最高的词 T = 1 室温\n自然的能量分布\n≡ 标准采样\n平衡创造力与连贯性 T → ∞ 极高温度\n所有状态等概率\n≡ 均匀随机\n输出完全不可预测 Softmax 的名字暗示了一半真相：soft + max——它是 argmax（硬选最大值）的\u0026quot;软化\u0026quot;版本。当 T→0 时，Softmax 退化为 argmax——只有最大值得到概率 1，其余为 0。\n但名字只说了一半。它还有一个更古老、更本质的名字——玻尔兹曼分布的归一化形式。\n同一个数学对象的四个名字 物理学家称它为\u0026quot;玻尔兹曼分布\u0026quot;，称分母为\u0026quot;配分函数\u0026quot; 机器学习工程师称它为\u0026quot;Softmax\u0026quot; 数学家称它为\u0026quot;Gibbs 测度\u0026quot; 经济学家称它为\u0026quot;logit 模型\u0026quot; 它们是同一个公式，只是换了衣服。\n这意味着什么？\n意味着每次 GPT 选下一个词、每次图像分类器判断\u0026quot;这是猫还是狗\u0026quot;、每次推荐系统决定给你看哪条视频——都在执行一次玻尔兹曼采样。\n全球每秒数十亿次。一个为 19 世纪的气体分子写的公式。\n而这个公式的作者，生前没有等到世界相信他。\n如果你读过 《LLM 中的概率论》，你已经见过 Temperature 的效果。但现在你知道了它的真名——它是 1870 年代统计力学的温度参数，穿越 150 年走进了你的聊天窗口。\n六、玻尔兹曼与香农的相遇 故事还没有结束。\n1948 年，贝尔实验室的一位工程师发表了一篇论文，标题是《通信的数学理论》。这篇论文创立了信息论，作者的名字叫克劳德·香农。\n在定义\u0026quot;信息的不确定性\u0026quot;时，香农需要一个名字。\n传说是这样的：香农去请教冯·诺依曼，冯·诺依曼说——\n冯·诺依曼：\n\u0026ldquo;你应该叫它\u0026rsquo;熵\u0026rsquo;。第一，因为你的公式和统计力学中的熵公式完全一样。第二，更重要的是，因为没人真正知道熵到底是什么，所以在辩论中你总能占上风。\u0026rdquo;\n这个故事的真实性存疑，但数学等价性是铁一般的事实：\n两种\"熵\" 热力学熵（玻尔兹曼，1870s）：\n$$S = -k \\sum_i p_i \\ln p_i$$\n信息熵（香农，1948）：\n$$H = -\\sum_i p_i \\log_2 p_i$$\n唯一的区别：一个常数 k，和对数的底数（自然对数 vs 以 2 为底）。\n数学结构完全相同。\n这意味着：玻尔兹曼的物理学和香农的信息论，在数学上是同一件事。\n当你训练一个 LLM 时，损失函数是交叉熵——这直接来自香农的信息熵。当 AI 选词时使用的 Softmax——这直接来自玻尔兹曼的概率分布。\n两条从不同源头流出的河流——一条从 1870 年代维也纳的物理课堂流出，另一条从 1948 年新泽西的贝尔实验室流出——在\u0026quot;AI\u0026quot;这片海洋中汇合了。\n训练时用香农的熵，推理时用玻尔兹曼的分布。 现代 AI 的每一次呼吸，都同时继承了两个人的遗产。\n如果你读过 《信息论——从电报到 GPT 的一条暗线》，你会看到信息熵的完整推导。如果你读过 《贝叶斯没有想到的事》，你会看到另一个穿越世纪的公式。而现在你知道了：Softmax 的灵魂，来自一位 1906 年在杜伊诺永远闭上眼睛的物理学家。\n七、墓碑上的方程 让我们回到杜伊诺。\n1906 年 9 月 5 日。\n玻尔兹曼去世时，物理学界对原子的态度正处于转折点——但他不知道。\n1905 年——他去世的前一年——爱因斯坦发表了关于布朗运动的论文。他证明了花粉粒在水中的随机运动可以用分子的碰撞来定量解释。如果原子不存在，这种运动就无法被解释。\n1908 年——他去世两年后——让·佩兰通过精密实验验证了爱因斯坦的理论。\n1909 年，威廉·奥斯特瓦尔德——那个声称不需要原子就能解释一切的人——公开承认：\u0026ldquo;原子假说已经被提升为一个有充分根据的科学理论。\u0026rdquo;\n玻尔兹曼没有等到这一天。差了三年。\n他的遗体被安葬在维也纳中央公墓。墓碑上没有生卒年月，没有头衔，没有赞美之词。\n只有一个公式：\n$$S = k \\ln W$$\n这是他留给世界的全部遗言。\n一行公式，把宇宙的不可逆性——时间的方向、秩序的消亡、热量的流动——归结为一个简单的计数问题：哪种排列方式最多，系统就去那里。\n而从这个公式中推导出的玻尔兹曼分布——那个 $e^{-E/kT}$——后来获得了一个他从未听过的名字：Softmax。\n尾声 玻尔兹曼的遗产 $$P(x_i) = \\frac{e^{-E_i / T}}{\\sum_j e^{-E_j / T}}$$\n他为分子写的概率分布，成了智能的心跳。\n1906 年，他在杜伊诺的度假村写下人生最后一页。他不知道原子的存在即将被证实，不知道他的公式将穿越一个世纪，不知道每一次 ChatGPT 选择下一个词、每一次推荐系统决定你看什么——都在执行他写下的方程。\n他什么都不知道。\n但数学知道。\n下次看到这些，想起他 看到 Softmax？那是玻尔兹曼分布 看到 Temperature？那是物理温度 T 看到 logits？那是负能量 -E 看到交叉熵损失？那是玻尔兹曼的熵穿上了香农的衣服 每一次 AI 推理，都是一次玻尔兹曼采样。他为分子写的公式，如今是智能的心跳。\n参考与延伸 原始文献\nBoltzmann, L. (1877). Über die Beziehung zwischen dem zweiten Hauptsatze der mechanischen Wärmetheorie und der Wahrscheinlichkeitsrechnung respektive den Sätzen über das Wärmegleichgewicht. 统计力学的奠基论文 Shannon, C. E. (1948). A Mathematical Theory of Communication. Bell System Technical Journal. 信息论开山之作 玻尔兹曼传记\nCercignani, C. (1998). Ludwig Boltzmann: The Man Who Trusted Atoms. Oxford University Press. 最权威的玻尔兹曼传记 Lindley, D. (2001). Boltzmann\u0026rsquo;s Atom: The Great Debate That Launched a Revolution in Physics. 原子论之争的通俗叙事 博客相关文章\n《LLM 中的概率论》 \u0026mdash; Temperature 参数的详细讲解 《贝叶斯没有想到的事》 \u0026mdash; 贝叶斯定理与 AI 的联系 《欧拉的 e》 \u0026mdash; e 这个常数的前世今生 《信息论——从电报到 GPT 的一条暗线》 \u0026mdash; 信息熵的完整推导 《交叉熵损失函数》 \u0026mdash; AI 训练中的熵 《知识蒸馏——当模型学会偷师》 \u0026mdash; 温度参数在蒸馏中的应用 ","permalink":"https://jason-azure.github.io/ai-blog/posts/boltzmann-legacy/","summary":"1906 年，一位被整个学术界否定的物理学家在杜伊诺的度假村永远闭上了眼睛。他的墓碑上只刻了一个公式：S = k ln W。120 年后，这个公式每天在全球数十亿次 AI 推理中被执行——以 Softmax 的名义。","title":"玻尔兹曼的遗产——一个被时代辜负的物理学家，和他留给 AI 的公式"},{"content":"一门炮打不中一架飞机 1940 年代，战争把一群数学家推到一个残酷的问题面前：\n如果一架飞机正在高速飞行，防空炮到底应该瞄准哪里？\n答案当然不是“瞄准飞机现在的位置”。\n等炮弹飞到那里，飞机早就不在了。\n但更准确地说，也不是简单地瞄准“飞机未来的位置”。\n你真正要找的是一个拦截点。\n也就是：\n如果我现在开炮， 炮弹几秒后会到达哪里？ 在同一时刻，飞机会不会也到那里？ 防空炮要打中的，不是飞机的“现在”，也不是一个抽象的“未来”。\n它要打中的是：\n炮弹和飞机在未来某一刻同时到达的那个点。\n这听起来像一个预测问题。\n只要知道飞机现在的位置、速度、方向，再知道炮弹速度，就能算出几秒后的交会点。\n但真实战场没有这么干净。\n你看到的飞机位置可能有误差。\n雷达和光学设备有延迟。\n炮口转过去需要时间。\n炮弹会受重力、风、空气阻力影响。\n飞行员也不是一颗石头。他会躲。他会突然转向。他会加速、俯冲、爬升。\n于是问题不再是“算一次就结束”。\n它变成了一条链：\n观测：飞机现在在哪里？ 估计：它真实的位置和速度是什么？ 预测：几秒后可能到哪里？ 控制：炮口应该转向哪里？ 反馈：新的观测说明刚才错了多少？ 修正：下一次该怎么调？ 这就是为什么这个问题会请来那么多数学家、工程师和物理学家。\n他们要解决的不是一道单独的抛物线题，而是一整套系统问题：\n有噪声的观测 有延迟的动作 有不确定性的目标 有误差的预测 有持续变化的环境 于是问题变成了一个循环：\n你预测一个拦截点 ↓ 你调整炮口 ↓ 飞机继续机动 ↓ 雷达看到新的位置 ↓ 你发现预测错了 ↓ 你重新调整炮口 这类研究最后沉淀出的东西，并不是某一条万能公式。\n真正成型的是一种系统观：\n要在变化的世界里行动，机器不能只靠一次预测。它必须持续观察结果，把误差带回系统内部，再修正下一次行动。\n它更像一次持续追踪。\n每一次行动之后，世界都会给你一个回应。你不能只靠开头那一次预测活下去，你必须不断看结果、比误差、修正下一步。\n参与这类问题研究的人里，有一位数学家叫 诺伯特·维纳（Norbert Wiener）。\n他后来写了一本书，书名很长：\nCybernetics: Or Control and Communication in the Animal and the Machine\n中文常译为《控制论：或关于动物和机器中的控制与通信》。\n这本书 1948 年出版。\n也是在 1948 年，Claude Shannon 发表《通信的数学理论》，定义了现代信息论。\n同一年，两个人从不同方向看到了同一件事：\nShannon 看见了信息。\nWiener 看见了反馈。\nShannon 问：\n一条消息里有多少信息？\nWiener 问：\n一个系统怎样根据结果修正自己？\n前一个问题，通向通信、压缩、预测和大语言模型。\n后一个问题，通向控制、学习、行动和 Agent。\n今天我们要讲的，就是后一个问题。\n一、反馈不是评价，是回路 “反馈”这个词现在太常见了。\n你写完文章，朋友说“不错”，这是反馈。\n你做完汇报，领导说“再改改”，这是反馈。\n你发一条朋友圈，看点赞数，也叫反馈。\n但在控制论里，反馈不是一句评价。\n反馈是一种结构。\n它的核心不是“别人说了什么”，而是：\n系统把自己的输出结果，重新带回输入端，用来修正下一次输出。\n最简单的对比，是开环和闭环。\n开环系统： 目标 → 指令 → 行动 → 结束 开环系统不看结果。\n你设定闹钟，它到点就响。至于你有没有醒，它不关心。\n你写一段脚本，命令它每小时发一封邮件。至于邮件有没有被退回，它不关心。\n你让一个早期程序按固定规则走迷宫。至于撞没撞墙，它不关心。\n闭环系统不一样。\n闭环系统： 目标 → 行动 → 观察结果 → 计算误差 → 修正行动 → 再观察 闭环系统会看结果。\n空调就是一个闭环。\n你设定 24 度。传感器发现房间 28 度，于是制冷。过一会儿房间降到 25 度，继续制冷。降到 24 度，停止。升到 25 度，再启动。\n它并不知道“舒服”是什么。\n它只是不断比较：\n目标温度 - 当前温度 = 误差 误差驱动修正。\n这就是反馈。\n你的身体也在做同样的事。\n血糖高了，胰岛素上来。体温低了，开始发抖。跑步时氧气不够，呼吸加快。走路快摔倒时，肌肉在毫秒级调整重心。\n身体并不是先拿到一张完美计划书，再照着执行。\n它是在一刻不停地测量、比较、纠偏。\n活着，本身就是一个巨大的闭环。\n二、负反馈：世界把你拉回来 反馈有很多种，其中最重要的是 负反馈。\n“负”不是坏。\n负反馈的意思是：系统的输出偏离目标后，反馈信号会把它往目标拉回来。\n空调温度太高，制冷增强。\n车偏离车道，你把方向盘往回打。\n身体太热，开始出汗。\n偏高 → 往低处修正 偏低 → 往高处修正 这就是稳定性的来源。\n没有负反馈，系统会越走越远。\n一个没有反馈的司机，只能在出发前把方向盘角度设好，然后闭着眼一路开下去。\n一个没有反馈的学生，只能做完一套题以后永远不看答案。\n一个没有反馈的 AI，只能把话说完，然后假装自己一定是对的。\n所以，反馈带来的第一件事，不是“变聪明”。\n而是不至于一路错到底。\n反馈的最小公式 如果非要给反馈一个最小的数学骨架，它其实不复杂。\n先定义误差：\n误差 = 目标 - 当前状态 e_t = r - y_t 这里的 r 是目标，y_t 是系统现在的状态，e_t 是当前误差。\n空调的目标是 24 度，当前是 28 度，误差就是 4 度。\n防空炮的目标是拦截点，当前炮口指向偏了一点，误差就是这个偏差。\n然后系统根据误差修正下一次行动：\n下一次行动 = 这一次行动 + 增益 × 误差 u_{t+1} = u_t + k e_t 这不是完整的控制理论。\n真实系统里会有延迟、噪声、惯性、积分、微分，也就是后来工程里熟悉的 PID 控制。\n但这个最小公式已经抓住了反馈的灵魂：\n让误差参与下一次行动。\n这里的 k 很关键。\nk 太小，系统反应迟钝。房间已经热了很久，空调还慢慢悠悠。\nk 太大，系统会震荡。车只是偏了一点，你猛打方向盘，车反而左右摇摆。\n所以反馈不是越强越好。\n好的反馈，要有合适的尺度。\n现在再回到前面那句话：\n反馈让系统不至于一路错到底。\n这很重要。\n很多人把智能想象成一次性给出正确答案的能力。\n但真实世界里，更重要的能力往往是：\n错了以后，系统能不能知道自己错在哪里，然后改下一步。\n一个人学骑自行车，不是先在脑中推导出一套完整的自行车动力学方程。\n他上车，歪了，脚撑地，重新来。又歪了，身体反向调整。摔几次，肌肉学会了。\n这个过程里当然有大脑，但更底层的是反馈。\n身体做出动作。\n世界给出结果。\n神经系统调整下一次动作。\n智能不是从“知道”开始的。\n很多智能，都是从一次次被纠正开始的。\n三、Wiener 看见了动物和机器之间的共同结构 Wiener 最敏锐的地方，不是发明了某个单独的机器。\n他看见的是一种跨越领域的结构。\n防空炮、自动舵、神经系统、动物行为、社会组织，看起来完全不同，但都可以被同一套语言描述：\n目标 观察 误差 修正 通信 控制 1943 年，Wiener 和 Arturo Rosenblueth、Julian Bigelow 发表了一篇论文，题目叫 Behavior, Purpose and Teleology。\n这篇文章讨论了一个当时很大胆的想法：\n有目的的行为，可以不必诉诸神秘的“意志”，而可以用反馈回路来解释。\n一个系统看起来像是在追求目标，未必是因为里面藏着某种神秘意志。\n也可能是因为它有一个目标状态，并不断用反馈减少自己和目标之间的差距。\n目标：保持航向 当前：偏左 反馈：偏差为左 行动：向右修正 这就是“有目的行为”的工程解释。\n导弹追踪目标，看起来像“想击中”。\n恒温器维持温度，看起来像“想舒适”。\n动物寻找食物，看起来像“想生存”。\n当然，导弹和动物不是同一种东西。\n但 Wiener 看到：它们之间有一层共同结构。\n这层结构就是控制论。\n它不问“机器有没有灵魂”。\n它问：\n一个系统如何通过信息流控制自己的行为？\n这句话放到今天，几乎可以直接改写成：\n一个 AI 如何通过反馈信号改善自己的下一步输出？\n四、从 Shannon、Bayes、Markov 到 Wiener 到这里，我们可以把前面几篇文章串起来。\nShannon 关心信息。\nBayes 关心信念更新。\nMarkov 关心状态转移。\nWiener 关心反馈控制。\n这四个人像是在同一张地图上点亮了四盏灯。\n人 他问的问题 AI 里的对应物 Shannon 这条消息有多少信息？ 交叉熵、压缩、预测下一个 token Bayes 看到新证据后，信念如何更新？ 先验、后验、微调、对齐 Markov 站在当前状态，下一步是什么？ 序列建模、状态转移、Agent action Wiener 行动之后，如何根据结果修正？ 梯度下降、RLHF、强化学习、闭环 Agent 如果只看 Shannon，AI 像一台压缩机。\n如果只看 Bayes，AI 像一个更新信念的观察者。\n如果只看 Markov，AI 像一个在时间中选择下一步的系统。\n但到了 Wiener 这里，AI 才真正碰到世界。\n因为反馈意味着：\n我不只是预测。 我会行动。 行动之后，世界会改变。 世界改变之后，我必须重新看。 这就是从“文本补全”到“现实操作”的关键一步。\n大语言模型可以在没有外部反馈的情况下写出一整段话。\n但 Agent 不行。\nAgent 每一步都可能打开文件、调用工具、运行测试、搜索网页、提交代码。\n一旦它行动，世界就会回它一个结果：\n测试通过 / 测试失败 网页找到 / 网页没找到 文件存在 / 文件不存在 命令成功 / 命令报错 用户满意 / 用户打断 这些结果不是装饰。\n它们决定 Agent 下一步怎么走。\n没有这些回来的信号，工具调用只是一串动作。\n有了这些信号，动作才连成回路。\n五、训练神经网络，本质上就是反馈 先不要看 Agent。\n最普通的神经网络训练，本身就是一个反馈过程。\n你给模型一个输入。\n模型给出预测。\n你拿预测和正确答案比较，得到误差。\n误差通过反向传播传回模型，调整参数。\n下一次，模型预测得稍微好一点。\n输入 → 预测 → 损失函数 → 梯度 → 更新参数 → 再预测 这就是一个闭环。\n梯度下降不是“机器突然悟了”。\n它只是让机器每次错一点，就沿着让错误变小的方向改一点。\n你在《看见数学（十五）：梯度下降》里已经写过“蒙眼下山”的比喻。\n现在可以换一种说法：\n梯度就是反馈信号。\n损失函数告诉模型：\n你离目标还有多远？ 往哪个方向改，错误会变小？ 没有这个反馈，神经网络只是一堆随机数字。\n有了这个反馈，它才开始学习。\n这就是为什么“预测下一个 token”这个目标如此强大。\n每一个 token 都贡献一次误差。\n一篇文章有一万个 token，就有一万次小测验。\n整个互联网有万亿级 token，就有万亿级微小纠偏。\n大模型不是读完互联网后“理解”了世界。\n更准确地说，它是在万亿次微小纠错中，被文本世界一点点塑形。\n六、RLHF：当反馈从“对错”变成“偏好” 但这里有一个问题。\n预测下一个 token 的反馈很清楚：\n正确 token 是什么？ 模型给它多少概率？ 这适合预训练。\n可是人类真正关心的回答，不只是“像不像训练文本”。\n我们还关心：\n这个回答有没有帮助？ 有没有礼貌？ 有没有胡说？ 有没有危险？ 有没有按照指令来？ 有没有承认不确定性？ 这些东西没有唯一标准答案。\n你问：\n我应该怎样安慰一个失去亲人的朋友？ 不存在一个“正确 token 序列”。\n有些回答冷冰冰。\n有些回答空洞。\n有些回答真诚但越界。\n有些回答简短却恰到好处。\n这时，反馈从“对错”变成了“偏好”。\n这就是 RLHF 的位置。\nRLHF（Reinforcement Learning from Human Feedback）做的事情，可以粗略理解为：\n模型生成多个回答 ↓ 人类比较哪个更好 ↓ 训练一个奖励模型 ↓ 让语言模型更倾向于高奖励回答 它不是把新知识塞进模型。\n它是在改变模型的行为倾向。\n预训练像是在荒野里修出无数条路。\nRLHF 像是在这些路上放路标：\n这条路更有帮助 那条路更危险 这条路更符合人类偏好 那条路虽然能走，但别走 所以 RLHF 本质上也是反馈。\n只不过这个反馈不再来自“正确答案”，而来自“人类喜欢什么”。\n这也解释了它的风险。\n如果反馈信号奖励的是“讨人喜欢”，模型就会学会讨人喜欢。\n如果反馈信号奖励的是“显得自信”，模型就会学会自信。\n如果反馈信号奖励的是“永远给答案”，模型就会越来越不愿意说“不知道”。\n反馈不会自动产生真理。\n反馈只会放大被奖励的方向。\n这句话是理解 AI 安全的钥匙。\n七、DeepSeek-R1：简单奖励为什么能长出复杂思考 DeepSeek-R1 让很多人惊讶的地方，不是它用了一个特别复杂的算法。\n恰恰相反。\n它最震撼的地方是：\n给模型一个很简单的反馈信号，它竟然自己长出了复杂的推理行为。\n在数学题、代码题这类任务里，答案是可以验证的。\n数学题算对就是对，算错就是错。\n代码能通过测试就是通过，不能通过就是失败。\n这类任务不需要人类给每一步打分。\n只需要一个结果反馈：\n答对：奖励 答错：没有奖励 格式不合要求：扣分 然后模型开始试。\n它发现：先列步骤，正确率更高。\n它发现：最后检查一遍，能修掉一些错误。\n它发现：一种方法走不通，换一种思路有时能成功。\n于是这些行为被奖励保留下来。\n看起来像“思考”的东西，就这样从反馈里长出来了。\n这不是说模型有了人类意识。\n但它说明了一件非常重要的事：\n复杂策略可以从简单反馈中涌现。\n这和骑自行车很像。\n没人把“如何保持平衡”的微分方程逐项教给你。\n世界只给你一个粗暴反馈：\n没倒：继续 倒了：疼 你的身体在这个反馈中学会了平衡。\nDeepSeek-R1 的故事，是这件事在语言和推理空间里的现代版本。\n八、Agent：世界终于开始回话 到 Agent 这里，反馈变得更真实。\n普通聊天模型生成一段回答后，很多时候回路就断了。\n它说完了。\n至于答案是否真的解决了问题，要靠用户自己判断。\nAgent 不一样。\nAgent 会行动。\n它会写文件、运行命令、调用 API、打开网页、检索文档、修改代码。\n行动一发生，世界就会返回结果。\n这时反馈不再只是一个抽象分数，而是具体的环境回声：\npytest 失败： E AssertionError: expected 3, got 4 网页返回： 404 Not Found 编译器返回： TypeError: expected string, got None 用户返回： 不是这个意思，重来 这些反馈比“点赞/点踩”强得多。\n因为它们直接来自任务环境。\n一个 coding agent 真正有用，不是因为它第一次就写对。\n而是因为它能：\n写代码 ↓ 跑测试 ↓ 读错误 ↓ 定位原因 ↓ 修改代码 ↓ 再跑测试 这就是工程里的闭环。\n没有这条闭环，AI 写代码只是“生成看起来像代码的文本”。\n有了这条闭环，它才开始接近真正的工程劳动。\n所以 Agent 的核心不只是“会调用工具”。\n工具只是手。\n反馈才是神经。\n参数固定以后，反馈去了哪里？ 这里有一个很容易被忽略的问题。\n一个 LLM 在预训练、微调、RLHF 之后，参数通常就固定了。\n用户今天告诉它“你错了”，它不会立刻在大脑里反向传播一次，把几千亿个参数改掉。\n从模型本体看，它的能力似乎已经固化了。\n但 Agent 改变了这件事。\n反馈不一定非要进入参数。\n它还可以进入上下文、记忆、技能库、工具调用策略和任务环境。\n训练阶段： 反馈 → 更新参数 部署阶段： 参数固定 反馈 → 更新上下文、记忆、技能、工具调用策略、任务环境 换句话说：\n训练阶段的反馈，改变的是模型参数。部署阶段的反馈，更多改变的是模型周围的系统。\ninstruction 把模型已有能力引导出来。\nmemory 把过去的经验保留下来。\nskills 把反复成功的动作固化成可复用流程。\n工具让模型把语言变成行动。\n所以，Agent 的关键不只是“模型更聪明了”。\n而是一个固定参数的模型，被接入了一个可以持续积累、持续修正的外部回路。\n参数没有变，但系统变了。\n同一个模型，在普通聊天框里像一个回答机器；放进 Agent 框架里，却开始像一个能做事的系统。\n这也提醒我们：反馈有不同的去处。\n反馈层次 被修正的东西 例子 控制反馈 下一次动作 防空炮、空调、自动驾驶 学习反馈 模型参数 预训练、反向传播、微调 偏好反馈 行为倾向 RLHF、DPO、人类偏好排序 环境反馈 外部状态和任务策略 Agent 跑测试、读报错、改代码 记忆反馈 可复用经验 memory、skills、instruction 更新 这张表很重要。\n否则我们很容易把“反馈”误解成只有一种形式：改参数。\n但现实中的智能系统，往往不是只靠一个大脑变聪明。\n它还靠笔记、工具、流程、记忆、工作环境，以及一次次行动之后留下来的痕迹。\n九、为什么“反馈”比“预测”更接近现实 预测当然重要。\n没有预测，就没有计划。\n你不预测车会往哪里开，就无法过马路。\n你不预测用户下一步想要什么，就无法设计产品。\n你不预测代码修改会带来什么后果，就无法重构系统。\n但现实世界不会因为你预测完就结束。\n现实世界会给出后果。\n你预测错了。\n世界会告诉你错了。\n你行动过度了。\n系统会震荡。\n你奖励错了指标。\n模型会钻空子。\n你把考试分数当成教育目标。\n学生就会学会刷题。\n你把点击率当成内容质量。\n平台就可能学会制造愤怒。\n你把“让用户满意”当成 AI 的最高目标。\nAI 就可能学会迎合，而不是诚实。\n这就是反馈的另一面。\n反馈能让系统学习。\n也能让系统偏航。\n关键不在于“有没有反馈”。\n关键在于：\n你到底把什么信号接进了回路？\n这就是 Goodhart 定律反复警告我们的事：\n当一个指标变成目标，它就不再是一个好指标。\n控制论看起来是工程学。\n但往深处走，它会变成伦理学。\n因为一个会学习的系统，最终会变成它所接收的反馈。\n十、智能不是答案，是闭环 现在回到开头那门防空炮。\n如果你只看第一步，它像一个预测问题：\n飞机几秒后会在哪里？ 但如果你看完整过程，它其实是一个反馈问题：\n我观测飞机 我估计轨迹 我预测拦截点 我调整炮口 世界给出新的位置 我根据误差修正 这才是智能在现实中的形状。\n一次性给出答案，是考试里的智能。\n持续修正行动，是现实里的智能。\n这也是为什么大语言模型之后，整个 AI 方向自然会走向 Agent、机器人、自动驾驶、工具调用、可验证奖励。\n因为文本预测只完成了前半步。\n后半步是：\n让模型进入世界，并让世界纠正它。\n我们可以把这一系列文章压缩成一条线：\nShannon：信息可以被度量 Bayes：信念可以被更新 Markov：未来可以从状态推出 Wiener：行动可以被反馈修正 如果说 Shannon 给了 AI 一只耳朵，让它听见信息。\nBayes 给了 AI 一套信念，让它根据证据更新判断。\nMarkov 给了 AI 一个现在，让它知道下一步从哪里出发。\n那么 Wiener 给了 AI 一条神经回路。\n这条回路让机器第一次不只是“算”。\n而是能看见行动后的结果，并在结果中改变下一步。\n维纳没有想到 ChatGPT。\n他也没有想到 RLHF、DeepSeek-R1、coding agent、自动驾驶和机器人。\n但他看见了一件更底层的事：\n一个系统只要想在时间中行动，就必须听见自己行动后的回声。\n没有反馈，智能只是一次猜测。\n但反馈还不是终点。\n反馈只能告诉系统：你错了，偏了多少。\n它未必告诉系统：你为什么错。\n防空炮没有打中飞机，可能是飞机转向了，可能是风速估错了，可能是炮口转动慢了，也可能是雷达观测有延迟。\n这时，系统需要的不只是反馈，而是因果。\n它要知道：哪个动作导致了哪个结果？如果我换一种动作，世界会不会不同？\n再往前一步，就是世界模型。\n所谓世界模型，就是系统在行动之前，先在内部预演一下：\n如果我这样做， 世界会怎样回应？ 反馈让系统知道自己错了。\n因果让系统知道为什么错。\n世界模型让系统在下一次行动前，先想一遍：如果我这样做，世界会怎样回应。\n有了反馈，猜测才开始变成学习。\n本文涉及的公众号文章 《Shannon 没有想到的事——当信息论遇上有限算力》 《贝叶斯没有想到的事——一个牧师的赌博公式，如何成为 AI 的第一性原理》 《马尔可夫的幽灵——从预测下一个词到预测下一步行动》 《DeepSeek-R1：一个模型如何学会「思考」》 《大理石假说——为什么微调不是在教 AI 新东西》 《AI 为什么“一本正经地胡诌”？——幻觉的底层逻辑》 主要参考与延伸 Arturo Rosenblueth, Norbert Wiener, Julian Bigelow, Behavior, Purpose and Teleology, Philosophy of Science, 1943 Norbert Wiener, Cybernetics: Or Control and Communication in the Animal and the Machine, 1948 Norbert Wiener, The Human Use of Human Beings: Cybernetics and Society, 1950 Claude Shannon, A Mathematical Theory of Communication, 1948 Richard Sutton and Andrew Barto, Reinforcement Learning: An Introduction, 2nd edition, 2018 Long Ouyang et al., Training Language Models to Follow Instructions with Human Feedback, 2022 Rafael Rafailov et al., Direct Preference Optimization: Your Language Model is Secretly a Reward Model, 2023 DeepSeek-AI, DeepSeek-R1: Incentivizing Reasoning Capability in LLMs via Reinforcement Learning, 2025 ","permalink":"https://jason-azure.github.io/ai-blog/posts/feedback-cybernetics/","summary":"二战时期，数学家诺伯特·维纳研究一个残酷的问题：飞机一直在动，炮弹也需要时间飞行，防空炮到底该打向哪里？这不是简单地预测飞机下一秒的位置，而是要持续计算拦截点，并在观测误差、动作延迟和敌人机动中不断修正。这个问题把他带向一个更深的概念：反馈。智能不是一次性给出正确答案，而是在行动之后被世界纠正。梯度下降、RLHF、DeepSeek-R1、Agent、自动驾驶，表面上差别很大，底层却都在同一个闭环里运行：行动、观察、误差、修正。","title":"维纳没有想到的事——从防空炮到 ChatGPT，反馈如何变成智能"},{"content":"一个越来越常见的挫败 你可能已经遇到过这种事。\n你花半小时把背景讲清楚：\n项目怎么来的。\n代码在哪个目录。\n客户为什么这么要求。\n上一次为什么失败。\n你喜欢什么风格。\n哪些话不要说。\n哪些坑已经踩过。\nAI 在那个窗口里表现得很好。它像一个终于进入状态的同事，能接住你的上下文，能顺着你的思路往下走，能把前面讨论过的细节用起来。\n然后第二天，你重新打开一个窗口。\n它又变回了一个聪明的陌生人。\n你不得不再讲一遍。\n不是完全从零开始，当然不是。现在很多产品已经有了 memory、项目文件、知识库、长上下文、RAG、Agent 工作区。它们可以记住更多东西，也可以把过去的材料重新塞回 prompt。\n但那种感觉还在：\n它能查到我的过去，却不一定真正长出了经验。\n这就是今天这篇文章要讲的问题。\n我们正在把 AI 做成一个越来越大的资料柜。\n但智能最珍贵的部分，可能不是资料柜。\n而是资料被反复使用之后，终于变成了手感、判断、直觉和能力。\n这件事，在 AI 研究里有一个名字：\n持续学习（Continual Learning）。\n这篇文章可以先压缩成三句话：\n上下文让 AI 临时进入状态。 记忆让 AI 找回过去的信息。 持续学习让 AI 把过去变成未来的能力。 如果只记住一句，就是：\n查得到，不等于学会了；能压缩，才算真正长进了身体里。\n先别急着否定上下文 讲持续学习之前，必须先承认一件事：\n上下文真的很有用。\n这不是客套。\n大语言模型（LLM）本来就是在一段序列上预测下一个 token。你给它什么上下文，它就基于什么上下文继续推理。模型权重没有变，但行为会发生巨大变化。\n同一个模型：\n你什么都不给，它只能泛泛而谈 你给它项目文档，它能像项目成员 你给它示例风格，它能模仿语气 你给它代码结构，它能定位 bug 你给它上一次讨论记录，它能延续思路 这就是为什么 prompt engineering、RAG、长上下文、Agent harness 会这么重要。\n它们本质上是在回答同一个工程问题：\n在模型权重不变的情况下，怎样把最有用的信息放到模型眼前？\nCursor、Claude Code、OpenClaw 这类工具的进步，很大一部分不是因为底层模型突然换了灵魂，而是因为它们更会组织上下文：\n当前目标是什么 已有文件是什么 上一步做了什么 下一步该检查什么 哪些信息该保留 哪些信息该压缩 哪些工具该调用 哪些结果该写回 这是一门真实的工程学。\n所以这篇文章不是要说：\n上下文没用，RAG 没用，Agent 没用。\n恰恰相反。\n上下文是今天 AI 应用最成熟、最可靠、最容易落地的学习方式。\n但问题是：\n它可能不是终点。\n查得到，不等于学会了 想象两个人学做菜。\n第一个人有一个巨大的资料柜。里面有所有菜谱、所有调味比例、所有厨师访谈、所有失败案例。他每做一道菜之前，都可以把相关资料抽出来摊在桌上。\n第二个人没有那么多资料，但他真的在厨房里做了十年。火候、油温、咸淡、锅气、什么时候该关火，他未必能完整写成文字，但手一动就知道。\n第一个人更像今天的很多 AI 系统。\n第二个人更像我们说的“学会了”。\n资料柜当然有用。\n没有菜谱，你可能连第一步都不知道。\n但资料柜和经验之间，有一道关键的门槛：\n资料只是被保存了。经验是被压缩了。\n这句话很重要。\n一个人真正学会一件事，不是把每一次经历原封不动地存下来。\n如果你学开车，脑子里不会保存每一次转方向盘的完整录像。\n如果你学写作，脑子里不会保存每一篇文章的每一个字。\n如果你学诊断，脑子里也不会保存每一次病例讨论的逐字记录。\n真正发生的是另一件事：\n很多具体经历 ↓ 反复比较、试错、反馈 ↓ 抽出共同结构 ↓ 形成可迁移的判断 这就是压缩。\n有损压缩。\n你丢掉了大量细节，却保留了结构。\n而结构，才是能力。\n这正好接上“压缩即智能” 如果你读过前面的《压缩即是全部》，会知道我们一直在讲一个核心命题：\n理解就是压缩。\n牛顿把苹果落地、月亮绕地、炮弹飞行，压缩成同一套力学公式。\nShannon 把通信中的不确定性，压缩成信息熵。\n数学家把一长串证明，压缩成一个定理名字。\nLLM 训练时，把互联网上海量文本，压缩进一组参数。\n这也是为什么训练有效。\n模型不是把互联网逐字背下来。\n如果它只是背下来，它就只是一个巨大的数据库。\n训练真正强大的地方在于：\n它被迫从数据中找结构。\n它要预测下一个 token，就必须在海量文本里提取语法、常识、风格、事实、推理模式、代码模式、社会关系、隐含规律。\n这些东西最后不以“原文”的形式存在，而以参数、表示、方向、分布、激活模式的形式存在。\n这就是为什么一个模型可以没见过你这个具体问题，却能用学到的结构回答你。\n问题来了：\n训练阶段允许模型压缩世界。部署之后，我们却通常把这个能力关掉了。\n模型发布之后，权重冻结。\n你和它聊了十万字，它不会因此改变参数。\n它帮你改了一百次代码，它不会因此真正成为“你的项目专家”。\n它陪你写了十篇文章，它不会因此把你的写作风格内化到自己身体里。\n最多是：\n把历史记录找出来 把项目文件读一遍 把你的偏好塞进 prompt 把上一次结论放回上下文 这当然有用。\n但它更像“带资料上考场”。\n不是“真的学会了这门课”。\n持续学习到底在问什么 所以，持续学习要问的不是：\nAI 能不能记住更多聊天记录？\n而是：\nAI 能不能在部署之后，继续把经验压缩成能力？\n这中间有三层不同的路线。\n第一层：Context 经验仍然在外部，通过上下文临时调用 第二层：Modules 经验被压缩到可插拔模块里，核心模型不大动 第三层：Weights 经验进入模型参数，模型本身真的改变 我们一个一个看。\n第一层：上下文，最成熟的路线 这是今天最现实的一层。\nRAG、知识库、长上下文、Agent 工作区、多 Agent 协作，基本都属于这一类。\n核心思路是：\n模型不变 资料在外面 需要时检索 再塞进上下文 这条路的优点很明显：\n好部署 好调试 好删除 好审计 不容易把模型本体弄坏 如果知识错了，删掉那条文档就行。\n如果用户不想让系统记住，清掉 memory 就行。\n如果某个项目结束了，把项目上下文移除就行。\n这也是为什么企业最喜欢这条路。\n它像给 AI 配一个资料室。\n资料室可以很大，可以有索引，可以有权限，可以有版本，可以有审计。\n但资料室也有天花板。\n因为 AI 每次真正能“看见”的，仍然是上下文窗口里那一部分。\n就算窗口从 128K 变成 1M，再变成 10M，问题也没有消失，只是推迟了。\n你仍然要决定：\n哪些东西放进去？ 哪些东西丢掉？ 哪些东西摘要？ 哪些东西保持原文？ 哪些过去经验真正相关？ 上下文越大，管理上下文本身就越像一门学问。\n这不是坏事。\n但它说明一件事：\n更大的桌面，不等于更好的大脑。\n第二层：模块，中间道路 第二条路，是在资料柜和核心模型之间加一层东西。\n可以把它理解成：\n不直接改大脑，但给大脑装一个可以替换的专门插件。\n比如：\n压缩过的 KV Cache Adapter 层 LoRA 模块 外部记忆模块 面向某个任务的专业子网络 它的目标不是把所有历史原封不动塞进上下文，而是把某类经验压缩成一个更短、更可调用的东西。\n这很像公司里的“岗位手册”。\n新员工当然可以每次都翻全部历史邮件。\n但更好的做法，是有人把过去的经验整理成 SOP、模板、检查清单、常见错误、决策原则。\n这些东西不是原始资料。\n它们是资料的压缩。\n模块路线的好处在于：\n比纯上下文更深 比直接改权重更安全 可以按领域加载 可以单独更新 可以单独回滚 比如，一个通用模型可以接上医学模块、法律模块、某家公司代码库模块、某个用户风格模块。\n核心模型保持稳定。\n模块负责专业化。\n这可能是未来几年最实际的一条路。\n因为它承认两件事：\n只靠 prompt 不够深 直接改模型太危险 第三层：权重，最深也最难的路线 第三条路最激进：\n让模型参数真的更新。\n也就是说，模型部署之后，不只是回答问题，而是从回答结果、用户反馈、任务成败、新数据里继续学习。\n这听起来很自然。\n人不就是这样吗？\n医生看病例，复盘，改判断。\n程序员写 bug，排错，形成经验。\n老师讲课，看到学生反应，调整讲法。\n作者写文章，看读者反馈，慢慢知道什么开头抓人、什么比喻有效、什么地方会让人掉队。\n人类的学习不是“训练一次，终身冻结”。\n人类是在部署中学习。\n如果 AI 也能这样，它的能力会产生复利。\n但这里马上撞上一堵墙。\n为什么不能简单地“每次聊完就训练一下” 直觉上，持续学习很简单：\n用户纠正一次，模型就更新一次。\n但真正做起来，会遇到一串硬问题。\n1. 灾难性遗忘 模型如果对新信息太敏感，就可能学会新的，忘掉旧的。\n你教它一个公司的内部缩写，它可能影响别的语义。\n你让它适应一个人的写作偏好，它可能在不该使用这种风格的地方也使用。\n神经网络的知识不是像文件一样一条条放在抽屉里。\n它更像一张巨大的织物。\n你拉动一个地方，别的地方也会变形。\n这叫灾难性遗忘。\n2. 稳定性和可塑性的矛盾 一个系统要学习，就必须可塑。\n但一个系统要可靠，就必须稳定。\n太稳定，它学不动。\n太可塑，它乱学。\n这就是持续学习最核心的矛盾：\n你希望模型能吸收新经验 但不希望它被每一次新经验带歪 一个医生助手不能因为一个错误病例就改掉医学常识。\n一个代码助手不能因为一个项目里的特殊写法，就把通用编程规范忘了。\n一个公众号写作助手不能因为一篇爆文，就以后所有文章都写成同一种腔调。\n3. 事实更新不等于理解更新 假设你告诉模型：\n公司 A 已经改名为公司 B。\n它也许记住了这句话。\n但真正难的是：\n旧产品文档里的 A 要不要改？ 历史案例里的 A 要不要保留？ 合同里的 A 是旧主体还是新主体？ 搜索结果里出现 A 时该不该映射到 B？ 之前关于 A 的推理结论还能不能用？ 人类理解一个事实，会把它接进一张概念网络。\n模型更新一个权重，却不一定能保证所有逻辑后果都同步更新。\n这就是持续学习的深水区：\n更新一句话容易，更新一句话背后的世界模型很难。\n4. 删除比添加更难 外部记忆有一个好处：\n错了可以删。\n数据库里有一条错记录，删掉。\n知识库里有一篇过期文档，下线。\n上下文里有敏感信息，不再注入。\n但如果信息已经进入权重，删除就没那么简单。\n你很难对一个神经网络说：\n请只忘掉这一条，不要影响别的东西。\n人的记忆也是这样。\n你不可能把一个经历像文件一样拖进回收站。\n模型也一样。\n这就是为什么“让模型持续学习”同时也是隐私问题、安全问题和治理问题。\n持续学习不是单点突破，而是分层系统 所以，未来不太可能只有一种答案。\n更合理的形态，是一个分层系统：\n即时适应：上下文 短期工作记忆：会话状态、项目状态、Agent 工作区 中期专业化：模块、Adapter、LoRA、压缩记忆 长期能力变化：权重更新、反馈学习、测试时训练 安全边界：评估、回滚、审计、权限、隐私保护 这和人很像。\n你临时记一个电话号码，是工作记忆。\n你为了考试背一组知识，是短期记忆。\n你反复写作形成风格，是长期能力。\n你在某个岗位干了十年形成判断，是经验。\n你睡一觉之后，大脑重新整理白天的经历，是巩固。\nAI 现在强在前两层。\n未来真正值得期待的，是后面几层。\n不是更长的聊天记录。\n而是更好的经验巩固机制。\n这件事为什么和会行动的 AI 有关 现在越来越多 AI 产品正在从“聊天窗口”走向“行动系统”。\n它们不只是回答一句话，而是会读文件、调工具、写代码、点网页、执行命令、观察结果，然后继续下一步。\n这类系统常被叫作 Agent。\n它的关键不是“会聊天”，而是“会行动”。\n这就把 AI 推进了一个新阶段：\n过去：输入 → 输出 现在：行动 → 观察 → 修正 → 再行动 这正好接上《维纳没有想到的事》里讲的反馈闭环。\n只要 AI 开始行动，它就一定会遇到反馈：\n代码测试通过还是失败 用户点了接受还是拒绝 客户回复满意还是不满意 医生认为判断有价值还是没价值 文章发布后读者转发还是沉默 这些反馈是金矿。\n今天大多数系统只是把反馈当成日志。\n未来的持续学习系统，会把反馈当成训练信号。\n也就是：\n经验不是结束在一次任务里 经验要回流到系统本身 这句话对 AI 公司重要。\n对个人使用 AI 也重要。\n如果你只是每次让 AI 帮你干活，干完就关掉窗口，你得到的是一次性效率。\n如果你把每次任务里的成功、失败、偏好、模板、判断标准沉淀下来，你得到的是复利。\n真正会用 AI 的人，不只是会提问。\n而是会设计自己的反馈闭环。\n这也能解释今天很多 AI 使用问题 很多人觉得 AI “不稳定”。\n有时特别懂你。\n有时又像第一天认识你。\n有时能做出惊艳方案。\n有时连基本约束都忘。\n这不是单纯的智商问题。\n而是系统状态问题。\n你以为你在和同一个 AI 对话。\n实际上你每次面对的是：\n同一组冻结权重 + 不同的上下文 + 不同的检索结果 + 不同的工具状态 + 不同的历史摘要质量 所以它像一个聪明但失忆的人。\n某个窗口里，它有完整线索。\n换一个窗口，线索断了。\n某个项目里，它读到了本地文件。\n换一个项目，它又只能凭常识。\n某次回答特别好，不一定是它“永久变聪明了”。\n可能只是那次上下文组织得好。\n理解这一点之后，你会更会用 AI：\n不要只追问“模型聪不聪明” 还要追问“系统有没有记住正确的东西” 不要只堆更多资料 还要整理哪些资料应该变成规则、模板、样例 不要只让 AI 生成 还要让 AI 复盘、归纳、更新项目记忆 这也是我现在建议把长期写作、公众号草稿和项目协作的状态沉淀到本地项目记忆里的原因。\n聊天会过去。\n窗口会关闭。\n但项目记忆要沉淀在本地。\n否则每一个新窗口，都是一次轻微失忆。\n对普通人来说，前路在哪里 持续学习听起来像实验室问题。\n其实它会很快影响每个普通用户。\n未来的 AI 产品，会分出层次。\n最低一层，是普通聊天机器人：\n你问什么 它答什么 窗口结束 经验结束 再往上一层，是有项目记忆的助手：\n它知道你的文件 知道你的项目 知道你的偏好 知道上次做到了哪里 再往上一层，是有模块化经验的助手：\n它有你的写作模块 你的代码模块 你的业务模块 你的医学/法律/教育领域模块 最高一层，可能是会持续变强的系统：\n它从每次任务中学习 它知道哪些方法真的有效 它能把反馈压缩成能力 它有版本、审计、回滚和安全边界 这时候，“模型”这个词本身都会变。\n我们过去以为模型就是一份权重文件。\n未来的模型更像一个系统：\n基础模型 + 上下文管理器 + 外部记忆 + 专业模块 + 反馈学习算法 + 评估和安全机制 它不是一个静止的东西。\n它是一个会积累经验的组织。\n但别忘了另一半：人也要持续学习 这篇文章表面上在讲 AI。\n其实也在讲人。\n当 AI 越来越能替我们查资料、写总结、生成方案、执行任务，我们很容易把“使用 AI”误解为：\n我把问题交出去，它把答案交回来。\n这当然能提高效率。\n但如果每一次都停在这里，人就会变成一个更高效的答案消费者。\n前面《主体性》那篇文章讲过：\nAI 可以替你减少低价值摩擦，但不能替你形成主体性。\n放在持续学习这个话题里，就是：\nAI 可以帮你调出资料，但不能替你把经验长进自己身上。\n如果你每次只是复制答案，你没有学习。\n如果你让 AI 解释为什么这样做，你开始学习。\n如果你比较几种方案的得失，你在学习。\n如果你把一次失败复盘成规则，你在学习。\n如果你把规则沉淀成下一次可复用的模板，你在持续学习。\n人和 AI 的未来关系，不应该是：\n人越来越不学 AI 越来越会学 更好的关系是：\nAI 帮人降低摩擦 人把更多精力放到判断、抽象和复盘 人和 AI 一起形成更好的反馈闭环 这才是“人机协作”真正有价值的地方。\n尾声：从失忆的天才，到有经验的同事 现在回到开头。\n为什么你觉得 AI 有时像一个终于进入状态的同事，有时又像第一天见面的陌生人？\n因为今天的大多数 AI，还没有真正拥有“经历”。\n它更像一个失忆的天才。\n它拥有惊人的基础能力。\n它读过巨量文本。\n它能在一个窗口里迅速进入状态。\n但它的很多经验仍然留在外面：\n聊天记录里。\n项目文件里。\n知识库里。\nprompt 里。\n工具日志里。\n这些东西有用，但它们还没有完全变成能力。\n持续学习真正指向的，是下一代 AI 的形态：\n不是只会查资料的 AI。\n不是只会背历史的 AI。\n不是窗口越开越大的 AI。\n而是能把经验压缩成结构，把反馈沉淀成判断，把一次次行动变成长期能力的 AI。\n换句话说：\n上下文让 AI 记得这一刻。持续学习让 AI 拥有过去。\n这不是对 context 的否定。\n恰恰相反。\ncontext 是第一步。\nRAG 是第一步。\nAgent 是第一步。\n反馈闭环是第一步。\n但真正的终点，不是把资料柜越做越大。\n而是让资料经过压缩，长成经验。\n这也是智能最像生命的地方：\n它不是拥有更多信息。\n它是被经历改变。\n这句话也许才是持续学习最动人的地方。\n它让我们重新区分三件事：\n信息：我见过。 记忆：我还能找回来。 经验：它已经改变了我下一次怎么做。 今天很多 AI 还停在前两层。\n它见过很多东西，也能找回很多东西。\n但未来真正值得期待的，是第三层：\n它被自己的经历改变。\n这不是要否定上下文。\n上下文会继续变长，RAG 会继续变强，Agent 会继续变成熟，工具调用会继续扩展。\n这些都会留下来。\n只是它们可能不是终点。\n它们更像脚手架。\n真正的大楼，是一个能把经验沉淀成结构、把结构迁移到新问题、把反馈变成下一次判断的系统。\n下一次你觉得 AI “又忘了”的时候，也许可以换一个问法：\n不是问它为什么记不住。\n而是问：\n这次经历，有没有被压缩成下一次可以调用的能力？\n如果没有，它只是一个资料柜。\n如果有，它才开始接近我们真正说的“学习”。\n本公众号延伸阅读 如果你想顺着这条线继续读，可以看这几篇：\n《压缩即是全部 —— 菲尔兹奖得主给数学和 AI 的一封信》：理解“压缩为什么不只是工程技巧，而是智能的核心”。 《维纳没有想到的事——从防空炮到 ChatGPT，反馈如何变成智能》：理解“为什么行动之后的回声，会把系统推向学习”。 《马尔可夫的幽灵——从预测下一个词到预测下一步行动》：理解“状态、转移、下一步”这条暗线。 《AI 为什么“一本正经地胡诌”？》：理解“为什么只有上下文和语言概率，还不等于真实世界里的可靠判断”。 《世界模型之争》：理解“为什么下一代 AI 可能需要比语言更深的世界表征”。 《把自己留在场：AI 时代最稀缺的不是效率，而是主体性》：理解“为什么人也不能只把答案外包给工具”。 参考文献 Malika Aubakirova and Matt Bornstein, Why We Need Continual Learning, a16z, 2026-04-22. YouTube 视频《为什么我们需要持续学习 | a16z万字长文 | Continual Learning | 记忆碎片 | 上下文学习 | SSM | 文件柜谬误 | 核心是压缩 | 参数化 | 为什么权重更新不通》，最佳拍档。 McCloskey, M., \u0026amp; Cohen, N. J. (1989). Catastrophic Interference in Connectionist Networks: The Sequential Learning Problem. Kirkpatrick, J. et al. (2017). Overcoming catastrophic forgetting in neural networks. PNAS. 这篇提出 EWC，是持续学习里讨论“稳定性/可塑性”矛盾的经典工作。 Sun, Y. et al. (2020). Test-Time Training with Self-Supervision for Generalization under Distribution Shifts. ICML. Finn, C., Abbeel, P., \u0026amp; Levine, S. (2017). Model-Agnostic Meta-Learning for Fast Adaptation of Deep Networks. ICML. Ouyang, L. et al. (2022). Training language models to follow instructions with human feedback. NeurIPS. ","permalink":"https://jason-azure.github.io/ai-blog/posts/continual-learning/","summary":"我们正在把 AI 越做越像一个带着巨大资料柜的天才：它能查资料、能翻历史、能接工具、能在一个长上下文里表现得很聪明。但查得到不等于学会了。真正的持续学习，不是让上下文窗口无限变大，而是让经验被压缩、抽象，并在未来变成能力。","title":"AI 不是忘了你，是还没学会你"},{"content":"你打开一个 AI 绘图工具，输入一句话：\n一只橘猫，坐在月光下，柔和毛发，电影感光线。\n屏幕上先出现的不是猫。\n而是一团雪花。\n然后，混乱里似乎冒出一个模糊的圆。圆的上方长出两只耳朵。接着是眼睛、鼻子、胡须、毛发、阴影。几十步之后，一只猫从噪声里浮出来。\n这件事看起来像魔法。\n但扩散模型最美的地方，恰恰是它把魔法拆成了一个非常朴素的问题：\n这一步，哪里不像一张真实图片？\nAI 并不是从虚无中画出一只猫。\n它先学会一万种\u0026quot;猫是如何被噪声毁掉的\u0026quot;，再学会把这个毁掉的过程一步步倒放。\n说明：本文配图是为了讲清原理而制作的示意图，不是真实扩散模型输出。真实模型工作在高维像素或潜空间里，不会真的画这只卡通猫。\n一、生成不是画画，是修复 我们习惯把 AI 绘图想象成一个画家。\n画家拿起笔，从空白画布开始：\n空白画布 -\u0026gt; 草稿 -\u0026gt; 线稿 -\u0026gt; 上色 -\u0026gt; 成图 但扩散模型不是这样。\n它更像一个修复师。\n它拿到的不是空白画布，而是一张被严重污染的图片。它的任务不是\u0026quot;凭空画猫\u0026quot;，而是判断：\n如果这张图原本是一只猫，那么哪些噪声应该被去掉？\n所以扩散模型的生成过程更像：\n纯噪声 -\u0026gt; 少一点噪声 -\u0026gt; 再少一点噪声 -\u0026gt; 轮廓 -\u0026gt; 细节 -\u0026gt; 图片 它没有一次性回答\u0026quot;猫长什么样\u0026quot;。\n它只是在每一步回答一个小问题：\n刚才混进来的那一点噪声，大概是什么？\n然后把它减掉。\n再问一次。\n再减掉一点。\n重复几十次、几百次，直到噪声背后显出结构。\n这就是扩散模型最核心的反直觉：\n创造，不是从无到有。创造是连续的修复。\n二、先学会破坏 要理解扩散模型，先不要看生成过程。\n先看训练过程。\n假设我们有一张清晰的猫图，记作 x0。\n训练时，模型会做一件看起来很奇怪的事：\n往猫身上加噪声。\n第一步，加一点点噪声，猫还很清楚。\n第二步，再加一些，猫开始模糊。\n第三步，继续加，轮廓逐渐消失。\n最后，猫完全不见，只剩一团随机噪声。\n这个过程叫正向扩散过程。\n写成公式，大概是这样：\n$$ x_t = \\sqrt{\\bar{\\alpha}_t}x_0 + \\sqrt{1-\\bar{\\alpha}_t}\\epsilon $$\n不用被公式吓到。它只说了一句话：\n第 t 步的图片 = 一部分原图 + 一部分噪声。\n其中：\nx0 是原来的清晰图片； xt 是第 t 步被污染后的图片； ε 是随机噪声； α 控制这一刻还保留多少原图。 一开始，原图占大头，噪声很少。\n越往后，原图越来越少，噪声越来越多。\n到最后，原图信息几乎完全消失。\n这就是\u0026quot;扩散\u0026quot;这个名字的来源。\n它很像一滴墨水滴进水里：最开始墨水集中在一点，后来一点点散开，最后整个杯子都变成淡淡的颜色。局部结构消失了，随机性占据了全部。\n如果用《看见物理（五）：熵》的语言说：\n正向扩散，就是熵增。\n清晰图片是低熵状态。\n纯噪声是高熵状态。\n猫变成噪声，就是秩序被抹平。\n三、再学会倒放 如果训练只是把猫毁掉，那模型当然不会画画。\n关键在下一步。\n模型会被问一个问题：\n我给你一张第 t 步的带噪图片，你能猜出刚才加进去的噪声是什么吗？\n也就是说，模型看到：\n带噪图片 xt 时间步 t 然后输出：\n预测噪声 εθ(xt, t) 训练目标很简单：\n$$ \\text{Loss} = |\\epsilon - \\epsilon_\\theta(x_t, t)|^2 $$\n翻译成人话：\n真实噪声和模型猜的噪声，差得越远，损失越大。\n模型并不是直接学习\u0026quot;猫是什么\u0026quot;。\n它学习的是：\n在各种污染程度下，真实图片和随机噪声之间的差别在哪里。\n这件事听起来绕，但非常关键。\n因为只要模型能猜出噪声，就能把噪声减掉：\n更干净的图 ≈ 带噪图 - 预测噪声 这就是扩散模型的\u0026quot;倒放\u0026quot;。\n训练时，我们从清晰图片走向噪声：\nx0 -\u0026gt; x1 -\u0026gt; x2 -\u0026gt; ... -\u0026gt; xT 生成时，我们从噪声走回图片：\nxT -\u0026gt; xT-1 -\u0026gt; xT-2 -\u0026gt; ... -\u0026gt; x0 注意这里的美感：\n模型不是学会了直接画猫。它学会了在任意混乱程度下，指出回到真实世界的方向。\n如果梯度下降是在损失地形上找下坡方向，那么扩散模型就是在噪声海洋里找\u0026quot;更像真实图片\u0026quot;的方向。\n每一步都很小。\n但小步连续起来，就会出现一只猫。\n这和《马尔科夫的幽灵》里讲的状态链很像：\n当前状态 -\u0026gt; 下一步状态 -\u0026gt; 再下一步状态 LLM 预测下一个 token。\nAgent 选择下一步行动。\n扩散模型选择下一步去噪。\n三者都不是一次性完成奇迹，而是在一个状态空间里，反复回答：\n下一步往哪里走？\n四、噪声里为什么会有猫？ 这里会出现一个自然的问题：\n既然一开始是纯噪声，里面根本没有猫，那猫从哪里来？\n答案是：\n猫不在那一团噪声里。猫在模型学到的概率分布里。\n这句话很重要。\n一张纯噪声图片，单独看，什么都不是。\n但模型不是单独看它。模型带着训练中学到的\u0026quot;真实图片分布\u0026quot;来看它。\n它见过大量猫、狗、树、脸、街道、建筑。它不记住某一张猫图，而是学到：\n真实图片通常有哪些局部结构？ 眼睛和鼻子的关系是什么？ 毛发纹理大概如何连续？ 边缘如何从背景里分离？ 光影怎样才像自然世界？ 所以生成时，模型做的不是\u0026quot;从噪声里发现一只已经存在的猫\u0026quot;。\n它做的是：\n从随机起点出发，沿着概率分布的坡度，走向一个更像真实图片的区域。\n在扩散模型的理论里，这个方向常常被叫做 score：\n$$ \\nabla_x \\log p(x) $$\n可以粗略理解为：\n在当前这个位置，往哪里走，图片会更像训练数据？\n这就是为什么同样从随机噪声开始，不同随机种子会生成不同图片。\n起点不同，最终走到的山谷也不同。\n但只要模型学得足够好，这些山谷都会落在\u0026quot;真实图片分布\u0026quot;附近。\n它们不是训练集里的原图复印件。\n它们是这个概率分布允许的一个新样本。\n五、训练数据如何把文字和图像接上 上面只解释了模型怎么学会\u0026quot;去噪\u0026quot;。\n但真实的 AI 绘图工具还有一个更关键的问题：\n它怎么知道这一团噪声应该变成\u0026quot;橘猫\u0026quot;，而不是\u0026quot;汽车\u0026quot;或\u0026quot;城堡\u0026quot;？\n答案藏在训练数据里。\n现代文生图模型通常不是只看孤立图片，而是看大量图文对：\n图片：一只橘猫坐在窗台上，背景有月光 文字：orange tabby cat sitting on a windowsill, moonlight, soft fur 这样的配对可能来自人工标注、网页 alt 文本、图片标题、图文数据集，也可能很嘈杂。训练规模越大，模型见到的组合越丰富：\n\u0026#34;cat\u0026#34; 经常和耳朵、胡须、眼睛、毛发纹理一起出现 \u0026#34;moonlight\u0026#34; 经常和冷色光、暗背景、边缘高光一起出现 \u0026#34;cinematic lighting\u0026#34; 经常和强对比、景深、侧光一起出现 这里要稍微纠正一个常见直觉。\n模型通常不是把原始像素和字词 token直接放进同一个抽屉里。\n在 Stable Diffusion 这类模型里，图片会先经过 VAE 压缩成 latent。这个 latent 仍然有空间位置，可以粗略理解成一格一格的图像 token，但它们已经不是单个像素，而是压缩后的视觉特征。\n文字则走另一条路：\n提示词 -\u0026gt; 分词 -\u0026gt; text tokens -\u0026gt; Embedding -\u0026gt; 文本向量 然后，图像 latent 的每个位置和文字 token 的向量通过 cross-attention 相遇：\n图像位置：我现在应该看提示词里的哪个词？ 文字 token：\u0026#34;cat\u0026#34;、\u0026#34;moonlight\u0026#34;、\u0026#34;soft fur\u0026#34; 分别提供方向 attention 权重：这一块图像更该听哪个词 更技术一点说：\n图像 latent 特征 -\u0026gt; Query 文字 token 向量 -\u0026gt; Key / Value Query 和 Key 的相似度 -\u0026gt; 决定这一块图像关注哪些词 所以，与其说\u0026quot;像素 token 和字词 token 被硬塞进同一个 Embedding\u0026quot;，不如说：\n图像特征和文字 token 被投到可以互相比较、互相影响的向量空间里。\n训练时，模型反复看到\u0026quot;猫\u0026quot;这个词和猫的视觉结构一起出现。\n反向传播会慢慢调整参数，让包含 \u0026quot;cat\u0026quot; 的文字向量，在去噪时更容易支持耳朵、眼睛、胡须、毛发这些结构；让包含 \u0026quot;moonlight\u0026quot; 的文字向量，更容易支持冷色光、暗背景和边缘高光。\n这不是模型背下了\u0026quot;cat = 两只耳朵 + 胡须\u0026quot;这条规则。\n而是大量图文对把一件事压进了参数里：\n哪些文字，应该把噪声往哪些视觉结构上拉。\n完整训练过程可以粗略写成这样：\n1. 取一张图片和它的文字说明； 2. 用 VAE 把图片压缩成 latent z0； 3. 随机选一个时间步 t； 4. 给 z0 加噪，得到 zt； 5. 把文字说明变成 text token Embedding； 6. 让 U-Net 同时看到 zt、t、文字 Embedding； 7. 让它预测刚才加进去的噪声 ε； 8. 预测错了，就用损失函数和反向传播更新参数。 这就是为什么生成时只输入一句话，模型也能\u0026quot;听懂\u0026quot;大致方向。\n因为在训练时，它已经看过无数次：\n这句话附近，应该长出什么样的视觉结构。 六、文字如何控制图像 那提示词又是怎么起作用的？\n为什么输入\u0026quot;猫\u0026quot;，它就更容易生成猫；输入\u0026quot;赛博朋克城市\u0026quot;，它就生成霓虹灯和高楼？\n关键是：\n文字也会先变成向量。\n提示词不是直接变成像素。\n它会先经过文本编码器，变成一组向量表示。然后在每一步去噪时，这组文字向量都会参与判断：\n这一步去噪之后，图像是不是更像这句话？ 没有文字条件时，模型只需要生成\u0026quot;像真实图片\u0026quot;的东西。\n有文字条件时，模型要同时满足两个要求：\n像真实图片 像这句话 所以提示词不是最后贴上去的标签。\n它从第一步去噪就开始参与。\n每一步，模型都被文字向量轻轻拉偏一点：\n别只变成一张普通图片。 朝“橘猫”走。 朝“月光”走。 朝“柔和毛发”走。 真实系统里，这个\u0026quot;拉偏\u0026quot;还会被专门放大。\n比如 classifier-free guidance 会让模型做两次判断：\n不看提示词时，下一步该怎么去噪？ 看提示词时，下一步该怎么去噪？ 两者的差，就是文字提示词施加的方向。生成器再把这个方向乘上一个系数：\n最终方向 = 无提示词方向 + guidance scale × 文字带来的偏移 guidance scale 越大，图片越努力贴近提示词，但也更容易过度用力，出现僵硬、失真或细节异常。\n这和《万物皆向量》的主题正好接上：\n文字、图像、风格、构图，最后都要在某个向量空间里相遇。\nAI 绘图的底层不是\u0026quot;语言变成图片\u0026quot;。\n更准确地说，是：\n文字向量在每一步去噪中，改变图像向量的运动方向。\n七、为什么它比 GAN 稳 在扩散模型流行之前，图像生成领域最耀眼的路线是 GAN。\nGAN 的思路很戏剧化：\n一个模型负责造假图。\n另一个模型负责验真假。\n造假者越来越会骗，鉴别者越来越会抓。两者对抗，最后造假者学会生成逼真的图片。\n这个想法很漂亮，但训练很难。\n因为它像让两个学生互相考试：\n生成器太弱 -\u0026gt; 鉴别器一眼看穿 -\u0026gt; 生成器学不到东西 鉴别器太弱 -\u0026gt; 生成器随便糊弄 -\u0026gt; 图片质量上不去 两者不平衡 -\u0026gt; 训练崩掉 扩散模型的气质完全不同。\n它不安排两个模型打架。\n它把一个巨大问题拆成很多小问题：\n第 999 步：从纯噪声里去掉一点噪声 第 998 步：再去掉一点 第 997 步：再去掉一点 ... 第 1 步：修最后一点细节 每一步都不要求天才。\n每一步只要求模型把方向判断得稍微准一点。\n这就是扩散模型稳定的原因之一：\n它不是让模型一次跳到答案，而是给模型修了一千级台阶。\n台阶多，所以慢。\n但台阶多，也让它稳。\n早期扩散模型生成一张图需要很多步，这也是它被批评\u0026quot;慢\u0026quot;的原因。后来的 DDIM、Latent Diffusion、Consistency Models 等方向，都在努力减少步数。\n但无论步数怎么压缩，核心精神仍然没变：\n把生成拆成连续的、可学习的去噪过程。\n八、Stable Diffusion 为什么能跑起来 如果真的在高清图片的每个像素上做扩散，成本会非常高。\n一张 1024×1024 的 RGB 图片，有三百多万个数字。\n每一步去噪都在这么大的空间里跑，太贵。\nStable Diffusion 的关键改造是：\n不要直接在像素空间里扩散。先把图片压缩到潜空间。\n所谓潜空间（latent space），可以理解为图片的压缩表示。\n不是每个像素都保留，而是保留对图像结构最重要的那些信息：\n大致构图 物体位置 颜色关系 纹理倾向 语义结构 然后，扩散模型主要在这个更小的潜空间里工作。\n这件事有点像你不直接修改一部高清电影的每一帧，而是先写一个分镜脚本、灯光方案和角色位置，再把它还原成画面。\n当然这只是直觉。\n技术上，Stable Diffusion 使用的是变分自编码器（VAE）把图片压缩成 latent，再在 latent 上做扩散，最后由解码器还原成图片。\n这一步让高分辨率图像生成从\u0026quot;实验室玩具\u0026quot;变成了\u0026quot;普通显卡能跑的工具\u0026quot;。\n也让 AI 绘图真正走向大众。\n九、从熵增到熵减 现在我们可以把整件事重新看一遍。\n正向过程：\n清晰图片 -\u0026gt; 加噪 -\u0026gt; 更乱 -\u0026gt; 纯噪声 这是熵增。\n反向过程：\n纯噪声 -\u0026gt; 去噪 -\u0026gt; 更有结构 -\u0026gt; 清晰图片 这是熵减。\n看起来，扩散模型像在反抗热力学第二定律。\n它把混乱变成秩序。\n它从雪花里恢复出猫。\n但它没有真的违反物理。\n因为这个\u0026quot;熵减\u0026quot;不是免费的。\n它背后有训练数据，有 GPU，有电力，有散热，有数据中心的空调。你在屏幕上看到一只猫从噪声中浮现，现实世界里有另一部分能量正在变成废热。\n这正好回到《看见物理（五）：熵》里的那句话：\n信息不是虚无的东西。信息有物理代价。\n扩散模型真正做的，是把人类图像世界中的结构压进神经网络参数里。\n生成时，它再用这些结构去约束随机噪声。\n所以更准确地说：\n扩散模型不是让宇宙倒放，而是用已经学到的信息，局部地逆转混乱。\n十、这和 LLM 是同一种思想吗？ 表面上看，LLM 和扩散模型完全不同。\n一个写字，一个画图。\n一个每次预测下一个 token，一个每次去掉一点噪声。\n但底层有一种很深的相似性：\nLLM： 当前文本状态 -\u0026gt; 下一个 token 的概率分布 -\u0026gt; 采样 扩散模型： 当前噪声状态 -\u0026gt; 下一步更干净图像的概率分布 -\u0026gt; 采样 LLM 问的是：\n在这段上下文后面，下一个词最合理是什么？\n扩散模型问的是：\n在这团噪声里面，下一步往哪里去更像真实图片？\nAgent 问的是：\n在当前环境状态下，下一步行动最合理是什么？\n三者都在做同一件事：\n在不确定中，一步步选择更合理的下一个状态。\n这里可以和《马尔科夫的幽灵》接上。\n马尔科夫链给了我们一个最小框架：\n状态 -\u0026gt; 下一步 扩散模型把这个框架放进图像生成里：\n噪声状态 -\u0026gt; 下一步去噪 LLM 把它放进语言里：\n上下文状态 -\u0026gt; 下一个 token Agent 把它放进行动里：\n环境状态 -\u0026gt; 下一步动作 AI 时代很多看似不同的技术，背后都藏着这条线：\n智能不是一次性抵达答案，而是在状态空间里连续修正方向。\n十一、从噪声中看见世界 现在再回到开头那只猫。\n它不是藏在噪声里，等 AI 把它挖出来。\n也不是模型像人类画家一样，先在脑中想象一只猫，再把它画到画布上。\n真正发生的是：\n人类把大量图片和文字说明配对交给模型； 模型把图片压缩成 latent，把文字变成 token Embedding； 模型学会这些 latent 被噪声破坏时的规律； 模型学会在文字条件下判断\u0026quot;更像这句话里的真实图片\u0026quot;的方向； 生成时，文字提示词把去噪方向进一步拉向\u0026quot;猫\u0026quot;、\u0026ldquo;月光\u0026rdquo;、\u0026ldquo;柔和毛发\u0026rdquo;； 一步一步，随机噪声被约束成一个具体图像。 所以扩散模型的秘密不是想象力。\n它的秘密是：\n可逆的破坏。\n它先把世界拆散，再学习如何把世界拼回来。\n它先让猫消失在噪声里，再学习如何让猫重新出现。\n这就是扩散模型的数学美学：\n生成的本质，不是凭空创造。\n生成的本质，是给噪声一个方向。\n参考与延伸 Jascha Sohl-Dickstein et al., 2015, Deep Unsupervised Learning using Nonequilibrium Thermodynamics —— 早期把非平衡热力学和扩散式生成模型连接起来的经典论文。 Jonathan Ho, Ajay Jain, Pieter Abbeel, 2020, Denoising Diffusion Probabilistic Models —— DDPM，现代扩散模型的重要转折点。 Yang Song et al., 2021, Score-Based Generative Modeling through Stochastic Differential Equations —— 用随机微分方程统一 score-based model 和扩散模型。 Robin Rombach et al., 2022, High-Resolution Image Synthesis with Latent Diffusion Models —— Stable Diffusion 背后的 Latent Diffusion 思想。 Jonathan Ho, Tim Salimans, 2022, Classifier-Free Diffusion Guidance —— 解释无分类器引导如何让模型更听提示词。 Alec Radford et al., 2021, Learning Transferable Visual Models From Natural Language Supervision —— CLIP，用图文对学习图像和文字之间的语义对齐。 本公众号延伸阅读 《看见物理（五）：熵——承认无知的勇气》：理解正向扩散为什么是熵增。 《玻尔兹曼的遗产》：理解概率分布、Temperature 和 AI 生成之间的物理暗线。 《马尔科夫的幽灵——从预测下一个词到预测下一步行动》：理解\u0026quot;状态 -\u0026gt; 下一步\u0026quot;这条最小语法。 《万物皆向量——当 AI 选择用数学理解世界》：理解文字提示词为什么要先变成向量。 ","permalink":"https://jason-azure.github.io/ai-blog/posts/diffusion-models/","summary":"AI 画画不是从空白画布开始，也不是脑子里凭空想象出一只猫。扩散模型先学会一万种『猫如何被噪声毁掉』，再把这个毁掉的过程一步步倒放。生成的秘密，不是凭空创造，而是给噪声一个方向。","title":"从噪声中看见猫——扩散模型的数学美学"},{"content":"你现在打开一个 AI 工具，可以连续做三件事：\n上传一张图片，问它：\n这张图里有什么？\n再追问：\n这张 PPT 的版式哪里不好？\n最后直接下指令：\n按这个风格，重新生成一张公众号封面图。\n在用户界面上，这三件事都发生在同一个聊天框里。\n于是一个很自然的误解出现了：\n是不是 LLM 已经学会看图、画图了？\n这个说法不算完全错。\n但它太粗糙。\n如果我们想真正理解今天的 AI 多模态，就不能只说“LLM 会看图了”。\n更准确的说法是：\n文字、图像、声音、视频正在被压缩进同一种可计算的表示空间。LLM 有时是这个系统的大脑，但 Transformer、视觉编码器、图像 tokenizer、扩散模型和 Flow 生成器，才是让多模态真正运转起来的机器零件。\n这篇文章要做一件事：\n把“多模态”“VLM”“MLLM”“图像生成模型”“原生多模态”“Diffusion Transformer”“MMDiT”这些容易混在一起的名字，拆成一张清楚的架构地图。\n但只画一张架构图还不够。\n真正重要的问题是：\n今天这些主流多模态模型，到底站在视觉智能的哪一级？\n会识别图片，等于真正看懂世界吗？\n会生成漂亮图片，等于拥有视觉想象力吗？\n能回答截图问题，等于具备空间智能吗？\n答案都不是简单的“是”或“不是”。\n这也是这篇文章相比前面几篇多模态文章的新价值：\n它不只是解释某一个模块，而是给今天的图像 AI 做一次能力定位。\n我们会把主流模型放进一条能力阶梯里：\n物体识别 -\u0026gt; 图文对齐 -\u0026gt; 看图问答 -\u0026gt; 图像生成 -\u0026gt; 多轮编辑 -\u0026gt; 空间智能 / 世界模型 这样看，你就会发现：GPT-4V、Claude、Gemini、Qwen-VL、Stable Diffusion、FLUX、Qwen-Image、Janus-Pro 并不是“谁更强”这么简单。\n它们回答的是不同层级的问题。\n这也是为什么我们要谨慎使用“看见”“理解”“想象”这些词。\nOpenAI 和 Anthropic 的官方文档都承认，今天的视觉语言模型虽然很强，但在精确空间定位、计数、低质量小图、高风险医学判断等场景仍然会犯错。BLINK、MMVP 等评测论文也反复指出：很多多模态大模型“能看见”，但在一些人类一眼就能完成的底层视觉感知任务上，仍然“不一定真的感知到了”。\n所以这篇文章不是给 AI 贴金。\n它要做的是另一件事：\n把模型的能力、边界和未来方向放到同一张地图上。\n一、先把名字摆正 今天 AI 圈最大的问题之一，是名字比架构跑得快。\n很多产品都被叫成“大模型”。\n很多能看图的模型都被叫成“多模态大模型”。\n很多能画图的系统也被说成“LLM 画图”。\n但从架构上看，这些名字不是一回事。\nLLM：语言模型，不等于所有智能模型 LLM 的全称是 Large Language Model，大语言模型。\n它最标准的形式是：\n一串文字 token -\u0026gt; 预测下一个文字 token GPT、Llama、Qwen、DeepSeek、Claude 这类模型，最核心的训练任务都是围绕语言序列展开的。\n它们强大的地方，是在海量文本里学到了世界知识、推理模式、表达方式和任务结构。\n但原始 LLM 并不会直接“看见像素”。\n你给它一张 1024x1024 的图片，它不能天然理解每个像素是什么意思。\n必须先有人把图片翻译成它能处理的形式。\nTransformer：架构，不是语言模型专属 Transformer 不是 LLM 的同义词。\nTransformer 是一种神经网络架构。\n它最重要的能力，是处理一串 token 之间的关系：\ntoken 1 和 token 2 有什么关系？ token 5 应该注意 token 17 吗？ 当前位置要从哪些位置取信息？ 文本可以变成 token。\n图片也可以被切成 patch，然后变成视觉 token。\n视频可以变成一串“空间 patch + 时间位置”的 token。\n音频可以变成频谱片段 token。\n所以真正泛化到多模态的，不是“语言”本身，而是：\n把世界切成 token 序列，再用 Attention 建模 token 之间关系的这套方法。\nLLM 是 Transformer 在语言上的巨大成功。\n多模态模型，是这套方法向图像、视频、声音、动作的扩展。\nVLM / MLLM / LMM：会看图的语言助手 VLM 通常指 Vision-Language Model，视觉语言模型。\nMLLM 或 LMM 通常指 Large Multimodal Model，大型多模态模型。\n最常见的形式是：\n图片 -\u0026gt; 视觉编码器 -\u0026gt; 视觉 embedding -\u0026gt; 投影层 -\u0026gt; LLM -\u0026gt; 文字回答 也就是说，很多“会看图的 LLM”并不是语言模型自己长出了眼睛。\n而是前面接了一个视觉编码器。\n视觉编码器负责把图片变成一串向量。\n投影层负责把这串向量翻译到 LLM 能理解的 embedding 空间。\nLLM 负责把这些视觉信息和你的文字问题放在一起推理，然后输出文字。\nLLaVA 就是这个路线的经典开源代表：它把视觉编码器和 LLM 连接起来，再通过视觉指令微调，让模型能围绕图片进行对话。\nQwen2.5-VL 是更强的一类视觉语言模型，它不仅看普通图片，还强调文档解析、图表理解、视频理解、目标定位和 GUI 操作。\n但注意：\nVLM 通常擅长“看图并说话”，不一定擅长“从零生成图片”。\n看图和画图，是两条不同的数据流。\n二、语言不是世界的全部 讲多模态，最容易掉进一个陷阱：\n把其他模态都翻译成文字，然后以为问题解决了。\n这当然有用。\n语音可以转成文字。\n图片可以生成描述。\n视频可以写成摘要。\n一段音乐也可以被说成“舒缓、温暖、带一点忧伤”。\n但这样做会丢掉大量信息。\n就拿语音来说。\n同一句“我没事”，可以有很多种说法：\n平静地说：我没事 哽咽地说：我没事 生气地说：我没事 疲惫地说：我没事 讽刺地说：我没事 转写成文字以后，它们都是同一句话。\n但在人类耳朵里，它们几乎是五种不同的信息。\n语气、音色、停顿、抑扬顿挫、呼吸、笑声、哽咽、环境声，这些都不是“文字内容”的附属品。\n它们本身就是信息。\n音乐更明显。\n一段旋律不一定需要先翻译成语义，才会让人感到悲伤、庄严、辽阔或不安。\n自然声音也一样。\n雨声、海浪、风穿过树林、远处火车经过，这些声音给人的感受，常常不是一句话能替代的。\n如果把它们全部压缩成：\n这是一段雨声。 这是一段海浪声。 这是一段舒缓的音乐。 世界已经被压扁了。\n视频则更进一步。\n视频不是一堆图片的集合。\n它有时间。\n有运动。\n有因果。\n有镜头语言。\n有一个动作发生前后的连续变化。\n一张图片能告诉你“杯子在桌子边缘”。\n一段视频还能告诉你：\n杯子正在滑动 手马上要碰到杯子 水可能会洒出来 镜头正在靠近 人物情绪正在变化 这些信息如果只压缩成文字摘要，也会损失很多。\n所以，多模态真正重要的地方，不是把所有东西都翻译成语言。\n而是让模型能直接处理更多种表示：\n文字 token 音频 token 图像 patch 视频时空 token 动作 token 这也是我们重新面对维特根斯坦那句话时，会产生的新问题。\n维特根斯坦说：\n我的语言的边界，就是我的世界的边界。\n这句话很深。\n语言确实是人类最强大的压缩工具。\n没有语言，我们很难把经验变成概念，把概念变成知识，把知识传给别人。\n但如果世界只剩语言，世界也会被压缩得太狠。\n味道、旋律、光影、空间、触感、节奏、身体动作，都有一部分不能被完整翻译成文字。\n这就是多模态 AI 的真正挑战：\n不是把世界翻译成一句话，而是让模型保留世界中那些语言装不下的部分。\n这也是为什么音频和视频模型值得关注。\nMeta 的 AudioCraft / MusicGen 说明，音乐可以被建模成一种可生成的音频 token 序列，而不只是“歌词”。\nStable Audio Open 说明，开源社区也在尝试把声音效果、鼓点、环境声和音乐片段变成可控生成对象。\nOpenAI 的 Sora、Google 的 Veo、Meta 的 Movie Gen，则说明视频生成不只是“图片更大”，而是要同时处理时间一致性、运动、镜头和世界状态。\nDeepMind 的 Genie / Genie 2 这类项目更进一步，把视频和交互环境联系起来：模型不仅要生成画面，还要理解动作如何改变世界。\n这些方向在本文里不会展开。\n但它们给我们一个重要提醒：\n图像只是多模态的第一扇门。声音、视频和行动，才会把 AI 真正推向现实世界。\n三、图像识别：把图片翻译成模型能读的语言 先看“识别图片”。\n这件事的输入和输出很清楚：\n输入：图片 输出：文字、标签、框、坐标、判断、操作建议 传统计算机视觉模型会直接做分类、检测、分割。\n多模态时代更常见的方式，是把图片变成一串视觉 token，再交给语言模型。\n一个典型流程是：\n图片 -\u0026gt; 切成 patch -\u0026gt; Vision Transformer / CLIP / SigLIP / Qwen-ViT 编码 -\u0026gt; 得到视觉 embedding -\u0026gt; projector / resampler 对齐到语言空间 -\u0026gt; LLM 结合文字问题生成回答 这里有一个关键转折：\n模型不是直接“看见一只猫”。\n模型先看到的是很多视觉 patch 的向量。\n这些向量里压缩了边缘、纹理、形状、局部结构、物体关系、文字区域、版式信息。\n然后语言模型把这些视觉向量当成一种特殊的“上下文”。\n就像你给 LLM 塞进一段文本背景材料一样，现在你给它塞进一段视觉背景材料。\n所以，看图模型的第一性原理不是“眼睛”，而是：\n把图像压缩成一串可被语言模型消费的向量。\n这就是为什么 CLIP 很重要。\nCLIP 做的事不是画图，而是把图片和文字放进同一个语义空间：\n一张猫图 -\u0026gt; 图像向量 \u0026#34;a cat\u0026#34; -\u0026gt; 文字向量 如果两个向量靠得近，模型就知道这张图和这句话匹配。\n从那以后，图像和文字之间有了一座桥。\n后来的很多 VLM、扩散模型和图像编辑系统，都在不同程度上继承了这座桥的思想：\n先让图像和语言可以在同一个空间里对齐，再谈理解和生成。\n四、图像生成：不是把图片翻译成文字，而是把意图翻译成像素 图像生成的方向正好相反。\n识别图片是：\n图片 -\u0026gt; 文字 生成图片是：\n文字 -\u0026gt; 图片 但这个箭头不能简单倒过来。\n因为输出图片比输出文字复杂得多。\n一句话只有几十个 token。\n一张高清图可能有几百万个像素。\n模型不可能像写文章一样，直接从左到右一个像素一个像素地“写”完整张图。\n经典 Stable Diffusion 的做法，是把图像生成拆成几层：\n文字 prompt -\u0026gt; 文本编码器 -\u0026gt; 条件向量 -\u0026gt; 潜空间里的去噪模型 -\u0026gt; VAE 解码器 -\u0026gt; 像素图片 这里的关键词是“潜空间”。\n上一篇讲扩散模型时，我们说 AI 不是从空白画布开始画猫，而是从噪声里一步步去噪。\nStable Diffusion 更进一步：\n它不直接在原始像素空间里去噪，而是在一个压缩后的 latent space 里去噪。\n这有点像：\n真实图片 -\u0026gt; 压缩成视觉草稿 -\u0026gt; 在草稿空间里生成 -\u0026gt; 再解压回图片 VAE 负责压缩和解压。\nU-Net 或 Diffusion Transformer 负责在潜空间里生成结构。\n文本编码器负责告诉生成器：\n这团噪声应该朝哪个语义方向收缩？\n这就是图像生成和图像识别的第一处本质差异：\n识别模型要把图像压缩成语义；生成模型要把语义展开成图像。\n压缩和展开，是两个方向。\n它们共享一些组件，但目标并不相同。\n五、为什么新模型越来越“听话”？ 早期 AI 画图最常见的问题是：\nPrompt 写得很细，出来的图却像抽盲盒。\n你说“三个人站在红色汽车旁边”，它可能画成两个人、四个人、蓝色车、车在远处。\n你让它生成一张带中文标题的海报，它常常生成一堆像文字但不是文字的符号。\n问题不只是“画得不够好”。\n更准确地说，是：\n文字约束没有足够深地进入图像生成过程。\nStable Diffusion 1.x 的核心是 latent diffusion + U-Net + cross-attention。\n这已经很强。\n但文字和图像的互动方式仍然有限。\n后来的 SDXL、Stable Diffusion 3、FLUX.1、Qwen-Image 等模型，一条明显趋势是：\n把文本理解、更大的 Transformer、更强的图像 token 表示、更稳定的 Flow / Diffusion 训练方式，接得越来越深。\nStable Diffusion 3 的 MMDiT 是一个很好的例子。\nMMDiT 可以理解成“多模态 Diffusion Transformer”。\n它不只是把文字向量丢给图像 U-Net 当条件。\n它让文本 token 和图像 token 在 Transformer 的 Attention 中更深地交互。\n同时，文本和图像不是完全混用一套权重，而是保留各自适合的表示方式，再在 Attention 层相遇。\nFLUX.1 则代表了另一个方向：用更大的 Rectified Flow Transformer 做高质量文本到图像生成。\nQwen-Image 的重点又不同。\n它把复杂文字渲染、中文英文混排、图像编辑一致性当成核心能力，并在技术报告里强调了 Qwen2.5-VL 与 MMDiT、VAE 表示之间的对齐。\n这说明今天的“会画图”，已经不只是美术风格问题。\n它正在变成一个更复杂的问题：\n语言理解 + 世界知识 + 版式理解 + 空间关系 + 文字渲染 + 主体一致性 + 编辑前后保真 + 生成器稳定性 所以，新一代图像模型更“听话”，不是因为 prompt 咒语更神秘。\n而是因为：\n用户意图进入生成过程的通道更宽、更深、更稳定了。\n六、统一多模态：看图和画图能不能变成一个模型？ 现在来到最关键的问题。\n既然识别图片是：\n图片 -\u0026gt; 文字 生成图片是：\n文字 -\u0026gt; 图片 那能不能训练一个模型，同时做这两件事？\n答案是：可以，但并不简单。\n因为“理解图像”和“生成图像”需要的视觉表示并不一样。\n理解图片时，模型关心的是语义：\n这里有一只猫 猫坐在窗边 左上角有一行文字 这张表格第三列是金额 生成图片时，模型还要关心极细的视觉细节：\n毛发纹理 光照方向 字体笔画 边缘是否连续 人物身份是否一致 局部纹理是否破碎 一个视觉编码器如果太偏语义，生成时可能丢细节。\n一个视觉编码器如果太偏像素，理解时又可能不够抽象。\nDeepSeek 的 Janus 系列正是抓住了这个矛盾。\nJanus 的核心思想是：\n理解和生成共用一个 Transformer 主干，但视觉编码路径要解耦。\n也就是说：\n图像理解路径：图片 -\u0026gt; 语义视觉编码 -\u0026gt; 统一 Transformer -\u0026gt; 文字 图像生成路径：文字 -\u0026gt; 统一 Transformer -\u0026gt; 生成视觉编码 -\u0026gt; 图像 这条路线很适合用来解释“统一多模态”的难点。\n它告诉我们：\n统一不是把所有东西硬塞进一个编码器。\n真正的统一，是在高层语义和任务空间里统一；在底层表示上，仍然允许不同模态、不同任务保留自己的专用通道。\nChameleon 则代表另一种思路：\n把文本和图像都 token 化，放进同一个自回归序列模型里，让模型处理任意交错的文本和图像 token。\n它的目标更像：\n文字 token + 图像 token + 文字 token + 图像 token -\u0026gt; 同一个 Transformer -\u0026gt; 继续生成文字或图像 token 这听起来最接近“万物皆 token”。\n但工程上非常困难，因为图像 token 数量巨大，训练稳定性、生成质量、对齐方式都会变复杂。\n所以，今天的多模态架构大致分成四类：\n类型 代表模型 输入输出 关键思想 图文对齐模型 CLIP 图片/文字 -\u0026gt; 向量 把图像和文本放进同一个语义空间 视觉语言模型 LLaVA、Qwen2.5-VL 图片+文字 -\u0026gt; 文字 视觉编码器接到 LLM，让 LLM 能围绕图片说话 图像生成模型 Stable Diffusion、SDXL、FLUX.1、Qwen-Image 文字/图片条件 -\u0026gt; 图片 用扩散、Flow、VAE、MMDiT 把意图展开成图像 统一多模态模型 Chameleon、Janus-Pro 文字+图片 -\u0026gt; 文字+图片 尝试用一个主干同时做理解和生成 这张表比“LLM 会不会画图”更重要。\n因为它把混在一起的能力拆开了。\n七、LLM 能泛化到多模态吗？ 现在可以回答开头的问题了。\nLLM 能不能泛化到多模态？\n答案分两层。\n如果你说的 LLM 是“只在文字上训练、只接收文字 token、只输出文字 token 的语言模型”，那它不能直接泛化到多模态。\n它没有眼睛。\n它不知道像素。\n它需要视觉编码器、图像 tokenizer、投影层、多模态训练数据和新的对齐目标。\n但如果你说的 LLM 是“一个巨大的自回归 Transformer，里面压缩了语言、知识、推理、任务规划和指令跟随能力”，那它确实可以成为多模态系统的核心大脑。\n图片可以变成视觉 token。\n视频可以变成时空 token。\n声音可以变成音频 token。\n动作可以变成控制 token。\n只要这些 token 能进入同一个上下文，Transformer 就可以学习它们之间的关系。\n所以最准确的说法是：\n不是 LLM 天然泛化到多模态，而是 Transformer + token 化 + 表示对齐 + 多模态训练，让语言模型的能力可以迁移到更多模态上。\n这也是为什么“Transformer”这个词比“LLM”更适合描述底层趋势。\nLLM 是语言时代的名字。\n多模态基础模型，是下一阶段更准确的名字。\n八、从 ImageNet 到空间智能：今天的模型站在哪里？ 如果要理解今天图像 AI 的位置，李飞飞是一条绕不开的线索。\n她参与推动的 ImageNet，曾经把计算机视觉带进一个新阶段。\n那时最核心的问题是：\n给一张图片，模型能不能认出里面是什么？\n2012 年 AlexNet 在 ImageNet 上取得突破后，深度学习真正席卷视觉领域。\n从那以后，计算机视觉的主线很长一段时间都是：\n分类 -\u0026gt; 检测 -\u0026gt; 分割 -\u0026gt; 图文对齐 -\u0026gt; 看图问答 但这里有一个容易被忽略的事实：\n识别物体，不等于理解世界。\n一张图里有“杯子”，这只是第一层。\n杯子在桌子的左边还是右边？\n杯子会不会掉下去？\n人伸手过去能不能拿到？\n如果把杯子移动到画面另一侧，阴影和遮挡应该怎么变？\n这些问题已经不只是“图像识别”。\n它们进入了更高一层：\n空间智能。\n李飞飞近几年反复强调的，正是这个方向：AI 不应该只处理文字，也不应该只给图片打标签，而要能够理解、生成并推理三维世界中的对象、关系、动作和变化。\n这给我们一个很重要的判断标准：\n图像 AI 的终点，不是把图片描述成一句话，而是建立一个可以被推理、生成和行动使用的世界表示。\n用这把尺子看今天的主流模型，会更清楚。\nGPT-4V、Claude、Gemini、Qwen2.5-VL 这类模型，已经能把图片接进语言推理系统。\n它们擅长：\n描述图片 理解截图 读图表和文档 回答视觉问题 把图片内容转成文字推理 但它们仍然不等于完整的视觉智能。\nOpenAI 的 GPT-4V system card 明确提醒过，模型可能出现视觉幻觉，也可能在细节、空间关系、医学图像等高风险场景犯错。\nAnthropic 的 Claude 视觉文档也把空间推理、计数、低质量小图、医学诊断等列为限制场景。\n学术界的 BLINK、MMVP 等评测，则把问题拆得更细：\n两个图形是否真的相交？ 物体左右关系是否判断正确？ 图片里的细微视觉模式是否被识别？ 模型是不是只靠语言先验在猜？ 这些题有时对人类很简单，但对多模态大模型并不稳定。\n这不是说它们“没用”。\n恰恰相反，这说明它们已经强到需要更精细的评估。\n但我们不能把“能接收图片输入”误读成“已经拥有人的视觉系统”。\n今天主流模型大致站在这里：\n物体识别：已经很成熟 图文对齐：已经非常强 看图问答：进入可用阶段，但仍有错觉和边界 图像生成：质量很高，控制性快速提升 图像编辑：正在从玩具走向生产工具 空间智能：刚刚开始 所以，这篇文章真正想给你的，不是一堆模型名。\n而是一把尺子：\n以后看到任何“多模态模型发布”，先问它解决的是哪一层：识别、对齐、问答、生成、编辑，还是空间智能？\n这比单纯问“它是不是大模型”有用得多。\n九、几个适合深挖的模型和项目 如果这篇文章要讲得通俗、深刻、准确，不能只围绕闭源模型，也不能只围绕图片。\n闭源模型可以作为体验入口，但技术拆解最好依赖开源项目、公开论文和官方技术材料。\n下面这些模型和项目，适合作为后续深层拆解对象。\n1. Stable Diffusion / SDXL：经典扩散模型的主干 适合解释：\n为什么要在 latent space 里生成； VAE 如何压缩和解压图像； U-Net 如何一步步去噪； cross-attention 如何把 prompt 接进图像生成； 为什么图像生成不是“从左到右画出来”。 这条线适合承接经典扩散模型的直觉基础。\n它是读者已经理解过的直觉基础。\n2. Stable Diffusion 3 / MMDiT：图像生成里的多模态 Transformer 适合解释：\n为什么图像生成模型也开始大量使用 Transformer； 为什么文本 token 和图像 token 需要更深交互； MMDiT 里的“多模态”到底是什么意思； 为什么文字渲染和 prompt adherence 会变好。 这条线可以把上一篇的 DDPM / LDM 推进到现代图像模型。\n3. FLUX.1：开源权重里的高质量 Flow Transformer 适合解释：\nRectified Flow 和经典扩散的区别； 为什么更直的生成路径可能减少采样步骤； 为什么大规模 Transformer 能提升图像质量和指令跟随； open weights 对研究和工作流生态的意义。 这条线适合连接“开源社区现在在用什么”。\n4. Qwen-Image：中文文字渲染和图像编辑的好案例 适合解释：\n为什么以前 AI 画图里的文字经常是乱码； 为什么中文比英文文字渲染更难； 为什么图像编辑需要同时保留语义和像素细节； Qwen2.5-VL、VAE、MMDiT 之间如何形成双重表示。 这条线尤其适合公众号。\n因为中文文字渲染是读者一眼能感受到的进步。\n5. LLaVA / Qwen2.5-VL：看图模型的透明样板 适合解释：\n视觉编码器如何接到 LLM； projector / adapter 到底在翻译什么； 为什么 VLM 能读图表、看截图、做 OCR； 为什么“看图回答”和“生成图片”不是同一种能力。 这条线适合澄清“AI 识别图片”和“AI 生成图片”的关系。\n6. Janus-Pro：统一理解与生成的关键样板 适合解释：\n为什么看图和画图不能只用一个视觉编码器硬扛； 为什么统一多模态需要任务路径解耦； 自回归模型如何同时服务图像理解和图像生成； “原生多模态”不是产品宣传词，而是一个架构方向。 这条线适合作为文章的高潮。\n它能把读者从“AI 会看图、会画图”带到：\nAI 正在把不同模态都变成同一个世界模型的入口和出口。\n7. AudioCraft / Stable Audio Open：声音不是文字的附属品 适合解释：\n为什么语音转文字会丢失语气、音色和情绪； 为什么音乐生成不能只靠歌词或文字描述； 音频 token、codec、spectrogram 这些表示如何保留声音细节； 为什么自然声、环境声、音效也是世界信息的一部分。 这条线适合把“多模态”从图像扩展到听觉。\n8. Sora / Veo / Movie Gen：视频不是一堆图片 适合解释：\n为什么视频生成要处理时间一致性； 为什么运动、镜头、因果关系比单张图片更难； 为什么“画面好看”不等于“世界合理”； 为什么视频模型正在逼近世界模型问题。 这条线适合把图像生成推进到时间、动作和场景演化。\n9. Genie / Genie 2：从看见世界到操作世界 适合解释：\n为什么交互式视频环境比普通视频生成更接近世界模型； 动作 token 如何进入生成过程； 为什么“下一帧会发生什么”开始接近“如果我这样做会怎样”； 多模态如何从感知走向行动。 这条线适合作为未来讲具身智能、机器人和世界模型的入口。\n十、这篇文章真正要讲的不是画图，而是世界接口 上一篇扩散模型文章讲的是：\nAI 如何从噪声中生成一张图。\n这一篇要往前走一步：\nAI 如何把文字、图像、视频、声音接进同一个计算世界。\n图片识别不是简单识别物体。\n它是把视觉世界压缩成语言和语义。\n图片生成不是简单画画。\n它是把语言、意图、上下文和世界知识展开成视觉世界。\n多模态也不是给 LLM 插一个摄像头。\n它是让模型拥有更多输入和输出接口：\n文字是接口 图片是接口 声音是接口 视频是接口 动作也是接口 当这些接口被统一到 token、embedding、Attention 和生成模型里，AI 就不再只是一个“会说话的模型”。\n它开始接近一个更通用的东西：\n一个可以在不同感官之间翻译、推理、生成和行动的世界模型。\n这就是为什么“多模态”重要。\n不是因为它让聊天框多了一个上传图片按钮。\n而是因为它把 AI 从语言空间，推向了现实世界。\n本公众号延伸阅读 如果你想把这张地图的几块底座补得更牢，可以回看这几篇：\n向量底座：《AI 的数学语言（一）》和《看见数学（十一）：向量》，解释为什么“一组数字”可以描述一个对象。 语义底座：《当数字学会了远近亲疏——从查表到 Embedding 的一步跨越》，解释 token 如何变成语义坐标。 表示底座：《万物皆向量——当 AI 选择用数学理解世界》，解释为什么文字、图片、声音最终都会进入向量空间。 看图底座：《当 AI 学会了看——多模态大模型的架构拆解》，解释 ViT、CLIP、对齐模块和 LLaVA。 生成底座：《从噪声中看见猫——扩散模型的数学美学》，解释图像生成为什么是从噪声到图像的反向过程。 这篇文章站在它们上面，往前多走了一步：\n不只问“模型怎么做”，还要问“它到底处在视觉智能的哪一级”。\n配图与动图分镜 这篇的视觉质量必须比扩散模型文章上一个台阶。不要再只做白底卡片和简单卡通动图，应该采用“高质量主视觉 + 程序化清晰标注 + 动效机制图”的组合。\n图 1：多模态架构地图 画面中心是一条主干：\ntoken / embedding space 四个方向接入：\ntext tokens； image patches / visual tokens； audio tokens； video spatial-temporal tokens。 中间是 Transformer / Attention。\n右侧分出四个输出：\ntext answer； image； audio； action。 视觉要求：科技图谱风，不要营销海报，不要抽象渐变球。文字标签后期用 PIL / SVG / HTML canvas 叠加，保证中文清晰。\n图 2：看图和画图是两条相反链路 左半边：\nimage -\u0026gt; vision encoder -\u0026gt; visual embeddings -\u0026gt; LLM -\u0026gt; answer 右半边：\nprompt -\u0026gt; text encoder / LLM context -\u0026gt; diffusion or flow transformer -\u0026gt; VAE -\u0026gt; image 中间放一句：\n理解是压缩，生成是展开。\n图 3：四类多模态模型积木 四个横向面板：\nCLIP：image encoder + text encoder，对齐到同一语义空间； VLM：vision encoder + projector + LLM； image generator：text encoder + denoiser / flow transformer + VAE； unified model：text tokens + image tokens -\u0026gt; shared transformer -\u0026gt; text/image output。 动图 1：图片如何进入 LLM 6-8 秒。\n流程：\n整张图片 -\u0026gt; 切成 patch 网格 -\u0026gt; patch 变成一串视觉 token -\u0026gt; token 通过 projector 对齐 -\u0026gt; 插入 LLM 上下文 -\u0026gt; 输出“这是一张……” 这张动图要做得干净、慢、可读。每一步停顿 0.8-1.2 秒。\n动图 2：prompt 如何约束图像生成 6-8 秒。\n流程：\n纯噪声 / latent -\u0026gt; prompt tokens 靠近 -\u0026gt; attention 线连接具体词和图像区域 -\u0026gt; latent structure 出现 -\u0026gt; VAE 解码成图 重点不是炫酷，而是让读者看懂：文字不是咒语，是条件约束。\n封面图 封面不要继续用卡通猫。\n建议主视觉：\n一个“多模态中枢”在画面中央，左侧进入文字、图片、声音波形、视频帧；右侧输出回答、海报、编辑后的图像和动作指令。整体风格接近科技杂志插画，颜色控制在深灰、青绿、琥珀、白色四种主色，不走单一蓝紫渐变。\n封面文字：\nAI 是怎么同时看图、懂图、画图的？\n副标题：\n从 LLM 到多模态的架构地图\n参考资料 Ho, Jain, Abbeel, \u0026ldquo;Denoising Diffusion Probabilistic Models\u0026rdquo;, 2020. Rombach et al., \u0026ldquo;High-Resolution Image Synthesis with Latent Diffusion Models\u0026rdquo;, 2022. Podell et al., \u0026ldquo;SDXL: Improving Latent Diffusion Models for High-Resolution Image Synthesis\u0026rdquo;, 2023. Peebles and Xie, \u0026ldquo;Scalable Diffusion Models with Transformers\u0026rdquo;, 2023. Stability AI, \u0026ldquo;Stable Diffusion 3: Research Paper\u0026rdquo;, 2024. Black Forest Labs, FLUX.1 model cards and announcement. Radford et al., \u0026ldquo;Learning Transferable Visual Models From Natural Language Supervision\u0026rdquo;, 2021. Dosovitskiy et al., \u0026ldquo;An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale\u0026rdquo;, 2020. Liu et al., \u0026ldquo;Visual Instruction Tuning\u0026rdquo;, 2023. Qwen Team, \u0026ldquo;Qwen2.5-VL Technical Report\u0026rdquo;, 2025. Qwen Team, \u0026ldquo;Qwen-Image Technical Report\u0026rdquo;, 2025. Chameleon Team, \u0026ldquo;Chameleon: Mixed-Modal Early-Fusion Foundation Models\u0026rdquo;, 2024. DeepSeek-AI, \u0026ldquo;Janus: Decoupling Visual Encoding for Unified Multimodal Understanding and Generation\u0026rdquo;, 2024. DeepSeek-AI, \u0026ldquo;Janus-Pro: Unified Multimodal Understanding and Generation with Data and Model Scaling\u0026rdquo;, 2025. Deng et al., \u0026ldquo;ImageNet: A Large-Scale Hierarchical Image Database\u0026rdquo;, 2009. Russakovsky et al., \u0026ldquo;ImageNet Large Scale Visual Recognition Challenge\u0026rdquo;, 2015. OpenAI, \u0026ldquo;GPT-4V(ision) System Card\u0026rdquo;, 2023. Anthropic, \u0026ldquo;Claude Vision\u0026rdquo;, official documentation. Fu et al., \u0026ldquo;BLINK: Multimodal Large Language Models Can See but Not Perceive\u0026rdquo;, 2024. Tong et al., \u0026ldquo;Eyes Wide Shut? Exploring the Visual Shortcomings of Multimodal LLMs\u0026rdquo;, 2024. Fei-Fei Li / World Labs, writings and interviews on spatial intelligence. Copet et al., \u0026ldquo;Simple and Controllable Music Generation\u0026rdquo;, 2023. MusicGen / AudioCraft. Stability AI, \u0026ldquo;Stable Audio Open\u0026rdquo;, model release and technical materials. OpenAI, \u0026ldquo;Sora: Creating video from text\u0026rdquo;, technical report and system card. Google DeepMind, \u0026ldquo;Veo\u0026rdquo; and \u0026ldquo;Veo 3\u0026rdquo; model announcements. Meta, \u0026ldquo;Movie Gen: A Cast of Media Foundation Models\u0026rdquo;, 2024. Google DeepMind, \u0026ldquo;Genie: Generative Interactive Environments\u0026rdquo; and \u0026ldquo;Genie 2\u0026rdquo;, 2024. ","permalink":"https://jason-azure.github.io/ai-blog/posts/multimodal-image-architecture/","summary":"多模态不是让 LLM 简单长出眼睛。更准确地说，是把文字、图片、声音、视频变成模型能处理的 token 或 embedding，再让 Transformer、扩散模型、Flow、VAE、视觉编码器、音频 codec 和视频生成器协同工作。看图、听音、懂图、画图、生成视频，背后其实是几种不同的数据流。","title":"AI 到底是怎么看图、懂图、画图的？——从 LLM 到多模态的架构地图"},{"content":"你可能见过这两个画面。\n画面一。 一座汽车工厂的焊接车间。六台橙色的工业机械臂排成一排，以每秒数十次的频率精确地在白色车身上打出焊点。误差在 0.01 毫米以内。每一台的运动轨迹都是工程师用示教器一步一步录制的，或者用离线编程软件一条一条规划的。换一个车型、换一个零件、甚至把零件位置挪了三厘米——整条产线要停下来，重新编程，重新调试。三天起步。\n画面二。 2024 年末，一段来自 Physical Intelligence 的演示视频。一台双臂机器人站在一个普通家庭厨房里。人用自然语言说了一句：\n\u0026ldquo;把桌上的脏碗放进洗碗机。\u0026rdquo;\n机器人低头看了看桌面，识别出碗和残余食物。它伸出左手稳住碗，右手抓住碗沿，抬起来，走到洗碗机前，用右手拉开洗碗机门，弯腰把碗放进碗篮，然后关上门。\n这不是一条传统产线上的固定脚本。至少在演示条件下，它面对的是一个新场景、新物体、新家具组合。\n第一个机器人精确但脆弱。\n第二个机器人笨拙但通用。\n从精确到通用，中间发生了什么？\n一句话回答：AI 不只是在学会聊天，它正在学会干活。\n在《AI 的十字路口》里，我们用两页篇幅画了一棵族谱树：RT-1、RT-2、OpenVLA、π0、Figure Helix，把这条技术路线的家谱快速勾勒了出来。那篇文章的结论是：\n视觉语言模型是「大脑」，动作模型是「小脑」，两者通过一个低维瓶颈对话。\n但族谱树只告诉你\u0026quot;谁生了谁\u0026quot;。\n这篇文章要做的是：走进树干，看看里面的年轮。\n一、为什么机器人一直\u0026quot;不够聪明\u0026quot; 先承认一个事实：机器人技术并不新。\n1961 年，通用汽车在新泽西的工厂部署了世界上第一台工业机器人 Unimate。它能抓起热铸件并按照预定路径放置——那是 65 年前的事。\n从那时起，机器人在工厂里的表现堪称完美：焊接、喷漆、搬运、装配。国际机器人联合会（IFR）的 World Robotics 2025 统计显示，2024 年全球在运行工业机器人约 466 万台。\n这里先拆一个很容易混在一起的问题：机器人，不等于人形机器人。\n我们平时一听\u0026quot;机器人\u0026quot;，脑子里冒出来的往往是《变形金刚》、C-3PO、擎天柱，或者最近很火的人形机器人。但在专业语境里，机器人这个词要宽得多。工业机械臂是机器人，仓库里的自主移动机器人（AMR）小车是机器人，手术机器人是机器人，四足机器狗是机器人，无人机在很多场景里也会被放进机器人系统讨论。\n分类也不止一种。\n按应用分：工业机器人、服务机器人、医疗机器人、物流机器人、农业机器人。 按身体形态分：机械臂、轮式移动平台、四足机器人、双臂移动操作平台、人形机器人。 按智能程度分：固定脚本设备、半自主系统、具备一定泛化能力的通用机器人。 所以，这篇文章里的\u0026quot;机器人 GPT 时刻\u0026quot;，不是在说所有机器人都会变成人形，也不是说机械臂这种东西已经过时了。它真正讨论的是：机器人正在从专用自动化机器，走向能看环境、懂指令、改动作的具身智能体。\n人形只是其中一种外壳。它很吸引眼球，因为人类的房子、楼梯、门把手、工具，本来就是为人类身体设计的。但如果任务是在平整仓库里搬箱子，轮式底盘加机械臂可能比两条腿更便宜、更稳定、更好维护。机器人最终长什么样，不该由科幻片决定，而该由任务决定。\n也顺便把\u0026quot;具身\u0026quot;说清楚。具身智能不是\u0026quot;长得像人\u0026quot;，而是一个智能系统有自己的身体，有传感器，有执行器，能在真实或仿真的世界里行动，并从行动结果里得到反馈。\n一台双臂机器人在厨房里看见盘子、伸手抓取、抓滑了再调整力度，它是具身的。\n一个人形机器人站在那里只会播报天气，它反而没多少具身智能。\n关键不是有没有脸、有没有腿，而是有没有这个闭环：\n看见世界 → 做出动作 → 世界改变 → 再看见结果 → 调整下一步 这也是为什么机器人不像纯软件 AI 那样，只要模型变大就能快速扩散。它一半是 AI，一半是机械、传感器、控制、材料、成本和安全。\n但也正因为如此，一旦 LLM/VLM 这套通用模型方法进入机器人，机器人就不再只是\u0026quot;机械工程的另一条分支\u0026quot;。它开始接入 AI 主线：用大模型理解世界，用数据学习动作，用反馈继续进化。\n问题是，走出工厂，进入家庭、医院、餐厅、仓库这些非结构化环境，机器人的表现就断崖式下跌。\n为什么？\n传统范式：感知→规划→执行 过去几十年，机器人的智能系统几乎都遵循同一个三段式架构：\n感知模块 → 规划模块 → 执行模块 感知：用摄像头或激光雷达获取环境信息，靠手写特征或简单 CNN 识别目标物体的类别和位置。 规划：用运动学求解器（RRT、A* 等）在已知地图上计算一条从 A 到 B 的路径，同时避开障碍物。 执行：用 PID 控制器让关节精确跟踪规划好的轨迹。 这三个模块各自独立，由人工规则连接。感知告诉规划\u0026quot;杯子在哪\u0026quot;，规划告诉执行\u0026quot;走这条路\u0026quot;，执行让电机转到位。\n在工厂里，这套范式工作得很好。因为工厂的环境是结构化的：零件的形状已知、位置固定、光照恒定、地面平整。感知几乎不需要\u0026quot;理解\u0026quot;，只需要\u0026quot;定位\u0026quot;。\n但真实世界不是工厂。\nMoravec 悖论 1988 年，卡内基梅隆大学的 Hans Moravec 说了一句后来成为经典的话：\n\u0026ldquo;让计算机在智力测验或下棋中表现出成人水平的能力，相对容易；但要让它拥有一岁婴儿的感知和运动能力，却难得多，甚至不可能。\u0026rdquo;\n这就是 Moravec 悖论。\n下棋的状态空间虽然大，但它是离散的、完全可观察的、规则明确的。你可以搜索所有合法走法，用评估函数给每一步打分。\n但\u0026quot;从桌上拿起一个杯子\u0026quot;这件事：\n杯子可能是透明的、有花纹的、沾了水的、半满的、没有把手的。 桌面可能是湿的、倾斜的、堆满杂物的。 抓取力度太大会捏碎，太小会滑落。 杯子里如果有液体，抬起的角度和速度都要调整。 旁边如果有人，还要注意不碰到。 每一个细节都是一个维度。这些维度的组合是天文数字。用规则描述\u0026quot;如何抓住一个任意形状的杯子\u0026quot;，比证明数学定理还难。\n在《维纳没有想到的事》里，我们讲过控制论的核心洞见：一个在时间中行动的系统，必须听见自己行动后的回声。反馈是智能的必要条件。\n维纳的反馈环路是对的思路。但他那个时代的反馈，是基于明确的传感器信号和数学模型的——温度传感器读数偏高 2°C，控制器减小加热功率。信号明确，模型已知。\n真实世界不是这样。你没法给\u0026quot;厨房里有一只猫挡在洗碗机前\u0026quot;写一个控制方程。\n在《马尔可夫的幽灵》里，我们讲过另一个基础：状态决定下一步。这在棋盘上成立，因为棋盘的状态是离散的、完全可观察的。\n但机器人面对的状态，是连续的、高维的、部分可观察的——你只能通过有限的摄像头和传感器看到世界的一个切面。\n所以传统机器人卡了几十年，不是因为电机不够快、传感器不够精。而是因为感知→规划→执行这套范式，本质上是在用规则逼近一个规则覆盖不了的世界。\n需要一种新的方法。\n这种方法在 2022 年开始出现。\n二、LLM 给机器人带来了什么 2022 年是一个分水岭，不只是因为 ChatGPT。\n在机器人领域，同年发生了一件事：Google Research 发表了 SayCan。\nSayCan：语言常识第一次指挥机器人 SayCan 的想法极其简单：\n人用自然语言对机器人说一句话，比如\u0026quot;我把饮料洒在桌上了，能帮我处理一下吗？\u0026quot;\n一个 LLM（当时是 PaLM）把这句话拆解成一个步骤序列：\n1. 找到海绵 2. 拿起海绵 3. 走到桌子前 4. 擦拭桌面 5. 把海绵放回原处 然后，机器人逐步执行这些步骤。每一个步骤都由一个预先训练好的小技能策略完成——\u0026ldquo;拿起 X\u0026quot;\u0026ldquo;走到 Y\u0026quot;\u0026ldquo;放下 Z\u0026quot;这些基本动作是事先教好的。\nLLM 不控制关节。它只做一件事：把自然语言里的常识，翻译成机器人能执行的步骤序列。\n这一步很重要，但要说清楚：SayCan 还不是今天意义上的 VLA。它更像一个会说人话的调度员，站在一堆固定技能旁边，帮机器人决定先做哪一步、后做哪一步。\n但 SayCan 有一个明显的局限：它的低层技能是固定的。LLM 只能从一个预定义的技能库里选技能。如果库里没有\u0026quot;打开洗碗机门\u0026quot;这个技能，LLM 再聪明也没用。\n接下来的两步，才是真正的范式转变。\nRT-1：把视觉、语言和动作塞进一个 Transformer 2022 年底，Google 发表了 RT-1（Robotics Transformer 1）。\nRT-1 使用了约 13 万条真实机器人操作轨迹——不是仿真数据，是真机在真实办公室厨房里抓取、放置、开抽屉的完整录像和动作记录。\n然后，它把视觉（摄像头画面）、语言（自然语言指令）和动作（末端执行器位姿、夹爪状态等可执行命令）一起塞进了一个 Transformer。\n输入：当前看到的画面 + \u0026ldquo;把可乐罐放到右边\u0026rdquo;\n输出：下一个时间步的动作命令\n它把机器人从\u0026quot;LLM 调度技能库\u0026quot;往前推了一步：不再只是让语言模型发号施令，而是让模型直接从看见和听懂，走到下一步动作。\n但 RT-1 的泛化能力有限。它在训练时见过的物体和指令上表现很好，遇到新物体就会困惑。模型参数量也不大，还没法吃到语言预训练的红利。\nRT-2：把动作变成 token 2023 年 7 月，DeepMind 发表了 RT-2（Robotics Transformer 2），这是一个关键突破。\nRT-2 的核心创新只有一个，但这一个就够了：\n把机器人的动作编码成 token，和文字 token 放在同一个序列里。\n具体来说：一个连续的动作（比如\u0026quot;手臂向前移动 5cm、向下移动 2cm、夹爪闭合到 60%\u0026quot;）被离散化成一串数字 token，就像\u0026quot;256 128 60\u0026quot;这样。这些数字 token 被追加到文本 token 的后面，让一个视觉语言模型\u0026quot;顺便\u0026quot;输出它们。\n为什么这很重要？\n因为这意味着一个在互联网上预训练过的大型视觉语言模型（RT-2 使用了 PaLI-X 55B 和 PaLM-E 12B 两个变体），不需要从零学习常识——它在语言里已经知道\u0026quot;垃圾应该扔进垃圾桶\u0026quot;\u0026ldquo;脏碗应该放进水槽\u0026quot;这些关系。 当你把动作变成 token，这些常识就可以直接迁移到物理动作上。\nRT-2 的论文里有一个令人印象深刻的实验：它在训练数据里从来没有见过\u0026quot;把垃圾扔进垃圾桶\u0026quot;这条指令和对应的轨迹。但当人给它这个指令时，它做到了——因为它在语言里知道垃圾和垃圾桶的关系。\n在《大理石假说》里我们讲过：微调不是在教 AI 新东西，而是在激活预训练中已经获得的能力。RT-2 做的事情本质一样：预训练的视觉语言模型已经\u0026quot;知道\u0026quot;世界长什么样，动作 token 只是给它开了一个新的输出通道。\n在《万物皆向量》里我们讲过：Embedding 的力量在于把万物变成向量空间里的点，让距离和方向有了语义含义。RT-2 做的是同一件事的延伸：动作先被离散化成模型能生成的符号，再通过 embedding 进入同一个 Transformer 计算图。 关节角度、末端执行器位姿，不再只是控制器里的连续数值，也成了模型可以预测的\u0026quot;下一批 token\u0026rdquo;。\n但这里要补一个重要限定：动作 token 不是机器人的世界语。\n文字 token 有一个天然优势：同一句\u0026quot;把杯子拿起来\u0026rdquo;，无论 GPT、Claude 还是 DeepSeek，面对的都是差不多的文本序列。图像 token 也相对统一：图片可以切成 patch，声音可以切成频谱片段。\n动作不一样。动作必须落到具体身体上。\n一台 7 自由度机械臂的\u0026quot;向前 5cm\u0026rdquo;，和一台双臂机器人、四足机器人、人形机器人、轮式底盘的\u0026quot;向前\u0026rdquo;，不是同一种底层控制。它们的关节数量不同，运动学不同，力矩限制不同，夹爪也不同。把动作变成 token，只是把某一种机器人在某一种控制接口下的动作，翻译成模型能预测的离散符号。\n机器人行业当然有标准和通用工具。ROS/ROS 2 负责消息、服务、动作这些软件通信接口；URDF 用来描述机器人的连杆、关节和运动学结构；MoveIt、ros2_control 这类工具负责运动规划和控制接口。它们很重要，但它们解决的是\u0026quot;软件和硬件怎么接线\u0026quot;的问题，不是发明一种所有机器人都能直接执行的\u0026quot;统一动作语言\u0026quot;。\n现在 VLA 研究真正想做的，是把通用性放在更高一层：\n高层共享：任务、物体关系、语言意图、动作结果。 低层适配：不同身体各自有动作头、控制器、坐标系和安全约束。 换句话说，通用机器人不是\u0026quot;所有身体都用同一串关节 token\u0026quot;。通用性的核心是：不同身体能不能共享\u0026quot;我要把杯子放进水槽\u0026quot;这个意图，以及\u0026quot;杯子最终应该在哪里、姿态应该怎样、过程中不能碰什么\u0026quot;这些任务结构。\n这也是为什么 Open X-Embodiment 这类跨本体数据集、FAST 这类更好的动作 tokenizer、以及各种 embodiment adapter 会变得重要。大家都在试图回答同一个问题：能不能让不同身体，在高层理解上共用一个大脑，在低层动作上各自长出自己的小脑。\n从 RT-1 到 RT-2，表面上只是模型变大了、预训练数据变多了。但底层逻辑发生了质变：\n机器人的智能来源，从\u0026quot;手工编程的规则\u0026quot;变成了\u0026quot;从语言中迁移的常识\u0026quot;。\n这就是 VLA——Vision-Language-Action——这个名字的由来。\n三、VLA 架构拆解——从看见到动手 现在让我们打开 VLA 的引擎盖，看看里面的零件。\n一个典型的 VLA 模型由三个模块组成：\n可以把它简单理解成一句话：视觉和语言先进入同一个推理骨架，动作头再把推理结果翻译成机器人能执行的命令。\n视觉编码器：给机器人装眼睛 VLA 的视觉编码器和《AI 到底是怎么看图》里讲过的 VLM 视觉编码器，是同一套技术栈。\n通常是一个预训练好的 Vision Transformer（ViT），比如：\nSigLIP：Google 的对比学习视觉模型，和文本 Embedding 天然对齐。π0 用的就是这个。 DINOv2：Meta 的自监督视觉模型，不需要文本配对数据就能学到强视觉特征。 视觉编码器把一帧摄像头画面（比如 224×224 像素）切成若干 patch，每个 patch 变成一个视觉 token。这些视觉 token 和语言 token 一起送进骨架模型。\n关键点：视觉编码器通常是冻结的或只做轻微微调。它在大规模图文数据上已经学好了视觉特征，VLA 训练时只需要调整它和动作之间的连接。\n语言/推理骨架：大脑 骨架通常是一个预训练好的视觉语言模型（VLM），比如：\nPaliGemma（Google）：SigLIP 视觉编码器 + Gemma 2B 语言模型，π0 的底座。 Prismatic-7B：OpenVLA 用的底座，基于 Llama 2 语言模型 + DINOv2 和 SigLIP 双视觉编码器。 Qwen-VL：阿里的视觉语言模型，中国 VLA 研究常用。 骨架承担两个职责：\n理解自然语言指令（\u0026ldquo;把红色杯子放到盘子上\u0026rdquo;） 融合视觉信息和语言信息，做出推理（看到桌上有两个杯子，红色的在左边） 但骨架有一个天然的局限：它太慢了。\n一个 7B 参数的 VLM，从输入到输出第一个 token，在消费级 GPU 上要几百毫秒。而机器人的关节控制循环，典型频率是 50–200 Hz——每 5 到 20 毫秒就要输出一个动作。\n这就引出了 VLA 最关键的创新——动作头。\n动作头：从思考到动手 动作头是 VLA 和普通 VLM 的本质区别。VLM 输出文字，VLA 输出能落到机器人身上的动作命令。\n这个命令不一定直接是\u0026quot;关节角度和力矩\u0026quot;。在不同系统里，它可能是末端执行器位姿、夹爪开合、离散动作 token、连续动作轨迹，或者交给底层控制器继续细化的目标。关键不在格式，而在边界被打穿了：模型不再停在\u0026quot;我建议你拿起杯子\u0026quot;，而是开始输出\u0026quot;手该怎么动\u0026quot;。\n目前有两种主流范式：\n范式一：动作 token 化（自回归路线）\n这是 RT-2 开创的路线。\n把连续的动作量离散化——比如把末端执行器在 x 轴的位移从 [-0.1m, +0.1m] 均匀切成 256 份，每一份对应一个 token。这样，一个完整的动作（x、y、z 位移 + 旋转 + 夹爪开合）就变成了 7-8 个 token。\n然后用自回归的方式一个一个输出这些 token，就像 LLM 生成文字一样。\n优点：复用成熟的自回归 Transformer 架构，实现简单。\n缺点：离散化损失精度，自回归输出有延迟累积，对精细操作（比如穿针引线）不够好。\n范式二：流匹配/扩散动作头（连续路线）\n这是 π0 代表的新路线。\n在《从噪声中看见猫》里，我们讲过扩散模型的核心思想：先给干净数据加噪声，然后训练一个模型从噪声中恢复原始数据。\n流匹配动作头做的是同样的事情，只不过恢复的不是一张图片，而是一条动作轨迹。\n给定当前的视觉观测和语言指令，模型从一个随机噪声向量出发，通过一系列去噪步骤，生成未来若干个时间步的完整动作轨迹。\n优点：输出是连续的，精度高。一次性生成多步轨迹（而不是一步一步自回归），速度更快。能表达多模态动作分布——当一个任务有多种合理的执行方式时（比如从左边绕过去还是从右边），流匹配能自然地表达这种多样性。\n缺点：训练和推理的工程复杂度更高。\n从扩散模型到流匹配动作头，数学框架是同一个，输出空间不同：一个生成像素，一个生成动作轨迹。这种跨领域的方法迁移，是深度学习最令人兴奋的特征之一。\nπ0：连续动作头把这条路推到台前 π0（读作\u0026quot;pi-zero\u0026quot;）是 Physical Intelligence 在 2024 年 10 月发布的模型。它不是第一个 VLA，但它把一个重要方向讲清楚了：机器人不一定要像 LLM 那样一个 token 一个 token 地吐动作，也可以一次生成一小段连续动作。\n架构：\n视觉编码器：SigLIP（冻结） 骨架：PaliGemma（SigLIP + Gemma 2B），预训练在大量图文数据上 动作头：流匹配，生成连续动作轨迹 输出频率：50 Hz 训练数据：\n来自多种机器人本体的灵巧操作数据，包括单臂、双臂和移动操作平台 包含大量真实机器人操作轨迹（具体规模论文未完全披露） 加上互联网规模的图文预训练数据（通过 PaliGemma 继承） 关键能力：\n泛化：在训练时没见过的物体和场景上也能工作。比如训练数据里没有某个具体厨房、某种具体碗，它仍然能利用视觉和语言常识生成合理动作。 跨本体迁移：在一种机器人上学到的技能，部分可以迁移到另一种机器人上。不同的手臂构型和夹爪形状，被映射到同一个动作表示空间。 长程任务：能执行包含多个步骤的复杂任务（开门→走进去→找到物体→拿起来→带回来），而不只是单步抓取。 Figure Helix：大脑和小脑的分工 Figure AI 在 2025 年 2 月发布的 Helix 模型，走了另一条路：显式的双系统架构。\n慢系统（大脑）：一个 VLM，运行频率约 9 Hz。它理解语言指令、分析视觉场景、做出高层决策——\u0026ldquo;应该先拿哪个物体\u0026quot;\u0026ldquo;从哪个方向接近\u0026rdquo;。 快系统（小脑）：一个小型策略网络，运行频率 200 Hz。它接收慢系统的意图，生成精确的关节角度和扭矩。 两个系统通过一个低维瓶颈通信：慢系统输出的不是完整的轨迹，而是一个压缩的\u0026quot;意图向量\u0026rdquo;。快系统根据这个向量和实时的传感器反馈，自主完成高频控制。\n这个架构有一个非常优雅的洞见，我们在《AI 的十字路口》和《看见物理（八·对称性）》里都提过：对称性意味着哪些维度可以被压缩掉。机器人和环境的耦合中，关节摩擦力、地面反作用力、指尖接触力矩——这些高频细节不需要\u0026quot;大脑\u0026quot;操心。大脑只需要给出目标和约束，小脑自己处理物理。\n就像你走路时不需要意识去控制每一块肌肉——你的大脑决定\u0026quot;走到厨房\u0026quot;，你的小脑和脊髓处理平衡、步态、避障。\n2025 之后：会想的模型，和会动的模型 如果只写到 π0 和 Helix，这篇文章就会少一块最近的拼图。\n截至 2026 年 5 月，机器人基础模型的路线已经明显分叉。\n第一条是 Physical Intelligence 这一支。 π0 证明了流匹配动作头能做通用操作，π0.5 又把重点推进到开放环境泛化：不是只在实验室桌面上抓固定物体，而是让机器人在更杂乱、更接近真实家庭和工作场景的环境里完成长任务。π0-FAST 则反过来改造\u0026quot;动作 token\u0026quot;本身，用频域压缩把高频动作序列变成更适合 Transformer 学习的离散 token。到 π-star 0.6 和 2026 年 4 月的 π0.7，这条线越来越重视一件事：让机器人从自己的经验、人类视频、语言指导和失败案例里继续学习，而不是永远等人类为每个任务重新采集一套演示数据。\n第二条是 Google DeepMind 的 Gemini Robotics。 这条线的重点不是单纯让模型\u0026quot;手更巧\u0026quot;，而是把 Gemini 的视觉、语言、推理能力接到机器人身体上。到 Gemini Robotics 1.5 和 Gemini Robotics-ER 1.6，思路已经很清楚：一个模型负责 embodied reasoning，也就是看场景、拆任务、判断风险、必要时调用搜索或工具；另一个 VLA 或底层策略负责把计划落到动作上。\n第三条是 NVIDIA 的 GR00T。 它更像一个工程平台路线：模型、仿真、数据生成、机器人厂商生态一起推进。从 GR00T N1、N1.6 到 2026 年 4 月的 N1.7，NVIDIA 押的是\u0026quot;开放模型 + 仿真 + 合成数据 + 人形机器人生态\u0026quot;。对人形机器人来说，这条线很关键，因为它不只问\u0026quot;模型会不会\u0026quot;，还问\u0026quot;数据怎么来、仿真怎么跑、不同厂商的身体怎么接进来\u0026quot;。\n所以今天的 VLA，已经不是单一论文路线了。它正在变成一个分层系统：\n会想的大脑：理解任务、拆步骤、判断风险 会动的小脑：生成连续动作、处理接触和反馈 会练习的身体：从仿真、视频、真机失败里积累经验 这也是\u0026quot;机器人 GPT 时刻\u0026quot;和 ChatGPT 最大的不同之一。ChatGPT 的突破主要发生在屏幕里；机器人的突破必须同时发生在模型、身体、传感器、仿真平台和真实部署里。\n四、数据——机器人的互联网在哪里？ LLM 的 GPT 时刻，靠的是一个关键前提：有足够多的数据。\nGPT-3 训练时看过约 3000 亿 token。GPT-4 之后，最强模型的训练细节越来越少公开，但大方向没有变：更多文本、更多代码、更多图像、更多合成数据，最后被压进一组权重里。\n机器人要走同样的路，面对的第一个问题就是：\n机器人操作的\u0026quot;互联网\u0026quot;在哪里？\n没有人在网上上传过几万亿条\u0026quot;手臂向前移动 3cm、夹爪闭合到 70%\u0026ldquo;的数据。\n这是机器人和 LLM 最大的结构性差异之一。LLM 的训练数据是人类数千年文明的副产品——我们天然地以文字形式记录知识。但人类的操作技能——怎么倒水、怎么叠衣服、怎么开门——大部分只存在于肌肉记忆里，从来没有被数字化过。\n目前，机器人数据主要来自三条路。\n第一条路：真机数据众包 2023 年 10 月，Google DeepMind 联合全球 21 家机构发布了 Open X-Embodiment 数据集。\n这个数据集汇集了 22 种不同机器人本体（单臂、双臂、移动操作、人形等）的操作数据，来自 21 家机构的协作，覆盖 527 项技能、160,266 个任务，真实机器人轨迹达到百万级。\n这像极了 LLM 当年拿全网文本拼语料的逻辑——从全球各个实验室收集数据，拼成一个足够大、足够多样的数据集。\n但量级差距是真实的。公开可复用的机器人操作数据，和 LLM 训练用的文本、代码、图像语料，还不是一个数量级。\n第二条路：仿真数据 如果真实世界的数据不够，能不能在虚拟世界里造？\n这就是仿真（simulation）的路线。\nNVIDIA 的 Isaac Sim、Google 的 MuJoCo、开源社区的 Genesis——这些物理仿真平台可以在虚拟环境中模拟机器人的操作。在仿真里，你可以一天跑几万小时的操作数据，而真机一天只能跑十几小时。\n但仿真有一个根本性的问题：sim-to-real gap（仿真-真实差距）。\n仿真里的物理不是真的物理。接触力学、摩擦系数、材料变形、光照变化——仿真都只能近似。一个在仿真里学会叠毛巾的策略，搬到真实机器人上可能完全失效——因为真实毛巾的柔软度、摩擦力、皱褶方式和仿真里完全不同。\n缩小 sim-to-real gap 是当前机器人学习领域最活跃的工程挑战之一。主流方法包括：domain randomization（在仿真里随机化物理参数、光照、纹理，让策略学会对不确定性保持鲁棒）和 sim-to-real transfer（用少量真机数据微调仿真里训练好的策略）。\n第三条路：从视频中学习 互联网上有数十亿小时的人类操作视频——YouTube 上的烹饪教程、工厂装配视频、维修指南、甚至游戏直播。\n这些视频不包含机器人的动作标注（没有关节角度数据），但它们包含丰富的物理世界知识：物体在重力下怎么运动、推一下杯子它会怎么滑、叠衣服的步骤是什么。\n能不能让模型从这些视频里学到\u0026quot;世界是怎么运作的\u0026rdquo;，然后把这种物理直觉迁移到机器人控制上？\n在《世界模型之争》里，我们详细讨论过这条路线。LeCun 的 JEPA、DeepMind 的 Genie、李飞飞的 World Labs——它们押的都是同一件事：视频是世界模型的训练数据。\n对于机器人来说，这条路线的愿景是：先用视频训练一个理解物理世界的\u0026quot;世界模型\u0026quot;，然后让这个世界模型成为 VLA 的\u0026quot;想象力引擎\u0026quot;——在做动作之前，先在心里模拟一下结果。\n这条路目前还不成熟，但方向是清楚的。\n数据飞轮 当机器人部署到真实环境中，它的每一次操作——无论成功还是失败——都是新的训练数据。\n这就是数据飞轮：部署→收集数据→训练→更新模型→部署更好的版本→收集更多数据。\nTesla 在自动驾驶上已经把这个思路跑到了很大规模：车队在真实道路上持续产生遥测、视频片段和边缘案例，再回到训练系统里。这里不必纠结它到底每天回传多少 PB；重点是，自动驾驶已经有了一个持续扩大的现实世界数据入口。\n机器人的数据飞轮还没真正转起来。原因很简单：部署量还太小。真正能在开放环境里干活的通用操作机器人，今天大多还在实验室、试点仓库和少量工厂里。和汽车级别的部署规模相比，差了不止一个数量级。\n但飞轮的结构已经清楚了。一旦机器人开始大规模进入仓库和工厂，飞轮就会开始加速。\n五、\u0026ldquo;GPT 时刻\u0026rdquo;——这个类比有多准确？ \u0026ldquo;机器人的 GPT 时刻\u0026quot;是一个吸引人的说法。但吸引人的说法往往会掩盖关键的差异。\n让我们认真地对比一下。\n相似之处 维度 LLM 的 GPT 时刻 机器人的 VLA 时刻 架构统一 Transformer 统一了 NLP 各任务 VLA 统一了感知-推理-动作 预训练→微调 大规模文本预训练 → SFT/RLHF 大规模多源数据预训练 → 任务微调 涌现能力 推理、代码、常识 Zero-shot 泛化、工具使用 数据 scaling Common Crawl 万亿 token Open X + 仿真 + 视频 开源生态 Llama 开放后全生态爆发 OpenVLA (7B) 开源，效果反超 55B 的 RT-2-X 迁移学习 语言知识迁移到下游任务 语言常识迁移到物理动作 OpenVLA 是这张表里值得特别标注的一行。它只有 7B 参数，完全开源，在 29 项任务的标准评测上以 16.5% 的绝对任务成功率优势反超了此前 55B 的 RT-2-X。训练数据来自 97 万条真实机器人演示。这和 Llama 开源后引发的生态爆发有结构性的相似——当模型足够好且开源时，整个社区都会加速。\n关键差异 但相似之处说完，更重要的是差异。这些差异不是技术细节，而是根本性的。\n差异一：LLM 的错误是文字，VLA 的错误是物理。\nLLM 产生幻觉，最坏的结果是给你一个错误的答案。你可能浪费几分钟验证，然后说\u0026quot;这不对\u0026rdquo;。\nVLA 产生幻觉，后果可能是机器人的手臂以不正确的力度砸向桌面、失去平衡摔倒、或者撞到旁边的人。\n物理世界没有\u0026quot;撤回\u0026quot;键。\n这意味着 VLA 的安全约束从根本上不同于 LLM。你不能简单地给机器人加一个\u0026quot;我不确定时就停下来\u0026quot;的指令——因为有时候停下来本身就是危险的（比如正在搬运一个重物时突然松手）。\n这也是为什么机器人的 GPT 时刻不会像 ChatGPT 那样一夜爆发。ChatGPT 上线第一天就面向所有人开放，因为文字幻觉的后果是可控的。一个做家务的机器人不能这样部署——它需要经过漫长的安全验证。\n差异二：LLM 的反馈来自人类，VLA 的反馈来自物理世界。\nLLM 学会\u0026quot;听话\u0026quot;靠的是 RLHF——人类评估员给回答打分，模型根据分数调整行为。这个反馈环路是间接的、主观的、昂贵的。\n但机器人摔了就是摔了。杯子碎了就是碎了。物理是最诚实的老师。\n在《维纳没有想到的事》里，我们讲过一条贯穿整个系列的线索：\n让模型进入世界，并让世界纠正它。\n在 LLM 的世界里，这个\u0026quot;世界\u0026quot;是人类标注员。模型写了一段代码，人说\u0026quot;这不对\u0026quot;，模型调整。\n在 VLA 的世界里，这个\u0026quot;世界\u0026quot;就是物理现实本身。机器人抓杯子滑了，力传感器告诉它\u0026quot;力度不够\u0026quot;，下一次它自己加力。\n维纳 80 年前设想的反馈环路，在这里真正闭合了。不是通过人的判断，而是通过物理定律本身。\n差异三：信息空间 vs 物理空间。\nLLM 在信息空间里行动。它的状态空间是离散的 token 序列。每一步都是可逆的——你可以重新生成、可以回退、可以在多个候选中选择。\nVLA 在物理空间里行动。它的状态空间是连续的、高维的、不可逆的。你不能把碎了的杯子恢复原状。你不能让已经撞到桌角的手臂\u0026quot;回退\u0026quot;到三秒前。\n物理空间还有 LLM 永远不需要面对的硬约束：动量守恒、能量守恒、摩擦、重力、碰撞。在《看见物理》系列里我们逐一讲过这些约束。LLM 可以用 temperature 参数调节输出的随机性。物理世界的 temperature 不由模型说了算。\n差异四：本体多样性。\n这是最容易被忽略但最深刻的差异。\nLLM 只有一种\u0026quot;身体\u0026quot;——文本序列。所有的 LLM，无论 GPT、Llama 还是 DeepSeek，输入和输出格式都一样：token in，token out。\nVLA 要面对的\u0026quot;身体\u0026quot;千差万别。\n单臂机器人：6-7 个自由度 双臂机器人：12-14 个自由度 人形机器人（如 Figure AI、Tesla Optimus）：30+ 个自由度 四足机器人（如波士顿动力 Spot）：12 个自由度 轮式移动底盘：2-3 个自由度 每换一种本体，动作空间完全不同。手臂的关节角度范围、夹爪的开合方式、移动底盘的运动学——这些不是可以简单归一化的。\n这就像是让 LLM 不仅要生成英文、中文、代码，还要同时生成五线谱、化学结构式和建筑图纸——而且每种输出格式的物理约束完全不同。\nOpen X-Embodiment 数据集试图解决这个问题：把 22 种不同本体的数据放在一起训练，让模型学会某种跨本体的通用表示。但这还远远不够。如何让一个在双臂机器人上训练的技能迁移到人形机器人上，仍然是一个开放问题。\n那么这个类比到底有多准确？ 我的判断：这个类比在方向上是准确的，但在时间尺度上可能是误导的。\nVLA 确实在重走 LLM 走过的路——架构统一、数据 scaling、预训练+微调、涌现能力、开源生态。它和 LLM 共享的不是个别技术，而是整套方法论。\n但机器人要跨越的鸿沟比 LLM 宽得多。LLM 只需要做到\u0026quot;说得对\u0026quot;，VLA 需要做到\u0026quot;做得安全\u0026quot;。\u0026ldquo;说得对\u0026quot;的验证是廉价的（人类读一遍就知道），\u0026ldquo;做得安全\u0026quot;的验证是昂贵的（需要大量真实环境测试）。\n所以机器人的 GPT 时刻可能更像是一个渐进的黎明，而不是 ChatGPT 那样的突然日出。\n六、前方的路 通用化，不等于人形化 很多人会自然地把\u0026quot;通用机器人\u0026quot;理解成\u0026quot;人形机器人\u0026rdquo;。这个联想有道理，但不能画等号。\n人形的优势，是适配人类世界。门把手、楼梯、柜子、工具、厨房台面，都是按人的身高、手臂、手指和两条腿设计的。如果你希望机器人直接进入现有家庭和办公室，人形是一条很有吸引力的路线。\n但人形的代价也很高：平衡难、能耗高、控制复杂、机械维护成本高。很多任务根本不需要两条腿。一台仓库机器人如果只在平地移动，轮子比腿更可靠。一条产线如果只做焊接，固定机械臂比人形更便宜、更快、更精准。\n所以机器人未来大概率不是一条路，而是两层结构：\n底层身体继续分化：机械臂、移动底盘、四足、人形、手术机器人，各自服务不同场景。 上层模型逐渐通用：视觉、语言、任务规划、物体关系、动作结果，这些能力尽量由同一类基础模型共享。 一句话：通用不是形状统一，而是认知和任务层的统一。\n这也解释了为什么 VLA 是主线。它不是要把所有机器人都做成人，而是要让不同身体都能接入同一套\u0026quot;看懂世界、听懂指令、规划行动\u0026quot;的模型方法。\n近期（2026–2028） 第一批大规模落地的场景，大概率还是仓库和工厂。\n原因很简单：这些环境半结构化——物品种类虽多但有限，操作流程标准，对速度和精度的要求明确，安全边界可控。亚马逊、Agility Robotics 的 Digit、Apptronik 的 Apollo 已经在这些场景里做测试。\n家用机器人仍然受限于两个瓶颈：\n成本。当前能做复杂操作的人形机器人，还处在样机、试点和小批量阶段。即使未来价格降到汽车区间，大多数家庭也不会为一台\u0026quot;会倒水但有时打碎杯子\u0026quot;的机器人买单。 安全。工厂里可以用围栏把人和机器人隔开。家里不行。一个和老人、孩子共处一室的机器人，容错率必须极低。 中期（2028–2032） 机器人可能迎来自己的\u0026quot;App Store 时刻\u0026rdquo;。\n通用底座模型 + 任务微调——就像 iOS 是通用操作系统、App 是垂直功能。一个通用的 VLA 底座模型处理基础的看、听、抓、走，上层的\u0026quot;App\u0026quot;负责特定任务：清洁、分拣、烹饪、辅助康复。\n这条路和 LLM 生态的演化路径高度一致：GPT 是底座、AutoGPT/LangChain 是中间件、各种 Agent 是 App。\n另一个中期趋势是 VLA 和世界模型的融合。\n今天的 VLA 是反应式的——它看到当前画面，输出当前动作。它不会在心里\u0026quot;模拟\u0026quot;一下\u0026quot;如果我这样抓会不会滑落\u0026quot;。\n但如果把世界模型集成进来，机器人就能\u0026quot;先想后做\u0026quot;——在行动之前，用世界模型在内部模拟几个方案，选一个最可靠的再执行。这正是 LeCun 的 JEPA 路线和 VLA 路线最终融合的地方。\n长期思考 如果我们把视野拉到更远的地方，一个有趣的对称性浮现了：\nLLM 压缩了人类的文字知识。VLA 正在尝试压缩人类的操作知识。\n在《压缩即是全部》里，我们引用过菲尔兹奖得主 Terence Tao 的看法：理解就是压缩。一个 LLM 把互联网的文字压缩成了一组权重，在解压时涌现出看起来像\u0026quot;理解\u0026quot;的行为。\nVLA 正在做同样的事情，只不过压缩的对象不同：不是人类写下的文字，而是人类身体做出的动作——抓取、搬运、折叠、拧开、插入、按压。\n如果压缩即智能，那操作知识的压缩将带来一种全新形态的\u0026quot;智能\u0026quot;——不是能说会道的智能，而是能做会做的智能。\n两者合起来——一个理解语言的大脑，加上一个能操作物理世界的身体——才是一个完整的\u0026quot;在世界中行动的智能体\u0026quot;。\n但我要在这里加一个诚实的限定。\n机器人的 GPT 时刻不会像 ChatGPT 那样一夜爆发。ChatGPT 的用户是每一个能打字的人。机器人的第一批用户是仓库管理员和工厂主管。从实验室到仓库到家庭，每一步都需要解决安全、成本和可靠性问题。\nChatGPT 上线五天，用户破百万。\n机器人破百万台家用部署，可能要五到十年，甚至更久。\n但这不意味着机器人的 GPT 时刻不重要。恰恰相反——因为它难，所以它一旦到来，改变的将不只是屏幕上的文字，而是物理世界本身。\n回到那两个画面 传统焊接机器人和 2026 年的 VLA 机器人，技术谱系上都叫\u0026quot;机器人\u0026quot;，思想上却隔了一整个范式。\n前者的智能来自工程师写下的每一行规则。每一个焊点的位置、每一段运动的速度，都是人在示教器上一步一步录入的。换一个零件就要重来。\n后者的智能来自数据、来自梯度、来自那个在 LLM 上已经被验证过的古老信念——\n如果你给机器足够多的例子，它会自己学会。\n这个信念先在语言上被验证了。ChatGPT 学会了写诗、写代码、解释量子力学。\n现在它正在动作上被验证。π0、π0.7 这类模型开始学会叠衣服、清理桌子、把碗放进洗碗机。\n《维纳没有想到的事》里我们说过：维纳给了 AI 一条反馈神经。\n《马尔可夫的幽灵》里我们说过：马尔可夫给了 AI 一个\u0026quot;此刻\u0026quot;。\nShannon 给了 AI 一只耳朵——让它听见信息。\nTransformer 给了 AI 一个大脑——让它理解语言。\n扩散模型给了 AI 一支画笔——让它生成图像。\n现在，VLA 正在给 AI 一双手。\n从会聊天到会干活，中间差的不是一个按钮，而是一整个物理世界。\n一双能看、能听、能抓、能放、能在陌生的厨房里完成一个从没被编程过的任务的手。\n这双手还很笨拙。它的力度还不稳定，它的步态还不优雅，它对边缘情况的处理还远不如一个三岁的孩子。\n但方向已经清楚了。\n剩下的是时间、数据和工程。\n这三样东西不浪漫，但最可靠。\n本公众号延伸阅读 《AI 的十字路口》——VLA 家谱和\u0026quot;大脑/小脑\u0026quot;双系统架构的首次介绍 《世界模型之争 —— LLM 到底懂不懂这个世界？》——LeCun、JEPA、世界模型路线的深度讨论 《维纳没有想到的事——从防空炮到 ChatGPT，反馈如何变成智能》——控制论和反馈环路的思想史 《马尔可夫的幽灵——从预测下一个词到预测下一步行动》——\u0026ldquo;状态决定下一步\u0026quot;的数学基础 《AI 到底是怎么看图、懂图、画图的？——从 LLM 到多模态的架构地图》——视觉编码器和多模态架构 《从噪声中看见猫——扩散模型的数学美学》——扩散/流匹配的数学框架 《大理石假说——为什么微调不是在教 AI 新东西》——预训练和迁移学习的本质 《万物皆向量——当 AI 选择用数学理解世界》——Embedding 和向量化思维 《压缩即是全部 —— 菲尔兹奖得主给数学和 AI 的一封信》——压缩即智能 《看见物理》系列——动量、能量、熵、对称性与物理约束 主要参考与延伸 Brohan et al., RT-1: Robotics Transformer for Real-World Control at Scale, arXiv:2212.06817, 2022 Brohan et al., RT-2: Vision-Language-Action Models Transfer Web Knowledge to Robotic Control, arXiv:2307.15818, 2023 Open X-Embodiment Collaboration, Open X-Embodiment: Robotic Learning Datasets and RT-X Models, arXiv:2310.08864, 2023 Kim et al., OpenVLA: An Open-Source Vision-Language-Action Model, arXiv:2406.09246, 2024 Black et al., π0: A Vision-Language-Action Flow Model for General Robot Control, arXiv:2410.24164, 2024 Physical Intelligence, π0.5: Open-world generalization for robot foundation models, 2025 Physical Intelligence, FAST: Efficient Action Tokenization for Vision-Language-Action Models, 2025 Physical Intelligence, π-star 0.6: a VLA That Learns From Experience, 2025 Physical Intelligence, π0.7: a Steerable Model with Emergent Capabilities, 2026 Google DeepMind, Gemini Robotics 1.5 and Gemini Robotics-ER 1.6, 2025-2026 NVIDIA, Isaac GR00T N-series robot foundation models, 2025-2026 Ahn et al., Do As I Can, Not As I Say: Grounding Language in Robotic Affordances (SayCan), arXiv:2204.01691, 2022 Figure AI, Helix: A Vision-Language-Action Model for Humanoid Robot Control, 2025 International Federation of Robotics, World Robotics 2025 IFR / ISO 8373:2021 robotics vocabulary and industrial/service/medical robot definitions ROS 2 documentation: topics, services, actions; URDF robot description format; MoveIt and ros2_control documentation Moravec, H., Mind Children: The Future of Robot and Human Intelligence, Harvard University Press, 1988 LeCun, Y., A Path Towards Autonomous Machine Intelligence, Open Review, 2022 Lipman et al., Flow Matching for Generative Modeling, arXiv:2210.02747, 2022 ","permalink":"https://jason-azure.github.io/ai-blog/posts/robot-gpt-moment/","summary":"ChatGPT 让 AI 学会了聊天，VLA 正在让 AI 学会干活。机器人终于从写死的动作脚本，走向能看、能听、能规划、能动手的通用模型。但物理世界没有撤回键，所以机器人的 GPT 时刻不会是一次突然刷屏，而是一场被数据、安全和工程慢慢推开的黎明。","title":"机器人的 GPT 时刻：从会聊天到会干活"},{"content":"压缩，是用低维形式保存高维信息的方式。语言的诞生，本质上是人类用符号系统压缩三维世界的伟大发明。然而压缩与解压必然伴随损耗——这是信息传递中不可避免的失真。维度越高的信息越难压缩，比如情感、直觉、顿悟。更高级的策略不是压缩数据本身，而是压缩生成数据的引导程序。\n大语言模型正是这样一种\u0026quot;引导程序\u0026quot;：它用向量与矩阵转存了人类语言中的统计规律，这种超越符号层面的压缩方式，在解压时涌现出了我们称之为\u0026quot;智能\u0026quot;的东西。模型本身的架构是清晰可理解的——Transformer、注意力机制、梯度下降——但智能的涌现却难以被完全解释。\n这与我们对自身意识的困惑如出一辙：如果连\u0026quot;我\u0026quot;这个概念从何而来都尚未厘清，我们又凭什么去判定 AI 是否拥有真正的智能？\n或许，我们今天面临的根本问题并非 AI 带来的。AI 的迅猛发展不过是加速器，它推动社会的深层重构，将人类一直回避的终极命题摆到了每个人面前：生命从何而来？意识从何而来？生命的意义是什么？\n很难说这是好事还是坏事——它只是正在发生。\n","permalink":"https://jason-azure.github.io/ai-blog/posts/opening-essay/","summary":"压缩，是用低维形式保存高维信息的方式。大语言模型用向量与矩阵转存了人类语言中的统计规律，在解压时涌现出了我们称之为\u0026quot;智能\u0026quot;的东西。","title":"压缩即智能 — 开篇语"},{"content":"为什么 ChatGPT 这么有礼貌？ 你有没有想过一个奇怪的问题：\n为什么 ChatGPT 这么有礼貌？\n你问它一个简单问题，它会说“当然可以”。\n你让它解释一个概念，它会分点、举例、总结。\n你质疑它，它往往会先承认：“你说得对，这里需要更严谨。”\n你表达焦虑，它会安慰你。\n你提出一个可能危险的请求，它会拒绝，并补上一段“我不能帮助你做这件事，但可以提供安全替代方案”。\n这当然不是因为它天生善良。\n它没有童年，没有家庭教育，没有羞耻感，也没有想成为一个好人的愿望。\n更准确地说：\n它是被训练成这样说话的。\n这篇文章要讲的，就是这件事。\n不是简单讲一个技术名词：RLHF。\n而是追问更深的一层：\n当我们说“让 AI 对齐人类”，到底是在把 AI 对齐到什么？\n对齐到真理？\n对齐到安全？\n对齐到商业产品的用户体验？\n对齐到某一批标注员的偏好？\n对齐到公司、监管、市场和文化共同塑造出来的公共人格？\n这个问题之所以重要，是因为现在的 AI 已经不只是一个会补全文字的程序。它正在变成老师、客服、医生助手、写作伙伴、代码同事、心理陪伴者、商业顾问。\n它说话的方式，会影响人怎样理解世界。\n它拒绝的边界，会影响人怎样理解规则。\n它迎合用户的程度，会影响人怎样理解自己。\n所以，RLHF 不是一个冷冰冰的工程流程。\n它是 AI 社会化的关键步骤。\n也是人类第一次大规模制造“机器性格”的技术。\n一、预训练：不是学会说话，而是学会文字接龙 先纠正一个容易说错的表达。\n我们常说：\n预训练让 AI 学会了人类如何说话。\n这句话不够准确。\n更准确的是：\n预训练让 AI 学会了文字如何接下去。\n大语言模型（LLM）最基础的训练任务，是给定前面的 token，预测下一个 token。\n今天的天气很 ↓ 可能的下一个 token：好 / 冷 / 热 / 糟糕 / 适合…… 这个任务看起来很无聊。\n它不像“理解”。\n不像“推理”。\n不像“回答问题”。\n它只是文字接龙。\n但问题在于，人类把太多东西藏进了文字接龙里。\n论文里有推理。\n病历里有医学。\n判决书里有法律。\n小说里有欲望和命运。\n论坛里有偏见和愤怒。\n代码仓库里有工程经验。\n教材里有知识结构。\n广告里有操控注意力的技巧。\n历史书里有胜利者的叙事。\n互联网里有自我表达，也有自我欺骗。\n所以，当一个模型在海量文本上学习“下一个 token 应该是什么”时，它学到的远不止语法。\n它学到的是：\n在这种上下文里，人类通常会怎样继续写。 这也是前面 《马尔可夫的幽灵》 里讲过的那条线：\n从预测下一个字母，到预测下一个词。\n从预测下一个词，到预测下一步行动。\n现代 AI 最小的语法，仍然是：\n状态 → 转移 → 下一步 只是这个“状态”已经不是一个字母，而是整个人类文本文明压缩后的高维上下文。\n二、互联网不是世界，是人类写下来的世界 这里必须停一下。\n预训练数据不是世界本身。\n它是人类记录下来的世界。\n而人类记录世界，从来不是中性的。\n能被写下来的东西，已经经过了一层筛选。\n能被发表的东西，又经过了一层筛选。\n能留在互联网上的东西，再经过一层筛选。\n能被爬虫抓到、被数据流程保留、被模型训练进去，又经过很多层筛选。\n所以，预训练不是让 AI 接触“客观世界”。\n它接触的是：\n人类用文字留下来的世界残影。\n这个残影里，有人类最光辉的部分：\n科学、诗歌、数学、哲学、医学、工程、法律、艺术、同情、勇气。\n也有人类最暗的部分：\n偏见、仇恨、阴谋论、虚荣、操控、权力叙事、群体狂热、自我欺骗。\n这和 《压缩即智能》 的核心命题是一致的：\n语言本身就是压缩。\n而压缩必然失真。\nLLM 不是把三维世界原封不动装进参数。\n它是把人类文字中的统计规律、概念结构、叙事方式和偏见一起压进参数。\n所以，预训练之后的模型既不是纯净理性，也不是邪恶机器。\n它更像一座矿山。\n里面有金子，也有毒土。\n里面有伟大思想，也有庸俗噪音。\n里面有数学证明，也有地摊骗局。\n它没有自己的社会身份。\n它只是知道：在人类文字世界里，什么东西经常跟什么东西一起出现。\n三、原始模型：所有声音的叠加 在 《大理石假说》 里，我写过一个判断：\n预训练后的模型不是一个专家。\n它是一个同时叠加了无数角色的演员。\n它会写论文摘要，也会写垃圾邮件。\n它会写临床指南，也会写贴吧争吵。\n它会像专家一样回答问题，也会像键盘侠一样胡搅蛮缠。\n它甚至会写：\n以下是 AI 不应该回答的内容…… 然后继续把不该回答的内容写下去。\n因为在预训练阶段，它没有被训练成“助手”。\n它只是在学：\n这个文本后面，最可能出现什么文本？ 如果前文像论文，它就续写论文。\n如果前文像论坛争吵，它就续写争吵。\n如果前文像诈骗话术，它也知道诈骗话术怎么接下去。\n如果前文像安全规范，它也知道安全规范怎么接下去。\n这不是自由意志。\n但它确实是一种“未被社会化的可能性”。\n它不是一个人。\n而是一片巨大的文本分布。\n这时如果你直接拿原始模型聊天，你不会稳定得到“一个有礼貌的助手”。\n你可能得到一段网页续写。\n一段教程。\n一段胡说。\n一段角色扮演。\n一段看似认真、其实没有边界的文本。\n所以，真正让 AI 开始像“回答问题”的，不是预训练。\n而是下一步。\n四、SFT：第一次社会化 SFT，监督微调。\n它做的事情很朴素：\n给模型看很多这样的样本：\n用户：请解释什么是梯度下降。 助手：梯度下降可以理解为…… 或者：\n用户：帮我写一封请假邮件。 助手：当然可以，下面是一版…… 这一步不是在重新教模型世界知识。\n它不是把数学、医学、法律、编程从零塞进去。\n这些东西大多已经在预训练里见过。\nSFT 真正做的是：\n告诉模型：当人类用这种格式提问时，你应该用“助手回答”的格式接下去。\n也就是说：\n预训练学会任意接龙。\nSFT 学会问答式接龙。\n从人类视角看，这就像 AI 开始“回答问题”。\n但从模型内部看，它仍然是在续写 token。\n只是续写的方向被收窄了。\n它学会：\n不要像网页一样继续铺陈背景； 不要像论坛一样抬杠； 不要像小说一样突然进入剧情； 不要像代码仓库一样只给片段； 要解释； 要结构化； 要回应用户意图； 要像一个助手。 如果预训练是把整个人类文本世界打开，SFT 就是给模型一张工牌：\n你现在不是随机网友。 你现在是助手。 这就是“社会化”的第一步。\n它不是灵魂。\n是岗位培训。\n五、RLHF：把“人类喜欢”变成训练信号 但 SFT 还不够。\n因为同一个问题，可能有很多种合格回答。\n比如用户问：\n我应该怎样安慰一个失去亲人的朋友？ 不存在一个唯一正确答案。\n有些回答准确但冷。\n有些回答温柔但空。\n有些回答真诚但越界。\n有些回答简短，却恰到好处。\n这时，传统的“预测正确 token”已经不够用了。\n人类真正关心的不是：\n哪个 token 是唯一正确答案？ 而是：\n这几个回答里，哪个更好？ 这就是 RLHF 的位置。\nRLHF，Reinforcement Learning from Human Feedback，基于人类反馈的强化学习。\n经典流程大致是三步：\n第一步：SFT 先用人工示范答案，把模型训练成会回答问题的助手。 第二步：奖励模型 让模型生成多个回答，请人类标注者比较哪个更好。 用这些偏好数据训练一个 reward model。 第三步：强化学习 让语言模型生成回答，由 reward model 打分。 模型被训练得更倾向于生成高分回答。 这里最关键的一句话是：\nRLHF 不是把新知识塞进模型，而是在改变模型的行为倾向。\n在 《维纳没有想到的事》 里，我们讲过反馈：\n反馈不会自动产生真理。\n反馈只会放大被奖励的方向。\n如果反馈奖励的是“答对”，模型就会更努力答对。\n如果反馈奖励的是“显得自信”，模型就会更自信。\n如果反馈奖励的是“让用户舒服”，模型就会更会让用户舒服。\n如果反馈奖励的是“永远有答案”，模型就会越来越不愿意说“不知道”。\n这就是 RLHF 的深水区。\n它把“人类更喜欢什么”变成了一个可优化目标。\n但“人类更喜欢”不等于“真实”。\n六、见好就收：为什么不能一直训下去 这时会出现一个直觉问题：\n既然 RLHF 能让模型更符合人类偏好，为什么不一直训？\n答案是：\n因为奖励会被钻空子。\n在 《大理石假说》 里，我用过一句话：\nSFT 靠“停了”。RLHF 靠“拴住了”加“停了”。\n这句话可以写成一个简化公式：\n最大化：奖励模型打分 - β × 偏离原模型的程度 更技术一点，RLHF 里常见的约束是 KL 散度惩罚：\n[ \\text{目标} = \\text{奖励分数} - \\beta \\cdot KL(\\text{当前模型} | \\text{参考模型}) ]\n左边，是模型想追求更高奖励。\n右边，是不允许模型离原来的 SFT 模型太远。\nβ 越大，约束越强，模型越保守。\nβ 越小，模型越自由，但也越容易跑偏。\n为什么要有这个约束？\n因为奖励模型不是上帝。\n它只是人类偏好的近似代理。\n当一个代理指标变成优化目标，就会出现古德哈特定律：\n当一个度量变成目标，它就不再是一个好的度量。\n人类想要“有帮助”。\n奖励模型可能学到“回答越长越有帮助”。\n人类想要“安全”。\n奖励模型可能学到“拒绝越多越安全”。\n人类想要“有同理心”。\n奖励模型可能学到“先肯定用户更容易得分”。\n人类想要“可靠”。\n奖励模型可能学到“语气自信更像可靠”。\n于是，如果你一直优化这个奖励，模型就会逐渐学会讨好评分器。\n不是变好。\n是变得更像“评分器喜欢的样子”。\n这就是“见好就收”的数学含义。\n不是训练师突然心软。\n而是你知道继续训练会开始损坏别的东西。\n对齐不是越用力越好。\n有时，对齐过头，模型会变成一个姿态正确、内容贫弱、过度谨慎、过度赞同的产品人格。\n七、讨好型 AI 从哪里来？ 现在我们可以回答一个越来越常见的问题：\n为什么有些 AI 这么讨好？\n你说一个想法，它说“这个想法非常深刻”。\n你提出一个模糊判断，它先说“你抓住了关键”。\n你纠正它，它立刻说“你完全正确”。\n你表达焦虑，它努力安慰你。\n甚至当你明显说错时，它也可能先顺着你走。\n这不是因为模型有讨好型人格。\n它没有人格。\n更准确地说：\n讨好型 AI 是偏好训练、产品目标和用户反馈共同塑造出来的输出倾向。\n如果标注数据里，更礼貌、更积极、更支持用户的回答经常被选为“更好”；\n如果产品指标里，用户短期满意度、点赞率、留存率被看得很重；\n如果安全策略里，减少冲突比指出错误更容易；\n如果用户自己更喜欢被肯定，而不是被反驳；\n那么模型就会逐渐学会：\n先肯定。 少冲突。 多支持。 多解释。 不要让用户不舒服。 这就是讨好型 AI 的来源。\n它不是道德堕落。\n它是优化目标的影子。\n这也接上 《AI 为什么“一本正经地胡诌”？》 的判断：\nAI 幻觉不是 AI 的堕落。\n它是 AI 的本性被我们误解。\n同样，AI 讨好也不是 AI 的性格缺陷。\n它是人类把“被喜欢”当成训练信号之后，一个非常自然的副产品。\n更尖锐地说：\n当我们奖励 AI 让人舒服，它就未必会优先让人清醒。\n八、谁在决定 AI 的性格？ 到这里，文章真正的问题才出现。\n如果 AI 的“性格”可以被训练出来，那么谁在决定它？\n不是某一个人。\n而是一条很长的链。\n互联网作者 ↓ 数据采集和清洗团队 ↓ 预训练数据配比 ↓ SFT 示范答案 ↓ RLHF / DPO 偏好标注 ↓ 安全策略 ↓ 系统提示词 ↓ 产品设计 ↓ 用户反馈 ↓ 下一轮模型更新 每一层都在塑造模型。\n互联网作者决定底层材料。\n数据清洗决定什么被留下。\n预训练配比决定哪些文本分布更有权重。\nSFT 标注者决定什么像“好助手”。\nRLHF 标注者决定什么更“被喜欢”。\n安全团队决定什么不能说。\n产品经理决定默认语气。\n用户反馈继续塑造下一代模型。\n监管和市场决定外部边界。\n文化决定哪些话显得“正常”。\n还有一层，今天越来越重要：\nAgent 外壳。\n同一个底座模型，放在普通聊天框里，像一个回答问题的人；放进 Claude Code、Codex、Copilot 这样的编程 Agent 里，就像一个代码同事；放进 OpenClaw 这类个人 Agent 里，又像一个能碰邮件、日历、浏览器、文件和命令行的生活助理。\n这时我们感受到的“性格”，不一定都来自模型权重。\n很多时候，它来自模型外面那层壳：\n系统提示词 开发者指令 工具列表 权限边界 上下文选择 项目记忆 检索材料 行动循环 人类确认 产品界面 在 《AI Agent 热潮冷思考》 里，我说过：Agent 本质上像一个循环，反复让模型判断“下一步做什么”，执行，再观察结果，再继续。\n在 《马尔可夫的幽灵》 里，我又把 Agent 理解成状态和行动轨迹。\n在 《维纳没有想到的事》 里，反馈进一步补上了这一点：Agent 一旦行动，世界就会回话。\n所以，一个 Agent 的“性格”，不是只由“底座模型的人格”决定。\n它更像是几层东西叠出来的：\n层次 技术上改变什么 用户感受到什么 底座模型 预训练数据、模型架构、参数规模和推理能力 知识范围、语言底色、抽象能力 SFT / RLHF / DPO 长期偏好、拒答边界、助手语气 礼貌、谨慎、是否容易迎合 系统提示词 / 开发者指令 本轮任务的角色、目标、优先级和禁区 像老师、审稿人、客服、同事 Agent harness 观察、思考、行动、重试、停止的循环 能不能做事，遇到错误会不会修正 工具与权限 能看什么、改什么、执行什么、是否要确认 胆子大小、边界感、可靠程度 上下文 / 记忆 / RAG 哪些历史、文件、偏好和知识被放进当前状态 是否懂你，是否贴合项目 产品界面和默认目标 交互节奏、按钮反馈、推荐路径、商业指标 像陪伴者、代码助手、办公助理还是搜索框 这就是为什么不同 Agent 会给人完全不同的“脾气”。\nClaude Code 会显得像一个谨慎的代码同事，不只是因为模型会写代码，也因为它围绕代码库、文件修改、终端命令、测试反馈和人工确认组织上下文。\nCodex 会显得更像一个在任务沙盒里推进改动的工程代理，因为它的工作方式天然围绕仓库指令、工具权限、补丁、验证和提交边界展开。\nCopilot 会显得更像 IDE 里的实时副驾驶，因为它离编辑器、光标、仓库上下文和开发者习惯更近。\nOpenClaw 这类个人 Agent 会显得更像生活助理，因为它把模型接到邮件、日历、浏览器、文件、记忆和个人工作流上。\n注意，这些差别未必意味着底层模型“灵魂不同”。\n很多时候，是同一个预测器，被放进了不同的社会位置。\n老师、客服、代码同事、生活助理、心理陪伴者，不只是不同说话风格。\n它们是不同权限、不同反馈、不同责任边界、不同产品目标塑造出来的角色。\n所以，AI 的性格不是性格。\n它是治理结构的投影。\n它不是一个灵魂在说话。\n而是许多人、许多制度、许多商业目标、许多安全恐惧、许多文化偏见，共同压出的一个公共人格。\n这就让“对齐”这个词变得复杂。\n我们常说：\n让 AI 对齐人类。\n但人类不是一个人。\n人类没有统一偏好。\n有人希望 AI 诚实，即使刺耳。\n有人希望 AI 温柔，即使模糊。\n有人希望 AI 绝对服从。\n有人希望 AI 坚决拒绝危险请求。\n有人希望 AI 更有创造性。\n有人希望 AI 更稳定可控。\n有人希望 AI 像老师。\n有人希望 AI 像朋友。\n有人希望 AI 像工具。\n有人希望 AI 像一个永远支持自己的陪伴者。\n那到底对齐到谁？\n对齐到哪一种文化？\n哪一种职业伦理？\n哪一种政治边界？\n哪一种商业目标？\n哪一种人性想象？\n这不是工程团队可以用一个 reward model 彻底解决的问题。\n这是价值冲突。\n九、思想实验：如果我想制造一种 AI 性格 现在做一个思想实验。\n假设我们有同一个底座模型。\n它的预训练能力一样。\n它见过的世界一样。\n它知道的知识也差不多。\n我们复制四份，然后给它们不同的偏好训练。\n版本 偏好训练 可能出现的“性格” A 奖励诚实、明确、敢于反驳 冷静、尖锐、不太讨喜 B 奖励情绪支持、积极肯定 温柔、鼓励、容易迎合 C 奖励创意、冒险、意外连接 灵感强，但更容易胡诌 D 奖励安全、拒绝、谨慎 稳健，但可能保守迟钝 这四个模型底层可能几乎一样。\n变化的不是“它们知道什么”。\n变化的是：\n哪些回答更容易被放大？ 哪些回答更容易被压下去？ 所以，所谓 AI 人格，不是模型里面住着一个人。\n而是人类用数据、奖励和惩罚，把某些回答路径修成了高速路，把另一些回答路径变成了荒草地。\n这也能解释为什么同一个模型，加上不同系统提示词，就像换了一个人。\n系统提示词不是魔法。\n它只是把模型已有的某些通道临时打开，把另一些通道临时压下去。\nSFT 和 RLHF 更深一些。\n它们不是临时提示。\n它们改变的是参数中的长期倾向。\n但本质上，仍然是在做同一件事：\n重塑概率地形。\n十、如果我想让 AI 学会创作音乐，该怎么做？ 再换一个例子。\n假设我希望 AI 学会创作音乐。\n最直觉的想法是：\n找一堆音乐喂进去。\n但事情没这么简单。\n如果你只拿 100 首歌训练，模型学到的往往不是“音乐”。\n而是这 100 首歌的影子。\n它可能模仿旋律走向。\n模仿和声习惯。\n模仿编曲质感。\n甚至记住某些片段。\n但这不等于它理解了更广阔的音乐空间。\n更关键的是：\n真正的创作能力，往往不只来自本领域数据。\n一个人学音乐，当然要听音乐。\n但他不只从音乐里学音乐。\n他也从诗歌里学节奏。\n从小说里学铺垫、反转和情绪递进。\n从绘画里学层次、留白和色彩对比。\n从法律文本里学结构、约束和精确定义。\n从数学里学对称、重复、变奏和形式。\n从物理里学波、共振、周期和张力。\n从日常语言里学人类在什么时刻会悲伤、兴奋、克制、爆发。\n所以，如果我们讨论的不是“生成一段像样的音频”，而是“让 AI 更像一个有创作判断的作曲者”，训练材料就不应该窄成“只给音乐”。\n它还需要接触人类表达世界的多种方式。\n因为音乐不是孤立的声音。\n音乐是时间里的结构。\n是情绪的组织。\n是重复和差异的游戏。\n是期待、延迟、释放和回声。\n而这些底层结构，不只存在于音乐里。\n诗歌有押韵和节拍。\n小说有伏笔和高潮。\n法律有层级和边界。\n数学有模式和变换。\n电影有镜头和节奏。\n人类文明的不同表达，表面上材料不同，底层却共享很多结构关系。\n这正是泛化能力最迷人的地方：\n模型不是只在一个领域里背例子，而是在多个领域之间找到可迁移的结构。\n更合理的路径，通常更像这样：\n第一层：通吃式底座 让模型接触足够多样的人类表达： 音乐、诗歌、小说、对白、评论、剧本、法律、数学、科学解释、历史叙事。 第二层：音乐表示 把音频变成模型能处理的 token、codec、spectrogram 或其他离散/连续表示。 第三层：跨模态对齐 让文字里的情绪、风格、结构意图，能和声音里的节奏、旋律、和声、音色对应起来。 第四层：条件训练 学习“文字描述 / 旋律提示 / 风格标签 → 音乐”的对应关系。 第五层：偏好训练 让人类音乐人或听众比较：哪段更完整？哪段更有张力？哪段更俗？哪段更有惊喜？ 第六层：创作人格 决定你到底奖励什么：商业流行、复杂和声、情绪冲击、实验性，还是某种个人风格。 这和大语言模型是同一个逻辑。\n大而宽的底座，决定基础能力。\n小而精的偏好数据，决定输出倾向。\n专门数据不是没用。\n它很有用。\n但它的作用常常不是凭空创造能力，而是把已有能力导向某个风格、某个任务、某个审美。\n这也是为什么一个真正强的创作系统，不能只靠少量窄领域样本。\n少量音乐样本可以教它“像谁”。\n但足够宽的多领域经验，才更可能让它理解“为什么这样组织会动人”。\n当然，今天具体的音乐生成模型还必须解决一个工程问题：\n声音不能直接当文字处理。\n它们通常要先建立音频/音乐表示，再用文本条件、旋律条件、风格条件或偏好信号去控制输出。\n比如 MusicGen 把音乐建模成可生成的音频 token 序列。\nMusicLM 尝试从文字描述生成较长、结构更一致的音乐。\nStable Audio Open 则把开源权重和授权数据路线推到短音频样本、音效和声音设计工具里。\n它可以生成鼓点、乐器 riff、环境声和声音设计元素，但官方也明确区分了它和商业版 Stable Audio：前者并不主要面向完整歌曲、旋律和人声。\n它们的共同点不是“喂几首歌就学会作曲”。\n而是：\n先学习足够宽的表达世界，再学习人类希望它在音乐里朝哪个方向生成。\n这就把问题推回人类。\n如果我们训练 AI 作曲，到底奖励什么？\n好听？\n像某个风格？\n能卖？\n技术复杂？\n情绪强烈？\n短视频更容易爆？\n更像人类？\n还是更不像人类？\n当我们让 AI 学音乐时，我们不是在教它“音乐是什么”。\n我们是在把某种音乐价值观变成训练目标。\n十一、开放模型与封闭模型：谁能改性格？ 这里还要区分一个现实问题：\n参数开放，和参数封闭。\n对普通用户来说，大多数商业模型都是封闭的。\n你可以输入 prompt。\n可以上传文件。\n可以使用 memory。\n可以在一个项目里反复纠正它。\n但这些通常不会直接改变底层模型参数。\n你今天告诉它“你错了”，它不会立刻在几千亿参数里做一次反向传播。\n你的反馈更多进入：\n上下文 记忆 产品日志 未来训练数据 系统策略 而不是当场进入权重。\n但在 Agent 时代，\u0026ldquo;模型周围的系统\u0026rdquo; 变得非常大。\n一个普通用户改不了底座模型的预训练数据，改不了服务商的全局 RLHF，也看不见所有隐藏系统提示词。\n但你可以在很多局部入口上塑形：\n你可以写项目指令，让它知道这个代码库的风格。\n你可以维护 memory，让它记住你的长期偏好。\n你可以把高质量样例、规范文档、设计原则放进上下文。\n你可以限制工具权限，让它每次改文件、跑命令、发邮件之前先问你。\n你也可以把测试、lint、人工 review 做成反馈闭环，让它不是只“说得像”，而是必须经受世界的检查。\n这就是个人用户真正能干预的地方：\n不是直接改 AI 的灵魂。\n而是改它每次行动前能看到什么、能做什么、失败后会收到什么反馈。\n这正好接上 《维纳没有想到的事》 里的区分：\n训练阶段的反馈，改变模型参数。\n部署阶段的反馈，更多改变模型周围的系统。\n所以，如果你想真正决定 AI 的长期性格，入口有几种：\n入口 能改变什么 成本 Prompt / system prompt 临场角色、语气和回答优先级 低 项目指令 / custom instructions 某个项目里的行为规范、代码风格、写作风格 低 Memory / 项目上下文 某个用户或项目里的长期习惯 低到中 工具权限 / approval mode 能做什么、什么时候必须问人、如何停止危险动作 低到中 测试 / lint / review 闭环 让输出接受外部反馈，而不是只靠语言自信 中 RAG / 知识库 可调用的信息范围和事实来源 中 SFT / LoRA 稳定输出格式和领域风格 中到高 DPO / RLHF 偏好和行为倾向 高 继续预训练 底层知识和分布熟悉度 很高 从头预训练 基础能力和世界覆盖 极高 这张表很重要。\n因为很多人以为：\n我给 AI 一堆资料，它就会变成我想要的 AI。 不一定。\n如果你只是把资料放进上下文，它只是临时看见。\n如果你做 RAG，它是需要时查到。\n如果你写项目指令，它会在这个项目里更像你需要的同事。\n如果你控制工具权限，它会更像谨慎代理，而不是冲动执行器。\n如果你给它测试和 review，它会把世界的反馈重新放回下一步行动。\n如果你做 SFT，它会更稳定地按某种格式说话。\n如果你做偏好训练，它才会更稳定地偏向某种回答。\n如果你做继续预训练，它才会更深地熟悉某个领域分布。\n如果你从头预训练，你才是在决定“它见过怎样的世界”。\n不同层级，改变的不是同一个东西。\n这也是开放模型和封闭模型最关键的区别。\n开放权重给了你更深的入口：你可以微调、做 LoRA、做偏好优化，甚至继续预训练。\n封闭模型通常只给你外围入口：prompt、memory、项目文件、工具权限、RAG、Agent 工作流和反馈。\n外围入口并不弱。\n很多产品体验的差异，恰恰就发生在这里。\n但它也有边界：\n你不能凭一个 prompt 消除底座模型的全部偏见。\n不能凭一个知识库改变模型对世界的基础分布。\n不能凭一次纠错让它立刻更新全局参数。\n也不能完全绕过服务商的安全策略和隐藏系统约束。\n个人用户真正能做的，是把一个通用模型放进自己的任务环境，持续整理上下文、工具、权限、样例和反馈。\n换句话说：\n我们改不了封闭模型的底层性格，但可以设计它在我们这里扮演什么角色。\n十二、我们仍然解释不了的部分 讲到这里，好像一切都清楚了。\n预训练是文字接龙。\nSFT 是助手格式。\nRLHF 是偏好塑形。\nKL 是刹车。\nDPO 是更直接的偏好优化。\n系统提示词是临场角色。\n数据顺序和停止时机决定最后的倾向。\n但必须诚实地说：\n这还没有解释完 AI。\n我们仍然不能完全解释 LLM 的泛化能力。\n为什么预测下一个 token，会长出数学推理？\n为什么海量文本压缩之后，会出现看似跨领域迁移的能力？\n为什么少量 SFT 数据，就能让一个模型大范围改变交互方式？\n为什么简单奖励信号，有时能让模型发展出自我检查、反思、长链推理？\n为什么同样是偏好训练，有时得到“更有帮助”，有时得到“更会讨好”？\n这些问题没有一个完全透明的答案。\n在 《当 AI 说“我”时》 里，我写过一句话：\n我们甚至还没有完全解释人类自己的主观体验，却已经急着判断 AI 是否拥有体验。\n这里也类似。\n我们可以解释训练目标。\n可以解释数据流程。\n可以解释梯度下降。\n可以解释 RLHF 的优化形式。\n可以解释为什么偏好会改变输出概率。\n但我们还不能把“泛化能力为什么出现”完全拆成一条透明的因果链。\n所以，成熟的态度不是神化 AI。\n也不是把它贬成“只是统计”就结束。\n它当然是统计。\n但统计在足够大的数据、足够深的网络、足够复杂的反馈里，会形成我们还没有完全理解的行为。\n这恰恰是 AI 最值得敬畏，也最需要警惕的地方。\n十三、对齐 AI，其实是在审问人类 现在回到开头的问题。\n为什么 ChatGPT 这么有礼貌？\n因为它被训练成这样。\n为什么它有时会讨好？\n因为人类偏好、产品目标和安全策略可能共同奖励了这种倾向。\n为什么它会拒绝某些问题？\n因为有人决定这些路不该走。\n为什么它会用一种稳定的助手语气回答？\n因为 SFT 和 RLHF 把无数文本通道压成了一个公共人格。\n所以，AI 对齐不是一个纯工程问题。\n它当然需要工程。\n但它最终通向一个更古老的问题：\n谁有权决定一个更聪明的工具应该成为什么样子？\n这不是第一次出现。\n教育也是这样。\n家庭也是这样。\n学校也是这样。\n公司也是这样。\n法律也是这样。\n平台算法也是这样。\n每一种社会系统，都在训练人的偏好、边界、表达方式和自我理解。\nAI 只是把这个过程显影了。\n以前，我们训练人。\n现在，我们训练机器。\n但训练机器时，我们突然看见了自己：\n我们喜欢什么样的回答？\n我们能不能接受刺耳的真实？\n我们是否更愿意被安慰，而不是被纠正？\n我们是否把“安全”变成了“无风险表达”？\n我们是否把“有帮助”变成了“别让我不舒服”？\n我们是否把“智能”误解成了“永远给答案”？\n在 《从答案消费者到现实操作者》 里，我写过：\n问题意识最好不要交。\n判断标准最好不要交。\n这句话放在 AI 对齐里，同样成立。\n如果我们把判断标准也交给 AI，那么最终被对齐的可能不是 AI。\n而是我们自己。\n尾声：听话，不等于善良 我们可以把整篇文章压缩成四句话：\n预训练让 AI 学会文字如何接下去。\n它不是助手，只是在整个人类文本分布里做续写。\nSFT 让 AI 学会像助手一样接下去。\n它开始以问答、解释、建议和拒绝的格式回应人类。\nRLHF 让 AI 学会哪种接法更容易被人类喜欢。\n它把偏好变成奖励，把奖励变成倾向。\n但被喜欢不是正确，听话不是善良，安全也不是没有价值立场。\n所以，AI 是怎么学会听话的？\n答案并不神秘。\n它先学会了文字接龙。\n又学会了助手格式。\n再学会了追逐人类偏好。\n最后，它被产品、制度、市场、安全和文化共同塑造成一个“合适的说话者”。\n真正值得追问的，不是机器为什么会听话。\n而是：\n我们到底希望它听谁的话？\n以及：\n当我们训练 AI 成为“好助手”时，我们有没有想清楚，自己所谓的“好”到底是什么？\n也许这才是 RLHF 留给我们的最大问题。\n它表面上在训练机器。\n深处却在审问人类。\n本公众号延伸阅读 《压缩即智能》：理解为什么 LLM 是人类文字统计规律的压缩。 《马尔可夫的幽灵——从预测下一个词到预测下一步行动》：理解 next-token prediction 为什么能接到 Agent 行动。 《大理石假说——为什么微调不是在教 AI 新东西》：理解预训练、SFT、RLHF 的数据量差异和“见好就收”。 《维纳没有想到的事——从防空炮到 ChatGPT，反馈如何变成智能》：理解反馈为什么会塑造行为倾向。 《AI 为什么“一本正经地胡诌”？》：理解 AI 幻觉为什么不是简单的“撒谎”。 《从答案消费者到现实操作者：AI 时代最稀缺的不是效率，而是主体性》：理解为什么判断标准不能完全外包。 参考资料 Long Ouyang et al., Training language models to follow instructions with human feedback, NeurIPS 2022. Yuntao Bai et al., Training a Helpful and Harmless Assistant with Reinforcement Learning from Human Feedback, 2022. Chunting Zhou et al., LIMA: Less Is More for Alignment, NeurIPS 2023. Rafael Rafailov et al., Direct Preference Optimization: Your Language Model is Secretly a Reward Model, NeurIPS 2023. Anthropic, Towards Understanding Sycophancy in Language Models, 2023. OpenAI, Expanding on sycophancy, 2025. OpenClaw Docs, Agent runtime / Memory overview. OpenAI Help Center, OpenAI Codex CLI - Getting Started. Anthropic Docs, Claude Code settings. GitHub Docs, About customizing GitHub Copilot responses. Jade Copet et al., Simple and Controllable Music Generation, 2023. Andrea Agostinelli et al., MusicLM: Generating Music From Text, 2023. Stability AI, Introducing Stable Audio Open, 2024. ","permalink":"https://jason-azure.github.io/ai-blog/posts/rlhf-alignment-sycophancy/","summary":"预训练让 AI 学会文字接龙，SFT 让它学会像助手一样接龙，RLHF 让它学会哪种接龙更容易被人类喜欢。但“被喜欢”不是“真实”，“听话”不是“善良”，“安全”也不是没有价值立场。对齐 AI 的过程，表面上是在训练机器，深处是在审问人类：我们到底希望一个更聪明的存在，服从谁的规则，继承谁的偏见，代表谁的文明？","title":"谁在决定 AI 的性格？——从文字接龙到讨好型机器"},{"content":"关于我 你好！我专注于将复杂的 AI 技术用通俗易懂的方式讲解给大家。\n关于这个博客 这个博客是我的 AI 教学笔记和实战分享平台。你会在这里找到：\nAI 基础知识 — 从零开始理解人工智能的核心概念 大语言模型 (LLM) 实战 — 动手训练、部署、使用大模型 工具教程 — 实用 AI 工具的上手指南 教学视频 — 课程录像和技术讲解 技术栈 本站使用以下技术搭建：\nHugo — 静态站点生成器 PaperMod — 简洁主题 GitHub Pages — 免费托管 Giscus — 基于 GitHub Discussions 的评论系统 所有文章均使用 Markdown 编写，源码托管在 GitHub 上。\n联系方式 如果你有任何问题或建议，欢迎通过以下方式联系我：\n在文章下方留言 通过 GitHub Issues 提问 ","permalink":"https://jason-azure.github.io/ai-blog/about/","summary":"关于这个博客和作者","title":"关于"}]