精华 提问已解决 模型训练 loss 不下降,一直在 2.3 附近震荡怎么办?

机器学习 246 浏览 4 回复 2026-09-12 23:12 悬赏 80 积分
👍134
⭐收藏
算法小张 楼主 Lv7 ・广东
2026-09-12 23:12 246 阅读 4 回复

一个简单的文本分类任务,BERT 微调,loss 从 2.3 开始基本不动,准确率维持在随机水平附近(10 类中约 10%)。

学习率试过 1e-5、2e-5、5e-5,batch size 16/32 都试了,没用。

机器学习 精华 提问 悬赏 80
回复 👍 69
全部回复 4 条
算法小张 ・广东

补充:数据是外接的,标签做了映射,vocab 用的是 bert-base-chinese。

Lv7 2026-09-13 01:32 2 楼
回复 👍 22
Python猫哥 ・广东

先检查标签映射是否错位!我遇到过 label2id 每次随机初始化导致标签对不上,loss 正好是 ln(10) ≈ 2.303。你这个 2.3 太可疑了。

Lv8 2026-09-13 01:21 3 楼
回复 👍 38
算法小张 最佳答案 ・广东

卧槽,真的是这个问题!我在 Dataset 里每次都调用了 {k: i for i, k in enumerate(set(labels))},set 顺序不稳定导致 train/eval 映射不一致。已解决,感谢!

Lv7 2026-09-13 01:52 4 楼
回复 👍 110
Python猫哥 ・广东

哈哈,2.3 = ln(10) 是判断模型完全没学到东西的经典信号,记住这个数字。

Lv8 2026-09-13 00:43 5 楼
回复 👍 57
发表回复
登录 后参与回复