Jev只输出结构化数据,快得能玩Doom,开发者:护城河存疑
我不写关于新模型的博客文章。那是Simon Willison的领域,而且他非常擅长。但我想写写Jev,它是一种不同种类[1]的AI模型:一个“System One”[2]模型。事实证明,它与带结构化输出的普通LLM并没有那么大的不同,但它使用的接口非常酷,我希望它能变得更加普及。
普通LLM接收人类语言提示,并产生人类语言输出。它们以自回归方式工作:先产生一个token,然后是下一个,再下一个,依此类推。
用户:谁发明了三明治?
LLM:三明治是由三明治伯爵发明的。
这使得它们极其灵活,因为它们几乎能做计算机能做的任何事情。但这也使它们缓慢而古怪。缓慢,是因为每个token都要重新运行一遍完整的生成过程;古怪,是因为人类语言空间如此广阔,以至于训练于其上的模型可能表现出非常奇怪的行为。
Jev接收人类语言提示,但不产生人类语言输出。它只产生结构化输出。
用户:{ state: “天空是什么颜色?”, choices: [“蓝色”, “红色”, “黄色”] }
Jev:{ answer: “蓝色” }
到目前为止,一切都很平常:LLM已经能做到这点。但事实证明,如果你构建一个只产生结构化输出的模型,你会得到一些有趣且可取的特性。
Jev始终如一地快
Jev总是非常快。最快响应时间约为70毫秒,而普通LLM需要几秒钟。更棒的是,最慢响应时间也只有500毫秒。由于Jev只做结构化输出,它不是自回归的:它可以在一次前向传播中并行回答许多问题。当LLM产生结构化输出时,它必须通过连续的前向传播[3]依次产生“{”、“ ”、“answer”、“:”等token。Jev则一次性全部完成。
Jev速度最有力的例子是模型能玩Doom。你可以将当前游戏状态的文本表示输入模型,再加上一组选项,如“扳机是否应保持按下”、“当前目标应该是什么”、“给定当前目标是X,应按下什么键盘输入”等等,然后它就能正常工作——延迟足够低,系统足够聪明,模型能实时玩得很好。
当然,你之前已经可以训练神经网络玩Doom。但Jev是一种通用智能:就像LLM能做你的税务、进行数学研究、修复你的Python环境、给你写诗一样,Jev除了玩单个视频游戏外,还能做许多其他任务。当前LLM也能玩Doom(尽管很慢)。但正如Nelson Elhage那句名言所说,快速软件不仅仅意味着我们能更快地完成同样的任务,还意味着我们能做全新种类的任务。通过在各个决策点注入价值100毫秒的廉价智能,我们能编写出什么样的新程序?
对我来说,这是Jev最令人兴奋的地方。快速结构化输出可能成为智能的一种真正全新的计算原语。到目前为止,我们在自回归token生成之上构建了大量程序,它们看起来都像花哨的聊天机器人。可以想象,大力投入结构化输出可能会为AI解锁大量非聊天机器人的用例。
结构化输出已经可以很快
我对Jev最大的问题是,我认为快速结构化输出已经存在。LLM的结构化输出之所以慢,只是因为(a)没多少人真正在意它[4],以及(b)在意它的人想要的是大块JSON,所以通常用“语法约束解码”来实现:LLM照常自回归输出,但logit采样器会丢弃不符合结构化输出的token(例如,如果还没有出现“[”,就不能输出“]”)。
如果你想要针对有限选项的快速并行结构化输出,你其实根本不需要做自回归生成。你只需用"choice": "预填充响应,然后生成一个token[5],限制为用户提供的选项。由于LLM并行处理所有输入token,这比生成整个结构化输出要快得多。多个选项也可以通过普通的推理批处理合并到同一次前向传播中。这虽然不支持长格式的结构化输出,但你获得了Jev“秘方”的大部分[6]:System One模型的速度、一致性和并行性。
今天Jev发布后,已经有人开始尝试这个方法,看起来效果还不错[7]。换句话说,我怀疑Jev没有实质性的技术护城河,他们声称的“用于校准决策的强化学习”并不是一个全新的扩展维度。任何其他实验室可能都很容易复现,或者个人程序员也可以轻松地将现有开源LLM改造成快速、类Jev的模型。
不过,我怀疑Jev仍然会比大多数“Qwen-32B-System-One”之类的版本更好。能够仅在结构化输出上微调或优化模型,可能是一个有意义的优势。
智能与幻觉
我怀疑Jev永远不会像前沿LLM那样聪明。完全无法使用测试时计算[8]是一个很大的劣势,很可能会把这类模型的能力上限限制在非推理LLM的水平。在实践中,这对低延迟应用来说应该不是大问题,但你不应把它看作新的扩展维度或制造更智能模型的方式。
Jev的开发者声称它不会产生幻觉。在我看来,这像是一种语义上的回避,因为Jev绝对仍可能选错选项(例如把天空称为“红色”)。我想这在技术上只是错误而已,因为模型是在选择用户提供的选项,而不是凭空发明新东西。不过,这些对于带结构化输出的普通LLM也同样成立,而且这并不会让Jev在实践中更可靠。
结论
对我来说,Jev的价值在多大程度上来自模型本身、与每次只生成一个token的推理策略相比如何,这一点尚不清楚。公告中的数据与演示在我看来,像是把任何Terra规模的模型接入单token推理栈就能产生的。不过,相关人士是可信的,我相信这个模型本身是好的——我只是希望他们提供一些不会强迫LLM不必要地逐个token生成一大块JSON的对比。
总的来说,我很高兴Jev存在,并希望它能成功。我希望我们确实能在快速结构化输出领域看到真正的竞争,并促使大型实验室发布针对此用途微调过的自家模型官方版本。GPT-5.6-Terra-System-One将是一个非常有趣的模型,适合在其上构建AI产品。
---
[1] 我确实写过Thinking Machines的“交互模型”,那也是一种快得足以产生有意义差异的AI推理范式。
[2] 他们称Jev为“System One”LLM,源自Daniel Kahneman那本部分已被质疑的《思考,快与慢》,他在书中将人类认知分为闪电般快速的系统一和缓慢而深思熟虑的系统二。
[3] 如果你在想“等等,难道不能激进地预填充一个普通LLM,只生成一个受限token吗”,请继续读下去。
[4] 不算工具调用,工具调用是以结构化输出所不具备的方式内建的。
[5] 如果用户的一些选项长度超过一个token怎么办?我自己没试过,但我确信你可以把它们转换成单个token,或者训练模型在底层输出“1/2/3”而不是选项内容,或者如果选项的首个token不同就只生成那个token,或者用其他我没想到的巧妙技巧。
[6] Jev声称它们生成的概率是“校准过的”,但我没有看到任何迹象表明这些不只是普通的logit概率。也许他们做了某种巧妙的训练,鼓励在不确定情况下产生准确的logprobs(例如让模型在预测抛硬币时输出“正面:50,反面:50”)?如果是这样,我希望他们在公告中多写一些。
[7] 我自己用Qwen2.5-1.5B-Instruct试了一下,与非预填充的结构化输出相比,获得了2到3倍的加速。
[8] 我想他们可以做一些循环transformer的事情,固定循环若干次,但任何像推理的东西都会使模型延迟变慢且不可预测,从而完全违背目的。