高效微调研究如何在达到任务质量要求的条件下降低显存、计算和时间成本,适用于单设备、单机多卡和多机执行。监督微调规定数据与损失,参数高效微调规定可训练参数集合,本章讨论参数集合、数值精度、批量组织与并行策略如何共同影响资源和质量。LoRA 等方法的参数化与梯度机制见第21章《参数高效微调》;本章侧重方案组合与选择,跨设备通信和分片机制见第29章《分布式训练》。
比较方案时,应固定监督词元、验证集和质量要求,同时记录各设备峰值显存、全局有效监督词元吞吐、达到目标质量的时间与设备时成本。设备数量与学习阶段分别描述执行条件和学习路线,不能据此限定高效微调的适用范围。
22.1显存预算及可训练集合
设冻结参数数量为 \(P_f\),可训练参数数量为 \(P_t\),每个冻结参数的实际存储开销为 \(b_f\),每个可训练参数及其梯度、优化器状态的总字节数为 \(b_t\)。单设备峰值可表示为
量化尺度、分组元数据和对齐开销应计入 \(b_f\);主参数副本与优化器矩状态应计入 \(b_t\)。激活项取决于序列长度、微批量、可训练模块的位置和重计算策略。冻结参数仍然参与前向计算;当梯度需要经过冻结层传向更早的适配器时,该层的反向计算也必须保留。
例如冻结基座有 \(10^9\) 个参数,每参数实际开销为0.6字节,可训练参数有 \(10^7\) 个,每参数训练状态为16字节,两项合计 \(7.6\times10^8\) 字节。若激活、临时空间和运行时另占 \(3\times10^9\) 字节,则峰值为 \(3.76\times10^9\) 字节。只报告可训练参数比例会遗漏其中占比最大的执行开销。该算例是预算计算,实际容量需由完整训练步的峰值测量确认。
22.2有效监督词元及梯度累积
设一次更新包含 \(G\) 个微批次,第 \(j\) 个微批次的有效监督词元数为 \(n_j\)、损失和为 \(S_j\)。在固定标签掩码下,令 \(N=\sum_j n_j>0\),则
因此,逐微批次反向传播前需要按有效监督词元数加权。提示词元和填充词元可能参与前向计算,却不属于损失分母。若两个微批次分别有2和6个监督词元,平均梯度分别为1和3,则目标梯度为 \(\frac{2\times1+6\times3}{8}=2.5\),简单平均得到2,改变了优化目标。
所有微批次应使用同一参数版本;一次累积窗口结束后再归一化、裁剪、更新参数和优化器状态。学习率日程按实际更新计时。累积降低单次前向的容量需求,但不减少每个样本所需的计算。涉及批内统计的层、随机掩码以及浮点归约顺序会影响累积与完整批次的数值一致性。
22.3序列长度及数据装箱
对批内长度 \(\ell_1,\ldots,\ell_B\),统一填充到 \(\ell_{\max}\) 时,填充位置比例为
长度为 \((2,2,6,6)\) 的样本合为一个批次需要24个位置,分为两个等长批次需要16个位置。长度分桶还需保留随机化和任务混合,避免形成固定的长度课程。注意力的序列长度代价与前馈层不同,位置数减少的比例不能直接解释为端到端加速比。
将多条指令装入同一序列时,应维护样本边界、位置语义和回答区域掩码。独立样本通常还要求阻止跨样本注意力;插入终止词元本身不能保证隔离。截断则需要明确保留哪些监督区域,并检查是否系统性地排除了长回答或特定任务。
22.4混合精度及激活重计算
混合精度分别规定权重存储、乘法输入、累加、梯度和优化器状态的格式。损失缩放后的梯度须在裁剪前还原;出现非有限值时,参数更新和优化器时间应遵循一致的跳步规则。数值稳定性的机制与恢复条件见第19章《训练稳定性》。
激活重计算保存部分前向边界,在反向时重新求值区间内部。对 \(L\) 层均匀链式网络,每层一个大小为 \(A\) 的激活单位,每隔 \(k\) 层保存边界时,近似存储为
将 \(k\) 暂视为正实数,导数在 \(k=\sqrt L\) 时为零,得到近似最小值 \(2A\sqrt L\)。若 \(L=64\)、\(A=16\) MiB,选择 \(k=8\) 得到256 MiB,全部保存则为1024 MiB。边界、临时张量和非均匀层会改变实际峰值。
重计算应复用相同的随机函数状态,并避免重复修改持久缓冲。若每层前向代价为 \(F\),反向为 \(2F\),额外重算一次前向会把近似工作量从 \(3LF\) 增加到 \(4LF\)。节省的显存可用于更长序列或更大微批量,但是否降低总时间需测量完整训练步。相关存储构造见(Chen 等 2016)。
22.5分布式微调方案的选用
先区分容量与吞吐瓶颈。完整微调状态能够在每个设备容纳时,可使用分布式数据并行(DDP)让不同副本处理不同样本,以提高全局吞吐;它保留各副本的模型与训练状态,不能直接解决单副本容量不足。参数高效微调减少需要同步的可训练梯度,但冻结基座的存储、前向计算以及必要的反向路径仍然存在。
若瓶颈是优化器状态、梯度或参数的重复存储,应根据占比选择 ZeRO 或全分片数据并行(FSDP)等状态分片方案。可训练参数很少时,优化器状态分片的绝对收益可能较小;基座参数分片能够降低常驻容量,却增加参数收集及临时缓冲。若瓶颈来自长序列激活,应同时评估重计算、微批量和上下文切分,而非仅扩大参数分片组。张量或流水并行可进一步切分模型执行,但需要评估通信、流水气泡和实际设备拓扑。这些机制的计算与通信推导集中于第29章《分布式训练》。
全局有效批量取决于数据并行副本数、微批量、累积次数和有效监督词元数。增加设备后,应明确保持全局批量还是增加每步监督量;两者改变更新次数和学习率日程的方式不同。张量并行成员处理同一批数据时,不能重复计入全局监督词元。各副本监督长度不等时,还需按全局词元数归一化,保证执行策略保持同一训练目标。
例如,固定监督预算和质量要求下,单设备耗时100分钟,两设备耗时60分钟,则时间加速比为 \(\frac{5}{3}\),设备时从100设备分钟增至120设备分钟。该构造算例说明缩短完成时间与降低计算成本是不同目标;若增加设备同时改变监督预算,就不能据此计算同任务加速比。多机选择还应计入数据读取、通信尾部、验证与检查点保存时间。
量化基座、适配器训练与状态分片的组合,需要核对存储格式、可训练与冻结参数的组织、反向传播、优化器和检查点恢复是否相容。支持某一种方法不等于支持所有组合;选择后应对完整更新和恢复过程做数值与资源验证。
22.6微调执行评估
先固定模型、分词器、模板、回答掩码和可训练模块,再用短序列检查前向损失与梯度。随后按目标长度测量一个完整更新窗口,计入优化器首次分配的状态;依据峰值调整微批量、累积步数和重计算范围。每次调整后同时检查损失分母、有效批量和随机状态,保证资源设置与训练目标一致。
比较全参数微调、LoRA 和 QLoRA 及其并行组合时,记录验证质量、全局有效监督词元吞吐、各设备峰值显存、总更新次数、墙钟时间和设备时。分布式执行还应核对数据分片、梯度同步、全局归一化、非有限值跳步与恢复一致性。检查点应包含适配器或完整参数、基座身份、优化器状态、学习率进度、随机状态与数据游标;分片检查点还需明确恢复所需的并行配置或重分片能力。发布时核对适配器合并、量化转换与服务模板造成的质量变化。