一、先看一个你每天都在做的动作

把这句话盖住最后一个字,自己试着填一下:

今天天气很 ___

你脑子里冒出来的大概率是"好"“热"“冷"“糟糕"这几个词之一。你不会填"香蕉”,也不会填"的”。

没有人教过你一张"天气后面能接什么词"的表。你只是读过足够多带"天气很"的句子,然后这个动作变得毫不费力——甚至你都没意识到自己在做预测,你以为自己是在"理解"这句话。

语言模型要做的,就是把你刚才那个下意识的动作,变成一个可以计算的函数:

给定前面的文字,输出"接下来最可能是什么"的一个概率排序。

这就是这门课要讲的全部东西的起点。它朴素到有点可疑——“猜下一个词"凭什么能变成"理解语言”?这个问题的答案没有你想的那么玄,但也不是一句话能说完的,这正是这门课存在的理由。

二、打个比方:完形填空,但是给它打分

你在学校做过完形填空。老师给的答案是唯一的,答对答错很分明。

语言模型做的是一个没有唯一答案、但有排序的版本:

输入: 今天天气很 ___

模型输出(不是一个词,是一整个概率排序):
  好      35%
  热      18%
  冷      12%
  糟糕     9%
  舒服     6%
  ...
  香蕉   0.0001%
  的     0.0002%

关键的转变在这里:语言模型从不"回答”,它只是把它见过的语言规律,翻译成一个数字排序。 “好"排第一,不是因为模型"觉得天气好”,是因为在它读过的海量文本里,“今天天气很"后面接"好"字的比例最高。

⭐ 这个排序动作,就是语言模型唯一在做的事情。 后面 30 讲要讲的所有东西——怎么让这个排序更准、怎么让它算得动、怎么让它听指令、怎么让它多想一会儿——全部是在这一个动作外面加东西,动作本身从没变过。

语言模型(Language Model):一个函数,输入一段文字(术语叫 上下文,context),输出词表中每一个候选词作为"下一个词"的概率分布。

三、把"猜词"写成一个明确的任务

要让"猜下一个词"变成一件可以计算、可以训练的事情,需要把它钉死成一个明确的数学任务。这一节只讲任务是什么,不讲模型内部怎么算(那是第 5、9 讲的事)——这里我们只关心:输入是什么,输出是什么,好坏怎么打分。

把文字切成一个个的单元,叫 token(第 7 讲会讲这一步到底怎么切,这里先假设"一个 token 约等于一个词”)。一段文字就是一串 token:

x₁, x₂, x₃, ..., xₜ

语言模型要算的是:

P(xₜ₊₁ | x₁, x₂, ..., xₜ)

读作:“已知前面 t 个 token,第 t+1 个 token 是词表里每一个候选词的概率分别是多少。”

这不是输出一个词,是输出一整个概率分布——词表里有多少个候选 token(现代模型的词表通常几万到十几万),这个分布就有多少个数字,加起来等于 1。

要检验模型猜得准不准,最直接的办法就是:看它有没有把最高的概率,分配给语料里真实出现的那个词。 训练的过程(第 6、13 讲会展开)本质上就是不断调整模型内部的参数,让这个概率尽可能地往"真实答案"那个词上靠。

⚠️ 这里有一个经常被跳过的重点:这个任务的"标准答案"不需要任何人去标注。给模型一段已经存在的文本,前面的字就是输入,后面紧跟的那个字天然就是"正确答案"。这种不需要人工标注、答案就藏在数据本身里的训练方式,叫自监督学习(self-supervised learning),第 13 讲会正式定义它。它是这整个领域能够用到互联网规模数据的根本原因——如果每一条训练样本都要人工标注,今天的规模是不可能做到的。

四、为什么"猜词"会逼出"理解"

朴素的疑问来了:这么简单的一个任务——不断猜下一个字——为什么最后会表现得像是"看懂了"文字?

看一个例子:

句子 A: 苹果公司今天发布了新款 ___
句子 B: 他咬了一口 ___

两句话都在"苹果"这个词之后,但接下来最可能出现的词完全不同:A 后面大概率是"手机"“芯片"“系统”,B 后面大概率是"苹果"“三明治”。

要把这两种情况的概率排序都猜准,模型没有别的办法,只能在内部区分出"苹果"在这句话里指的是公司还是水果——尽管从来没有人明确告诉过它"苹果有两个词义"这件事。

⭐ 这就是"猜词"逼出"理解"的机制:语法、常识、事实、语境消歧,没有一样是被直接教给模型的规则(不像传统专家系统那样写一堆 if-else)。它们全部是为了把"下一个词"猜准,模型被迫在内部学会的副产品。你可以把这想象成一场极端的压缩游戏:

⭐ 猜下一个词猜得越准,说明你越懂这段文字背后的规律——而"用一套规律去解释大量具体现象”,换一个说法,就是压缩。预测和压缩在数学上是同一件事的两种说法:能把一段文字压缩得越小,就等价于能把它的下一个字猜得越准。这条"预测 = 压缩"的洞察不属于哪一代模型,它是这个任务本身的数学性质,不会因为模型换代而过时。

五、这门课后面 30 讲,都在赌同一件事

“猜下一个词"这个任务,其实不是新东西——上世纪就有统计语言模型在做同一件事(用计数的方式估算"某个词后面接某个词"的频率,叫 n-gram 模型)。它们也能做出还算合理的猜测,但从来没有表现出接近"理解"的能力。

那为什么今天的模型可以?

答案不是"任务变了”,任务从头到尾就是"猜下一个词"。变的是规模——数据的规模、模型的规模、算力的规模。

这门课接下来的大部分篇幅,其实都在回答同一个问题的不同侧面:

如果把"猜下一个词"这件事,用一个远比计数更强的函数(神经网络)、在远比过去更大的数据和算力上去做,会发生什么?

第 2 讲会先说明,为什么早期的神经网络方案(RNN/LSTM)在这条路上很快撞到了墙——这个铺垫是必要的,因为 Transformer(第 9 讲开始)正是为了绕开这堵墙而设计出来的。第 15 讲的 Scaling Laws 会回答"规模变大,效果是不是必然变好"这个问题的精确版本。

六、这个目标函数,从一开始就没承诺什么

在往下讲之前,有一件事必须现在就说清楚,因为它会决定你怎么理解后面几乎所有单元。

“猜下一个词"这个目标函数,优化的是统计上下一个词最可能是什么,不是事实上正确的答案是什么。

这两件事在训练数据里大部分时候恰好一致——因为人类写下的文字大体符合事实、符合逻辑——但"大部分时候一致"和"必然一致"是两回事:

目标函数实际在做的事 我们容易误以为它在做的事
输出统计上最可能的下一个 token 输出事实正确的下一个 token
从训练数据的分布里插值 从对世界的直接观察中推理
续写一段看起来合理的文字 理解你在问什么、想不想回答

⚠️ 这一节要立的规矩贯穿全课:模型没有被赋予"这句话是不是真的"这个概念,也没有被赋予"意图”——它没有"想不想回答你"这件事,从目标函数的角度看,它永远只是在续写一段最可能的文字。第 29 讲会证明,幻觉不是模型"坏了",是这个目标函数从一开始就没有承诺"真实"这个东西,只承诺了"看起来合理"。 第 16–20 讲要讲的对齐与微调,很大一部分工作,就是在这个只管"合理"的目标函数外面,想办法再叠加"真实"“有帮助"“听指令"这些目标——但叠加的方式和代价,才是那几讲真正的重点。

七、这一讲和后面课程的关系

这一讲定义的"猜下一个词”,是贯穿全课 31 讲唯一没有变过的主线,后面每个单元都是在这条主线上加东西:

Unit 1(本讲)    定义任务:猜下一个词
Unit 2            补数学基础:这个"猜"到底是怎么用数字算出来的
Unit 3            Transformer:用一个更强的函数去猜
Unit 4(预训练)  把"猜"这件事在海量数据上真正跑起来
Unit 5(对齐)    在"猜得准"之外,叠加"猜得对""听指令"
Unit 6(推理)    猜的时候怎么算得快、算得省
Unit 7(Agent)   把"猜一个词"串成"做一件事"
Unit 8(安全)    这套目标函数在结构上做不到什么

八、本讲小结

  • 语言模型只做一件事:给定前面的文字,输出词表中每个候选 token 作为"下一个"的概率分布。这个动作贯穿全课,后面所有机制都是加在它外面的。
  • 形式化写法是 P(xₜ₊₁ | x₁...xₜ),输出是一整个概率分布,不是单个词。
  • ⭐ 训练不需要人工标注:任何已有文本里,前面的字是输入,紧跟着的字天然就是答案,这叫自监督学习——是这个领域能吃下互联网规模数据的根本原因。
  • ⭐ “理解"是"猜准"的副产品:要把不同语境下同一个词的下一个词猜对,模型被迫在内部学会消歧、语法、常识,没有一条是被直接教的规则。
  • 预测和压缩是同一件事的两种说法:猜得越准,等价于对语言背后的规律掌握得越好。这条洞察不属于哪一代具体模型,不会过时。
  • 今天效果好靠的是规模,不是任务变了:n-gram 模型几十年前就在做同一个任务,规模不够,表现不出"理解”。
  • ⚠️ 目标函数只管"看起来合理”,不管"是不是真的"——这是全课最重要的伏笔,第 29 讲的幻觉、第 16–20 讲的对齐,都是这一节的直接后果。

思考题

  1. 为什么"今天天气很___“和"苹果公司今天发布了新款___“这两个例子,能说明模型必须在内部做语境消歧,而不是简单地查一张"某词后面接某词"的表?
  2. n-gram 模型(用计数估算词频)也是在做"猜下一个词”,为什么它做不到接近"理解"的效果?如果只凭本讲的内容,你能猜出可能的原因吗(不要求答对,第 2 讲会正式回答)?
  3. “预测 = 压缩"这个说法里,“压缩"具体指的是什么?如果一个模型能把某段文字的下一个词全部猜对,这段文字理论上可以被压缩到多小?
  4. 为什么说这个目标函数"没有承诺真实性”?试着造一个例子:一句话在统计上是"最可能的下一个词”,但事实上是错的。
  5. 自监督学习不需要人工标注答案,这件事对"数据规模能做多大"有什么影响?如果反过来,每条数据都要人标注,会限制在什么量级?