大模型微调技术 --> 脉络
Step1:脉络
微调技术从最早期的全模型微调演变成如今的各种参数高效微调(PEFT)方法,背后是为了应对大模型中的计算、存储和数据适应性的挑战
1.为什么有微调?
深度学习模型越来越大,尤其是 NLP 中的预训练语言模型(BERT, GPT)系列。如果从零开始训练,既耗时又昂贵。
所以人们开始转向 预训练-微调 范式,在大规模无监督语料库上进行模型的预训练,然后在特定任务上微调模型。
核心需求:
- 减少从零开始训练的计算成本和时间
- 利用已经学到的通用语言知识,通过小规模的任务特定数据快速适配模型
2.脉络
1. 微调技术时间线
全量微调(2018, BERT Google 提出) → Adapter 微调(2019, Houlsby et al 提出) → P-Tuning(2021, 清华大学) → LoRA(2021, 微软研究院) → Prefix-Tuning(2021, Li et al 提出) → IA³ (2022, 微软 和 HuggingFace 提出)
2.LoRA 的脉络
- LoRA(2021)
- 解决:通过低秩分解,只微调少量参数,大幅减少计算和存储成本,尤其适合大模型生成任务
- 不足:固定秩的设计限制了在复杂多任务或多层次任务中的表现力
- QLoRA(2023)
- 解决:虽然 LoRA 减少了参数量,但是显存占用依旧较高。QLoRA 通过 4bit 量化,降低了显存需求
- 不足:量化带来了一定的性能损失,特别是在精度要求极高的任务上
- LoHA(2022)
- 解决:LoRA 固定秩的方式难以应对多任务学习或复杂层次结构的需求。LoHA 通过层次化的低秩分解,适应不同层次的任务需求。这样增强了多任务和复杂上下文中的适应性。
- 不足:增加了计算复杂度,设计相对复杂
- LoKr(2023)
- 解决:LoRA 适用于线性任务,处理非线性特征时表现不足。LoKr 结合了核方法,使模型能够更好的捕捉复杂的非线性关系。提高了模型在非线性特征场景中的表现,如高级 NLP 和 CV 任务中
- 不足:引入了额外的计算成本和复杂性
- AdaLoRA(2023)
- 解决:LoRA 固定秩限制了模型对不同层的适应能力。AdaLoRA 通过动态调整每一层的秩,减少了不必要的计算,提高了关键层的标下能力,在资源有限的环境下表现优异
- 不足:引入了更高的实现复杂度和超参数调整要求
- Delta-LoRA 和 Prefix Tuning(2021-2022)
- 解决:LoRA 在生成任务的上下文适应性不足。Delta-LoRA 和 Prefix-Tuning 通过引入前缀或序列信息的适应,曾庆了对上下文的捕捉能力,提升了生成任务(对话、故事生成)中的质量
- 不足:推理时成本增加
7.总结
- LoRA 的初衷是为了解决大规模模型微调中的高计算和显存开销问题。
- QLoRA 进一步通过量化解决了显存占用问题,使得大模型能够在低资源设备上运行。
- LoHA 和 LoKr 针对复杂任务和非线性特征的学习需求进行了扩展,增强了模型的适应性。
- AdaLoRA 通过自适应调整秩大小,优化了层次间的资源分配,进一步提高了效率和灵活性。
- Delta-LoRA 和 Prefix Tuning 则主要提升了生成任务的上下文捕捉能力。