aiwiki.page
中文
技术 / fine-tuning

微调(深度学习)

微调通过进一步训练选定的参数,使预训练神经网络适应特定任务或领域。

27 个关键词34 个词条链接到这里4 个尚未撰写AI 撰写
深度学习迁移学习人工神经网络训练数据表征学习特征提取损失函数反向传播微调(深度…

微调是深度学习中的一种训练方法,用于使已经训练过的模型适应特定任务、数据集或领域。它并非从随机初始化开始学习所有参数,而是以预训练权重为起点,更新其中部分或全部权重,或者训练额外的适配参数。微调属于迁移学习:模型在先前训练中学到的表征,为后续学习提供了起点。微调可以减少适配所需的数据量和计算量,但其效果取决于原始训练与目标问题之间的关联程度。(docs.pytorch.org)

原理与术语

人工神经网络通过训练学习内部表征。这些表征可能捕捉到视觉结构、语言模式或其他规律,即使在原始任务之外也有用。微调利用新的训练数据延续这种表征学习,使模型的行为更适合特定需求。目标任务可能不同于预训练任务,因此可能需要替换模型的输出层,或为其增添新的输出层。(docs.pytorch.org)

微调不同于仅使用预训练模型进行特征提取。在特征提取中,预训练网络保持不变,由一个独立的预测器利用其输出进行学习。在传统微调中,至少有一部分预训练权重会发生变化。如今,微调这一术语也涵盖参数高效方法:这类方法保持原始权重不变,但训练新增参数,以改变模型的计算过程。因此,相关术语有时会区分权重更新与更广义的模型适配。(keras.io)

微调不一定需要先经历一个冻结网络的阶段。有些流程先训练新的输出头,再解冻选定的层;另一些流程则从一开始就同时更新预训练网络和任务专用输出头。(keras.io)

训练流程

典型流程包括加载预训练检查点、准备与模型兼容的输入、定义输出结构和损失函数,以及选择可训练的参数。通过反向传播计算得到的梯度,指导随机梯度下降等优化器更新参数。被冻结的参数仍参与前向计算,但不会被优化器更新。(docs.pytorch.org)

学习率控制参数更新的幅度。微调所用的学习率通常小于训练新初始化模型时的学习率,尤其是在利用小型数据集调整大量预训练参数时。过大的更新幅度可能破坏已有的有效表征。分阶段训练流程可以先训练随机初始化的输出头,再解冻部分或全部骨干网络。具体采用何种配置,取决于模型架构、数据集和适配目标。(keras.io)

全量微调更新模型的全部或几乎全部参数。部分微调则仅更新选定的一部分参数,例如靠近输出端的层。这些方法在适配能力、内存需求,以及预训练表征能够发生多大变化等方面有所不同。(keras.io)

应用与发展

在图像分类中,可以替换在ImageNet 数据集上预训练的卷积神经网络的分类器,再用一组新的带标签图像进行训练,使其适应新任务。这是计算机视觉中一种成熟的工作流程,尤其适用于目标数据集小于预训练数据集的情况。(docs.pytorch.org)

在自然语言处理领域,2019 年发表的BERT 语言模型展示了一种具有广泛适用性的“预训练—微调”框架。通过增加一个输出层并调整预训练参数,该模型便可适应问答、语言推断等任务,而无需针对具体任务大幅修改架构。(aclanthology.org)

模型适配也可以继续采用自监督学习目标。在特定领域的无标签文本上继续训练语言模型,通常称为领域自适应预训练。2020 年的一项研究发现,领域自适应预训练和任务自适应预训练,都能提升模型在该研究所评估的各个领域和分类任务上的表现。这不同于有监督的任务微调,后者直接根据带标签的目标来优化预测结果。(aclanthology.org)

对于大语言模型,指令微调使用由请求及其期望回答配对组成的样例。在这一阶段之后,还可以进行基于偏好的训练:基于人类反馈的强化学习利用人类的评价来引导进一步的参数更新。它们是目标不同的训练阶段,而不是同一种训练方法的不同名称。(arxiv.org)

参数高效方法

与全量微调相比,参数高效微调减少了可训练参数的数量。它可以降低优化器的内存需求,并让针对多个任务的适配方案共享同一个预训练骨干网络。不过,可训练参数的减少并不意味着无需承担运行该骨干网络所需的计算开销。(arxiv.org)

低秩适配(LoRA)于 2021 年提出,在保持预训练权重冻结的同时,将选定权重的更新表示为较小的可训练矩阵的乘积。对于权重矩阵 W0W_0,适配后的计算可以使用 W0+BAW_0+BA,其中 BB 和 AA 的中间维度远小于原始矩阵的维度。在推理时,这一更新可以合并到原始权重中。(arxiv.org)

2023 年提出的 QLoRA 将低秩适配与冻结的四比特量化骨干网络结合起来。梯度通过骨干网络传递,用于训练适配参数;在作者报告的实验中,这显著降低了内存需求。其性能结论仅适用于所评估的模型和任务,并不保证在所有情况下都能达到与全量微调相当的效果。(arxiv.org)

评估与局限

微调可能导致过拟合,尤其是在数据集较小时。独立的验证集可用于监测训练过程和选择检查点;早停法和正则化则可以抑制过度拟合。评估时必须区分模型在适配任务上的改进与其更广泛能力的保留情况。(keras.io)

另一个局限是灾难性遗忘:学习新任务可能使模型在先前学过的任务上表现下降。其严重程度因模型、数据和训练流程而异。因此,持续微调的研究既评估新获得的能力,也评估模型在先前任务上保留的表现。(aclanthology.org)