很多人第一次接触大模型,会把「微调」和「预训练」当成同一件事的两种说法,结果要么高估了自己的需求,以为必须从头训一个模型,要么低估了工作量,以为丢几万条数据进去就能改行为。这篇按阶段把两者拆开:谁在做什么、谁决定什么、你需要动哪一段,最后给一套自查顺序,帮你在动手前先判断自己该走哪条路。
第一次碰大模型的人,十有八九会把「预训练」和「微调」当成同一件事的两种说法。结果就走两个极端:要么觉得必须从头训一个自己的模型,预算和人力直接劝退;要么觉得丢几万条数据进去,模型就能乖乖按自己的规矩说话,训完发现该胡说还是胡说。其实这两个阶段干的是完全不同的活,一个管「会不会」,一个管「听不听话」。下面按阶段拆开讲,最后给一套动手前的自查顺序。
读的时候带着一个问题:我现在要改的到底是模型的知识面,还是它的行为习惯?想清楚这一点,后面选哪条路基本就定了。本文不堆公式,只讲判断标准和该做的动作。
两个阶段分别在干同一件事的哪一半
预训练解决的是「会不会说话、懂不懂世界」。拿海量通用文本让模型反复做一件事:预测下一个词。跑完这一轮,产出的是基座模型,能力很广,但它不会听指令,也不懂你的业务口径。你可以把它理解成一个读过很多书但没上过岗的人。
微调解决的是「按不按你的规矩办事」。指令微调、领域微调都属于这一层,做法是在基座上用少量高质量的样本继续训练。它改的是回答的风格、格式、术语和偏好,不改模型会不会中文、会不会推理这种底层能力。
| 对比项 | 预训练 | 微调 |
|---|---|---|
| 要解决的问题 | 会不会说话、懂不懂世界 | 按不按你的规矩办事 |
| 数据形态 | 海量通用原始文本 | 成对的输入与期望输出样本 |
| 数据量级 | 万亿级 token 起 | 千到万级样本常见 |
| 算力门槛 | 成百上千张卡跑很久 | 单机几卡甚至一张卡 |
| 产出物 | 基座权重 | 适配器或合并后的权重 |
| 验收方式 | 通用能力类整体指标 | 按你自己的任务做对照测试 |
边界怎么划:什么时候只调不训,什么时候动基座
绝大多数团队只需要微调,甚至微调都不用。下面这几类信号出现时,说明你该走微调这条路:任务输出格式固定、术语和口径要统一、回答必须符合内部规范。这些都是在改行为,不是改知识。
真正需要动基座的情况很少:你的语料是全新模态、目标语言在基座里覆盖极差、或者你要的是能力层面的根本改变。这类需求一般团队扛不住,算力和数据管线都不是短期能搭起来的。
- 先试提示词工程:零成本改行为,样本改几条就能看到差异,效果不够再往下走
- 再试 RAG:不改权重就能补知识,适合知识更新快、来源可检索的场景
- 都不行才考虑微调:需求相对稳定、有稳定样本、评估集能建起来
- 预训练最后考虑:除非语料或模态是全新的,否则投入产出比通常划不来
判断的边界要写清不适用的情况:小样本、低频任务、需求还在反复变的阶段,别急着微调。改一次需求就重训一次,标注和算力的账算不过来。这时候用提示词或 RAG 撑一撑,等需求稳了再动训练。
各自要准备什么、产出什么、怎么验收
预训练这边,要准备的是大规模原始语料加一套清洗管线,产出基座权重。验收看的是通用能力这类整体指标,不针对单个任务。这条路的坑主要在数据管线和算力调度,跟做业务应用的人关系不大。
微调这边,要准备成对的「输入-期望输出」样本,一般千条起步,数据质量比数量重要。脏样本会把坏习惯一起教进去,宁可少而干净,不要多而混乱。产出的通常是适配器,也可以合并进基座权重。
- 先跑通数据格式把原始数据处理成训练要的字段结构,小批量先跑通全流程,确认没有解析和编码问题再上全量
- 建一份评估集从样本里留出一部分不参与训练,固定下来当尺子,每次版本都用同一套题测
- 小规模试训先用一小部分数据训一版,看输出是否朝期望方向走,问题早暴露比训完再返工便宜
- 对照验收同一批测试题跑基座和新权重,逐条比对差异,别只看训练 loss 降没降
数据格式和清洗流程建议先照现成的检查项过一遍,站内微调数据集准备与格式清洗的流程页有可照抄的清单,照着走一遍能省不少返工。
动手前的自查顺序
把上面的判断压缩成一套固定顺序,动手前从头走一遍。顺序不能跳,跳了就容易在错误的方向上花钱。
- 第一步问能不能用提示词或 RAG 解决,能解决就别进训练环节
- 第二步确认有没有稳定的标注样本和评估集,没有评估集就不要开始微调
- 第三步按显存和样本量估一次配置,微调对显存的要求和推理完全不是一回事
- 第四步选服务方式:自己租卡训、用托管微调服务、还是找服务商做,成本和可控性差别很大
- 第五步留回退方案:保留基座权重和上一版适配器,新版效果不对能立刻切回去
第三步的配置估算别凭感觉,在站内按模型规模算一遍显存和时长,再决定租什么卡、租多久。具体数字会随行情变,去站内算力估算与配置参考页核对当时的数值。第四步比较服务方式时,也建议先看服务目录再比价,别只盯单价。
这套顺序的适用前提是你的任务属于常规的文本类需求。如果涉及全新模态、强合规要求或极端延迟约束,判断标准要另算,这时候更适合找有经验的人一起评估,而不是套这套清单。
下一步先按自查顺序走一遍,再把模型规模丢进算力估算页面算配置,同时去服务目录比一下自建和托管两条路的成本,心里有数了再开训。→常见问题
我只想让模型用我们的行业术语回答,需要预训练吗?
基本不需要。这种属于行为层面的调整,用少量标注样本做微调,或者更省事的做法是把术语说明写进提示词、用检索把标准话术喂进去。预训练解决的是通用语言能力,你已经通过现成基座拿到了,重复一遍纯属浪费。
微调是不是数据越多越好?
不是。微调看的是样本质量和覆盖度,几千条干净、格式统一的样本,往往比几万条带噪声的样本效果稳。真正要盯的是样本有没有覆盖边界情况、标注口径是否一致,以及有没有一份能反过来检验结果的评估集。
微调完模型会不会把原来的通用能力弄丢?
会,程度取决于学习率和训练轮数,学得太狠就会明显退化。常见做法是降低训练强度、混合一部分通用样本来稳住基础能力,训完拿通用任务和你的目标任务各测一轮,两个都过才算合格。