GIS开发 | 空间分析 | 软硬件技术

大模型微调常见参数详解

微调

是指在已经预训练好的大型语言模型基础上,使用特定的数据集进行进一步的训练,使模型适应特定任务或领域。微调主要目的是,完成知识注入、指令对齐。

主要调整参数

model_name_or_path:基础模型文件路径
deepspeed:显存优化策略配置,默认ds_z2_config.json,如果模型过大导致一张显卡无法加载,可以使用同路径下的ds_z3 _config.json配置(或者带offload的配置文件)。
dataset_dir: 数据集的路径(即data_info.json所在文件夹)
dataset: 数据集的名称(数据准备阶段data_info.json中的自定义的数据集名称)
template:模型类型,不同模型的对应关系参考GitHub中的对应关系表,此处使用qwen
output_dir: 模型保存路径
save_steps: 模型保存的步数
per_device_train_batch_size: 训练的batch size(太大可能导致显存不够)
gradient_accumulation_steps: 梯度更新步数(等效batch size为per_device_train_batch_size * gradient_accumulation_steps )
learning_rate: 学习率,在已证明有训练效果的参数下,若batch size变化n倍,学习率也要变化根号n倍,这样能够保证有较好的训练效果
num_train_epochs: 训练的轮数(数据集重复训练的次数),微调一般在10个epoch左右
quantization_bit: 量化位数,可选8,4(设置可以一定程度降低显存)
val_size: 评估数据集的比例,一般为0.1或0.2
per_device_eval_batch_size:评估的batch size(太大可能导致显存不够)
eval_steps: 模型评估的间隔

模型微调四种主流方法

全参数微调(Full-tuning)

完整调整模型所有参数,适合数据量充足、任务复杂的场景。优点为性能上限高,缺点是高计算开销且容易过拟合。

冻结微调(Freeze-tuning)

仅调整模型头部参数,计算成本低但适配能力有限,适用于简单分类任务。

LoRA微调

通过低秩矩阵分解,冻结原参数并添加可训练旁路网络,兼顾性能与效率,显存占用仅为全量微调的1/10。

QLoRA微调

量化版LoRA,进一步压缩参数精度至4bit,显存需求更低,适合消费级显卡部署。