终于有人把大模型11种微调方法说清楚了!

1、前缀调优

前缀调优(PrefixTuning)是一种轻量级的微调替代方法,专门用于自然语言生成任务。

前缀调优的灵感来自于语言模型提示,前缀就好像是“虚拟标记”一样,这种方法可在特定任务的上下文中引导模型生成文本。

前缀调优的独特之处在于它不改变语言模型的参数,而是通过冻结LM参数,仅优化一系列连续的任务特定向量(即前缀)来实现优化任务,如图1所示

图片

由于在训练中只需要为每个任务存储前缀,前缀调优的轻量级设计避免了存储和计算资源的浪费,同时保持了模型的性能,具有模块化和高效利用空间的特点,有望在NLP任务中提供高效的解决方案。

学习AI大模型是一项系统工程,需要时间和持续的努力。但随着技术的发展和在线资源的丰富,零基础的小白也有很好的机会逐步学习和掌握。【点击蓝字获取】

【2025最新】AI大模型全套学习籽料(可白嫖):LLM面试题+AI大模型学习路线+大模型PDF书籍+640套AI大模型报告等等,从入门到进阶再到精通,超全面存下吧!

2、前缀调优

提示调优(PromptTuning)方法是由BrianLester在论文“ThePower of Scale for Parameter-Efficient Prompt Tuning,”中提出的。

提示调优采用“软提示”(SoftPrompt)的方式,通过冻结整个预训练模型,只允许每个下游任务在输入文本前面添加k个可调的标记(Token)来优化模型参数,赋予语言模型能够执行特定的下游任务的能力,如图2所示

图片

在论文的实验对比中,对于T5-XXL模型,每个经过调整的模型副本需要110亿个参数,相较于为每个下游任务制作特定的预训练模型副本,提示调优需要的参数规模仅为20480个参数。该方法在少样本提示方面表现出色。

3、P-Tuning v2

尽管提示调优在相应任务上取得了一定的效果,但当底座模型规模较小,特别是小于1000亿个参数时,效果表现不佳。为了解决这个问题,清华大学的团队提出了针对深度提示调优的优化和适应性实现–P-Tuning v2方法。

该方法最显著的改进是对预训练模型的每一层应用连续提示,而不仅仅是输入层。

图片

这实际上是一种针对大型语言模型的软提示方法,主要是将大型语言模型的词嵌入层和每个Transformer网络层前都加上新的参数。

深度提示调优增加了连续提示的功能,并缩小了在各种设置之间进行微调的差距,特别是对于小型模型和困难的任务。

4、LORA

微软公司在2021年提出了一种名为Low-RankAdaptation(LORA,低秩适配器)的方法。

LORA的核心思想是通过冻结预训练模型的权重,并将可训练的秩分解矩阵注入Transformer架构的每一层,从而显著减少下游任务中可训练参数的数量。

在训练过程中,只需要固定原始模型的参数,然后训练降维矩阵A和升维矩阵B,如图3所示

图片

与使用Adam微调的GPT-3175B相比,LORA可以将可训练参数的数量减少10000倍,并将GPU内存需求减少3倍。

尽管LORA的可训练参数较少,训练吞吐量较高,但与ROBERTa、DeBERTa、GPT-2和GPT-3等模型相比,LORA在模型质量性能方面与微调相当,甚至更好

5、DyLORA

但随着研究的深入,LORA块存在两大核心问题

(1)一旦训练完成后,LORA块的大小便无法更改,若要调整LORA块的秩,则需重新训练整个模型,这无疑增加了大量时间和计算成本。

(2)LORA块的大小是在训练前设计的固定超参,优化秩的过程需要精细的搜索与调优操作,仅设计单一的超参可能无法有效提升模型效果。

为解决上述问题,研究者引入了一种全新的方法-DyLORA(动态低秩适应)

研究者参考LORA的基本架构,针对每个LORA块设计了上投影(Wup)和下投影(Wdw)矩阵及当前LORA块的规模范围R。

为确保增加或减少秩不会明显阻碍模型的表现,在训练过程中通过对LORA块对不同秩的信息内容进行排序,再结合预定义的随机分布中进行抽样,来对LORA块镜像上投影矩阵和下投影矩阵截断,最终确认单个LORA块的大小,如图4所示

图片

研究结果表明,与LORA相比,使用DyLORA训练出的模型速度可提升4~7倍,且性能几乎没有下降。此外,与LORA相比,该模型在更广泛的秩范围内展现出了卓越的性能。

6、AdaLORA

正如DyLORA优化方法一样,提出AdaLORA的研究者也发现,当前LORA存在的改进方向:

由于权重矩阵在不同LORA块和模型层中的重要性存在差异,因此不能提前制定一个统一规模的秩来约束相关权重信息,需要设计可以支持动态更新的参数矩阵

需要设计有效的方法来评估当前参数矩阵的重要性,并根据重要性程度,为重要性高的矩阵分配更多参数量,以提升模型效果,对重要性低的矩阵进行裁剪,进一步降低计算量根据上述思想。

AdaLoRA_adalora csdn-CSDN博客

研究者提出了AdaLORA方法,可以根据权重矩阵的重要性得分,在权重矩阵之间自适应地分配参数规模。

在实际操作中,AdaLoRA采用奇异值分解(SVD)的方法来进行参数训练,根据重要性指标剪裁掉不重要的奇异值来提高计算效率,从而进一步提升模型在微调阶段的效果。

7、QLORA

TimDettmers等研究者在论文“QLORA:Efficient Finetuning ofQuantized LLMs”中提出了一种高效的模型微调方法–OLORA,如图5所示

图片

OLORA的创新内容主要如下:

4bit NormalFloat(NF4)。NF4是一种新型数据类型,它对正态分布的权重来说是信息理论上的最优选择

双重量化技术。双重量化技术减少了平均内存的使用,它通过对已量化的常量进行再量化来实现

分页优化器。分页优化器有助于管理内存峰值,防止梯度检查点时出现内存不足的错误

实验表明,QLORA技术使得研究者能够在单个48GBGPU上微调650亿个参数规模的模型,同时维持16bit精度任务的完整性能。

例如,在训练Guanaco模型时,仅需在单个GPU上微调24h,即可达到与ChatGPT相当的99.3%性能水平。通过OLORA微调技术,可以有效降低模型微调时的显存消耗

8、OA-LORA

在论文“OA-LoRA: Quantization-aware Low-rank Adaptation oflargelanguagemodels”中,研究者提出了一种量化感知的低秩适应(OA-LORA)算法。该方法来源于量化和适应的自由度不平衡的思想。

研究者提出采用分组运算符的方式,旨在增加量化自由度的同时减少适应自由度。

QA-LORA的实现简便,仅需几行代码,同时赋予原始的LORA两倍的能力:在微调过程中,LLM的权重被量化(如INT4),以降低时间和内存的使用

微调后,LLM和辅助权重能够自然地集成到一个量化模型中,而不损失准确性

通过在LLaMA和LLaMA2模型系列的实验中证明,QA-LORA在不同的微调数据集和下游场景中验证了其有效性。

如图6所示,与之前的适应方法LORA和QLORA相比,OA-LORA在微调和推理阶段都具有更高的计算效率。

由于不需要进行训练后量化,因此它不会导致准确性损失。在图6中展示了INT4的量化,但OA-LORA可以推广到INT3和INT2

图片

9、LongLORA

通常情况下,用较长的上下文长度训练大型语言模型的计算成本较高,需要大量的训练时间和GPU资源。

为了在有限的计算成本下扩展预训练大型语言模型的上下文大小,研究者在论文“LongLoRA: Efficient Fine-tuningof Long-ContextLarge LanguageModels”中提出了LongLORA的方法,如图7所示

图片

LongLORA在两个方面进行了改进:

虽然在推理过程中需要密集的全局注意力,但通过采用稀疏的局部注意力,可以有效地进行模型微调。

在LongLORA中,引入的转移短暂的注意力机制能够有效地实现上下文扩展,从而在性能上与使用香草注意力(Vanilla Attention)进行微调的效果相似

通过重新审视上下文扩展的参数高效微调机制,研究者发现在可训练嵌入和规范化的前提下,用于上下文扩展的LORA表现良好

LongLORA在从70亿、130亿到700亿个参数的LLaMA2模型的各种任务上都取得了良好的结果。

LongLORA采用LLaMA2-7B型,将上下文长度从4000个Token扩展到10万个Token,展现了其在增加上下文长度的同时保持了高效计算的能力。

这为大型语言模型的进一步优化和应用提供了有益的思路。

10、VeRA

LORA是一种常用的大型语言模型微调方法,它在微调大型语言模型时能够减少可训练参数的数量。

然而,随着模型规模的进一步扩大或者需要部署大量适应于每个用户或任务的模型时,存储问题仍然是一个挑战。

研究者提出了一种基于向量的随机矩阵适应(Vector-based Randommatrix Adaptation,VeRA)的方法,VeRA的实现方法是通过使用:

对低秩矩阵在所有层之间共享,并学习小的缩放向量来实现这一目标。

与LORA相比,VeRA成功将可训练参数的数量减少了10倍,同时保持了相同的性能水平,如图8所示,LORA通过训练低秩矩阵和来更新权重矩阵,中间秩为。

在VeRA中,这些矩阵被冻结,在所有层之间共享,并通过可训练向量和进行适应,从而显著减少可训练参数的数量。

在这种情况下,低秩矩阵和向量可以合并到原始权重矩阵中,不引入额外的延迟。

这种新颖的结构设计使得VeRA在减少存储开销的同时,还能够保持和LORA相媲美的性能,为大型语言模型的优化和应用提供了更加灵活的解决方案。

图片

实验证明,VeRA在GLUE和E2E基准测试中展现了其有效性,并在使用LLaMA2 7B模型时仅使用140万个参数的指令就取得了一定的效果。

这一方法为在大型语言模型微调中降低存储开销提供了一种新的思路,有望在实际应用中取得更为显著的效益。

11、S-LORA

LORA作为一种参数高效的大型语言模型微调方法,通常用于将基础型适应到多种任务中,从而形成了大量派生自基础模型的LORA模型。

由于多个采用LORA形式训练的模型的底座模型都为同一个,因此可以参考批处理模式进行推理。

据此,研究者提出了一种S-LoRA(Servingthousandsofcon currentLoRAadapters)方法,S-LORA是一种专为可伸缩地服务多个LORA适配器而设计的方法。

S-LORA的设计理念是将所有适配器存储在主内存中,并在GPU内存中动态获取当前运行查询所需的适配器。

图片

为了高效使用GPU内存并减少碎片,S-LORA引入了统一分页。统一分页采用统一的内存池来管理具有不同秩的动态适配器权重以及具有不同序列长度的KV缓存张量。

此外,S-LORA还采用了一种新颖的张量并行策略和高度优化的自定义CUDA核心,用于异构批处理LORA计算。

这些特性使得S-LORA能够在单个GPU或跨多个GPU上提供数千个LORA适配器,而开销相对较小。通过实验发现,S-LORA的吞吐量提高了4倍多,并且提供的适配器数量增加了数个数量级。

因此,S-LORA在实现对许多任务特定微调模型的可伸缩服务方面取得了显著进展,并为大规模定制微调服务提供了潜在的可能性。

学习AI大模型是一项系统工程,需要时间和持续的努力。但随着技术的发展和在线资源的丰富,零基础的小白也有很好的机会逐步学习和掌握。【点击蓝字获取】

【2025最新】AI大模型全套学习籽料(可白嫖):LLM面试题+AI大模型学习路线+大模型PDF书籍+640套AI大模型报告等等,从入门到进阶再到精通,超全面存下吧!

<think>好的,我现在需要回答用户关于如何评估微调大模型的问题。首先,我得理清楚用户的需求,他们可能是在进行模型微调后,想知道有哪些评估方法和指标,以及具体的步骤和注意事项。用户可能是研究人员或开发者,所以需要详细但结构清晰的解释。 首先,我应该回顾自己了解的知识。微调大模型通常是在预训练模型的基础上,用特定领域的数据进行进一步训练。评估这部分模型的效果,需要从多个方面考虑,比如任务性能、泛化能力、过拟合情况、计算效率等。 接下来,我需要确定回答的结构。用户希望结构清晰,逐步解决问题。所以可能需要分点明,每个评估维度下再细分指标或方法。例如,任务相关指标、泛化能力评估、过拟合检测、效率分析、人类评估、对比实验、偏差和安全性等。 然后,每个部分需要详细明。例如,任务相关指标根据任务类型不同而不同,比如分类任务用准确率、F1值,生成任务用BLEU、ROUGE等。这里要确保术语正确,并且用例子帮助理解。 泛化能力方面,可能需要交叉验证,或者使用不同的测试集,比如领域外数据。过拟合则通过比较训练集和验证集的表现差异来判断。计算效率涉及训练和推理时间,以及资源消耗,这对实际应用很重要。 人类评估容易被忽略,但特别是生成任务中,自动指标可能不足,需要人工评价相关性、流畅性等。对比实验包括与原模型或其他方法的比较,确保微调确实带来了提升。 此外,还要考虑偏差和安全性,特别是在敏感领域,模型是否产生有害内容。长期评估可能涉及模型的持续表现和适应性。 在写作过程中,要使用中文,数学公式用$...$,独立公式用$$...$$。例如,准确率公式写成$$准确率 = \frac{正确预测数}{总样本数}$$,保持LaTeX正确。同时,结构要清晰,分点列出,每个部分用小标题,帮助用户理解。 需要检查是否有遗漏的重要评估方法,比如参数效率或数据效率,这些可能在某些情况下相关。另外,确保每个评估步骤都有实际意义,不仅仅是理论上的指标,而是实际操作中的考量。 最后,总结评估流程,强调综合多种方法的重要性,避免片面。同时提醒用户根据具体任务选择合适的评估策略,确保全面性和可靠性。</think>评估微调后的大型语言模型需要从多个维度综合考量,以下是分步骤的评估框架: --- ### 一、任务相关性能指标 根据下游任务类型选择评估指标: 1. **分类任务** - 准确率:$$准确率 = \frac{正确预测数}{总样本数}$$ - F1值:$$F1 = \frac{2 \times 精确率 \times 召回率}{精确率 + 召回率}$$ 2. **生成任务** - BLEU:衡量生成文本与参考文本的n-gram重叠率 - ROUGE:通过召回率评估生成内容的关键信息覆盖率 3. **回归任务** - 均方误差:$$MSE = \frac{1}{N}\sum_{i=1}^{N}(y_i - \hat{y}_i)^2$$ --- ### 二、泛化能力评估 1. **交叉验证** 使用$k$-fold交叉验证(如$k=5$),确保模型在不同数据划分下表现稳定 2. **领域外测试** 用未参与训练的其他领域数据测试,例如:用新闻数据微调的模型测试社交媒体文本 --- ### 三、过拟合检测 1. 对比训练集与验证集表现 - 若验证集指标显著低于训练集(如差异超过15%),可能过拟合 2. 监控损失曲线 - 理想情况:训练损失与验证损失同步下降 - 过拟合标志:验证损失在后期上升 $$损失差 = \mathcal{L}_{train} - \mathcal{L}_{val}$$ --- ### 四、计算效率分析 | 指标 | 计算公式 | 评估意义 | |---------------|------------------------------|--------------------------| | 训练时间 | 单epoch耗时 | 资源成本 | | 推理延迟 | 单样本平均响应时间 | 实际部署可行性 | | 显存占用 | GPU显存峰值 | 硬件需求 | --- ### 五、人类评估(针对生成任务) 组织人工评审,评估以下维度: 1. 相关性(0-5分) 2. 事实准确性 3. 语言流畅度 4. 有害内容比例 --- ### 六、对比实验设计 1. **基线对比** - 与原预训练模型对比 - 与其他微调方法(如LoRA、Adapter)对比 2. **消融实验** 通过控制变量分析各改进模块的贡献度 --- ### 七、偏差与安全性评估 1. 使用BOLD等数据集检测人口属性偏见 2. 对抗测试:注入敏感词或误导性指令,检测有害输出概率 --- ### 八、长期稳定性评估 1. 持续学习能力测试 2. 领域迁移适应性(如季度性数据更新后的表现) --- #### 评估流程建议 ```mermaid graph TD A[确定评估目标] --> B[选择任务指标] B --> C[划分测试集] C --> D[运行基准测试] D --> E[分析过拟合风险] E --> F[计算资源效率评估] F --> G[人工评估] G --> H[对比实验] H --> I[安全性检查] ``` 通过上述多维度评估,可全面衡量微调模型在性能、效率、安全性等方面的表现。实际应用中需根据任务需求动态调整评估重点,例如医疗领域需加强事实准确性评估,客服场景则侧重响应延迟优化。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值