服务商说自己的模型输出可以验证,这一说法有多大用处,取决于它背后的具体声明。原因在于,归在可验证推理名下的各种机制,核查的对象各不相同。零知识证明除了所确立的命题之外,不泄露任何信息。它可以表明,某个输出与服务商已承诺的权重一致。[1]抽样审计只核查部分请求,其设计目标是以高概率发现大规模作弊。[6]这份核查清单把笼统的声明拆解为十个问题,每个问题都附有核查表。
何时使用这份核查清单
如果你准备依据服务商或协议“输出可验证”的声明行事,应先使用这份清单。例如,你可能要依据这类声明为某个特定模型付费,或让智能体根据这些输出采取行动。需要准备的材料有:书面声明及其所依据的论文或规范、验证工具,以及你自己的要求,其中要包括单个错误输出会让你付出多大代价。
1. 准确写下声明的内容
把声明完整地写下来,写明模型、输入、输出、解码设置以及运行发生的时间。解码设置决定模型如何选出每个词元(token)。每种机制只覆盖上述要素中的一部分。zkLLM 的零知识证明表明,对于给定的提示词和服务商已承诺的保密模型,返回的结果是正确的。[1] Gong、Liu 和 Li 认为,这类证明并不约束实际投入的计算量。在他们提出的 Hollow-LLM 攻击中,服务商保留所声明的架构和参数量,使用的权重却把计算量降到一个小得多的模型的水平。这些证明依然能通过验证。[3] TOPLOC 核查的是模型内部激活值的哈希。其作者指出,它无法发现推测解码(speculative decoding),即由一个更便宜的模型生成词元的做法。不过在作者的测试中,模型、提示词或数值精度的每一次改动,它都识别了出来。[4]
2. 确定采用的机制
写明声明所依赖的机制。每类机制依据的证据和假设各不相同。
| 机制 | 示例 | 核查通过表明 | 主要假设 |
|---|---|---|---|
| 零知识证明 | zkLLM、DeepProve[1, 2] | 输出与公开架构在已承诺权重上的运行结果相符[3] | 承诺对应的正是预期的那组权重 |
| 硬件远程证明 | 在可信执行环境(TEE)中提供推理服务[7, 9] | 真实的硬件加载了哪些软件 | 硬件厂商和经过度量的软件 |
| 激活指纹 | TOPLOC[4] | 重算的激活值与服务商提供的哈希在设定阈值内相符 | 有能力重新运行模型的验证者 |
| 仲裁式委托 | Verde[5] | 结果正确,前提是至少有一家服务商诚实 | 模型算子在不同硬件上给出逐位相同的结果 |
| 乐观重新执行 | EigenAI[8] | 争议窗口期内无人挑战,或重新执行的结果一致 | 有人发起挑战;验证者使用相同的硬件 |
| 抽样审计 | IMMACULATE[6] | 受审计的请求与所声称的模型一致 | 审计请求与普通请求无法区分 |
3. 查明谁能执行验证
查明验证程序需要哪些数据和硬件,因为这决定了你或你信任的人能否运行它。零知识证明原则上可以公开验证。[3] DeepProve 报告的验证时间为 1 至 3.7 秒。[2] TOPLOC 的验证者要在已生成的词元上重新运行模型,以重算激活值。[4]因此,它需要模型权重和合适的硬件。EigenAI 要求验证者与运营方(即运行推理的一方)使用相同型号的图形处理器(GPU),因为 A100 和 H100 GPU 执行相同的运算会得出不同的结果。[8]
4. 列出你仍需信任的对象
逐一列出这样的参与方或组件:其中任何一个出问题,错误的输出就能通过核查。每种机制都至少依赖一个,上表最后一列列出了最主要的那个。外部测试也无法消除这种依赖。Cai 等人的结论是,不经服务商配合的测试无法可靠地发现模型替换。针对文本输出的统计检验需要大量查询,而且会漏掉细微的替换;针对对数概率的检验则会失效,因为生产环境中的推理是非确定性的。[7] Cai 等人转而提议使用 TEE。TEE 把信任转移到硬件厂商和经过度量的软件上。我们的远程证明报告解读指南介绍了这些检查。
5. 确认核查是否覆盖每一个输出
查明方案核查的是每个输出、抽取的一部分输出,还是只有存在争议的结果。IMMACULATE 的审计方会发送少量随机请求,这些请求看起来与普通流量无异。审计方随后要求服务商证明自己是如何响应这些请求的。作者的推理是,服务商只有在不可忽略的一部分请求上偏离声明,作弊才划算。他们据此认为,这种抽样能以压倒性概率发现大规模偏离。[6]在 EigenAI 的乐观设计中,结果只要在争议窗口期内无人挑战,就维持有效。[8]两种设计针对的都是系统性作弊。它们都不能保证你收到的某个具体输出经过了核查。
6. 检查证据如何与你的请求绑定
检查证据是否指向你的请求,这样它才无法挪用到别的请求上。证据还必须涵盖决定输出的每一项输入。EigenAI 把它的输出描述为模型、提示词、随机种子和解码设置的纯函数,即输出只取决于这四项输入。因此,这四项都必须记录下来,重新执行的结果才能一致。[8]会话绑定同样重要。在 WhatsApp 基于 TEE 的系统中,证明报告起初不含任何由客户端提供的值,因而本可能遭到重放。Meta 的修复把每份报告绑定到一个传输层安全(TLS)连接上。[9]如果智能体根据输出采取了行动,就把证据与该行动的记录保存在一起。这样就能把这一行动追溯到经过验证的结果。
7. 检查模型承诺的方式
检查模型承诺。模型承诺是公开发布的权重密码学指纹,后续的数学证明都以它为参照。在 zkLLM 中,服务商为一个模型生成承诺最多需要 20 分钟,公布的承诺约为 10 MB。[1]承诺固定了一组权重,却不说明这是哪一组权重。除非服务商把承诺与一个你能检查或评测的发布版本关联起来,否则数学证明只能表明输出与某组固定的权重一致。Hollow-LLM 的研究结果还表明,权重即使符合所声明的大型架构,实际完成的也可以只是一个小得多的模型的计算。[3]
8. 弄清核查失败的后果
查明核查失败会带来什么后果。没有明确的后果,发现错误也改变不了什么。在 EigenAI 中,重新执行时发现结果不一致会导致罚没,即从运营方的质押中扣除资金。[8]在 Verde 中,争议会缩小到模型计算中的单个算子。仲裁方重新执行这个算子,找出出错的服务商。[5]如果依靠密码学证明或远程证明,后果由你自己的客户端决定,因此要确认客户端会拒绝未通过核查的输出。
9. 权衡成本与延迟
记录验证的成本,因为成本决定了服务商负担得起验证多少流量。zkLLM 报告,为一个 130 亿参数模型的一次推理生成零知识证明,用时不到 15 分钟。[1] DeepProve 报告,GPT-2 每分钟约可证明 174 个词元,Gemma 3 约为 86 个。[2] IMMACULATE 只对受审计的请求运行可验证计算,报告的吞吐量开销不到 1%。[6] EigenAI 报告,在其自身测试中开销低于 2%。[8] Verde 让每项任务至少在两家服务商上运行,因此总成本至少翻倍。此外,它的可复现算子相对 PyTorch 还有额外开销:作者报告,在 A100 GPU 上,10 亿参数 Llama 模型的推理开销为 58%,80 亿参数模型为 98%。[5]
10. 寻找独立审查
寻找针对机制本身及其部署的外部审查。zkLLM 获 2024 年 ACM Conference on Computer and Communications Security(CCS)录用;DeepProve 的 ePrint 条目则标注为 CCS 2026 小修(minor revision)。[1, 2]学术分析还可能揭示一整类声明的缺口,Hollow-LLM 论文针对零知识推理提出的正是这样的论点。[3]具体部署也需要单独审查。Trail of Bits 在 WhatsApp 基于 TEE 的系统上线前做了审计,发现 28 个问题,其中 8 个被评为高危。[9]仅由服务商自己测量的数字,例如 EigenAI 的可复现性结果,在其他人复现之前都应视为声明。[8]
示例
来源
- zkLLM: Zero Knowledge Proofs for Large Language Models
- DeepProve: Verifiable End-to-End Large Language Model Inference
- Hollow-LLM Attack: Computationally Trivial Weights in Zero-Knowledge Verification of LLM Inference
- TOPLOC: A Locality Sensitive Hashing Scheme for Trustless Verifiable Inference
- Verde: Verification via Refereed Delegation for Machine Learning Programs
- IMMACULATE: A Practical LLM Auditing Framework via Verifiable Computation
- Are You Getting What You Pay For? Auditing Model Substitution in LLM APIs
- Deterministic Inference Is Here: How EigenAI Makes Every AI Output Verifiable
- What we learned about TEE security from auditing WhatsApp's Private Inference
核查或更正本页
- 更正
- 提交更正请求 · 在 GitHub 编辑源文件 · 更正政策
