跳转到主要内容

超参数扫描

自动搜索最佳超参数。

快速开始

Python API

参数

搜索空间

默认搜索空间

默认情况下,扫描搜索:
  • 学习率:1e-5 到 1e-3(对数均匀)
  • 批量大小:2、4、8、16(分类)
  • 预热比例:0.0 到 0.2(均匀)
LoRA 秩不包含在默认扫描中。如果需要,请通过 sweep_params 手动添加。

自定义搜索空间

sweep_params 参数期望一个 JSON 字符串。支持列表和字典格式:
支持的字典类型:

扫描后端

Optuna

高效的贝叶斯优化:

网格搜索

对所有组合进行穷举搜索:

随机搜索

从搜索空间随机采样:

指标

标准指标

增强评估指标

启用 use_enhanced_eval 以访问其他指标:

增强评估参数

标准基准测试

使用 eval_benchmark 运行标准 LLM 基准测试:

自定义指标示例

示例:找到最佳 LR

查看结果

Optuna 仪表板

W&B 原生 Sweep 仪表板

默认情况下,sweep 在本地运行,仅将单个运行记录到 W&B。启用 W&B 原生 sweep 集成 可获取聚合视图、平行坐标图和参数重要性分析,所有这些都在专用的 sweep 仪表板中。
本地 vs W&B Sweeps:没有 wandb_sweep=True 时,每个 trial 作为单独的 W&B 运行记录。有 wandb_sweep=True 时,所有 trial 都分组在一个具有统一可视化的 sweep 仪表板下。

启用 W&B Sweeps

继续现有 Sweep

要向现有 sweep 添加更多 trial 而不是创建新的,请传递 sweep ID:
如果不传递 wandb_sweep_id每次都会创建新的 sweep。sweep ID 会在 sweep 开始时打印在日志中(查找 “Created W&B sweep: ”)。

访问 Sweep 仪表板

  1. 前往 wandb.ai 并打开您的项目
  2. 点击左侧面板中的 Sweep 图标(扫帚图标)
  3. 从列表中选择您的 sweep

内置可视化

W&B 自动生成三种可视化:
平行坐标图特别适用于识别哪些超参数组合能带来最佳结果。您可以在任何轴上拖动以筛选运行。

与外部 W&B Sweep 代理一起使用

如果您从外部 W&B sweep 代理运行 AITraining(不是 AITraining 的内置 sweep),请使用 --wandb-run-id 来恢复代理的运行,而不是创建重复运行:
设置 --wandb-run-id 后,AITraining 会自动设置 WANDB_RESUME=allow,以便 trainer 恢复指定的运行而不是创建新运行。

重要说明

  • 需要 W&B 登录:使用 W&B sweeps 前运行 wandb login
  • Sweep ID 会被记录:在日志中查找 “Created W&B sweep:
  • Trial 被分组:每个 trial 作为带有 group={sweep_id} 的运行出现,用于聚合
  • Optuna 仍管理搜索:W&B 仅用于可视化;Optuna/grid/random 处理实际的超参数搜索

试验后操作

在每次试验完成后执行自定义操作,例如将检查点提交到 git、发送通知或同步到远程存储。

CLI 用法

环境变量

试验后脚本接收以下环境变量:

示例:为最佳模型提交 Git

使用回调的 Python API

如需更多控制,使用带回调函数的 Python API:
试验后操作是非阻塞的。如果回调或脚本失败,会记录警告但扫描继续进行。这确保扫描进度不会因回调错误而丢失。

最佳实践

  1. 从小开始 - 初始探索 10-20 次试验
  2. 使用早停 - 尽早停止不良试验
  3. 固定已知内容 - 仅扫描不确定的参数
  4. 使用验证数据 - 始终有评估分割
  5. 使用试验后脚本 - 自动化检查点或通知

下一步

Evaluation

评估扫描结果

LoRA/PEFT

高效微调