模型预训练与微调的发展历程及核心论文/项目推荐
模型预训练与微调的发展历程及核心论文/项目推荐
一、模型预训练(Pre-training)
预训练模型的核心思想是通过大规模无标注数据训练模型,学习通用语言或视觉表征,再通过微调适应具体任务。其发展经历了以下关键阶段:
1. 预训练概念的提出与早期探索
- Word2Vec(2013):通过无监督学习词向量,首次展示了从大规模文本中学习语义表征的可能性。
- ELMo(2018):引入上下文相关的词向量,通过双向LSTM模型捕捉语境信息,推动了预训练在NLP中的应用。
2. 预训练的范式革新
- BERT(2018):基于Transformer的双向编码器,通过掩码语言模型(Masked LM)和下一句预测任务,首次在多个NLP任务中实现SOTA性能。
- GPT系列(2018-2020):从GPT-1到GPT-3,逐步验证了单向自回归语言模型的生成能力,尤其是GPT-3通过海量参数和零样本学习展示了模型的通用性。
3. 预训练的改进方向
- 模型架构优化:如RoBERTa(改进BERT训练策略)、T5(统一文本生成框架)、Switch Transformer(混合专家架构MoE)等。
- 训练效率提升:如DeepSeek-V3(2024)结合MoE和多头潜在注意力(MLA),显著降低训练成本并提升性能。
- 多模态预训练:如CLIP(图文跨模态对齐)、DALL·E(文本到图像生成),扩展了预训练的适用范围。
二、模型微调(Fine-tuning)
微调是在预训练模型基础上,通过特定任务的小规模标注数据调整参数,使其适应下游任务。其发展重点在于平衡性能与效率:
1. 全参数微调(Full Fine-tuning)
- 核心思想:更新预训练模型的所有参数,适用于数据量较大的场景。
- 局限性:计算成本高,易导致灾难性遗忘(Catastrophic Forgetting)。
2. 参数高效微调(Parameter-Efficient Fine-tuning, PEFT)
- Adapter(2019):在Transformer层中插入小型适配模块,仅训练新增参数。
- LoRA(2021):通过低秩矩阵分解调整权重,减少参数量,适用于大模型微调。
- Prompt Tuning & Prefix Tuning(2021):通过可学习的提示词或前缀向量引导模型输出,减少计算开销。
- QLORA(2023):结合4位量化和LoRA,实现在单卡上微调超大规模模型(如65B参数)。
3. 微调策略的创新
- 指令微调(Instruction Tuning):通过指令-响应对数据调整模型,提升泛化能力(如Alpaca、Vicuna)。
- 多任务微调:联合训练多个任务,增强模型鲁棒性。
- 增量预训练(Continual Pre-training):在领域数据上继续预训练,注入专业知识(如MedicalGPT)。
三、关键论文与项目推荐
核心论文
-
预训练
- BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding(2018)
- Language Models are Few-Shot Learners(GPT-3, 2020)
- DeepSeek-V3: A Cost-Effective Foundation Model with MoE and MLA(2024)
-
微调
- LoRA: Low-Rank Adaptation of Large Language Models(2021)
PEFT 是一类参数高效微调技术的统称,旨在通过调整少量参数来完成模型的微调。LoRA 是 PEFT 的一种具体实现,PEFT 还包括其他方法,如 Adapter、Prefix Tuning、Prompt Tuning 等。 - The Power of Scale for Parameter-Efficient Prompt Tuning(2021)
- QLORA: Efficient Finetuning of Quantized LLMs(2023)
- LoRA: Low-Rank Adaptation of Large Language Models(2021)
开源项目
-
预训练框架
- Transformers(Hugging Face):支持BERT、GPT等主流模型的预训练与微调。
- DeepSpeed(Microsoft):优化大模型训练效率,支持千亿参数模型。
-
微调工具
- PEFT库:集成LoRA、Prefix Tuning等高效微调方法。
- LLaMA-Factory:支持多模态大模型的轻量化微调。
- QLORA官方代码:开源的高效量化微调方案。
-
领域实践
- MedicalGPT:医疗领域增量预训练与微调的典型案例。
- MetaMathQA:数学推理任务的指令微调数据集与模型。
四、未来趋势
- 更高效的训练技术:如Muon优化器(2025)通过矩阵正交化提升训练效率200%。
- 多模态融合:结合视觉、语言等多模态数据的预训练与微调(如DeepSeek-R1)。
- 自动化微调:通过元学习(如MELTR框架)动态优化损失函数组合。
LoRA(Low-Rank Adaptation)和 PEFT(Parameter-Efficient Fine-tuning)是两种用于模型微调的技术,旨在通过减少需要调整的参数数量来提高微调的效率,尤其是在大模型(如LLM,Large Language Models)的场景下。以下是对它们的详细解释:
1. LoRA(Low-Rank Adaptation)
概念
LoRA 是一种参数高效的微调方法,专注于通过低秩分解(Low-Rank Decomposition)来减少需要调整的参数数量。它的核心思想是:在微调过程中,不直接更新整个预训练模型的参数,而是通过引入少量的低秩矩阵来调整模型的权重。
工作原理
- 在预训练模型的某些层(通常是注意力机制中的权重矩阵)中,LoRA 会添加两个低秩矩阵 ( A ) 和 ( B )。
- 这些低秩矩阵的乘积 ( A \times B ) 被用来调整原始权重矩阵 ( W ),即:
[
W’ = W + A \times B
]
其中,( A ) 和 ( B ) 是可训练的参数,而 ( W ) 是预训练模型的固定参数。 - 由于 ( A ) 和 ( B ) 的维度远小于 ( W ),因此需要调整的参数数量大大减少。
优点
- 参数高效:只需要调整少量参数,适合资源受限的场景。
- 模块化:可以轻松添加到现有模型中,而不需要修改模型架构。
- 性能接近全参数微调:在许多任务上,LoRA 的性能接近全参数微调,但计算成本更低。
适用场景
- 大模型(如 GPT、BERT 等)的微调。
- 资源受限的环境(如单卡 GPU 或低显存设备)。
2. PEFT(Parameter-Efficient Fine-tuning)
概念
PEFT 是一类参数高效微调技术的统称,旨在通过调整少量参数来完成模型的微调。LoRA 是 PEFT 的一种具体实现,PEFT 还包括其他方法,如 Adapter、Prefix Tuning、Prompt Tuning 等。
常见的 PEFT 方法
-
Adapter:
- 在模型的某些层中插入小型神经网络模块(Adapter),只训练这些模块,而冻结原始模型的参数。
- Adapter 通常由两层全连接网络组成,参数量较少。
-
Prefix Tuning:
- 在输入序列前添加可学习的“前缀”向量,通过调整这些前缀向量来微调模型。
- 适用于生成任务(如文本生成)。
-
Prompt Tuning:
- 类似于 Prefix Tuning,但只调整输入中的提示(Prompt)部分,而不是整个前缀。
- 适用于少样本学习(Few-shot Learning)。
-
LoRA:
- 如上所述,通过低秩矩阵调整模型权重。
优点
- 高效:大幅减少需要调整的参数数量,降低计算和存储成本。
- 灵活:可以根据任务需求选择不同的 PEFT 方法。
- 可扩展:适用于各种大模型和任务。
适用场景
- 大模型的微调,尤其是在资源受限的环境中。
- 多任务学习,通过共享预训练模型并针对不同任务使用不同的 PEFT 模块。
3. LoRA 和 PEFT 的关系
- LoRA 是 PEFT 的一种具体实现,PEFT 是一个更广泛的概念,涵盖了多种参数高效微调技术。
- LoRA 通过低秩分解调整模型权重,而其他 PEFT 方法(如 Adapter、Prefix Tuning)则通过不同的方式实现参数高效微调。
4. 如何选择 LoRA 或 PEFT?
- 如果你的任务是生成任务(如文本生成),并且希望减少参数调整量,可以选择 LoRA 或 Prefix Tuning。
- 如果你的任务是分类任务,并且希望模块化地插入微调模块,可以选择 Adapter。
- 如果你希望最大限度地减少参数调整量,并且任务对提示(Prompt)敏感,可以选择 Prompt Tuning。
5. 实际应用中的推荐
- LoRA 是目前最流行的 PEFT 方法之一,尤其是在大模型微调中,因为它简单高效且性能接近全参数微调。
- 如果你使用的是 Hugging Face 的
transformers
库,可以结合peft
库(Parameter-Efficient Fine-tuning Library)来轻松实现 LoRA 和其他 PEFT 方法。
示例代码(使用 Hugging Face + PEFT 实现 LoRA)
1 | from transformers import AutoModelForCausalLM, AutoTokenizer |
6. 总结
- LoRA 是一种通过低秩分解实现参数高效微调的技术。
- PEFT 是一类参数高效微调技术的统称,包括 LoRA、Adapter、Prefix Tuning 等。
- 在实际应用中,LoRA 是最常用的 PEFT 方法之一,适合大模型的微调任务。
- 如果你需要快速实现参数高效微调,可以使用 Hugging Face 的
peft
库,结合 LoRA 或其他 PEFT 方法。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 This is a 部落格 of outbreak_sen!