编程与 AI12 分钟阅读更新于 2026-07-31

预训练是什么:大模型先学会接着写,再学会按要求答

讲清预训练为什么从预测下一个 Token 开始,基础模型学到了什么,以及它和指令微调、RLHF 的区别。

相关工具

预训练先解决一个朴素问题

很多人第一次听到预训练,会以为模型在这个阶段已经学会了“回答问题”。其实更准确的说法是:预训练先让模型熟悉语言和知识的分布,让它看到一段文字后,能判断后面更可能出现什么。LLM 全教程总结里把大语言模型分成 Base LLM 和 Instruction Tuned LLM。Base LLM 的训练目标很直接,就是基于大量文本预测下一个词;到了指令微调阶段,模型才会进一步学习怎样按照人的要求回答。

这也是为什么预训练不能简单理解成“把百科全书背下来”。训练资料里有网页、书籍、论文、代码、问答、说明文和各种普通文本。模型并不是把每一页原文按目录存进脑子里,而是在大量样本中反复调整参数,学会词语、句子、段落、事实、推理模式之间的关系。它后来能写摘要、解释概念、补全代码,基础都来自这个阶段。

如果把大模型训练看成一个长流程,预训练像打地基。地基不等于房间、家具和门牌号,但没有它,后面的指令微调、对齐、安全训练都很难站稳。一个没有充分预训练的模型,即使后面喂很多问答样本,也很难形成稳定的语言理解能力。

大规模语料经过 Token 化和训练批次处理后形成基础语言模型的流程图
从大规模语料到基础语言模型

预训练先把网页、书籍、代码、资料 等文本切成 Token,再组成训练批次,让模型在反复预测中学习语言规律。

训练目标是预测下一个 Token

资料 资料里对语言模型训练的描述很清楚:准备一个巨大的文本数据集,从中抽取句子或片段作为输入,让模型根据前面的上下文预测下一个词的概率分布,再把预测结果和真实下一个词比较,最后更新模型参数。换成现在更常用的说法,就是预测下一个 Token。Token 可能是一个汉字、一个词的一部分、一个英文单词,也可能是标点或代码片段。

举个很小的例子。输入是“今天下午我们去”,真实文本后面是“图书馆”。模型第一次可能给“公园”较高概率,给“图书馆”较低概率。训练系统会计算差距,告诉模型这一次应该把“图书馆”的概率调高一点。这个过程在单个例子上看很简单,但放到数千亿、数万亿级别的文本里,模型会经历海量的上下文组合。

这里要注意,模型不是只学某一个答案,而是在学习“什么样的上下文后面通常接什么”。前面出现的是天气、地点和人物,后面可能接活动;前面是数学推导,后面可能接公式;前面是代码函数,后面可能接参数、返回值或异常处理。大量重复之后,模型逐渐形成一种可迁移的能力:没见过完全相同的问题,也能根据相似结构给出合理续写。

输入上下文、预测下一个 Token、真实 Token、计算差距、更新参数的训练循环图
预训练的核心循环

模型先读入上下文,预测下一个 Token,再和真实 Token 比较差距,通过参数更新逐步降低错误。

大规模语料不是普通知识库

知识库通常强调可检索、可定位、可引用。预训练语料的作用不同,它更像模型的练习材料。模型在训练时会见到大量文本,但训练完成后,我们不能像查数据库一样问它“第几页第几段写了什么”。它保留下来的不是原文件结构,而是参数里的统计关系和表达能力。

这能解释一个常见现象:模型有时知道很多常识,却不一定能给出可靠出处。因为在预训练阶段,它学习的是语言和事实之间的关联,而不是建立一个带页码的资料索引。要让模型回答公司制度、产品手册、最新政策这类需要追溯依据的问题,通常还要配合 RAG,把相关片段检索出来放进上下文,而不是只依赖预训练记忆。

所以学习预训练时,不要把它想成“压缩后的互联网”。这个比喻容易让人误会,以为模型总能原样取回训练资料。更稳妥的理解是:预训练让模型形成语言底座和世界常识的轮廓,它能据此组织回答,但遇到精确、最新、需要引用的内容,仍然需要外部资料来校准。

基础模型会续写,但不一定会听指令

LLM 全教程总结里举过一个很典型的区别:如果给 Base LLM 输入“从前,有一只独角兽”,它大概率会继续写故事;如果问“法国的首都是什么”,基础模型也可能不是直接回答“巴黎”,而是接着生成一串类似问答题的文本。原因很简单,它在预训练阶段学到的是续写文本,而不是稳定地服从人的任务指令。

这就是 Base LLM 和助手模型之间的差别。Base LLM 像一个很会接话的人,能延续语气、体裁和上下文;助手模型则经过额外训练,知道用户是在提问、要求总结、让它翻译、让它列步骤,还是让它检查错误。后者更符合我们今天使用聊天机器人的感觉。

指令微调用的是“指令-回答”形式的数据。模型会看到类似“请用一句话解释人工智能”这样的输入,以及对应的参考回答。训练多了之后,它逐渐学会把输入当任务处理,而不是只做自然续写。后面再加入人工反馈或 RLHF,模型还会进一步调整回答的有用性、真实性和安全边界。

预训练学习接着写、指令微调学习按要求答,并从基础模型走向助手模型的对比图
预训练和指令微调的分工

预训练让模型学会接着写,指令微调让模型学会按要求答。两者解决的问题不同,前者更像底座,后者更像使用方式。

为什么预训练成本这么高

资料里提到,预训练通常要在非常大的文本数据上进行,计算时间可能以月计。原因不难理解:模型参数越多,训练语料越大,每一次预测和参数更新需要的计算就越多。训练不是读完一遍文本就结束,而是要在海量样本上不断重复,让模型从大量错误里慢慢修正。

预训练的成本不只来自算力。数据清洗同样重要。训练语料里可能有乱码、重复内容、低质量网页、广告文本、格式残缺的代码、过时信息和互相矛盾的说法。如果不处理,模型会把这些噪声也一起学进去。资料越大,清洗、去重、过滤和质量控制越困难。

还有一个容易忽略的成本是实验。训练一个大模型之前,团队要决定模型结构、上下文长度、Tokenizer、数据配比、学习率、训练步数和评测方式。每个选择都会影响结果。预训练不是按下按钮等模型变聪明,而是一整套工程流程。正因为它昂贵,很多团队不会从零训练模型,而是选择在已有基础模型上做微调、RAG 或应用层优化。

预训练之后还要后训练

预训练结束后得到的是基础模型。它已经有语言能力和常识轮廓,但直接拿来当聊天助手,往往还不够稳。它可能啰嗦,可能按原文风格续写,可能没有明确边界,也可能在不该回答时继续编。后训练的任务,就是把这种“能生成”的能力整理成“更适合人使用”的能力。

后训练通常包括指令微调、偏好对齐、安全策略训练等环节。指令微调用高质量任务样本告诉模型什么叫好回答;人工反馈或 RLHF 让模型根据人的偏好调整输出,比如更有帮助、更少胡编、更少危险建议。它们不是替代预训练,而是在预训练的基础上做行为校正。

因此,当你看到一个模型回答得自然、能分步骤、会拒绝不合适请求、知道按格式输出时,不要把功劳都归给预训练。预训练提供能力底盘,后训练决定它以什么方式呈现给人。把这两层分开看,很多大模型现象就不混乱了。

学习预训练时最容易误解的几件事

第一,不要把“预测下一个 Token”理解得太低级。这个目标听起来像填空题,但当文本规模足够大、模型容量足够高时,填空会逼着模型学习语法、事实、语境、推理链条和表达习惯。要预测论文下一句,模型需要理解前面的论证;要预测代码下一行,模型需要理解函数结构;要预测对话下一句,模型需要理解角色关系和意图。

第二,不要以为预训练越大就一定越适合你的任务。一个基础能力强的模型,如果没有合适的指令调校,也可能不按要求输出;一个很长上下文的模型,如果资料放得乱,也可能抓错重点。实际应用里,模型能力、Prompt、知识库、评测和业务流程要一起看。

第三,不要把预训练和微调混成一件事。预训练通常用大量通用文本训练基础语言能力;指令微调用更小但更有结构的样本教模型按任务回答;RLHF 或类似方法再用人类偏好调整行为。它们顺序相关,但目的不同。区分这些阶段,后面理解参数规模、幻觉、上下文窗口、RAG 和长期记忆都会轻松很多。

可以这样记住预训练

预训练就是让模型在大量文本里反复练习“接下来应该出现什么”。它读到的不是完整的人类意图,而是一段段上下文;它输出的不是标准答案本身,而是下一个 Token 的概率。通过无数次预测、比较和更新,模型慢慢形成语言规律、知识关联和通用表达能力。

但这只是第一步。预训练后的基础模型更像一个会顺着文本往下写的语言系统。要变成我们日常使用的助手,还需要指令微调和对齐训练,让它知道什么时候该回答问题,什么时候该总结,什么时候该按格式输出,什么时候该停下来。

所以,一句话概括:预训练让大模型学会语言和知识的基本规律,后训练让它学会以人需要的方式使用这些能力。理解这一点,再看大语言模型的训练流程,就不会只盯着“参数多不多”,而会知道每个阶段到底在解决什么问题。

常见问题

预训练是不是把所有资料都背下来?

不是。预训练会从大量文本里学习语言规律和知识关联,但训练后的模型不能像数据库一样稳定取回某一页原文。需要精确引用时,仍然要依赖外部资料、检索或人工核对。

为什么只预测下一个 Token,也能学会推理?

因为很多文本本身包含推理、解释、代码、证明和问答。模型为了预测后文,需要学习这些文本里的结构和关系。这个能力来自海量样本的反复训练,不是单个填空题本身神奇。

预训练和指令微调有什么区别?

预训练主要让模型学会根据上下文续写文本,指令微调则教模型把人的输入当任务处理,生成更符合要求的回答。前者打基础,后者调整使用方式。