第 5 章 微调方法选择根据是否更新模型全部参数监督微调SFT的方法可分为两类全参数微调Full Fine-tuning参数高效微调Parameter-Efficient Fine-tuning, PEFT5.1 全参数微调全参数微调是一种在微调过程中更新模型全部参数的方法。它能最大限度地适配目标任务通常获得最优性能。但由于大语言模型参数量庞大数十亿至数千亿全参数微调对显存、算力和训练时间要求极高单设备通常无法承载模型参数、优化器状态与激活值必须依赖分布式训练技术才能实施。因此全参数微调适用于资源充足、对性能要求严苛、且拥有高质量标注数据的场景。在实际应用中常作为参数高效微调无法满足需求时的高成本备选方案。5.2 参数高效微调5.2.1 概述参数高效微调Parameter-Efficient Fine-tuning, PEFT是一系列微调方法其核心思想是仅更新少量参数或引入少量可训练模块在显著降低资源消耗的同时高效适配目标任务。目前最先进的PEFT方法已经能实现与全参微调相当的性能。PEFT 的兴起可追溯至 2019 年前后。当时以 BERT、GPT-2 为代表的预训练模型规模迅速扩大传统全参数微调的资源成本逐渐难以承受。伴随模型规模持续膨胀这种矛盾愈发凸显由此推动了 PEFT 技术的快速发展形成了包括 Prompt Tuning、Prefix Tuning、P-Tuning、Adapter、LoRA 等多条技术路线如下图所示在众多方法中LoRALow-Rank Adaptation因其结构简洁、训练高效、稳定已成为当前大语言模型监督微调SFT的主流选择其量化版本 QLoRA Quantized Low-Rank Adaptation进一步融合量化技术将微调门槛降至消费级 GPU 也可运行的水平。相比之下其他 PEFT 方法因在效率、稳定性或通用性等方面存在局限已逐渐边缘化。5.2.2 LoRA1概述LoRALow-Rank Adaptation是一种高效且广泛使用的参数高效微调方法由微软研究院于 2021 年提出。因其训练成本低、适配能力强、推理无额外开销等优势已成为当前大语言模型监督微调SFT中最广泛使用的技术。2原理在传统的全参数微调Full Fine-tuning中模型中的某个参数矩阵W0∈ ℝd×k会在训练过程中被更新为WW0Δ**W其中 _Δ**W_是微调阶段需要学习的完整增量矩阵。LoRA 的作者在实践中观察到Δ**W往往具有低秩结构也就是说它的有效自由度远低于其表面维度。基于这一关键现象LoRA 将 _Δ**W_近似分解为两个低秩矩阵的乘积$ \Delta W \approx AB,\ A \in \mathbb{R}^{d \times r},\quad B \in \mathbb{R}^{r \times k}, $其中r≪ min (d,k)通常取 4、8 或 16 等远小于原始维度的数值。这样微调后的权重矩阵可写为WW0A**B.如下图所示在训练过程中LoRA完全冻结原始权重W0仅对新增的低秩矩阵 _A_和 _B_进行优化。这大幅减少了需要更新的参数量同时也避免了对大规模模型权重的直接修改使微调过程更加轻量、高效。在推理阶段低秩增量 _A**B_可以无缝合并回原始权重W0中不会引入额外的计算复杂度因此 LoRA 的高效性不仅体现在训练中也体现在推理过程中。如下图所示由于秩 _r_很小LoRA 的参数开销和计算成本都极低。例如对dk 4096的权重矩阵进行全参数更新需要约 16M 个参数而采用 LoRA如r 8时仅需4096 × 8 8 × 4096 65, 536个参数占原始权重的仅约 0.4%。这种数量级的压缩使得在有限资源下微调大模型成为可能也使得在多个任务之间共享底层模型、仅保存轻量级 LoRA 适配器成为现实。5.2.3 QloRA1概述QLoRAQuantized Low-Rank Adaptation是 LoRA 的量化增强版本由华盛顿大学和微软研究院于 2023 年提出。QLoRA 在 LoRA 的基础上引入 4-bit 量化技术在几乎不损失性能的前提下将大语言模型微调的硬件门槛大幅降低使得数十亿参数级别的模型可在单张消费级 GPU如 RTX 3090/4090上完成高效微调。2原理QLoRA 的核心思想是先对预训练模型权重进行 4-bit 量化以压缩显存占用再在其上应用 LoRA 进行参数高效微调。整个流程包含三个关键技术组件4-bit NormalFloatNF4量化量化Quantization 是一种通过降低数值精度例如从 16-bit 降至 4-bit来压缩模型、节省显存的技术。传统 4-bit 量化通常采用如下流程使用权重的最大绝对值absmax将权重归一化到区间 [ − 1, 1]将该区间均匀划分为 24 16个等距格点每个权重被映射到最近的格点并以对应的 4-bit 索引存储。具体如下图所示然而大语言模型的权重分布并非均匀而是近似服从标准正态分布均值为 0方差为 1。在这种分布下传统均匀量化存在明显缺陷在权重密集的 0 附近格点相对不足导致量化误差较大在权重稀疏的两端格点又相对冗余造成信息利用率低下。为解决这一问题QLoRA 提出了 4-bit NormalFloatNF4量化专为标准正态分布设计将标准正态分布按累积概率均分为 16 个等概率区间每个区间选取其中位数作为该区间的量化代表值。这样得到的量化格点在 0 附近更密集在两端更稀疏与权重的实际分布高度匹配从而显著降低量化误差。双重量化Double Quantization在权重量化过程中为了保证精度通常的做法是让每 64 个权重共享一个 32-bit 的缩放因子Absmax。虽然这种方法能有效控制量化误差但这些大量的缩放因子自身也会带来显著的存储开销。为缓解这一问题QLoRA 提出了“双重量化”不仅对模型权重量化更对这些高精度的缩放因子进行二次量化。其实现方式是将缩放因子以 256 个为一组使用 8-bit 数据类型进行二次量化。如此一来量化所需的辅助存储空间得以大幅减少。分页优化器Paged Optimizers在微调过程中优化器状态如 Adam 的一阶矩、二阶矩往往比模型权重本身更占显存。即使使用 LoRA 或 QLoRA大量优化器状态仍可能导致显存不足尤其是在消费级 GPU 上。为解决这一瓶颈QLoRA 使用了分页优化器Paged Optimizer技术使优化器状态能够按需加载、按需卸载从而更加高效地利用显存。其核心思路是将优化器状态拆分为多个小块pages仅在需要更新某层时临时把对应 page 载入到显存更新完成后立即将该 page 写回内存并从显存中释放借助分页机制显存只需容纳当前正在使用的优化器状态显存占用随之显著降低。这一技术让大型模型的 QLoRA 微调能够在更低显存环境下高效运行并最大化消费级 GPU 的可用算力。