大模型高效微调指南:参数附加方法详解,建议收藏!
文章介绍了三种参数高效微调大语言模型的方法:输入层附加(如Prompt-tuning)、模型层附加(如Prefix-tuning和Adapter-tuning)和输出层附加(如Proxy-tuning)。这些方法通过在模型不同位置添加少量可训练参数,实现高效微调,避免全参数微调的资源消耗。各方法各有优势,适用于不同场景。
简介
文章介绍了三种参数高效微调大语言模型的方法:输入层附加(如Prompt-tuning)、模型层附加(如Prefix-tuning和Adapter-tuning)和输出层附加(如Proxy-tuning)。这些方法通过在模型不同位置添加少量可训练参数,实现高效微调,避免全参数微调的资源消耗。各方法各有优势,适用于不同场景。
参数附加方法(Additional Parameter Methods)通过增加并训练新的附加参数或模块对大语言模型进行微调。参数附加方法按照附加位置可以分为三类:输入层附加(Embedding 层)、模型层附加(Transformer 层内部)以及输出层附加(解码/分类头)。
1 输入层附加
直观理解:就像在问题开头偷偷加一段“提示词”,但这段提示不是人工写死的,而是训练出来的参数。
输入层附加的方法将额外参数附加到模型的输入嵌入(Embedding)中,其中最经典的方法是 Prompt-tuning。Prompt-tuning 在模型的输入中引入可微分的连续张量,通常也被称为软提示(Soft prompt)。软提示作为输入的一部分,与实际的文本数据一起被送入模型。在微调过程中,仅软提示的参数会被更新,其他参数保持不变,因此能达到参数高效微调的目的。
具体地,给定一个包含 n 个 token 的输入文本序列 {w1, w2, . . . , wn},首先通过嵌入层将其转化为输入嵌入矩阵 X ∈ Rn×d,其中 d 是嵌入空间的维度。新加入的软提示参数被表示为软提示嵌入矩阵 P ∈ Rm×d,其中 m 是软提示长度。然后,将软提示嵌入拼接上输入嵌入矩阵,形成一个新矩阵 [P; X] ∈ R(m+n)×d,最后输入 Transformer 模型。通过反向传播最大化输出概率似然进行模型训练。训练过程仅软提示参数 P 被更新。
大语言模型的输出质量高度依赖于提示词的构建,要找到正确的 “咒语” 使得我们的大语言模型表现最佳,需要花费大量时间。因此,采用可微分的方式,通过反向传播自动优化提示词成为一种有效的方法。
2 模型层附加
把参数加在模型层(Transformer 的隐藏层)里,就是我们通常讲的模型层参数附加方法。和输入层拼接 embedding 不一样,这类方法会在 Transformer Block 内部插“插件”
模型层附加方法将额外的参数或模型添加到预训练模型的隐藏层中,常见的方法有 Prefix-tuning、Adapter-tuning和 AdapterFusion。
1) Prefix-tuning
思路:
在 每一层注意力的 Key/Value 前面加上 一组可学习的向量(prefix),这些 prefix 不是输入 token,而是专门训练出来的参数。
Prefix-tuning 和上面介绍的 Prompt-tuning 十分类似,区别在于 Prompt-tuning仅将软提示添加到输入嵌入中,而 Prefix-tuning 将一系列连续的可训练前缀(Prefixes,即 Soft-prompt)插入到输入嵌入以及 Transformer 注意力模块中,如上图所示,Pk 和 Pv 是插入到 Transformer block 中的前缀。相比 Prompt-tuning,Prefix-tuning大幅增加了可学习的参数量。
Prefix-tuning 引入了一组可学习的向量 Pk 和 Pv,这些向量被添加到所有 Transformer 注意力模块中的键 K 和值 V 之前。类似于 Prompt-tuning,Prefix-tuning 也会面临前缀参数更新不稳定的问题,从而导致优化过程难以收敛。因此,在实际应用中,通常需要在输入 Transformer 模型前,先通过一个多层感知机(MLP)进行重参数化。这意味着需要训练的参数包括 MLP 和前缀矩阵两部分。训练完成后,MLP 的参数会被丢弃,仅保留前缀参数。
优势:
(1)参数效率:只有前缀参数在微调过程中被更新,这显著减少了训练参数量;
(2)任务适应性:前缀参数可以针对不同的下游任务进行定制,微调方式灵活;
(3)保持预训练知识:由于预训练模型的原始参数保持不变,Prefix-tuning能够保留预训练过程中学到的知识
2)Adapter-tuning
思路:
在 Transformer 层的 FFN 或 Attention 输出 上,插入一个小的瓶颈网络(Adapter Module)。
Adapter-tuning向预训练语言模型中插入新的可学习的神经网络模块,称为适配器(Adapter)。适配器模块通常采用瓶颈(Bottomneck)结构,即一个上投影层、一个非线性映射和一个下投影层组成的全连接模块。其中,下投影层将信息压缩到一个低维的表示,经过非线性映射后再通过上投影层扩展回原始维度。
如图所示,Adapter-tuning在Transformer 的每一个多头注意力层(图中红色块)和全连接层(图中蓝色块)之后添加适配器。与 Transformer 的全连接层不同,由于采用了瓶颈结构,适配器的隐藏维度通常比输入维度小。和其他 PEFT 方法类似,在训练时,通过固定原始模型参数,仅对适配器、层正则化(图中绿色框)以及最后的分类层参数进行微调,可以大幅缩减微调参数量和计算量,从而实现参数高效微调。
适配器模块的具体结构如图右边所示,适配器模块通常由一个下投影矩阵Wd ∈ Rd×r 和一个上投影矩阵 Wu ∈ Rr×d 以及残差连接组成:
A(l) = σ(Wd ∗ H(l−1))Wu + H(l−1),
其中,σ(·) 是激活函数,如 ReLU 或 Sigmoid
A(l) 是适配器的输出
H(l−1) 是第l − 1 层的隐藏状态
在适配器中,下投影矩阵将输入的 d 维特征压缩到低维 r,再用上投影矩阵投影回 d 维。因此,每一层中的总参数量为 2dr + d + r,其中包括投影矩阵及其偏置项参数。通过设置 r ≪ d ,可以大幅限制每个任务所需的参数量。进一步地,适配器模块的结构还可以被设计得更为复杂,例如使用多个投影层,或使用不同的激活函数和参数初始化策略。此外,Adapter-tuning 还有许多变体,例如通过调整适配器模块的位置、剪枝等策略来减少可训练参数的数量。
3 输出层附加
-
核心思路:不改变大模型的参数,也不额外训练 Adapter / LoRA。
-
在 推理阶段 (decoding-time),通过引入一个 代理模块 (proxy module) 或者 修正机制,动态调整生成分布。
换句话说,它就像一个“外挂”,在模型解码过程中给输出 logits 加上偏置,让模型更贴合任务目标。
在微调大语言模型时,通常会面临以下问题:首先,大语言模型的参数数量可能会非常庞大,例如 LLaMA 系列最大的模型拥有 70B 参数,即使采用了 PEFT 技术,也难以在普通消费级 GPU 上完成下游任务适应;其次,用户可能无法直接访问大语言模型的权重(黑盒模型),这为微调设置了障碍。
为了应对这些问题,代理微调(Proxy-tuning)提供了一种轻量级的解码时(Decoding-time)算法,允许我们在不直接修改大语言模型权重的前提下,通过仅访问模型输出词汇表预测分布,来实现对大语言模型的进一步定制化调整。
给定待微调的代理模型 M 以及较小的反专家模型M−,这两个模型需要相同的词汇表。我们对 M− 进行微调,得到微调后的专家模型 M+。在每一个自回归生成的时间步中,代理微调首先计算专家模型 M+ 和反专家模型 M− 之间的 logits 分布差异,然后将其加到代理模型 M 下一个词预测的 logits 分布中。具体来说,在代理微调的计算阶段,针对每一时间步 t 的输入序列 x<t,从代理模型 M、专家模型 M+ 和反专家模型 M− 中获取相应的输出分数 sM, sM+ , sM−。
通过下式调整目标模型的输出分数
s˜:s = sM + sM+ − sM−
然后,使用 softmax() 对其进行归一化,得到输出概率分布,
pM˜ (Xt| x<t) = softmax(˜s),
最后,在该分布中采样得到下一个词的预测结果。
在实际使用中,通常专家模型是较小的模型(例如,LLaMA-7B),而代理模型则是更大的模型(例如,LLaMA-13B 或 LLaMA-70B)。通过代理微调,我们将较小模型中学习到的知识,以一种解码时约束的方式迁移到比其大得多的模型中,大幅节省了计算成本。同时,由于仅需要获取模型的输出分布,而不需要原始的模型权重,因此该方法对于黑盒模型同样适用。
本文介绍了三种主要的参数附加方法,分别通过加在输入、加在模型以及加在输出三种方式实现。总的来说,这几类方法都是提升预训练语言模型性能的有效手段,它们各有优势。加在输入的方法通过在输入序列中添加可学习的张量,对模型本身的结构修改较小,有更好的灵活性。加在模型的方法保持了原始预训练模型的参数,在泛化能力上表现更佳。加在输出的方法则能够以更小的代价驱动更大参数量的黑盒模型,带来更实际的应用前景。
如何学习大模型 AI ?
由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。
但是具体到个人,只能说是:
“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。
这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。
我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。
我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。
一直在更新,更多的大模型学习和面试资料已经上传带到CSDN的官方了,有需要的朋友可以扫描下方二维码免费领取【保证100%免费】👇👇
01.大模型风口已至:月薪30K+的AI岗正在批量诞生
2025年大模型应用呈现爆发式增长,根据工信部最新数据:
国内大模型相关岗位缺口达47万
初级工程师平均薪资28K(数据来源:BOSS直聘报告)
70%企业存在"能用模型不会调优"的痛点
真实案例:某二本机械专业学员,通过4个月系统学习,成功拿到某AI医疗公司大模型优化岗offer,薪资直接翻3倍!
02.如何学习大模型 AI ?
🔥AI取代的不是人类,而是不会用AI的人!麦肯锡最新报告显示:掌握AI工具的从业者生产效率提升47%,薪资溢价达34%!🚀
由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。
但是具体到个人,只能说是:
“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。
这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。
我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。
我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。
1️⃣ 提示词工程:把ChatGPT从玩具变成生产工具
2️⃣ RAG系统:让大模型精准输出行业知识
3️⃣ 智能体开发:用AutoGPT打造24小时数字员工
📦熬了三个大夜整理的《AI进化工具包》送你:
✔️ 大厂内部LLM落地手册(含58个真实案例)
✔️ 提示词设计模板库(覆盖12大应用场景)
✔️ 私藏学习路径图(0基础到项目实战仅需90天)
第一阶段(10天):初阶应用
该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。
- 大模型 AI 能干什么?
- 大模型是怎样获得「智能」的?
- 用好 AI 的核心心法
- 大模型应用业务架构
- 大模型应用技术架构
- 代码示例:向 GPT-3.5 灌入新知识
- 提示工程的意义和核心思想
- Prompt 典型构成
- 指令调优方法论
- 思维链和思维树
- Prompt 攻击和防范
- …
第二阶段(30天):高阶应用
该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。
- 为什么要做 RAG
- 搭建一个简单的 ChatPDF
- 检索的基础概念
- 什么是向量表示(Embeddings)
- 向量数据库与向量检索
- 基于向量检索的 RAG
- 搭建 RAG 系统的扩展知识
- 混合检索与 RAG-Fusion 简介
- 向量模型本地部署
- …
第三阶段(30天):模型训练
恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。
到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?
- 为什么要做 RAG
- 什么是模型
- 什么是模型训练
- 求解器 & 损失函数简介
- 小实验2:手写一个简单的神经网络并训练它
- 什么是训练/预训练/微调/轻量化微调
- Transformer结构简介
- 轻量化微调
- 实验数据集的构建
- …
第四阶段(20天):商业闭环
对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。
- 硬件选型
- 带你了解全球大模型
- 使用国产大模型服务
- 搭建 OpenAI 代理
- 热身:基于阿里云 PAI 部署 Stable Diffusion
- 在本地计算机运行大模型
- 大模型的私有化部署
- 基于 vLLM 部署大模型
- 案例:如何优雅地在阿里云私有部署开源大模型
- 部署一套开源 LLM 项目
- 内容安全
- 互联网信息服务算法备案
- …
学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。
如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。
这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费
】
更多推荐
所有评论(0)