超参数
超参数控制模型的学习方式。将它们视为训练的设置。三个基本参数
Learning Rate
更新模型时的步长。- 太高 (0.01):模型跳跃,永不收敛
- 太低 (0.00001):训练需要永远
- 刚好 (0.00002):稳定改进
- Fine-tuning: 2e-5 到 5e-5
- 从零训练: 1e-4 到 1e-3
Batch Size
在更新 weights 之前处理多少个示例。- 小 (8):更多更新,不太稳定,需要更少内存
- 大 (128):更少更新,更稳定,需要更多内存
- 有限 GPU: 8-16
- 良好 GPU: 32-64
- 多个 GPU: 128+
Epochs
遍历整个数据集的次数。- 太少 (1):欠拟合,模型学习不够
- 太多 (100):过拟合,记忆训练数据
- 刚好 (3-10):良好平衡
次要设置
Warmup Steps
开始时逐渐增加 learning rate。Weight Decay
防止 weights 变得过大的正则化。- 默认值: 0.0(用于 LLM fine-tuning)
- 无正则化: 0
- 强正则化: 0.1
Gradient Accumulation
在有限硬件上模拟更大的批次。特定任务的默认值
Text Classification
Language Model Fine-tuning
Image Classification
何时调整
Learning rate 太高?- Loss 爆炸或变为 NaN
- Accuracy 疯狂跳跃
- 永不收敛
- Loss 几乎不下降
- 训练需要永远
- 卡在性能差的状态
- 内存不足 → 减少 batch size
- 训练不稳定 → 增加 batch size
- 如果内存有限,使用 gradient accumulation
快速开始值
不确定从哪里开始?试试这些:评估设置
控制训练期间何时以及如何评估您的模型:| 参数 | 描述 | 默认值 |
|---|---|---|
eval_strategy | 何时评估 (epoch, steps, no) | epoch |
eval_batch_size | 评估的批次大小 | 8 |
use_enhanced_eval | 启用高级指标(BLEU、ROUGE 等) | False |
eval_metrics | 要计算的指标(逗号分隔) | perplexity |
eval_save_predictions | 保存模型预测 | False |
eval_benchmark | 运行标准基准(mmlu、hellaswag、arc、truthfulqa) | None |
专业提示
- 从默认值开始 - 最初不要过度思考
- 一次更改一个 - 更容易看到什么有帮助
- 记录一切 - 跟踪什么对您的数据有效
- 使用验证集 - 监控过拟合