@@ -32,10 +32,6 @@ BERT 及其后继者(如 RoBERTa、ALBERT)迅速在 GLUE、SQuAD 等多个
3232
3333- 按训练流程划分:从整个模型训练的整个流程中找到微调的定位,捋清不同的微调概念。
3434- 按微调参数规模划分:引入全参微调和高效参数微调 PEFT。
35- - 高效的 PEFT 设计:聚焦 PEFT,如何设计更高效的 PEFT。
36- - PEFT 的多种应用:除了 LLMs,还将介绍 PEFT 在 ViTs、VLAs 和 Diffusion Models 等多种模型架构中的研究应用。
37-
38- 最终我们整个微调章节还是主要聚焦于 PEFT 上来。
3935
4036### 2.1 按训练流程划分
4137
@@ -122,15 +118,42 @@ BERT 及其后继者(如 RoBERTa、ALBERT)迅速在 GLUE、SQuAD 等多个
122118
123119总体而言,FFT 追求性能上限,适用于资源充足的工业级训练;而 PEFT 则在几乎不损失效果的前提下大幅降低门槛,推动了大模型微调在学术界和中小团队中的普及。两者并非互斥,而是根据实际需求的不同选择。
124120
125- ## 3. 高效底参微调 PEFT
121+ ## 3. 高效低参微调 PEFT
122+
123+ 因为微调概念十分广泛,我们整个微调章节还是主要聚焦于 PEFT 上来,在此处,我们先简单介绍一下 PEFT 的高效设计以及多种应用,在后续的文章中则会深入到各个 PEFT 技术方面去介绍。
124+
125+ - 高效的 PEFT 设计:聚焦 PEFT,如何设计更高效的 PEFT。
126+ - PEFT 的多种应用:除了 LLMs,还将介绍 PEFT 在 ViTs、VLAs 和 Diffusion Models 等多种模型架构中的研究应用。
127+
128+ ### 3.1 PEFT 高效设计
129+
130+ 有同学可能会疑惑,PEFT 本身不就是指高效低参了吗?还能怎么进一步高效设计呢?在此处,我们的“高效”并不完全指参数高效,而是在参数高效的基础上还衍生了其它的高效。
131+
132+ ** 参数再高效。** 虽然 PEFT 模块的参数量已经很小,但仍然会增加少部分推理延迟,于是,研究者们想在此之上使模型的参数量进一步减少,所以提出了剪枝策略,并发现这种策略带来的效率提升并不仅限于参数量的减少。首先是对于 Adapter 这类会引入额外计算步骤的 PEFT 方法,AdapterDrop 通过在 Transformer 的较低层中移除 Adapter,可以直接减少计算量,提高推理效率;其次是 LoRA 在推理时为了达到“零额外开销”,需要将其低秩矩阵合并回主干权重中。LoRAPruning 提出的结构化剪枝,可以确保 LoRA 权重在剪枝后依然易于合并。此外,SparseAdapter 的研究发现,通过增加 Adapter 维度,但是保持高矩阵稀疏度,可以在参数预算不变的情况下,显著提升模型性能。
133+
134+ **高效微调训练。**尽管通过引入了 PEFT 微调,但是这也仅能将微调时显存使用量减少 30%,也就是说,如果全参微调需要 100GB 显存,使用 PEFT 微调仍需 70GB 显存,因此,在训练阶段,显存开销仍是一个关键问题。为了解决该问题,有些方法将 PEFT 模块与主干模型解耦,例如,Side-Tuning 和 Res-Tuning 引入了一个并行的、可学习的旁路网络,在反向传播时,梯度只通过这个轻量级的旁路网络,从而完全避免了在庞大的主干模型上缓存梯度信息。此外,LoRA-FA 在训练时冻结了低秩矩阵 $W_{\text{down}}$,只更新 $W_{\text{up}}$。这样,反向传播时就不再需要存储高维的输入激活值 $h_{\text{in}}$,而只需要存储低维的中间激活值 $W_{\text{down}}h_{\text{in}}$,从而极大减少了激活值占用的内存。QLoRA 则是将量化引入到训练阶段,它将预训练的大模型量化为 4-bit,并在其之上反向传播梯度到 LoRA 模块中 。这种设计使得在单个 GPU 上微调巨型模型(如 65B 参数的模型)成为可能。
135+
136+ ** 高效服务场景。** 想象一个场景,一个大模型通过多个 LoRA 微调,衍生出多个适应特定领域的模型,即它们除了 LoRA 外的权重全都保持一致,也就是说,在一个原有的预训练模型 $W$ 上,微调 N 个 LoRA 权重 $W_ {\text{lora}}^i$,衍生出 N 个特定领域的模型,这 N 个特定领域的模型除了 LoRA 部分不同外,都共享原有的预训练模型参数,每个模型可以说是由 $W+W_ {\text{lora}}^i$ 构成。用户如果想调用某个特定领域的模型,他需要在显存中加载这个模型。如果资源富裕的话,我们当然可以在每个服务器上为每个特定领域模型部署一个完整的 $W+W_ {\text{lora}}^i$ ,这样就会存储 N 个 $W+W_ {\text{lora}}^i$ ,但是,如果资源不富裕的话,我们就只能在服务器上部署 $W+N\times W_ {\text{lora}}^i$ ,即一个共享权重,N 个 LoRA 部分。
137+
138+ 在 LLM 中,为了加速推理,往往会使用 KV-cache。由于资源限制,我们只能在单个服务器上部署 $W+N\times W_{\text{lora}}^i$,在这种共享部署 $W$ 的模式下,管理 KV-cache 会变得更加困难。首先是每个用户的序列长度不同,导致 KV-cache 大小不同;其次请求是动态的,KV-cache 需要被动态创建和销毁。如果使用传统的显存管理方式,即为每个请求分配一大块连续显存,就会导致 GPU 中显存出现大量无法使用的显存碎片。为了解决此问题,S-LoRA 提出了一种统一分页机制,它在一个统一的显存池中 ,以”页“为单位来动态分配和管理显存 ,而不再为每个请求分配连续的大块显存,与每个 $W_{\text{lora}}^i$ 相关联的 KV-cache 被分割成许多个易于管理的“块”,这些块被存储在不同的“页”上。通过以上操作,使得在资源有限的单服务器多 PEFT 适配器(即 $W_{\text{lora}}^i$ )的情况下,同样能保持高吞吐量和高性能。
139+
140+ 综上,我们可以看到,尽管 PEFT 被称为高效低参微调,但在各个场景仍存在很多可以进一步改善的地方,只有让模型在微调训练和推理时更加高效,它才能更好地与实际接轨,为我们服务。
141+
142+ ### 3.2 PEFT 广泛应用
143+
144+ 尽管 PEFT 是在 NLP 领域被提出来的,但它的应用远远不止于 LLM,它已经发展成为一种通用的、跨领域的高效微调范式,被广泛应用于计算机视觉、多模态学习和内容生成等多个前沿领域。这种广泛的应用得益于目前各个领域的大模型都采用了 Transformer 架构,因此,为 LLM 设计的 PEFT 方法能够被轻松地迁移和应用于其它模型,以应对不同任务带来的挑战。本节将概述 PEFT 在几种主流模型架构中的代表性应用,展示其强大的通用性和灵活性。
145+
146+ ** 视觉 Transformer (Vision Transformers, ViTs)** 。ViT 是计算机视觉领域一个常用的骨干模型,它同样是基于 Transformer 架构,将图像视为一系列“图块”进行处理。而在 ViT 上应用 PEFT 可以说是轻而易举的,例如 AdaptFormer 方法直接向 ViT 中插入并行的 Adapter 模块,VPT 方法则输入序列前加入可学习的视觉提示。我们可以看到,因为它和 NLP 领域的模型十分类似,因此 PEFT 的应用几乎是直接迁移即可。
147+
148+ **视觉-语言对齐模型 (Vision-Language Models, VLMs)**。VLM 指的是模型将同时接收图像和文本输入,并将图像和文本特征对齐到同一个表示空间进行多模态处理,如 CLIP。而这类模型同样经过在大型数据集上进行预训练,并具备了强大的零样本泛化能力。如果直接将其在小数据集上微调,很容易就导致过拟合。与其它领域类似,CoOp 提出用可学习的连续向量替代人工设计的文本提示(如 "a photo of a [CLASS]"),在冻结整个 VLM 的情况下进行微调。MaPLe 方法则进一步改进,它发现先前方法要么只在视觉分支中学习提示,要么在语言分支中学习提示,不能有效利用 VLM 的多模态特性,因此提出分支感知的分层提示,同时适应语言和视觉分支。除了提示微调外,CLIP-Adapter 等方法还探索了 Adapter 微调方法,在 CLIP 的视觉和文本编码器之后加入轻量级的 Adapter 模块,反向传播的梯度无需流经整个编码器,训练速度更快、内存占用更低。
126149
127- ### PEFT 设计
150+ ** 扩散模型 (Diffusion Models) ** 。以 Stable Diffusion 为代表的扩散模型在文生图领域取得了巨大成功, PEFT 技术的引入,极大地增强了这类模型的可控性和可定制性,而无需重新训练这个庞大的模型。举个例子,如何让预训练好的扩散模型听懂除了文本之外的指令?ControlNet 通过引入一个可训练的、轻量级的“控制” Adapter,让用户可以通过人体姿态等结构化信息来精确控制图像的生成内容。那又如何让模型学会画一个它从未见过的新物体呢?Custom Diffusion 和 IP-Adapter 等方法则通过微调注意力层中的部分权重或引入解耦的交叉注意力机制,让模型能从几张用户提供的图片中学习新概念或图像风格。
128151
129- ### PEFT 应用
152+ 综上,我们可以看到 PEFT 在各个领域的应用,它不仅是使模型更聚焦于特定领域的任务,而且还能拓展模型额外的能力(如扩散模型),此处列举的各种方法只是冰山一角,未来的更多应用还待我们去探索。
130153
131154## 4. 总结与思考
132155
133- 纵观大模型的发展路径,微调几乎贯穿了从预训练到落地应用的每一个关键环节。从最初的特征迁移到任务微调,再到当下的指令微调与偏好对齐,微调不仅仅是性能优化的手段,更是模型理解人类意图、遵循价值观的重要桥梁。与此同时,参数高效微调的兴起也让中小团队有机会参与到大模型的定制与创新中。总体来看,微调技术已经成为大模型走向实用化的一个必不可少的环节。
156+ 纵观大模型的发展路径,微调几乎贯穿了从预训练到落地应用的每一个关键环节。从最初的特征迁移到任务微调,再到当下的指令微调与偏好对齐,微调不仅仅是性能优化的手段,更是模型理解人类意图、遵循价值观的重要桥梁。与此同时,参数高效微调的兴起也让中小团队有机会参与到大模型的定制与创新中,而且已经应用到了除了 LLM 以外的各个方面 。总体来看,微调技术已经成为大模型走向实用化的一个必不可少的环节。
134157
135158## 5. 参考与引用
136159
0 commit comments