大模型微调是一项复杂的系统工程,合理的参数配置与显存优化直接决定训练效果与效率。本教程整合了北航ACT实验室、LLaMA-Factory核心开发者以及社区博主的实战经验,系统讲解调参方法和显存影响因素,并附带详细实验数据,助你高效“炼丹”。
调参参考经验总结
训练模型如同“炼丹”,并无万能参数组合。借鉴权威经验能够大幅降低试错成本。以下整理了三种经过验证的调参策略。
1. 北航 ACT 实验室的调参经验
北航ACT实验室的教程[1]提出了四步调参法:
增大学习率
默认学习率为5e-5,调高一倍至1e-4,使模型每轮迭代的学习速度显著提升。增加训练轮数
默认训练轮数为3轮,调整为8轮,让模型获得更充分的学习。调整批处理大小
默认批处理大小为2。通常保持 批处理大小 × 梯度累积 × 显卡数量 = 32 即可。增大LoRA参数
默认LoRA秩为8,缩放系数为16;建议将秩提高至16,缩放系数调整为32。
2. 核心开发者的调参经验
LLaMA-Factory 核心开发者马勇强在知乎分享的入门文档[2],其微调脚本及关键修改点如下:
CUDA_VISIBLE_DEVICES=0 llamafactory-cli train
--stage sft
--do_train
--model_name_or_path /media/codingma/LLM/llama3/Meta-Llama-3-8B-Instruct
--dataset alpaca_gpt4_zh,identity,adgen_local
--dataset_dir ./data
--template llama3
--finetuning_type lora
--output_dir ./sa ves/LLaMA3-8B/lora/sft
--overwrite_cache
--overwrite_output_dir
--cutoff_len 1024
--preprocessing_num_workers 16
--per_device_train_batch_size 2
--per_device_eval_batch_size 1
--gradient_accumulation_steps 8
--lr_scheduler_type cosine
--logging_steps 50
--warmup_steps 20
--sa ve_steps 100
--eval_steps 50
--evaluation_strategy steps
--load_best_model_at_end
--learning_rate 5e-5
--num_train_epochs 5.0
--max_samples 1000
--val_size 0.1
--plot_loss
--fp16
对应的六项关键修改点:
降低截断长度
从2048降至1024,减少显存占用并控制样本长度。提高预热步数
从0增加至20,使学习率平滑启动,提升训练稳定性。增加训练轮数
从3轮提升至5.0轮,增加训练深度。减少最大样本数
从100000降至1000,适合小规模实验或快速验证。提高验证集比例
从0提升至0.1(10%),便于监控过拟合与模型泛化能力。修改计算类型
从bf16改为fp16,适配部分显卡或框架兼容性。
3. 其它博主的调参经验
easy-dataset作者ConardLi的文章[3]总结了三条经验:
大的
batch_size需要搭配大学习率,小的batch_size搭配小学习率;在小数据集微调时,batchsize 可直接从1开始。截断长度应适当增大(如4096),否则长文本数据会被截断,导致信息缺失。
LoRA秩从8开始即可,最低不应小于8;小数据集不要设置过大,避免过拟合。
