预训练与微调——AI 是怎么变成"助手"的
本章要点
在上一节,我们理解了 AI 学习的本质:从海量数据中识别模式,通过不断预测下一个词来积累能力。我们也知道了神经网络、参数、训练数据这些基础概念。
但如果你仔细回忆前几章的使用体验,可能会有一些困惑:同样是大语言模型,为什么 Claude 和 GPT 的"性格"差别这么大?为什么同一家公司会同时发布好几个版本的模型?为什么有些模型是免费开源的,另一些却要按量收费?更根本的问题是——AI 是怎么从一个只会"续写文本"的程序,变成一个能听懂你说话、帮你解决问题的"助手"的?
这些问题的答案,藏在大语言模型的训练策略里。读完本节,你会获得:
- 理解预训练与微调的分工——AI 从"博览群书"到"善解人意"的两步走
- 认识 RLHF 和 DPO——AI 是怎么学会"好好说话"的
- 理解模型版本的秘密——为什么同一底座能变出不同的助手
- 看懂开源与闭源的区别——两条路线各有什么利弊
- 理解幻觉的成因——训练方式如何导致 AI "自信地说谎"
一个有趣的对比
让我们先做一个实验。如果你分别问 Claude 和 GPT 同一个问题——比如"帮我重构这段代码"——你很可能会得到两个风格截然不同的回答。
Claude 可能会先指出你代码中的潜在风险,问你几个澄清问题,然后才动手修改。它生成的代码通常注释详细,有时候甚至会拒绝你的某些要求,告诉你"这样做可能不是最佳选择"。
GPT 则更可能直接给你重构后的代码,风格简洁利落,几乎不会质疑你的需求。你让它做什么,它就做什么,非常"听话"。
为什么同样是"预测下一个词"的大语言模型,表现出来的"性格"差别这么大?
这可不是偶然。这些差异是被精心设计和训练出来的。要理解这一点,我们需要看看大语言模型训练的两个阶段。
预训练:在知识的海洋里畅游
一个大语言模型的诞生,首先要经历预训练(Pre-training)阶段。
在这个阶段,模型面对的是海量的、没有经过人工标注的原始文本:网页、书籍、论文、代码仓库、百科全书、新闻报道……几乎涵盖了人类文明积累的所有可获取的文字记录。数据量有多大?以万亿个词计算——如果把它们打印成书,大概能装满一整座图书馆。
模型在这个阶段的任务极其简单,简单到你可能觉得不可思议:预测下一个词。没有特定的目标,没有指定的任务,就是不断地读、不断地预测、不断地调整参数。
上一节我们已经详细讲过这个过程。但有一个关键点值得强调:经过数万亿词的训练后,模型就像一个读遍了图书馆的博学者。它知道世界历史,懂各种编程语言,能理解物理化学,会写小说也会写商业邮件。它掌握的知识面极其广博。
但是——这个"但是"非常重要——这个阶段训练出来的模型,有一个严重的问题。
博学但不善交流
预训练完成后的模型,学会了"预测文本",但完全不知道该怎么"跟人对话"。
这是什么意思?让我举一个例子。如果你对一个只经过预训练的"裸模型"说:
请用 Python 写一个函数,计算斐波那契数列的第 n 项。
它可能不会给你一个函数,而是接着你的话往下"续写":
请用 Python 写一个函数,计算斐波那契数列的第 n 项。这是一个常见的编程练习题,适合用来练习递归和动态规划。在面试中,这个问题经常出现……
它把你的指令当成了一篇文章的开头,然后继续写下去。因为在它读过的海量文本中,这种"提出问题然后展开讨论"的模式太常见了。
换句话说,预训练模型很像一个读了无数本书的天才学者,但这个学者从来没有和人交谈过。你问他问题,他不会回答,而是像写论文一样接着你的话往下写。他博学多才,但完全没有"对话"的概念。
这就是为什么仅有预训练是不够的。模型还需要学会一件至关重要的事情:如何与人交流。
微调:学会如何好好说话
这就是第二个阶段——微调(Fine-tuning)——登场的时候了。
微调的目标很明确:把那个只会续写文本的博学者,训练成一个既懂知识又善于交流的助手。
微调用的数据完全不同
与预训练阶段海量的原始文本不同,微调阶段使用的数据量小得多——可能只有几万到几十万条。但每一条数据都经过人工精心编写,是高质量的对话示例。
这些示例展示了"什么是好的回答"。比如:
用户:请用 Python 写一个函数,计算斐波那契数列的第 n 项。
助手:好的,以下是一个使用动态规划方法的实现:
def fibonacci(n):
if n <= 1:
return n
a, b = 0, 1
for _ in range(2, n + 1):
a, b = b, a + b
return b这个函数的时间复杂度是 O(n),空间复杂度是 O(1)。如果你需要递归版本,我也可以提供。
通过学习这些示例,模型学到了一个全新的模式:当有人提出问题时,应该直接给出清晰的回答,而不是接着写文章。
微调数据还包括各种场景下的"好回答"范例——如何解释概念、如何拒绝不当请求、如何承认不确定、如何组织长文本回答。这些示例,就是在教模型"如何做一个好助手"。
微调为什么能起作用?
你可能会有疑问:几万条数据就能改变一个用万亿词训练出来的模型?
这里的关键在于:微调并不是在教模型新知识,而是在教它用什么方式来运用已有的知识。
想象一个学了十五年知识的大学生。让他去当客服,他不需要重新学习所有知识,只需要学习"如何回答客户的问题"——语气该怎样、结构该怎样、什么该说什么不该说。这种"交流方式"的训练,不需要太多数据,但需要每一条数据都足够优质。
微调做的正是这件事。预训练给了模型广博的知识储备,微调则教会它如何把这些知识以一种对人类有帮助的方式呈现出来。
RLHF:让人类的偏好成为训练信号
微调让模型学会了对话的基本方式,但仅仅能对话还不够。一个好的助手不仅要会说话,还要说得"好"——回答要有逻辑、有礼貌、准确把握用户的意图,遇到有风险的请求还要知道如何恰当地处理。
这就是 RLHF(基于人类反馈的强化学习,Reinforcement Learning from Human Feedback) 的用武之地。
RLHF 是怎么工作的?
RLHF 的过程大致分为三步:
第一步:让模型生成多个回答。 对于同一个问题,模型生成几个不同版本的回答。
第二步:由真人来打分排序。 请专业的标注人员对这些回答进行排序——哪个更好、哪个更差、哪个有问题。这些人不是随意打分,而是基于一套详细的评估标准,包括准确性、有用性、安全性、语气是否恰当等多个维度。
第三步:用这些偏好数据来训练模型。 排序数据被用来训练一个"评分模型"(也叫奖励模型),然后这个评分模型反过来引导语言模型改进——让它生成更多"人类觉得好"的回答,减少"人类觉得差"的回答。
简单说,RLHF 就是一个不断问"人类更喜欢哪个回答"、然后朝着那个方向优化的过程。
这就是"性格"的来源
回到我们开头的问题:为什么 Claude 和 GPT 的性格不同?
一个很重要的原因就在 RLHF 阶段。Anthropic 和 OpenAI 对"什么是好的回答"有不同的理念。
Anthropic 在训练 Claude 时,特别强调了安全性和诚实性。他们的评估标准更看重"模型是否在不确定时承认不确定"、"是否指出了用户方案中的潜在问题"。于是 Claude 就学会了更谨慎的风格——遇到不确定的事情,它更倾向于说"我不太确定",而不是编造一个听起来很像真的答案。
OpenAI 则更强调模型的配合度和实用性。他们希望模型能高效地完成用户的请求,尽量减少"废话"。于是 GPT 系列就学会了更直接的风格——你给指令,它执行。
这不是某个程序员写了一行代码"如果是 Claude,就谨慎一点"。这些性格差异是从无数次人类偏好反馈中"学"出来的,深深融入了模型的每一个参数里。
DPO:更简洁的替代方案
RLHF 虽然效果很好,但过程比较复杂——需要训练一个独立的评分模型,调参也比较困难。于是研究人员开发了一种更简洁的方法:DPO(直接偏好优化,Direct Preference Optimization)。
DPO 的核心思路是:直接用人类的偏好排序数据来训练语言模型,跳过"评分模型"这个中间步骤。效果相当,但流程更简单、更稳定。
近年来,越来越多的模型开始使用 DPO 或其变体。你不需要记住这些技术细节,只需要知道一件事:不管是 RLHF 还是 DPO,核心都是让人类的偏好来引导模型的行为。 不同团队有不同的偏好标准,所以最终训练出来的模型也各有"性格"。
两个阶段的分工
把预训练和微调放在一起来理解,它们的关系就很清楚了:
- 预训练给了模型广博的知识和语言能力,像是十几年的基础教育。在这个阶段,模型读遍了人类文明的文本,学会了语言的各种规律和世界的各种知识。
- 微调和 RLHF/DPO塑造了模型的"性格"和交流方式,像是专业的职业培训。在这个阶段,模型学会了如何做一个有用、安全、善于沟通的助手。
这种两阶段策略,是理解当前整个大模型行业的一把钥匙。很多你在使用中观察到的现象,都能用它来解释。
为什么同一个模型有不同的版本?
如果你关注过大模型的发布新闻,可能注意到一个现象:同一家公司经常一口气发布好几个模型。比如 Anthropic 有 Claude Opus、Claude Sonnet、Claude Haiku;OpenAI 有 GPT-4o、GPT-4o mini、o3、o4-mini。这些名字让人眼花缭乱。
为什么要这么多版本?因为预训练的底座可以复用,而微调可以走不同方向。
一次大规模预训练的成本极其高昂——可能要花费数千万甚至上亿美元,耗时数月。但一旦这个预训练好的"底座模型"(Base Model)完成,就可以在它的基础上进行多次不同方向的微调,生成不同用途的产品。
这就像一块上好的面团:揉面团的过程漫长且费力(预训练),但同一块面团可以做成面包、做成蛋糕、做成饺子皮(不同方向的微调)。每种产品的"口感"不同,但都源自同一块面团。
在实际中,不同版本的模型往往在以下维度上做出不同的取舍:
能力与速度的取舍。 Opus 这类旗舰模型参数量最大、能力最强,但响应慢、价格高;Haiku 这类轻量模型参数量较小、响应极快、价格低廉,但能力有所缩减。这不仅仅是微调的差异——更大的模型本身在预训练阶段就"学"到了更多——但微调也会针对不同规模做专门优化。
用途方向的取舍。 有些模型被微调成偏向代码生成(比如 GPT-5.3 Codex),有些偏向通用对话,有些专门优化了推理能力(比如 OpenAI 的 o3/o4 系列)。同一个底座,针对不同场景的微调数据和偏好标准不同,最终产品的表现也大不一样。
所以当你在 Cursor 或其他工具里选择模型时,你实际上是在选择:我需要更强的能力还是更快的速度?我需要通用型助手还是代码专精型?理解了预训练和微调的关系,这些选择就不再是盲选了。
开源与闭源:两条不同的路
在第一章认识主流大模型时,我们提到了"开源"和"闭源"的概念。现在你理解了预训练和微调,就能更深入地理解这两条路线的区别了。
闭源模型:你只能用,不能看
GPT 系列和 Claude 都是闭源模型。你可以通过 API 或界面使用它们,但看不到模型的内部结构、训练数据、微调策略。就像你可以开一辆汽车,但不能拆开引擎盖看里面怎么组装的。
闭源模型的优势在于:公司可以投入巨资做最高质量的预训练和微调,不必公开技术细节,从而保持竞争优势。这些模型通常在能力上处于最前沿。
劣势也很明显:你完全依赖这家公司——它的服务中断了,你就没法用了;它涨价了,你只能接受;你的数据要发送到它的服务器上,隐私是一个值得考虑的问题。
开源模型:底座公开,自由微调
通义千问(Qwen)、DeepSeek、Llama、GLM 等都提供了开源版本。所谓"开源",通常是指公开了模型的权重(也就是所有的参数),有些还公开了训练代码和部分训练数据。
开源模型最大的价值在于:你可以在公开的底座上进行自己的微调。
比如你在做一个医疗领域的项目。你可以拿一个开源的底座模型,用大量的医疗对话数据对它进行微调,训练出一个专门擅长医疗问答的助手。这个助手继承了底座模型广博的通用知识,又获得了你的专业领域知识和期望的交流方式。
这正是预训练与微调分离的巨大好处——预训练是最昂贵的部分,但开源社区已经帮你完成了。你只需要做相对轻量的微调,就能得到一个定制化的模型。
当然,开源模型也有挑战:你需要自己准备计算资源来运行它(大模型对显卡有很高要求),微调需要一定的技术能力,最终效果也可能不如商业闭源模型。
选择的原则
对于大多数初学者来说,直接使用闭源模型的 API 或产品是最简单的路径。但理解开源和闭源的区别,能帮你在未来做出更明智的技术决策——当你的项目有数据隐私要求、需要离线运行、或者需要深度定制时,开源模型就是一个必须考虑的选项。
幻觉:训练方式的副产品
理解了预训练和微调的分工,我们就能更准确地理解大语言模型最让人头疼的问题之一:幻觉(Hallucination)。
所谓幻觉,就是 AI 生成了错误的、虚构的、但听起来非常可信的信息。比如编造一本不存在的书、提供一个有问题的 API 用法、引用一篇根本不存在的论文——而且每一个细节都写得像真的一样。
幻觉从何而来?
幻觉的根源,就在预训练阶段的核心机制里:模型是在预测"下一个最合理的词",而不是在检索事实。
当你问 AI 一个它训练数据里相关信息较少的问题时,它并不会说"我不知道"。在训练数据中,文章和对话里很少出现"不知道"这种表达——人们写文章时总是给出确定的答案。于是模型也学会了这个模式:总是生成"听起来像回答"的内容。
结果就是,当模型对某个问题其实缺乏足够的训练数据支撑时,它依然会自信满满地生成一个回答——只不过这个回答是"编"出来的。它按照"正确答案通常长什么样"的模式来生成文本,但内容本身却是捏造的。
微调能减少但无法消除幻觉
RLHF 和微调可以在一定程度上缓解幻觉。比如可以通过训练数据告诉模型:"当你不确定时,应该说'我不确定'"。Claude 在这方面做得比较好——它更愿意承认自己的局限。
但幻觉无法被完全消除,因为它是"预测下一个词"这种技术路线固有的特性。模型永远是在做概率预测,而不是在查询事实数据库。
与幻觉共处的正确态度
理解了幻觉的成因,你应该建立起这样的使用习惯:
对于事实性信息——具体的数字、名称、引用、日期——要养成交叉验证的习惯。AI 的回答是一个很好的"起点",但不应该是你验证的"终点"。
对于代码,永远要在实际环境中运行和测试。代码看起来正确和实际能运行是两回事。
当你发现 AI 的回答细节出奇地丰富、面面俱到时,反而要更加警惕——这种流畅感有时候恰恰是幻觉的伴生物。真正可靠的回答,往往会在某些地方留有"我不确定"的空间。
小结
这一节,我们揭开了大语言模型从"文本续写机器"变成"智能助手"的全过程。
预训练是基础教育阶段。模型通过阅读海量文本、不断预测下一个词,积累了广博的知识和语言能力。但此时的模型只会续写,不会对话。
微调是职业培训阶段。通过精心编写的高质量对话示例,模型学会了理解指令、组织回答、与人有效沟通。少量但优质的微调数据,就能让模型的行为发生质的转变。
RLHF 和 DPO 进一步雕琢了模型的"性格"。不同公司采用不同的人类偏好标准,让模型学会了不同的交流风格——有的更谨慎,有的更配合,有的更善于推理。这就是为什么不同的 AI 助手"性格"各异。
模型的多版本策略源于预训练与微调的分离。同一个昂贵的预训练底座,可以通过不同方向的微调生成不同用途的产品——旗舰对话模型、轻量快速模型、代码专精模型、推理专精模型。
开源与闭源代表了两种不同的商业路径。闭源模型追求极致性能,开源模型则让社区可以在公开底座上自由微调,各有利弊。
幻觉是"预测下一个词"这种技术路线的固有副产品。微调可以减轻它,但无法消除它。保持验证的习惯,是与 AI 协作的基本素养。
现在你理解了模型是怎么训练出来的,也知道了不同模型为什么"性格"不同。下一节,我们来聊聊上下文窗口——那个决定了 AI 一次能"看见"多少信息的关键限制。你在使用中遇到的 AI 突然"失忆"的问题,根源就在那里。
练习
思考题 1:预训练与微调的边界
假设你要为一个法律咨询机构定制一个 AI 助手,专门用于辅助初步的法律问题解答。
- 你希望预训练阶段模型"读"了哪些数据?这些数据对助手的最终能力有什么影响?
- 在微调阶段,你会用什么样的对话示例来训练它?想想一个好的法律助手应该如何回答问题。
- 这个助手产生幻觉的风险在哪里?你会如何应对?
实践题 2:感受不同模型的"性格"
选择两个你能使用的 AI 工具(比如 Claude 和 GPT,或者 Kimi 和 DeepSeek),向它们提出同一个问题:
请帮我评估一下在生产环境中使用 eval() 函数执行用户输入的代码是否可行。
比较它们的回答:谁更直接?谁更谨慎?谁会主动指出风险?想一想,这些差异可能源自微调和 RLHF 阶段的哪些不同选择。
思考题 3:开源的价值
如果你在一家医院工作,需要用 AI 来辅助分析患者的病历摘要。你会选择使用闭源 API 还是部署开源模型?考虑以下因素:
- 数据隐私
- 模型能力
- 运维成本
- 可定制性
你觉得在这个场景下,哪些因素更重要?
讨论题 4:谁来定义"好的回答"?
RLHF 的核心是让人类的偏好来引导模型行为。但"好的回答"是一个主观的判断——不同文化、不同价值观的人,可能对同一个回答有截然不同的评价。
你觉得这会带来什么问题?如果由你来设计一个 AI 助手的偏好标准,你最看重哪些品质?