热门搜索:和平精英 原神 街篮2 

您的位置:首页 > > 教程攻略 > ai资讯 >什么是大模型微调及各种微调技术介绍

什么是大模型微调及各种微调技术介绍

来源:互联网 更新时间:2026-08-25 13:44

接触微调这个概念有一段时间了,越看越觉得,这玩意儿像个大筐,什么都往里装。

之前理解得比较简单,觉得指令遵循数据集就是微调的全部。后来才意识到,那只是指令微调,是众多微调方式中的一种。打个比方,正是因为指令微调,GPT才能变得会聊天。所以,确切地说,微调的对象是原始的GPT,而ChatGPT是微调后的产物。不能反过来简单理解为“微调ChatGPT”本身——虽然在特定场景下这么理解也没太大错。

大模型通过海量预训练,掌握了语言的基本结构,学会了怎么“说人话”。但其本质,更像是一种文字接龙游戏。

这种接龙,说白了就是一种“不带感情”、“没有智慧”的机械行为。而“微调”,就是给这个机械行为注入灵魂,让它能响应人类的真实需求和业务场景,比如去对话。换句话说,微调是把这种冷冰冰的接龙游戏,变得有“商业”价值。

当然,要实现价值,也不一定非得微调。理论上,你可以直接训练一个能执行特定任务的大模型。但问题在于,大模型的参数规模和数据量实在太大,投入天文数字的成本训练一个模型,最后只让它做翻译、写摘要这种活儿,性价比太低,太浪费。

所以,更聪明的做法是:先训练一个通用的基础大模型,再在这个基础上进行微调,让它去适应各种不同的任务。这才是真正的高性价比路线。

至于具体怎么微调,那就是八仙过海各显神通了。只要能让模型那机械的文字接龙,按照我们想要的方式去输出下一个字就行。

从策略上分,微调主要有两大类:

  • 全参数微调(全量微调,FFT)

  • 参数高效微调(PEFT)

全量微调,顾名思义,就是拿着全部参数去训练,模型所有的层和权重都会被更新和优化,目的是为了完美适配新的任务。

这种方式的优点是直观、管用,能充分利用任务数据把模型调教到极致。但缺点也同样明显:训练时间长得吓人,计算资源消耗巨大,而且微调后还可能出现“知识遗忘”的问题。打个比方,就像老师给学生改作文,改得太投入,最后把整篇文章都改了一遍,虽然结果可能很好,但老师既花了时间又费了精力,还把学生自己写的那些灵光一闪的好句子也给改没了,完全失去了学生自己的特色。

参数高效微调,思路就完全不一样了。它在微调过程中保持模型的底层参数不动(也就是参数冻结),只更新模型的顶层或者少数几层,以此来适应特定任务。

参数高效微调的方法有很多,业界比较热门的有七种,发布时间线是这样的:

模型开源社区Hugging Face,它旗下的PEFT库目前支持其中5种主流方法,分别是:

  • LoRA

  • AdaLoRA

  • Prefix Tuning

  • Prompt Tuning

  • P-Tuning

LoRA


英文全称Low-Rank Adaptation of Large Language Models,直译为大语言模型的低阶适应。它的做法是冻结住预训练好的模型权重参数,然后在每个Transformer块里注入可训练的层。因为不需要对模型原有的全部权重参数重新计算梯度,所以需要训练的计算量一下子就降下来了。

AdaLoRA


AdaLoRA是一种自适应的LoRA方法。基础的LoRA没有去考虑不同参数权重的差异,微调时可能会给那些不重要的权重矩阵分配过多参数,导致模型性能下降。AdaLoRA可以根据模块的重要性自适应地分配参数预算,来提高参数高效微调的性能。另外,基础LoRA还有不少变种,比如LoRA+、VeRA、LoRA-fa、LoRA-drop、DoRA、Delta-LoRA等,都是对基础LoRA的改进。

说到这儿,需要把两类方法做个区分。LoRA是对模型的实际参数进行微调;而下面要聊的Prefix Tuning、Prompt Tuning、P-Tuning,本质上可以理解为是对Prompt本身的微调。

Prefix Tuning(前缀微调)

Prefix Tuning的思路是在输入token之前,构造一段与任务相关的虚拟token(virtual token)作为前缀。这些前缀是可训练的向量,并且可以分布在模型的每一层,作为模型内部表示的一部分。它们与输入序列一起送入预训练模型,训练时只调整前缀向量来适应特定任务,模型本身的参数完全不动。

Prompt Tuning(提示微调)

可以看作是Prefix Tuning的简化版。它给每个任务定义了自己的Prompt,然后直接拼接到数据上作为输入。它通常只涉及输入层,没有使用额外的编码层或任务特定的输出层。可以理解为只是模仿自然语言Prompt的形式,更轻量。

P-Tuning(参数化提示微调)

P-Tuning v1版本:和Prefix Tuning类似,也设计了一种连续可微调的虚拟token。区别在于,P-Tuning的虚拟token仅限于输入层,而不是每一层都加。但它的插入位置是可选的,不一定非要是前面。

P-Tuning v2版本:P-Tuning v2一个重要的改进,是把虚拟token应用到了预训练模型的每一个层,而不单单是输入层。从技术本质上讲,Prefix Tuning和P-Tuning v2是等同的,只不过前者更适用于NLG(自然语言生成),后者更适用于NLU(自然语言理解)。

Adapter Tuning(适配器微调)

除了从参数调整的角度理解微调,还有一种截然不同的思路——Adapter Tuning。

这种方式,是在模型的每一层或选定层之间,插入一个或多个小型神经网络模块,这些模块被称为“Adapter(适配器)”。这些Adapter是可训练的。Adapter Tuning的理念在于,通过添加这些额外的、轻量的模块,来提高微调的效果和效率。

Adapter Tuning既能解决全量微调的低效问题,又能克服部分微调效果不佳的尴尬。但它的缺点也很明显:会导致模型整体的层数变深,额外的运算量都耗费在这些Adapter上,从而拖慢了训练速度和推理速度。

需要注意的是,Adapter Tuning可以和Prefix Tuning等方法结合使用。因为Adapter本身就是一种神经网络,参数高效微调的方法自然也能用来调整Adapter中的参数。

很多微调方式,从本质上都可以理解为是一种“Adapter”,只是它们被应用于模型的不同位置。大致可以分为5类:

  • Houlsby

  • BitFit

  • AdapterBias

  • Prefix Tuning

  • LoRA

Houlsby


Houlsby N等人提出的Adapter方法,是常规意义上理解的那种:在预训练模型每一层(或某些层)中添加Adapter模块,微调时冻结预训练模型主体,只训练Adapter模块的参数来适应特定下游任务。

BitFit


BitFit是一种基于权重剪枝的微调方法。在训练过程中,BitFit通过对模型参数进行量化,来减少模型大小和计算复杂度,从而提高训练速度和模型性能。具体来说,BitFit通过对权重矩阵进行二进制编码,把浮点数权重替换为二进制权重。这种二进制权重能够大大减少模型存储需求和计算量,同时保持模型性能。

AdapterBias


AdapterBias提供了一种参数效率更高的微调方法。它通过在模型每层的输出中加入一个小的、基于token的调整量(一个向量和一个线性层),来减少训练参数,让模型更好地适应特定任务。

大模型微调的主要步骤

1.

数据准备

:搜集并整理与目标任务相匹配的训练数据,确保数据质量,进行清洗和预处理。
2.

模型选择

:根据任务特性和数据特征,挑选合适的预训练模型。
3.

方案制定

:基于任务目标和资源状况,决定微调的深度和广度,选择是进行全面还是局部的参数更新。
4.

超参数配置

:设定训练过程中的关键超参数,包括学习率、批量大小和训练周期等。
5.

参数初始化

:全量微调时保持预训练模型的参数不变,部分微调时,对新增参数进行随机初始化。
6.

执行微调

:运用确定的数据和策略进行模型训练,通过优化算法调整参数,以优化损失函数。
7.

性能评估

:定期在验证集上评估模型,并根据反馈调整训练策略,以提升模型的准确性和鲁棒性。
8.

最终测试

:微调结束后,在测试集上评估模型,确保其满足实际应用的性能要求。
9.

部署应用

:将训练完成的模型集成到应用中,并根据实际运行情况进行必要的调整。

关于宇宙的好的网名有哪些
关于宇宙的好的网名有哪些

类型:角色扮演

大小:1

语言:简体中文

平台:互联网

游戏下载

热门手游

手机号码测吉凶
本站所有软件,都由网友上传,如有侵犯你的版权,请发邮件haolingcc@hotmail.com 联系删除。 版权所有 Copyright@2012-2013 haoling.cc