大语言模型科普系列——微调
作者: 就是野马 来源: 就是野马
回归大模型的科普文,之前讲到了模型训练的第一步——预训练阶段,这一步用无监督学习的方式,让模型在大规模语料的学习中掌握世界通用知识,若需要回看,点击这里《大语言模型科普系列——预训练》
今天我们一起了解下预训练之后的第二步——微调阶段。微调是用有监督学习的方式,让模型学习小规模人工标注的语料,提升模型在特定领域的任务表现,让模型变得更“专业”。特定领域的任务有意图识别、文章摘要、论文撰写、text2sql等。
**微调具体分为两种方法
-
PEFT参数高效调整
-
FFT全参数调整
**一、PEFT参数高效调整
旨在通过调整模型结构(模型结构可回看大语言模型科普系列——模型基本概念)中的小部分参数,提高预训练模型在特定任务上的表现,这类方法能直接降低模型微调的成本,现在市面上普遍使用PEFT方法对模型微调。PEFT的方法很多,这篇文章主要介绍3个比较主流的方法
**LoRA
-
以transformer为例,微调时,在模型的前馈层引入2个低秩矩阵,将矩阵和前馈层中原始权重进行相加,以这种方式微调模型的部分权重,进而改变模型的输出结果。
-
新权重=原始权重+引入的低秩矩阵
Adapter Tuning
通过在模型结构的不同层之间,加入一个小型神经网络层(“适配器”),这个神经网络层只有少量参数。微调时,只修改这个小型神经网络的参数,不改变预训练模型的原始参数,通过这个额外的适配器来调整模型最终的输出结果。
**Prefix Tuning
在模型结构的输入层加入特定任务的提示,这个提示可以是人为预设的,也可以是微调完成的,目的就是在任务开始时模型能根据提示来调整行为,输出结果。
二、FFT全参数调整
该方法就是微调预训练模型的所有参数,这样模型能在特定领域的任务上表现更好,但这个方法存在较多问题,所以不是目前的主流方法,仅供大家了解。
优点
-
训练方法简单
-
因为针对某一个训练任务进行所有参数更新,能更好的应对任务场景下的多种复杂需求
缺点
-
可能会过拟合
-
需要的训练资源(内存)、训练时间更多
-
因为是对所有参数进行优化,可能导致模型遗忘预训练过程中学到的知识
更多AI工具,参考Github-AiBard123,国内AiBard123