很多刚接触大模型的人会卡在一个问题上:模型到底是哪一步把数据「吃」得最多?有人以为微调要海量数据,有人以为对齐阶段才是大头。这篇按训练流程拆开,讲清每个阶段数据的量级、形态和用途差别,给一套自己估算和核对的口径,不写死具体数字。
很多刚接触大模型的人会卡在一个问题上:模型到底是哪一步把数据「吃」得最多?有人以为微调要海量数据,有人以为对齐阶段才是大头。这两个直觉都不太对。这篇按训练流程拆开讲,每个阶段的数据量级、形态和用途差在哪,顺便给一套自己估算和核对的口径。
先给结论方向:数据量最大的那一步是预训练,而且不是「多一点」,是几个数量级的差距。但光记住这句话没用,你得知道差距从哪来、什么时候这条直觉不成立。下面按阶段拆,每节都配一个可以自己动手的判断动作。
先把训练拆成几个阶段,再看数据量
通常说的训练流程分三步:预训练、监督微调、偏好对齐。三者的数据形态完全不同,不能拿同一个尺子量。预训练喂的是无标注文本流,就是一堆网页、书、代码;微调喂的是问答对,一问一答;对齐喂的是带排序的偏好样本,同一个问题配几个回答并标出哪个更好。形态不同,体量自然也差得远。
- 预训练
- 用无标注文本流让模型学语言的统计规律和常识,数据量最大的一步
- 监督微调
- 用问答对把已有能力往特定方向掰,样本数比预训练小几个数量级
- 偏好对齐
- 用带排序的回答样本调输出倾向,样本通常比微调还少
- token
- 模型实际读进去的文本单位,估算数据量最后都换算成它
这里有个容易混的地方:数据量最大和数据质量要求最高,是两个问题。预训练量大但可以容忍一定的噪声,靠规模取胜;微调量小,但每条样本都得干净、一致,脏一条影响就明显。所以别拿「哪个阶段数据多」去推「哪个阶段更费功夫」。具体各阶段的规模参考,到 /training 看当时整理的资料。
为什么预训练的数据量必须最大
预训练的目标是让模型学会语言规律和世界常识,这需要覆盖足够广的语料。样本少了,模型根本学不出通用能力,只会背下见过的那点东西。微调则不同,它是在已经会说话的基础上改行为,属于「掰方向」,几十到几万条高质量样本就能看到效果,跟预训练不是一个体量。
| 阶段 | 数据形态 | 体量直觉 | 主要目的 |
|---|---|---|---|
| 预训练 | 无标注文本流 | 最大,覆盖越广越好 | 学语言规律和常识 |
| 监督微调 | 问答对 | 小几个数量级 | 把能力掰向特定任务 |
| 偏好对齐 | 带排序的偏好样本 | 通常比微调还少 | 调输出倾向和风格 |
两种例外要记一下:从头训一个很小的模型时,预训练的数据需求会小很多,别硬套大模型的直觉;只做风格迁移的轻量微调,数据甚至可以少到几百条。这两种情况下,「预训练吃数据最狠」的比例感就不适用了,得按自己的目标重新算。
自己估算数据量的三步动作
- 第一步:定目标先写清楚你要的是通用能力、领域专精还是固定输出格式。要通用能力才涉及预训练;要格式,微调甚至提示词就够。目标定错,后面全白算。
- 第二步:算 token微调数据按「样本数 × 平均长度」估总量,再去 /tools/token-price-calculator 换算成 token 数,跟模型的上下文窗口对一下够不够。这一步能帮你判断数据是不是真有必要堆那么多。
- 第三步:核资源数据量上去以后,训练时长和显存都会涨。去 /models/deploy 做一次部署测算,把数据和卡一起看,别只盯数据不看算力。
还有一种情况可以直接跳过堆数据:如果只是想让模型认几个专有名词、答几个固定问题,先试提示词或检索增强。这类需求根本不用改权重,也就不存在「喂多少数据」的问题。很多人一上来就想微调,其实是把简单问题做复杂了。
几个容易读偏的地方
- 「数据量大」不等于「效果好」,重复语料和低质网页堆再多也换不来能力提升,去重和清洗比堆量更影响结果
- 微调数据少不代表简单,标注一致性和覆盖边界的难度更高,几百条脏数据足以把模型带歪
- 别把推理阶段外挂的知识库文档当成训练数据,那是检索,不进权重
- 要判断一篇资料讲的是哪个阶段,先看它提的样本是不是带标签、是不是带排序
判断阶段有个快办法:看文章里的样本长什么样。成段的连续文本,多半在讲预训练;一问一答成对的,是微调;同一问题列好几个回答还标了优劣的,是对齐。用这个口径扫一眼,基本不会读错。相关底层概念可以顺着 /ai-dict/category/tech 对照看,应用场景词条在 /ai-dict/category/application。
回到最初的问题:预训练是数据量最大的那一步,这个结论在多数从零训练的场景下成立,但你得先确认自己在问的是数据量还是数据质量,也要检查是不是属于小模型从头训或轻量风格迁移这两种例外。把目标和阶段对上,数据量的问题基本就清楚了。
下一步把预训练、微调、对齐的规模直觉落到具体数字上,去站内训练资料库核对当时的整理结果,再结合自己的目标决定要不要动数据。→常见问题
是不是数据越多的那个阶段越重要?
不是一回事。预训练数据量最大,是因为它要打底子;但落到具体业务效果上,微调和对齐那几千几万条样本往往更直接决定模型听不听话。量和重要性要分开看,先明确你优化的是通用能力还是特定行为。
我只想做一个垂直领域的模型,要不要重跑预训练?
绝大多数情况不用。从公开基座出发做微调或接检索,成本和周期都低得多。只有在领域语料和通用语言差别极大、且你手上真有大规模干净语料时,才值得考虑继续预训练,且要先算清算力账。
想核对各阶段的规模和数据形态,站内去哪看?
先去 /training 看训练相关文章与资料汇总,再用 /ai-dict/category/tech 对照底层概念名词。具体的数据规模数字和案例不写死在这篇里,以站内页面当时整理的口径为准。