前面几节,我们了解了ChatGPT如何玩文字接龙游戏。现在,让我们稍微正式一点,引入一个经常听到的术语:语言模型(Language Model)。这个词听起来很学术,但理解之后会发现它并不神秘。
在谈"语言模型"之前,先聊聊"模型"这个词本身。
我们生活在一个复杂得难以想象的世界里。为了理解这个世界,人类发明了一种强大的工具:用简化的数学来描述复杂的现实,这就是"模型"。
物理学中的模型
比如,一个小孩抛出一个球,球划出一道弧线落地。这个简单的动作,背后涉及无数的物理因素:球的材质、空气阻力、地球引力、风速、温度……
但牛顿给了我们一个优雅的模型:
h=v0t−12gt2h = v_0 t - \frac{1}{2}gt^2
这个公式忽略了无数细节,却能相当准确地预测球的轨迹。这就是模型的力量:用简单的数学,抓住现象的本质。
气象学中的模型
再比如,明天会不会下雨?这涉及大气中数万亿个分子的运动,地球自转,太阳辐射……
气象学家建立的模型,用几千个方程,数百万个数据点,模拟大气的运动,最终给出:
明天降雨概率:65%
不完美,但有用。这就是模型的价值:
在复杂中找到规律,在不确定中给出预测。
那么,"语言模型"呢?
类似地,人类语言是一个极其复杂的现象。当发一条朋友圈"今天emo了",这背后涉及:
这么复杂的现象,怎么用数学来描述呢?似乎不可能。
但语言模型给了我们一个数学的角度:把语言看作一个概率过程。
现在,给出一个正式的定义:
语言模型,就是对语言概率分布的数学建模。
什么意思?拆解一下。
语言是随机过程
想象一下,正在写一篇文章。写到"今天天气"这四个字之后,下一个词可能是:
下一个词不是确定的,而是有多种可能性,每种可能性有一个概率。
语言模型计算概率
语言模型做的事情,就是用数学方法,计算出这个概率分布:
P(w∣C)P(w|C)
这个符号读作:"在给定前文的条件下,某个词出现的概率"。
具体例子:
P(真好∣今天天气)=0.35P(\text{真好}|\text{今天天气}) = 0.35
P(很好∣今天天气)=0.25P(\text{很好}|\text{今天天气}) = 0.25
P(不错∣今天天气)=0.15P(\text{不错}|\text{今天天气}) = 0.15
P(糟糕∣今天天气)=0.08P(\text{糟糕}|\text{今天天气}) = 0.08
P(紫色∣今天天气)=0.0001P(\text{紫色}|\text{今天天气}) = 0.0001
这个概率分布,就是对"人类在这个上下文中会说什么"的数学建模。
为什么叫"建模"?
因为这个概率分布不是随意的,它反映了语言的内在规律。
继续用"今天天气"这个例子来说明:
规律一:语法约束
为什么P(紫色∣今天天气)=0.0001P(\text{紫色}|\text{今天天气}) = 0.0001这么低?
因为中文语法不允许"天气"后面接颜色词。语言模型学会了这个规律,所以给了极低的概率。
再看一个例子:
P(吃∣我喜欢)=0.15P(\text{吃}|\text{我喜欢}) = 0.15
P(苹果∣我喜欢)=0.12P(\text{苹果}|\text{我喜欢}) = 0.12
P(的∣我喜欢)=0.001P(\text{的}|\text{我喜欢}) = 0.001
为什么"的"概率这么低?因为"我喜欢的"这种说法不符合中文语法(虽然口语中偶尔也有,但很罕见)。
规律二:语义连贯
P(爬树∣猫会)=0.18P(\text{爬树}|\text{猫会}) = 0.18
P(飞∣猫会)=0.001P(\text{飞}|\text{猫会}) = 0.001
为什么"飞"概率这么低?因为在现实世界中,猫不会飞。语言模型从数据中学会了这个常识。
规律三:上下文相关
想象这个场景:
前文A:"我买了一部新手机,它的_"
前文B:"我做了一道菜,它的_"
虽然都是"它的",但下一个词的概率分布完全不同。
前文A:
P(屏幕∣…它的)=0.25P(\text{屏幕}|\text{…它的}) = 0.25
P(味道∣…它的)=0.001P(\text{味道}|\text{…它的}) = 0.001
前文B:
P(味道∣…它的)=0.30P(\text{味道}|\text{…它的}) = 0.30
P(屏幕∣…它的)=0.001P(\text{屏幕}|\text{…它的}) = 0.001
语言模型会根据更前的上下文(手机 vs 菜)来调整概率。
小结:
语言模型就是用数学的方式,把这些规律"编码"进概率分布中。这就是为什么我们说,语言模型是对语言的"建模"。
你可能没想到,语言模型的思想,早在1948年就被提出了——比ChatGPT早了75年!
克劳德·香农是谁?
克劳德·香农(Claude Shannon),信息论之父,现代数字通信的奠基人。他在1948年发表了一篇划时代的论文《通信的数学理论》,奠定了整个信息时代的理论基础。
但很少有人知道,他在这篇论文中,还提出了一个有趣的"游戏"。
香农游戏:人类版的"预测下一个词"
香农做了一个实验:
- 给你一段英文文本的开头(来自小说《名利场》):
"THE ROOM WAS NOT VERY LIGHT A SMALL OBLONG READI___"- 请你猜下一个字母是什么?
- 如果猜对了,继续猜下一个;如果猜错了,告诉你正确答案,然后继续。
- 记录你猜对/猜错的次数。
他让志愿者玩这个游戏,发现了一个惊人的规律:
人类能够相当准确地预测下一个字母!
例如:
"THE ROOM WAS NOT VERY LIGHT A SMALL OBLONG READI___"
大部分人会猜:N, G
→ "READING" (阅读/阅览室)人类的大脑,自动学会了英语的:
- 语法规律("a small" 后面通常是名词)
- 语义规律(房间不是很明亮,可能是阅览室或类似地方)
- 统计规律("readi" 开头,最常见的是 "reading")
这和语言模型有什么关系?
香农的核心洞察是:语言不是随机的,而是有规律的。这种规律可以用概率来描述。
他甚至给出了一个数学公式,计算英语的"熵"(Entropy)——衡量语言的不确定性:
H=−∑P(x)logP(x)H = -\sum P(x) \log P(x)
这就是现代语言模型的数学基础。
从香农游戏到ChatGPT
对比一下:
香农游戏(1948):
- 人类根据经验,猜下一个字母
- 依靠的是大脑中积累的语言统计规律
ChatGPT(2022):
- AI根据训练数据,预测下一个词
- 依靠的是1750亿参数中编码的语言统计规律
本质是一样的,都是在建模:P(下一个∣前文)P(\text{下一个}|\text{前文})
香农的预言
更神奇的是,香农在1948年就预言了:
"如果我们能够精确计算语言的概率分布,我们就能制造出一台'写作机器',它能够生成像人类一样的文本。"
这不就是ChatGPT吗?!
一个有趣的对比
1948年,香农用人类志愿者做实验:
- 任务:预测下一个字母
- 处理速度:约1个字母/秒
- 准确率:60-70%
- "参数量":一个人类大脑
2023年,ChatGPT:
- 任务:预测下一个词/字母
- 处理速度:约100个词/秒(约500倍于人类)
- 准确率:在简单文本上接近90%,超过人类
- 参数量:1750亿
75年后,用机器实现了香农的梦想,而且远超他的预期。
如果香农还活着……
克劳德·香农于2001年去世,享年84岁。他没能看到ChatGPT的诞生。
但如果他还活着,看到自己75年前的理论,最终变成了改变世界的AI产品,他会说什么呢?
也许他会说:"我早就知道了。数学不会骗人。"
每当用ChatGPT的时候,不妨想一想:75年前,一个天才数学家,已经在纸上勾勒出了这一切的蓝图。
| 中文 | English | 音标 | 说明 |
|---|---|---|---|
| 语言模型 | Language Model | /ˈlæŋɡwɪdʒ ˈmɒdl/ | 对语言序列概率分布进行建模的数学模型 |
| 条件概率 | Conditional Probability | /kənˈdɪʃənl ˌprɒbəˈbɪləti/ | 在已知某事件发生的条件下另一事件发生的概率,记为P(词 |
| 联合概率 | Joint Probability | /dʒɔɪnt ˌprɒbəˈbɪləti/ | 多个事件同时发生的概率,记为P(词1,词2,...,词n) |
| 概率分布 | Probability Distribution | /ˌprɒbəˈbɪləti ˌdɪstrɪˈbjuːʃən/ | 描述随机变量所有可能取值及其概率的函数,语言模型的核心输出对象 |
| 香农游戏 | Shannon Game | /ˈʃænən ɡeɪm/ | 香农在1948年提出的根据前文预测下一个字母的思想实验,语言模型概念的雏形 |
| 自回归生成 | Autoregressive Generation | /ɔːtoʊrɪˈɡresɪv ˌdʒenəˈreɪʃən/ | 从左到右逐词生成文本序列的过程,每一步依赖之前已生成的全部内容 |
| 下一Token预测 | Next-Token Prediction | /nekst ˈtoʊkən prɪˈdɪkʃən/ | 语言模型根据已有Token序列预测下一个Token的核心训练任务和目标 |
| 信息熵 | Entropy | /ˈentrəpi/ | 衡量信息不确定性的度量单位,香农提出的核心概念 |