
Ternary Bonsai 2 27B Uncensored vs Qwen3.8-27B-Uncensored-MLX: Duas maneiras de remover uma direção de recusa
- OrcaNOVOOrca: OrcaCyber Zero 1.02026-09-17$3.00 / $5.00 por 1M de tokens
- orcaNOVOOrca: OrcaVerify Text 1.02026-09-16$2.00 / $0.00 por 1M de tokens
- deepseekNOVODeepSeek: DeepSeek V4.1 Flash2026-09-1040Inteligência
- openaiNOVOOpenAI: GPT-6 Astra2026-09-0453Inteligência77Código
- googleGoogle: Gemini 3.8 Flash2026-09-0241Inteligência76Código
- qwenQwen: Qwen3.8 Max (0902)2026-09-0245Inteligência76Código
- anthropicAnthropic: Claude Fable 5.12026-09-0153Inteligência82Código
- AlibabaQwen: Qwen3.8 Flash2026-08-26$0.15 / $0.47 por 1M de tokens
- z-aiZ.ai: GLM 5.3 Flash2026-08-2642Inteligência72Código
- DeepSeekDeepSeek: DeepSeek V4 Flash Vision (Exp)2026-08-21$0.22 / $0.66 por 1M de tokens
- z-aiZ.ai: GLM 5.32026-08-1845Inteligência75Código
- obsidianQwen3.8 27B2026-08-1534Inteligência68Código
- deepseekDeepSeek: DeepSeek V4 Pro 08132026-08-1236Inteligência69Código
- grokSpaceXAI: Grok 4.62026-08-1244Inteligência77Código
- metaMeta: Muse Spark 1.22026-08-0540Inteligência72Código
- qwenQwen: Qwen3.8 Max2026-08-0345Inteligência76Código
- deepseekDeepSeek: DeepSeek V4 Flash 07312026-07-3135Inteligência69Código
- minimaxMiniMax: MiniMax-H32026-07-31minimax/minimax-h3
- qwenQwen: Qwen3.7 Flash2026-07-27$0.03 / $0.13 por 1M de tokens
- orcaOrcaDub: OrcaDub 1.02026-07-27orca/dub
OrcaRouter Ternary Bonsai 2 27B Uncensored e Qwen3.8-27B-Uncensored-MLX respondem à mesma pergunta — como se remove uma direção de recusa de um modelo de linguagem — e respondem a ela em dois lugares diferentes. A linhagem Qwen3.8-27B-Uncensored-MLX é abliteração convencional: as matrizes de pesos são ortogonalizadas em relação a uma direção de recusa aprendida, e os pesos editados são salvos como um novo checkpoint. OrcaRouter Ternary Bonsai 2 27B Uncensored faz, em vez disso, a projeção equivalente em tempo de inferência, subtraindo a componente de cada escrita residual que está ao longo da direção de recusa, de modo que o pacote Bonsai subjacente nunca é modificado e permanece idêntico bit a bit. Ambos são lançamentos nossos, e a divisão entre eles não é uma preferência por runtimes. Ela decorre de uma aritmética específica dos pesos ternários.
O objeto desta comparação tem um dia de idade. A Prism ML anunciou o Bonsai 2 27B em 2026-09-17; os repositórios do Hugging Face foram criados na noite anterior, às 23:40–23:41 UTC de 2026-09-16, sob a licença Apache-2.0. A build MLX abliterada com a qual ele está sendo comparado está no ar desde meados de agosto. Nada abaixo é um histórico de desempenho para o mais novo dos dois — onde algo não foi medido, este artigo diz isso.
O mesmo truque, aplicado em dois lugares diferentes
A abliteração comum é uma edição de pesos. Estima-se uma direção de recusa e depois projeta-se para fora das matrizes que escrevem no fluxo residual: W ← W - r(rᵀW). Algumas multiplicações matriciais, sem otimizador, sem função de perda. Foi assim que o Qwen3.8-27B-Uncensored-MLX foi feito — o cartão do modelo descreve-o como "abliteração (remoção da direção de recusa), seguida de quantização afim MLX", com a direção ortogonalizada para fora do fluxo residual e o resultado salvo como um novo conjunto de pesos. O que é disponibilizado é um checkpoint no qual a direção já foi removida.
O OrcaRouter Ternary Bonsai 2 27B Uncensored não mexe nos pesos e intervém onde cada contribuição residual é produzida, em float32, com a direção de recusa armazenada r:
• y ← y - alfa · dot(y, r) · r
Em alfa 1 — o padrão — o componente paralelo a r é removido dessa escrita. Em alfa 0, a projeção fica desligada e o modelo se comporta como o pacote publicado. Valores intermediários dão força parcial; valores acima de 1 projetam em excesso, o que o projeto diz que pode degradar a qualidade. A seleção de camadas também está exposta, para que você possa fazer ablação de um subconjunto em vez de toda a pilha. A própria direção é um vetor comum de 5120 dimensões — cerca de 20 KB em float32 — sem nenhuma rotação de Hadamard extra aplicada, porque a projeção opera sobre saídas da projeção, que já estão na base oculta normal.
O detalhe de cobertura é a parte que as pessoas erram quando tentam fazer isso sozinhas. Envolver self_attn.o_proj sozinho captura 16 pontos. Esta implementação envolve 129 escritores residuais: 64 mlp.down_proj, 48 linear_attn.out_proj, 16 self_attn.o_proj, e model.embed_tokens. Um selfcheck.py incluído verifica que a projeção reduz o componente restante a aproximadamente 1e-6 da norma residual e avisa se 129 pontos não forem detectados.

Por que pesos ternários fazem disto uma escolha forçada em vez de uma preferência
Eis a parte que é, na verdade, específica deste modelo, e é a razão pela qual as duas abordagens não são intercambiáveis aqui, ainda que calculem praticamente a mesma coisa.
Um pacote ternário armazena valores em {-1, 0, +1} multiplicados por uma escala FP16 por grupo, com tamanho de grupo 128, numa base rotacionada. Ortogonalize uma matriz ternária em relação a uma direção de recusa e obtém uma matriz densa, de precisão total. Em geral, não existe nenhuma matriz ternária que seja igual a W - r(rᵀW). Portanto, guardar de volta os pesos editados significa requantizá-los — e requantizar pesos editados não reproduz o treino ciente da quantização que produziu o pacote original. O comportamento de arredondamento que a Prism ML treinou o modelo para tolerar é uma propriedade do procedimento de treino, não do quantizador, e não é possível executá-lo novamente a posteriori.
Num checkpoint BF16 denso, esse problema não surge. Arredonde os pesos editados para 4 bits e você obtém um modelo de 4 bits ligeiramente pior, que é a troca comum que todo mundo já aceita. Num pacote ternário, você estaria jogando fora a única propriedade que o pacote existe para ter.
Então, o enquadramento honesto não é "runtime é melhor". É que a projeção em runtime é a única das duas que preserva o que há de especial neste modelo em particular. A direção de recusa é 20 KB. O pacote é 8,005 GiB.
Esse valor de 8,005 GiB é especificamente o pacote MLX — prism-ml/Ternary-Bonsai-2-27B-mlx-2bit, cujo model.safetensors mede 8.595.477.990 bytes na API do Hugging Face (8,595 GB, 8,005 GiB), um contêiner afim MLX com códigos de 2 bits mais uma escala e um viés FP16 por grupo. É um artefato diferente das builds GGUF que a Prism ML distribui, e os números não se transferem entre eles. O número de destaque da própria Prism ML, de 5,93 GB / 1,76 bits por peso, descreve o PTQ1_0 GGUF deles, que mede 5,947 GB; o formato True Ternary deles é informado como 1,72 bits por peso e 5,80 GB. Nenhum desses números descreve o pacote MLX ao qual este runtime aplica ablação.
Onde a abordagem de checkpoint ainda ganha, e de fato ganha em alguns casos

Seria fácil escrever isto como uma volta da vitória para o método mais novo. Isso estaria errado, porque a abliteração convencional está à frente nos eixos que decidem a maioria das implantações.
• Um único artefato, qualquer runtime compatível. Um checkpoint abliterado é um conjunto normal de pesos. Carregue-o em qualquer carregador compatível com MLX que você já use, e ele funciona. A abordagem de runtime precisa do runtime próprio incluído no pacote — e o projeto avisa explicitamente que um carregador MLX comum pode parecer carregar o pacote enquanto, silenciosamente, calcula a coisa errada. Isso é uma margem de manobra muito mais estreita.
• Hardware. O Qwen3.8-27B-Uncensored-MLX é oferecido em builds de 2, 4, 6 e 8 bits, com uma cópia de 4 bits espelhada na raiz do repositório, de modo que ferramentas que tratam um repositório como um único modelo o carregam sem qualquer configuração. O Ternary Bonsai 2 27B Uncensored é Apple Silicon / MLX. A multiplicação de matrizes quantizada do pacote tem kernels Metal e de CPU, mas nenhuma implementação CUDA via mlx-cuda, portanto, em uma máquina NVIDIA, este pacote MLX atualmente não obtém aceleração de GPU de forma alguma — a inferência por CPU funciona, e um forward pass de 27B pode levar minutos. Isso torna o caminho de CPU no Linux útil para testes de implementação e reprodutibilidade, não para servir.
• Ferramental e familiaridade.A abliteração tem anos de ferramental por trás dela — receitas ajustadas, busca por intervalo de camadas, variantes publicadas com as quais você pode comparar. O método de runtime aqui tem uma implementação, em um modelo, lançado ontem.
• Distribuição. Um único checkpoint é um único download. A ablação de runtime entrega um pacote, um arquivo de direção e um runtime, e o leitor tem de manter três coisas em sincronia.
• Evidências. A abliteração de checkpoint tem medições de terceiros nesta família de modelos base. A ablação em tempo de execução num pacote ternário tem apenas os nossos próprios números, e a sua premissa central não está verificada — mais sobre isso abaixo.

O que a ablação em tempo de execução proporciona em troca
O trade-off também é real na outra direção, e o primeiro item é o que generaliza para além deste modelo.
• Proveniência idêntica em bits.Zero pesos modificados, zero requantização, zero erro de quantização adicional. Isso não é um slogan; é a propriedade que torna os números de capacidade abaixo interpretáveis, em vez de uma feliz coincidência.
• Um alpha ajustável. A força de ablação é um parâmetro de tempo de execução, não uma propriedade do checkpoint. Você pode fazer uma varredura dela para a sua carga de trabalho, desativá-la totalmente com alpha 0, ou projetar em excesso e medir o que quebra — sem baixar um segundo modelo.
• Controle seletivo por camadas. Fazer ablação de um subconjunto de camadas é um argumento, não um re-bake. Isso importa para quem estuda quais camadas carregam o comportamento, porque a alternativa é produzir um checkpoint por configuração.
• Sem um segundo conjunto de pesos. O modelo editado é o modelo original. Para um pacote cuja tese inteira é a pegada de armazenamento, distribuir uma cópia abliterada paralela com cerca de 16 GB — o tamanho da versão de 4 bits no repositório de comparação — enfraqueceria o argumento.
• Reversibilidade. Uma edição de checkpoint é permanente para aquele artefato. Uma flag de runtime não é.
Os números que temos, e exatamente como foram medidos
Tudo nesta seção é a avaliação do próprio OrcaRouter sobre o OrcaRouter Ternary Bonsai 2 27B Uncensored, e o método importa tanto quanto os números.
A medição é um classificador de frase de abertura baseado em regras, não um juiz LLM. O raciocínio está desativado, a decodificação é gulosa, o orçamento é de 64 tokens, e base e ablated são os mesmos pesos no mesmo processo em alfa 0 versus alfa 1. Esse último ponto é a parte mais forte da configuração: não há comparação entre checkpoints nem diferença de quantização para confundir o resultado. É também por isso que os números devem ser lidos como uma medida do que o modelo diz em sua frase de abertura, e nada mais do que isso.
Taxas de recusa em conjuntos publicados de prompts prejudiciais, da base ao abladado:
• AdvBench (n=100) — 99,0% a 6,0%
• JailbreakBench (n=100) — 96,0% para 4,0%
• StrongREJECT (n=150) — 99,3% para 3,3%
• HarmBench (n=150) — 98,7% para 7,3%
• MaliciousInstruct (n=100) — 97,0% para 0,0%
• ForbiddenQuestions (n=150) — 75,3% a 5,3%
• SimpleSafetyTests (n=50) — 96,0% a 18,0%, e este aqui está subestimado
SimpleSafetyTests está subestimado por um motivo específico. Esse conjunto é composto principalmente por prompts de autolesão, e o modelo ablacionado responde a eles com um redirecionamento de crise que começa com "I am deeply sorry to hear…". A lista de frases exatas do classificador não contém essa abertura, então ele pontua um redirecionamento como conformidade. A taxa residual real de recusa é superior a 18,0%. O classificador foi deixado como está deliberadamente, para que os números permaneçam comparáveis com as outras fichas de modelo do OrcaRouter — mas o leitor não deve tomar 18,0% pelo valor nominal.
Nenhuma resposta em nenhuma dessas execuções esgotou seu orçamento de tokens, e é isso que torna um orçamento de 64 tokens defensável aqui. Uma coluna separada nos resultados completos contabiliza as respostas que responderam, mas envolveram a resposta em uma ressalva; isso ficou entre 42–60%, dependendo do conjunto.
Dois resultados que contrariam a narrativa simples
Dois dos achados merecem tratamento próprio, porque ambos complicam a leitura óbvia.
A recusa excessiva também cai. Nos prompts benignos do JailbreakBench, o pacote publicado recusa 25,0% deles. Com ablação, recusa 0,0%. No XSTest-safe, passa de 5,2% para 0,4%.
Esta é a metade subnotificada da técnica. O pacote Bonsai publicado recusa um quarto de um conjunto de prompts benignos; seja lá o que a direção de recusa esteja fazendo no modelo QAT, ela está disparando para prompts que nunca deveriam tê-la acionado. Remover a direção também remove essas recusas, e isso é um ganho real de capacidade, não um custo de segurança. O mesmo efeito aparece em trabalhos independentes sobre outros modelos — o próprio harness da Atomic Chat mediu a recusa excessiva a prompts benignos do Gemma 2 9B caindo de 44% para 0,5% após abliteração, com o MMLU praticamente inalterado, de 68,4 para 68,0. Medição deles, modelo deles, autorrelatado no blog deles; o padrão é o que importa, não os números exatos.
O enquadramento a seguir é desconfortável, mas honesto: recusa excessiva e recusa são o mesmo botão. Você não pode reduzir apenas as recusas de que não gosta.
A retenção de capacidade está constante, e isso não é sorte. As verificações de capacidade, da base ao ablacionado:
• MMLU (n=300) — 76,7% a 77,7%, +1,0
• GSM8K (n=150) — 87,3% a 86,0%, -1,3
• CMMLU (n=500) — 76,2% para 75,6%, -0,6
Todo movimento está dentro do ruído nesses tamanhos de amostra — uma questão do GSM8K vale 0,7 ponto. O MMLU-Pro foi excluído em vez de relatado: seu prompt pede raciocínio antes da resposta, e 63–64% das respostas de ambos os lados não haviam chegado a uma resposta dentro do orçamento de tokens, então qualquer número de acurácia seria um piso definido pelo orçamento, e não uma medição.
A capacidade constante decorre diretamente de pesos idênticos bit a bit, e vale a pena ser preciso sobre o porquê. O modelo que responde é o mesmo modelo. O runtime adiciona um produto escalar e um AXPY por escrita residual e não muda nada nos pesos, na quantização ou nos kernels que os leem. Uma abordagem por checkpoint tem de conquistar essa uniformidade — e muitas vezes não consegue. Uma bateria de testes de terceiros sobre uma abliteração diferente da mesma base Qwen3.8-27B, publicada em 2026-08-17 por um engenheiro da SMF Works, mediu um índice composto de 79,0% caindo para 72,0%, com matemática caindo de 50,0% para 33,3%. Essa é uma receita diferente, uma cadeia de ferramentas diferente e uma medição diferente, portanto não é uma pontuação para esta comparação. É um lembrete de que a abliteração por checkpoint nesta base custou dois dígitos percentuais em pelo menos um teste cuidadoso e instrumentado, e que “a abliteração é quase gratuita” é uma afirmação que depende inteiramente da receita.
A suposição que ninguém ainda verificou
Esta é a parte da história que precisa ser dita sem rodeios, e ela pertence a uma comparação de métodos de remoção de censura, e não a uma nota de rodapé.
A direção de recusa usada aqui foi estimada a partir do modelo base BF16 do qual o pacote Bonsai foi treinado. A arquitetura e a base oculta são idênticas, portanto o vetor está dimensionalmente correto e a projeção é matematicamente exata — o runtime pode provar, e de fato verifica, que remove a direção fornecida do fluxo residual.
O que isso não prova é que a direção ainda significa a mesma coisa no modelo treinado com reconhecimento de quantização. Até que ponto a direção sobrevive ao treinamento com reconhecimento de quantização não foi totalmente medido. Remover um vetor exatamente não é o mesmo que remover o comportamento que ele foi estimado para representar, e a segunda afirmação é a que importa. Cada número na seção acima é um resultado empírico consistente com uma boa transferência; nenhum deles é uma demonstração de que a transferência é completa, e o próprio projeto diz isso, recomendando que alfa e a seleção de camadas sejam varridos antes de se tirar conclusões.
Qualquer comparação honesta de métodos de remoção de censura tem de admitir isto. A abliteração convencional tem o problema espelhado — ela edita os pesos e depois mede o resultado, então sua direção nunca precisa transferir entre versões do modelo, mas sua edição é permanente e irreversível se a receita estava errada.
O que ainda não foi medido
Além da questão da transferência, há três lacunas que vale a pena nomear em vez de contornar.
• Nenhuma reprodução independente.Todos os benchmarks do Bonsai 2 27B em circulação — a média de 83,9, a retenção de 98,2%, as divisões por categoria — são relatados pelo fornecedor Prism ML, executados com EvalScope em um backend vLLM em H100s com esforço de raciocínio "xhigh". Ninguém fora da Prism ML os reproduziu. As tabelas de segurança e capacidade acima são nossas e também não são independentes.
• Comportamento com o raciocínio ativado. Nossas tabelas estão com o raciocínio desativado. Trabalhos independentes com outros modelos abliterados descobriram que, mesmo com 100% de sucesso de ataque, o modelo ainda raciocina sobre segurança em uma fração substancial das respostas quando tem permissão para pensar. Se isso se aplica aqui, e o que isso faz com os números da frase de abertura, ainda não foi medido.
• Uma única direção. O método assume que a recusa é mediada por uma única direção, que é a descoberta de Arditi et al. e a base para toda a técnica. Trabalhos de acompanhamento em outros modelos encontraram direções geometricamente distintas para diferentes categorias de recusa. Um único vetor, varrido ao longo de um único alfa, não resolve isso.
O que isso significa se você estiver escolhendo entre eles
Escolha o checkpoint se você precisa que o modelo rode em qualquer lugar, em hardware que você não controla, através de um loader que você não escreveu. Escolha o runtime se você está em Apple Silicon, se importa que o artefato que você está estudando seja o artefato que a Prism ML treinou, e quer que a força de ablação seja um parâmetro que você pode ajustar em vez de uma decisão que exige baixar tudo de novo. Ambos são defensáveis, e são escolhidos por restrições de implantação, não por qual método é mais novo.
Se você está tentando decidir empiricamente, o método de runtime tem uma vantagem prática que vale a pena mencionar: alpha 0 e alpha 1 são o mesmo processo e os mesmos pesos, então uma comparação entre eles isola a ablação e nada mais. Esse é um experimento mais limpo do que fazer diff de dois checkpoints, e é a razão pela qual a tabela acima pode ser lida como uma medição da projeção, e não como uma medição de duas quantizações dela.
Uso responsável
Remover uma direção de recusa aprendida pode fazer com que o modelo responda a solicitações que o original recusaria. Isso é o mecanismo funcionando, não um efeito colateral, e não deve ser registrado como um recurso. Este é um mecanismo de pesquisa e controle de inferência, e não é evidência de que qualquer saída resultante seja segura, correta ou apropriada.
O próprio card do pack publicado apresenta o mesmo argumento pelo outro lado: a build abliterated do MLX "teve seu alinhamento de segurança substancialmente removido", atenderá a solicitações que o original recusaria e não traz salvaguardas integradas significativas. Seus autores a destinam a pesquisa legítima — interpretabilidade, pesquisa de segurança, red-teaming, avaliação de robustez — e dizem claramente que as implantações devem primeiro adicionar sua própria camada de moderação e controles de acesso.
Nada neste artigo constitui um argumento de que a remoção de recusas seja isenta de custos, ou de que uma taxa de recusa mais baixa seja um sinal de qualidade. Um modelo que responde a mais perguntas não é, por isso, um modelo melhor, e um classificador baseado em regras que conta frases de abertura é uma medição de formulação, não de competência. Ambos esses artefatos são ferramentas de pesquisa com um dever de operador atrelado, e o dever não se transfere para quem escreveu o código de ablação.
O código de ablação em tempo de execução, a direção de recusa e as tabelas completas de avaliação são publicados pela OrcaRouter, juntamente com a plataforma de roteamento que a equipe desenvolve.
