多任务学习与持续学习微调:深入探索大型语言模型的性能与适应性
引言
大型语言模型(LLMs)的出现极大地推动了自然语言处理领域的发展。为了使其在各种特定任务和动态环境中表现出色,微调技术至关重要。本节将深入探讨多任务学习(Multi-task Learning, MTL)和持续学习(Continual Learning, CL)这两种关键的微调范式,它们旨在从不同层面提升 LLMs 的性能、泛化能力和适应性。
多任务学习微调:共享知识,提升泛化与效率
多任务学习(MTL)是一种通过同时训练一个模型来解决多个相关任务的机器学习方法。其核心思想在于利用任务之间的潜在相关性,使得模型能够学习到更丰富、更通用的特征表示,从而在所有任务上实现性能的提升,并提高学习效率。在 LLM 的微调中,MTL 可以有效地增强模型处理各种下游任务的能力,尤其是在标注数据有限的情况下。
多任务学习原理:共享表示、任务特定层与辅助任务机制
MTL 的有效性源于模型在不同任务之间共享知识的能力,这种知识共享主要通过以下机制实现:
-
共享表示 (Shared Representation): 模型架构通常包含共享的底层参数层,这些层负责学习输入数据的通用表示。在 LLM 微调中,预训练的 Transformer 编码器或解码器天然地具备学习通用语言表示的能力,因此常作为共享表示层。通过在多个任务上进行联合训练,这些共享层能够捕获不同任务之间共同的语言模式、语义信息和句法结构。正如 Caruana (1997) 在其开创性工作中指出,当任务之间存在正相关性时,共享表示能够作为一种强大的归纳偏置,引导模型学习更优的特征空间,从而提升在各个任务上的泛化能力。
-
任务特定层 (Task-Specific Layers): 在共享表示层之上,模型会为每个任务配备一些特定的参数层。这些层的作用是将共享的通用表示映射到特定任务的输出空间。例如,对于文本分类任务,任务特定层可能包含一个或多个全连接层,最终输出类别概率;对于机器翻译任务,任务特定层可能是一个额外的解码器层,负责将共享的源语言表示转化为目标语言的文本。任务特定层的引入使得模型能够灵活地适应不同任务的输出需求。
-
辅助任务 (Auxiliary Tasks): 为了进一步提升模型性能,MTL 可以引入与目标任务相关的辅助任务进行联合训练。这些辅助任务的选择通常基于其与目标任务的相关性以及是否能提供额外的监督信号。例如,在进行文本摘要的主要任务时,可以引入语言模型作为辅助任务,迫使模型学习流畅且连贯的文本生成能力。或者,在进行情感分类时,可以引入相关性判断或主题预测等辅助任务,帮助模型学习更细粒度的语义理解。辅助任务的选择和设计是 MTL 中一个重要的研究方向,旨在通过额外的学习信号提升模型在主要任务上的表现。
多任务学习策略:硬参数共享、软参数共享与任务自适应
实现 MTL 的关键在于如何在不同任务之间有效地共享信息。主流的策略包括:
- 硬参数共享 (Hard Parameter Sharing): 这是 MTL 中最经典且参数效率较高的方法。模型的所有任务都共享完全相同的底层参数,通常是模型的绝大部分层(即共享表示层),而每个任务只拥有自己特定的输出层。这种策略能够显著减少模型的参数量,并强制模型学习对所有任务都有用的通用特征。然而,硬参数共享的局限性在于,如果任务之间存在显著的差异或冲突,共享所有参数可能会导致负迁移,即模型在一个任务上的性能提升是以牺牲另一个任务的性能为代价的。因此,硬参数共享更适用于任务之间具有较强相关性的场景。
- 软参数共享 (Soft Parameter Sharing): 与硬参数共享不同,软参数共享允许每个任务拥有自己独立的模型和参数。然而,不同任务的模型之间会通过特定的机制进行信息交换和知识迁移。一种常见的软参数共享方式是通过添加额外的约束或正则化项,鼓励不同任务的模型学习相似的参数表示。例如,Cross-stitch Networks (Misra et al., 2016) 引入了跨任务的线性组合层,允许不同任务的模型在不同层级上进行特征的融合,模型可以学习到在哪些层级共享多少信息。另一种软参数共享策略是让不同任务的模型在训练过程中互相传递中间表示或梯度信息。软参数共享提供了更灵活的任务间知识共享方式,能够更好地适应任务之间的差异,但通常会增加模型的参数量和训练的复杂性。
- 任务自适应 (Task-Adaptive): 这类方法旨在让模型能够根据当前正在处理的任务动态地调整其参数或网络结构。例如,在 Transformer 模型中,可以使用任务特定的注意力机制或注意力头,使得模型在处理不同任务时关注输入序列中不同的部分。T5 模型 (Raffel et al., 2020) 通过将所有 NLP 任务都转化为文本到文本的格式,并使用任务特定的前缀来实现任务自适应。另一种方法是使用条件计算 (Conditional Computation),根据输入或任务标识符动态地激活模型中不同的模块或路径,例如在 Mixture-of-Experts 模型 (Shazeer et al., 2017) 中,不同的专家网络可以专门处理不同的类型的输入或任务。这些任务自适应方法能够更好地平衡任务之间的共享性和特异性,使得模型能够为每个任务学习到最合适的表示和操作,但实现起来通常更具挑战性。
多任务学习实践:数据集构建、任务选择与组合策略
成功地将 MTL 应用于 LLM 微调需要仔细考虑以下几个关键方面:
-
数据集构建与平衡: 需要为每个参与多任务学习的任务准备高质量的标注数据集。数据集的规模和质量直接影响着模型的性能。此外,不同任务的数据集大小可能会存在显著差异,这可能导致模型在训练过程中偏向于数据量较大的任务。为了解决这个问题,可以采用数据增强、过采样、欠采样或者引入与数据量相关的损失权重等策略来平衡不同任务的影响。
-
任务选择与相关性分析: 选择合适的任务是 MTL 的关键。所选任务应该与目标任务具有一定的相关性,并且能够为模型提供有价值的、互补的监督信号。任务之间的相关性可以通过领域知识、预实验分析或者一些自动化的方法 (例如,基于任务之间的梯度相关性) 进行评估。选择不相关的甚至负相关的任务可能会导致性能下降,即所谓的负迁移现象。
-
任务组合与损失加权: 在联合训练多个任务时,需要将每个任务的损失函数组合成一个统一的优化目标。一种简单常用的方法是对所有任务的损失进行加权求和:
L M T L = ∑ i = 1 T λ i L i ( θ s h a r e d , θ i ) \mathcal{L}_{MTL} = \sum_{i=1}^{T} \lambda_i \mathcal{L}_i(\theta_{shared}, \theta_i) LMTL=i=1∑TλiLi(θshared,θi)
其中 T T T 是任务的数量, L i \mathcal{L}_i Li 是第 i i i 个任务的损失函数, θ s h a r e d \theta_{shared} θshared 是所有任务共享的参数, θ i \theta_i θi 是第 i i i 个任务特定的参数, λ i \lambda_i λi 是第 i i i 个任务的损失权重。如何合理地设置这些权重是一个重要的研究问题。可以根据任务的难度、重要性或者数据量进行静态调整,也可以采用更高级的动态加权策略,例如 GradNorm (Chen et al., 2018),它根据每个任务的梯度范数动态地调整损失权重,以平衡不同任务的学习进度,确保模型在所有任务上都能有效地学习。
持续学习微调:应对知识遗忘,适应动态环境
持续学习(Continual Learning, CL),又称终身学习或增量学习,旨在使模型能够在一个接一个地学习新任务或新数据的过程中,保持对先前学习知识的记忆,并能够适应动态变化的环境。在 LLM 的微调场景中,模型可能需要不断地学习新的领域知识、适应新的用户需求或者处理不断演变的数据分布。然而,直接在新的数据上进行微调往往会导致灾难性遗忘,即模型在学习新知识的同时,性能在先前学习的任务上急剧下降。
持续学习挑战:灾难性遗忘问题及其在 LLM 微调中的影响
灾难性遗忘是神经网络在持续学习过程中面临的核心挑战。当 LLM 在学习新的任务或数据时,其参数会为了适应新的数据分布而发生更新,这些更新可能会覆盖掉模型之前学习到的、对先前任务至关重要的参数模式。这种现象源于神经网络的参数是共享的,对新任务的优化可能会干扰先前任务学习到的表示,尤其是在任务之间存在显著差异时。灾难性遗忘是机器学习中稳定性(保持旧知识)和可塑性(学习新知识)之间权衡的体现。
灾难性遗忘对 LLM 的实际应用带来了诸多挑战:
- 需要频繁地重新训练: 如果模型在学习新知识后遗忘旧知识,那么每当有新的数据或任务出现时,就需要从头开始重新训练整个模型,这在计算资源和时间成本上都是巨大的负担,尤其对于参数量巨大的 LLMs 而言。
- 无法适应动态变化的环境: 在许多实际应用中,数据分布或用户需求是不断变化的。如果模型无法持续地学习和适应这些变化,其性能将会随着时间的推移而逐渐下降,限制了模型的长期有效性。
- 难以利用先前学习的知识: 持续学习的目标之一是让模型能够将在先前任务中学到的知识迁移到新的任务上,从而加速学习并提高性能(即正向迁移)。灾难性遗忘阻碍了这种知识的有效利用,使得模型在学习新任务时更像是从零开始。
持续学习策略:正则化、重放、参数隔离等方法原理、优缺点与适用场景
为了克服灾难性遗忘,研究人员提出了各种持续学习策略,这些策略可以大致分为以下几类:
-
基于正则化的方法 (Regularization-based Methods): 这类方法通过在学习新任务时添加额外的约束或惩罚项到损失函数中,来限制模型参数的改变,从而保留先前学习到的知识。
-
弹性权重巩固 (Elastic Weight Consolidation, EWC) (Kirkpatrick et al., 2017): EWC 的核心思想是识别模型在学习先前任务时重要的参数,并在学习新任务时限制这些重要参数的改变。参数的重要性通过计算先前任务损失函数关于每个参数的 Fisher 信息矩阵来估计。Fisher 信息矩阵的对角元素反映了参数对模型输出的敏感程度。EWC 的损失函数在学习新任务 B B B 时变为:
L E W C ( θ ) = L B ( θ ) + ∑ i λ 2 F i ( θ i − θ A , i ∗ ) 2 \mathcal{L}_{EWC}(\theta) = \mathcal{L}_{B}(\theta) + \sum_{i} \frac{\lambda}{2} F_i (\theta_i - \theta_{A, i}^*)^2 LEWC(θ)=LB(θ)+i∑2λFi(θi−θA,i∗)2
其中 L B ( θ ) \mathcal{L}_{B}(\theta) LB(θ) 是当前任务 B B B 的损失函数, θ \theta θ 是当前模型的参数, θ A ∗ \theta_{A}^* θA∗ 是模型在先前任务 A A A 上学习到的最优参数, F i F_i Fi 是参数 i i i 的 Fisher 信息, λ \lambda λ 是一个控制正则化强度的超参数。EWC 的优点是实现相对简单,不需要存储先前任务的数据。然而,其性能可能受到 Fisher 信息估计的准确性和任务之间相关性的影响。
-
Synaptic Intelligence (SI) (Zenke et al., 2017): SI 类似于 EWC,但它基于参数在学习先前任务过程中对损失减少的贡献来估计其重要性。SI 认为,在先前任务中对损失函数变化贡献较大的参数更重要,应该在学习新任务时尽量保持稳定。SI 通过维护一个与每个参数相关的“重要性”累积值,并在学习新任务时惩罚参数值的剧烈变化。SI 的更新规则涉及到参数在学习过程中的梯度和更新量,旨在减缓那些在过去学习中发挥重要作用的突触(参数)的变化。
-
-
基于重放的方法 (Replay-based Methods): 这类方法通过保留一部分先前任务的数据(或生成伪数据),并在学习新任务时与新任务的数据混合进行训练,从而让模型能够“回忆”起先前学习的知识。
-
经验重放 (Experience Replay): 这是最直观的重放方法。模型在学习每个任务后,会随机选择一部分具有代表性的样本存储到一个经验回放缓冲区中。在学习新任务时,模型会从当前任务的数据和回放缓冲区中的数据中进行采样,混合进行训练。这种方法能够有效地缓解灾难性遗忘,因为它允许模型在学习新知识的同时回顾旧知识。然而,经验重放需要存储先前任务的数据,这可能存在存储容量限制和隐私问题。
-
生成重放 (Generative Replay) (Shin et al., 2017): 为了解决存储先前任务真实数据的问题,生成重放方法使用一个生成模型(例如,变分自编码器或生成对抗网络)来学习先前任务的数据分布,并在学习新任务时,通过生成模型生成伪数据进行重放训练。这种方法可以减少对真实数据的存储需求,但也引入了训练生成模型的额外开销,并且生成数据的质量直接影响着重放的效果。
-
-
基于参数隔离的方法 (Parameter Isolation Methods): 这类方法为每个任务分配模型中不同的参数子集,从而避免不同任务之间的参数相互干扰。
-
硬参数隔离: 为每个任务分配完全独立的参数集。当学习一个新任务时,模型会增加新的参数,而先前任务的参数保持不变。这可以通过创建多个并行的模型或者在模型内部划分不同的参数模块来实现。这种方法的优点是可以完全避免遗忘,但会显著增加模型的参数量,限制了模型能够学习的任务数量。
-
动态扩展 (Dynamic Expansion) (Rusu et al., 2016, Progressive Neural Networks): Progressive Neural Networks (PNNs) 是一种典型的动态扩展方法。当学习一个新任务时,PNNs 会向模型添加一个新的“列”(即一组新的网络层),这个新的列可以利用先前任务学习到的特征,通过与先前列的侧向连接实现知识迁移。先前任务的列在学习新任务时保持冻结,从而避免了遗忘。PNNs 能够实现知识的正向迁移,但模型容量会随着学习任务的增加而线性增长。
-
子空间学习: 这类方法将每个任务的学习限制在模型参数空间的一个特定子空间内。例如,可以使用掩码 (Masking) 的方式,为每个任务学习一个稀疏的参数掩码,只有被激活的参数才参与当前任务的学习 (Mallya et al., 2018)。另一种方法是使用正交化约束,使得不同任务学习到的参数子空间尽可能地正交,从而减少相互干扰 (Farajzadeh et al., 2020)。
-
持续学习评估指标与 Benchmark 数据集
评估持续学习模型的性能需要使用特定的指标来衡量其在学习新知识的同时保持旧知识的能力。常用的评估指标包括:
- 平均准确率 (Average Accuracy): 模型在学习完所有任务后,在所有任务上的平均准确率。
- 遗忘率 (Forgetting Rate): 衡量模型在学习新任务后,在先前任务上的性能下降程度。
- 学习效率 (Learning Efficiency): 衡量模型学习新任务所需的时间或数据量,以及是否能够利用先前学习的知识加速新任务的学习 (即正向迁移)。
- 前向知识转移 (Forward Transfer): 衡量学习先前任务的知识是否能够帮助模型更快或更好地学习新任务。
- 后向知识转移 (Backward Transfer): 衡量学习新任务是否能够意外地提升模型在先前学习任务上的性能。
为了系统地评估持续学习策略,研究人员构建了多个 Benchmark 数据集,这些数据集通常包含一系列按顺序呈现的任务。在 LLM 微调的背景下,一些常用的持续学习 Benchmark 包括:
- 顺序文本分类任务: 将不同的文本分类数据集(例如,情感分析、主题分类、问题类型分类等)按照一定的顺序呈现给模型进行学习。
- 多领域语言建模: 让模型按顺序学习来自不同领域或语料库的文本数据,例如先学习新闻语料,再学习科学文献。
- 增量式问答: 模型需要在一个不断增长的知识图谱或问答数据集上进行学习,每次学习都引入新的问题和答案。
总结
多任务学习和持续学习是提升 LLM 微调性能和适应性的关键技术。多任务学习通过共享知识和并行学习多个相关任务来提高模型的泛化能力和效率。持续学习则通过各种策略来克服灾难性遗忘,使得 LLM 能够在不断学习新知识的过程中保持对先前知识的记忆,并适应动态变化的环境。随着 LLM 在实际应用中面临越来越复杂的场景和不断变化的需求,对这两种微调范式的深入研究和有效应用将是未来提升 LLM 智能水平的关键。
参考文献
- Caruana, R. (1997).
Multitask Learning | Machine Learning
Multitask Learning - ResearchGate
Multitask Learning - Carnegie Mellon University - Chen, Z., Liu, Z., & Lin, D. (2018).
GradNorm: Gradient Normalization for Adaptive Loss Balancing in Deep Multitask Learning
GradNorm: Gradient Normalization for Adaptive Loss Balancing in Deep Multitask Networks
GradNorm: Gradient Normalization for Adaptive Loss Balancing in… - Farajzadeh, A., Ghasemzadeh, H., & Razavi, S. N. (2020).
未找到公开链接,可尝试通过学术数据库(如IEEE Xplore)或会议官网查找。 - Kirkpatrick, J., et al. (2017).
Overcoming catastrophic forgetting in neural networks (可通过PNAS官网访问) - Mallya, A., & Lazebnik, S. (2018).
Packnet: Adding multiple tasks to a single network by iterative pruning (可通过arXiv访问) - Misra, I., et al. (2016).
Cross-stitch networks for multi-task learning (可通过arXiv访问) - Raffel, C., et al. (2020).
Exploring the limits of transfer learning with a unified text-to-text transformer (可通过arXiv访问) - Rusu, A. A., et al. (2016).
Progressive neural networks (可通过arXiv访问) - Shazeer, N., et al. (2017).
Outrageously large neural networks: The sparsely-gated mixture-of-experts layer (可通过arXiv访问) - Shin, H., et al. (2017).
未找到公开链接,可尝试通过会议官网(NIPS)或相关数据库查找。 - Zenke, F., et al. (2017).
Continual learning through synaptic intelligence - An Overview of Multi-Task Learning in Deep Neural Networks