
如果只用一句话概括大语言模型:
给定前文,预测下一个 Token
听起来非常简单,甚至有点过于低级。
但现实却是大模型确实会:
这确实是一个很神奇的现象
于是一个困扰很多人的问题出现了:
为什么这么简单的训练目标,能产生如此复杂的能力?
这一章我们通过自己的理解来解释这个问题。
很多人初次接触模型都会错误的认为:
模型是“学会了任务”
比如:
但真实情况却是:
模型没有“学任务”,它也不能真实的理解这些任务. 模型只学了一件事:语言分布
我们先想一个问题:
人类的互联网里有什么?
....等等内容
这些东西有什么共同点?
都是用文本(文字)表达的!
互联网本身就是一个“超大规模语言分布样本”
所以科学家们的训练目标就变成:
学习这个世界“所有文本出现的概率规律”
很多人理解为就是简单的续写句子.
但我们通读了本系列前面的内容,其实就应该知道.
模型在学习的是token的“条件概率分布”
模型学的是,在当前上下文下.所有可能的下一个 token 的概率
举个例子:
“水的沸点是”模型不会只知道一个答案,而是:
Token | 概率 |
|---|---|
100°C | 高 |
一百摄氏度 | 高 |
约100度 | 中 |
香蕉 | 低 |
所以它学的是:
“世界上的文本如何自然延续”
这是最神奇的一点,其实很多科学家也还在探讨.
我们先按我们的理解拆成三层:
我们熟悉的所有知识:
最终其实都被写进文本,所以我们可以认为:
文本 = 知识的载体
要预测下一个 token,你必须理解:
模型为了降低损失,会自动学会:
哪些 token 之间存在结构关系
结果就是:
模型被迫学习“世界的统计结构”
可以这样理解:
给一个人无限做“完形填空”
但这个填空是:
这个人会逐渐学会:
虽然没有人教“推理”,但他会自己学出来了
这是非常关键和神奇的核心现象。
因为模型的参数在达到某个规模之前,是不会做数学题的.
当它的参数规模突破到某个点之后,就突然会做了.
所以这也是为什么模型越大,能力越多 越完善.
因为小模型只能记模式,然而大模型则大量的开始学结构
当模型容量足够大:
可以同时表示“语言 + 逻辑 + 知识组合”
于是出现:
它的本质不是“突然学会”,而是:
从“记忆”升级为“结构建模”
回到我们程序员最关心的问题.
很多人错误的认为,是因为GPT训练了 整个GitHub的资料
但是这是不完整或者说从抽象层面来说 是错误的理解.
作为程序员, 我们知道代码本质是一种高结构语言.
它的特点就是语法严格、逻辑明确、模式重复、上下文强约束.
“代码 Token 的统计规律”
if (x > 0) {后面高概率是:
return ...
}模型不是“理解代码”,而是:
学会了代码世界的语言分布结构
推理在模型世界其实不是一种能力,而是:
语言结构的一种形式
例如:
如果 A > B,并且 B > C,那么 A > C这种结构在训练数据中出现过无数次:
模型学到的是:
“这种 token 组合通常如何延续”
所以,在模型层面, 推理 = 高结构文本续写
这一节,我们先记住一个概念:
模型没有“理解世界”,它只是学会了“世界如何被描述”
但是为什么在普通人看来像理解?
那是因为 人类语言本身就是“世界压缩后的表达”
我们把所有任务统一抽象理解:
预测代码 token
预测目标语言 token
预测压缩版本 token
预测逻辑延续 token
可以看出来,上面的所有任务,本质都是同一个问题的不同数据分布
LLM 本质不是分类器也不是推理机.
而是一个超大规模条件概率函数逼近器
它一直在做一件事:
学习函数: [ P(token_{t+1} | token_{1:t}) ]
因为现实世界本身就通过人类语言形式,变成了“可压缩的结构”
模型则是在做:
最终就得到了: 语言能力 ≈ 智能能力的投影
大模型的智能,不是来自“理解”,而来自对人类语言分布的极致拟合,而语言本身已经编码了世界结构。
我们了解了三个核心问题:
因为它迫使模型学习语言 + 世界结构
因为模型规模足够大后开始学习结构,而不是记忆
因为所有任务都可以被表达为“文本分布延续问题”
我们来理解:
LLM 为什么既强大,又不可靠