AI 如何工作
从机器学习基础讲起,一路深入到 transformer 的内部构造。
52 篇教程,横跨 17 个学习层中的 6 个——按前后衔接顺序编排。
1入门
2机器学习基础
- AI 中的概率模型输出的不是答案,而是概率分布。理解分布、softmax 和置信度,才能解释 AI 系统的真实行为。
- 机器学习是什么?机器学习是用例子编程,而不是用规则编程。机器从数据中学习的三条路径,以及各自适用的场景。
- 数据如何变成数字模型做的是算术,所以任何输入——文本、图像、类别——都得先变成一串数字。这篇讲这个转换怎么做,以及它为什么重要。
- 什么是神经网络?神经网络是一层层简单单元,每个单元算一次加权和。堆得够多,它们就能逼近几乎任何函数。下面讲这是怎么做到的。
- 权重与偏置权重和偏置是神经网络学到的那些数字。权重决定每个输入有多重要;偏置平移结果。模型知道的一切都住在这里。
- 前向传播前向传播就是一个网络把输入变成输出的过程:一层接一层,每层算加权和再算激活。这就是「推理」这个词的全部含义。
- 激活函数激活函数带来的非线性,让深度网络能学到弯曲的模式。这里讲清它为什么不可省略,以及 ReLU 和 sigmoid 有何不同。
- 损失函数损失函数把「模型错了」变成一个可最小化的数。它定义了模型在追求什么——所以要认真选。
- 梯度下降梯度下降是模型学习的方式:量出损失的斜率,往山下走一步,重复。几乎所有神经网络的训练都靠这一个算法。
- 反向传播反向传播是网络高效算出每个权重梯度的方式:把链式法则从后往前用在各层上,边算边复用。
- 过拟合与泛化死记训练数据的模型,遇到新数据就会失效。过拟合与泛化之间的张力,是整个机器学习的核心矛盾。
- 训练集、验证集、测试集把数据切成三份,各干各的活。搞混了,模型在开发阶段看着很棒,到真实世界就崩。
3经典 NLP
- 循环神经网络第一种为逐词读序列而生的神经网络:它把隐藏状态一步步带下去。RNN 怎么运作、它打开了什么,以及限制它的那个缺陷。
- LSTM 与 GRU:留得住的记忆循环神经网络忘得太快,门控记忆单元修好了这一点。LSTM 与 GRU 如何决定留下什么、丢掉什么,以及它们为何统治了 NLP 十年。
- 序列到序列与编码器-解码器两个循环网络如何串起来,把一个序列变成另一个序列——神经网络机器翻译背后的架构,以及那个引出了注意力的瓶颈。
- 注意力的起源在自注意力之前,是 Bahdanau 注意力:2014 年为翻译打的一个补丁,让解码器能回看整个输入。这个想法从哪来,又是怎么工作的。
- 经典文本预处理在模型学会直接读原始文本之前,工程师靠手工清洗:切分、转小写、去停用词、把词还原到词干。
- 词袋模型与 N-gram人类第一次把文本变成数字的办法:数词,忽略顺序。简单、出奇地有效,而且是一切后来方法都要去比的基线。
- transformer 为什么胜出RNN 一次只读一步,还总在遗忘。transformer 则一次处理全部,任意距离一步可达。整个领域转向的三个原因,完整版。
- word2vec:词向量的起点一个改变了 NLP 的想法:把每个词表示成一个从邻居中学来的稠密向量,让相似的词彼此靠近,让含义变成算术。
4基础概念
- logit 与 softmax模型的原始输出分数如何变成下一个 token 上的概率分布。softmax 函数、温度对它做了什么,以及为什么这些数字是相对的而不是绝对的。
- 什么是 AI 中的 token?token 是 AI 模型真正读取的单位——不是词,也不是字母。它解释了你的账单、你的上下文上限,以及模型为什么会数错字母。
- 什么是 embedding?embedding 把含义变成坐标,机器才有可能对语言做计算。它是搜索、RAG 和注意力共同的地基。
- 词表是从哪来的?四步讲完 BPE,以及为什么最终生成的词表会永久成为它构建时所用文本的化石。
- LLM 是什么?区分大语言模型的训练、文本生成,以及 AI 产品提供的工具和记忆。
- LLM 到底是怎么写字的?一次一个 token,每个都以之前的一切为条件。这个生成循环解释了流式输出、成本,以及模型为什么改不了。
- 基座模型 vs 对话模型预训练模型只会续写文本,不会回答问题。指令微调加了什么,以及为什么助手人格是一层训练出来的外壳。
- 语言建模目标预测下一个 token 不是对 LLM 行为的比喻,而是它精确的训练目标。这个目标怎么定义,以及它为什么不需要人工标注。
- 困惑度:语言模型的内在度量困惑度衡量模型对真实文本有多意外。这个数字是什么意思,它和损失是什么关系,以及为什么分数更低不等于助手更好用。
- 温度和 top-p 详解同一个 prompt 为什么会给出不同答案,以及这两个主要采样旋钮究竟怎样改变模型的选择。
- 训练与推理区分参数更新、上下文、缓存与产品存储,理解训练和推理。
- 预训练究竟发生了什么?遮住下一个 token,猜它,猜错了就调整,重复一万亿次。一个极简的目标如何在海量规模下长出通用能力。
- 「7B 参数」是什么意思?参数是那些可调整的数字,模型学到的一切都装在里面。参数量为什么重要,又为什么它已经不再代表全部。
5模型内部
- 解码策略:贪心搜索与束搜索模型给出一个概率分布之后,总得有东西把它变成一段序列。这里讲确定性的策略——贪心搜索与束搜索,以及为什么局部最优的 token 并不构成全局最优的句子。
- 语义的几何结构embedding 空间是有结构的:方向承载关系,簇承载类别,而且它的几何行为既有用,又偶尔会误导人。
- transformer 是怎么工作的?当前每个语言模型背后的架构,从输入 token 一路追到输出概率——一层一层地看。
- 编码器、解码器与编码器-解码器架构排布 transformer 堆栈的三种方式——仅编码器、仅解码器、编码器-解码器——差别只有一处:哪些位置能看见哪些位置。这个选择决定了它们各自擅长什么。
- transformer 里的前馈网络每一层 transformer 有一半不是注意力,而是一个逐 token 作用的小网络,模型的参数大部分都在它身上。它算什么,以及为什么事实性知识看起来就存在那里。
- 层、残差与深度为什么模型要堆几十个一模一样的块,以及让深堆叠能训起来的那两个小技巧。
- 归一化层:LayerNorm 与 RMSNorm为什么每个 transformer 块都要重新缩放激活值,LayerNorm 和 RMSNorm 各自怎么做,以及为什么正是这个不起眼的步骤让深度模型可训练。
- 输出投影:从隐藏状态到词表 logittransformer 的最后一步把一个隐藏向量变成词表中每个 token 的分数。这个投影怎么做,为什么它往往是最大的单个矩阵,以及模型为什么把它和 embedding 绑定。
- 自注意力图解每个词如何判断其他哪些词对自己重要。query、key、value——每个语言模型最核心的那套机制。
- 什么是 KV cache?生成第 500 个 token 不该需要把第 1 到第 499 个 token 重算一遍。避免这件事的缓存,以及它转而花掉的内存。
- 为什么要多个注意力头?一次注意力计算只产出一个混合结果。并行跑很多次,模型就能同时跟踪语法、指代和位置。
- 模型怎么知道词序?注意力机制天生看不见顺序。位置必须单独注入,而注入方式决定了上下文能拉多长。
- 长上下文为什么这么贵注意力让每个 token 都和其他所有 token 两两比较,所以上下文翻倍,计算量就是四倍。它是所有上下文上限和价格分档背后的那道约束。