模型是怎么训练出来的

三个阶段

训练一个像 ChatGPT 这样的模型,不是一步到位的,而是分三个阶段:

  1. Pre-training(预训练):学习语言本身
  2. Supervised Fine-tuning(SFT):学习如何对话
  3. RLHF:学习人类的偏好

每个阶段解决不同的问题,使用不同的数据。理解这条流水线,你就能理解模型为什么擅长某些事、不擅长另一些事。

第一阶段:Pre-training

这是最耗资源的阶段。模型在海量文本上学习一件事:预测下一个 token

训练数据的来源:

  • 互联网网页(Common Crawl 等)
  • 书籍、论文、维基百科
  • 代码仓库(GitHub 等)
  • 其他公开文本数据

规模有多大?GPT-3 的训练数据大约有 3000 亿 token,后续模型更大。训练过程需要数千张 GPU 运行数周到数月,成本动辄数百万到上亿美元。

Pre-training 之后,你得到的是一个 base model(基座模型)。它学会了语言、知识和推理模式,但它不会"对话"——如果你给它一个问题,它可能会接着生成更多问题,而不是回答你。

第二阶段:Supervised Fine-tuning(SFT)

为了让 base model 变成一个好的聊天助手,需要用人工标注的对话数据进行微调。

这些数据长这样:

用户:解释一下什么是递归
助手:递归是一种编程技巧,指函数在执行过程中调用自身...

标注员写出高质量的回答,模型学习这种"问答"模式。经过 SFT,模型开始能够理解指令、给出结构化的回答。

SFT 使用的数据量远小于 Pre-training(通常是几万到几十万条对话),但它根本性地改变了模型的行为模式。

第三阶段:RLHF

RLHF(Reinforcement Learning from Human Feedback,基于人类反馈的强化学习)是让模型变"好用"的关键一步。

流程大致是:

  1. 让模型对同一个问题生成多个回答
  2. 人类标注员对这些回答排序(哪个更好)
  3. 用排序数据训练一个"奖励模型"(reward model)——它学会预测人类会喜欢什么样的回答
  4. 用强化学习优化原模型,让它生成奖励模型打分更高的回答

RLHF 教会模型:

  • 安全性:拒绝有害请求
  • 有用性:给出详细、有组织的回答
  • 诚实性:在不确定时表达不确定

这就是为什么 ChatGPT 和 Claude 会说"我不确定"或者拒绝某些请求——这些行为是 RLHF 训练出来的。

训练数据的截止日期

Pre-training 使用的是某个时间点之前的数据,这就是所谓的 知识截止日期(knowledge cutoff)。

  • 模型不知道截止日期之后发生的事
  • 它无法自动更新知识
  • 这是 RAG(检索增强生成)等技术存在的原因之一——给模型提供实时信息

当模型回答关于近期事件的问题时表现不好,往往不是因为"笨",而是因为训练数据里没有这些信息。

实际意义

  1. Base model ≠ Chat model。你调用 API 时用的通常是经过 SFT + RLHF 的版本。有些 API 也提供 base model 访问,行为会很不同。
  2. 模型的知识有时间边界。不要期望它知道最新信息,需要实时数据就用 RAG。
  3. 模型的"性格"是训练出来的。它的谨慎、礼貌、拒绝,都是 RLHF 的结果,不是某种"意识"。
  4. 训练数据决定能力上限。如果你的使用场景涉及非常专业或小众的领域,模型可能表现不佳——因为训练数据中这类内容很少。
  5. Fine-tuning 是你可以参与的环节。在后续的 Fine-tuning 章节,你会学习如何用自己的数据微调模型。