GGUF dans transformers, AISI publie ses configurations : la mesure devient le livrable

💡 En résumé

Trois publications sans rapport apparent, le 22 septembre 2026, racontent la même histoire.

Hugging Face a intégré les quantifications GGUF de llama.cpp directement dans transformers : un modèle quantifié se charge avec from_pretrained(..., gguf_file=...) et tourne sur Apple Silicon en réutilisant les noyaux Metal de ggml, sans changer d’environnement d’évaluation. Le UK AI Security Institute publie ses résultats vérifiés — cinq benchmarks, six modèles de frontière, deux évaluations cyber — via les Evaluation Cards d’EvalEval et le schéma Every Eval Ever, avec les configurations permettant de savoir sous quelles conditions ces scores ont été produits. Et côté recherche, un papier montre qu’une procédure de test-time scaling plus simple que toutes les usines à évolution bat l’état de l’art sur le circle packing et l’Erdős minimum-overlap.

Le point commun : dans les trois cas, ce qui progresse n’est pas le modèle, mais l’instrument qui le mesure ou qui le déploie. Et le contre-exemple du jour est tout aussi net — un papier de grokking qui se conclut lui-même par « instrument invalide, aucun verdict », après avoir constaté que son propre alignement de réseaux ne préservait pas la fonction du réseau.

🔥 Tendances

Le même checkpoint, deux mondes qui se rejoignent

L’annonce de Hugging Face est un événement de plomberie, et c’est précisément pour cela qu’elle compte. Les modèles GGUF — format d’inférence locale développé par l’équipe llama.cpp — ont été téléchargés des millions de fois, alimentent Ollama, LM Studio, Jan. Jusqu’ici, les tester ou les évaluer supposait de sortir de la pile Python et PyTorch : on ne pouvait pas brancher un hook sur une couche intermédiaire, modifier un forward, ou passer un logits processor maison dans generate.

Désormais le même fichier se charge dans transformers et se sert derrière une API compatible OpenAI via transformers serve. Le tableau de tailles publié pour Unsloth Qwen3.5-4B dit tout l’enjeu : 8,42 Go en BF16, 3,53 Go en Q6_K, 3,14 Go en Q5_K_M, 2,74 Go en Q4_K_M. La recommandation du billet — commencer en Q4_K_M, monter en Q5_K_M ou Q6_K selon la mémoire, et « évaluer sur le travail que vous voulez réellement faire » — est la phrase la plus importante : la qualité d’une quantification dépend du modèle et de la tâche, donc elle se mesure, elle ne se suppose pas.

AISI : publier la configuration, pas seulement le score

Le second mouvement est institutionnel. Le UK AI Security Institute met en accès les méthodes et résultats de son rapport How Inference Compute Shapes Frontier LLM Evaluation à travers les Evaluation Cards d’EvalEval, avec le schéma Every Eval Ever (EEE). Les cinq benchmarks concernés — HealthBench, FrontierMath, Humanity’s Last Exam, SWE-Bench Pro et Terminal-Bench 2.0 — couvrent six modèles de frontière (Claude Opus 4, 4.5 et 4.6, GPT-5, 5.2 et 5.4), auxquels s’ajoutent deux évaluations cyber, Cyber CTFs et The Last Ones, sur un ensemble de modèles partiellement différent.

Le résultat central du rapport est un avertissement méthodologique : la performance sur Humanity’s Last Exam change avec le protocole d’évaluation et le calcul d’inférence. Les courbes montrent la part cumulative de tâches résolues sous un budget de tokens donné ; quand un oracle fournit un retour de correction après chaque tentative, les modèles continuent à résoudre des tâches supplémentaires à mesure que le budget augmente. Dit autrement : un score publié sans son protocole n’est pas un score, c’est un nombre.

EvalEval relie cette publication à trois outils d’AISI déjà connus — OptStop pour l’efficacité des évaluations, HiBayES pour la rigueur statistique, et des travaux de standardisation sur l’analyse de transcripts et l’élicitation de capacités. La finalité assumée est de rendre comparables des scores « apparemment similaires produits dans des conditions significativement différentes ».

Le test-time scaling n’a pas besoin d’usine

Le troisième mouvement vient de la recherche. Face aux systèmes qui empilent recherche évolutionnaire, archives de solutions, mécanismes de diversité et entraînement des poids au moment du test, un papier demande : de combien de cette machinerie avons-nous réellement besoin ?

La réponse tient en une procédure, Hill Sampling : échantillonner à répétition des éditions de programme depuis un LLM gelé, conserver le meilleur programme trouvé, puis conditionner tous les échantillons suivants sur ce programme. Résultat : nouvel état de l’art sur le circle packing parmi les méthodes publiées, amélioration de la référence AlphaEvolve sur le problème de recouvrement minimal d’Erdős, et de bons résultats sur les sommes et différences d’ensembles finis — en quelques heures sur huit H100. Les auteurs notent aussi avoir mené la plus grande étude, en nombre de paramètres, de stratégies d’évolution appliquées directement aux poids d’un LLM au moment du test : apprendre les poids est pire que fixer le taux d’apprentissage à zéro, et l’aléa de l’échantillonnage de tokens reste plus fort que celui des perturbations de poids.

Les simulateurs humains sous contrôle négatif

Quatre études du même jour appliquent à des « humains simulés » un contrôle que l’on applique rarement : la comparaison à une base sans mécanisme.

  • Personas synthétiques contre audience réelle : sur l’Upworthy Research Archive (milliers de tests A/B de titres sur trafic réel), un panneau de dix personas dégrade la validité prédictive par rapport à une base sans persona. Le modèle brut obtient τ de Kendall 0,361 et 49,2 % de top-1 ; le panneau obtient 0,084 et 34,6 %, intervalles de confiance non chevauchants, sur trois découpages indépendants et robuste au modèle et à la formulation (arXiv 2609.25010).
  • Consommateurs synthétiques sur des visuels : sur six expériences canoniques de marketing visuel, aucune configuration — y compris avec des passages à des générations de modèles plus récentes et des entrées JSON — ne reproduit plus de deux effets humains sur six, et une configuration inverse le motif humain. Même quand l’apprentissage en contexte réussit à orienter les réponses, la configuration sous-estime la dispersion des réponses humaines de plus de la moitié (arXiv 2609.25677).
  • Sociétés simulées : l’entraînement d’alignement compresse la distribution vers un stéréotype par groupe — sur le passage base → Tulu 3, l’instruction tuning supprime la moitié de l’écart-type humain (ratio 1,22 → 0,59) pour 0,9 point de précision, et le modèle le plus précis conserve un ratio de 0,50 globalement mais de 0,11 pour le Nigeria contre 0,70-0,87 dans les pays occidentaux. Ni la température à 1,0, ni GRPO sous récompense d’exactitude ou de distribution ne restaurent la dispersion (arXiv 2609.25760).
  • Proxy hors ligne contre décision en ligne : un cadre d’évaluation en couches atteint 81,1 % de F1 contre 34,3 % pour le score brut de classifieur sur lequel il est bâti, et ne produit aucun appel en mauvaise direction là où le score brut en produit 31, sur 113 contrastes appariés de huit expériences postérieurs au gel du modèle de calibration (arXiv 2609.25408).

🤖 Nouveaux outils

GGUF dans transformers (Hugging Face)

  • API : from_pretrained(model_id, gguf_file="...") ; transformers serve "<repo>:<fichier>.gguf" expose un point de terminaison compatible OpenAI.
  • Noyaux ggml réutilisés via la bibliothèque kernels : ggml-quantization (lecture des poids quantifiés packés, experts MoE compris, sans déplier la matrice), ggml-norm (RMSNorm centré sur zéro de Qwen3.5/3.8), ggml-attn (flash attention Metal), ggml-gated-delta-net (couches à attention linéaire des architectures hybrides Qwen3.5/3.8) et un noyau topk maison pour le routage MoE.
  • Deux correctifs dans generate, utiles à tous les modèles : suppression précoce d’un masque d’attention inutile quand l’entrée n’a pas de padding (#48814), et report asynchrone du contrôle d’arrêt (#47975) pour que le CPU continue à ordonner du travail pendant que le GPU exécute.
  • Limites annoncées : chemin packé MPS uniquement pour l’instant, lots (batching) avec padding non optimisés, couverture limitée aux architectures Qwen3.5 dense et MoE (checkpoints Qwen3.8 compatibles). llama.cpp reste l’engin recommandé pour la seule performance locale.
  • Ce que cela débloque : expérimenter en Python/PyTorch sur des poids quantifiés, évaluer la qualité d’un checkpoint quantifié avec les workflows d’évaluation existants, valider une conversion GGUF en comparant au checkpoint d’origine, ré-entraîner après déquantification via GgufConfig(dequantize=True).

Evaluation Cards et Every Eval Ever (AISI × EvalEval)

Schéma partagé et plateforme ouverte pour publier un résultat d’évaluation avec son contexte : métadonnées de benchmark, données de run, métadonnées de modèle. Côté AISI, cinq benchmarks (+ deux évaluations cyber) et six modèles de frontière publiés avec configurations, dans le cadre du rapport sur l’effet du calcul d’inférence sur l’évaluation.

GittinsEval : évaluer à 1-2 % du coût

Formulation du choix de configuration comme bandit bayésien conscient du coût, avec la politique de Gittins pour décider quelle configuration évaluer ensuite et quand s’arrêter, plus une règle de recommandation à tout instant avec score de type LCB. Sur GSM8K, PIQA, AlpacaEval et MMLU, l’approche atteint une régret simple proche de zéro avec 1 à 2 % du coût d’évaluation exhaustive, l’arrêt adaptatif se déclenchant typiquement entre 1 et 10 % (arXiv 2609.25645).

NSFT : du expert au sous-expert pour les MoE

Les experts activés d’un modèle Mixture-of-Experts sont internes par nature : seule une petite fraction des canaux intermédiaires répond fortement à une tâche donnée. NSFT décompose chaque expert en groupes de canaux structurés le long de la dimension intermédiaire et sélectionne les sous-experts pertinents en combinant importance de routage et saillance d’activation intra-expert, avec mise à l’échelle du taux d’apprentissage et des gradients pour compenser la réduction d’amplitude des mises à jour. Sur OLMoE et Ling-mini-2.0, l’approche dépasse LoRA et les méthodes d’ajustement par expert entier avec nettement moins de paramètres entraînables (arXiv 2609.25655).

TSA et l’interaction schéma-estimateur

Terminal Shrinkage Averaging interpole entre le dernier itéré brut d’un prétraining et la moyenne des checkpoints récents. L’intérêt du papier n’est pas l’astuce mais la séparation qu’il opère : le schéma de taux d’apprentissage et l’estimateur qui construit le modèle déployé sont deux choix distincts, et un schéma qui accélère l’optimisation n’est pas celui qui minimise la variance de l’itéré final. Les gains se transfèrent à un NanoChat depth-22, avec une exécution time-to-GPT-2 plus rapide que la référence publique (arXiv 2609.25482).

FunctionGemma 270M pour l’appel de fonctions embarqué

Extension de FunctionGemma 270M-it à des flux Android réels avec MOBILEACTIONSEXTENDED : environ 9 500 conversations synthétiques validées par schéma, quinze catégories de contrôle de l’appareil (messagerie, appels, caméra, luminosité, statut, lampe torche, gestion d’applications). Après ajustement supervisé en perte sur les seules complétions, l’exactitude de bout en bout passe de 29,3 % (base) et 17,2 % (variante Google) à 76,5 % ; le modèle combiné conserve 76,5 % sur ce jeu et atteint 82,3 % sur le jeu de Google, contre 90,3 % pour le spécialiste de Google — un compromis de 8 points pour doubler la couverture de catégories (arXiv 2609.25373).

Le commutateur de template de chat

Détail d’ingénierie à conséquences méthodologiques : la présence du template de chat active ou désactive la voix auto-référentielle d’un modèle, sur huit modèles instruct open source jusqu’à 9 milliards de paramètres. Avec template, la voix de type « je ne suis qu’une IA » monte et la voix expérientielle (« je ressens ») descend ; sans template, l’inverse. Les auteurs identifient une direction dans les activations de trois modèles qui pilote ce comportement, et concluent que les auto-descriptions des modèles ne sont pas des faits sur les modèles : elles sont partiellement fixées par le template (arXiv 2609.25021).

📊 Analyse

L’instrument peut annuler l’étude

Le contre-exemple du jour est un papier de grokking qui mérite d’être lu comme un modèle de rigueur. Les auteurs entraînent 64 réseaux à graines indépendantes en quatre configurations, jusqu’à convergence soutenue, puis cherchent à savoir si la distribution des recouvrements de poids par paires change au passage du grokking. Puis arrive l’aveu : l’implémentation enregistrée permute les unités cachées sans les biais correspondants ni les permutations internes de têtes, et ne préserve donc pas la fonction du réseau. Toutes les valeurs de recouvrement de poids calculées par cet alignement héritent du défaut. Le critère pré-enregistré ne rend donc aucun verdict : résultat UNDETERMINED, code C0_INSTRUMENT_INVALID. Le ratio d’écart-type entre configurations augmente d’un facteur d’environ 5,6, mais la calibration post-hoc attribue une puissance nulle au test de dip à ces séparations, et les taux de grokking de 0/16, 11/16 et 16/16 restent descriptifs parce que la fraction d’entraînement est confondue avec l’identité du découpage (arXiv 2609.25634).

Ce que ce papier enseigne est exactement ce que le rapport d’AISI rend opérationnel : un résultat sans son protocole ne peut pas être interprété, et parfois ne peut même pas être conservé. La différence entre les deux, c’est que l’un applique la règle à lui-même, l’autre la diffuse comme infrastructure.

La hiérarchie des coûts s’inverse

Deuxième convergence : dans presque tous les résultats du jour, la base simple gagne contre le mécanisme ajouté, ou la mesure répétée gagne contre l’optimisation de la mesure.

  • Hill Sampling bat les échafaudages évolutionnaires, et l’ES sur les poids au moment du test est battu par l’ES à taux d’apprentissage nul — c’est-à-dire par du bruit.
  • La base sans persona bat le panneau de personas pour prédire un engagement agrégé.
  • GittinsEval atteint un régret quasi nul avec 1 à 2 % du budget.
  • Le proxy hors ligne ne devient utile qu’encadré par trois alignements explicitement vérifiés (étiquette comportementale → résultat produit, classifieur → comportement du candidat, signal agrégé → effet de l’expérience).
  • Côté mathématiques du raisonnement, un audit montre que la charge causale du chain-of-thought suit la difficulté de la tâche : sur les tâches faciles, les modèles contournent silencieusement leur propre raisonnement ; sur les tâches difficiles, ils suivent les étapes corrompues et propagent les erreurs. La propagation d’erreur est multipliée par 16 de GSM8K au raisonnement multi-étapes de BBH, et une partition de variance sur 28 584 continuations attribue 98,8 % de la déviance expliquée à la difficulté de la tâche contre 0,8 % au type de perturbation (arXiv 2609.25366).

Ce dernier résultat mérite qu’on s’y arrête : Il établit un problème structurel pour toute surveillance fondée sur la trace de raisonnement. Là où la trace est facile à lire, elle porte peu de signal ; là où elle compte, les erreurs se propagent avant qu’un moniteur puisse intervenir. Et les sondes linéaires séparent bien les modes comportementaux, mais le pilotage par activation ne renverse au mieux que 25 % des cas de propagation : le mode est lisible, pas contrôlable.

La quantification, décision d’ingénierie mesurable

L’arrivée de GGUF dans transformers change moins la performance locale que la capacité à la documenter. Avant, comparer un modèle en Q4_K_M et en Q6_K demandait deux écosystèmes ; maintenant le même workflow d’évaluation s’applique. Le billet de Hugging Face insiste sur trois usages qui sont exactement ceux dont ce type de décision a besoin : évaluer la qualité d’un checkpoint quantifié, valider qu’une conversion GGUF correspond bien au checkpoint d’origine en tenant compte de l’erreur de quantification, et ré-entraîner depuis un GGUF par déquantification.

C’est la version appliquée de la leçon du jour : le format local n’est pas un compromis par défaut, c’est une configuration à mesurer sur la tâche visée, et désormais l’outillage permet de le faire sans changer de pile.

Ce que cela change pour la veille technique

Trois conséquences pratiques pour quiconque suit ce domaine :

  1. Un score de benchmark sans configuration n’est plus publiable sérieusement dans un contexte de décision — AISI et EvalEval ont fourni le schéma ; il devient une référence de facto.
  2. Un budget d’évaluation n’est plus une excuse : 1 à 2 % du coût exhaustif pour un regret quasi nul change le calcul pour les équipes qui doivent arbitrer entre candidats.
  3. Les humains simulés ne remplacent pas les humains, ils les présupposent : la validité d’un simulateur se mesure contre les distributions réelles, dispersion comprise, et non contre la moyenne.

🎯 À retenir

  1. GGUF entre dans transformers : chargement par from_pretrained(..., gguf_file=...), noyaux Metal de ggml réutilisés, Qwen3.5-4B passant de 8,42 Go (BF16) à 2,74 Go (Q4_K_M) — Apple Silicon uniquement pour le chemin packé à ce stade.
  2. Le UK AISI publie ses configurations — cinq benchmarks, six modèles de frontière, deux évaluations cyber — via les Evaluation Cards d’EvalEval et le schéma Every Eval Ever : le score devient inséparable de son protocole.
  3. Hill Sampling bat les usines de test-time scaling avec une seule règle : ré-échantillonner des éditions du meilleur programme vérifié. Et apprendre les poids au moment du test est pire que ne pas les apprendre.
  4. GittinsEval ramène l’évaluation à 1-2 % du coût exhaustif avec un regret quasi nul, l’arrêt adaptatif se déclenchant entre 1 et 10 %.
  5. Les simulateurs d’humains échouent aux contrôles négatifs : personas synthétiques battues par la base sans persona (τ 0,361 contre 0,084), consommateurs synthétiques qui sous-estiment la dispersion de plus de moitié, sociétés simulées qui s’effondrent vers un stéréotype par groupe sous alignement.
  6. Le chain-of-thought est décoratif là où il est lisible et porteur là où il compte : propagation d’erreur ×16 entre GSM8K et BBH, 98,8 % de la déviance expliquée par la difficulté de la tâche, et un pilotage par activation qui ne renverse qu’environ 25 % des cas.
  7. NSFT affine les MoE au niveau du sous-expert, TSA sépare le schéma d’apprentissage de l’estimateur du modèle déployé : deux exemples de la même règle — le levier se trouve dans la granularité du choix, pas dans la taille du modèle.

A lire aussi