Anthropic给AI回答加上“防伪签名”:FlashProve验证4000亿参数模型,但计算代价仍高出70—95倍

Anthropic开源了FlashProve,一套利用零知识证明验证AI推理来源的研究原型。模型提供商先公开一枚与特定权重绑定、却不会泄露权重的“指纹”,随后为回答附加密码学证明,让用户、审计机构或监管者确认:这些Token确实由承诺的模型计算产生,而不是平台临时换成廉价模型、攻击者篡改输出,或运营者拿另一版本冒充。Anthropic在4比特量化、总参数约4000亿的Llama 4 Maverick上测试:单块H100以约每秒110个输入Token的速度生成证明,每个1024 Token请求的证明约18.78MB,普通CPU约17—21秒即可验证。这个成绩比过去的开放方案快了多个数量级,但仍消耗普通vLLM推理约70—95倍的GPU时间,而且只覆盖整数模型、贪心解码、1024 Token上下文和单个待验证输出Token。它能证明“哪个模型算出了这段输出”,不能证明答案正确、模型安全或服务商没有同时将其他算力用于训练。

文章作者、来源:Anthropic

用户现在只能相信“模型标签”

当一个API或第三方路由平台显示“由某旗舰模型回答”时,用户通常无法独立验证这件事。

服务商可能为了降低成本而换用更便宜的模型;评测机构测试到的版本,可能与正式上线的版本不同;攻击者如果控制了推理服务器,也可能在Token流中插入恶意内容。即使回答的语言风格很像目标模型,仅凭文本也无法形成可靠证据。

直接重新运行模型同样不可行。闭源模型的权重不会交给用户;即使权重公开,复现数千亿参数模型的一次推理也需要昂贵硬件。

FlashProve试图把这个信任问题转化为密码学验证问题:平台不必公开模型权重,却可以证明某段回答确实来自那组权重。

两个阶段:先锁定模型,再给回答开证明

在离线阶段,模型提供商根据权重生成一份较短的承诺值,可以把它理解成模型的密码学指纹。

这份指纹只对应一组确定权重,却不会让外界据此还原模型。后续所有推理证明都必须与这枚指纹匹配,因此服务商不能在不被发现的情况下更换权重。

在线阶段,提供商把用户的提示词、模型输出和计算过程转化为zkSNARK证明。任何拥有模型承诺、原始提示词、回答和证明文件的人,都可以在不取得权重、不重跑模型的情况下检查证明。

这套证明提供四项核心性质:

  • 诚实计算生成的证明能够通过验证;
  • 虚假的推理声明几乎不可能伪造;
  • 证明不会泄露权重、中间计算结果或每层实际调用了哪些专家;
  • 验证成本远低于重新执行完整模型。

它证明的命题非常具体:“与这枚承诺绑定的模型,在这个输入上计算出了这些输出Token。”

为什么4000亿参数模型能塞进一块H100的证明流程

实验对象Llama 4 Maverick是混合专家模型,总参数约4000亿,但每个Token只激活约170亿参数。FlashProve的工作量主要随实际激活的专家增长,而不是每次都处理全部4000亿参数;证明同时隐藏了具体选择了哪些专家。

系统还采用了三项工程优化。

首先,它批量处理24个已经完成的请求,而不是在模型逐字输出时同步生成证明。其次,同一批请求只需打开一次权重承诺。最后,模型各层的权重被分段送入GPU处理,不必全部驻留显存。

官方基准使用一块80GB H100以及约290GB主机内存。GitHub提供的完整复现实验路线要求更高,列出约330GB内存、245GB磁盘和232GB的模型下载,因此所谓“单GPU运行”并不等于普通工作站能够轻松部署。

110 Token/秒不是聊天生成速度

测试中的每个请求包含1024 Token上下文,每份证明检查一个输出Token。模型承诺的初次生成约需39分钟,此后可以用于大约1600万次请求。

在24请求批量设置下,在线证明阶段约需223秒,折算为每秒110个输入Token;每份证明大小为18.78MB。客户端还需下载一次约6.5MB的模型承诺。

证明验证不需要GPU:24线程CPU约17秒完成,单线程约21秒。不过,这里的110 Token/秒衡量的是事后批量验证过程中处理上下文的吞吐量,不是用户看见模型实时输出文字的速度。

与普通推理相比,证明成本仍然很高。Anthropic使用vLLM测试后估算,FlashProve占用的单位GPU时间约为普通推理的72倍;在vLLM较高负载下,差距扩大到约94倍。它已经从“几乎不可运行”进步到“能够实际实验”,但尚不适合给所有日常聊天回答都实时附加证明。

真正适合的场景不是普通闲聊

对日常问答而言,用户往往只关心答案有没有用,不太在意具体由哪一版模型生成。但在几类高风险场景中,模型身份具有实质意义。

独立评测机构可以确认,发布前送测的模型与正式提供给用户的版本相同;通过聚合平台购买旗舰模型的客户,可以防止平台暗中换成廉价版本;软件开发者也可以验证,供应商是否真的使用指定网络安全模型和约定Token预算扫描过代码。

在治理场景中,监管机构还可能要求平台只部署通过审批的模型。平台可以提交推理证明,而不必向监管者交出商业机密权重。

Anthropic还提出“失败证明”的概念:例如供应商可以证明,某个指定网络安全模型确实针对一份补丁尝试了一百万Token,却没有找到漏洞。这不能证明补丁绝对安全,但可以证明约定的检查工作真实发生过,而不是事后伪造一份聊天记录。

Claude参与设计,但密码学结论仍要能脱离Claude审计

Anthropic称,Claude帮助改进了用于AI推理的zkSNARK结构,并编写了协议规范。项目同时发布证明器、快速C++验证器、Lean验证器,以及用Lean表达的顶层安全定理;代码、证明和文档采用Apache 2.0许可证开放。

引入Lean的原因,是复杂密码学代码极易因细小错误失去保证。研究团队用机器可检查的形式分别描述完整性、可靠性和零知识性质,使审计者能够检查最终数学命题,而不必相信Claude的推理过程。

但形式化验证没有消除全部信任缺口。人类仍需检查Lean中的命题是否准确表达了预期安全目标,还要确认实际运行的C++代码与形式化协议一致。日常使用的快速C++验证器本身没有形式化正确性保证;团队只能报告它在现有测试中与较慢的Lean验证器结果一致。

它证明模型身份,不证明模型说的是事实

FlashProve目前还有几项关键边界。

证明针对的是整数化模型和贪心解码。现实服务通常使用浮点计算和带随机性的采样;一旦某个位置产生不同Token,后续文本就可能无法与证明对应。

系统只支持最长1024 Token上下文,远短于现代聊天、编程Agent和研究任务常用的数十万至数百万Token。它也主要利用混合专家结构提升效率,尚不能直接代表稠密模型上的成本。

证明隐藏模型权重和激活专家,却不隐藏网络架构;运行时间等侧信道是否会泄露信息,也未包含在当前安全保证中。

最重要的是,它只验证计算来源,不评价输出质量。一个经过证明的模型仍可能产生事实错误、偏见、恶意代码或不安全建议;如果服务商最初承诺的就是错误模型,证明同样会正常通过。验证模型身份只是建立AI责任链的一层,不是对模型整体可信度的认证。

从“相信服务商”走向“验证每次推理”

FlashProve距离普遍部署仍有明显距离,但它改变了一个重要假设:闭源模型的运行过程未必只能依靠平台自我声明。

如果证明生成成本继续下降,未来的模型API可能不仅返回文字、图片或代码,还会同时返回一份可由客户端、企业审计系统或监管机构验证的凭证。模型权重仍可保持私密,但“究竟是哪组权重生成了这份结果”将不再完全取决于服务商信誉。