赞
踩
目前传统的 Fine-Tuning 有两个痛点问题:参考Prompt-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 阶段需要新引入额外的参数以适配相应的任务需要,因此在样本数量有限的情况容易发生过拟合,降低了模型的泛化能力。因此需要面对预训练语言模型的过拟合问题。
全量微调(Full Fine Tuning, FFT):对全量的参数进行训练,用特定领域的数据对大模型的训练效果会很好。
但全量微调 FFT 存在下面两个问题:
- 训练的成本会比较高,因为微调的参数量跟预训练的是一样多的;
- 灾难性遗忘(Catastrophic Forgetting),用特定训练数据去微调可能会把这个领域的表现变好,但也可能会把原来表现好的领域的能力变差。
为了解决全量微调 FFT 存在的问题,提出了参数高效微调:
参数高效微调(Parameter-Efficient Fine Tuning, PEFT)只对有效部分的参数进行训练,是目前比较主流的微调方案,其中比较流行的有 Prompt Tuning、Prefix Tuning、Freeze、LoRA 和 QLoRA,主推 QLoRA(Efficient Finetuning of Quantized LLMs) 微调,支持绝大部分主流的开源大模型。
Prompt Tuning 的出发点是基座模型(Foundation Model)的参数不变,为每个特定任务,训练一个少量参数的小模型,在具体执行特定任务的时候按需调用。Prompt Tuning 是发生在 Embedding 这个环节的,基本原理是在输入序列前面,增加一些特定长度的特殊Token,以增大生成期望序列的概率。参考 Prompt-Tuning:深度解读一种新的微调范式
Prefix Tuning 也保证了基座模型本身是没有变的,是在 Transformer 的 Encoder 和 Decoder 的网络中都加了一些特定长度的特殊 Token。
Freeze 方法,即参数冻结,对原始模型部分参数进行冻结操作,仅训练部分参数,以达到在单卡或不进行 TP 或 PP 操作(请参考 TP 张量并行 和 PP 流水线并行的定义)时,就可以对大模型进行训练(在语言模型模型微调中,Freeze 微调方法仅微调 Transformer 后几层的全连接层参数,而冻结其它所有参数)。
LoRA:Low-Rank Adaptation of Large Language Models 假设现在看到的这些大语言模型都是被过度参数化的。而过度参数化的大模型背后,都有一个低维的本质模型(即大模型参数虽多,但并不是所有的参数都是发挥作用的;大模型中有一部分参数,是非常重要的,是影响大模型生成结果的关键参数,这部分关键参数就是上面提到的低维的本质模型)。(有点类似Resnet的结构)
LoRA 效果已经非常好了,可以媲美全量微调的效果了,那为什么还要有个 QLoRA 呢?
QLoRA:Efficient Finetuning of Quantized Large Language Models,比 LoRA 多了一步量化(是一种在保证模型效果基本不降低的前提下,通过降低参数的精度,来减少模型对于计算资源的需求的方法),量化的核心目标是降低训练成本,特别是降后期的推理成本。
- 监督式微调 SFT(Supervised Fine Tuning) 主要是通过人工标注的数据,用传统机器学习中监督学习的方法,对大模型进行微调;
- 基于人类反馈的强化学习微调 RLHF(Reinforcement Learning with Human Feedback) ,主要是把人类的反馈,通过强化学习的方式,引入到对大模型的微调中去,让大模型生成的结果,更加符合人类的一些期望;
- 基于 AI 反馈的强化学习微调 RLAIF(Reinforcement Learning with AI Feedback) ,原理大致跟 RLHF 类似,但是反馈的来源是 AI。主要是想解决反馈系统的效率问题,因为收集人类反馈,相对来说成本会比较高、效率比较低。
不同的分类角度,只是侧重点不一样,对同一个大模型的微调,也不局限于某一个路线,可以多个方案一起。最终目的都是能够在可控成本的前提下,尽可能地提升大模型在特定领域的能力。
具体模型训练参考基于ChatGLM-6B、ChatGLM2-6B、ChatGLM3-6B模型,进行下游具体任务微调,涉及Freeze、Lora、P-tuning、全参微调等
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。