llama factory-train loss-函数图问题记录-疑似没收敛

打印 上一主题 下一主题

主题 943|帖子 943|积分 2839

配景:
3分类使命,一个有分类表明(w-explain),一个没有分类表明(wo-explain),w-explain看起来没有收敛,两个训练配置完全一致:
  1. #!/bin/bash
  2. PYTORCH_CUDA_ALLOC_CONF=max_split_size_mb:128 \
  3. CUDA_VISIBLE_DEVICES=0,1 python -m torch.distributed.run --nproc_per_node=2 src/train.py\
  4.     --stage sft \
  5.     --do_train True \
  6.     --model_name_or_path {模型路径} \
  7.     --preprocessing_num_workers 16 \
  8.     --finetuning_type lora \
  9.     --template llama3 \
  10.     --flash_attn auto \
  11.     --dataset_dir data \
  12.     --dataset {数据集路径} \
  13.     --cutoff_len 4096 \
  14.     --learning_rate 5e-05 \
  15.     --num_train_epochs 3.0 \
  16.     --max_samples 100000 \
  17.     --per_device_train_batch_size 1 \
  18.     --gradient_accumulation_steps 8 \
  19.     --gradient_checkpointing true   \
  20.     --lr_scheduler_type cosine \
  21.     --max_grad_norm 1.0 \
  22.     --logging_steps 5 \
  23.     --save_steps 100 \
  24.     --warmup_steps 0 \
  25.     --packing False \
  26.     --report_to all \
  27.     --output_dir {输出路径} \
  28.     --fp16 True \
  29.     --plot_loss True \
  30.     --ddp_timeout 180000000 \
  31.     --optim adamw_torch \
  32.     --lora_rank 8 \
  33.     --lora_alpha 16 \
  34.     --lora_dropout 0 \
  35.     --lora_target all
复制代码
有表明w-explain

llama factory原图WandB的图
看左边的不仔细看差点受骗已往,看右边才知道没收敛
没有表明wo-explain

llama factory原图WandB的图
这个一看就收敛的很好,llamafactory原图害我不浅啊!
   一般认为loss低于多少是拟合了
  判断模型是否拟合,不能单单依靠于 loss 的绝对值,因为不同的使命和模型的 loss 范围可能差别很大。以下是一些判断模型拟合的思路和经验:

1. 结合使命类型和 Loss 界说



  • 分类使命(如交叉熵丧失 Cross-Entropy Loss)
    Loss 的范围通常在 [0, log(C)],其中 C 是类别数。假如 Loss 降到靠近 0.1~0.01 或更低,通常表明模型已经很好地拟合了。
  • 回归使命(如均方误差 MSE Loss)
    Loss 越靠近 0,拟合结果越好。这里的绝对值完全取决于目标值的数值范围。比方:

    • 假如目标值范围在 [0, 1],Loss 低于 0.01 通常是很好的拟合。
    • 假如目标值范围在 [0, 100],Loss 可能需要低于 1。

  • 语言模型(如 GPT 或 BERT 的丧失)
    常用 perplexity (狐疑度) 来权衡模型性能:

    • Loss 和 Perplexity 的关系:

      通常,训练后的语言模型 Loss 会在 1~3 范围内,Perplexity 在 2~20 是常见的拟合水平。


2. 相对变革趋势更重要

无论使命类型,以下趋势更值得关注:


  • Loss 稳定收敛:假如训练过程中 Loss 持续降落并趋于稳定,表明模型已逐步拟合。
  • 验证 Loss 和训练 Loss 相近:验证集 Loss 不明显高于训练集 Loss,表明模型未过拟合。

    • 假如验证 Loss 和训练 Loss 差距较大,可能有过拟合风险。
    • 假如验证 Loss 恒久不降落,可能有欠拟合问题。


3. 评估模型性能的其他指标

Loss 仅是训练优化的权衡指标,更重要的是现实使命中的性能指标:


  • 分类使命:看正确率(Accuracy)、F1 分数等是否达到盼望值。
  • 回归使命:看 RMSE 或 R² 是否达到预期。
  • 语言模型:结合 Perplexity 和现实生成质量评估。

4. 一些经验值参考

以下是一些经验值,供不同使命参考:
使命类型Loss 范围(参考)说明二分类(CrossEntropy)0.01 ~ 0.1Loss 越靠近 0,分类边界越明确。多分类(CrossEntropy)0.1 ~ log(C)根据类别数 C 调整盼望值,比方 C=10 时 Loss ~ 1.回归使命(MSE)目标值范围的 1% ~ 5%Loss 的合理范围需根据目标值的现实范围计算。语言模型(CrossEntropy)1.0 ~ 3.0GPT/BERT 等语言模型的常见 Loss 范围。
总结

Loss 低于多少是拟合,取决于详细使命和 Loss 的界说。你需要结合以下两点:

  • Loss 是否稳定收敛,且训练集和验证集 Loss 靠近。
  • 性能指标是否达到预期(如正确率、F1、Perplexity 等)。

现实经验总结


  • 6 分类 Loss 的经验范围

    • Loss < 0.4:通常认为模型已经很好地拟合。
    • Loss 在 0.5~0.8:模型可能还未完全收敛,继续训练可能有用。
    • Loss > 1.0:说明模型可能欠拟合,可能需要调整数据、模型或超参数。

2.3分类 Loss 的经验范围


  • 训练后 Loss 通常 < 0.5,收敛到 0.1~0.3 表现为非常好的拟合。
希望这能帮到你!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

正序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

宁睿

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表