A linear task-vector merge that makes
Qwen3.6-27B-Della-Deckard-v1think 7x shorter on grade-school math without losing accuracy, at the cost of a
measured regression on harder multi-step problems.
That is it. No pruning, no sign election, no rotation. The sections below explain
why it ended up that simple, including a documented failed attempt at something
more sophisticated.
Naming note. This model was built by a notebook titled Isometry-Geodesic, and
an earlier auto-generated card described it as a geodesic polar-decomposition merge.
That description was wrong and has been replaced by this one. The geodesic path
was attempted, measured, and rejected by its own gate on 400/400 tensors. See
What did not work. Nothing in this repo is
isometric or geodesic.
Measured results
Evaluated with vLLM on a single A100, temperature=0.6, top_p=0.95, top_k=20, max_tokens=8192. "Think" = tokens emitted before </think>.
Model
Suite
pass@1
gen median
think median
gen max
overruns
Qwen/Qwen3.6-27B (official)
GSM8K, 20q
0.75
1375.5
1133.5
8192
1
Della-Deckard-v1
GSM8K, 20q
0.75
691.5
539.5
1370
0
this model
GSM8K, 20q
0.85
139.0
76.0
222
0
Della-Deckard-v1
Hard, 10q x 4
0.800
524.5
359.3
2349
0
this model
Hard, 10q x 4
0.725
264.5
175.5
511.5
0
Read this table honestly:
The compression is large and real. 1133 -> 76 think tokens is 14.9x against the
official base and 7.1x against v1, on the same 20 questions with the same sampler.
A ratio that size is not sampling noise.
GSM8K accuracy did not drop (0.75 -> 0.85). But n=20, single sample: that is 15 vs
17 correct. Treat it as "no measurable loss", not as an improvement.
The hard set regressed. 0.800 -> 0.725 is 32/40 vs 29/40 generations. Three
generations. Not statistically meaningful on its own, but it moves in the same
direction as the think-length collapse (359 -> 176), and that combination is the
signature of over-compression. It is reported here rather than dropped.
The base model hit the 8192-token ceiling once. Neither merge ever did.
Against the builder's own pre-registered acceptance gates:
#
Gate
Result
1
GSM8K think median down >= 3x
PASS (7.1x)
2
GSM8K pass@1 >= v1
PASS (0.85 vs 0.75)
3
Hard pass@1 >= v1 - 3pp
FAIL (-7.5pp)
4
Hard think median >= 400 tok
FAIL (175.5)
5
Overruns not increased
PASS (0 vs 0)
Gates 3 and 4 are exactly the "easy questions may be short, hard questions may not"
check. This model fails it. See Recommended next run.
Use it if / don't use it if
Good fit: high-volume short-answer workloads where v1 or stock Qwen3.6 burns an
absurd thinking budget on trivial input; latency-bound interactive use; cost-bound
batch inference. A 7-15x reduction in generated tokens is a direct throughput and
price multiplier.
Bad fit: competition math, multi-hop reasoning, long agentic chains, anything where
you want the model to deliberate. Use
v1 or stock Qwen3.6
instead. The hard-set numbers above are the warning.
Unknown: all vision capability. This is a VLM and no multimodal evaluation was run.
The vision tower is byte-identical to official Qwen3.6-27B (verified, see below), so it
should be no worse than the base, but the language model it feeds into has moved.
Ingredients
Role
Repo
Host, receives the edit
YFC-112358/Qwen3.6-27B-Della-Deckard-v1
Task-vector source
maldv/Qwen3.6-27B-Isometry-Terse
Common origin, defines the vector
Qwen/Qwen3.6-27B
All three share the identical 1199-tensor / 51.7 GB BF16 layout. Preflight confirmed
0 missing, 0 extra, 0 shape mismatches across all three.
What was actually applied
Tensors are sorted into three buckets by name and shape:
The two edits are orthogonal to within measurement noise. They occupy independent
subspaces, so adding one to the other does not overwrite or dilute either. This is the
best case for task arithmetic and it is why no sign election, no DARE/TIES pruning, and
no interference resolution is needed: there is no interference to resolve.
The second number is the warning that was underweighted. The Terse displacement is
1.98x larger than everything v1's three-way DELLA merge did. At coefficient 0.5 the
injected edit is roughly the same size as v1's entire merge, and the resulting total
displacement is
The coefficient ladder computed before the run only went up to 1.217 (coefficient 0.35)
and 1.116 (coefficient 0.25). The value shipped here, 0.5, is above the range that was
tabulated as reasonable. The hard-set regression is consistent with that.
What did not work: the geodesic path
The original plan was more ambitious, and failed in an informative way. Documented here
because a negative result on a real 27B is worth more than silence.
The hypothesis.maldv/Qwen3.6-27B-Isometry-Terse is named for an isometric edit. If
the edit is genuinely a left-multiplied orthogonal map,
W_terse = M @ W_base , M orthogonal, M = I + Q (R - I) Q^T
then you can recover R by orthogonal Procrustes on a small basis Q of
colspace(W_terse - W_base), take a fractional matrix powerR^t via Schur
decomposition, and fold a partial rotation into v1:
W_out = W_v1 + Q (R^t - I) Q^T W_v1
The attraction: the left factor stays orthogonal, so ||W_out||_F == ||W_v1||_F holds
exactly, per tensor. The singular value spectrum is preserved. v1's capability is
rotated rather than averaged away, so there is no dilution term at all.
The necessary condition passed. Per-tensor norm ratios ||W_terse|| / ||W_base||
measured 1.000018 to 1.001891. The isometry claim is true to about 1e-3.
The sufficient condition failed, badly. Orthogonal Procrustes on 10 probe tensors:
Tensor
rank r
res (best rotation)
res0 (identity)
explained
median angle
layers.0.mlp.down_proj
249
0.1267
0.1302
2.7%
0.23 deg
layers.0.mlp.gate_proj
278
0.3676
0.3812
3.6%
1.45 deg
layers.0.mlp.up_proj
282
0.3691
0.3806
3.0%
1.48 deg
layers.42.mlp.down_proj
597
0.0724
0.0735
1.5%
0.12 deg
layers.0.linear_attn.in_proj_qkv
832
0.0181
0.0191
5.2%
0.05 deg
layers.19.self_attn.o_proj
832
0.0503
0.0525
4.1%
0.11 deg
layers.31.self_attn.q_proj
337
0.1555
0.1610
3.4%
0.48 deg
res0 is the residual of doing nothing. res is the residual after fitting the optimal
orthogonal matrix. They are the same to within a few percent: the best possible rotation
explains 1.5-5.2% of the edit. The gate required 50%.
It is not a rank-truncation artifact. A rank ladder on gate_proj layer 0 separates
the two explanations cleanly:
r
energy captured
explained by rotation
8
71.1%
0.6%
32
89.2%
1.8%
128
98.2%
2.6%
278 (full)
100.0%
3.6%
The subspace is captured completely. The rotation still explains nothing. Fitting a
right-multiplied map instead of a left-multiplied one changes the numbers slightly and
the conclusion not at all.
The lesson.Norm preservation does not imply rotation. In a 5120 x 17408 weight
matrix, any perturbation that happens to be near-orthogonal to W preserves ||W|| to
second order, and near-orthogonality is generic in high dimensions. Checking
||W_edited|| / ||W_base|| ~ 1 is a necessary condition so weak that it is nearly free.
The Procrustes residual is the test that has teeth, and "Isometry" in an upstream repo
name should be read as a description of how the authors built it, not as a promise
about the composite map.
So all 400 tensors took the documented linear fallback. The final tally:
Per-tensor norm ratios ||W_out|| / ||W_v1|| landed between 1.000029 and 1.000592 across
all 400 edited tensors, i.e. the edit is small in Frobenius terms even though its
behavioral effect is large.
config.json reports model_type: qwen3_5 and Qwen3_5Config. This is correct and
inherited from official Qwen3.6-27B, which reuses the 3.5 modeling code. Do not
"fix" it; editing it will break loading.
Usage
vLLM
python
1from vllm import LLM, SamplingParams
2from transformers import AutoTokenizer
34M ="YFC-112358/Qwen3.6-27B-Della-Deckard-Terse-v2"5tok = AutoTokenizer.from_pretrained(M)6llm = LLM(model=M, max_model_len=16384, gpu_memory_utilization=0.90)78sp = SamplingParams(temperature=0.6, top_p=0.95, top_k=20, max_tokens=8192)9prompt = tok.apply_chat_template(10[{"role":"user","content":"A train travels 120 km in 1.5 hours. What is its average speed?"}],11 tokenize=False, add_generation_prompt=True,12)13print(llm.generate([prompt], sp)[0].outputs[0].text)
Transformers
python
1from transformers import AutoModelForCausalLM, AutoTokenizer
23M ="YFC-112358/Qwen3.6-27B-Della-Deckard-Terse-v2"4tok = AutoTokenizer.from_pretrained(M)5model = AutoModelForCausalLM.from_pretrained(M, dtype="auto", device_map="auto")67msgs =[{"role":"user","content":"Explain the CAP theorem in three sentences."}]8ids = tok.apply_chat_template(msgs, add_generation_prompt=True, return_tensors="pt").to(model.device)9out = model.generate(ids, max_new_tokens=2048, temperature=0.6, top_p=0.95, top_k=20)10print(tok.decode(out[0][ids.shape[-1]:], skip_special_tokens=True))
Standard Qwen3.6 chat template. max_tokens can be set far lower than for the base
model; on GSM8K the longest of 20 completions was 222 tokens.
Limitations
Hard-problem regression. Gates 3 and 4 above both failed. Do not use this for
demanding reasoning without running your own evaluation.
Small evaluation. 20 GSM8K questions at 1 sample, 10 hard questions at 4 samples.
Enough to establish the length effect, not enough to rank accuracy.
The coefficient is above the tabulated safe range. 0.5 versus a ladder that
stopped at 0.35.
No multimodal evaluation. Vision weights are untouched; the language model is not.
No safety evaluation. The upstream Terse model folds in a stated uncensored source.
Behavior on refusals and unsafe prompts relative to official Qwen3.6 has not been
characterized. Do not deploy without your own testing.
No long-context, coding, tool-use, or multilingual evaluation.
Built by hand, not with mergekit. The mergekit-equivalent recipe would be
task_arithmetic with base Qwen/Qwen3.6-27B, v1 at weight 1.0 and Terse at weight
0.5, restricted to 2-D projection tensors. That configuration was not used and has
not been verified to reproduce this repo.
Recommended next run
For anyone continuing this line, including the author:
T_LIN is the only coefficient that affects the output.T, R_CAP, TOL_REL,
EXPL_GATE, and RES_GATE govern the rotation path, which never executed. Changing
T does nothing. This is easy to get wrong when reading the notebook.
Try T_LIN = 0.30. The pre-computed ladder puts total displacement at ~1.16x v1's,
inside the tabulated range, versus 1.41x here. The likely outcome is hard-set think
length back above 300 tokens while keeping most of the GSM8K compression.
Widen the hard set before trusting any accuracy delta. 10 questions x 4 samples
cannot resolve 7 percentage points. 30+ questions, and add a length-sensitive suite.
Consider a per-layer coefficient. Compression this aggressive from a uniform
coefficient suggests late layers may tolerate more than early ones.
Credits
Qwen/Qwen3.6-27B - Qwen team, base model and vision tower
maldv/Qwen3.6-27B-Isometry-Terse - the terseness task vector; 7 reasoning finetunes
plus an output-projection overlay
YFC-112358/Qwen3.6-27B-Della-Deckard-v1 - the host, itself a DELLA merge of a
reasoning-distill LoRA and nerkyor/Qwen3.6-27B-DSV4Pro-Thinking-Distill, plus a
cross-generation task vector from nightmedia/Qwen3.5-27B-Engineer-Deckard-Gemini
Built on Colab free tier: 12.7 GB RAM, no GPU, 155 GB streamed over HTTP Range requests,
never holding more than about 1 GB of tensor in memory. Evaluation cost roughly 5 USD of
A100 time.