Anthropic 于 2026年11月2日发布了开源原型 FlashProve,用于确认 AI 模型的回答是否来自承诺的模型。同时公开的还有研究文章、技术报告、执行代码以及梳理安全性质的 Lean 证明。服务提供商无需公开模型训练得到的数值,即权重,也能证明推理计算;用户和审计者则无需 GPU 或权重,即可通过 CPU 验证。

1. 确认回答是否来自承诺的模型

在 AI 服务中,仅凭回答内容很难知道实际作答的是哪个模型。这项研究针对的是以下问题:将请求转发给模型的中介服务可能为降低成本而换用更小的模型,或服务器入侵者可能篡改输出 token,而用户难以察觉。

提供商首先生成模型权重的简短指纹,即承诺值,这是一种在隐藏原始内容的同时将其固定的密码学值。随后为输入和回答 token 生成证明文件,用户借助该文件和承诺值,确认回答是否来自这些权重。证明的设计旨在不泄露权重、推理中间值及计算过程中产生的临时值。

2. 尝试通过批处理为大型模型生成证明

Anthropic 将 Llama 4 Maverick 的公开 4位权重转换为整数模型进行测量。该模型共有 4,000亿参数,每个 token 使用约 170亿参数,采用仅选择部分计算单元参与运算的混合专家架构。据研究文章介绍,证明工作量也与实际使用的约 170亿参数成正比,而非全部 4,000亿参数,因此这种架构降低了大型模型的证明负担。

Anthropic 的技术报告第6节给出了以下单请求与 24请求批量证明结果。吞吐量以预填充阶段为准,即先计算输入 token 的阶段,计入请求的全部 token,而不只是被验证的输出 token。

表:单请求与 24请求批量证明的生成结果

条件:Llama 4 Maverick 公开 4位权重的整数模型,1张 H100 80GB 和 24核 CPU,每个请求 1,024 token,验证 1个后续 token,安全目标 128位,以公司公布数据为准

单位:耗时为秒,吞吐量为按请求全部 token 计的 token/秒,每个请求的证明大小为 MB

尝试通过批处理为大型模型生成证明
批量大小(请求数)批量耗时(秒)吞吐量(token/秒)每个请求的证明大小(MB)
1个请求5817.6—
24个请求22311018.78

图表:不同批量大小的证明吞吐量 条件:与上表相同的整数模型测量,按请求全部 token 计 单位:token/秒

单请求     ███▌                   17.6
24请求批量 ██████████████████████ 110

这些数值反映的是重新计算长输入时的证明处理速度。技术报告第6节指出,在验证回答中每个 token 的单独测试中,也未测得速度差异;若仅计被验证的 token,则为每秒 39.1 token。

据研究文章介绍,证明验证在 CPU 24线程上耗时 17秒,在单线程上耗时 21秒。

公司在研究文章中表示,权重承诺值每个模型只需生成一次,耗时约 39分钟,可供约 1,600万次请求重复使用。

作为对照的 vLLM 使用 8张 H100 运行同一模型的 FP8 版本,即 8位浮点格式版本。据研究文章介绍,折算为单张 GPU 后,FlashProve 的 24请求批量证明耗时约为 vLLM 同批量大小预填充的 72倍,各次运行介于 66~77倍之间。若以 vLLM 测试的最高负载为基准,则约为 94倍。

3. 推理完成后再生成证明,分离实时负担

FlashProve 采用事后处理方式,先交付回答,再在独立服务器上利用记录的输入和输出重新计算推理并生成证明,即在响应后单独执行。它不在每次生成 token 时生成证明,而是将多个请求合并,并行执行 GPU 任务,同时进行多项计算。它将模型层划分为多个区段,每次只将部分计算放到 GPU 上,权重则从主机内存,即 CPU 使用的主存储器中读取。

这种方式的优点是,证明生成不会阻塞推理服务的即时响应路径。另一方面,据技术报告附录估算,按公司公布数据,证明任务本身消耗的 GPU 时间约为普通推理的 70~95倍,计入重新计算后,证明工作量约增加 1~1.5%。据技术报告第6节介绍,单个请求可能需等待约 5分钟,直到批量证明完成;逐个处理时,证明可在 58秒内就绪,但吞吐量降至每秒 17.6 token。

4. 原型的验证范围与使用方法

据研究文章介绍,安全性质已通过 Lean 4 进行形式化,即用逻辑公式表达数学定义;Lean 4 是一种通过机器检查数学命题的工具。代码仓库同时提供快速的 C++ 验证器,以及速度较慢但具有形式化保证的 Lean 验证器。

据技术报告第7节介绍,快速执行代码与 Lean 定义具有相同行为,以及批量证明能隐藏权重信息这两点,尚未得到形式化证明。研究文章明确的验证对象,是整数模型在最多 1,024 token 的上下文中选择得分最高 token 的计算;浮点计算或按概率抽取 token 的回答可能与该结果不一致。

开发者可按照仓库说明构建验证器,再利用小型模型已保存的证明检查其运行情况,该模型使用为测试生成的合成权重。以下为示例命令,实际验证证明时使用的承诺 ID 应从用户信任的渠道获取。

bin/cp_verify examples/accepted-proof/config examples/accepted-proof/ivk examples/accepted-proof/example.req examples/accepted-proof/example.y examples/accepted-proof/example.proof -id "$(cat examples/accepted-proof/ID.txt)"

FlashProve 是一个研究原型,在大型模型上展示了不公开模型权重即可验证推理的可能性,而计算成本与验证范围是实际应用的关键。