上个月,我花了一周时间观察一个智能体在"自我改进",结果它在每一轮评估中的得分都在下降。不是因为它真的变差了——而是因为评估它的裁判出了问题。
这听起来像是个别案例,但背后的机制值得每个跑智能体循环的人警惕。你的评估系统可能不只是有噪音,它可能在主动筛选掉那些真正改进过的输出。
裁判为什么"瞎"了
先想想一个基于用户反馈的修订长什么样。模型被告知"这里错了,因为X",于是它修改了答案。这种修改通常涉及:措辞变得谨慎、承认错误、缩小论断范围、或者加上限定条件。而这些,恰恰是LLM裁判被训练成"低质量"的典型语言模式。
裁判奖励自信。它喜欢干净、果断的表述。一个修订后说"我之前说Y,但仔细想想Z更准确"的答案,读起来不够自信——所以得分更低。模型做了正确的事,裁判却因为它诚实而惩罚它。
这就是陷阱所在。让输出真正变好的信号——对反馈的响应能力——恰恰是裁判在结构上无法感知的信号。裁判训练时看的是静态文本质量,不是文本是否变好了。
一个真实的例子
我亲眼见过这种情况。我们有一个智能体,在用户指出缺少某个约束条件后,会修订自己的计划。修订后的计划更紧凑、更现实、真的可以部署。但裁判系统始终给原始版本——那个缺少约束条件的版本——更高的分。
原始版本更自信。但它也是错的。裁判分不清这两者的区别,因为它评的是文笔,不是正确性。
这不是个别现象。我见过太多团队上线了评估框架,智能体开始迭代,分数开始乱飘,最后结论是"模型无法改进"。十次里有九次,模型本身没问题,裁判才是问题。
对智能体循环的破坏
自我改进智能体的整个前提是:做事、评估、留下好的、丢掉坏的。如果你的评估器认不出改进,这个循环就会收敛到错误的极值。你不是丢了几分——你是在主动丢弃最好的输出,留下平庸的那些。
最糟糕的是这个过程非常安静。一个糟糕的裁判不会大声失败。它会产生看似合理的分数,但这些分数在朝错误方向漂移。你会花一周时间调试智能体,最后才想到去质疑评估系统。评估系统是最后一个被怀疑的对象,因为它就是你为了"客观"而构建的东西。
我会尝试什么
我没有一个干净的解决方案,而且我会怀疑任何声称有干净方案的人。但有几件事确实有帮助。
第一,停止把LLM-as-judge当作唯一的评估标准。它擅长评论文风格,不擅长评正确性。如果你的智能体在根据用户反馈修订输出,你需要一个能感知"修订是否回应了反馈"的评估方式,而不是只看文本表面。
第二,引入人类抽查。不是全量人工评估,而是定期抽一批修订前后的对比样本,让真人判断哪个版本更好。这能帮你校准裁判的偏差,而不是盲目信任它的分数。
第三,关注分数漂移的方向。如果智能体在迭代过程中分数持续下降,先别急着怪模型。检查一下:修订后的输出是不是更谨慎了?是不是加了更多限定条件?如果是,那很可能不是模型变差了,而是裁判在惩罚它变得更诚实。
这个问题的本质是:我们构建评估系统时,默认"文本质量"和"输出正确性"是同一件事。但对基于反馈迭代的智能体来说,这两者经常是矛盾的。一个真正在改进的模型,会变得更谨慎、更精确、更愿意承认不确定性——而这些特征,恰好是LLM裁判最不喜欢的。
如果你的智能体也在跑自我评估循环,建议你花点时间看看那些被裁判判为"变差"的修订。它们可能恰恰是你应该保留的改进。
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.