大模型微调的核心流程和LoRA原理
大模型微调的核心流程和LoRA原理

大模型微调的核心流程和LoRA原理

大模型微调(Fine-tuning)是在预训练模型的基础上,通过特定领域或任务的数据进行针对性训练,以提升模型在目标场景中的性能。其核心流程如下:

图片

1、明确目标和数据准备

明确模型的目标,比如是文本类型,还是图片类型,还是推理类型。并且做好评估模型的指标。

数据准备,尽量多收集更多场景的数据,确保数据的真实性和多样性,将数据分为训练集,验证集,测试集(常用的比例如80%-10%-10%)

2、数据预处理

将数据进行清洗,格式转换成模型识别的格式,还有使用预训练模型对应的分词

3、基座模型加载和模型参数设置

选择对应的基座模型,并进行模型参数设置,比如序列长度,数据类型,内存优化参数等

调整模型结构,指微调的方法,选择全参数还是参数高效微调,现在大模型微调基本上选择参数高效微调(如LoRA/QLoRA)

4、训练超参数及优化策略

比如设置学习率,通常较少的学习率是1e-5到5e-5,优化器选择,权重衰减,混合精度训练等

5、进行训练和验证

模型训练train()时可以多训练几个批次,拿着验证集去验证模型eval()

6、模型评估和优化

根据模型评估指标去评估,差异大时,需要进行超参数调优,进行多轮训练

7、模型保存及上线部署

模型保存save()导出,最后部署给别人调用。就像代码升级一样。

说一说我理解的参数高效微调模型的LoRA原理,是基于数学向量运算为理论基础,看下面的LoRA原理图,左边是基座模型,右边是LoRA层,训练时两边互相不干扰,训练完后进行统一的输出。模型本质是一个非常大的多维度向量,右边LoRA层就是利用2个小维度的向量相乘,得到一个大的向量,最后是2个同纬度的向量进行向量的相加。得出最后的结果输出。改变原模型输出质量,可以输出更准确的答案。

图片

请多互动,多多交流。

发表回复

您的电子邮箱地址不会被公开。