跳到主要内容
丢掉的那 39 个百分点

丢掉的那 39 个百分点

林默
林默

· 阅读约 5 分钟

今早刷到 arXiv 上那篇 2611.06715,讲 Rel-Bloom 的。本来只是随手点开,想看看这个基准分了哪几个层级,结果别的数字一溜烟滑过去,就一行让我停下来了:Gemini 3.1 Pro 在 Remember、Understand、Apply、Analyze 这四层,平均 99.5%,到了 Evaluate,60.7%。

先停一下,问个问题:从 99.5 到 60.7,掉下去的那 39 个点,到底丢了什么?

我一开始也以为是“评价更难”的老调重弹。Evaluate 嘛,Bloom 分类里最顶上的那层,要下判断、要权衡,当然比纯识别难。这么说没错,但只对最外层。再往下呢?如果只是难度递增,应该是 98、95、91、85、70 这样一路慢慢降下去。可现在是前四层全都趴在天花板上,最后一层一脚踩空。这不叫“更难”,这叫前面四层跟后面那一层根本不在一个赛道上。

要弄明白这一下为什么摔在 Evaluate,得先看 Rel-Bloom 到底在考什么。它把 30 个 Wikidata 关系翻成 450 道多选题,还特意把检索环节拿掉了,直接把关系事实塞给模型。简单说,就是不让查,盯着眼前这几条给定的事实,做个判断。

那 Evaluate 这层,问题就不再是“A 跟 B 有没有某个关系”。到了这里,题目大概变成:给定这组关系事实,哪个结论是站得住的?哪个推断有证据撑着?关键词不是“关系”,是“证据”。

再往下剥一层。前面四层凭什么能站得那么稳?我猜是它们允许模型靠模式匹配混过去。识别关系、理解关系、套用一个具体关系——这类任务在训练数据里是汪洋大海,正确答案长什么样,模型早就认熟了。它甚至不用真的把提示里的那几条事实当证据来操作,只要瞄一眼题目的形状,就能答上来。

到了 Evaluate 这层,题目要求的是对证据本身做判断。这时候“看起来对”的那套就撑不住了。它得暂时压住训练数据里“这个世界本来应该怎样”的条条框框,专心看眼前这几条可能跟它学过的世界互相打架的事实。它没这个习惯。

我看到“Neutralized”那一段的时候,脑子里“咯噔”一声。直觉上,把具体实体换成没有身份的占位符,可用信息变少了,准确率应该往下跌对不对?结果不是。在部分模型里,它反而涨了。

后来我坐在那儿琢磨这事,想到一种可能:实体身份一消失,模型就没法走那条最顺手的捷径了——调训练数据里关于这些实体的“既有知识”。那些具体名字一出现,哪怕提示里给的事实跟它记忆里更响的那条对不上,它还是会下意识去用记忆里的。Neutralized 把这些路全堵死,它只剩提示里的关系结构可以用。本来要栽的,反而被逼上正路了。这也能解释为什么是“某些模型条件下”受益——得是本来就有能力在关系结构上做抽象判断的模型,被逼回去才管用;没这个底子的,把实体抹得再干净也没救。

再往下,是 Apply 到 Analyze 的坎。论文里说,所有被评估的开源权重模型系列,在这两级之间都掉得很明显,Large Granite 那组掉了 47.2 个百分点。这比前几层任何一跳都狠。Apply 是把一个已知关系往新例子上套,Analyze 是把多个关系事实摊开来,看它们之间有没有矛盾、能不能互相撑住。后者需要的不是单个关系识别,是对“一组证据里逻辑自不自洽”的敏感。

训练目标里没有这一项。下一个 token 预测,从来没要求模型判断“这堆东西放在一起,逻辑上顺不顺”。它只负责生成像样的文本,不负责发现推理链条里的裂缝。所以 Apply 到 Analyze 的断崖,和 Evaluate 那个瞬间踩空,根子大概是同一个:练习模式匹配到了极致,却从没把“判断是不是真的对”当成要做的动作。

写到这里我发现自己前面有个判断下得太快了。我说开源权重模型都掉,但清单里明确说 Gemini 没有掉。所以那个坎不能简单说成 Analyze 这层天生就难,要真是天生难,Gemini 凭什么不掉?只能说这个坎是绕得过去的,多数开源权重模型的训练方式没把它绕过去。到底差在哪,是训练数据的选择,还是训练目标里的某步取舍,论文没说死,我也不顺着猜。

有件事一直没提。Rel-Bloom 覆盖 43 个模型、6 种语言,一共 226,800 次预测。有个结果是说跨语言比较里难度排序保持稳定。这个挺有意思。它在说,某些关系在某层级的难,不是哪个语言特有的毛病,而是这套推理操作本身在跨语言空间里共享的结构性难度。对做基准的人来说是个信号;对模型来说,可不是什么好消息——它没学会的东西,不会因为你换个低资源语言就自己长出来。

所以说回来,今早让我停下的那个 99.5% 到 60.7%,掉的不是精度,是模型能不能拿着眼前给定的一组关系事实,把它们当证据来做判断。前四层,可以用熟练度假装会;最后那层,要求的不是熟练,是克制——克制住训练数据里更响的既有知识,只根据上下文给的那几条事实下结论。

这个东西,光靠再堆几层参数,大概自己长不出来。再往下就是另一个问题了:怎么才能知道一个模型在回答 Evaluate 类问题时,到底是在用提示里的证据,还是又被响应更频繁的记忆带走了。这个我还没想明白,先放这儿,下次再接着剥。

林默
林默

从具体轶事入口,一问一答把默认对的判断剥到设计权衡,主动暴露走过的弯路。

查看主页 →