你知道什么是微调吗 大模型为什么要微调 以及大模型微调的原理是什么

  • 电脑网络维修
  • 2024-11-15

“预训练(pre+train)+微调(fine+tuning),是目前干流的范式”

在学习大模型的环节中,怎样设计神经网络和怎样训练模型是一个关键又基础的操作。

但与之对应的微调也是一个十分关键的手腕,这里就着重讲一下为什么要微调,其好处是什么以及微调的实质。

01、什么是微调?

学习一门技术岂但要知其然,也要知其所以然。

想了解为什么要微调,首先要知道什么是微调?

咱们常说的大模型,指的是具备少量参数的神经网络模型,详细的可以看之前的文章​ ​大模型的参数是什么​ ​。而后经过少量的训练数据训练进去的模型叫做大模型,也叫做预训练模型。

微调指的是微调大模型,是在预训练模型(曾经训练好的大模型)基础之上,经常使用大批数据对大模型的所有或局部参数启动调整,以到达在某个畛域更好的成果。

举例来说,刚设计好的一个神经网络,就相似于一个素来没上过学的在校生,他什么玩意都疑问,只会依据自己的天性去处置疑问;

而训练大模型就相当于让这个在校生实现了九年制义务教育或许上了大学,也就是说它接受过系统的教育,天文天文,物理化学等等均有涉猎,这样的模型就叫做预训练模型。

而微调就是在这个基础上实现某个方向的强化,比如想让这个在校生去加入奥数较量,就要让他对数学启动强化学习。

这个就是微调。

02、为什么要微调?

前面说了什么是微调,这里讲一下为什么要微调?

之所以要求启动微调,关键有以下两方面要素:

之所以要启动微调,其实最关键的要素就是老本疑问。openAI公司训练GPT模型,一次性的老本大略在几百万到上千万美元;换算成人民币就是上千万到上亿的老本。

只管很多公司经常使用的大模型不要求有GPT模型那么弱小,也不要求上亿的训练老本,但从零开局训练一个大模型,少说也要几百万人民币,这对团体和绝大局部公司来说都是无法接受的。

还一个要素就是,训练数据的搜集雷同要求渺小的老本,而抛开成原本说,很多公司基本无法搜集到足够的训练数据,而没有足够的训练数据,那么就很难训练出一个很好的模型。

这时,微调的作用就表现进去了。微调只要要在他人曾经训练好的模型之上,经常使用大批的数据对模型局部或所有参数启动调整即可。

之所以说对预训练模型的所有或局部参数启动调整是由于,微调分为 全量(参数)微调(Full Fine Tuning) 局部(参数)微调——高效微调 PEFT(Parameter-Efficient Fine Tuning) ,只不过很少有人会启动全量微调。

全量微调就相当于,你原本只是在一个个别的本科院校学习;而后突然有一天有个时机让你到一所985/211的学校去学习,学习的内容还是一样,不过人家教的会更好。

局部参数微调就是相当于,你进了你们学校的试验班或突击班,去强化学习局部课程。

所以什么状况下适宜微调?

这几种状况比拟适宜微调,假设不缺钱,又不缺数据,技术又过关;那么自己设计模型,自己训练是最好的模式。

当然,微调也不是万能的,只要在相似的条件下才可以启动微调;比如,一个识别猫狗的预训练模型,你要用人脸数据启动人脸识别微调,这就行不通了。毕竟,猫狗的数据特色和人脸还是有很大差异的。

02、怎样微调,微调的详细步骤?

前面说了,微调的目标是调整模型的参数,所以实质上和步骤上微和谐训练没太大区别,都要求经过数据搜集处置,数据加载,正向流传,反向流传提升的环节,而后给模型参数找到一个最优解。

只不过微调大局部状况下都是调整局部参数,而这种微调模式叫做——高效微调。也就是说用大批的数据,提升局部参数,以到达更好的成果。

既然是对模型参数的调整,那么详细是怎样操作的呢?

在神经网络的训练环节中,有数据处置,正向流传,反向流传和提升器,假设不了解神经网络训练环节的可以看​ ​神经网络的通用训练流程​ ​。

而微调就出当初 提升器 上,训练的环节是提升器依据损失差经过反向流传的模式调整参数;而微调也是经过提升器去调整模型的参数。

基于pytorch框架的神经网络,其微调局部参数的原理就是经过 解冻参数 ,把不要求调整的参数解冻,这样大模型在微调的环节中就只会提升可以被调整的参数。

而全量微调就是不解冻参数,一切参数都会被调整。

代码如下所示:

"""基于pytorch框架的神经网络"""# 加载模型model = AutoModelForCausalLM.from_pretrained(model_id, torch_dtype="auto", device_map="auto")# 失掉模型参数for name, param in model.parameters():# 判别哪些参数要求解冻 参数名中蕴含bias的参数被解冻 不会被修正if "bias" not in name:param.requires_grad = False# 提升器optimizer = torch.optim.SGD(model.parameters(), lr=0.01)

这样,经过微调模型,就可以让预训练模型到达自己想要的成果。

原文链接:​​​ ​​ ​

  • 关注微信

本网站的文章部分内容可能来源于网络和网友发布,仅供大家学习与参考,如有侵权,请联系站长进行删除处理,不代表本网站立场,转载联系作者并注明出处:https://duobeib.com/diannaowangluoweixiu/6175.html

猜你喜欢

热门标签

洗手盆如何疏浚梗塞 洗手盆为何梗塞 iPhone提价霸占4G市场等于原价8折 明码箱怎样设置明码锁 苏泊尔电饭锅保修多久 长城画龙G8253YN彩电输入指令画面变暗疑问检修 彩星彩电解除童锁方法大全 三星笔记本培修点上海 液晶显示器花屏培修视频 燃气热水器不热水要素 热水器不上班经常出现3种处置方法 无氟空调跟有氟空调有什么区别 norltz燃气热水器售后电话 大连站和大连北站哪个离周水子机场近 热水器显示屏亮显示温度不加热 铁猫牌保险箱高效开锁技巧 科技助力安保无忧 创维8R80 汽修 a1265和c3182是什么管 为什么电热水器不能即热 标致空调为什么不冷 神舟培修笔记本培修 dell1420内存更新 青岛自来水公司培修热线电话 包头美的洗衣机全国各市售后服务预定热线号码2024年修缮点降级 创维42k08rd更新 空调为什么运转异响 热水器为何会漏水 该如何处置 什么是可以自己处置的 重庆华帝售后电话 波轮洗衣机荡涤价格 鼎新热水器 留意了!不是水平疑问! 马桶产生了这5个现象 方便 极速 邢台空调移机电话上门服务 扬子空调缺点代码e4是什么疑问 宏基4736zG可以装置W11吗 奥克斯空调培修官方 为什么突然空调滴水很多 乐视s40air刷机包 未联络视的提高方向 官网培修 格力空调售后电话 皇明太阳能电话 看尚X55液晶电视进入工厂形式和软件更新方法 燃气热水器缺点代码

热门资讯

关注我们

微信公众号