一文详解:8 种主流大模型微调方式全解析,这篇干货不容错过!

在当今的人工智能领域,大模型凭借其强大的语言理解和生成能力,成为了众多应用的核心驱动力。然而,通用的大模型在面对特定领域或任务时,往往难以充分发挥其潜力。为了让大模型更好地适应各种具体需求,微调技术应运而生。通过微调,我们能够利用特定的数据对预训练的大模型进行优化,使其在目标任务上表现得更加出色。接下来,让我们深入探讨 8 种主流的大模型微调方式。

1、LoRA

LoRA 通过低秩分解的方式来模拟参数的变化,在微调过程中仅更新少量的低秩矩阵。其数学原理是参数更新公式为 Wnew = Wbase + ΔW,其中 ΔW = A⋅B,A 和 B 是低秩矩阵。通过这种方式,在保持模型性能的同时,极大地减少了参数更新的量。

其核心理念在于,在模型的决定性层次中引入小型、低秩的矩阵来实现模型行为的微调,而无需对整个模型结构进行大幅度修改。

img

这种方法的优势在于,在不显著增加额外计算负担的前提下,能够有效地微调模型,同时保留模型原有的性能水准。

LORA的操作流程如下:

  1. 选择权重矩阵:从关键层(如 Transformer 的注意力层、前馈层)中选择需要进行低秩分解的权重矩阵 W。这些关键层对于模型的性能和特征提取起着重要作用。

  2. 初始化低秩矩阵:定义低秩秩数 r(如 r = 8),并初始化低秩矩阵 A∈Rd×r 和 B∈Rr×d。低秩秩数 r 决定了低秩矩阵的维度,它的选择会影响模型的性能和计算效率。

  3. 计算低秩更新:计算 ΔW = A⋅B,得到低秩矩阵的更新量。这个更新量将用于调整原始权重矩阵。

  4. 结合原始权重:将更新后的低秩矩阵与原始权重矩阵相结合,得到最终的权重矩阵 Wnew = Wbase + ΔW。这样,通过低秩矩阵的更新来间接调整模型的权重。

  5. 训练:在训练过程中,仅对低秩矩阵 A 和 B 进行优化,而冻结原始权重 Wbase。这使得模型在训练时只需更新少量的参数,大大降低了计算成本。

  6. 评估:对微调后的模型进行性能测试,评估其在目标任务上的表现。根据评估结果,可以进一步调整低秩秩数 r 或其他超参数,以优化模型性能。

这个过程可以用数学表达式描述为: 新权重=原始权重+AB。

img

以一个具体实例来说,假设我们手头有一个大型语言模型,它通常用于执行广泛的自然语言处理任务。现在,我们打算将其微调,使其在处理医疗健康相关的文本上更为擅长。

采用LoRA方法,我们无需直接修改模型现有的大量权重。相反只需在模型的关键部位引入低秩矩阵,并通过这些矩阵的乘积来进行有效的权重调整。

这样一来,模型就能更好地适应医疗健康领域的专业语言和术语,同时也避免了大规模权重调整和重新训练的必要。

2、QLORA

QLoRA 结合了模型量化(如 4 - bit 量化)和 LoRA 技术,旨在降低显存和计算成本,使超大规模模型能够在资源有限的设备上进行微调。通过模型量化将权重压缩为低精度表示,再结合 LoRA 技术减少参数更新量,从而实现高效的微调。
img

QLORA的核心在于:

1)量化技术: QLORA通过双阶段数值编码方案实现参数高效压缩,其核心包含存储环节的4-bit NormalFloat标准化浮点格式与计算环节的16-bit BrainFloat运算架构。

这种混合精度处理机制在保证神经网络计算稳定性的前提下,将模型参数存储密度提升300%,通过动态反量化策略维持了原始模型97%以上的表征能力。

相较于传统量化方法,该方案在显著降低存储资源占用的同时,构建了精度损失与硬件效能的最优平衡模型。

2)量化操作: 在4-bit精度量化中,权重参数通过4比特二进制编码表征,其核心流程是通过特征值筛选与区间映射实现数据压缩。

img

首先基于张量分布特性划定动态范围边界(如[-0.8,0.8]),将该连续空间均等划分为16个离散子域,每个子域对应唯一的4-bit编码值。

最终通过最近邻匹配原则,将原始FP32精度数值投影至最邻近的离散量化点上,完成32位浮点数值到4位定点表示的精度转换。

3)微调阶段: 在参数优化过程中,OLORA采用4-bit精度加载模型参数,通过动态反量化至bf16格式进行梯度计算,这种混合精度策略有效节省了83%的显存占用。

实际测试表明,该方法使得原本需要80GB显存的LLaMA-33B大模型,仅需单张RTX 4090显卡即可完成全参数微调。

img

整个过程严格保持原始模型架构,仅在数值计算时实施临时精度转换。

量化过程的挑战在于设计合适的映射和量化策略,以最小化精度损失对性能的影响。

在大型模型中,这种方法可以显著减少内存和计算需求,使得在资源有限的环境下部署和训练成为可能。

3、适配器调整(Adapter Tuning)

img

与LoRA技术类似,适配器调整的目标是在保留预训练模型原始参数不变的前提下,使模型能够适应新的任务。

适配器调整的方法是在模型的每个层或选定层之间插入小型神经网络模块,称为“适配器”。这些适配器是可训练的,而原始模型的参数则保持不变。

适配器调整的关键步骤包括:

1)以预训练模型为基础: 初始阶段,我们拥有一个已经经过预训练的大型模型,如BERT或GPT,该模型已经学习了丰富的语言特征和模式。

2)插入适配器: 在预训练模型的每个层或指定层中我们插入适配器。适配器是小型的神经网络,一般包含少量层次,并且参数规模相对较小。

img

3)维持预训练参数不变: 在微调过程中,原有的预训练模型参数保持不变。我们不直接调整这些参数,而是专注于适配器的参数训练。

4)训练适配器: 适配器的参数会根据特定任务的数据进行训练使适配器能够学习如何根据任务调整模型的行为。

5)针对任务的调整: 通过这种方式,模型能够对每个特定任务进行微调,同时不影响模型其他部分的通用性能。

适配器有助于模型更好地理解和处理与特定任务相关的特殊模式和数据。

6)高效与灵活: 由于只有部分参数被调整,适配器调整方法相比于全模型微调更为高效,并且允许模型迅速适应新任务。

img

例如,如果我们有一个大型文本生成模型,它通常用于执行广泛的文本生成任务。

若要将其微调以生成专业的金融报告,我们可以在模型的关键层中加入适配器。

在微调过程中,仅有适配器的参数会根据金融领域的数据进行更新,使得模型更好地适应金融报告的写作风格和术语,同时避免对整个模型架构进行大幅度调整。

LORA与适配器调整的主要区别在于

1)LORA: 在模型的权重矩阵中引入低秩矩阵来实现微调。这些低秩矩阵作为原有权重矩阵的修改项,在实际计算时对原有权重矩阵进行调整。

2)适配器调整: 通过在模型各层中添加小型神经网络模块,即“适配器”,来实现微调。

img

适配器独立于模型的主体结构,仅适配器的参数在微调过程中更新,而模型的其他预训练参数保持不变。

4、前缀调整(Prefix Tuning)

与传统的微调范式不同,前缀调整提出了一种新的策略,即在预训练的语言模型(LM)输入序列前添加可训练、任务特定的前缀,从而实现针对不同任务的微调。

这意味着我们可以为不同任务保存不同的前缀,而不是为每个任务保存一整套微调后的模型权重,从而节省了大量的存储空间和微调成本。

img

前缀实际上是一种连续可微的虚拟标记(Soft Prompt/与离散的Token相比,它们更易于优化并Continuous Prompt),且效果更佳。

这种方法的优势在于不需要调整模型的所有权重,而是通过在输入中添加前缀来调整模型的行为,从而节省大量的计算资源,同时使得单一模型能够适应多种不同的任务。

前缀可以是固定的(即手动设计的静态提示)或可训练的(即模型在训练过程中学习的动态提示)。

5、提示调整(Prompt Tuning)

img

Prompt Tuning 是2021年谷歌在论文《The Power of Scale forParameter-Efficient Prompt Tuning》中提出的微调方法

提示调整是一种在预训练语言模型输入中引入可学习嵌入向量作为提示的微调方法。

这些可训练的提示向量在训练过程中更新,以指导模型输出更适合特定任务的响应。

提示调整与前缀调整都涉及在输入数据中添加可学习的向量,这些向量是在输入层添加的,但两者的策略和目的不同:

1)提示调整: 旨在模仿自然语言中的提示形式,将可学习向量(通常称为提示标记)设计为模型针对特定任务生成特定类型输出的引导。

这些向量通常被视为任务指导信息的一部分,倾向于使用较少的向量来模仿传统的自然语言提示。

img

2)前缀调整: 可学习前缀更多地用于提供输入数据的直接上下文信息,作为模型内部表示的一部分,可以影响整个模型的行为。

以下是两者的训练示例,以说明它们的不同:

1)提示调整示例:

输入序列: [Prompt1][Prompt2]“这部电影令人振奋。

问题: 评价这部电影的情感倾向。

答案: 模型需要预测情感倾向(例如“积极”)

提示: 没有明确的外部提示,[Prompt1lPrompt2]作为引导模型的内部提示,这里的问题是隐含的,即判断文本中表达的情感倾向。

img

2)前缀调整示例:

输入序列: [Prefix1][Prefix2][Prefix3]“lwant to watch amovie.

问题: 根据前缀生成后续的自然语言文本。

答案: 模型生成的文本,如“that is exciting and fun.

提示: 前缀本身提供上下文信息,没有单独的外部提示。

6、P-Tuning

img

P-Tuning 方法的提出主要是为了解决这样一个问题:大模型的Prompt 构造方式严重影响下游任务的效果。

P-Tuning(基于提示的微调)和提示调整都是为了调整大型预训练语言模型(如GPT系列)以适应特定任务而设计的技术。

两者都利用预训练的语言模型执行特定的下游任务,如文本分类、情感分析等,并使用某种形式的“提示”或“指导”来引导模型输出,以更好地适应特定任务。

提示调整与P-Tuning的主要区别在于

1)提示调整: 使用静态的、可训练的虚拟标记嵌入,在初始化后保持固定,除非在训练过程中更新。

这种方法相对简单,因为它只涉及调整一组固定的嵌入参数,在处理多种任务时表现良好,但可能在处理特别复杂或需要细粒度控制的任务时受限。

2)P-Tuning: 使用一个可训练的LSTM模型(称为提示编码器prompt encoder)来动态生成虚拟标记嵌入。

允许根据输入数据的不同生成不同的嵌入,提供更高的灵活性和适应性,适合需要精细控制和理解复杂上下文的任务。

这种方法相对复杂,因为它涉及一个额外的LSTM模型来生成虚拟标记嵌入。

P-Tuning中使用LSTM(长短期记忆网络)作为生成虚拟标记嵌入的工具,利用了LSTM的以下优势:

1)更好的适应性和灵活性: LSTM可以捕捉输入数据中的时间序列特征,更好地理解和适应复杂的、顺序依赖的任务,如文本生成或序列标注。

img

2)改进的上下文理解: LSTM因其循环结构,擅长处理和理解长期依赖关系和复杂的上下文信息。

3)参数共享和泛化能力: 在P-Tuning中,LSTM模型的参数可以在多个任务之间共享,这提高了模型的泛化能力,并减少了针对每个单独任务的训练需求。

而在提示调整中,每个任务通常都有其独立的虚拟标记嵌入,这可能限制了跨任务泛化的能力。

这些特性使得LSTM特别适合处理复杂任务和需要细粒度控制的应用场景。

然而,这些优势也伴随着更高的计算复杂度和资源需求因此在实际应用中需要根据具体需求和资源限制来权衡使用LSTM的决策。

7、P-Tuning v2

img

P-Tuning v2是P-Tuning的进一步改进版,在P-Tuning中,连续提示被插入到输入序列的嵌入层中,除了语言模型的输入层,其他层的提示嵌入都来自于上一层。

这种设计存在两个问题: 第一,它限制了优化参数的数量。由于模型的输入文本长度是固定的,通常为512,因此提示的长度不能过长。

第二,当模型层数很深时,微调时模型的稳定性难以保证; 模型层数越深,第一层输入的提示对后面层的影响难以预测,这会影响模型的稳定性。

P-Tuning v2的改进在于,不仅在第一层插入连续提示,而是在多层都插入连续提示,且层与层之间的连续提示是相互独立的。

这样,在模型微调时,可训练的参数量增加了,P-Tuning v2在应对复杂的自然语言理解(NLU)任务和小型模型方面,相比原始P-Tuning具有更出色的效能。

img

除了以上PEFT,当前还存在PILL(PluggableInstructionLanguage Learning)、SSF(Scaling & Shifting YourFeatures)等其他类型的微调方法。

SSF核心思想是对模型的特征(即模型层的输出)进行缩放(Scaling)和位移(Shifting)。简单来说,就是通过调整特征的比例和偏移量来优化模型的性能。

这种方法可以在改善模型对特定任务的响应时,不需要调整或重新训练模型中的所有参数,从而在节省计算资源的同时保持或提升模型性能。

这对于处理大规模模型特别有效,因为它减少了训练和调整所需的资源和时间。

8、LORA+MoE

img

由于大模型全量微调时的显存占用过大,LORA、Adapter、IA3这些参数高效微调方法便成为了资源有限的机构和研究者微调大模型的标配。

PEFT方法的总体思路是冻结住大模型的主干参数,引入一小部分可训练的参数作为适配模块进行训练,以节省模型微调时的显存和参数存储开销。

传统上,LORA这类适配模块的参数和主干参数一样是稠密的,每个样本上的推理过程都需要用到所有的参数。

img

近来,大模型研究者们为了克服稠密模型的参数效率瓶颈,开始关注以Mistral、DeepseekMoE为代表的混合专家(MixureofExperts,简称MOE)模型框架。

在该框架下,模型的某个模块(如Transformer的某个FFN层)会存在多组形状相同的权重(称为专家),另外有一个路由模块(Router)接受原始输入、输出各专家的激活权重。

如何学习大模型 AI ?

由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。

但是具体到个人,只能说是:

“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。

这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。

我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。

我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

https://img-blog.csdnimg.cn/img_convert/05840567e2912bcdcdda7b15cba33d93.jpeg

在这里插入图片描述

第一阶段(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%免费

https://img-blog.csdnimg.cn/img_convert/05840567e2912bcdcdda7b15cba33d93.jpeg

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值