预训练(Pre-training)是机器学习中一个先在大规模通用数据上训练模型、让模型学到通用表示或知识的阶段。随后再用较小、任务相关的数据对模型进行微调(Fine-tuning)或适配,用于具体任务。
核心要点
- 目的:学到通用特征/语言/视觉表示,减少下游任务所需数据和训练时间,提高效果与泛化能力。
- 常见场景:
- NLP:在海量文本上训练语言模型(如 GPT 的自回归预测下一词、BERT 的掩码语言建模)。
- 视觉:在 ImageNet 上预训练 CNN/ViT,再迁移到检测、分割等任务。
- 语音/多模态:wav2vec 2.0(自监督音频),CLIP(图文对比学习)。
- 常见预训练目标:
- 自回归语言建模(next-token prediction)
- 掩码建模(Masked LM、MAE)
- 对比学习(SimCLR、MoCo、CLIP)
- 自编码/重构(Autoencoder、VAE)
- 与微调的关系:预训练学“通用”,微调学“专精”。微调方式包括全量微调、部分层冻结、参数高效微调(如 LoRA、Adapter)。
- 优点:更好初始点、泛化更强、数据效率高、收敛更快。
- 局限:计算成本高、可能继承训练数据的偏见与噪声、领域迁移不充分(域偏移)、微调不当会遗忘(灾难性遗忘)。
- 何时使用:当下游数据有限、任务与通用知识相关、或计算允许先训练一个基础模型时。
代表模型/做法:BERT、GPT 系列、RoBERTa、T5、ViT、CLIP、wav2vec 2.0、SAM 等。