Contexte et enjeux de la vérification d'inférence
Lorsqu’un utilisateur interroge un modèle de langage, il ne peut pas certifier que la réponse provient du modèle déclaré. Cette incertitude crée des risques : un service de routage peut substituer un modèle moins coûteux, un attaquant peut altérer le flux de tokens, et les évaluateurs indépendants ne peuvent pas garantir l’intégrité du modèle testé. Le concept de provable inference (PI) vise à combler ce manque en permettant à un client à ressources limitées de vérifier, sans connaître les poids, que la réponse a été générée par le modèle engagé.
Le PI repose sur des zero‑knowledge succinct arguments (zkSNARK) : le fournisseur envoie, avec chaque réponse, une preuve courte que le vérificateur peut valider en quelques secondes sur CPU. La preuve doit être hiding (ne révèle rien sur les poids) et succincte (taille de quelques mégaoctets, vérification rapide). Ces exigences motivent le travail présenté par Anthropic sous le nom de FlashProve.
Mécanisme de FlashProve
FlashProve implémente un zkSNARK adapté à l’inférence de grands modèles. Le système s’appuie sur un engagement cryptographique du modèle complet, suivi d’une génération de preuve pour chaque token produit. Les auteurs précisent que la preuve cache les poids mais ne masque pas l’architecture, ce qui simplifie le design tout en respectant les exigences de confidentialité des paramètres propriétaires.
Le pipeline utilise des poids quantifiés en 4 bits et réalise les calculs arithmétiques en entier pendant la phase de pré‑remplissage (prefill). Cette quantisation réduit la charge de travail du circuit arithmétique du zkSNARK, permettant ainsi d’obtenir des temps de génération compatibles avec les exigences de latence des LLM. Le code fourni comprend un prover, deux vérificateurs (un rapide en C++ et un vérificateur formellement correct en Lean), ainsi que les preuves Lean des propriétés de sécurité de haut niveau.
Performances mesurées et limites observées
Sur un GPU NVIDIA H100, FlashProve génère des preuves à plus de 110 tokens par seconde pour le modèle Llama 4 Maverick (400 B paramètres, mixture‑of‑experts). Chaque lot de 1 024 tokens produit une preuve d’environ 19 Mo. Comparé à l’exécution du même modèle avec la bibliothèque vLLM, le temps GPU consacré à la génération de preuve représente 70 à 95 fois le temps de calcul du modèle seul, ce qui montre que la surcharge cryptographique reste maîtrisable.
Les systèmes open‑source antérieurs étaient « orders of magnitude » plus lents, ce qui place FlashProve comme une avancée notable. Toutefois, plusieurs contraintes subsistent : la taille de la preuve (≈19 Mo) impose une bande passante non négligeable, la génération nécessite un GPU haut de gamme (H100) et la vérification, bien que rapide, dépend d’une implémentation CPU optimisée qui n’est pas détaillée dans le rapport. De plus, le système ne protège pas l’architecture du modèle, ce qui pourrait être pertinent pour certains scénarios de propriété intellectuelle.
En publiant le code sous licence Apache 2.0, les artefacts (rapport technique, spécification de protocole, code exécutable, preuves Lean et visualiseur interactif) sont immédiatement accessibles pour la communauté. Cette ouverture vise à accélérer la recherche sur le PI, à permettre des audits indépendants et à encourager l’adoption de preuves zkSNARK dans les pipelines d’IA.