一个 0.8B 的模型在你的浏览器里做加法、长除法、开方和最大公约数,每一位都由它自己算出来,没有计算器也没有工具调用——而且这不是跑分跑出来的,是被证明过的。
11 月 3 日挂上 arXiv 的 Sketchpad 听起来像个小把戏:给一个开源视觉语言模型一张"草稿纸",让它像人一样竖式算术。真正的贡献在别处——它把只能抽样估计的"长算术正确率",换成有限、可检查、可形式化证明的性质。
难点不在长度,在错误是静音的
长算术靠思维链、改数据格式、改位置编码硬撑,一轮轮把能算对的长度往后推。但它们有个共同点——对没见过的输入,正确性只是估计值,错误是静默的。
论文的对照实验是注脚:十个模型、220 道预注册题目(10 到 1,000 位的加法、2 到 20 位的乘法,输出 token 预算 32,768),跑在 10 月 31 日。GPT-6.1 Sol 答对 217,Claude Opus 5.5 答对 216,Gemini 4 Argon 答对 207,错误全落在 300 位和 1,000 位的加法上。GPT-6.1 Sol 那三道错题写的是完整答案,格式长度跟对的题一样,预算也没用完——输出上看不出异常。
工具调用是另一条路:工具精确,但计算被搬到了网络外面。论文找的是第三条路——要保证对任意输入都正确,就得让"无穷多输入上的行为"由"有限多事实"钉死。
一张纸,2,446 个格子
结构只有三块:一张纸存全部状态,一个模型把纸的局部映射成一步输出,一个运行时移动窗口、把输出写回纸上。关键约束在最前面:运行时一个结果数字都不写,它只抄写、移动窗口、决定何时停。数字都由模型吐出。
模型每次只看三格,一格 32 像素,拼成 32×96 的图,经视觉编码器读成 3 个 image token。字形集固定 11 个(空白加 0 到 9),画面集合因此有限可穷举。每个运算一张表,列尽可能遇到的画面及正确输出:列加法 SUM 242 行,长乘法五个运算 1,553 行,减法 SUB 242 行,商位估计 EST 400 行,估计减一 DEC 9 行。合计 2,446 行——这就是全部可能性,写出来是张表,不是段概率。
底座是 Qwen3.5-0.8B:24 层,隐藏维 1,024,6 层全注意力、18 层 Gated DeltaNet。被训练的是挂在 150 个投影矩阵上的 rank-16 LoRA,10,223,616 个参数,占模型 873,438,784 参数的 1.2%。训练在单张 H100 上跑了 19.8 分钟,第 1,200 步全过,第 1,600 步停。
证书:在真机上验,在 Lean 里证
"margin"是证书的度量:正确 token 的 logit 领先任何错误 token 的最小幅度,在全部 248,320 个词表上算,大于 0 即通过。在部署设备上——一台 Apple M4 笔记本的 GPU,浏览器里跑 WebGPU、16 位——2,446 行全部通过,最小 margin 是 3.02 logits,意味着证书能容忍任何小于 1.51 的 logit 扰动。服务器端 32 位 PyTorch 下是 3.96。为何要 margin:4-bit 量化过的解码器曾把某个适配器的 margin 从 +9.4 推到 −8.9,直接翻号。
三个 Lean 定理钉住了它:定理 1 说在表上正确等价于在任意长度上正确;定理 3 说 margin 足够大就能吃掉数值扰动。定理 2 最狠:只要某一步能读到之前的步骤(思维链),任何有限测试都不够用。
跑分:220 比 217,但先别欢呼
那 220 道题跑在服务器端 PyTorch 上,不是浏览器:批量锁步执行,用了 64,700 个视图、1,001 次前向。Sketchpad 全对 220。五个开放权重模型在 149 到 199 之间,大多是长加法长乘法耗尽 token 预算;Qwen3.5-27B 答对 121;底座不用思维链 23 分、用了 3 分。
论文给了句冷话:"每个模型每题只跑一次,所以两个模型之间差几道题在采样波动范围内。"按这句话,220 和 217 那 3 道题的差距不该当新闻。该读的数字在另一方向:底座裸跑 23 分,同一套底座接上那张草稿纸之后是 220 分。差的不是模型规模,是那张纸。
边界:证书管得住模型,管不住运行时
定理 1 把责任切成两半:模型那部分是有限的,已经验过。运行时那部分——版式、外层循环、参考过程,也就是经典竖式算法本身——是常规代码,论文明确说没形式化到 Lean 里。"可证明"覆盖模型的每一步,不等于整个程序被证明正确。
定理 2 是必须付的账:论文构造了一个两状态表和一族解码器,每个成员都能通过任何一组有限测试、都有正的 margin,却会在更长的运行上出错。结论很直白——它必须放弃思维链。
对话适配器是折中:需要精确计算时自动"打开那张纸"。它在指令跟随和 MMLU 上与底座差距在 2 分以内,但在 1,069 道开发中没用过的小学应用题上低 5.8 分。门控归零时逐比特还原底座,代价是每次前向多背 1.2% 的参数。
所以呢
最反直觉的不是小模型算对了,而是这篇论文顺手给思维链下判决:让一步能读到之前的步骤,恰恰是让"算对"彻底失去可证性的原因。行业这两年在"让它多想一会儿"上砸的钱,撞的就是这堵墙。
另一件事是定价。可验证性不是模型自带的属性,是架构约束换来的:放弃思维链、放弃 5.8 分 GSM8K、把外层循环交给经典代码、每次前向多算那 1.2%。换来的也实在——一份绑死文件哈希、能在用户自己 GPU 上重算的证书;论文每个数字都列在 numbers.md 里,Lean 证明用 lake build 能验。一个能被第三方重新执行的证明,和一个 benchmark 分数,是两种信用。
问题是:当"算对"能从采样估计变成可执行检查,还有多少任务值得用采样估计?以及——你愿为可验证性付出多大能力代价?
(论文:Sketchpad: certified exact arithmetic with a small vision-language model)