前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >澳门大学 | 提出神经元级高效微调方法:NeFT,秒杀LoRA,性能超全参微调(FPFT)!

澳门大学 | 提出神经元级高效微调方法:NeFT,秒杀LoRA,性能超全参微调(FPFT)!

作者头像
ShuYini
发布2024-04-12 20:56:55
1890
发布2024-04-12 20:56:55
举报

引言

大模型由无数的神经元组成,不同的神经元有不同的功能,然而研究发现,并非不是所有的神经元在不同数据集上都是活跃的,而且神经元的稀疏性与特定任务能力呈正相关。为此,本文作者提出了一种神经元级高效微调方法:NeFT,它将参数训练粒度细化到单个神经元级别,性能上超过了全参数微调(FPFT)和高效参数微调(PEFT),开辟了大模型微调新方向。

https://arxiv.org/pdf/2403.11621.pdf

背景介绍

神经元是构成大模型的基本元素,随着模型规模的增长,神经元展现出了出不同的行为,模型泛化能力也逐渐的提高。其中,「模型的一些内部知识可能会分布在众多的神经元中,同时有相当比例的神经元可能在不同的数据集中都不会被触发」。这种稀疏性近期已被证实,尤其是在更大的模型中尤为明显,为此,很多研究人员基于该结论来对大模型进行压缩剪枝,提升模型推理效率。

在大模型的应用方面,为了能够让大模型来适配特定的任务,通常需要对基础模型进行全参数微调(SFT)。然而,随着研究的深入,人们逐渐引入了参数高效微调(PEFT),例如:LoRA系列微调算法,该类方法主要基于层级模块化进行参数选择,旨在减少模型训练中的训练参数。

与以上方法不同,本文作者基于对模型可解释研究的理解,提出了神经元级别的模型微调方法:NeFT,该方法可以识别出模型中较为敏感的神经元,然后再对相关参数进行更新来提高模型性能。同时,为了在翻译和摘要等更复杂的任务中识别敏感神经元,作者还设计了一种评估SFT前后神经元相似性的方法,将低相似性的神经元视为敏感神经元。实验结果表明:NeFT超越了全参数微调模型。

大模型高效微调

大模型高效微调(PEFT)技术旨在在保持预训练模型性能的同时,减少可训练参数的数量和计算复杂性,特别是针对大型预训练模型的训练成本问题。PEFT可以是经验性地选择特定的层或模块进行微调,有时只训练单个层就能超越全参数微调的效果。然而,这种经验性的选择和逐层搜索非常耗时,而最近的进展集中在利用外部模块来更新所有层级参数,其中主要代表方法有适配器(Adapter)、LoRA、稀疏微调(Sparse Fine-Tuning)等方法。

「适配器(Adapter)」 目标是在模型中「插入少量参数」,然后在微调下游任务时只训练这些参数,而保持预训练模型的原始参数不变。这样做使得可训练参数更加高效,并确保原始知识不会被遗忘。

「LoRA」 该方法在学术研究和工业应用中都非常流行的方法。LoRA的主要概念是「将一个大的权重矩阵分解为两个低秩矩阵」,显著减少了可训练参数的数量。LoRA的有效性取决于所选的秩和应用的具体结构。尽管LoRA引入的两个低秩矩阵增加了模型的架构,但它们在推理过程中不会引入额外的计算成本,因为它们与原始结构并行工作。LoRA通常应用于影响线性或多头注意力机制的计算。

「稀疏微调(SFT)」 与添加外部模块(如适配器或LoRA)的方法不同,稀疏微调通过引入一个初始步骤来确定关键参数。这个过程利用各种度量,如Fisher信息或L0正则化,来确定哪些参数是必要的。然后在后续的训练阶段特别针对这些参数进行训练。

NeFT

基于对先前模型高效微调算法的理解,本文作者不仅仅关注整个模型或模型的某些层,而是进一步细化了参数训练的粒度,将注意力集中在个别神经元上,从而实现了更为精确和计算高效的模型更新。提出了Neuron-Level Fine-Tuning (NeFT) 新型微调方法,如下图所示:

NeFT主要分为「三个步骤」,其中包括模型准备、神经元选择、神经元微调。

「模型准备」:首先需要准备一个初始模型(

M_{Org}

)和一个针对特定任务全参微调后的模型(

M_{FT}

)。

「神经元选择」:通过计算

M_{Org}

M_{FT}

中对应位置的神经元之间的余弦相似度,来识别对任务最敏感的神经元。选择余弦相似度最低的

k

个神经元进行进一步训练。为了更好地理解NeFT的工作原理,本文作者将神经元分为三类

  • 「强烈受影响的神经元」:这些神经元在微调过程中表现出很高的敏感度,并且在参数利用模式中引起了显著的变化。
  • 「被抑制的神经元」:在强烈受影响的神经元中,有些神经元的排名下降,被归类为被抑制的神经元。
  • 「间接受影响的神经元」:在微调过程中,某些未直接参与训练的神经元也会受到影响,这些神经元被称为间接受影响的神经元。

「神经元微调」:在训练过程中,通过梯度掩码技术屏蔽非敏感神经元的梯度更新,确保只有选定的敏感神经元被更新。这意味着在训练过程中,只有一小部分参数会被修改,而其余参数保持与全参数微调一致。

整体算法流程如下所示:

实验结果

「Vs 全参微调」 如下图所示,NeFT通过训练少量敏感神经元,实现了优于全参数微调的效果,而且还提供了对神经元分析的深入见解。

「复杂任务表现」 如下图,NeFT在翻译和摘要等复杂任务上的性能表现也证明了其有效性。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-04-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 AINLPer 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 引言
  • 背景介绍
  • 大模型高效微调
  • NeFT
  • 实验结果
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档