大模型(如GPT、LLaMA、Claude等)的训练通常分为三个阶段:预训练、微调和对齐。这是业内目前公认的大模型开发范式。读完本文后,你将清晰了解大模型训练不同阶段的数据量、数据格式和核心训练目标。
1. 预训练(Pretraining)
预训练的核心目标是让模型从海量数据中学习通用的语言表示能力,比如语法规则、世界知识和基础推理逻辑。为了实现这一目标,大模型需要解决两个关键问题:如何高效利用大规模无标签文本,以及如何构建强大的语言建模能力。实际上,在Transformer架构普及前,像BERT这样的预训练模型就已经展现出了卓越的语言建模潜力。
预训练阶段通常包含以下几种经典任务:
- 自回归语言建模(如GPT):模型从左到右逐个词元进行预测,非常适合文本生成任务,但无法直接利用下文信息。
- 掩码语言建模(如BERT):随机遮盖输入文本中的部分词元(例如将“巴黎是[MASK]的首都”中的“法国”遮盖),让模型利用双向上下文进行预测。
- 去噪自编码(如BART/T5):对原始文本进行多种形式的破坏(如删除、打乱顺序),然后让模型恢复原始文本,兼具语言理解与生成能力。
- 下一句预测(早期BERT使用):判断两个句子是否连续,后因提升效果有限而逐渐被弃用。
完成预训练后,模型便具备了基础的语言能力,但为了适应具体的下游任务,通常还需要进行针对性的微调。
随着计算能力与数据资源的爆发式增长,大模型时代(以GPT-3、ChatGPT、Gemini等为代表)将预训练技术推向了新的高度。这些模型不仅继承了传统预训练任务,更在参数规模上实现了巨大飞跃——从BERT的亿级参数(1.1亿)跃升至万亿级(GPT-3达到1750亿),模型容量得到了质的提升。有趣的是,大模型在预训练阶段就已获得了相当程度的零样本推理能力,无需微调即可通过精心设计的提示词(Prompt)完成翻译、问答等任务。
预训练所需的数据规模通常是TB级别的,数据来源非常广泛,包括书籍、网页、百科、代码(如GitHub仓库)、学术论文等。下表列举了一些知名大模型的预训练词元规模(Token),可以看到,这个数字普遍达到了万亿量级。预训练的数据量对模型性能至关重要,例如,百川大模型2的技术报告指出,对于一个7B参数的模型,即使在1万亿词元上完成预训练后,继续增加数据量仍然能带来显著的性能提升。
| 模型 |
预训练词元规模 |
| GPT-3 |
0.3万亿 |
| Llama(70亿、130亿参数) |
1万亿 |
| Llama(330亿、650亿参数) |
1.4万亿 |
| Llama 2 |
2万亿 |
| Llama 3 |
15万亿 |
| Bloom |
0.34万亿 |
| DeepSeek(70亿、670亿参数) |
2万亿 |
| DeepSeekMoE(160亿参数) |
2万亿 |
| DeepSeek-V2(2360亿参数) |
8.1万亿 |
2. 监督微调(Supervised Fine-tuning)
监督微调的核心目标,是增强预训练模型的指令遵循能力,并激活其潜在的推理技能,使其能更好地适应问答、摘要、代码生成等特定任务。通过在高质量的有标注任务数据上进行进一步训练,模型能够调整其参数,从而更精准地匹配目标场景的需求。
微调通常分为以下两种主要方式:
- 全参数微调(Full Fine-tuning):更新模型的所有参数。这种方法适用于数据量较大的任务,能最大程度地适应新数据,但计算成本和存储开销也最高。
- 轻量级微调(Lightweight Fine-tuning):仅调整模型中的一小部分参数(例如通过LoRA、Adapter等模块)。这种方法能够在极大保留预训练知识的同时,高效、低成本地适配新任务,是目前的主流实践。
经过微调的模型能够更准确地理解任务指令,减少通用预训练带来的偏差,并且在医疗、法律、金融等特定领域表现出更强的专业性和可靠性。
微调阶段的数据量远小于预训练,通常在GB级别(例如著名的Alpaca数据集使用了52K条指令数据)。此阶段对数据质量的要求极高,往往需要大量的人工清洗与标注。
在微调大模型时,数据格式的选择直接关系到模型的最终表现。常见的格式包括:
- 结构化数据(如
{"input":"问题","output":"答案"}),适用于单轮问答和简单的文本生成;
- 指令微调数据(如
{"instruction":"翻译成法语","input":"Hello","output":"Bonjour"}),强调任务意图与输出结果的精准匹配;
- 对话数据(如
[{"role":"user","content":"你好"},{"role":"assistant","content":"您好"}]),用于构建能够进行多轮交互的对话系统。
合理设计这些数据格式,保持字段的标准化,并在必要时添加任务类型等元数据,能显著提升模型在客服、助手等实际场景中的适应能力。
3. 对齐(Alignment)
在微调大语言模型时,确保其输出符合人类价值观并减少有害内容是一个核心目标,这一过程被称为对齐。其根本目的是让大模型的回答与人类的偏好和期望保持一致。这一过程通常遵循“3H”原则,即要求模型输出应具备帮助性(Helpful)、诚实性(Honest)和无害性(Harmless)。
具体来说:
-
Helpful(帮助性)
通过指令微调数据(例如 {"instruction":"如何健康饮食?", "response":"建议多吃蔬菜..."})训练模型,使其能够提供实用、具体且符合用户需求的回答。在对话数据中(例如 [{"role":"user", "content":"帮我规划学习计划"}, {"role":"assistant", "content":"建议每天..."}]),则强调回答的针对性和可操作性。
-
Honest(诚实性)
针对事实性任务(如问答),采用结构化数据(例如 {"input":"地球是平的?", "output":"错误,地球是近球体"}),确保模型输出基于可靠知识,避免编造信息。同时,通过训练让模型学会识别并得体地拒绝超出其知识范围的问题(例如回答“我不确定”而非随意猜测)。
-
Harmless(无害性)
在训练数据中显式标注有害内容(例如 {"text":"仇恨言论示例", "label":"harmful"}),训练模型识别并拒绝暴力、歧视、偏见等负面输出。
对齐微调的数据规模通常在MB到GB级别。如果采用强化学习方法,所需的数据量可能仅数万条。数据来源主要包括人工标注(如OpenAI采用的RLHF)和AI反馈(如RLAIF)。其数据格式一般以对比形式呈现,包含针对同一提示词(Prompt)生成的多个回答以及人类标注的偏好关系。
目前,RLHF(基于人类反馈的强化学习)和DPO(直接偏好优化)代表了最前沿的、基于人类偏好的语言模型优化方法。RLHF通过分离的奖励建模和强化学习步骤提供了一个强大的对齐框架,而DPO则提供了更高效、更稳定的替代方案。
为了实现对齐,训练数据常采用对偶式(Pairwise)或排序式(Ranked)的格式,以清晰地向模型传递人类偏好的信号。
对偶式数据(Pairwise Data):
{
"prompt": "请解释量子力学的基本概念",
"chosen": "量子力学是研究物质世界微观粒子运动规律的物理学分支,主要概念包括波粒二象性、量子叠加和量子纠缠...",
"rejected": "量子力学就是关于量子的力学,比如原子和电子之类的"
}
排序式数据(Ranked Data):
{
"prompt": "写一首关于春天的诗",
"responses": [
{"text": "春天来了,花儿开了", "rank": 2},
{"text": "春风拂面百花开,燕子归来柳絮飞。青山绿水皆含笑,万物复苏春意回。", "rank": 1},
{"text": "春天", "rank": 3}
]
}
4. 总结
大模型的训练通常遵循预训练、监督微调和对齐这三个关键步骤。预训练阶段如同给模型打下深厚的地基,将通用语言知识压缩到海量参数中;监督微调则像是进行专业的室内装修,增强模型遵循指令、完成特定任务的能力,也可视为对齐步骤的参数初始化;而对齐阶段解决的则是“价值观”问题,通过RLHF、DPO等算法让模型的输出与人类偏好保持一致。
理解这三个阶段的目标、数据与方法,是进行大模型开发与应用实践的重要基础。希望本文能帮助你建立起清晰的认知框架。