L'ESSENTIEL EN 30 SECONDES

  • Un contrat réunit un petit modèle de test construit à partir de la configuration d'un vrai checkpoint, un scénario d'usage exécutable et des sorties de référence relues par un humain.
  • Selon Hugging Face, la version réduite de Llama 4 Scout passe de 108,6 milliards à 44,7 millions de paramètres en gardant chaque type de couche, et ces modèles tournent sur des machines CPU.
  • Au 1er novembre, la tâche de CI signale les échecs sans bloquer les pull requests ; la couverture reste partielle.

Hugging Face a présenté les Model Integration Contracts (MIC), une nouvelle manière de tester sa bibliothèque Transformers. Dans un billet du 3 novembre, Tarek Ziadé explique vouloir détecter les régressions pendant la relecture d'une pull request, et non après sa fusion. Outils, contrats et données sont publics ; l'entreprise présente les MIC comme un standard ouvert en construction.

Le problème de départ

Transformers prend en charge plus de 750 types de modèles. D'après le billet, la branche principale exécute plus de 88 000 tests sur CPU, tandis qu'une tâche quotidienne lance plus de 200 000 tests sur GPU. Les tests d'intégration complets, qui chargent de vrais checkpoints sur de vrais accélérateurs, sont trop lents et coûteux pour chaque modification : des bugs peuvent donc passer inaperçus. Le billet cite une modification de UMT5 du 30 juillet qui permettait au décodeur de voir les jetons futurs pendant l'entraînement ; elle n'a été corrigée que le 28 septembre.

Le fonctionnement d'un contrat

Chaque contrat comporte trois éléments. Le modèle de test (« fixture ») est une version réduite générée à partir de la configuration du vrai checkpoint : moins de couches, plus étroites, mais au moins une de chaque sorte (attention glissante ou complète, blocs denses ou à mélange d'experts), avec des fichiers de tokeniseur et de prétraitement inchangés. Le scénario d'usage est un exemple Markdown exécutable d'une tâche courante (génération de texte, étape d'entraînement). Les références sont des sorties enregistrées sur une version saine et validées par une personne. Le contrat est respecté si le scénario reproduit toujours ces sorties sur le modèle réduit.

Les poids partent d'une initialisation aléatoire fixée ; si le modèle ne réagit pas aux variations de son entrée, il est surentraîné sur quelques exemples. Hugging Face indique que le modèle de test UMT5 pèse 66 Mo contre 1 227 Mo pour l'original. Lors d'une expérience sur Whisper, les versions à poids aléatoires ont repéré 18 des 24 défauts introduits volontairement et les versions surentraînées les 24, mais toutes deux ont manqué un vrai bug de décodage assisté. Un outil en ligne de commande, tmic, prépare les contrats et peut faire proposer le code d'usage par un modèle de langage, mais chaque résultat attendu est approuvé par un humain. L'organisation huggingface-mic recense actuellement 234 modèles de test sur le Hub.

Les questions ouvertes

Pour l'instant, la tâche de CI est seulement indicative : elle signale les échecs sans empêcher les fusions. Hugging Face doit encore mesurer les vrais bugs détectés, les fausses alertes, le temps de relecture des références, et vérifier si certains bugs n'apparaissent qu'avec les vrais poids. L'entreprise prévoit de relier les pages des modèles du Hub à leurs contrats et invite la communauté à couvrir davantage de modèles.