大模型微调技术纵览:从全参微调到对齐方法的实践思考
一年间,大模型微调技术快速迭代:LoRA、QLoRA、AdaLoRA、量化、Flash Attention、KTO、PPO、DPO……新方法几乎每天涌现。作为算法工程师,不被落下就要深入原理。这里记录我对核心技术的整理与思考。
大模型基础
大模型早已不是实验室里的玩具,行业应用遍地开花。我日常关注Hugging Face的模型库、transformers库的更新,还有DeepSpeed、vLLM这些支撑高效训练和推理的工具。开源项目像LLaMA、ChatGLM让小型团队也有了复现和改进的可能。
大模型原理
大模型本质上是通过海量数据预训练出来的语言概率分布建模。预训练 + 微调 + 对齐构成了主流范式。关键节点:从BERT到GPT系列,再到LLaMA,规模膨胀的同时,数据清洗的重要性不断上升。训练这样规模的模型需要成百上千块GPU,所以基础设施(如分布式策略、混合精度)是落地的基础。
Transformer 模型原理剖析
Transformer的核心是自注意力。每个token通过Q、K、V三个矩阵动态计算上下文关联。Multi-Head Attention把注意力的'视角'分成多个,能捕捉不同子空间的特征。位置编码告知序列顺序,从原始的正弦编码到RoPE,后者被LLaMA等模型采用,能自然处理外推长度。分词器也很重要:BPE tokenizer 和 SentencePiece 影响词汇表的覆盖与效率。
训练时,前馈网络、层归一化和残差连接保证了深层可训性。优化上,学习率调度(warmup + cosine decay),正则化(dropout、weight decay)是标准配置;生成时结合beam search、top-k、top-p采样等策略。
全量微调和高效微调
全量微调直接更新所有参数,但计算成本太高。高效微调(Parameter-Efficient Fine-Tuning,PEFT)只更新少量参数,成为主流。常见策略:适配器(Adapter)、前缀微调(Prefix Tuning),以及后来一统江湖的LoRA。我个人的选择是,能在单卡上跑的高效方法优先,除非性能差距无法接受才考虑全量微调。
GPT 与 LLaMA 家族模型剖析
GPT系列从GPT-1到GPT-4,逐步显示了规模的力量。InstructGPT通过指令微调和人类反馈对齐,让模型更听话,但也暴露出幻觉和偏见问题。LLaMA则以相对较小的参数取得不错性能,开源后衍生出许多微调版本,它的架构创新(如RoPE、SwiGLU激活)也影响了后续模型。国内ChatGLM和Baichuan在中文场景表现优异,架构上分别采用prefix LM和标准自回归,各有迭代路径。
指令微调之 LoRA
指令微调让模型理解以'指令'格式给出的任务,相比传统微调,泛化性更好。LoRA的假设是微调时的权重更新矩阵是低秩的,因此可以分解为两个小矩阵相乘,只更新这些小矩阵,大幅减少参数量。实际使用中,秩r取8或16往往效果就不错。
矩阵知识基础:特征值分解、SVD是理解LoRA的关键。LoRA实现简单,源码解读可以参考Hugging Face的PEFT库。数据方面,Alpaca项目展示了如何用ChatGPT生成指令数据;AdaLoRA动态调整不同层的秩,进一步节省计算。Vicuna利用用户共享对话进行微调,效果突出。
量化与压缩技术
推理时模型太大怎么办?量化把浮点参数映射到低精度,比如4-bit。QLoRA将量化与LoRA结合,让微调也能在4-bit模型上进行,几乎不损精度。具体技术:4-bit NormalFloat、双重量化(double quantization)等。模型压缩还包括剪枝、蒸馏。ZeroQuant是专为Transformer设计的训练后量化方案,SmoothQuant则通过平滑激活值量化减小误差。
大模型对齐之 RLHF
RLHF让模型对齐人类偏好。从InstructGPT到ChatGPT,PPO算法在其中扮演核心角色。PPO通过裁剪目标函数稳定策略更新,同时利用KL散度惩罚偏离原始模型的分布。广义优势估计(GAE)减少方差,重要性采样处理离线数据。人类反馈形式多样:标记、偏好排序、指导。整个RLHF流程需要收集人工反馈数据,并用强化学习方法微调。
大模型对齐之 DPO
DPO直接优化偏好,不需要显式训练奖励模型,比RLHF简单稳定。它把偏好排序问题转化为二元分类损失,直接基于偏好对调整模型。相比PPO,DPO训练更收敛,实现更轻量。我在实验中感觉,DPO在数据质量高时能快速对齐,但处理复杂偏好可能需要更多技巧。
其他微调技术
Prefix Tuning 在输入前拼接可训练向量;Adapter Tuning 在Transformer层间插入小模块。Flash Attention 通过块计算和重算法减少显存读写,Flash Attention 2 进一步优化,成为长序列训练标配。KTO 无需偏好对,只需单一结果的正负反馈,在偏好数据难获取时很实用。
大模型增量学习
大模型持续面临新数据,增量学习要避免遗忘。灾难性遗忘可以通过正则化(如EWC)、动态扩展网络或元学习缓解。实践中,通用数据与垂直数据混合训练是常用妥协。多模态、跨领域增量学习还待探索,自适应学习和在线学习也是方向。


