# 从零搭建你自己的 LLM 五阶段:GPT 和 Claude 背后真实的流水线
> **作者**: [@0xCodez](https://x.com/0xCodez)
> **发布**: 2026-05-25
> **原文**: https://x.com/0xCodez/status/2058911661973454915

我把 large language model 是怎么造出来的拆开了——ChatGPT、Claude、Gemini 背后那整条流水线——然后压成了一张图。
**收藏。存下来。** 看完之后你会清楚地知道:从一堆原始互联网文本走到一个能像助理一样回答你的模型,那条路一共五个阶段。
> 关注我的 Substack 拿新鲜的 AI alpha:movez.substack.com
这不是夸张。*大多数人以为造一个 LLM 是关于架构的事。这篇文章的核心结论是:架构是**最不重要**的那部分。*
---
## 大家都信的那个谎言
随便问一个人 Claude 这种模型是怎么搭出来的,他们会说"transformer"。好像秘密在那个神经网络设计里。
不在。**Transformer 架构早就高度标准化、自由公开**。每个主要实验室用的基本都是同一套零件。如果架构是护城河,每个人都该有 GPT-4。
下面这句话能把整件事重新定位:实际工程里,是 data、evaluation、systems 在决定一个模型成不成——而不是架构上的小动作。最好的模型不只是被训出来的。它们是被工程出来的(engineered)。
所以这份指南是围绕真正重要的东西来组织的。五个阶段。架构只是 Stage 1 里的一个脚注。其他四个阶段才是真正的模型胜负之地。
---
## 01. Pretraining —— *教会模型语言本身*
**一切始于一个看起来骗人地简单的目标:预测下一个词。** 这就是 autoregressive language modeling。给一段词序列,模型学习接下来会出现什么的概率分布。
把这个动作放到足够多的文本上去做,模型就会吸收语法、事实和推理模式——不是因为有人专门教它,而是因为要把"下一个词"预测得好就不得不掌握这些。
> **Tokenization 是第一步**
**模型看到文本之前,文本会先被切成 token。** 标准方法是 Byte-Pair Encoding (BPE),它的逻辑会塑造下游的一切。
**架构 —— 那个最不重要的部分**
模型是个 transformer。**这一节本质上就这么一句话,而这正是重点。** 你不会因为发明了一个更聪明的 transformer 就赢。你赢,是赢在另外四个阶段。
讲座用 scaling 曲线证明这一点:transformer 相对 LSTM 只是常数和斜率更好——选标准工具,往下走就完事。
---
## 02. Data —— *模型真正被赢下的地方*
如果架构最不重要,那 data 就是最重要的。这是把好模型和平庸模型分开的阶段,也是大多数人最低估的那个。
整条流水线从 **Common Crawl** 开始——一份大到要用 PB 计的公网爬取数据:2500 亿页面,超过 100 万 GB。但原始网页数据脏得不行。
把它变成训练材料是一道残酷的多步过滤。
处理流水线是这样的:
- **Extract**(提取)—— 从 HTML 抽出文本,处理数学公式和样板内容这种特殊情况。
- **Filter**(过滤)—— 剔除不希望出现的内容:NSFW、有害、个人数据。
- **Deduplicate**(去重)—— 按 URL、按文档、按行去重,因为网页重复得没完没了(页眉、页脚、菜单)。
- **Heuristic filtering**(启发式过滤)—— 按词数、异常 token、脏 token 把低质量文档干掉。
- **Model-based filtering**(模型过滤)—— 用模型预测一个页面会不会被 Wikipedia 引用。
- **Data mix**(数据混配)—— 把内容分类(代码、书籍、娱乐),然后用 scaling laws 给各类目重新加权。
值得烙进脑子的那句话:**data quality trumps quantity(质量胜过数量)**。把数据收集这件事做好,是实战 LLM 工作里的关键部分——也是被守得最紧的秘密。
> **把数据收集这件事做好**,几乎就是实用 LLM 的关键所在——也是这个领域里看护得最严的秘密。
闭源数据集的体量碾压开源:LLaMA 3 训了 15 万亿 token;GPT-4 估计是 13 万亿。
---
## 03. Scaling laws —— *把算力花在最优处*
你有 10000 张 GPU,可以用一个月。该训什么模型?**更大,还是用更多数据训?瞎猜会浪费几百万。** Scaling laws 让这件事可预测地有答案。
经验性发现:更多数据 + 更大模型可靠地带来更好性能,而且 *在训练之前你就可以根据模型规模和数据量预测它的性能*。
现代流水线的做法是:在小模型上调超参数,然后顺着曲线外推到那个唯一的大规模最终训练。
著名的 **Chinchilla** 答案:**大约 20 token 训练数据 / 参数** 是 compute-optimal。但这只算了训练成本。
一旦你把跑模型的成本(**inference**)也算进来,**实用比例会陡升**,超过 150 token / 参数。你训一个更小的模型但喂它远多得多的数据——因为你要为它跑几百万次买单。
还有那个 meta-lesson,那条 **"bitter lesson":不要过度复杂化**。做简单的事,把它 scale 上去。从长期看,唯一重要的事情是利用算力。
---
## 04. Post-training —— *把一个预测器变成一个助理*
预训练之后你拿到的东西很强大,但用来 chat 完全没用。它会续写文本,但它不知道自己应该 *回答* 你。
问它一个问题,它可能用三个新问题回应你——这是非常合理的"下一个词续写"。
> **Supervised Fine-Tuning (SFT)**
你给模型看几千个示例——一段 prompt 后面跟着一段好的回答——它学会模仿这个 pattern。**这就是 behavior cloning,是从 GPT-3 走到 ChatGPT 的关键一步。**
让人意外的部分:**你需要的数据量非常少**。几千个示例就够了,因为 SFT 只教好答案的 *格式*——知识本来就在预训练模型里。
Alpaca 项目甚至直接用另一个 LLM 生成自己的数据:52000 条指令-响应对,把一个 LLaMA 7B 微调成了一个能用的助理。
> **RLHF —— 与人类偏好对齐**
SFT 有三个问题:受限于人的能力上限、会教模型幻觉(让模型 clone 一个它其实不知道的"正确答案",等于在教它编造)、理想答案造起来太贵。**RLHF 解决这件事的办法是:优化的不是模仿,而是偏好。**
模型生成两个答案。一个人类挑出更好的那个。这些偏好用来训练一个 **reward model**,然后用最大化 reward 的目标去优化 LLM——经典做法是 **PPO**。
一个更简单的现代替代品 **DPO**,用普通监督学习就能达到差不多的质量,现在已经是开源社区的标配。
---
## 05. Evaluation & systems —— *证明它能用,让它真能跑起来*
有两件事包裹着整条流水线。少一样你都拿不到一个真正的模型。
> **Evaluation:怎么衡量一个开放性的东西**
预训练阶段的指标是 **perplexity(困惑度)**——模型在多少个 token 之间"犹豫"。从 2017 到 2023,最好的模型从在 ~70 个 token 之间犹豫降到了不到 10 个。但 perplexity 在对齐之后就崩了,所以 evaluation 转向 benchmarks 和对比:
- **MMLU & HELM** —— 跨多个领域的、有标准答案的任务套件。MMLU 是最被信任的预训练基准。
- **Chatbot Arena** —— 人类盲对比两个模型并投票;30 万+ 票数撑起一个 Elo 排行榜。
- **AlpacaEval** —— 让一个 LLM 评判其他 LLM。和 Chatbot Arena 有 98% 的相关性,3 分钟内、10 美元以内搞定——但它有偏见,比如偏爱更长的答案。
诚实的结论:评估一个对齐过的模型是真的难,没有任何单一数字能捕捉它。同一个模型在 MMLU 上可能拿到 0.637,也可能拿到 0.488——只取决于 prompt 格式。
> **Systems:让训练物理上跑得起来**
每个人都被 compute 卡住——GPU 又贵、又稀缺,又被通信速度物理性地限制住。一个 7B 模型朴素训起来就要 ~112GB。所以 systems 这一层不是可选项,它是让这整件事变得可行的根本:
- **Low precision(低精度)**—— 用 16-bit (bf16) 替掉 32-bit,内存减半、速度提升。
- **Operator fusion & tiling(算子融合与分块)**—— 减少访问全局内存的慢路径;光是 FlashAttention 就给端到端 ~1.7x 加速。
- **Data parallelism(数据并行)**—— 把数据集切到不同 GPU 上(用 ZeRO 把 optimizer state 也分片,省内存)。
- **Model parallelism(模型并行)**—— 把模型按层切(pipeline)或按矩阵切(tensor)放到不同 GPU 上。
- **Sparsity(稀疏)**—— Mixture of Experts:参数更多但 FLOPs 不变,每个 token 只激活一个子集。
> **整条流水线告诉我们什么**
把五个阶段倒着走一遍,结论无可争议。架构——大家最痴迷的那部分——拿到的关注度是最少的。Data、scaling、alignment、evaluation、systems,才是每一个真实决策出现的地方。
**这就是为什么两个用相同架构的实验室会做出截然不同的模型。** 架构是共享的。其他真正重要的东西,不是。
---
## 让 LLM 项目沉船的几种错
- **痴迷架构。** 整个 stack 里被复制最多、差异化最少的部分。
- **把数据当大宗商品。** 脏数据封死你的天花板,再多算力也白搭。质量胜过数量。
- **跳过 Chinchilla 那笔账。** 模型相对数据过大,就是欠训练,就是浪费算力。
- **停在 SFT。** 一个 fine-tune 过的模型只会模仿;没有 RLHF 或 DPO,它永远学不到人类真正偏好什么。
- **对齐之后还信 perplexity。** Post-training 改变了分布,perplexity 不再有意义。
---
## 结论
> *A great model is not trained. It is engineered.*
> *一个伟大的模型不是被训出来的,是被工程出来的。*
大多数人会继续相信造 LLM 是关于架构的事,会继续读 transformer 解释帖,会继续错过真正的工作发生的地方。
理解这条流水线的人会看得很清楚:language modeling,然后干净的数据,然后最优 scaling,然后对齐,然后在高效 systems 上做诚实的 evaluation。**五个阶段。架构只是其中一个阶段里的一段话。**
挑一个你一直在忽视的阶段——大概率是 data 或 evaluation。深进去。差别就住在那里。