You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求助:PyTorch Lightning学习率调参器输出异常结果的问题

使用PyTorch Lightning Tuner寻找最优学习率时低学习率下损失上升的问题

我在基于BertForSequenceClassification预训练模型构建的线性分类器上,尝试用pl.tuner.Tuner寻找最优学习率——目标是在冻结Bert模型权重的情况下找到合适的LR,但结果不符合预期:低学习率区间内损失反而呈上升趋势。

执行的lr_find代码

tuner = pl.tuner.Tuner(trainer)
results = tuner.lr_find(
    model, 
    # optimizer = optimizer,
    
    train_dataloaders=data_module, 
    min_lr=10e-8,
    max_lr=10.0,
)
# Plot with
fig = results.plot(suggest=True)
fig.show()

模型中的优化器配置

def configure_optimizers(self):
    """
    :return:
    """
    optimizer = torch.optim.AdamW(self.parameters(), lr=self.learning_rate)

    scheduler = get_linear_schedule_with_warmup(
        optimizer,
        num_warmup_steps=self.n_warmup_steps,
        num_training_steps=self.n_training_steps,
    )
    return dict(optimizer=optimizer, lr_scheduler=dict(scheduler=scheduler, interval="step"))

当前问题表现

运行后生成的损失-学习率图表显示:在学习率从10e-8开始的低区间,损失不仅没有下降,反而持续上升,这和预期的趋势不符。

已尝试的调整

  • 移除学习率调度器
  • 切换Bert模型权重的冻结/解冻状态
  • 修改初始学习率参数

预期的图表趋势

预期的图表应该是:损失随学习率增大先快速下降,进入一段平稳的低损失区间,之后随着学习率过大,损失开始急剧上升,能从中找到一个最优的学习率范围。

内容的提问来源于stack exchange,提问作者Toby

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 23:22:49