自从 ChatGPT 横空出世以来,"语言大模型"这个词几乎一夜之间走进了每个人的生活。无论是写文案、读论文、查资料还是写代码,这些模型似乎都能信手拈来。但当我们惊叹于它们输出质量的同时,一个最根本的问题常常被忽略——大模型到底是怎么"说话"的?
答案出乎意料地简单:它在玩接龙。它并不像人类那样先在脑海里组织好一整段话,再把整段话说出来;它每次只看自己已经说过的内容,然后预测下一个最可能出现的字或词。这个看起来弱智的"接话尾"游戏,正是今天 GPT 强大能力的根源。本文将带你从最底层的语言学争论一直走到 Transformer 架构,把这看似简单的一句话彻底拆开。
大模型的说话方式:接话尾 vs 组织语言
人类在说话时,通常是先在脑海中构建一个完整的意思,再选用合适的词汇和句式把它表达出来。但大模型完全不同——它的做法是每次接话尾,脚踩西瓜皮划到哪里算哪里。这意味着大模型并没有完全模仿人类的思维方式,却又可以完成几乎任何一个语言任务。它是如何习得人类语言规律的呢?
我们来看一个"句子接龙":给出"我想……",很明显下一个字应该是"太";接上"太子……"之后呢?没有更多上下文,填"美""抽象"都说得过去。但如果我们把完整的语境都告诉模型——比如"我很欣赏一位朋友的高尚品德,我想起一句古诗——我想……太子……"——那下一个字就只能是"美"。这就是大模型生成语言的方式:基于已有上文,预测下一个 token。
完形填空式的生成
某种意义上,大模型一直在努力地接话,和做完形填空一样。这种生成思路和人类的语言生成方式有非常明显的不同,但它一样可以生成出非常逼真的语言。所以这个"接龙游戏"看似简单,背后却承载着对整个语言规律的建模——模型必须真的"懂"语言,才能在每一步接出最合理的下一个词。
语言的本质规律:token 序列与信息传递
那大模型预测下一个词时,"语言规律"到底是什么?答案并不是语法。语言规律的本质在于如何传递信息和意义。不同的语言、不同的词汇都只是符号,专业的说法叫做 token。
语言的规律本质上就是理解每个 token 在现实世界中对应的含义,以及它们以什么样的内在规律一个接一个地出现。这种出现的序列整体传递了一个什么意思。所以语言模型,就是一个能描述"tokens 按内在规律序列出现"的统计/计算结构。
语言模型的精确定义
严格来说,语言模型 = 一个能给出"在上下文 X 下,下一个 token 是什么"概率分布的函数。它的能力,决定了我们能不能说出从来没有出现过的句子,又让所有人都能听懂。只要有了它,即使这个世界上从来没有出现过某个特定的句子,我们仍然可以说出它来,并且让所有人都能理解其中的含义——这就是语言的力量。
某种意义上,连语法本身也是一种"语言模型"——它定义了"什么样的 token 排列是符合规则的",从而约束了下一个 token 出现的范围。但语法规则是僵硬的,而真实的语言充满了灵活性、隐喻和造新词,这正是语法作为语言模型的局限所在。
语法建模的失败:Chomsky 反例
上世纪五六十年代,主流语言学家曾尝试用语法树和规则让机器说话。这条路看似自然——先把语法搞清楚,机器不就会"说话"了吗?当时的人们相信,只要把"主谓宾定状补"这些规则穷举出来,机器就能生成任何合理的句子。
然而一句经典反例击碎了这种幻想:"Colorless Green Ideas Sleep Furiously"——无色的绿色点子狂暴地睡觉。这是一句完全符合英语语法的句子(主谓宾搭配正确),却狗屁不通。这说明,语法不足以描述一个语言的本质。
于是,"语法方法"这条路线在自然语言处理领域逐渐式微。真正让语言模型起飞的,是另一条完全不同的路——统计语言模型。
统计语言模型的崛起:从输入法联想到 GPT
既然语法不够用,那换一个思路:不去硬写规则,而是从大量真实文本中统计"上一个词出现后,下一个词最可能是什么"。这就是统计语言模型的核心思想。正是统计语言模型,才带来了今天 GPT 的强霸。
N-gram 模型
最朴素的统计语言模型叫 N-gram Model:只看前 N 个相邻词来预测下一个词。当 N=1 时,模型只考虑当前字本身的频率,比如"我"后面最常接的字是什么——这就和你用输入法时一直无脑选第一项一样,看似在"打字",但连起来往往是语无伦次的。
One-gram Model: P(下一个词) ≈ 频率最高的搭配
Two-gram Model: P(w_i | w_{i-1}) = count(w_{i-1}, w_i) / count(w_{i-1})
N-gram Model: P(w_i | w_{i-N+1..i-1}) = 统计前 N-1 个词的共现频率早在 GPT 之前,人类就已经试过很多不同的预测算法,比如隐马尔可夫模型、循环神经网络(RNN)以及 LSTM 等等。它们都在尝试解决同一个问题:怎么让"上一个词到下一个词"的预测变得更准、上下文窗口变得更大。但直到 Transformer 出现,这件事才真正被"算明白"。
GPT 解密:Generative Pretrained Transformer
终于轮到 GPT 登场。GPT 这三个字母各自承担了一部分定义,缺一不可:
G = Generative,生成式任务,输出自然语言。P = Pretrained,通过"预测下一个词"这一目标在海量文本上预训练。T = Transformer,所用的深度学习模型架构。三者结合,就是 GPT。
Next Token Prediction:核心中的核心
GPT 内部最核心的运作机制叫 Next Token Prediction:根据已有上文,一次预测并输出下一个 token,再把这个新 token 接进上文,重复以上步骤直到生成结束。换句话说,GPT 写一整篇文章的过程,等价于"几万次接话尾"。
# 简化版的 GPT 预训练目标
for text in training_corpus:
tokens = tokenizer.encode(text)
for i in range(len(tokens)):
context = tokens[:i] # 上文
target = tokens[i] # 下一个 token
pred = model.predict(context) # 模型预测
loss = cross_entropy(pred, target)
loss.backward() # 反向传播,更新参数GPT 的训练过程其实非常"粗暴":给它一篇文章,把每个位置的 token 盖住,让它预测这个被盖住的 token 是什么。预测对了就算学会,预测错了就更新参数。这个过程被形象地比喻为"钻头不管屁股"——只看眼前的局部,疯狂抠细节。
Transformer 架构让模型可以并行处理超长上下文,远超 RNN/LSTM 的能力上限;同时它具备强大的"举一反三"能力,能从训练数据中学到 token 之间复杂的内在规律。正是"统计语言模型 + Transformer + 海量数据 + 大算力"这一组合,造就了今天 GPT 的"强霸"。
结论
GPT 并不神秘——它的全部秘密浓缩在 Next Token Prediction 这一句话里:从海量文本中学"上一个词到下一个词"的概率分布,再把这个动作无限重复。本质上,它和当年朴素的输入法联想是同一类问题,区别只在于"模型"和"训练数据"的规模被推到了极致。
理解了这一点,你就能看懂 GPT 后续几乎所有的能力——写代码、做推理、扮演角色——都是"预测下一个 token"这一底层机制在不同上下文中的自然展开。这也是为什么 prompt 工程、上下文学习和思维链这些技巧会如此重要:它们本质上都是在替大模型构造一个"更好的上文",让"下一个 token"的预测变得更准。