Un modèle de 27 milliards de paramètres ramené à 5,9 Go
PrismML publie Ternary Bonsai 2 27B, une version ternaire de Qwen3.8 27B annoncée neuf fois plus compacte, avec 98,2 % de ses performances agrégées.
Faire entrer un modèle de 27 milliards de paramètres dans moins de 6 Go sans le réduire à une version largement dégradée. C’est la promesse de Ternary Bonsai 2 27B, une déclinaison de Qwen3.8 27B conçue par PrismML pour fonctionner localement sur un ordinateur portable ou une seule carte graphique.
Le modèle conserve le nombre de paramètres et l’architecture générale de sa base. PrismML ne fabrique donc pas une variante plus petite au sens classique. L’entreprise modifie la manière dont les poids sont représentés et exécutés afin de réduire leur occupation en mémoire.
La version complète en FP16 demanderait environ 54 Go uniquement pour ses poids. Le format le plus compact de Bonsai 2 occupe 5,95 Go, soit une réduction proche d’un facteur neuf. Une seconde version, un peu plus lourde mais généralement plus rapide pour traiter les instructions, atteint 7,21 Go.
Cette compression repose sur des poids ternaires. Au lieu d’enregistrer chaque valeur avec seize bits, le modèle limite l’essentiel de ses poids à trois possibilités : −1, 0 ou +1. Un facteur d’échelle en FP16 est partagé par groupes de 128 poids afin de restituer une amplitude adaptée à chaque partie du réseau.
Une valeur possédant trois états contient théoriquement environ 1,585 bit d’information. Après ajout des facteurs d’échelle et des quelques tenseurs maintenus avec une précision supérieure, PrismML calcule une moyenne de 1,72 bit par poids. Le format GGUF le plus compact monte légèrement à 1,75 bit en raison de son mode de stockage.
La conversion ne consiste pas simplement à arrondir chaque poids vers la valeur ternaire la plus proche. Les matrices sont d’abord transformées par blocs dans une autre base mathématique grâce à une rotation de Hadamard. Le moteur d’exécution applique la transformation correspondante aux activations pendant l’inférence.
Cette étape cherche à mieux répartir les valeurs avant leur réduction. Les poids transformés sont directement enregistrés sous leur forme compacte et ne sont pas entièrement reconstruits en FP16 au moment de produire une réponse. Le gain de mémoire peut ainsi être conservé pendant l’utilisation, à condition de disposer des noyaux de calcul spécialement développés par PrismML.
Bonsai 2 est dérivé de Qwen3.8 27B sans changement annoncé de son architecture. La fiche publiée sur Hugging Face compte 27,36 milliards de paramètres : 24,35 milliards dans le corps du modèle de langage, 2,54 milliards dans les couches d’entrée et de sortie, puis environ 460 millions dans le module visuel.
Le modèle utilise 64 blocs et une attention hybride. Environ trois quarts des couches reposent sur une forme d’attention linéaire, tandis que le quart restant utilise une attention complète. Cette organisation contribue à rendre plus praticable sa fenêtre de contexte annoncée à 262 000 tokens.
Il accepte du texte et des images, mais ne produit que du texte. Le module chargé de comprendre les images n’est pas inclus dans les 5,95 Go mis en avant pour le modèle de langage. Dans la distribution GGUF, il prend environ 630 Mo supplémentaires en Q8. La version de référence en BF16 atteint 930 Mo.
Le chiffre de 5,9 Go doit donc être interprété avec précision. Il correspond au cœur linguistique utilisant le format `PTQ10`, qui compacte les trois états au plus près de leur coût théorique. Une installation multimodale complète demande davantage d’espace, auquel s’ajoutent le logiciel d’exécution, les données temporaires et la mémoire utilisée par le contexte.
PrismML propose également un format `PQ20`. Chaque poids ternaire y occupe un emplacement de deux bits, ce qui simplifie certains calculs mais porte le fichier linguistique à 7,21 Go. C’est cette version que le dépôt de démonstration télécharge par défaut, accompagnée du module visuel. L’installation minimale proposée par le projet récupère ainsi environ 7,8 Go de poids avant l’ajout éventuel d’Open WebUI et de l’interpréteur de code.
Sur les appareils Apple, la version MLX occupe 8,6 Go sur le disque. Le modèle de langage y représente 7,67 Go et le module visuel 920 Mo. Ce surcoût vient du conteneur MLX, qui conserve une échelle et un biais par groupe. La représentation logique reste ternaire, mais son stockage pratique atteint 2,25 bits par poids.
L’annonce selon laquelle Bonsai 2 serait « neuf fois plus petit » ne s’applique donc pas uniformément à toutes les distributions. Le facteur se rapproche de neuf pour le cœur linguistique `PTQ10` comparé aux 54 Go de la version FP16. Il descend à environ 7,5 pour `PQ20`, puis davantage encore lorsque la vision et les composants du logiciel sont inclus.
La taille du fichier ne correspond pas non plus à toute la mémoire nécessaire pendant une session. Les représentations intermédiaires, l’état du modèle et le cache associé au contexte s’ajoutent aux poids. Plus une conversation, un dépôt de code ou un document est long, plus cette mémoire supplémentaire devient importante.
La documentation du cache estime qu’un contexte de 100 000 tokens demande environ 6,3 Gio avec le cache FP16 par défaut. Un mode expérimental en quatre bits peut ramener ce volume à environ 1,8 Gio, au prix d’une génération légèrement plus lente et d’une petite perte de qualité si aucune calibration adaptée n’est appliquée.
Une fenêtre maximale de 262 000 tokens ne signifie donc pas qu’elle sera utilisable dans toutes les configurations ayant seulement assez de mémoire pour charger les 5,9 Go de poids. L’appareil doit également accueillir le cache, l’environnement d’exécution et les autres applications actives. La longueur maximale décrit une capacité du modèle, pas une garantie pratique pour chaque machine.
La principale affirmation de PrismML concerne la qualité conservée. L’entreprise indique que Bonsai 2 atteint 98,2 % de la performance agrégée de Qwen3.8 27B en précision complète. Cette proportion ne signifie pas que 98,2 % des réponses seront identiques ni que chaque compétence perd exactement 1,8 %.
Le chiffre correspond au rapport entre deux moyennes