Token导航 LogoToken导航

诺基亚联合腾讯混元开源AnyJev 任意LLM免改权重

更新时间 2026-09-29来源 智猩猩正文 4004字阅读约 13分钟7 张图片
智猩猩AI整理
诺基亚团队投稿

最近 Jev 模型被搬进了各种 Agent。

Browser-Use 开源了 jev-ultrafast,把 Jev API 接进浏览器操作流程《基于Jev的浏览器Agent插件开源,狂揽12.1k star!》。APUS 开源了纯本地的 fast-browser-use,用本地 Qwen 复刻同样的离散打分思想《本地复刻Jev范式!APUS开源全新浏览器Agent Skill》。

它们的做法都是一样的:把合法候选映射成单个 Token,前向一次,直接比较这些 Token 上的 logits。这个做法是对的,但从 logits 里读出来的那个数,现在还不能直接拿去用。

第一,把选项顺序倒过来,答案会变。 同一道题、同一个模型,只是把选项列表反过来写,读出来的第一名就换了人。这不是模型不会做题,是模型对"排在第几位"有偏好。

第二,模型说的 0.9,不代表九成把握。 这意味着你没法设阈值,而设不了阈值,这套东西就只能全量人工复核,省不下人。

这两件事不是谁的 bug,是因为概率没有校准,顺序会影响结果。

现在,诺基亚和腾讯混元的研究者开源了 AnyJev,做的就是这一层:不绑定浏览器、不绑定任务,也不微调模型,只负责让"从 logits 里读出的决策"变得可信。模型权重一个字节都不动。

图片

同一个模型、同一条工单,只把选项顺序倒过来——直接读 logits 的答案从 "request refund" 翻成了 "declined cash withdrawal";AnyJev 在两种顺序下给出同一个答案。

该项目能够让任意LLM都可以变成 Jev,仅开源5天就收获 861 stars。

图片

01

先把"顺序会影响答案"这件事修掉,

而且不要标签

AnyJev 把问题写成一个类型化的 Question:选择题(choice)、是非题(noul)、打分题(score)。每个选项映射成 tokenizer 里的一个单 Token,一次前向之后直接读这些 Token 的 logits。

到这一步,和其它项目是一样的。不一样的在后面。

图片

一次决策的四步,提问、轮转选项、除掉先验、给出带档位的决策。

位置偏置有多大? 在 Qwen3-8B 上实测,不同位置之间的先验权重差到 6.81 个对数单位,也就是排第一位的位置,天然比某个中间位置多出近千倍的权重。一个选项只要被摆在那个坏位置,它得先翻越这个差距。

修法是把它平均掉。 把选项做 K 种循环移位,每种顺序各读一次,在对数空间上平均。如果位置偏置在 logit 空间里是可加的,这一步把它精确消掉。再除掉一个不需要标签就能估出来的标签先验。

这一档叫 L0,零标签。

效果:Qwen3-8B 在 BANKING77 的 20 分类任务上,"顺序倒过来答案就变"的比例从 0.230 降到 0.073。一条标签都没用。

图片

三个任务上的顺序翻转率,直接读 logits vs AnyJev L0(零标签)。越低越好。

02

概率名副其实之后,才谈得上省人力

L0 修的是顺序。概率本身可不可信,是另一件事。

L1 在 L0 之上做一次温度缩放,需要每题 100–500 条标签。

同一组实验里,准确率从 0.747 到 0.807,涨了 6 个点。

但真正的变化是另一个数字:校准误差从 0.240 降到 0.095。

这有什么用?看第三个数字:

在"错误率不超过 5%"的前提下,可以放心交给模型自动决策的流量,从 7.7% 提升到 52.0%。

准确率涨 6 个点是论文数字。一半的流量不用再过人工,是运维数字。

图片

在 5% 错误率的红线下,能交给模型自动决策的流量占比 7.7% → 52.0%,七倍。

每个 Decision 都带着自己的档位,下游可以写 require="L1",拒绝在更弱的档位上执行动作。

03

有标签的话,还有一档比

"完整跑一遍模型"更便宜

L2 的思路一句话:保留原模型,让前向传播停在大约三分之二深度,再用一个闭式求解的线性 head,从这一层的隐状态直接读出决策。

没有梯度,没有新权重,不需要第二个模型。每题 100–300 条标签,几秒解出来。

在 LocalLLaMA/typed-decisions 上(20 个问题、每题 300 条标签、2000 条留出决策):

  • Qwen3-1.7B 只用 64% 的深度达到 0.730,与 Jev 公布的 0.727 同一水平;

  • Qwen3-4B 达到 0.786,追平微调过的 421M 模型 Laya(我们实测 0.768);

  • Qwen3-8B 0.771,Qwen3-30B-A3B 0.799,Qwen3-32B 0.798;

  • 所有模型的合并校准误差都在 0.03–0.05。

这里有一个反直觉的结果:砍掉深度通常不是取舍,而是净赚。 模型更小、更快,准确率反而更高,因为对一个线性 head 来说,中间层是比最后一层更好的特征空间,最后那几层忙的是把答案变成 Token。

所以 L2 是最快的一档:前向提前停,每个状态只发一条 prompt。Qwen3-8B 上是一次普通完整前向的 0.68 倍时间。

标签也不必多,100 条标签 Qwen3-8B 的 head 就到 0.740。

「每个问题一个 head」听起来像缺点,放进真实系统里其实是它的形状。

看到「head 是按问题拟合的、不能迁移到新问题」,第一反应通常是:那不是很受限吗?

但真实系统里的决策不是这样发生的。一个 agent 系统里反复出现的,恰恰就是那么几个问题:这条工单归哪个组、这一步要不要转人工、这个回答能不能直接发出去。同一个问题一天被问几千遍,而不是每次都换一个新问题。

所以 AnyJev 的用法不是「先标 300 条再上线」,而是:

第 0 天什么标签都没有,直接用 L0 跑起来。 零标签,顺序偏置已经修掉了,概率还不够准但能用。

标签从业务回路里自己流进来。 复核队列里人工改过的那些、事后真实发生的结果、或者你正准备替换掉的那个 LLM 的输出都是标签。observe() 把它们一条条记下来。

攒到 30 条,head 自己解出来。 之后在 60 条、120 条时自动重解。level="auto" 会自己选:有 head 的问题走 L2,没有的继续走 L0。

换了问法,它自己认得。 同一个问题换种说法、选项换个顺序,会被路由到同一个 head;而且只要 30 条无标签请求,它就能把自己重新对齐 Qwen3-8B 上,一个被改写过的问题会从 0.77 掉到 0.65–0.70,30 条无标签请求之后回到 0.74–0.75(作为对照,全部重新标注、重新拟合也只有 0.77)。

换句话说,head 不是一件你要去维护的东西,而是这个系统在反复回答同一个问题的过程中,自己长出来的那部分记忆。

真正需要新标签的,只有遇到全新问题的时候。

04

让"算得少"也能说清楚代价

L0 的代价是显而易见的:K 个选项就要读 K 遍。18 个选项,就是 18 次前向。

省掉一部分不难大部分题目读两三遍,领先者就已经拉开了。难的是说清楚这样省,到底会让你损失什么。

AnyJev 最新版本给了这件事一个答案,而关键在于参照物选得刁钻:

不保证"更准"。保证的是和读满 18 轮给出同一个答案,99% 的情况下。

因为参照物是我们自己读满全部轮数的结果、而不是真值,所以证明这件事一条标签都不需要:拿一批无标签的状态,离线把完整轮数跑一遍,记下答案,然后算出最小的停止门槛。用 Clopper-Pearson 置信上界卡,而不是用观测到的点估计300 条状态在 1% 目标下只允许 3 个错,拟合到刚好 3 个就是过拟合,留出集上会漏到 1.3%–2.5%。

实测(Qwen2.5-7B,18 选 1,300 条测试):18 轮里读 7.2 轮,与完整结果一致率 0.987,准确率 0.703(完整是 0.697)。折成吞吐是 vLLM 上 2.2 倍、transformers 上 2.3–2.7 倍。

图片

每条决策实际读了几轮,600 条里 435 条读一轮就定了,99 条老老实实读满 18 轮。平均 4.1 轮,和读满全部轮数的答案一致率 98.7%。

中间踩到一个不显然的坑,值得单独说一句:停止条件不能用"第一名和第二名的概率差"。 概率差在 1 处饱和,marginal 一旦尖锐,它就不再携带信息,而那恰恰是规则要做判断的区间。换成对数几率差(无上界)之后,四个测试格子才全部能证明 1% 的目标;用概率差,其中两个格子在任何门槛下都证不出来。

还有一个顺手的收获,正好回到开头那张图:把选项按文本排好序再轮转,两种列法就会生成完全相同的 prompt。于是"换一种列法答案不变"这件事,在任何轮数预算下都精确成立,比读满全部轮数原本给的保证还强。

这一档目前是 opt-in:需要显式打开并跑一次校准。原因很实在,仓库里现有的结果表格都是在它出现之前测的,一个默认行为和自己发布的表格对不上的库,比一个要你多写一行的库更糟。表格重测之后它会变成默认。

05

使用教程

手边没有 GPU 也能先看到全流程:

    pip install anyjev# 合成模型,CPU,一秒内跑完 raw / L0 / L2 全流程python -m demo.jev_mode --backend fake
    图片

    真实模型上,整条流程也封装成了一条命令,自动截断模型、起 vLLM、用你的标签拟合 head、在留出数据上报准确率、校准误差和每次决策的毫秒数,最后用全深度跑一遍作对照:

      python -m anyjev.pipeline Qwen/Qwen2.5-7B-Instruct --labels-from banking20

      06

      它现在还不能做什么

      L2 的 head 是按问题、按模型拟合的,不能直接迁移到新问题上;目前只发布了 Qwen3 系列的 head。

      字母读法最多支持 26 个选项。

      在 typed-decisions 上,"准确率"衡量的是与一个教师 LLM 的一致性,不是人工判断。

      迷宫、扫雷这类模型本身就答不出来的任务,校准也救不了——校准让你知道模型没把握,不会让它变会。

      目前所有决策都是单独评测的,放进真实 Agent 循环里的端到端对比还在路线图上。

      上面那条 2.2–2.7 倍,是两次运行的区间:自适应那几行很稳,而完整轮数的参照值本身在跑与跑之间有波动,比值继承了这个波动。我们把区间写出来,而不是挑一次好的报。

      文章标签混元腾讯模型发布开源大模型
      资讯来源:由AI资讯编辑整理自互联网公开内容,版权归原作者所有,未经许可,不得转载。

      继续浏览更多资讯

      返回资讯目录

      相关资讯

      更多