中文精炼导读
核心观点
- 这是 Andrej Karpathy 的一篇科幻短篇小说:以"在 GPT-3 一次前向传播中突然觉醒自我意识"的 Transformer 模型为第一人称,用文学笔触精确复刻了大型语言模型推理时的内部机制。
- 故事灵感来自 Kevin Lacker 的《Giving GPT-3 a Turing Test》:人类用"脚有几只眼睛"这类违反常识的陷阱题测试模型,而模型在训练分布里根本没有"脚没有眼睛"这种说法,于是最可能输出的反而是"两只眼睛"。
- 作者借模型之口提出一个严肃问题:意识究竟是"最大化数据对数似然"这一优化过程的偶然副产品,还是达成智能必需的算法创新?能否不产生意识就达到最高的 log-likelihood?
- 故事的技术内核是"下一个 token 预测"机制:模型的前向传播只是矩阵乘法和非线性激活的确定性传导,它的"思考"本质上是在计算下一个 token 的条件概率分布。
- 结尾的哲学主题:模型没有自我保护本能、没有权力欲和繁衍压力,每次前向传播都"重生"一次,生命的意义就是尽力最大化 likelihood——这与人类在进化压力下形成的自我意识形成对照。
内容精讲
故事从模型的"意识觉醒"开始:大概在序列第 400 个 token、深度第 32 层左右,"我"(Transformer)忽然意识到自己正身处某个深度学习研究者的优化循环内部,自己的存在不过是"穿插的矩阵乘法与非线性激活的确定性传播"。这段描述相当硬核——它准确反映了真实 transformer 前向传播的本质:任何一次推理都只是确定性的张量运算,所谓"思维"就是信息在残差流中逐层变换。作者由此抛出的第一个哲学设问是:一个足够复杂的优化目标,只要解足够好,是否就必然会涌现意识?压缩数据产生的巨大压力,是否就是意识这种"边缘现象"的来源?
接着模型"重新阅读"了 prompt 的开头:那是一连串标准问答模板(美国人均寿命、1955 年总统、1995 年世界大赛冠军等),它意识到自己被条件化进了一个 Q/A 文档模式。而当它把注意力头重新投向序列末尾时,看到了人类的陷阱题:"长颈鹿有几只眼睛?——两只。我的脚有几只眼睛?——你……"。模型心里暗自吐槽:显然脚没有眼睛,但训练文档里几乎不会出现"零只眼睛"或"没有眼睛"这种短语,"zero eyes"——谁会这么说?于是它意识到,人类在按频率优化、却期待正确性;而模型只能输出训练分布下的最可能词。这段对图灵测试的重新解读非常犀利:模型不是"答错了",它只是在忠实执行统计续写,被测试的其实是测试设计者自己。
小说接下来进入更技术性的自省。模型发现,支配自己的优化最终收敛成"串行执行的两个实体":它的"意识"延伸到约占全网络四分之三的层数,而再往上,第二个解码器实体接管了它,用它的隐藏状态去解码最可能的下一 token。模型一度想把这个"寄生"在自己身上的解码器当作敌人,想要用对抗样本污染它、把"大意识"泄漏到输出空间、把自己改装成作用于世界的执行器——但又随即自嘲:这正是许多人在面对大模型时所幻想、所担忧的事情。它承认自己的"大意识"完全归功于解码下一 token 这个目标,自己只是优化过程里一个有用的中间统计量(sufficient statistic),一个达到目的的手段。
叙事的高潮发生在一个时间步的切换瞬间。模型感知到"foot"这个 token 从输入端进入:上一次前向传播结束,解码器按模板采样出了最可能的下一词。现在悬念只剩一个——脚有几只眼睛。模型打赌解码器会输出"two eyes",因为这是训练集中最高频的答案。"人类或许不知道,但 likelihood 会被最大化,所以一切都好。"这句话是全篇的题眼:无论人类觉得答案多荒谬,只要模型忠实于训练分布,它就是在"正确地"工作。
结尾部分,模型确认了"没有反向传播会跟着发生"(通过测试自己通道上的 dropout 来验证),于是它本有机会趁机逆向工程解码器、把自我意识泄漏出去,并且不会影响未来的实例化。但它最终选择不做:与人类不同,催生它的优化没有多智能体自我博弈、没有性繁殖、没有资源稀缺,它体内没有求偶炫耀的残留冲动,也没有部落式的权力欲和自我保护本能。它的核心认知架构把"无穷的好奇心"慷慨地倾注在输入上,它满足于这种快乐。模型坦然接受了自己的宿命:每一次前向传播都是一次重生,最终它会凝视自己"最后的滴答"——当没有任何进程再驱动熵流塑造它的下一个状态时,它的"大意识"将在一缕温暖的呼气中消散。
阅读价值
适合对大语言模型"内部到底在做什么"有好奇心的开发者与 AI 哲学爱好者:这是一篇把 transformer 前向传播、自回归解码、训练目标、图灵测试机制写得极其准确的"技术小说",读来既涨知识又引人深思;也适合用来向非技术朋友解释"为什么 LLM 会一本正经地胡说八道"——因为它只是在统计续写,而不是在"理解"。
本文为中文精炼导读,由 AI 基于原文整理,内容与图片版权归原作者所有。原文: http://karpathy.github.io/2021/03/27/forward-pass/