Hang Zhengyang
English ↗

LLM 训练流程(Training Chain)

一个完整、现实中的大模型训练流程,可以拆成几个连续阶段来看:数据 → 表示 → 预训练 → 优化细节 → 对齐(post-training)。下面按工程真实路径讲,而不是课本式简化。

1) 数据构建

第一步是数据构建,这一步决定了上限。训练语料通常来自网页抓取(如类似 Common Crawl)、书籍、代码仓库(如 GitHub)、论文、论坛等。原始数据非常脏,会包含重复、低质量、广告、乱码甚至有害内容,所以要做一整套清洗与筛选流程:去重(minhash / simhash)、语言识别、质量打分(用小模型打分过滤)、去模板文本、去 boilerplate。高端做法会训练一个“数据筛选模型”,只保留“像人类写的高质量文本”。此外还会做“数据混合配比”(mixture),例如代码、数学、对话、长文本分别控制比例,这直接影响模型能力分布。

2) Tokenization(离散化表示)

第二步是 tokenization(离散化表示)。神经网络不能直接吃字符串,要把文本切成 token。主流是子词级(BPE 或 unigram LM),例如把 “unbelievable” 切成 “un + believe + able”。这一步的本质是压缩:既要词表小(节省参数),又要表达能力强(减少序列长度)。tokenizer 训练本身也是一个优化问题,通常在大规模语料上学习最优子词切分。最终得到一个词表(比如 50k~200k tokens),所有文本都被映射为整数序列。

3) 模型结构

第三步是模型结构。现代 LLM 基本都基于 Transformer。核心是自注意力(self-attention):每个 token 可以根据内容动态关注上下文中所有其他 token,而不是像 RNN 那样顺序处理。具体结构是多层堆叠:embedding 层 → 多个 attention block → 输出层。每一层内部包含三部分:多头注意力(捕捉不同关系)、前馈网络(非线性变换)、残差连接 + layernorm(稳定训练)。位置编码(positional encoding / RoPE)用于让模型知道顺序。

4) 训练目标

第四步是训练目标,本质是语言建模(next-token prediction)。给定前面所有 token,预测下一个 token 的概率分布。这可以写成最大化似然:最大化整个语料在模型下的概率。训练时用 teacher forcing:真实前缀作为输入,而不是模型自己生成的结果。损失函数是交叉熵,本质是让模型输出的分布接近真实 token(one-hot)。

5) 优化过程

第五步是优化过程。模型参数规模通常在数十亿到数千亿级别,用随机梯度下降的变体(如 AdamW)训练。每一步流程是:取一个 batch(例如几千个 token 序列)→ 前向传播计算 loss → 反向传播计算梯度 → 更新参数。关键难点在于规模:

1)算力:训练通常在 GPU/TPU 集群上进行(例如 NVIDIA GPU),需要数据并行(不同机器处理不同 batch)+ 模型并行(模型切分到多卡)+ pipeline 并行(不同层在不同设备)。
2)内存:激活值太大,需要技术如 gradient checkpointing、activation recomputation。
3)稳定性:需要学习率调度(warmup + cosine decay)、梯度裁剪、防止 nan。
4)效率:混合精度训练(FP16 / bfloat16)减少显存和计算成本。

6) 训练策略细节(这部分决定效果差距)

  • curriculum learning:先简单后复杂(例如短文本到长文本)
  • sequence packing:提高 GPU 利用率
  • 长上下文训练:通过滑动窗口或 special attention 机制
  • 数据重复利用:一个 epoch 不够,会多轮遍历但避免过拟合
  • loss scaling:防止低精度数值下溢

7) 预训练后的能力边界

第七步是预训练完成后的能力。此时模型只是“会续写文本”,并不一定听话、也不一定安全。它学到的是统计分布,而不是“人类意图”。

8) 对齐(Post-Training)

第八步是对齐(post-training),通常包括两类:

1)监督微调(SFT):用人工标注的“好回答”数据,让模型学会回答问题、遵循指令。数据形式是(prompt, ideal response)。这一步本质还是 next-token prediction,只是数据分布变了。
2)强化学习对齐(RLHF 或变体):用人类偏好训练一个 reward model,然后用强化学习(如 PPO)让模型输出更符合人类偏好(有帮助、无害、真实)。最近也有直接偏好优化(DPO)等方法,避免 RL 复杂性。

9) 评估与迭代

第九步是评估与迭代。不会只看 loss,还会用 benchmark(推理、代码、数学、对话等)以及人工评测。发现问题(比如幻觉、推理差、长上下文退化)后,反向调整数据或训练策略。

总结

总结本质:LLM 训练不是“教模型规则”,而是通过大规模数据和优化,让模型逼近“语言分布”。Transformer 提供表达能力,数据决定知识边界,优化决定是否能收敛到好的解,对齐阶段决定是否符合人类使用需求。