01先明确模型究竟在解决什么问题
给定一段前文,语言模型输出的是词表上“下一个词元”的条件概率分布。例如输入“我 喜欢 吃”,模型会同时为“苹果”“手机”和其他候选词打分,而不是直接从数据库取出一条回答。词元可以是一个字、子词或词的一部分,不一定是中文里的一个词。
整段文本的概率可以按链式法则分解为逐位置的条件概率。训练时,正确的后继词元直接来自原始文本;推理时,模型必须使用自己刚刚生成的词元继续预测。
02一次前向计算的完整路径
分词器把文本编码成整数序列。嵌入层用这些整数查表得到向量,位置机制补充顺序信息;多个 Transformer 块反复交换并变换信息。最后,输出层把末尾位置的表示映射为词表大小的分数,softmax 再把分数归一化。
设批大小为 B,序列长度为 T,词表大小为 V,隐藏维数为 d。输入编号形状是 [B,T],隐藏状态是 [B,T,d],最终分数是 [B,T,V]。形状是理解实现的第一条线索。
03训练与生成使用同一个网络,但工作不同
训练把真实序列右移一位构造目标,利用因果遮罩同时计算多个位置的预测,并反向更新参数。生成通常只取最后一个位置的概率,选择一个词元接到序列末尾,然后重复前向计算。
因此,“模型能算出概率”和“模型已经学会语言”是两回事。未训练网络也能输出合法概率,但这些概率还没有通过语料学习到有用的规律。
04本教程如何逐步搭起来
先建立文本、向量和预测目标,再研究注意力与 Transformer,最后连接训练、生成及后训练。右侧各实验使用小规模数据,便于追踪数字;涉及简化模型时,会明确它保留了哪一步、没有实现哪一步。
本章实验把“我 喜欢 吃 苹果”拆成输入和目标,给出均匀预测的交叉熵基线。它检查训练数据如何对齐,不冒充完整模型的训练结果。
自检:生成一个词元之后,为什么还需要再做一次预测?
因为下一次条件概率所依赖的前文已经改变。自回归模型把新词元加入上下文,再预测它之后的词元;一次前向计算并没有预先决定整段回答。