Skip to content

LLM 到底在做什么?从 GPT-1 到 GPT-4 的 6 年进化史

2022 年 11 月 30 日,OpenAI 发布 ChatGPT。两个月内,用户突破 1 亿。全世界突然开始讨论一个词:大语言模型。

但如果你以为 LLM 就是 "一个很大的、会说话的语言模型",那你错过了最重要的事。LLM 的本质不是大——它是在变大过程中涌现出全新行为模式的一种全新计算范式。 那个从 GPT-1 到 GPT-4 的进化故事,比一本厚书要有意思得多。

从 1.17 亿到 1.76 万亿:一场沉默的规模实验

2018 年 6 月,OpenAI 发布了 GPT-1,1.17 亿参数,在 BooksCorpus(大约 7000 本书)上做无监督预训练,然后在下游任务上微调。论文标题叫 "Improving Language Understanding by Generative Pre-Training"——重点在 "Improving",不是 "Achieving"。它做的事情在那时看来很朴素:先无监督学语言,再有监督学任务。

但论文里有一个暗示:他们发现,只需把模型从 1 层堆到 12 层,能力提升非常显著——而且似乎没有碰到天花板。

2019 年 2 月,GPT-2 出来了,15 亿参数。这次论文标题变成了 "Language Models are Unsupervised Multitask Learners"——注意,multitask(多任务)。OpenAI 发现一个惊人的现象:当你把模型喂了大量 WebText 数据(800 万网页)后,它居然自己学会了翻译、问答、摘要——这些任务从来没有在训练数据中明确标注过。这就是最早的 "zero-shot transfer" 证明,也是后来 In-Context Learning 的雏形。

但 OpenAI 有点害怕——他们担心这个技术被滥用,所以一开始决定不发布完整模型(当然后来还是发了,并且引发了关于开源、安全、责任的大讨论)。

2020 年 5 月,GPT-3 横空出世,1750 亿参数。这次论文标题更激进:"Language Models are Few-Shot Learners"。他们证明了:只要在 prompt 里放几个例子,模型不需要任何微调就能执行任务。 这在当时是颠覆性的——因为 NLP 界几十年来都默认了一个流程:先预训练,再微调。GPT-3 告诉你,微调这一步也许可以省掉。

2023 年 3 月,GPT-4 来了。这次 OpenAI 连模型参数都不公布了(估计在 1.8 万亿左右,MoE 结构),论文只有 98 页的技术报告,几乎没有任何技术细节。但 GPT-4 的能力是质变级的:它通过了律师资格考试(前 10%),SAT 接近满分,编程能力让初级工程师汗颜。

这五年,发生了三件事:模型变大了 15000 倍,数据变多了 10000 倍,以及——出事了。

"出事"的东西叫涌现(Emergence)

2022 年,Google 的 Jason Wei 团队在 137 个大模型上跑了几十个基准测试,发现一个惊人的规律:很多能力——算术、多语言翻译、词义消歧、代码生成——在小模型上(<10B)几乎不存在,但在某个规模阈值(通常是 50-100B)之后突然出现。

这种 "从小到大没有,过了临界点突然爆发" 的行为模式,在物理学里叫相变(phase transition)——比如水在 100°C 沸腾,在 99.9°C 还是平静的液体。LLM 的涌现行为跟这几乎一模一样。

但涌现也带来了一个哲学问题:如果模型在做训练时没有被明确要求做算术,为什么它在 100B 参数后突然会算 23×17?

回答这个问题需要理解 "预测下一个 token" 这个朴素目标的深层含义。当你在 Common Crawl 的万亿级别 token 上训练一个模型 "预测下一个词" 时,你实际上在强迫它学习人类语言的全部统计规律——而人类的语言本身是有结构的。一个足够大的模型,为了最小化预测下一个词的平均 loss,它不得不学会一些更高阶的技能:

  • 为了预测 "巴黎是__的首都",它必须知道地理事实
  • 为了预测 "23×17 等于__",它必须学会算术模式(它在训练数据里见过足够多类似的计算式)
  • 为了预测 "这段代码的运行结果是__",它必须学会模拟程序执行

这就是为什么 "只是在预测下一个 token" 会导致推理能力——因为语言本身就是思维的投影。 学会语言的统计规律,就等于学会了人类思维模式的统计规律。

规模到底有多重要?

两个经典论文定义了我们对 "规模到底要多大" 的理解:

Chinchilla 定律(Hoffmann et al., 2022,DeepMind):DeepMind 训练了 400+ 个不同配置的模型后发现,之前所有人的模型都 "欠训练"(undertrained)了。比如 GPT-3 175B 只在 300B token 上训练,但按 Chinchilla 的计算,一个 175B 模型最优需要 175B × 20 = 3.5 万亿 token——差了 10 倍!最终他们用跟 Gopher 280B 相同的算力预算,在 1.4 万亿 token 上训练了一个 70B 的 Chinchilla 模型——结果这个小模型全面碾压了 280B 的 Gopher。

核心公式的直觉:模型参数和训练数据量应该等比例增长。 每翻倍参数,数据也要翻倍。否则你的模型就是个 "没有吃饱的大傻个"。

好消息是,随着 Chinchilla 定律被广泛接受,新一批模型(LLaMA 2、Mistral、Qwen)的数据量都大幅增加。LLaMA 2 70B 在 2 万亿 token 上训练,LLaMA 3 直接干到 15 万亿。

Anthropic 的 "尺度单义性" 发现(2024-2025):这个发现其实比 Chinchilla 更深层。Anthropic 团队在研究模型内部的 "神经元" 行为时发现,小模型(<7B)的单个神经元通常表示多种含义——比如一个神经元可能在 30% 的情况下表示 "法国",40% 的情况下表示 "红色的",30% 的情况下做一件完全无关的事(这种现象叫 "多义性 polysemanticity")。但当模型变大时,神经元越来越倾向于每个只表达一个概念——单义性 (monosemanticity) 自然浮现。 这意味着大模型的大脑内部比小模型更 "干净"、更 "可解释"——这种结构上的优势,为复杂推理提供了坚实基础。

训练一个 LLM 到底分几步?

外面很多教程会告诉你 "预训练 → SFT → RLHF" 三步。但真正的工程复杂度远不止于此。

预训练:数据不是 "喂进去就行"

预训练数据处理的复杂程度远超外界的想象。一个典型的预训练数据 pipeline 包含:

  1. 采集:Common Crawl(几十 PB 的原始网页)、GitHub、StackOverflow、arXiv、维基百科、电子书——几十种来源混合
  2. 语言识别与过滤:FastText 或 CLD3 做语言检测(只保留目标语言,比如中英文),扔掉 <50 字符的空页面
  3. 去重(这是重中之重):先做 URL 去重,再做文档级 MinHash 去重——MinHash 能找出 80% 以上内容相似的文档对(阈值通常设在 0.7-0.8),消除数据集中因聚合网站、转载、镜像产生的污染。这一步能删掉 20-40% 的原始数据
  4. 质量过滤:基于困惑度(perplexity)——用一个小型语言模型(如 KenLM)给所有文档打分,扔掉语言质量分过低的(垃圾邮件、机器生成内容)
  5. 启发式过滤:去掉 JavaScript 代码残留、HTML 标签残留、重复 n-gram 过多的无意义文本、PII(个人身份信息,用正则 + NER 做隐私脱敏)
  6. 数据配比:代码 20-30%,网页 50-60%,学术论文 5-10%,书籍 5%——这个比例非常影响模型的能力倾向
  7. 污染检测:训练前需要用 n-gram 重叠检测,确保评测集(MMLU、HumanEval 等)没有被 "泄漏" 进训练数据——这是一个道德问题,也是一个技术难题

预训练的算力成本也是天文数字。Meta 训练 LLaMA 2 70B 大约花了 170 万 A100 GPU 小时,按每小时 $2 算就是 340 万美元。GPT-4 级别的训练一次可能到 $7000 万到 1 亿美元。这不是任何创业公司能承受的。

SFT:监督微调——质量的战争

很多人以为 SFT 就是 "多收集数据就能做好",这是一个巨大的误解。2023 年 Meta AI 的 LIMA 论文给出了一个反直觉的结论:1750 条精心挑选的高质量对话数据,在 LLaMA 65B 上做 SFT 后,得到的模型在人类评估中跟 Alpaca 52000 条数据训练的版本不相上下。

质量碾压数量。那什么是高质量?

  • 多样化的任务类型(不要全是问答,要有摘要、翻译、代码、创意写作、角色扮演)
  • 一致的语气和格式(最简单的 ChatML 或者 OpenAI 格式:<system>/<user>/<assistant>
  • 回答准确、完整、格式清晰
  • 覆盖各种边界条件:拒绝回答、澄清需求、承认不知道

SFT 的阶段数据量通常在 1 万到 10 万条之间。超过这个量,收益递减非常快——因为 SFT 只是在教模型 "怎么格式输出" 和 "什么语气说话",本质知识在预训练阶段已经定型。

从 RLHF 到 DPO:对齐技术的演进

SFT 之后的模型 "能回答" 但 "不靠谱"——它可能会无意识地胡说(hallucination),可能在几句话后开始重复,可能输出有害内容。对齐(Alignment)就是让模型从 "能回答" 变成 "值得信赖的回答者"。

RLHF(Ouyang et al., 2022,OpenAI) 是最原始的对齐方案。三步走:

  1. 用人工标注员对比两个模型回答,标记哪个更好(偏好数据)
  2. 用这些偏好数据训练一个 奖励模型(Reward Model)——输入一个问题+回答,输出一个分数,表示这个回答有多好
  3. 用 PPO(Proximal Policy Optimization)强化学习算法,微调原始 LLM 让它最大化奖励模型的分数,同时加入 KL 散度惩罚项防止它 "跑偏"

RLHF 的两个致命问题:

  • 奖励模型是最大的瓶颈——如果奖励模型被骗了(reward hacking),LLM 会学会用华丽的废话骗高分而不是输出真正有用的内容
  • PPO 训练极不稳定——需要同时维护 4 个模型(当前策略、旧策略、参考模型、奖励模型)在 GPU 上,显存爆炸

DPO(Rafailov et al., 2023) 做了一个极其优雅的简化。核心发现:在 RLHF 中,奖励模型的最优策略可以写成闭式解——里面有 "参考模型的概率" 和 "目标模型的概率" 的比值。 这意味着:

你根本不需要单独训练奖励模型。偏好数据中的人类选择(chosen vs rejected)天然定义了奖励信号——你只需让 chosen 的概率比 rejected 高,并保持跟原始 SFT 模型不太远。

DPO 的损失函数本质上就是一个二分类交叉熵,训练像普通微调一样稳定。实际项目里,DPO 已经基本取代了 RLHF,除非你需要奖励模型来做持续的策略优化。

LLM 最擅长什么,最不擅长什么?

擅长的事(让你惊喜的):

  • In-Context Learning:给几个例子,瞬间学会新任务——我经常开玩笑说一个 GPT-4 的 prompt 等于半个产品需求文档
  • Chain-of-Thought:你让它 "一步一步来",正确率直接起飞——尤其在数学和代码上,CoT 能把 GSM8K 的准确率从 30% 拉到 85%+
  • 语言的模式模仿:任何你给它见过的语言结构,它都能举一反三——写诗、写代码、写合同、写情书

不擅长的事(让你抓狂的):

  • 幻觉(Hallucination):LLM 不知道 "我不知道"——它的训练目标是 "产生一个看起来合理的延续",而不是 "准确"。所以当你问它一个不存在的事实,它会用非常自信的语气编一个答案
  • 规划(Planning):LLM 的推理是 "next token prediction" 驱动的,不是 backward chaining 或树搜索。它很难做 "为了在第五步实现 X,我需要在前四步做什么" 这种逆向思考——这也就是为什么纯 LLM 的 Agent 经常陷入无限循环
  • 数学:Yes, CoT 确实有帮助——但让一个数学专业的博士去评价,LLM 的数学能力本质上是大规模模式匹配,不是真正的公理化推理。遇到新颖的、需要创造性 proof strategy 的数学问题,LLM 的表现会断崖式下跌
  • 世界状态的持续性:LLM 本身没有状态、没有记忆、没有持续更新的世界模型。每次对话窗口关闭,所有上下文就丢了。这也是为什么 RAG 和 Agent 框架大量出现——它们在给 LLM 打补丁

最后的话

如果你从这 6 年的进化史里只记住一件事,我希望是:LLM 不是 "会说话的知识库",而是 "大规模统计规律投影出的智能表面"。 这个表面看起来光滑、连贯、甚至深刻——但底层仍然是概率分布,不是符号逻辑。明白这一点,你就知道什么时候该信任它,什么时候该警惕它。

基于 VitePress 构建 | 部署于 Cloudflare Pages