大型语言模型的架构不仅是实现上的细节;它深刻影响着我们进行微调的方式以及能够实际期待的结果。由于我们已确定为特定需求调整预训练模型的必要性,因此理解其内在结构有助于我们选择有效的策略并预见困难。
模型规模:参数与资源
最直接的架构考量是模型的体量大小,通常以参数数量衡量。像GPT-3(1750亿参数)或PaLM(5400亿参数)这样的模型,相较于早期模型代表了显著的进步。
- 计算成本: 全量微调涉及更新所有模型参数,需要大量的计算资源。训练一个拥有数十亿参数的模型需要多张高端GPU(例如A100或H100)和相当长的训练时间,通常是数天或数周。存储梯度、优化器状态(例如,Adam优化器状态通常需要参数本身两倍的内存)以及反向传播期间的激活所需的内存占用,很容易超出单个设备的容量。
- PEFT的动因: 全量微调的高昂成本直接促成了参数高效微调(PEFT)方法的研发与应用。LoRA、适配器模块或提示词微调(我们将在第四章详细讲解)等技术,旨在通过仅修改总参数的一小部分来调整模型,从而大幅降低内存和计算需求。
- 能力与适应性: 更大的模型通常拥有更强的能力来学习复杂模式,并存储预训练阶段获得的大量知识。这种能力在微调期间可能是有益的,有望更好地适应复杂任务。然而,如果未仔细正则化,其规模也使得它们在较小的微调数据集上更容易出现过拟合,并且优化过程本身可能更复杂。
核心Transformer组件
微调主要修改Transformer架构核心构建块内的权重:
- 注意力机制: 多头自注意力层允许模型在计算给定词元的表示时,权衡输入序列中不同词元的重要性。微调会调整这些注意力权重(WQ, WK, WV, WO),使模型能够学习文本中特定任务的关系和依赖。例如,针对摘要的微调可能使模型更强烈地关注突出句,而针对问答的微调则可能调整注意力以关注相关上下文段落。
- 前馈网络(FFNs): 每个Transformer层都包含逐位置的前馈网络,通常由两次线性变换和一个非线性激活函数(例如ReLU、GeLU、SwiGLU)组成。这些网络独立处理词元表示,并构成了模型参数的很大一部分。微调会更新这些线性层的权重,使模型能够为目标任务改进预训练期间学习到的特征表示。
- 层归一化: LayerNorm或RMSNorm等层通过归一化各层内的激活值来稳定训练过程。虽然它们的主要作用是稳定,但在全量微调期间,其缩放和偏移参数(γ和β)通常也会得到更新,细微地促进了调整过程。
- 嵌入层: 初始输入嵌入层和位置编码层将词元及其位置映射到向量表示。全量微调通常也会更新这些嵌入,使模型能够为下游任务略微调整初始表示空间。
模型的深度(层数)和宽度(隐藏维度大小)决定了这些组件中参数的总数,并影响模型的表示能力和计算需求。
架构变体及其影响
尽管核心Transformer结构普遍存在,但仍有一些变体影响微调:
- 仅解码器架构(例如GPT系列、Llama、Mistral): 这些模型使用一堆Transformer解码器块,本质上适合文本生成任务。微调通常涉及以“提示-补全”格式提供序列(例如,
指令:[X]、输入:[Y]、输出:[Z]),并自回归地训练模型以预测下一个词元,更新参数以提高目标任务或风格的性能。
- 编码器-解码器架构(例如T5、BART): 这些模型具有独立的编码器和解码器堆栈。编码器处理输入序列,解码器则根据编码器的表示及其自身先前生成的词元生成输出序列。它们自然地适用于翻译、摘要或文本转换等序列到序列任务。微调可以涉及更新编码器和解码器中的参数,或有时根据任务和效率目标,仅将更新集中在某一部分。
- 注意力变体: 尽管标准多头注意力普遍存在,但研究也在审视稀疏注意力或线性注意力等替代方案以提高效率,尤其是在长序列情况下。如果预训练模型使用了此类变体,微调实现需要考虑它们,尽管更新注意力相关权重的基本原则保持不变。
将架构与微调策略关联起来
理解架构使我们能够更好地理解不同的微调方法:
- 全量微调: 直接对应于更新嵌入层、注意力机制、FFN和归一化层中几乎所有权重,贯穿模型的整个深度。其有效性取决于模型的容量(大小、深度)相对于微调数据集的复杂性和大小。
- 参数高效微调(PEFT): 这些方法策略性地修改或增加架构,以最小化可训练参数的数量。例如:
- 适配器: 在每个Transformer层内插入小的、新的类似FFN的模块,同时冻结原始权重。
- LoRA(低秩适应): 通过将变化表示为两个更小的低秩矩阵的乘积,修改权重矩阵(通常在注意力或FFN中)的更新过程,大幅减少可训练参数。
- 提示词/前缀微调: 保持整个基础模型冻结,仅训练添加到输入或隐藏状态的新的连续嵌入向量。
下图说明了全量微调和PEFT方法之间参数更新的区别。
参数更新策略。全量微调(左)更新几乎所有参数。PEFT方法(右)冻结基础模型的大部分参数,并引入少量可训练参数(例如适配器或低秩矩阵),由虚线和蓝色块表示。
总而言之,预训练阶段的架构选择、模型规模、注意力与前馈网络等特定组件,以及整体布局(仅解码器对比编码器-解码器),不仅仅是实现细节。它们定义了微调操作的根本,决定了资源需求、潜在有效性以及全量微调对比参数高效方法等不同调整技术的适用性。对这些架构因素的扎实理解,对于为专门应用调整LLM时做出明智决策是必要的。