微调 chatGLM3-6b-base
时涉及的一些重要参数的详细解释
-
batch_size
: 批量大小,默认为4,每个GPU的训练批量大小。增加该值可以提高训练速度,但可能需要更多的显存。 -
lora_r
: Lora R维度,默认为64,指定Lora训练中用于调节的R维度大小。该参数影响Lora模块的复杂度和模型的表现。 -
weight_decay
: 权重衰减,默认为0.0,AdamW优化器的L2权重衰减率,用于防止模型过拟合。 -
learning_rate
: 学习率,默认为1e-4,优化器更新模型参数的步长。适当的学习率有助于模型的收敛。 -
fp16
: 是否使用fp16混合精度训练,默认为False,决定是否启用16位浮点精度训练,以减少内存使用和加快计算速度。 -
do_train
: 是否进行训练,默认为True,控制是否进行训练过程。 -
evaluation_strategy
: 评估策略,默认为’epoch’,决定模型评估的频率,是每个训练轮次还是其他策略。 -
warmup_ratio
: 预热比例,默认为0.03,学习率预热的比例。预热可以帮助学习率在训练初期平稳增长。 -
logging_steps
: 记录损失的频率,默认为1,指定每多少步记录一次训练损失。 -
optim
: 优化器,默认为’paged_adamw_8bit’,指定使用的优化器类型。 -
quant_type
: 量化数据类型,默认为"nf4",用于指定量化过程中的数据表示类型。 -
max_grad_norm
: 梯度裁剪最大范数,默认为0.3,防止梯度爆炸的最大梯度范数。 -
lora_alpha
: Lora alpha值,默认为16,控制Lora训练中的缩放因子。 -
save_strategy
: 保存检查点的策略,默认为’epoch’,决定模型检查点的保存频率。 -
trust_remote_code
: 是否信任远程代码,默认为True,决定是否允许使用远程代码。 -
compute_dtype
: 模型的计算数据类型,默认为torch.float16,指定模型计算时使用的数据类型。 -
use_auth_token
: 是否使用auth token,默认为False,决定是否需要认证令牌来访问特定资源。 -
double_quant
: 是否通过双重量化压缩量化统计数据,默认为True,控制是否使用双重量化来进一步压缩模型。 -
n_epochs
: 训练轮数,默认为5,指定训练过程中优化器更新的总轮次。 -
group_by_length
: 将序列按相同长度分组为批次,默认为True,优化批次数据处理方式。 -
tokenizer_type
: 分词器类型,默认为"llama",指定使用的分词器类型。 -
max_tokens
: 最大标记数,默认为4096,指定模型输入的最大标记数量。 -
use_fast
: 是否使用快速分词器,默认为False,决定是否使用快速分词器以提高处理速度。 -
gradient_checkpointing
: 是否使用梯度检查点,默认为True,决定是否启用梯度检查点以节省内存。 -
lora_dropout
: Lora dropout值,默认为0.05,指定Lora训练中的dropout率,以防止过拟合。 -
save_total_limit
: 最多保存检查点的数量,默认为3,指定最多保存的模型检查点数量。 -
training_recipe
: 训练配方,默认为"lora",指定使用的训练方式(Lora训练或完整训练)。 -
gradient_accumulation_steps
: 梯度累积步数,默认为1,指定在执行优化器步骤之前要累积的梯度数量。 -
logging_steps
: 记录损失的频率,默认为1,指定每多少步记录一次训练损失。 -
bits
: 量化模型的位数,默认为4,指定量化模型时使用的位数。