训练损失越低,模型越聪明?实测结果打了所有人的脸
作者照着 Sebastian Raschka 那本《从零构建大语言模型》从头训了个 GPT-2-small,目标是把测试损失压到和 OpenAI 原版差不多。他原本以为损失越低,模型就越“聪明”,指令能力自然也更强——这想法跟饭馆点菜时觉得菜单越厚菜越好一样朴素。
他之前用三种方式测模型:补全句子看连贯性、算测试集损失、再拿 Alpaca 数据微调后让另一个 LLM 打分。结果今年一月发现裁判 LLM 自己都管不住嘴——两个模型都说《傲慢与偏见》是 Sarah Palin 写的,一次给 5 分,另一次直接打 0 分。完蛋,评分标准比我的充电宝还飘忽。
他干脆把所有模型的回答先存成文件,再一次性塞给同一个裁判 LLM,逼它横向对比、统一尺度。这法子靠谱多了,就是太费时间,只好先把指令评测挂起,等攒够一批新模型才重新开测。
结果出来吓一跳:测试损失和指令得分几乎没啥关系。FineWeb-Edu 系列两个模型损失最高(4.135 和 4.167),指令分却冲到 16.41 和 15.77,差点追上原版(损失 3.500,得分 16.66)。牛皮吹爆了——原来“算得准”不等于“答得对”。
一个模型可能在压缩 token 上很高效,但脑子里全是废话;另一个损失高点,却因为啃的是教育类数据,反而能老老实实执行指令。这就像饭馆后厨账算得再精,端上来的菜要是没盐,照样没人吃。
开发者要是只盯着损失选模型,大概率会错过真正能干活的家伙。数据内容比压缩效率更能决定模型在真实任务里的表现。
这条路能不能走通,说到底还是看工具支不支持。不过至少现在,试一试的成本变低了。