带你快速了解大模型微调原理
目前传统的 Fine-Tuning 有两个痛点问题:
- 降低语义差异(Bridge the gap between Pre-training and Fine-tuning) :预训练任务主要以 Masked Language Modeling(MLM)为主,而下游任务(DownStream Task)则重新引入新的训练参数,因此两个阶段的目标通常有较大差异。因此需要解决如何缩小Pre-training和Fine-tuning两个阶段目标差距过大的问题;
- 避免过拟合(Overfitting of the head) :由于在 Fine-Tuning 阶段需要新引入额外的参数以适配相应的任务需要,因此在样本数量有限的情况容易发生过拟合,降低了模型的泛化能力。因此需要面对预训练语言模型的过拟合问题。
1 全量微调
全量微调(Full Fine Tuning, FFT): 对全量的参数进行训练,用特定领域的数据对大模型的训练效果会很好。
但全量微调 FFT 存在下面两个问题:
- 训练的成本会比较高,因为微调的参数量跟预训练的是一样多的;
- 灾难性遗忘(Catastrophic Forgetting),用特定训练数据去微调可能会把这个领域的表现变好,但也可能会把原来表现好的领域的能力变差。
2 参数高效微调
为了解决全量微调 FFT 存在的问题,提出了参数高效微调:
参数高效微调(Parameter-Efficient Fine Tuning, PEFT) 只对有效部分的参数进行训练,是目前比较主流的微调方案,其中比较流行的有 Prompt Tuning、Prefix Tuning、Freeze、**LoRA 和 QLoRA,**主推 QLoRA(Efficient Finetuning of Quantized LLMs) 微调,支持绝大部分主流的开源大模型。
2.1 Prompt Tuning
Prompt Tuning 的出发点是基座模型(Foundation Model)的参数不变,为每个特定任务,训练一个少量参数的小模型,在具体执行特定任务的时候按需调用。Prompt Tuning 是发生在 Embedding 这个环节的,基本原理是在输入序列前面,增加一些特定长度的特殊Token,以增大生成期望序列的概率。
2.2 Prefix Tuning
Prefix Tuning 也保证了基座模型本身是没有变的,是在 Transformer 的 Encoder 和 Decoder 的网络中都加了一些特定长度的特殊 Token。
2.3 Freeze
Freeze 方法,即参数冻结,对原始模型部分参数进行冻结操作,仅训练部分参数,以达到在单卡或不进行 TP 或 PP 操作时,就可以对大模型进行训练(在语言模型模型微调中,Freeze 微调方法仅微调 Transformer 后几层的全连接层参数,而冻结其它所有参数)。
2.4 LoRA
LoRA:Low-Rank Adaptation of Large Language Models 假设现在看到的这些大语言模型都是被过度参数化的。而过度参数化的大模型背后,都有一个低维的本质模型(即大模型参数虽多,但并不是所有的参数都是发挥作用的;大模型中有一部分参数,是非常重要的,是影响大模型生成结果的关键参数,这部分关键参数就是上面提到的低维的本质模型)。(有点类似Resnet的结构)
2.5 QLoRA
LoRA 效果已经非常好了,可以媲美全量微调的效果了,那为什么还要有个 QLoRA 呢?
QLoRA:Efficient Finetuning of Quantized Large Language Models,比 LoRA 多了一步量化(是一种在保证模型效果基本不降低的前提下,通过降低参数的精度,来减少模型对于计算资源的需求的方法),量化的核心目标是降低训练成本,特别是降后期的推理成本。
3 大模型微调的技术路线
- 监督式微调 SFT(Supervised Fine Tuning) 主要是通过人工标注的数据,用传统机器学习中监督学习的方法,对大模型进行微调;
- 基于人类反馈的强化学习微调 RLHF(Reinforcement Learning with Human Feedback) ,主要是把人类的反馈,通过强化学习的方式,引入到对大模型的微调中去,让大模型生成的结果,更加符合人类的一些期望;
- 基于 AI 反馈的强化学习微调 RLAIF(Reinforcement Learning with AI Feedback) ,原理大致跟 RLHF 类似,但是反馈的来源是 AI。主要是想解决反馈系统的效率问题,因为收集人类反馈,相对来说成本会比较高、效率比较低。
不同的分类角度,只是侧重点不一样,对同一个大模型的微调,也不局限于某一个路线,可以多个方案一起。最终目的都是能够在可控成本的前提下,尽可能地提升大模型在特定领域的能力。
读者福利:如果大家对大模型感兴趣,这套大模型学习资料一定对你有用
对于0基础小白入门:
如果你是零基础小白,想快速入门大模型是可以考虑的。
一方面是学习时间相对较短,学习内容更全面更集中。
二方面是可以根据这些资料规划好学习计划和方向。
包括:大模型学习线路汇总、学习阶段,大模型实战案例,大模型学习视频,人工智能、机器学习、大模型书籍PDF。带你从零基础系统性的学好大模型!
😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费
】🆓
👉AI大模型学习路线汇总👈
大模型学习路线图,整体分为7个大的阶段:(全套教程文末领取哈)
第一阶段: 从大模型系统设计入手,讲解大模型的主要方法;
第二阶段: 在通过大模型提示词工程从Prompts角度入手更好发挥模型的作用;
第三阶段: 大模型平台应用开发借助阿里云PAI平台构建电商领域虚拟试衣系统;
第四阶段: 大模型知识库应用开发以LangChain框架为例,构建物流行业咨询智能问答系统;
第五阶段: 大模型微调开发借助以大健康、新零售、新媒体领域构建适合当前领域大模型;
第六阶段: 以SD多模态大模型为主,搭建了文生图小程序案例;
第七阶段: 以大模型平台应用与开发为主,通过星火大模型,文心大模型等成熟大模型构建大模型行业应用。
👉大模型实战案例👈
光学理论是没用的,要学会跟着一起做,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
👉大模型视频和PDF合集👈
观看零基础学习书籍和视频,看书籍和视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
👉学会后的收获:👈
• 基于大模型全栈工程实现(前端、后端、产品经理、设计、数据分析等),通过这门课可获得不同能力;
• 能够利用大模型解决相关实际项目需求: 大数据时代,越来越多的企业和机构需要处理海量数据,利用大模型技术可以更好地处理这些数据,提高数据分析和决策的准确性。因此,掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求;
• 基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;
• 能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习框架等技术,这些技术的掌握可以提高程序员的编码能力和分析能力,让程序员更加熟练地编写高质量的代码。
👉获取方式:
😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费
】🆓