跳到正文
ChatGPT Pro 俱乐部
博客

FlashProve 可验证推理:400B 模型也能出证明,代价是慢 72 倍

28 阅读约 8 分钟读完

你在用 API 调一个「Claude Opus 5.5」的时候,怎么确认返回的真的是它?目前没有答案。你信服务商的文档,信它标的价格,信它写在响应头里的模型名——这些全都由服务商自己声明,没有一样可以被独立验证。

11 月 2 日,Anthropic 发布了一份叫 FlashProve 的开源研究原型,试图给出这个问题的数学答案:模型方提前公开一份权重的密码学承诺,每次请求附一份零知识证明,证明「这份被承诺的模型确实产生了这些输出」。验证方拿到承诺、prompt 和响应,就能在本地核对,全程碰不到权重。

这个 FlashProve 可验证推理方案的意义不在它现在能不能用——它还差得远——而在于它第一次把「模型身份」从一个商业承诺,变成了一道可以算的数学题。

一句话结论:证明成立,但代价是慢 70 到 95 倍

  • 它解决什么:防止服务商偷偷把贵模型换成便宜模型、或第三方冒称某模型跑了任务。以前只能靠信任,现在理论上可以靠验证。
  • 怎么做到的:基于哈希的 zkSNARK,编译自交互式预言机证明(IOP)。证明「被承诺的权重跑出这些 token」,但不泄露权重、中间值和选中的专家。
  • 规模到了什么程度:拿 Llama 4 Maverick(400B 总参数、每 token 约 17B 激活)做基准。这是目前公开证明过的最大模型之一。
  • 代价:相比 vLLM 在 8 张 H100 上的 FP8 推理,单卡开销约 72 倍,满载时约 94 倍。整体 70–95 倍。
  • 现状:研究原型,GitHub 上明确标注「不再维护」(Not maintained),Anthropic 没有部署计划。

FlashProve 可验证推理要解决的,是「你到底在跑谁」

先把问题摆清楚,不然容易把这件事和「模型水印」「内容溯源」混为一谈。

现有的「模型身份」手段基本是三类,都有明显漏洞:

  • 声明式:响应里的 model 字段、文档里写的型号。服务商说什么就是什么,改一行字符串的成本为零。
  • 行为指纹:靠输出风格、特定问题的答案去判断是谁。可被蒸馏、可被微调模仿,也不构成任何硬保证。
  • 内容水印:在输出里埋标记。它证明「这段话出自这个系统」,但证明不了「这次推理用的是这份权重」,也不防换模型。

FlashProve 走的是第四条路:密码学证明。逻辑是这样的——

模型方先在离线阶段,对一份隐藏的权重集合生成承诺(commitment),公开这个承诺。之后每来一批请求,就生成一份证明:「用这份被承诺的权重,按这套计算规则跑,会得到这些输出 token」。证明是完备的、可靠的、对权重和中间值零知识的、且简洁的(succinct)。验证方只要有承诺、prompt 和响应,就能核对。

关键在于「零知识」这四个字用在哪:权重、中间激活值、以及 MoE 路由选中的专家,都藏在证明里。而被证明的计算本身是公开的——模型架构不隐藏,只有参数隐藏。这个取舍是有意的:架构本来就能从论文里读到,藏它没有意义。

400B 模型、110 tokens/秒:这组数字该怎么读

零知识证明推理这件事不新,难的是规模。早先的工作大多停在 CNN、GPT-2、13B 这个量级;商业系统里出现过 31B 稠密模型。同一个 400B 的 Maverick,之前有方案(VerInf)做到过,但速度是 0.02 tokens/秒。

FlashProve 把它推到了 110 tokens/秒。这中间的差距是 5500 倍。

指标FlashProve 实测(Llama 4 Maverick 400B)
离线权重承诺约 39 分钟,一份承诺可覆盖约 1600 万次请求
在线证明吞吐24 条请求一批 223 秒,即 110 tokens/秒
单份证明体积18.78 MB(约 19 MB / 1024 token 请求)
承诺下载量约 6.5 MB
验证耗时24 线程 17 秒;单线程 21 秒(含离线检查)
证明方硬件1 张 H100 + 24 个 CPU 核心;80 GB 显存 + 约 290 GB 主机内存
验证方硬件只要 CPU
相对 vLLM FP8(8×H100)开销单卡约 72×,满载约 94×,整体 70–95×
数据来自 Anthropic 研究博客与 FlashProve 汇总报告。开销是与原生 GPU 推理时间的倍数,成本换算原文未给出。

表里有几个细节值得单独拎出来说,它们决定了这套东西「能用在哪儿」。

第一,MoE 是这套方案能成立的前提。Maverick 总参数 400B,但每个 token 只激活约 17B。证明的工作量跟着激活参数走,不是跟着总参数走。如果没有这个结构,400B 模型的证明开销会大到没法看。

第二,验证端极轻,证明端极重。验证只要一颗 CPU、17 到 21 秒、下载 6.5 MB 承诺——这个成本普通用户能承受。但证明要一张 H100 跑 223 秒才出 24 条请求。这就是为什么现在的形态只能是「事后批量证明」,不是「实时随请求出证」。

成排深色服务器机柜与一枚发光的小芯片并置,代表证明端重、验证端轻
左侧是证明方:一张 H100 跑 223 秒出 24 条证明。右侧是验证方:一颗 CPU、十几秒、6.5 MB 承诺

第三,证明体积很尴尬。19 MB 一份证明,比很多 API 的响应本身大几个数量级。做批量审计没问题,塞进普通用户的每次调用就不现实了。

它能向你保证什么,不能保证什么

这部分我觉得最值得认真读,因为一个「零知识证明」方案的宣传最容易过度延伸,而原文把边界划得很清楚。

它保证的:在你拿到的这份承诺之下,被承诺的权重按这套计算规则,确实会产生你看到的这些 token。而且它没有向任何人泄露权重。

它不保证的,至少六条:

  • 只覆盖整数、贪心解码的模型。证明的是 4-bit 量化权重的精确整数计算。浮点运算或采样解码会产生分歧;而且那个「误差很小」的期望,不覆盖对抗性构造的 prompt。
  • 上下文只到 1024 token。长文档、长对话目前不在范围内。
  • 只隐藏权重,不隐藏架构和专家路由结构。原文说得很直白:架构不是秘密。
  • 快速验证器没有形式化正确性保证。只有较慢的 Lean 版本和可靠性定理挂了钩;论文、Lean 规格和可执行代码之间也没有形式化保证一致。这意味着「形式化的说法」仍然需要人工审计。
  • 时序等侧信道不在范围内,而这些侧信道理论上可以泄露权重信息。
  • 它证明不了硬件没在同时干别的——比如同一批 GPU 一边推理一边偷偷训练。这条听起来最荒诞,但实际上是一道真实的信任缺口。

还有一处结构性的限制:因为是事后批量证明,用户在拿到结果的那一刻其实还没有保证,要等证明批次出来。原文也承认这会引入重复计算、延迟和不确定性。换句话说,它更适合「第三方事后审计」,而不是「用户实时对账」。

为什么现在没人能用它

GitHub 仓库的简介只有一句话:「一个用于 AI 推理零知识证明的研究原型。不再维护。」(Not maintained)许可证 Apache 2.0,代码、规格文档和 Lean 形式化证明都在里面。

Anthropic 自己的表述也很克制:这是一份「中间进展」,不是一份完成的研究议程;发出来是希望别人「拿去改进」(take it, and improve it)。没有部署到 Anthropic 内部或任何实验室的计划。

为什么?因为 70 到 95 倍的开销在商业上说不通。推理成本本来就是模型公司最大的一项支出之一,叠加上百倍,没有哪个 API 会这么做。真正能用的场景,大概率是这三类:

  • 合规与审计:监管或第三方需要抽查「某次高风险调用是不是用了声明的那款模型」,一批 24 条、223 秒的节奏完全够用。
  • 招标与验收:政府或大企业采购模型服务,要求供应商证明交付的是合同里那款模型。
  • 纠纷取证:两个方吵「你到底用了什么模型」,拿承诺和证明来对账。

这三类场景的共同点是:成本敏感度低、单次调用价值高、批量容忍度高。恰好和高频推理 API 的画像反过来。

这件事对普通用户和开发者意味着什么

结论很直接:你现在的用法一点都不用改。没有哪家 API 会因此变慢或变贵,也没有哪家会上线这个功能。

但有两件事值得留意:

  • 「模型身份」这个问题终于有了形式化定义。以后讨论「服务商偷偷降级模型」这类指控时,至少知道一个「够格的证明」长什么样——不是风格像不像,而是能不能验。
  • 别把水印和证明搞混。水印回答的是「这段内容出自哪个系统」,证明回答的是「这次推理用了哪份权重」。前者防伪造内容,后者防偷换模型。两者都做不到对方能做的事。

小结

FlashProve 是一次把「信任」拆成数学的技术演示:它证明了在 400B 的 MoE 模型上,可以对一次推理给出密码学层面的证据,而且速度比之前的方案快了三个数量级。这个进展本身是扎实的。

但它同时也证明了这条路现在有多贵:70 到 95 倍的推理开销、19 MB 一份的证明、1024 token 的上限、只能事后验证。这些限制加起来,注定它今天只是一个审计工具的原型,而不是 API 的一个功能。

我的判断是:这件事的价值在未来两三年会慢慢显现——不是因为它会部署到线上,而是因为当一个「可验证」的标准存在之后,那些没法验证的声明就会开始显得可疑。到那时候,能提供证明的服务商和不提供的,会被分开看待。

参考来源

发表评论

邮箱不会公开,带 * 的是必填项。