Swift常用Lora微调参数以及常用值(个人参考用)

1. 基本设置

  • --model_type

    • 用途:指定模型的类型。
    • 默认值:通常由实现决定。
    • 常用值:如 mini-internvl-chat-2b-v1_5bertgpt-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
    • 常用值:如 bf16fp16
  • --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
    • 常用值:如 stepsepoch
  • --eval_steps

    • 用途:在 evaluation_strategysteps 时,指定评估的步数。
    • 默认值:无默认值,需指定。
    • 常用值:如 500、1000。
  • --save_strategy

    • 用途:指定模型保存策略。
    • 默认值no
    • 常用值:如 stepsepoch
  • --save_steps

    • 用途:在 save_strategysteps 时,指定保存模型的步数。
    • 默认值:无默认值,需指定。
    • 常用值:如 500、1000。
  • --save_total_limit

    • 用途:保存的最大模型数量。
    • 默认值:通常为 1。
    • 常用值:如 1、2、3。
  • --load_best_model_at_end

    • 用途:训练结束时是否加载最佳模型。
    • 默认值False
    • 常用值True
  • --metric_for_best_model

    • 用途:用于选择最佳模型的指标。
    • 默认值:通常为 loss
    • 常用值:如 accuracyf1loss
  • --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
  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值