Logits 到底是什么

范围:解释 LLM 输出的 logits 是什么、它如何被 Jev(TypeSafe AI)及浏览器 Agent 生态(Browser-Use 的 jev-ultrafast、APUS fast-browser-use)用作直接决策数据,以及为什么"一次前向 + logits 比较"能替代自回归生成。


一、一句话结论

logits 是大模型最后一层输出的原始分数向量------模型对"下一个 token 该是谁"这件事,给词表里每个候选打的分数。 它不是概率(有正有负、不归一),但和概率单调对应:比大小关系完全一致,softmax 只是把同一组分数压成 0~1 且总和为 1。

Jev 类架构(以及 jev-ultrafast、fast-browser-use 等复刻实现)的核心动作,就是把这组本来只是生成过程副产品 的内部数值,提升为最终答案:把合法候选映射到单个 token,一次前向,直接比较候选 token 的 logits------答案、概率、置信度全都在这一次前向里拿齐。

二、LLM 的输出链条:logits 在哪一环

复制代码
输入 token 序列
   → Transformer 前向计算(prefill / decode)
   → 输出一个 logits 向量(长度 = 词表大小,Qwen 约 15 万维)
   → 对 logits 做 softmax(归一化)
   → 得到"下一个 token 是词表里每个词"的概率分布
   → 采样选一个 token,接回输入,再算下一轮(自回归生成循环)

要点:

概念 说明
logits 最后一层线性投影的原始未归一化分数,一个输出位置一个向量
softmax(logits) 把分数变成概率分布:非负、总和 1
logprob log(softmax),OpenAI/vLLM API 里 logprobs 参数返回的就是它
自回归 每生成 1 个 token 都要再跑一次前向;N 个 token 的回复 = N 次解码

关键洞察:模型"想说什么"的信息,在生成第一个 token 之前就已经完整编码在 logits 里了。普通聊天里我们只关心采样结果;但如果是封闭选择题,这一步就足以出答案。

三、为什么 logits 能直接当决策数据

前提是候选答案有限且全部在词表里("点 A 还是点 B?""是/否?""1~5 打几分?")。此时可以三步走:

  1. 掩码(mask):把词表 ~15 万维 logits 中不属于合法候选的维度全部砍掉,只留候选对应的几十维;
  2. 局部 softmax :只在候选集合上归一化,得到概率分布 P(A)=0.12, P(B)=0.85, P(C)=0.03;
  3. 直接比较:argmax 即答案;分布本身(经校准后)即置信度。

这就是 Jev 的 Choice 基元的底层实现,也是其"零 token 输出、输出免费"卖点的来源------没有生成,就没有输出 token 计费。

Jev 调研里记的"末位 logits 掩码投影到候选槽位 + 局部 Softmax"一句话,完整展开就是这套流程。

四、浏览器 Agent 里的具体做法(jev-ultrafast / fast-browser-use)

浏览器 Agent 的经典痛点:每次决定"点哪个元素",让 LLM 生成一段文本(如 {"action":"click","element":"#submit-btn"}),要连续解码几十个 token,慢且 JSON 格式容易出错、需要重试修复。

复刻 Jev 的路线:

  1. 预处理 :解析页面得到所有可交互元素(合法候选集),每个元素映射到词表里的一个特定 token (如给元素 i 复用/新增特殊 token <elem_i>);
  2. 单次前向:页面文本 + 任务指令喂给模型,只跑一次 prefill;
  3. 读 logits:在输出位置比较各候选元素 token 的 logits------最高分即目标元素,softmax 后的分布即置信度。
收益 原因
快一个数量级 省掉整个解码循环,延迟从 O(生成 token 数) 降到 O(1) 次前向
格式永远正确 掩码后非法元素 ID 在数学上概率为 0,不可能输出非法动作,无需修复/重试
自带置信度 候选间 logits 差距大 = 模型确定;差距小 = 犹豫 → 可升级到大模型(System 2)或暂停人工接管,这正是 Jev "confidence-gated routing" 的底层数据
多问题并行 一次前向的 logits 可同时投影到多组候选("该点哪里?"+"是弹窗吗?"),共享同一次前向计算

五、30 秒自测:亲眼看到 logits

用本地 vLLM 端点(http://vllm:38081/v1,OpenAI 兼容 API)即可:请求体加 "logprobs": true,响应里每个 token 带 logprob(= log-softmax 值)和 top-k 候选的 logprob。那组数字就是模型每一步真实"考虑过哪些词、有多犹豫"的完整记录。

Jev 做的事情,本质就是把这个只用于观察/采样的内部量,直接当作产品输出。

六、边界与注意点

  • 只对封闭候选有效:开放式生成题无法掩码投影,仍需自回归解码;
  • 候选必须可离散化:每个选项要能对应词表 token(或新增特殊 token),连续值/自由文本不行;
  • 校准是另一回事:logits 比较给出的是相对倾向,"概率 0.85 到底可不可信"取决于训练时的校准(Jev 用 RLCD 优化 ECE,开源侧 NanoJev/Laya 各有做法);
  • 温度/解码参数影响分布形态:比较相对大小时 softmax 前的 logits 已足够,但要输出"校准概率"需按训练口径固定参数。
相关推荐
golang学习记1 小时前
Zed 新特性:AI 还在跑,电脑可以不睡了
人工智能·vscode·电脑·zed
愤怒的代码1 小时前
浅析模型量化的数学原理
人工智能
掉进电商坑三年没爬出来的东叔1 小时前
Vibe Coding实战三:把AI做的小工具部署上云,手机电脑随时用
人工智能·智能手机
甲维斯1 小时前
我用AI做了一款「三国吃鸡」,开局孔明灯,落地青龙刀 !
人工智能·游戏·游戏开发
WeiXin_DZbishe2 小时前
基于Springboot+AI的kuall音乐广场的设计与实现-计算机毕设 附源码【课程设计】12715
vue.js·人工智能·spring boot·后端·python·php·课程设计
boluoji2 小时前
TOP 10 大模型实测:发两个字母,被计了 4223 个 token
人工智能
冬奇Lab2 小时前
LLM 驱动的自动化测试系列(10):自愈定位——当启发式打分撞上语义理解的天花板
人工智能·测试
adrninistrat0r2 小时前
浏览器自动化——AI 生成网页操作脚本
人工智能·自动化