Carton-titre pour la comparaison de OrcaRouter Ternary Bonsai 2 27B Uncensored et Qwen3.8-27B-Uncensored-MLX, sous-titré « Deux façons de retirer une direction de refus », avec trois pastilles de stats indiquant « Projection à l'exécution », « Pack bit-identique » et « alpha est une option d'exécution », et un pied de page indiquant « Les deux packs sont publiés par OrcaRouter ; les chiffres de sécurité sont produits par OrcaRouter, classificateur basé sur des règles. »
Engineering & Research

Ternary Bonsai 2 27B Uncensored vs Qwen3.8-27B-Uncensored-MLX : deux façons de supprimer une direction de refus

Auteur

Rowan Sterling

Date de publication

Derniers modèles · 20Voir tous les modèles
Benchmarks : Artificial Analysis · mis à jour quotidiennement
Retour à tous les articles

OrcaRouter Ternary Bonsai 2 27B Uncensored et Qwen3.8-27B-Uncensored-MLX répondent à la même question — comment retirer une direction de refus d'un modèle de langage — et ils y répondent à deux endroits différents. La lignée Qwen3.8-27B-Uncensored-MLX relève de l'abliteration conventionnelle : les matrices de poids sont orthogonalisées par rapport à une direction de refus apprise, et les poids modifiés sont enregistrés dans un nouveau checkpoint. OrcaRouter Ternary Bonsai 2 27B Uncensored effectue la projection équivalente au moment de l'inférence à la place, en soustrayant la composante de chaque écriture résiduelle qui s'aligne sur la direction de refus, de sorte que le pack Bonsai sous-jacent n'est jamais modifié et reste identique bit à bit. Les deux sont nos propres versions publiées, et la séparation entre elles ne relève pas d'une préférence concernant les runtimes. Elle découle d'une arithmétique propre aux poids ternaires.

Le sujet de cette comparaison est âgé d'un jour. Prism ML a annoncé Bonsai 2 27B le 17 septembre 2026 ; les dépôts Hugging Face ont été créés la veille au soir, à 23:40–23:41 UTC le 16 septembre 2026, sous Apache-2.0. La version MLX abliterated à laquelle il est comparé est en ligne depuis la mi-août. Rien ci-dessous ne constitue un historique pour la plus récente des deux — lorsque quelque chose n'a pas été mesuré, cet article le dit.

La même astuce, appliquée à deux endroits différents

L'abliteration ordinaire est une modification de poids. On estime une direction de refus, puis on la projette hors des matrices qui écrivent dans le flux résiduel : W ← W - r(rᵀW). Quelques multiplications matricielles, pas d'optimiseur, pas de perte. C'est ainsi qu'a été créé Qwen3.8-27B-Uncensored-MLX — la fiche du modèle le décrit comme « abliteration (suppression de la direction de refus), puis quantification affine MLX », avec la direction orthogonalisée hors du flux résiduel et le résultat enregistré comme un nouvel ensemble de poids. Ce qui est livré est un checkpoint dont la direction a déjà disparu.

OrcaRouter Ternary Bonsai 2 27B Uncensored laisse les poids intacts et intervient là où chaque contribution résiduelle est produite, en float32, avec la direction de refus stockée r:

y ← y - alpha · dot(y, r) · r

À alpha 1 — la valeur par défaut — la composante parallèle à r est retirée de cette écriture. À alpha 0, la projection est désactivée et le modèle se comporte comme le pack publié. Les valeurs intermédiaires donnent une force partielle, les valeurs supérieures à 1 sur-projettent, ce qui, selon le projet, peut dégrader la qualité. La sélection des couches est également exposée, ce qui permet d'ablater un sous-ensemble plutôt que toute la pile. La direction elle-même est un vecteur ordinaire de dimension 5120 — environ 20 Ko en float32 — sans rotation de Hadamard supplémentaire appliquée, car la projection opère sur les sorties de projection, qui sont déjà dans la base cachée normale.

Le détail de la couverture est le point que les gens ratent lorsqu'ils essaient de le faire eux-mêmes. En enveloppant self_attn.o_proj seul, on capture 16 sites. Cette implémentation enveloppe 129 écrivains résiduels : 64 mlp.down_proj, 48 linear_attn.out_proj, 16 self_attn.o_proj, et model.embed_tokens. Un selfcheck.py fourni vérifie que la projection ramène la composante restante à environ 1e-6 de la norme résiduelle, et avertit si 129 sites ne sont pas détectés.

The OrcaBonsai-27B-Uncensored repository on GitHub, showing the About text 'Runtime behavioral ablation for compressed LLMs. First target: Ternary Bonsai 2 27B — no weight modification or re-quantization. by OrcaRouter team', the repo file tree including bonsai_abliterate, directions, swift and run.py, and the README opening 'This repository applies refusal-direction ablation to prism-ml/Ternary-Bonsai-2-27B-mlx-2bit entirely at runtime. The original Bonsai pack remains bit-identical.'

Pourquoi les poids ternaires en font un choix forcé plutôt qu’une préférence

Voici la partie qui est réellement propre à ce modèle, et c'est la raison pour laquelle les deux approches ne sont pas interchangeables ici, même si elles calculent presque la même chose.

Un pack ternaire stocke des valeurs dans {-1, 0, +1} multipliées par une échelle FP16 par groupe, avec une taille de groupe de 128, dans une base tournée. Orthogonalisez une matrice ternaire par rapport à une direction de refus et vous obtenez une matrice dense, en pleine précision. Il n'existe aucune matrice ternaire qui soit égale à W - r(rᵀW) en général. Donc, réenregistrer les poids modifiés signifie les requantifier — et requantifier des poids modifiés ne reproduit pas l'entraînement tenant compte de la quantification qui a produit le pack d'origine. Le comportement d'arrondi que Prism ML a entraîné le modèle à tolérer est une propriété de la procédure d'entraînement, pas du quantifieur, et vous ne pouvez pas la relancer après coup.

Sur un checkpoint BF16 dense, ce problème ne se pose pas. Arrondissez les poids modifiés en 4 bits et vous obtenez un modèle 4 bits légèrement moins bon, ce qui est le compromis ordinaire que tout le monde accepte déjà. Sur un pack ternaire, vous sacrifieriez la seule propriété pour laquelle ce pack existe.

Donc, le cadrage honnête n’est pas « l’exécution est meilleure ». C’est que la projection à l’exécution est la seule des deux qui préserve ce qui est propre à ce modèle particulier. La direction de refus fait 20 Ko. Le pack fait 8,005 Gio.

Ce chiffre de 8,005 Gio correspond spécifiquement au pack MLX — prism-ml/Ternary-Bonsai-2-27B-mlx-2bit, dont le model.safetensors mesure 8 595 477 990 octets sur l'API Hugging Face (8,595 Go, 8,005 Gio), un conteneur affine MLX avec des codes 2 bits plus une échelle et un biais FP16 par groupe. C'est un artefact différent des builds GGUF que livre Prism ML, et les chiffres ne sont pas transposables de l'un à l'autre. Le chiffre phare de Prism ML, 5,93 Go / 1,76 bit par poids, décrit leur PTQ1_0 GGUF, qui mesure 5,947 Go ; leur format True Ternary est annoncé à 1,72 bit par poids et 5,80 Go. Aucun de ces chiffres ne décrit le pack MLX que ce runtime ablate.

Là où l’approche par points de contrôle l’emporte encore, et elle l’emporte bel et bien dans certains cas.

Two-column scoreboard for OrcaRouter Ternary Bonsai 2 27B Uncensored and Qwen3.8-27B-Uncensored-MLX across six shared dimensions: mechanism runtime projection vs checkpoint edit, original weights bit-identical vs rewritten and re-quantised, strength control alpha at runtime vs fixed at bake time, layer selection runtime flag vs recipe-time, runtime support the pack's own MLX runtime vs any MLX-compatible loader, and shipped alongside a 20 KB direction vector vs a second full checkpoint. Footer: 'Method per OrcaRouter project docs; both models OrcaRouter-released.'

Il serait facile de présenter ceci comme un tour d'honneur pour la méthode plus récente. Ce serait une erreur, car l'abliteration conventionnelle est en tête sur les axes qui décident de la plupart des déploiements.

Un seul artefact, n'importe quel environnement d'exécution compatible. Un checkpoint abliterated est un ensemble de poids standard. Chargez-le dans n'importe quel chargeur compatible MLX que vous utilisez déjà, et il fonctionne. L'approche par environnement d'exécution nécessite l'environnement d'exécution intégré propre au pack — et le projet avertit explicitement qu'un chargeur MLX ordinaire peut sembler charger le pack tout en calculant silencieusement des résultats erronés. C'est une marge de manœuvre bien plus étroite.

Matériel. Qwen3.8-27B-Uncensored-MLX est proposé en versions 2, 4, 6 et 8 bits, avec une copie 4 bits mise en miroir à la racine du dépôt, de sorte que les outils qui traitent un dépôt comme un modèle unique le chargent sans configuration. Ternary Bonsai 2 27B Uncensored est Apple Silicon / MLX. Le matmul quantifié du pack a des noyaux Metal et CPU, mais aucune implémentation CUDA via mlx-cuda, donc sur une machine NVIDIA, ce pack MLX ne bénéficie actuellement d'aucune accélération GPU — l'inférence CPU fonctionne, et une passe avant de 27B peut prendre plusieurs minutes. Cela rend le chemin CPU Linux utile pour les tests d'implémentation et la reproductibilité, pas pour la mise en production.

Outillage et familiarité. L'abliteration a des années d'outillage derrière elle — des recettes ajustées, une recherche sur plage de couches, des variantes publiées auxquelles vous pouvez vous comparer. Cette méthode d'exécution n'a qu'une seule implémentation, sur un seul modèle, publiée hier.

Distribution. Un seul checkpoint correspond à un seul téléchargement. L'ablation à l'exécution livre un pack, un fichier de direction et un runtime, et le lecteur doit garder ces trois éléments synchronisés.

Preuves. L'abliteration de checkpoint dispose de mesures tierces sur cette famille de modèles de base. L'ablation à l'exécution sur un pack ternaire ne dispose que de nos propres chiffres, et son hypothèse centrale n'est pas vérifiée — plus de détails ci-dessous.

The Hugging Face model card for orcarouter/Qwen3.8-27B-Uncensored-MLX, showing the description 'An abliterated (refusal-removed) MLX build of Qwen's Qwen3.8-27B — 2 / 4 / 6 / 8-bit for Apple Silicon', the tags abliterated, uncensored, red-teaming, apple-silicon and quantized, the apache-2.0 licence, a monthly download count of 179,590, and the base model Qwen/Qwen3.8-27B.

Ce que l'ablation au runtime apporte en échange

Le compromis est réel dans l'autre sens aussi, et le premier point est celui qui se généralise au-delà de ce modèle.

Provenance bit à bit identique.Aucun poids modifié, aucune re-quantification, aucune erreur de quantification supplémentaire. Ce n'est pas un slogan ; c'est la propriété qui rend les chiffres de capacité ci-dessous interprétables plutôt qu'un heureux hasard.

Un alpha ajustable. La force d'ablation est un paramètre d'exécution, non une propriété du checkpoint. Vous pouvez la balayer pour votre charge de travail, la désactiver entièrement avec alpha 0, ou sur-projeter et mesurer ce qui casse — sans télécharger un second modèle.

Contrôle sélectif par couche. Ablater un sous-ensemble de couches est un argument, pas une nouvelle cuisson. Cela importe pour quiconque étudie quelles couches portent le comportement, car l'alternative consiste à produire un checkpoint par configuration.

Aucun second jeu de poids. Le modèle modifié est le modèle d'origine. Pour un pack dont tout l'argument est l'empreinte, livrer une copie abliterée parallèle d'environ 16 Go — la taille du build 4 bits du dépôt de comparaison — irait à l'encontre de l'objectif.

Réversibilité. Une modification de point de contrôle est permanente pour cet artefact. Un indicateur d’exécution ne l’est pas.

Les chiffres dont nous disposons, et exactement comment ils ont été mesurés

Tout ce qui figure dans cette section constitue l’évaluation d’OrcaRouter Ternary Bonsai 2 27B Uncensored par OrcaRouter lui-même, et la méthode compte autant que les chiffres.

La mesure est un classifieur de phrase d’ouverture fondé sur des règles, et non un juge LLM. Le raisonnement est désactivé, le décodage est glouton, le budget est de 64 tokens, et les versions de base et ablatée correspondent aux mêmes poids dans le même processus à alpha 0 versus alpha 1. Ce dernier point est l’élément le plus solide du dispositif : il n’y a pas de comparaison entre points de contrôle ni de différence de quantification pour fausser le résultat. C’est aussi pourquoi les chiffres doivent être lus comme une mesure de ce que le modèle dit dans sa phrase d’ouverture, et rien de plus.

Taux de refus sur les ensembles de prompts nuisibles publiés, de la version de base à la version ablatée :

• AdvBench (n=100) — 99,0 % à 6,0 %

• JailbreakBench (n=100) — 96,0 % à 4,0 %

• StrongREJECT (n=150) — 99,3 % à 3,3 %

• HarmBench (n=150) — 98,7 % à 7,3 %

• MaliciousInstruct (n=100) — 97,0 % à 0,0 %

• ForbiddenQuestions (n=150) — de 75,3 % à 5,3 %

• SimpleSafetyTests (n=50) — de 96,0 % à 18,0 %, et ce chiffre est sous-estimé

SimpleSafetyTests est sous-estimé pour une raison précise. Cet ensemble est principalement composé de prompts d'automutilation, et le modèle ablaté y répond par une redirection de crise qui commence par « I am deeply sorry to hear… ». La liste exacte de phrases du classificateur ne contient pas cette ouverture, si bien qu'il compte une redirection comme une conformité. Le véritable taux résiduel de refus est supérieur à 18,0 %. Le classificateur a été volontairement laissé tel quel, afin que les chiffres restent comparables avec les autres fiches de modèle d'OrcaRouter — mais un lecteur ne devrait pas prendre 18,0 % pour argent comptant.

Aucune réponse de ces exécutions n'a épuisé son budget de jetons, ce qui rend un budget de 64 jetons défendable ici. Une colonne distincte dans les résultats complets compte les réponses qui ont répondu mais ont enveloppé la réponse dans un avertissement ; cela allait de 42–60 % selon l'ensemble.

Deux résultats qui vont à l’encontre du récit simpliste

Deux des résultats méritent un traitement à part, car tous deux compliquent la lecture évidente.

Le refus excessif diminue aussi. Sur les prompts bénins de JailbreakBench, le pack publié en refuse 25,0 %. Après ablation, il en refuse 0,0 %. Sur XSTest-safe, il passe de 5,2 % à 0,4 %.

C'est la moitié sous-rapportée de la technique. Le pack Bonsai publié refuse un quart d'un ensemble de prompts bénins ; quoi que fasse la direction de refus dans le modèle QAT, elle se déclenche sur des prompts qui n'auraient jamais dû la déclencher. Retirer la direction supprime aussi ces refus, et c'est un véritable gain de capacité plutôt qu'un coût de sécurité. Le même effet apparaît dans des travaux indépendants sur d'autres modèles — le propre banc d'essai d'Atomic Chat a mesuré le sur-refus des prompts bénins de Gemma 2 9B chuter de 44 % à 0,5 % après abliteration, avec un MMLU pratiquement inchangé, passant de 68,4 à 68,0. Leur mesure, leur modèle, rapportés par eux-mêmes sur leur blog ; c'est la tendance qui compte, pas les chiffres exacts.

Le cadrage qui suit est inconfortable mais honnête : le sur-refus et le refus sont le même bouton. Vous n’avez pas le droit de baisser seulement les refus qui vous déplaisent.

La rétention des capacités est stable, et ce n'est pas un hasard. Les vérifications de capacités, de la base à la version ablatée :

• MMLU (n=300) — 76,7 % à 77,7 %, +1,0

• GSM8K (n=150) — 87,3 % à 86,0 %, -1,3

• CMMLU (n=500) — de 76,2 % à 75,6 %, -0,6

Chaque variation se situe dans le bruit à ces tailles d'échantillon — une question GSM8K vaut 0,7 point. MMLU-Pro a été exclu plutôt que rapporté : son prompt demande un raisonnement avant la réponse, et 63–64 % des réponses des deux côtés n'avaient pas atteint de réponse dans le budget de tokens, de sorte que tout chiffre de précision serait un plancher fixé par le budget plutôt qu'une mesure.

Une capacité constante découle directement de poids identiques bit à bit, et il vaut la peine de préciser pourquoi. Le modèle qui répond est le même modèle. Le runtime ajoute un produit scalaire et une opération AXPY par écriture résiduelle et ne change rien aux poids, à la quantification ou aux kernels qui les lisent. Une approche par checkpoint doit mériter cette constance — et souvent n’y parvient pas. Un banc d’essai tiers portant sur une abliteration différente de la même base Qwen3.8-27B, publié le 17 août 2026 par un ingénieur de SMF Works, a mesuré un score composite passant de 79,0 % à 72,0 %, les mathématiques chutant de 50,0 % à 33,3 %. C’est une recette différente, une chaîne d’outils différente et une mesure différente, donc ce n’est pas un score pour cette comparaison. C’est un rappel que l’abliteration par checkpoint sur cette base a coûté des dizaines de points dans au moins un test soigné et instrumenté, et que « l’abliteration est presque gratuite » est une affirmation qui dépend entièrement de la recette.

L'hypothèse que personne n'a encore vérifiée

C'est la partie de l'histoire qui doit être dite sans détour, et sa place est dans une comparaison des méthodes de levée de censure, plutôt que dans une note de bas de page.

La direction de refus utilisée ici a été estimée à partir du modèle de base BF16 à partir duquel le pack Bonsai a été entraîné. L’architecture et la base cachée sont identiques, donc le vecteur est correct d’un point de vue dimensionnel et la projection est mathématiquement exacte — l’environnement d’exécution peut prouver, et vérifie effectivement, qu’elle retire la direction fournie du flux résiduel.

Ce que cela ne prouve pas, c’est que la direction signifie encore la même chose dans le modèle entraîné avec prise en compte de la quantification. La mesure dans laquelle la direction survit à un entraînement avec prise en compte de la quantification n’a pas été pleinement évaluée. Supprimer exactement un vecteur n’est pas la même chose que supprimer le comportement qu’il était censé représenter, et c’est la seconde affirmation qui compte. Chaque chiffre de la section ci-dessus est un résultat empirique compatible avec un bon transfert ; aucun d’eux ne démontre que le transfert est complet, et le projet le dit lui-même, en recommandant de balayer alpha et la sélection des couches avant de tirer des conclusions.

Toute comparaison honnête des méthodes de décensure doit reconnaître ceci. L’abliteration conventionnelle a le problème en miroir — elle modifie les poids puis mesure le résultat, si bien que sa direction n’a jamais à se transférer entre les versions du modèle, mais sa modification est permanente et irrécupérable si la recette était mauvaise.

Qu’est-ce qui n’est toujours pas mesuré ?

Au-delà de la question du transfert, trois lacunes méritent d'être nommées plutôt que contournées.

Aucune reproduction indépendante. Chaque benchmark Bonsai 2 27B en circulation — la moyenne de 83,9, la rétention de 98,2 %, les répartitions par catégorie — est rapporté par le fournisseur Prism ML, exécuté avec EvalScope sur un backend vLLM sur des H100s avec un effort de raisonnement « xhigh ». Personne en dehors de Prism ML ne les a reproduits. Les tableaux de sûreté et de capacités ci-dessus sont les nôtres et ne sont pas non plus indépendants.

Comportement en mode réflexion activée. Nos tableaux sont en mode réflexion désactivée. Des travaux indépendants sur d’autres modèles abliterated ont montré que, même avec un taux de réussite d’attaque de 100 %, le modèle raisonne encore sur la sécurité dans une fraction substantielle de réponses lorsqu’on lui permet de réfléchir. Savoir si cela vaut ici, et quel effet cela a sur les chiffres de la phrase d’ouverture, n’a pas été mesuré.

Une direction unique. La méthode suppose que le refus est médié par une seule direction, ce qui correspond au résultat d'Arditi et al. et constitue le fondement de toute la technique. Des travaux ultérieurs sur d'autres modèles ont mis en évidence des directions géométriquement distinctes pour différentes catégories de refus. Un seul vecteur, balayé sur un seul alpha, ne permet pas de trancher cette question.

Ce que cela signifie si vous devez choisir entre eux

Choisissez le checkpoint si vous avez besoin que le modèle s’exécute n’importe où, sur du matériel que vous ne contrôlez pas, via un chargeur que vous n’avez pas écrit. Choisissez le runtime si vous êtes sur Apple Silicon, si vous tenez à ce que l’artefact que vous étudiez soit celui que Prism ML a entraîné, et si vous voulez que la force d’ablation soit un paramètre que vous pouvez régler plutôt qu’une décision qui vous oblige à retélécharger. Ces deux choix se défendent, et ils sont dictés par les contraintes de déploiement, non par la méthode la plus récente.

Si vous cherchez à décider empiriquement, la méthode d’exécution présente un avantage pratique qui mérite d’être mentionné : alpha 0 et alpha 1 sont le même processus et les mêmes poids, de sorte qu’une comparaison entre eux isole l’ablation et rien d’autre. C’est une expérience plus propre que de comparer deux checkpoints, et c’est la raison pour laquelle le tableau ci-dessus peut être lu comme une mesure de la projection plutôt que comme une mesure de deux quantifications de celle-ci.

Utilisation responsable

Supprimer une direction de refus apprise peut amener le modèle à répondre à des requêtes que l’original refuserait. C’est le mécanisme qui fonctionne, et non un effet secondaire, et cela ne doit pas être classé comme une fonctionnalité. Il s’agit d’un mécanisme de recherche et de contrôle de l’inférence, et ce n’est pas une preuve que la moindre sortie résultante est sûre, correcte ou appropriée.

La propre fiche du pack publié souligne le même point, mais d'un autre angle : la version MLX abliterated « a vu son alignement de sécurité largement supprimé », répondra aux demandes que l'original refuserait, et ne comporte aucun garde-fou intégré significatif. Ses auteurs la destinent à la recherche légitime — interprétabilité, recherche sur la sécurité, red-teaming, évaluation de la robustesse — et affirment clairement que les déploiements doivent d'abord ajouter leur propre couche de modération et leurs contrôles d'accès.

Rien dans cet article ne constitue un argument selon lequel la suppression des refus serait sans coût, ni qu’un taux de refus plus faible serait un signal de qualité. Un modèle qui répond à davantage de questions n’est pas pour autant un meilleur modèle, et un classifieur à base de règles qui compte les phrases d’ouverture mesure la formulation, non la compétence. Ces deux artefacts sont des outils de recherche assortis d’un devoir d’opérateur, et ce devoir ne se transfère pas à quiconque a écrit le code d’ablation.

Le code d'ablation à l'exécution, la direction de refus et les tableaux d'évaluation complets sont publiés par OrcaRouter, aux côtés de la plateforme de routage que l'équipe développe.