ChatGPT要怎么微调?MIT韩松团队新作告诉你!

ChatGPT要怎么微调?MIT韩松团队新作告诉你!

新智元报道

来源:CVHub

作者:派派星

编辑:好困

【新智元导读】众所周知,迁移学习对于基础模型适应下游任务很重要。然而,对于许多的私有基础模型,数据所有者必须与模型所有者分享他们的数据以微调模型,这是非常昂贵的,并容易引起隐私问题(双向的,一个怕泄露模型,一个怕泄露数据)。此外,对大型基础模型进行微调是一项计算密集型的任务,这对于大多数下游用户来说是不现实的。

本文中, 韩松团队提出了 一个能够保护隐私且高效的迁移学习框架——Offsite-Tuning,可以将数十亿级参数的基础模型迁移到下游数据,而无需访问完整模型。

Paper: https://arxiv.org/pdf/2302.04870v1.pdf

Code: https://github.com/mit-han-lab/offsite-tuning

在 Offsite-Tuning 中,模型所有者将轻量级适配器和有损压缩仿真器发送给数据所有者,数据所有者在仿真器的协助下对适配器进行下游数据的微调。随后,经过微调的适配器返回给模型所有者,模型所有者将其插入(plug-in)完整模型以得到迁移的模型。

Offsite-Tuning 保护了双方的隐私,并且比现有的需要访问完整模型权重的微调方法更具计算效率。论文在各种大型语言和视觉基础模型上证明了 Offsite-Tuning的有效性。 Offsite-Tuning 可以达到与基于全模型 Fine-Tuning 相当的精度,同时又能保护隐私和效率,并实现了 6.5 倍的速度提升和 5.6 倍的内存减少。

研究背景

Comparing existing fine-tuning approa ches

由于下述两个原因,为下游任务调优基础模型是困难的,如上图所示。

首先, 训练大型基础模型通常需要大量的计算和数据,从而导致较高的训练成本 (例如,训练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

给定由 参数化的基础模型 和下游数据集 ,利用下游数据集对模型进行微调,得到 , , 。为了实现私有和高效的迁移学习,论文希望 找到一个替代模型 (也称为仿真器),它(明显)比 更小、更弱,这样与下游用户共享 就不会威胁到基础模型的所有权。然后,数据所有者在自己的数据集上优化替代模型,生成 。 论文希望将训练好的权重 插入(Plug-in)原来的模型(即 )就可以与直接优化数据集上的 (即 )一样,实现了类似的性能,而不需要访问 本身。

Metrics

为了评估该方法的性能,论文定义了几个度量标准。为了不失一般性,这里将使用语言模型来进行定义。

是指预先训练的基础模型在 不进行微调时,在直接运行下游任务的性能 ( )。

是指在对下游数据集进行微调时的 小替代模型的性能 ( )

是指 使用来自替代模型的插入式训练权重的预训练基础模型的性能 ( )

能是指在下游数据集上直接微调基础模型而不考虑隐私性时的性能 ( )

Offsite-Tuning的核心概念是,下游用户可以根据其私有数据进行基础模型微调,而无需直接访问完整模型。 论文通过使用仿真器生成模拟梯度来实现这一点,可以利用仿真器来近似更新适配器。

为了证明该方法的有效性,论文要求:

Zero-shot performance < Plug-in performance: 表明调优有效地提高了在特定的下游数据集上的性能(否则,就不需要进行调优)。

Emulator performance < Plug-in performance: 显示基础模型仍然在任务中生效(否则,下游用户将很乐意只使用微调后的仿真器)。

Plug-in performance ≈ Full fine-tuning performance:这样用户就不会为数据隐私牺牲太多的性能

方法

Framework Overview

为了达到期望的性能,论文将基础模型 ,分为两个不同的组件: 一个小的、可训练的适配器,表示为 ,用于下游任务迁移, 模型其余部分记为 ,其参数要保持固定。具体来说, 可以定义为 和 的concat,这样 。 为了保护基础模型的所有权和提高效率,对参数固定的组件应用有损压缩,得到一个仿真器,表示为 。下游用户得到适配器和仿真器的组合,并能够通过更新进行模型调优。更新后的适配器表示为,将返回给上游基础模型所有者并集成到原始模型中,以在下游数据集上实现优越的性能。 需要注意的是,由于有损压缩,使用的用户也无法达到可接受的性能水平,即使进行微调。因此,在此过程中,模型所有权的完整性不会受到损害,而压缩的结果是提高了整体效率。

所以, 确定 、 、 的适当组合是一项重要的任务。直观地说, 仿真器 应该与原始参数固定组件 具有相似性,以便在对下游数据集进行微调时,为更新适配器提供适当的梯度方向。同时, 仿真器不能过于精确,因为这将消除下游用户对基础模型的需求。

接下来,论文将深入研究 、 、 的设计,并评估不同的设计如何影响上述指标。

Adapter Selection

Transformer架构已被广泛应用于各种基础模型中,如语言和视觉模型。在本讨论中,论文将重点讨论针对深度transformer骨干的适配器的设计,它可以很容易地扩展到其他模型,如卷积神经网络(CNNs)。

论文选择了基础模型的一个小子集作为适配器,它可以在各种下游数据集上进行训练。由于只更新了模型的一个子集,因此适配器必须可推广到不同的下游任务。 研究表明,transformer的不同层,从浅层到深层,编码不同层次的特征抽象,更新层的选择(适配器的选择)会影响迁移学习性能。为了覆盖广泛的任务, 论文选择在适配器中同时包括浅层和深层,从而形成了一个三明治设计, ? ? ( 浅层,深层作为适配器可训练,中间作为仿真器压缩固定)。实验表明,这种适配器设计可以很好地用于各种下游任务,并且优于只微调最后几个层(即微调 ? )的常见做法。

Emulator Compression

仿真器的使用是为了提供粗糙的梯度方向来更新适配器,同时保持与原始冻结组件的相似性。仿真器不能太精确,因为这将揭示关于原始模型的信息。此外,更小的仿真器大小会为下游用户提供更高效的微调过程。因此,论文的目标是在这三个需求之间找到一个平衡。

为了实现这种平衡,论文使用基于layer drop-based的压缩方法。具体来说,论文 均匀地从冻结参数的组件 中删除一个层的子集,并使用剩余的层作为仿真器 。论文发现 在仿真器中包含冻结部分的第一层和最后一层总是有益的(如上面的算法图所示)

此外,为了在保持近似精度的同时实现更高的压缩比,在原始组件 的监督下,论文将知识蒸馏应用到layer-dropped仿真器 上。蒸馏过程采用均方误差(MSE)作为损失函数,如下式所示:

式中, 是前一层 所产生的第i个输入样本的隐藏表示,N是训练前数据集中的样本数。 论文发现,适当的蒸馏将有助于压缩模型与直接微调完整模型保持相似的精度。

实验

Results of Language Models

按照上文所述,Full ZS表示基础模型未微调在下游任务的性能,FT表示基础模型进行微调在下游任务的性能,表示模型Emulator ZS是压缩的仿真器的性能,OT Emulator是训练后的仿真器的性能,OT Plug-in是训练后的仿真器插入基础模型的性能。四者的目标关系见上文。

Medium-sized models

论文首先评估参数量小于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可以有效地适应大型语言模型,同时保护模型和数据所有者的隐私。

Results of Vision Models

论文进一步评估了两种最先进的视觉基础模型的offsite-tuning:CLIP和EVA。这两种模型都使用了具有10亿个参数的ViT-G骨干。如上表所示,论文发现offsite-tuning在保持高水平性能的同时有效地适应了视觉模型。 plug-in的性能与全模型的微调性能相当,而仿真器的性能仅仅略低。这可能是由于在这些数据集上使用大视觉模型和小视觉模型之间的差异并不显著,因此仿真器的性能并不显著低于插件的性能。作者预计,offsite-tuning将在更具挑战性的视觉任务上产生更重要的结果

消融实验

Position And Aumber Of Adaptor Layers

适配器层的数量和位置的消融研究

在具有相同数量的可训练层数的情况下, 对语言模型的顶层和底层同时进行微调比只微调顶层或底层要有效得多。

compression methods for the emulator

layer-drop方法在两个方面具有优越性:(1)在减少仿真器大小的同时,有效地保持了plug-in性能;(2)在插件性能和仿真器性能之间产生了差距,保护了模型所有者的隐私。

effect of emulator distillation

仿真器的蒸馏提高了offsite-tuning的plug-in性能,同时保持完整的模型隐私。上图分数是WikiText-2上的验证困惑度perplexities(困惑度越低越好)

Efficiency

微调加速和峰值内存节省

offsite-tuning的关键效率优势是,它不仅可以减少可训练参数的数量,而且还可以减少在微调过程中需要放置在设备上的参数的总数。这将显著提高微调吞吐量和减少内存占用空间。为了证明offsite-tuning的有效性,论文进行了实验,并将结果呈现在上表中。结果表明,当offsite-tuning与LoRA结合时,论文实现了令人印象深刻的6.5倍的加速和5.6倍的内存使用减少。这使得offsite-tuning成为在资源约束设备上微调大型基础模型的一个有吸引力的解决方案。

总结

论文提出了offsite-tuning,一种可以保护隐私和有效的迁移学习框架,该框架可以使基础模型适应于下游任务,而不需要访问完整的模型参数。offsite-tuning对于数十亿参数的语言和视觉基础模型是有效的。offsite-tuning使用户能够有效地定制基础模型,而无需担心数据隐私和模型隐私。

注:韩松教授毕业于清华大学电子系本科,斯坦福大学电子系博士,师从 NVIDIA(英伟达)首席科学家 William J. Dally 教授。现任麻省理工学院(MIT)电气工程和计算机科学系助理教授,其研究广泛涉足深度学习和计算机体系结构,专注模型压缩领域。

参考资料:

[1] https://beta.openai.com/docs/guides/fine-tuning返回搜狐,查看更多

责任编辑:

发布于:云南怒江傈福贡县