跳到正文
sobolewski.pro今日 AI,每晚送达订阅

每天一封,一键即可退订。 隐私政策

FlashProve:Anthropic 证明回答出自哪个模型

Anthropic 的 FlashProve 是可证明推理的开源原型:用 zkSNARK 证明回答由哪个模型生成,且不泄露模型权重。

1 分钟阅读

本文的其他语言版本:العربيةDeutschEnglishEspañolFrançaisItaliano日本語Polski

本文内容
  1. FlashProve 解决什么问题?
  2. FlashProve 有多快?
  3. Claude 在其中扮演什么角色?
  4. 需要注意什么?
  5. 它能用来做什么?
  6. 常见问题

Anthropic 的 Frontier Red Team 于 11 月 2 日发布了 FlashProve,这是一个开放的“可证明推理”(provable inference)原型。借助它,模型提供方可以用密码学方式证明某个回答出自一组事先声明的特定权重,而且无需公开权重本身。代码以 Apache 2.0 许可证发布在 GitHub 上。

FlashProve 解决什么问题?

通过 API 调用模型时,我们无法确认回答我们的就是我们付费使用的那个模型。作者举了两个例子:一个中间服务“for cost reasons”悄悄替换模型;一个提供方可能提供更便宜或降级的版本,并伪造日志。

FlashProve 的解决方案是 zkSNARK,也就是简短的零知识证明。它分两步工作:

  1. 每个模型一次:提供方发布对权重的承诺,即一个简短的“指纹”,把它绑定到唯一一组权重上,同时不泄露这些权重。
  2. 每次请求:服务器生成一个证明,表明正是那个已声明的模型生成了这些 token。任何人都可以在普通 CPU 上验证这个证明,无需访问权重。

这个证明有几个特性:诚实的证明总能通过,伪造的证明几乎不可能做出,权重和中间值保持隐藏,而且证明本身体积小、验证成本低。

FlashProve 有多快?

这里就有意思了。团队在完整的 Llama 4 Maverick 上做了演示,这是一个 4 位权重的 MoE(mixture-of-experts)模型,拥有 4000 亿参数,每个 token 约有 170 亿参数处于激活状态。根据文章:

  1. 证明器(prover)需要一块 H100 和 24 个 CPU 核心,并从约 290 GB 的主机内存中流式读取权重。
  2. 预处理阶段约需 39 分钟,每个模型只需执行一次。
  3. 一批 24 个请求约需 223 秒,即每秒约 110 个 token,单个证明大小为 18.78 MB。
  4. 验证一个证明在 24 线程上需要 17 秒(单线程 21 秒),无需 GPU。

开销仍然很大:生成证明的时间约为 vLLM 处理同样 24 个请求的 72 倍(视运行情况在 66 到 77 倍之间)。作为对比,作者提到此前的开放研究只能达到每秒零点几个 token,或者只能在 GPT-2 规模的模型上运行。

Claude 在其中扮演什么角色?

在研究本身。据作者介绍,Claude 提出了面向推理的 zkSNARK 改进,并编写了协议规范。不过团队也指出,Claude“often makes decisions that are hard to evaluate”,因此安全性质在 Lean 中进行了形式化描述和证明。代码库中包括证明器、一个用 C++ 编写的快速验证器,以及第二个用 Lean 编写、经过形式化验证的验证器;据作者称,两者在每个测试过的证明上结果都一致。关于 Claude 如何处理形式化证明,我在对 123 个开源库进行形式化验证一文中写过。

作者包括来自 Anthropic、EPFL、MIT、StarkWare 和 Succinct 的研究人员。

需要注意什么?

第一,这是一个研究原型。文章完全没有提到将 FlashProve 用于 Claude 模型或 Anthropic 的生产环境,而且代码库被标记为不再维护,也不接受修改。

第二,作者自己列出的限制。证明覆盖的是权重的整数版本和贪心解码(greedy decoding),因此使用采样的回答可能会不同。上下文限制在 1024 个 token,模型架构没有隐藏,设计前提是 MoE 模型。此外,快速可执行代码也没有形式化保证。

第三,延迟。FlashProve 在推理之后分批生成证明,所以我们不会在收到回答的同时拿到证明。

它能用来做什么?

作者列举的用途包括:发现被攻破的服务器或被替换的模型,确认某段文本由哪个模型写成,以及确保只提供经过批准的模型。一个有意思的想法是所谓的“Proof-of-Failure”:证明提供方至少消耗了某个特定模型一定数量的 token 却没有得到结果,例如证明模型在至少 100 万个 token 之后仍未在某个补丁中发现漏洞。

这与 Claude 水印是不同的思路:水印以统计方式标记文本,检测时需要密钥;FlashProve 则提供任何人都能验证的数学证明。团队接下来计划隐藏架构细节,并把 1024 个 token 的限制扩展到完整的上下文窗口。

常见问题

FlashProve 是什么?

它是 Anthropic 推出的可证明推理开放原型:一个密码学证明系统(zkSNARK),可以验证某个回答由特定的、已声明的模型生成,同时不泄露其权重。

FlashProve 能用于 Claude 吗?

Anthropic 的文章没有提到这一点。团队是在开放的 Llama 4 Maverick 上测试的,项目本身也是研究原型。

我能自己验证 FlashProve 的证明吗?

可以。根据 README,示例证明的验证可以在 Linux 上用 g++ 13 运行,内存不到 2 GB,无需 GPU。为完整模型生成证明则需要一块 80 GB 的 H100 和数百 GB 内存。

FlashProve 采用什么许可证?

Apache 2.0。模型权重不包含在内,需要按照 Llama 4 许可证从 Hugging Face 下载。

  • AI
  • Anthropic
  • 安全

今日 AI,每晚送达

每晚送上当天最重要的 AI 新闻和博客新文章。简明扼要,附有来源。

每天一封,一键即可退订。 隐私政策