预训练是什么?

预训练:大模型的"九年制义务教育"
上篇我们聊了模型是怎么把文字变成数字,又怎么通过注意力机制理解上下文的。
但你有没有想过一个问题:
模型在"理解"之前,到底经历了什么?
你问小模型"为什么天空是蓝色的",它可能答非所问。你问大模型同样的问题,它能给你讲得头头是道。
这个差距,不是因为大模型更会"答题技巧"。
而是因为大模型在回答任何问题之前,已经花了好几个月、用了天文数字的数据,提前把"语言该怎么用"这件事刻进骨子里了。
这个过程,就叫预训练。
预训练学的是什么?—— 先打九年基础再说
你可以把预训练理解成大模型的"义务教育阶段"。
人有小学、初中、高中,一共十二年。这十二年里你不学编程、不学会计,学的是语文数学英语——那些看起来"没什么用"但又最基础的东西。
这些基础教了你什么?
让你能读书看报,能听懂别人说话,能把自己的想法说出来。
说白了,预训练就是让大模型先掌握语言的基本规则。
模型在海量文本上训练,不是为了学会怎么回答"天空为什么是蓝色"这种具体问题。
而是为了学会语言本身的基本规律:语法、语义、上下文关联、常识推理……
就像一个人没上过学也能说话,但很难读懂复杂文章。大模型没经过预训练也能输出文字,但很难输出有质量的内容。

这一步没做好,后面微调什么技能都是白搭。
模型到底学到了什么?—— 知识压缩进参数
那么问题来了:预训练的时候,模型到底在学什么?
它学到的东西,叫"语言表示"。
这不是指某个具体的知识点,而是一种能力——看到一段文字,能理解它在说什么;看到一个词,能想到它可能出现在哪些上下文里。
举个不精确但好理解的例子。
你看过的所有小说、听过的所有对话,会在脑子里形成一种"语感"。
这种语感说不清道不明,但它能让你判断一句话通不通顺、某个比喻恰不恰当。
模型通过预训练获得的,也是这种东西。
它看过互联网上几乎所有的文字,这些文字里包含了人类知识的绝大部分。
模型不是像硬盘一样把这些内容"记住"了——它没那个能力,也没那个必要。
它做的是把知识"压缩"了,压缩到模型的参数里。
几百亿个参数,每一个都存储着一点点语言规律。当所有参数协同工作时,模型就能复现出强大的语言能力。
你可以把这个过程想象成建一个超级大脑。
这个大脑看过人类所有的书,但它不像图书馆那样按书名分类摆放。它把书里的知识打碎、重组,变成自己神经连接的一部分。
你需要某本书里的知识时,大脑不一定能原封不动地给你,但它能用自己的方式理解并回答你。
大模型能"懂"这么多东西,道理就在这儿——它没记住所有答案,但它学会了生成答案的方法。

为什么小模型"脑子不够用"?—— 涌现的秘密
你可能见过这种说法:大模型比小模型强,不是因为用了什么黑科技,而是因为"大"。
这个说法对不对?
对,但不完全对。
光是大还不够。真正的原因是:大模型经过预训练后,获得了小模型根本没有的能力。
我给你举个例子。
假设你要教一个小孩下棋。你让他下了100盘棋,他可能学会了一些基本规则。
但你让一个下了10万盘棋的人来教,他可能不只会规则,还能教你各种套路、陷阱、心理战术。
模型也是这样。
小模型参数少,预训练的数据量也少。它学会的是一些表面的统计规律。
这些规律能处理简单任务,但遇到复杂推理、上下文理解、多步骤任务,就力不从心了。
大模型参数多,见过的东西多。它学到的是更深层的语言规律。
这些规律足够复杂,复杂到能涌现出意想不到的能力。
什么是涌现?
就是你给模型扩规模、加数据之后,某些能力突然就出现了——而且不是慢慢变强,是一下子冒出来。
就像水结冰,0度以下冰水混合,0度以下一点点冰越来越多——这是线性的。
但有些能力不是这样的。它像是水烧到100度突然沸腾,在那之前你使劲加热,水温就是上不去。
研究人员发现,大模型在某些任务上就是这样。
参数规模没到临界点之前,怎么问都不行。过了临界点,某些复杂问题突然就能答对了。
这就是"大"真正重要的原因——不是因为大模型更努力,而是因为足够大之后,模型才能"消化"足够的知识,形成足够复杂的规律,从而涌现出更强的能力。
你可能会说:那我学会"提问技巧"行不行?
Prompt Engineering(提示词工程)确实有用,同样的模型,会提问的人能得到更好的答案。
但技巧救不了知识的缺失。
就像一个没学过物理的人,你再怎么教他"答题技巧",他也做不出高考物理题。
预训练给了模型"知识",提示词只是帮你"调用"这些知识。
没有地基,盖不了楼。

两条技术路线—— 自回归和掩码建模
预训练这个概念理解了,接下来我们聊点更技术的。
大模型的预训练,目前主流有两条路线。
一条叫自回归,代表是GPT系列。
一条叫掩码建模,代表是BERT。
这两个名字听起来专业,但背后的思想很朴素。
自回归:像写小说
自回归模型训练的方式,是让它"续写"。
给模型一句话:"今天天气真"
让它预测下一个词是什么。答案是"好"。
然后把"好"接上去,变成"今天天气真好",再预测下一个词。
一直这样,从左到右,一个词一个词地生成。
这就像写小说。
你写完第一章,才知道第二章该怎么写。你写完上一句,才决定下一句。
所以叫"自"——自己决定自己的下一步。
这种方式的优点是什么?
生成能力强。
模型学会了怎么"接话",自然就擅长对话、写作、翻译这些生成任务。
ChatGPT用的就是这种路线。
掩码建模:像做完形填空
掩码建模的训练方式不一样。
给模型一句话,但故意遮住几个词。
"今天天气真[X],适合[X]。"
让模型把遮住的词填出来。
这就像做英语完形填空。
你能看到前后的词,根据上下文推断中间应该是什么。
所以这种方式叫"双向"——它能同时看到左边和右边的信息。
BERT用的就是这种路线。
哪个更好?
没有绝对的好坏,只有适用不适用。
自回归更适合生成,对话、写作、代码生成这些任务,需要的是一个词接一个词往外吐。
掩码建模更适合理解,文本分类、情感分析、问答系统这些任务,需要的是把握全文意思。
现在的趋势是,大模型大多走自回归路线。
为什么?
因为对话是最直接的应用场景。用户要的是模型"说出来",不是"做判断"。
而且自回归模型规模可以做得非常大——大到一定程度,生成能力上来了,理解能力也自然变强。
但掩码建模的思想并没有消失。它在很多具体任务上仍然很好用。
两条路线不是非此即彼,而是各有各的地盘。

预训练+微调:先通才再专才
好,现在你知道了预训练是怎么回事。
但大模型真正能拿来用,还需要一个步骤——微调。
预训练和微调是什么关系?
预训练是通才教育,微调是专业培训。
一个人读完九年义务教育,具备了基本的读写算能力。这时候他可以做很多事了,但不够专业。
想当医生?去读医学院。
想写代码?去学编程。
微调就是这个"读医学院"或"学编程"的阶段。
模型在预训练阶段学会了"语言怎么用",这个能力是通用的。
但你想让它帮你写邮件,你得让它专门学学怎么写邮件。
你想让它帮你写代码,你得让它专门学学怎么写代码。
微调就是用特定任务的数据,让模型学会特定技能。
你可能听说过SFT(监督微调)、RLHF(人类反馈强化学习)这些词,这些都是微调的具体方法。
具体怎么微调,我们下一篇再细聊。
这里你只需要记住一点:
预训练消耗了90%以上的计算资源,但决定模型"听不听话"的,是微调。
预训练让模型变聪明。
微调让模型知道你想要什么。
就像一个人读了很多书变聪明了,但想让ta帮你做事,还得告诉ta具体要做什么。

预训练:大模型的成人礼
回顾一下今天的内容。
预训练是让大模型"脱胎换骨"的关键一步。
它用海量的文本数据,把人类语言的规律压缩进模型的参数里。
让模型从一个"随机初始化"的空壳,变成一个"见过世面"的语言高手。
没有预训练,大模型就是一堆没有灵魂的参数。
有了预训练,模型才有了"知识"和"能力"的原始积累。
这就像一个人要做事,得先成人。
预训练,就是大模型的成人礼。
但成人不是终点。
学完基础教育,你不还是得学专业技能?
大模型也一样。预训练给了它通用能力,但想让模型听话、帮上忙,还需要微调。
这就是我们下一篇要聊的内容了。
微调到底在调什么?SFT、LoRA、QLoRA又有什么区别?
下回见。
