LLaMA Factory模型微调

📅 2026/8/2 10:50:22
LLaMA Factory模型微调
使用的系统~ lsb_release-aNo LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu26.04LTS Release:26.04Codename: resolute~ nvidia-smi Sat Aug112:13:512026-----------------------------------------------------------------------------------------|NVIDIA-SMI580.173.02 Driver Version:580.173.02 CUDA Version:13.0|---------------------------------------------------------------------------------------|GPU Name Persistence-M|Bus-Id Disp.A|Volatile Uncorr. ECC||Fan Temp Perf Pwr:Usage/Cap|Memory-Usage|GPU-Util Compute M.||||MIG M.||||0NVIDIA GeForce RTX2070Off|00000000:03:00.0 Off|N/A||47% 40C P8 12W / 175W|1MiB / 8192MiB|0% Default||||N/A|--------------------------------------------------------------------------------------- -----------------------------------------------------------------------------------------|Processes:||GPU GI CI PID Type Process name GPU Memory||ID ID Usage||||No running processes found|-----------------------------------------------------------------------------------------创建虚拟环境conda create-nllamafactorypython3.12-yLoRA微调基本原理LLaMA Factory 是一个专为大型语言模型LLMs微调设计的低代码/无代码框架其核心微调原理主要基于参数高效微调PEFTParameter-Efficient Fine-Tuning技术。与传统需要更新模型全部参数的全量微调Full Fine-tuning不同LLaMA Factory 通过冻结预训练模型的主干参数仅对少量新增的可训练参数进行更新从而大幅降低显存需求和计算成本。下载LLaMA Factorymkdirllama_factory_testcdllama_factory_test# 克隆LLaMA-Factorygitclone--depth1https://github.com/hiyouga/LLaMA-Factory.gitcdLLaMA-Factory# 安装依赖conda activate llamafactory pipinstall-e.pipinstall-rrequirements/metrics.txt准备训练用的数据集LLaMA Factory 有个data目录该目录是默认的一些测试数据集dataset_info.json文件记录了LLaMA Factory可以识别到的数据集。启动LLaMA Factory执行llamafactory-cli webui启动webui(llamafactory)➜ LLaMA-Factory git:(main)llamafactory-cli webui Visit http://ip:portforWeb UI, e.g., http://127.0.0.1:7860 * Running onlocalURL: http://0.0.0.0:7860 * To create a public link,setshareTrueinlaunch().访问页面打开如下所示微调使用webui微调微调完成后在目录下生成了对应的文件使用命令微调qwen3_lora_sft.yaml修改后的内容如下### 模型配置 (Model)model_name_or_path:/home/gillbert/Downloads/code/hugging_face_test/modelscope_test/llm/models/Qwen--Qwen3.5-2B/snapshots/master# 预训练模型的名称或本地路径这里使用的是 Qwen3.5-2B 模型这里我使用提前从ModelScope下载好的trust_remote_code:true# 是否信任并允许执行从 Hugging Face Hub 下载的远程代码部分新模型需要开启### 微调方法 (Method)stage:sft# 训练阶段sft (Supervised Fine-Tuning, 有监督微调)do_train:true# 是否执行训练操作finetuning_type:lora# 微调类型lora (参数高效微调冻结主干网络)lora_rank:8# LoRA 的低秩维度值越大模型容量越高但显存占用也越大常见 8, 16, 32, 64lora_target:all# 应用 LoRA 的目标模块all 表示对模型中所有线性层应用 LoRA### 数据集配置 (Dataset)dataset:identity# 训练数据集名称需在 LLaMA Factory 的 dataset_info.json 中定义template:qwen3_5# 对话模板格式指定 Qwen3 专用的无思考过程模板cutoff_len:2048# 序列截断长度超过此长度的 token 将被截断需根据显存大小调整max_samples:1000# 最大训练样本数这里限制为 1000 条常用于快速测试或资源受限场景preprocessing_num_workers:16# 数据预处理时的并行工作线程数加快数据加载和 tokenize 速度dataloader_num_workers:4# DataLoader 加载数据时的并行进程数避免数据加载成为训练瓶颈### 输出与日志 (Output)output_dir:saves/qwen3.5-2b/lora/sft# 模型权重和日志的保存路径logging_steps:10# 每训练 10 步打印一次训练日志如 loss, learning_ratesave_steps:500# 每训练 500 步保存一次模型检查点 (checkpoint)plot_loss:true# 训练结束后是否自动绘制 Loss 曲线图overwrite_output_dir:true# 如果输出目录已存在是否直接覆盖防止误删历史权重可设为 falsesave_only_model:false# 保存时是否只保存模型权重设为 false 会同时保存优化器状态方便断点续训report_to:none# 实验追踪工具可选 none, wandb, tensorboard, swanlab, mlflow### 训练超参数 (Train)per_device_train_batch_size:1# 每张 GPU 上的训练批次大小显存不足时调小显存充足时调大gradient_accumulation_steps:8# 梯度累积步数等效全局 Batch Size per_device_batch_size * 累积步数 * GPU数量learning_rate:1.0e-4# 初始学习率LoRA 微调常用范围通常在 1e-4 到 5e-5 之间num_train_epochs:3.0# 完整的训练轮数整个数据集被遍历的次数lr_scheduler_type:cosine# 学习率调度器类型cosine 表示学习率随训练过程呈余弦曲线平滑下降warmup_ratio:0.1# 学习率预热比例训练前 10% 的步数内学习率从 0 线性增加到设定值防止初期梯度爆炸bf16:true# 是否使用 BFloat16 混合精度训练相比 FP16 数值更稳定不易溢出推荐 A100/4090 等显卡使用ddp_timeout:180000000# 分布式训练 (DDP) 的超时时间秒防止在大数据集初始化或保存权重时意外中断resume_from_checkpoint:null# 断点续训的 checkpoint 路径设为 null 表示从头开始训练### 评估配置 (Eval)# eval_dataset: alpaca_en_demo # 验证集数据集名称取消注释即可开启验证# val_size: 0.1 # 如果没有指定 eval_dataset可从训练集中自动划分 10% 作为验证集# per_device_eval_batch_size: 1 # 每张 GPU 上的评估批次大小# eval_strategy: steps # 评估策略steps (按步数), epoch (按轮数), no (不评估)# eval_steps: 500 # 每训练 500 步执行一次验证集评估启动微调llamafactory-cli train command-fine-tuning/qwen3_lora_sft.yaml微调完成后可以看到saves目录多了数据参考文档https://llamafactory.readthedocs.io/en/latest/getting_started/installation.html