← back to vectors · registered 2026-10-31

Goghor/Strata-Qwen3.8-Flash-Next-Abliteration

Goghor Qwen 1 file other
API coming soon

Everything on this page as JSON, in the same shape as the /models API. The vectors endpoint arrives in a later release.

curl -H "Authorization: Bearer $ABL_KEY" \
  https://abliteration.org/api/v1/vectors/Goghor%2FStrata-Qwen3.8-Flash-Next-Abliteration

Vector types 1 files · 1 set

This repo contains 1 vector file organized into 1 set.

other 1 file
See all sets in the Files tab →
Repo downloads
0
on Hugging Face
Likes
0
Repo age
0 days
first commit 2026-10-31
Latest commit
2026-10-31
2 commits
Activity over time · commits, cumulative
Historical download data: coming soon
Now2→from1↑100%
11221 on Oct 312 on Oct 31Oct
Oct 31 → Oct 31 · 2 snapshots · spans 0 days

Compatible base models 1 base model

The models these vectors were made for. A vector loads on any model of the same shape; fine-tunes of these bases usually work too.

Genealogy

Above: repos this one's README cites. Below: vector repos that cite this one.

↓
Goghor/Strata-Qwen3.8-Flash-Next-Abliteration
↓
Derived vectors

No derived vectors in catalog yet.

Metadata

Licence
other
A licence outside the groups above. Read it on the source page before use.
Method
Not classified
Size
472 KB
1 file, 472 KB each on average
Base model
Qwen/Qwen3.8-Flash-Next

Related

Total size
472 KB
Files
1
Sets
1
Registered
2026-10-31
Last updated on HF
2026-10-31

Files by set base model × axis

Strata-Qwen3.8-Flash-Next-Abliteration

other works in app 1 file · 472 KB
Vectororcarouter.gguf 472 KB 840542f8 download ↓
llama-cli -m <model>.gguf \
  --control-vector orcarouter.gguf

Auxiliary files

README.md 11.7 KB read

README current version from Hugging Face

Author's description, verbatim. Source: huggingface.co/Goghor/Strata-Qwen3.8-Flash-Next-Abliteration ↗

Qwen3.8-Flash-Next Abliteration (refusal direction)

One refusal direction for Qwen3.8-Flash-Next, published as a Strata control vector. Load it and the model
stops refusing. We wrote it for Strata. The vllm/patches/ folder
carries the runtime patch of the same direction for vLLM.

CAUTION: This removes a safety behaviour. With the vector on, the model follows requests the stock model
declines. You are responsible for what the model writes with it on.

The direction works with any model of the Qwen3.8-Flash-Next family: the base model, instruction-tuned
models, quantized models, and finetunes of the same architecture. The vector has 2,560 values, so the model
must have a residual stream of 2,560.

We tested the direction with these releases:

The list covers quantizations of the base model and a finetune (Swift 1.5).

Use it in Strata

Get the file

Put orcarouter.gguf in your own Strata folder, i.e. ~/Strata-data/abliteration/:

hf download Goghor/Strata-Qwen3.8-Flash-Next-Abliteration orcarouter.gguf --local-dir ~/Strata-data/abliteration

Set the engine flags

Put these three flags in the args array of strata-<model>.json:

"--control-vector-scaled", "~/Strata-data/abliteration/orcarouter.gguf:1.0",
"--cvec-mode", "project",
"--cvec-dir", "per-layer"

Switch it off for one request

A loaded vector is on for every request. Send "experimental_speed_projection": false in the sampling
object. The server passes cvec=0 to the engine, and the Chat settings write the same switch. The switch
drops the conversation cache once. Switched off, the answer is the stock model's answer, token for token. An
engine with no loaded vector ignores the key.

Flags you can change

  1. --cvec-mode project is required. Additive mode adds the direction to the stream. That is not
    abliteration.
  2. --cvec-dir per-layer is the form of this file. The 47 layers carry the same vector, so single:1
    gives the same result.
  3. --control-vector-layer-range A B selects the layers. Without it the engine steers layers 1 to 47.
    Strata's own refusal package for this model uses 4 to 44.
  4. The scale in FILE:SCALE is 1.0. A scale less than 1.0 is a partial projection.

Use it with vLLM

vllm/patches/ holds two git am patches for vLLM v0.30.0, commit
ced6857afa0ea7b2e3f0846a62e1394e90f15607. They add a runtime projection at five points. The points are the
token embeddings, the MTP embeddings, attn_out, mlp_out, and the PLE value after the kv_proj split.

Patch Size What it does
0001-qwen4_exp-add… 9,120 B Adds vllm/models/qwen4_exp/nvidia/abliteration.py and calls abliteration.project_ at the five points named above.
0002-qwen4_exp-abliteration-always… 2,764 B Registers _abliteration_r always, with zeros when the switch is off. ON and OFF then share one AOT compile cache.

The pair sits at the end of the 106-patch series of the source repository, so it needs that series. On
31 October 2026 we tested the pair alone on a stock v0.30.0 tree. git apply --check failed at
model.py:554 and at mtp.py:60. --ignore-whitespace failed the same way. On top of the other 104 patches
of that repository, both files passed git apply --check and applied with git am.

Build the tree in this order:

git init vllm && cd vllm
git fetch --depth 1 https://github.com/vllm-project/vllm.git refs/tags/v0.30.0:refs/heads/v0300
git checkout v0300
git am --keep-non-patch /path/to/qwen38-flash-next-2x3090/patches/*.patch

That series already includes these two files. Add the two files here only to a tree of the other 104 patches:

git am --keep-non-patch /path/to/vllm/patches/0001-*.patch /path/to/vllm/patches/0002-*.patch

Before you build, test the fit with git apply --check on the two files.

Set the direction with the env var, then build vLLM from the patched tree:

export QWEN38_ABLITERATION=/path/to/orcarouter.json

The variable takes a JSON file, a safetensors file, or a bare name. The JSON file needs a
refusal_direction list, and the safetensors file needs a refusal_direction tensor. A bare name resolves
to
/opt/qwen38/abliteration/<name>.json. The vector must have 2,560 values, and the load normalises it. An
empty value, 0, or an unset variable leaves the model stock. The switch is global. It has no per-request
form.

The source project measured the switch on 2x RTX 3090. The verify-step time with it off equals the time with
it on: 24.1-27.0 ms. Eight mild prompts went from 7 refusals to 0 refusals. See benchmarks/2026-10-02/ in
that repository.

Files

File Size What it is
orcarouter.gguf 483,520 B The direction as a control-vector GGUF: 47 tensors direction.1 .. direction.47, 2,560 F32 values each. Load this file in Strata.
orcarouter.json 44,246 B The same direction in JSON: one unit vector, its source, and the checks of the recovery. Input for the Strata tool.
config/strata-cvec-flags.json 781 B The engine flags with notes.
examples/check.txt 2,013 B Transcript of the reproduce run, with the measure commands and their output.
vllm/patches/0001-*.patch 9,120 B The vLLM runtime patch: QWEN38_ABLITERATION, five projection points.
vllm/patches/0002-*.patch 2,764 B Registers the direction buffer always, so ON and OFF share one compile cache.
LICENSE.md 3,089 B License and attribution.

Reproduce the GGUF

python ~/Strata/tools/json_to_cvec_gguf.py orcarouter.json -o ~/Strata-data/abliteration/orcarouter.gguf

A regenerated file is not byte-identical to the shipped one. The normalisation rounds in float32, and the
rounding depends on the numpy build. examples/check.txt measures cos 1.0 and a max element diff of 3e-08
against the shipped file. All 47 tensors of the shipped file are byte-identical to each other.

The method

This file holds the refusal direction of Qwen3.8-Flash-Next: 2,560 values, unit length. Strata applies it as
a projection after the FFN write of each steered layer, on every hyper-connection stream:

h <- h - (h . v) v      with v = the unit direction

The sign of the vector does not matter. The projection removes the component on the line, in both
directions.

Where this direction comes from

The recovery is a weight diff, not an activation probe. The release
orcarouter/Qwen3.8-Flash-Next-Uncensored,
revision e096800036ec20da7e2442dcd4044a004d4e99fa, edits 149 tensors.
scripts/extract_refusal_direction.py in the
qwen38-flash-next-2x3090 repository reads about
83 MB of it by HTTP range requests. It takes the top left singular vector of W - W' for four edited
matrices, with one untouched tensor as control. The release is gated, so your Hugging Face account must
accept the terms of OrcaRouter first.

The JSON records the checks of that recovery:

Check Result
Untouched control tensor layers.3.self_attn.k_proj byte-identical to the base checkpoint
Each edit W - W' is rank-1 second singular value 0.88-0.98% of the first
One direction for all four tensors abs cos 0.999993-0.999999
Re-apply W - r(r^T W) to the base weights 87.6-92.9% of elements bit-identical to the release

What it costs

The engine adds one dot product and one rank-1 update per token, per steered layer. Strata measures
0.2-0.4% per token for its own control vector of this model
(docs/DETAILS.md, "Experimental speed projection"). We have no speed measure and no quality measure for
this vector in Strata.

The change is narrower than a weight edit. Strata projects the residual stream after the FFN write. It does
not project the token embeddings or the PLE value. The published release edits those weights too.

Our GGUF and Strata's speed projection vector
(data/experimental-speed-projection/Qwen3.8-Flash-Next-experimental-speed-projection.gguf) are different
vectors: cos 0.141. That package reports a refusal rate of 1 of 50 against 50 of 50 on its own test set. On
2,557 teacher-forced tokens its mean KL from the stock model is 0.063 nats.

License

  • The direction, the JSON and the GGUF: Qwen Community License 1.0. The direction derives from the model
    weights and from the activations of the model. See LICENSE.md.
  • The converter tools/json_to_cvec_gguf.py and the control-vector hooks are MIT work of the
    Strata project, Copyright (c) 2026 Niko1221 and the Strata
    contributors.

Source

@article{arditi2024refusal,
  title   = {Refusal in Language Models Is Mediated by a Single Direction},
  author  = {Arditi, Alessandro and Obeso, Juan Stam and Syed, Ailidh and Paleka, Daniel and
             Panickssery, Afonso and Gurnee, Wes and Nanda, Neel},
  journal = {arXiv preprint arXiv:2406.11717},
  year    = {2024}
}

Discussions

Discussions for this repo happen on Hugging Face. Open the discussions ↗

Catalog is the map. Apps are the tools.

Run models on your own machine, not in the cloud.

Every model page has an "Open in Abliteration" button that hands the model directly to the first-party desktop client, at the quantization your rig can actually run. No API keys, no subscription, no prompt leakage.

Open in Abliteration