【同一句话问 20 遍,它给了我 7 个答案】这一期不讲跑多快,讲"速度这个数字能不能信"。
做法:冷启动本地推理引擎,把 temperature 设成 0,也就是贪心解码——每一步都取概率最高的那个字,不掷骰子。按定义,同一份输入、同一套参数,输出应该一个字都不差。然后同一句话连问 20 遍。
结果是 7 个不同的答案。更要紧的是速度:最慢 13.2,最快 102.0,差 7.7 倍。
先把最容易想到的解释排掉:是不是字不一样,所以要走的专家不一样,所以慢?把 20 次按输出文字分组,其中 13 次的输出是完全相同的。这 13 次里,速度仍然从 38.6 到 102.0,差 2.6 倍。所以不是文字。
再把范围放大到全部历史日志:32 次引擎启动、494 条请求。每条都记着提问多长、专家缓存命中率多少、草稿接受率多少、生成了多少 token。挨个跟速度算相关性:提问长度 -0.18,命中率 +0.15,草稿接受率 +0.05。全都落在噪声带里。
唯一跟得上速度的量,是这次请求到底缺了多少专家:同样一句话,有时缺 4744 个,有时缺 9980 个,两倍;而命中率只从 91.9% 动到 87.0%,不到 5 个点。未命中次数和速度的相关性是 -0.80。
结论有两层。第一层:这台机器一次请求要读多少专家,是随机落下来的,不由你输入什么决定。第二层更要紧——我前面几期的地基是错的。「贪心解码所以每次生成的字完全一样」这个前提不成立。
所以往后要在这台机器上比较任何两个设置,都不能再单点测速。
机器:RTX 4070 Ti SUPER 16G + 32G 内存,本地跑 125B 参数的混合专家模型。