Anthropic FlashProve: 400BパラメータMoEモデルのためのオープンソースの検証可能な推論

TL;DR

AnthropicのFlashProveは、特定の400Bパラメータの混合専門家(MoE)モデルによって生成された応答を暗号学的に証明でき、単一のH100 GPU上で毎秒110トークン以上の速度で約19MBの証明を生成します。検証はCPU上で数秒で完了し、モデルの重みを公開することなく信頼できるAI推論を可能にします。


FlashProveが達成すること

FlashProveは、ゼロ知識簡潔非対話的知識論証(zkSNARK)を使用した**検証可能な推論(PI)**を実装しています。これにより、モデルプロバイダーは具体的な重みセットにコミットし、生成された各トークンに短い証明を添付できます。検証者は公開コミットメントのみを保持し、トークンがコミットされたモデルから来たことを確認できます。

主な保証:

  • 完全性 – 正直な証明者の証明は常に検証されます。
  • 健全性 – 偽のステートメントに対する証明を偽造することは、標準的な暗号仮定を破ることになります。
  • ゼロ知識 – 証明はモデルの重みに関する情報を一切明かしません(アーキテクチャは可視のままです)。
  • 簡潔性 – 1,024トークンのリクエストで約19MBの証明が生成され、24コアCPUでの検証は約17秒かかります。

パフォーマンス数値

コンポーネント ハードウェア スループット 証明サイズ
証明者(オンライン) 1×NVIDIA H100 + 24 CPUコア 110トークン/秒(24リクエストで約223秒) 1,024トークンバッチあたり18.78MB
検証者 24コアCPU(GPUなし) – 証明あたり17秒(24スレッド)
オフラインコミットメント 1×H100 39分(モデルごとに1回) 合計6.5MB

8台のH100でのvLLMを使用したバニラ推論と比較して、FlashProveのオンラインフェーズは70〜95倍のGPU時間を要しますが、オーバーヘッドは以前のオープンソースzkMLシステム(0.001〜0.05トークン/秒の範囲)よりも大幅に低くなっています。Attestableなどの商用取り組みは、31Bの高密度モデルで53〜77トークン/秒を報告していますが、FlashProveは400BのMoEモデルで毎秒100トークン以上を達成した最初のオープンソースプロトタイプです。

システムアーキテクチャ

オフラインフェーズ

  1. モデルコミットメント – 証明者は正確な整数量子化された重み(4ビット)の暗号フィンガープリントを計算し、公開します(約6.5MB)。コミットメントは、新しいコミットメントが必要になるまで約1,600万回の推論リクエストに対して有効です。

オンラインフェーズ

  1. リクエスト – 検証者はプロンプトを送信し、モデルの出力を受け取ります。
  2. 証明生成 – 証明者はモデルを実行し(プリフィルスタイル)、同時にコミットされた重みが正確なグリーディートークンシーケンスを生成することを示すzkSNARK証明を構築します。
  3. 検証 – 検証者は公開コミットメント、プロンプト、出力に対して証明をチェックします。重みやアーキテクチャの詳細は明かされません。

技術的核心

FlashProveのzkSNARKは、標準のインタラクティブオラクル証明→ハッシュベースSNARKパイプラインに従い、以下を採用しています:

  • 線形制約付きコード近接テスト
  • ルックアップ引数
  • 耐量子セキュアハッシュ関数

証明システムはMoE推論に特化しており、トークンごとに実際にアクティブな約17Bパラメータのみが暗号作業に関与し、フルモデルコストではなくアクティブな専門家に線形なコストを実現します。

形式検証と信頼

Anthropicは以下を提供します:

  • Lean仕様 – プロトコルとその3つのトップレベルのセキュリティプロパティ(完全性、健全性、ゼロ知識)の仕様。
  • Lean検証者 – 実際に使用される高速C++検証者と証明可能に同等な(遅いが機械チェック済みの)検証者。
  • Lean定理のインタラクティブビジュアライザー。

著者は2つの信頼ギャップを認めています:

  1. 高速C++コードは形式検証されておらず、Lean仕様と一致することが期待されますが、逸脱する可能性があります。
  2. 証明者の実装は形式検証されていません(Lean証明者を実行することは非現実的です)。したがって、実行可能コードの監査が必要です。

Anthropicが強調するアプリケーション

  • 規制ペーシング – 規制当局は証明バッチを要求して、プロバイダーのハードウェアが隠れたトレーニングではなく推論に専念していることを確認できます。
  • 改ざん検出 – 侵害されたサーバーは、不正な重みセットに対する有効な証明を偽造できません。
  • テキストの出所 – ユーザーは、主張(例:「このコードはフロンティアモデルによって監査された」)が使用された正確なモデルの証明によって裏付けられていることを検証できます。
  • モデル承認の執行 – 当局は承認されたモデルのみが提供されることを証明することを要求できます。

コミュニティの反応(Hacker Newsコメント)

  • @neuwirth は、FlashProveが以前のVerInfプロジェクトに基づいていることを指摘し、帰属が限定的であると述べています。
  • @vessenes はパフォーマンスの飛躍を賞賛しますが、証明生成には依然として90〜100倍の計算オーバーヘッドがかかると警告し、隠されたプロンプトセクションのプライバシーを証明するという未解決の問題も提起しています。
  • @nemo1618 は、オープンウェイトモデルでは検証可能な推論は自明(モデルを再実行する)であり、ZKPは主にクローズドウェイトサービスに重要であると主張しています。
  • @ajb は実用性に疑問を呈し、証明はモデルがより安価なものに交換されていないことを確認するだけで、回答が信頼できることを確認するものではないと示唆しています。
  • @grey-area と @thereader12 は、この技術が内部コンプライアンスや規制の取り込み以外のエンドユーザーに役立つかどうかについて懐疑的です。
  • @fscaramuzza と @ronfriedhaber は、高密度モデルで同等のトークン/秒レートを報告するAttestableでの並行作業に言及しています。
  • @wcoenen は、システムが量子化された展開とフル精度の展開を検出できるかどうかを尋ねます。答えは、FlashProveが重みの正確な整数バージョンを証明するため、浮動小数点またはサンプリングされたデコードは逸脱し、証明を無効にする可能性があるということです。
  • @jmort は、ソフトウェアのみのZK証明と機密コンピューティングハードウェアの構成証明の間のトレードオフの問題を提起し、前者はモデル内部を公開しないことを指摘しています。

全体として、コミュニティは技術的なブレークスルーを認めつつも、実際の採用はユースケースの関連性、証明サイズ、レイテンシ、既存のAIサービスパイプラインとの統合に依存すると強調しています。

制限事項

  • 証明の範囲 – 現在、グリーディーデコード下の整数量子化モデルに限定されており、確率的サンプリングや浮動小数点推論はカバーされていません。
  • コンテキスト長 – 証明は最大1,024トークンをサポートしており、多くのチャットアプリケーションで使用される数千トークンのウィンドウよりもはるかに短いです。
  • アーキテクチャの露出 – システムは重みを隠しますが、MoEアーキテクチャは隠しません。高密度モデルには異なる構造が必要です。
  • サイドチャネルリーク – 証明生成中のタイミングやメモリアクセスパターンは、理論的には重み情報を漏洩する可能性があります。これは範囲外です。
  • コード検証のギャップ – 高速C++検証者は形式検証されておらず、証明者には形式保証がありません。

始め方

Anthropicは以下をApache 2.0ライセンスでリリースしています:

  1. テクニカルレポート – 詳細な設計とパフォーマンス分析。
  2. プロトコル仕様(PDF) – 証明システムの正式な説明。
  3. 実行可能コード – 証明者、高速C++検証者、Lean検証者。
  4. Lean証明 – セキュリティプロパティの機械チェック済みステートメント。
  5. インタラクティブビジュアライザー – Lean定理を探索するためのHTMLツール。

すべての成果物はGitHubリポジトリanthropics/FlashProveで入手可能です。


結論: FlashProveは、フロンティア規模のMoEモデルに対するzkSNARKベースの検証可能な推論が実用的になり、単一のH100 GPUで毎秒100トークン以上を達成し、20MB未満の証明がCPU上で数秒で検証されることを実証しています。まだ研究プロトタイプであり、顕著な制限がありますが、オープンソースリリースは、信頼できるAIサービス、規制ツール、およびゼロ知識機械学習に関する将来の学術研究のための具体的な基盤を提供します。

Sources