1. 注册星火maas平台账号
2. 选择 训练模型类型 细分类型为
文本对话模型 文生图模型
图像分类模型 文本分类模型
此处我们选择 文本对话模型
选择基础模型
此处选择 spark lite 轻量训练成本低
3. 选择训练方式: 零代码精调
训练方法: LoRA
LoRA:LoRA在固定预训练大模型本身的参数基础上,在保留自注意力模块中原始权重矩阵的基础上,对权重矩阵进行低秩分解,训练过程中只更新低秩部分的参数
4. 创建数据集
选择跟模型对应的 文本对话数据集 内部格式为 json
示例数据
[{
"instruction": "小姐,别的秀女都在求中选,唯有咱们小姐想被撂牌子,菩萨一定记得真真儿的——",
"input": "",
"output": "嘘——都说许愿说破是不灵的。"
}]
设置数据集类型 为训练集
设置用途为 有监督精调sft
设置数据集格式 为 AIpaca
ShareGPT 格式 适合训练多轮对话模型。Alpaca 格式 适用于单轮任务,如总结、翻译、问答等。
5 参数设置
学习率: 控制在每次迭代中更新模型参数的步幅。建议值:1e-5~1e-4(1e-5=0.00001,1e-4=0.0001)。较小的学习率使更新更加稳定,但可能需要更多的迭代才能达到收敛。较大的学习率可以加快收敛速度,但可能会导致不稳定的训练过程甚至发散
训练次数: 训练数据的次数,建议值为1-20,训练轮数过多可能会导致过拟合,出现通用能力的遗忘;训练轮数过少可能无法充分训练模型。训练的数据集较小可以设置大一点的epoch,让模型充分收敛。100条左右的数据集,建议epochs为10-20;1000条左右的数据集,建议epochs为5-10;10000条左右的数据集,建议epochs为2-5
输入序列分词后的最大长度: 模型每次处理的文本序列的最大长度限制(通常以分词后的token数量计算)。建议值为512 -2048,较长的序列允许模型处理更多的上下文信息,能够捕捉到更复杂的依赖关系,但会增加计算开销和内存占用。较短的序列可以提高计算效率,但可能丢失部分上下文信息
Galore特性: Galore (Gradient Low-Rank Projection) 即梯度低秩投影,能够通过投影技术降低优化器状态的内存占用,大幅减少训练大模型时的内存需求,结合8位精度优化器进一步优化内存使用,同时保持模型的准确性。此外,Galore具备动态子空间切换和分层更新机制,使得模型训练更加灵活高效
BAdam特性: Badam (Block coordinate method with Adam as an inner solver) 是一种基于块坐标优化的内存高效优化器。通过将模型参数划分为多个块,每次只更新一个块的参数,大大减少了内存使用量。其核心特性包括块坐标优化框架、动态块切换机制以及结合Adam优化器,从而在有限的硬件资源上实现完整参数的高效微调
Unsloth特性:Unsloth是一款轻量级开源库,专注于加速大语言模型的微调过程。通过优化内存使用,减少40%-80%的内存占用,并能使训练速度提升2-5倍,支持超长上下文窗口,最大可达228K tokens,使其在处理长序列任务时非常高效
LoRA作用模块: LoRA作用模块主要集中在大型语言模型的自注意力机制和前馈神经网络上。通过引入低秩适配器,LoRA可以减少这些层在微调过程中的计算和内存需求,同时保留模型的性能
LoRA秩: LoRA秩指在微调过程中使用的低秩矩阵的维度,决定适配器的复杂度和更新参数的数量。较低的秩可以减少内存和计算需求,提高微调效率,但可能会影响模型表现;较高的秩则能保留更多信息,适合对精度要求较高的任务,但过高的秩可能导致过拟合。建议值为4-64
LoRA随机丢弃: LoRA随机丢弃是一种正则化技术,用于在微调过程中随机丢弃低秩适配器中的部分权重,以防止模型过拟合,能在不显著增加计算复杂度的前提下提高模型的整体表现。基于此,模型能够在小数据集上提升泛化能力。LoRA的dropout应设置较小,以确保性能的稳定性,建议值为0-0.02
LoRA缩放系数: LoRA缩放系数(LoRA Alpha)用于调整低秩适配器对模型权重更新的影响,帮助控制适配器在微调过程中的贡献。较大的缩放系数可以增强适配器的作用,而较小的系数则保留更多原始模型的特征。建议值为16-32,合适的LoRA缩放系数可以平衡模型性能和适配器的有效性,确保在微调过程中模型的稳定性与适配器的表现都得到优化
训练中
标签:训练,模型,微调,笔记,第一课,datawhale,LoRA,适配器,内存 From: https://www.cnblogs.com/dennicliu/p/18598359