Vérification

La même réponse, octet pour octet

Transformer « le modèle livré est celui qui a été validé » en un test.

Le même modèle, exécuté sur un portable, sur un serveur et sur un microcontrôleur émulé, rend les mêmes mots octet pour octet. Pas « proche ». Identique à un calcul en simple précision. Pour un produit qui doit être certifié ou formellement revu, cela transforme « le modèle déployé se comporte comme celui qui a été validé » en un test qui passe ou échoue.

Les trois environnements

ÉtapeCe que c'est
Python · PyTorchLa passe avant de référence. C'est ce que votre data scientist a validé.
C99 · sans tasLe moteur d'inférence. Pas d'allocateur, pas d'appel système. C'est ce qui est livré.
Cortex-M3 · QEMU MPS2-AN385L'ELF compilé s'exécutant réellement sur un cœur émulé.
VérificationRésultat
Max |Δ| sur les trois étapes3.7e-7
Parité multi-jetons, modèle 60K48 / 48 exacts
Parité multi-jetons, modèle 944K16 / 16 exacts
Suite de tests à HEAD146 / 146 au vert

Pourquoi c'est le test multi-jetons qui compte

Un test de parité sur une seule passe avant est facile à réussir et facile à tromper. La génération est auto-régressive : la sortie du modèle devient son entrée suivante, si bien qu'un écart à la septième décimale au jeton 1 peut devenir un mot différent au jeton 40. La parité multi-jetons exécute toute la boucle de génération dans les deux environnements et compare les séquences émises.

La même discipline sur la ligne EDGE

Ce que vaut une affirmation de parité non exécutée

Un export antérieur portait la mention « parité : C == torch-static (par construction) ». Le raisonnement était juste et le moteur C n'avait jamais été exécuté sur le jeu de test. Quand il l'a enfin été, il a révélé un débordement de tampon : trois tableaux figés à 24 canaux alors que le nombre de canaux était lu à l'exécution, sans contrôle de bornes. Sur un appareil, c'est une corruption mémoire silencieuse, pas une mauvaise réponse. Cela a duré quatre semaines derrière une phrase qui sonnait comme une mesure.

C'est pourquoi les chiffres de cette page nomment le fichier de test qui les produit. « Par construction » est une hypothèse ; un test vert sur l'artefact réel est un résultat.

Ce qui n'est pas prouvé ici