Jev 实测续篇:把 AnyJev 和 Kev 放到 GPU 上,三道维基百科寻路题跑得怎么样?

上一篇 Jev 实测发出时,我测了 Jev、几个 API 模型和一些本地方案。文章最后留了一个问题:如果把自部署模型搬到 GPU,或者换一个更大的决策模型,能不能接近 Jev?

这几天我沿用原来的三道维基百科寻路题,又补测了 AnyJev 和 Kev。Kev 的 0.8B、4B 放在 Kaggle T4 上跑;9B 装不进单张 T4,于是放到 Modal L40S。为了不只拿不同 GPU 的时间作比较,我也在 L40S 上跑了一轮 Kev-4B。

先说结果:9B 确实能在 Modal 上跑完三题,但这轮并没有比 4B 更适合寻路。 Jev 在这组新增方案面前,仍然用了最少的点击。下面是具体数据和我觉得更值得注意的地方。

还是原来那三道题

任务没有换:DNA → Manipuri pony、Music → 2001 AAA Championships、World War II → Bald Mountain Recreation Area。每一步只能点击当前维基百科页面里实际存在的文章链接,不能直接搜索目标;每题最多给 60 分钟动作时间。

“点击”是已经执行的页面跳转次数,不是模型调用次数。“动作耗时”包含模型选择、网页加载和页面观察,不包含权重下载、模型加载与环境安装。超时题已经花掉的时间和点击也算进总数。Jev 使用上一篇统一协议测试的结果;新增实验是在几天后跑的,实时网页可能变化,所以这不是把所有模型放在同一秒、同一台机器上的严格擂台赛。

这些名字也容易混淆。AnyJev 是把开放模型变成 Choice、Score 等决策器的框架,这次我用的是它的 L0 方式加 Qwen3-4B;Kev 是另一组已发布权重的决策模型。它们都不是 Jev 的开源权重,也没有与 Jev 完全相同的底层实现。

补测结果放在一起

配置完成三题总点击动作总耗时固定 255 候选决策中位数
Jev / API,上一篇基线3/316181.554 秒0.514 秒
AnyJev L0 + Qwen3-4B / Kaggle T41/313510,419.800 秒57.247 秒
Kev-0.8B / Kaggle T41/32,5327,932.384 秒1.665 秒
Kev-4B / Kaggle T43/3104995.211 秒4.820 秒
Kev-4B / Modal L40S3/3110209.896 秒0.827 秒
Kev-9B / Modal L40S3/3270537.473 秒1.058 秒

固定 255 候选用的是保存下来的同一组页面链接,计时不含首次加载。表里取 DNA、Music、二战三个样例的中位数;Jev 的每个样例曾重复三次,新增配置的每个样例测了一次。不同方案处理一页链接的方法也不同:Jev 在不超过 255 项时直接 Choice,更多时先 Score 再 Choice;Kev 把全部候选分组淘汰;这次 AnyJev 先给全部链接打分,再从前 26 项里选。因此固定样例的秒数是整套选路流程的耗时,不能当作模型本体的纯推理速度。

再看每道题。每格依次是结果、点击数和动作耗时:

配置DNAMusicWorld War II
Jev / API成功;5 次;49.118 秒成功;7 次;68.786 秒成功;4 次;63.650 秒
AnyJev / Kaggle T4成功;40 次;3211.928 秒超时;43 次;3604.224 秒超时;52 次;3603.648 秒
Kev-0.8B / Kaggle T4超时;1139 次;3600.878 秒超时;1150 次;3600.915 秒成功;243 次;730.591 秒
Kev-4B / Kaggle T4成功;10 次;128.925 秒成功;57 次;621.333 秒成功;37 次;244.953 秒
Kev-4B / Modal L40S成功;10 次;32.677 秒成功;10 次;34.725 秒成功;90 次;142.494 秒
Kev-9B / Modal L40S成功;159 次;300.257 秒成功;91 次;177.449 秒成功;20 次;59.767 秒

单步很快,为什么整题还是会慢?

Kev-0.8B 是最直接的例子。它在 Kaggle T4 上处理固定 255 个候选,大约 1.7 秒就能作一次选择,比同一张卡上的 Kev-4B 快。但 DNA 和 Music 都走满一小时,分别点击了 1139 次和 1150 次,仍没到终点。二战题虽然成功,也走了 243 次。省下一次选择的几秒,抵不过选错方向后多走几百页。

AnyJev 的问题则同时出在路径和每页处理量上。我用的是无需 WikiRace 标注训练的 L0 + Qwen3-4B:它的 Choice 一次最多放 26 项,所以正式运行采用“先给所有链接打分,再选前 26 项”的方案。DNA 最后成功了,但用了 40 次点击、约 53 分钟;另外两题超时。有一步遇到 3401 个合格链接,仅这一页的选择就花了约 933 秒。它的固定目标位置检查是 9/9,说明直接看到目标时能选中,但不能据此推断它会找多跳路线。这次结果只能说明这套具体配置不能平替 Jev,不能推成 AnyJev 换模型、训练任务头后也一定不行。

我还试了 AnyJev 的纯 Choice26 分组版本。它完成了部分固定输入,但在第三个整页探针遇到 CUDA 显存溢出,没有进入三题正式比赛;所以表里没有把它硬算成“0/3”。

4B 和 9B:模型更大,路线却没有更短

Kev-4B 在 Kaggle T4 上三题全过,总共 104 次点击、约 16 分 35 秒。放到 Modal L40S 后也是 3/3,110 次点击、约 3 分 30 秒。L40S 上单步选择更快,是总时间缩短的重要原因;但两轮的 Music 路线差了很多,Kaggle 走 57 次,Modal 只走 10 次。Modal 使用 BF16,Kaggle 使用 FP16,Wikipedia 页面也可能变化,我不能把总时间差全部算成“L40S 比 T4 快了多少”。

Kev-9B 在 L40S 上以 BF16 跑通,峰值 PyTorch 分配显存约 18.1 GB,没有显存溢出。它同样三题全过,但合计用了 270 次点击、约 8 分 57 秒;同型号 GPU 上的 4B 是 110 次、约 3 分 30 秒。固定输入把目标直接放进 255 个候选的九项检查里,4B 答对 9 项,9B 答对 7 项。

不过,9B 也不是每题都落后。二战题它只走了 20 次,4B 的 Modal 轮却走了 90 次;而 DNA 是 9B 的 159 次对 4B 的 10 次。三题里一条路线的偏航就能大幅改变总数。因此我现在只会说:在这三道题和这套实现下,4B 是更合适的自部署选择;没有看到升级 9B 的整体收益。 不能把这张小表当成所有决策任务的模型排名。

9B 为什么没放到 Kaggle?当前可用的 T4 单卡标称 16 GB,Kev 官方说明给 9B 的显存需求约 17 GB;原始半精度单卡加载放不下。Modal 的 L40S有 48 GB,实测可以运行。这里没有引入量化或自定义双卡切分,因为那会把另一套实现条件混进来。至于上一篇提到的 27B,我这次仍然没有实跑;Kev 官方给出的权重约 55 GB、运行时约 66 GB,单张 L40S 也放不下。它能不能达到 Jev 在这三题的效果,依然是一个待测问题。

时间也不等于账单。Kaggle 使用 GPU 时长额度,Modal 按 GPU、CPU 和内存计费,Jev 则是 API 调用。上表没有算下载、加载等准备时间,我也没有把每个配置的完整成本单独核算,所以不能用 209 秒和 181 秒直接比较谁更便宜。

这次补测改变了什么判断

上一篇里,Kaggle 上的 Qwen 4B 和 Gemma E4B 已经证明“小模型自部署一定跑不完”这个说法站不住。现在 Kev-4B 又完成了三题,而且在 L40S 上把动作时间压到约 3 分半。只看能否完成,差距比我最初在 Mac 上测试时小了很多。

但路线长度仍然明显:Jev 的 5、7、4 次点击合计 16 次,新增的自部署配置里最少的是 Kev-4B Kaggle 的 104 次。Jev 在这次追加的方案中依旧是点击最少、动作总时间最短的一个。这里不改写上一篇全表的结论:上一篇的 Gemini 和 GPT-OSS 120B 各用了 13 次点击,比 Jev 还少,只是总动作时间更长。

最后还是同一个限制:每个正式配置只有三题,每题一次,不同日期的页面也会变化。下一步如果真要回答“更大的自部署决策模型能否稳定接近 Jev”,需要更多题目和重复运行,最好让待比较的自部署模型使用相同硬件、相同精度。现在这篇更像是一次补充记录:GPU 解决了能不能跑、跑得有多快;能不能少绕路,还得看模型和整套选路方法。