从小 GPT 到大模型
我们的小 GPT 会写诗,却不会回答问题。从它到一个能对话的大模型,中间隔着规模、预训练、指令微调和偏好对齐。这一课用论文里的真实数字,把每一步讲清楚。
- 约 30 分钟
- 难度:进阶
- 实测:2026-09-15 数字均引自论文摘要,标注了出处
我们的小 GPT 能写出"江山古馆响幽幽,山鸟无人见白头"这样的句子。可你要是问它"床前明月光的下一句是什么",它只会接着这几个字往下写一首诗,因为它只会做一件事:接着往下写。
DeepSeek、ChatGPT 的底子也是同样的结构,却能回答问题、写代码、按要求改文章。中间差了什么?这一课不写代码,把这段路分成几步讲清楚。
第一步:规模
先对比一下数字(大模型的数字引自论文摘要):
参数 训练数据
我们的小 GPT 161 万 155 万个字符,训练了约 8 遍
GPT-3(2020) 1750 亿 (论文正文给出了数据量,这里不展开)
DeepSeek-V3(2024) 6710 亿, 14.8 万亿个词元
每个词元用 370 亿
DeepSeek-V3 的参数是我们的四十多万倍,训练数据大约是一千万倍。它的完整训练用了 278.8 万个 H800 GPU 小时。我们的模型在一个 CPU 上训练了 7 分钟。
规模带来的不只是"写得更好"。GPT-3 的论文(《Language Models are Few-Shot Learners》)发现:模型足够大之后,不用专门训练,只要在提示词里给几个例子,它就能完成翻译、问答、算术这些任务。这就是第 02 模块第 2 课的少样本提示,它能工作,是规模带来的。
多大算够?2022 年 DeepMind 的 Chinchilla 论文研究了这个问题。结论是:在算力一定的情况下,模型的参数和训练数据应该同比例增长。他们训练了一个 700 亿参数的模型,用了 4 倍的数据,结果全面超过了 2800 亿参数的 Gopher 和 1750 亿参数的 GPT-3。之前的很多大模型,是"模型太大、数据太少"。
我们在第 08 模块第 6 课也看到了类似的事:数据从 100 张图增加到 898 张,效果的提升远超任何其他技巧。
第二步:预训练
我们在唐诗上做的事,就叫预训练:拿大量的文字,让模型一个词元一个词元地预测下去。真实的预训练用的是网页、书籍、代码、论文等等各种文字,经过大量的清洗和去重。
预训练结束后,得到的叫基座模型(base model)。它从海量文字里学到了语言、知识,以及一定的推理能力,但它的行为仍然只是"接着往下写"。你给它一个问题,它可能接着写更多的问题,因为网页上一个问题后面常常跟着另一个问题。
这就是我们的小 GPT 现在的状态,只是它只读过唐诗。
第三步:指令微调
要让模型"回答"而不是"续写",就要教它对话的格式。做法很直接:准备大量"问题 → 好的回答"的例子,接着训练。
<用户>床前明月光的下一句是什么?
<助手>疑是地上霜。出自李白的《静夜思》。
训练的方法和预训练完全一样,还是预测下一个词元,只是数据换成了这种对话,而且通常只在"助手"那部分计算损失。这一步叫指令微调,也叫监督微调(Supervised Fine-Tuning,SFT)。
指令微调的数据比预训练少得多,但质量要求很高。模型的知识主要来自预训练,指令微调教的是"怎么用这些知识来回应人"。
第 10 模块会亲手做一次微调。
第四步:偏好对齐
指令微调之后,模型会回答问题了,但回答的质量参差不齐:有时啰嗦,有时编造,有时有害。
"好的回答"很难全部写成例子,但人很容易比较两个回答哪个更好。于是有了第四步:让模型对同一个问题生成几个回答,由人来排序,再用这些排序去训练模型,让它更倾向于写出人喜欢的回答。这一步叫对齐(alignment),最早广为人知的方法是基于人类反馈的强化学习(RLHF)。
它的效果有多大?OpenAI 在 2022 年的论文里(《Training language models to follow instructions with human feedback》)报告:经过指令微调和人类反馈训练的 13 亿参数的 InstructGPT,在人工评价中比 1750 亿参数的 GPT-3 更受欢迎,参数少了 100 倍。ChatGPT 就是沿着这条路做出来的。
大模型"会聊天",主要靠的是后面这两步;它"懂得多",主要靠的是第一步。
第五步:用强化学习练推理
2025 年的 DeepSeek-R1 论文(《DeepSeek-R1: Incentivizing Reasoning Capability in LLMs via Reinforcement Learning》)又往前走了一步。它的做法是:给模型出数学题、编程题这类答案可以自动检查的题目,答对了就奖励,答错了就不奖励,用强化学习反复训练。
论文报告,只靠这种奖励,不需要人写好的解题过程,模型就自己发展出了反思、验证、换一种思路之类的推理方式。第 01 模块里提到的"思考模式",模型先输出一段推理再给答案,就是这类训练的产物。
我们的小 GPT 还差什么
回头看我们的 GPT,它做完了第二步,只是规模小得多、数据只有唐诗。按照这一课的步骤,想让它变得更像一个"助手",还需要:
- 更多、更多样的数据:只读唐诗,它就只会写唐诗。
- 更大的模型:161 万个参数装不下多少知识。
- 指令微调和对齐:让它学会按要求回应,而不是一味地往下写。
另外还有大量工程上的问题:怎么在几千张 GPU 上同时训练,怎么让训练过程几个月不出故障,怎么清洗十几万亿个词元的数据。这些超出了这门课的范围。但是模型本身,你已经亲手搭过了。
练习
- 找一个开源模型的模型卡片(比如 Hugging Face 上的 Qwen 或 DeepSeek 模型),找出它的参数量、训练数据量,并看看它区分了哪些版本(基座、指令、推理等)。
- 如果你能访问一个基座模型(很多开源模型都同时发布了基座版本),给它和对应的指令版本发同一个问题,比较它们的回答。
- 按 Chinchilla 论文的结论,模型参数翻倍时训练数据也应该翻倍。我们的小 GPT 如果参数增加 10 倍,你觉得只用这 3.5 万首诗还够吗?可以试着训练一下,看看验证损失。
自测
1. 基座模型和指令模型有什么不同?
基座模型只经过预训练,行为是根据前文接着往下写,给它一个问题,它不一定会回答。指令模型在基座模型之上,用大量"问题 → 回答"的对话数据做了微调,学会了按对话的格式回应用户。
2. 指令微调和预训练的训练方法有什么区别?
方法基本一样,都是预测下一个词元、用交叉熵作损失。区别在数据:预训练用海量的普通文字,指令微调用数量少得多但质量很高的对话数据,而且通常只在回答的部分计算损失。
3. InstructGPT 的实验说明了什么?
13 亿参数的 InstructGPT,经过指令微调和人类反馈训练后,在人工评价中比 1750 亿参数的 GPT-3 更受欢迎。说明对"好不好用"来说,训练的方法和数据有时比模型的规模更重要。