> 技术文档 > 使用LLaMA Factory进行模型微调全流程_llama-factory 本地微调 mac

使用LLaMA Factory进行模型微调全流程_llama-factory 本地微调 mac


使用 LLaMA Factory 进行模型微调全流程

前面提到了整个 LLaMA Factory 模型微调环境的搭建以及 Ollama + MaxKB 实现模型本地部署与可视化交互界面部署的过程。这篇博客主要针对模型微调的过程进行讲解。以下是跳转链接:
Ollama+MaxKB实现模型本地部署
LLaMA Factory 模型微调环境搭建

模型微调需要了解的参数

如果只是自己做一些简单的微调,可以跳过此部分。

参数名称 作用 推荐值/范围 解释 学习率(Learning Rate) 控制模型权重更新的步幅大小。影响训练的收敛速度和稳定性。 1e-5 到 5e-6(小规模微调) 较小的学习率可以避免模型参数大幅改变,有助于保留原模型知识,特别适合微调已有的预训练模型。 训练轮数(Epochs) 模型对整个训练集的完整遍历次数。影响训练时间和模型性能。 1~3 过多轮次可能导致过拟合,尤其在数据量较小的情况下。建议观察验证集的损失变化来决定是否停止训练。 批量大小(Batch Size) 一次训练中处理的数据样本数量。影响内存占用和训练速度。 8~64 较大的批量大小能更稳定地收敛,但需要更多显存。小批量适合显存有限的情况下。 权重衰减(Weight Decay) 用于正则化,防止模型过拟合,控制权重值变得过大。 1e-2 到 1e-4 较大的值增加正则化力度,防止模型对训练集过度拟合,但可能稍微降低训练效果。 Lora Rank(LoRA 的秩) LoRA 是一种低秩微调方法,控制新增参数的数量,避免调整整个模型权重。 4~16 较低的秩值(如4)适合显存较小的设备,较高的值(如16)能捕获更多任务相关信息,但显存占用也会增加。 学习率调度器(Scheduler) 调整学习率随时间的变化,防止训练中学习率恒定带来的问题。 常用:线性衰减(Linear Decay) 线性衰减或余弦退火(Cosine Annealing)是较好的选择,可以在训练后期降低学习率,提升稳定性。 冻结层数(Frozen Layers) 冻结预训练模型的某些层,使其参数不更新,仅微调部分层。 前 N 层(如冻结前 10 层) 冻结底层可以减少显存消耗,同时保留原有知识;仅调整高层(与任务相关)能更快适应新任务。 梯度裁剪(Gradient Clipping) 限制梯度更新的最大值,防止梯度爆炸影响模型训练。 1.0 或 5.0 常用在高学习率或长序列训练任务中,确保训练稳定性。 验证间隔(Validation Interval) 每隔多少步对验证集进行评估,观察模型的表现变化。 每 500 或 1000 步 过长的间隔可能错过问题,过短则可能浪费计算资源。 模型初始化方式(Initialization) 是否加载预训练模型的权重作为微调的基础。 常用:加载预训练模型(如 Qwen 权重) 加载预训练模型可以加速收敛,同时利用模型原有的知识;若从头开始训练则需要更多数据和时间。 Dropout 比例(Dropout Rate) 随机丢弃一部分神经元,防止过拟合。 0.1 到 0.3 较高的 Dropout 能增强泛化能力,适合数据较少或复杂任务;但过高可能导致模型难以收敛。 序列长度(Sequence Length) 输入序列的最大长度,影响训练效率和内存占用。 512 或 1024(根据任务需求调整) 较大的序列长度适合长文本任务,但可能增加计算成本和显存需求。 优化器(Optimizer) 用于调整模型参数的算法。 AdamW(常用优化器) AdamW 是预训练模型微调的标准选择,适合大多数场景。 混合精度训练(Mixed Precision Training) 使用 FP16 或 BF16 精度,减少显存占用,加速训练。 启用 AMP(自动混合精度) 适合显存较小的设备,但可能略微影响模型性能。

原始模型文件下载

国内建议使用 魔搭社区 下载模型文件,有特殊网络环境也可以选择 HuggingFace 网站下载模型文件。

https://www.modelscope.cn/homehttps://huggingface.co/

这里我以魔搭社区演示如何寻找合适的模型文件。使用HuggingFace可以参考我的另一篇博客:https://blog.csdn.net/weixin_46241866/article/details/144700025?
以通义千问模型为例,首先在搜索框内输入Qwen2.5-7B可以看到推荐了一堆的模型文件,我们找到后缀为 Instruct 的,这是已经经过微调的模型文件,我们可以进行小规模的微调,足以达到使用的条件。
使用LLaMA Factory进行模型微调全流程_llama-factory 本地微调 mac
在页面中找到Git下载链接。
使用LLaMA Factory进行模型微调全流程_llama-factory 本地微调 mac
随后在电脑手动创建一个用于存储我们下载的模型文件的文件夹,随后使用Git工具拉取模型文件。模型文件较大,拉取过程也没有进度条,可以耐心等待。
使用LLaMA Factory进行模型微调全流程_llama-factory 本地微调 mac

模型微调

首先需要准备数据集,也就是用来微调模型的数据,主要包含输入跟输出的部分。在LLaMA-Factory/data目录下其实有提供了一些模板数据集。我们将自己的数据集放到data目录下。
使用LLaMA Factory进行模型微调全流程_llama-factory 本地微调 mac
打开该目录下的dataset.json文件,将我们的数据文件配置进来,包含数据集命名以及文件路径。
使用LLaMA Factory进行模型微调全流程_llama-factory 本地微调 mac
配置完成即可直接在LlamaBoard页面中看到数据集。
使用LLaMA Factory进行模型微调全流程_llama-factory 本地微调 mac
进行微调需要如下配置(具体配置据需求而定)
使用LLaMA Factory进行模型微调全流程_llama-factory 本地微调 mac
使用LLaMA Factory进行模型微调全流程_llama-factory 本地微调 mac
使用LLaMA Factory进行模型微调全流程_llama-factory 本地微调 mac
使用LLaMA Factory进行模型微调全流程_llama-factory 本地微调 mac
使用LLaMA Factory进行模型微调全流程_llama-factory 本地微调 mac
点击开始,直接执行微调,此时可以看到日志打印了进度信息,等待微调完毕即可。
使用LLaMA Factory进行模型微调全流程_llama-factory 本地微调 mac
至此模型微调结束
但模型微调完成后我们需要对模型进行导出以及转换与量化。将在这篇博客中介绍: