ChatGPT要怎么微调?MIT韩松团队新作告诉你!
新智元报道
新智元报道
来源:CVHub
作者:派派星
编辑:好困
【新智元导读】众所周知,迁移学习对于基础模型适应下游任务很重要。然而,对于许多的私有基础模型,数据所有者必须与模型所有者分享他们的数据以微调模型,这是非常昂贵的,并容易引起隐私问题(双向的,一个怕泄露模型,一个怕泄露数据)。此外,对大型基础模型进行微调是一项计算密集型的任务,这对于大多数下游用户来说是不现实的。
Code: https://github.com/mit-han-lab/offsite-tuning
大型基础模型在各种任务中表现出卓越的性能,包括自然语言处理、计算机视觉和语音识别。通过对大量数据的预训练,这些模型可以学习对广泛的下游任务有用的一般表示。尽管一些基础模型能够执行零样本学习(zero-shot)或者语境学习(in-context learning),迁移学习(即微调)仍然是一种流行的和稳健的方法,以适应特定任务。
由于下述两个原因,为下游任务调优基础模型是困难的,如上图所示。
首先,训练大型基础模型通常需要大量的计算和数据,从而导致较高的训练成本(例如,训练GPT-3预计需要超过400万美元,训练Chat-GPT更是超过了1200万美元)。因此,训练后的参数通常是专有的,而是不公开的。这意味着下游用户必须与模型所有者共享他们的带有标签的数据来对模型进行微调(OpenAI Fine-tuning API [1])。这可能会代价高昂,并引发隐私问题,使有价值的带标签数据处于风险之中。
其次,即使下游用户可以拿到预先训练的权值,在本地执行微调也相当昂贵,也很困难。基础模型通常有大量的参数。例如,GPT-3模型有1750亿个参数,需要350GB的GPU内存来存储参数和执行推理,更不用说训练了。苛刻的硬件需求使得大多数终端用户不可能执行迁移学习。
因此,亟需一个保护隐私和更高效的框架来微调基础模型。
为了解决上述挑战,论文提出了Offsite-Tuning(场外微调),这是一种保护隐私和高效的迁移学习框架,该框架可以使基础模型迁移到下游任务,而无需访问完整的模型权重。如上图所示,Offsite-Tuning的流程如下:
模型所有者向数据所有者发送一个适配器(adapter)和一个仿真器(emulator)
数据所有者在仿真器的帮助下,利用下游数据在适配器上进行微调
数据所有者将微调后的适配器返回给模型所有者,模型所有者将其插入(plug-in)到整个模型中,从而为下游用户创建一个经过适应的基础模型。
其中,适配器用于使用少量参数对任务特定的知识进行编码,而压缩仿真器模拟完整模型的其余部分的行为,并为微调适配器提供近似的梯度。
因此,Offsite-Tuning有几大贡献:
Offsite-Tuning保留了数据所有者的隐私,因为他们不需要直接共享他们的业务数据。
Offsite-Tuning保护了基础模型所有者的模型版权,因为完整的模型权重不共享,并且数据所有者训练的仿真器是有损的,性能高度下降。
Offsite-Tuning也比需要访问完整模型权重的现有微调方法更节省资源,因为通过使用压缩仿真器对完整模型进行微调而不需要完整的模型。
论文在一系列语言和视觉基础模型上评估了Offsite-Tuning的性能,包括GPT-2、OPT、BLOOM、CLIP和EVA。结果表明:
Offsite-Tuning在多个下游任务上可以获得与完整模型权重微调相当的结果,同时保护隐私和资源效率。实现高达6.6×的速度提升和5.6×的内存减少。
Offsite-Tuning还可以对以前在单个GPU上无法实现的模型进行微调,如OPT-6.7B和BLOOM-7.1B。
总的来说,Offsite-Tuning是一个实用的框架,可以安全有效地将基础模型应用于更广泛的实际应用中。
Privacy requirements
论文在迁移学习设置中考虑了双方的隐私性:数据所有者不能与模型所有者共享其标记的训练数据,而基础模型所有者不能与数据所有者共享他们的模型。论文需要找到一种方法来对数据所有者的数据进行调优模型,而不需要访问完整的模型权重。
Settings
为了评估该方法的性能,论文定义了几个度量标准。为了不失一般性,这里将使用语言模型来进行定义。
是指预先训练的基础模型在不进行微调时,在直接运行下游任务的性能()。 是指在对下游数据集进行微调时的小替代模型的性能() 是指使用来自替代模型的插入式训练权重的预训练基础模型的性能() 能是指在下游数据集上直接微调基础模型而不考虑隐私性时的性能()
Zero-shot performance < Plug-in performance: 表明调优有效地提高了在特定的下游数据集上的性能(否则,就不需要进行调优)。 Emulator performance < Plug-in performance: 显示基础模型仍然在任务中生效(否则,下游用户将很乐意只使用微调后的仿真器)。 Plug-in performance ≈ Full fine-tuning performance:这样用户就不会为数据隐私牺牲太多的性能
Transformer架构已被广泛应用于各种基础模型中,如语言和视觉模型。在本讨论中,论文将重点讨论针对深度transformer骨干的适配器的设计,它可以很容易地扩展到其他模型,如卷积神经网络(CNNs)。
Emulator Compression
仿真器的使用是为了提供粗糙的梯度方向来更新适配器,同时保持与原始冻结组件的相似性。仿真器不能太精确,因为这将揭示关于原始模型的信息。此外,更小的仿真器大小会为下游用户提供更高效的微调过程。因此,论文的目标是在这三个需求之间找到一个平衡。
实验
论文首先评估参数量小于20亿个的中型语言模型的offsite-tuning,包括GPT-2-XL和OPT-1.3B。具体来说,GPT-2-XL有48层和16亿个参数,而OPT-1.3B有24层。上图是实验结果,可以证明offsite-tuning可以有效地适应中型语言模型(少于20亿个参数),同时保持高水平的性能,因为plug-in的性能与全模型的微调性能相当,而仿真器的性能明显较低(保证基础模型的所有权)。
Large models
接着,论文评估了具有超过60亿个参数的大型语言模型的offsite-tuning,包括32层的OPT-6.7B和30层的BLOOM-7.1B。由于计算资源有限,论文无法在这些模型上执行完整的模型微调或仿真器蒸馏。因此,论文比较了offsite-tuning的性能和zero-shot的性能,并直接使用layer-drop的方法得到仿真器。从上表可以看出中,论文发现plug-in性能明显优于zero-shot性能,而仿真器性能和plug-in性能之间存在明显的差距。这些发现表明,offsite-tuning可以有效地适应大型语言模型,同时保护模型和数据所有者的隐私。
论文进一步评估了两种最先进的视觉基础模型的offsite-tuning:CLIP和EVA。这两种模型都使用了具有10亿个参数的ViT-G骨干。如上表所示,论文发现offsite-tuning在保持高水平性能的同时有效地适应了视觉模型。plug-in的性能与全模型的微调性能相当,而仿真器的性能仅仅略低。这可能是由于在这些数据集上使用大视觉模型和小视觉模型之间的差异并不显著,因此仿真器的性能并不显著低于插件的性能。作者预计,offsite-tuning将在更具挑战性的视觉任务上产生更重要的结果
消融实验
Position And Aumber Of Adaptor Layers
在具有相同数量的可训练层数的情况下,对语言模型的顶层和底层同时进行微调比只微调顶层或底层要有效得多。
compression methods for the emulator
effect of emulator distillation
仿真器的蒸馏提高了offsite-tuning的plug-in性能,同时保持完整的模型隐私。上图分数是WikiText-2上的验证困惑度perplexities(困惑度越低越好)
Efficiency
微调加速和峰值内存节省
参考资料:
[1]https://beta.openai.com/docs/guides/fine-tuning
微信扫码关注该文公众号作者