1. 基本设置
-
--model_type
- 用途:指定模型的类型。
- 默认值:通常由实现决定。
- 常用值:如
mini-internvl-chat-2b-v1_5
、bert
、gpt-3
。
-
--model_id_or_path
- 用途:指定模型的路径或模型ID。
- 默认值:无默认值,必须提供。
- 常用值:如
'/path/to/model'
、'model_name_or_path'
。
-
--output_dir
- 用途:指定模型保存的目录。
- 默认值:无默认值,必须提供。
- 常用值:如
'/path/to/output_dir'
。
2. 数据集设置
-
--dataset
- 用途:指定训练和评估数据集的路径。
- 默认值:无默认值,必须提供。
- 常用值:如
'/path/to/dataset.json'
。
-
--max_length
- 用途:指定输入序列的最大长度。
- 默认值:通常为 512。
- 常用值:如 1024、2048(根据模型和任务需求)。
-
--train_dataset_sample
- 用途:从训练数据集中抽样的样本数量。
- 默认值:无默认值,需指定。
- 常用值:如 1000、2000。
3. 微调设置
-
--sft_type
- 用途:指定微调的类型。
- 默认值:通常为
full
或其他类型。 - 常用值:如
lora
(低秩适配)、full
(全面微调)。
-
--dtype
- 用途:指定数据类型。
- 默认值:通常为
float32
。 - 常用值:如
bf16
、fp16
。
-
--learning_rate
- 用途:设置优化器的学习率。
- 默认值:通常为 5e-5。
- 常用值:如 1e-4、3e-5、5e-5。
-
--num_train_epochs
- 用途:指定训练周期数。
- 默认值:通常为 3。
- 常用值:如 2、3、5。
4. 批次大小设置
-
--per_device_train_batch_size
- 用途:每个设备上的训练批次大小。
- 默认值:通常为 8。
- 常用值:如 1、4、8、16(根据显存和任务需求)。
-
--per_device_eval_batch_size
- 用途:每个设备上的评估批次大小。
- 默认值:通常为 8。
- 常用值:如 1、4、8、16(可以比训练批次大)。
-
--gradient_accumulation_steps
- 用途:梯度累积步骤数,用于减少显存需求。
- 默认值:通常为 1。
- 常用值:如 1、4、8、16。
5. 保存与评估策略
-
--evaluation_strategy
- 用途:指定评估策略。
- 默认值:
no
。 - 常用值:如
steps
、epoch
。
-
--eval_steps
- 用途:在
evaluation_strategy
为steps
时,指定评估的步数。 - 默认值:无默认值,需指定。
- 常用值:如 500、1000。
- 用途:在
-
--save_strategy
- 用途:指定模型保存策略。
- 默认值:
no
。 - 常用值:如
steps
、epoch
。
-
--save_steps
- 用途:在
save_strategy
为steps
时,指定保存模型的步数。 - 默认值:无默认值,需指定。
- 常用值:如 500、1000。
- 用途:在
-
--save_total_limit
- 用途:保存的最大模型数量。
- 默认值:通常为 1。
- 常用值:如 1、2、3。
-
--load_best_model_at_end
- 用途:训练结束时是否加载最佳模型。
- 默认值:
False
。 - 常用值:
True
。
-
--metric_for_best_model
- 用途:用于选择最佳模型的指标。
- 默认值:通常为
loss
。 - 常用值:如
accuracy
、f1
、loss
。
-
--greater_is_better
- 用途:指定是否指标值越大越好。
- 默认值:
True
。 - 常用值:
True
(如准确率),False
(如损失值)。
6. 日志设置
--logging_steps
- 用途:指定记录日志的步数。
- 默认值:通常为 500。
- 常用值:如 10、100、500。
7. 硬件和计算优化
--use_flash_attn
- 用途:是否使用 Flash Attention(加速注意力计算)。
- 默认值:
False
。 - 常用值:
True
(如果硬件支持),False
。
8. 其他设置
--batch_size
- 用途:这个参数通常在多卡训练中使用,指定总的批次大小。
- 默认值:不常用,通常用
--per_device_train_batch_size
。 - 常用值:根据实际情况指定。
- 单设备总批次大小 =
--per_device_train_batch_size
- 多设备总批次大小 =
--per_device_train_batch_size
× 设备数量 - 如果使用梯度累积,有效总批次大小 = (
--per_device_train_batch_size
× 设备数量) ×--gradient_accumulation_steps