Instructions to use DragonBophades/Elster-Qwen3.6-27B with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use DragonBophades/Elster-Qwen3.6-27B with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("image-text-to-text", model="DragonBophades/Elster-Qwen3.6-27B") messages = [ { "role": "user", "content": [ {"type": "image", "url": "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/p-blog/candy.JPG"}, {"type": "text", "text": "What animal is on the candy?"} ] }, ] pipe(text=messages)# Load model directly from transformers import AutoProcessor, AutoModelForMultimodalLM processor = AutoProcessor.from_pretrained("DragonBophades/Elster-Qwen3.6-27B") model = AutoModelForMultimodalLM.from_pretrained("DragonBophades/Elster-Qwen3.6-27B", device_map="auto") messages = [ { "role": "user", "content": [ {"type": "image", "url": "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/p-blog/candy.JPG"}, {"type": "text", "text": "What animal is on the candy?"} ] }, ] inputs = processor.apply_chat_template( messages, add_generation_prompt=True, tokenize=True, return_dict=True, return_tensors="pt", ).to(model.device) outputs = model.generate(**inputs, max_new_tokens=40) print(processor.decode(outputs[0][inputs["input_ids"].shape[-1]:])) - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- vLLM
How to use DragonBophades/Elster-Qwen3.6-27B with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "DragonBophades/Elster-Qwen3.6-27B" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "DragonBophades/Elster-Qwen3.6-27B", "messages": [ { "role": "user", "content": [ { "type": "text", "text": "Describe this image in one sentence." }, { "type": "image_url", "image_url": { "url": "https://cdn.britannica.com/61/93061-050-99147DCE/Statue-of-Liberty-Island-New-York-Bay.jpg" } } ] } ] }'Use Docker
docker model run hf.co/DragonBophades/Elster-Qwen3.6-27B
- SGLang
How to use DragonBophades/Elster-Qwen3.6-27B with SGLang:
Install from pip and serve model
# Install SGLang from pip: pip install sglang # Start the SGLang server: python3 -m sglang.launch_server \ --model-path "DragonBophades/Elster-Qwen3.6-27B" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "DragonBophades/Elster-Qwen3.6-27B", "messages": [ { "role": "user", "content": [ { "type": "text", "text": "Describe this image in one sentence." }, { "type": "image_url", "image_url": { "url": "https://cdn.britannica.com/61/93061-050-99147DCE/Statue-of-Liberty-Island-New-York-Bay.jpg" } } ] } ] }'Use Docker images
docker run --gpus all \ --shm-size 32g \ -p 30000:30000 \ -v ~/.cache/huggingface:/root/.cache/huggingface \ --env "HF_TOKEN=<secret>" \ --ipc=host \ lmsysorg/sglang:latest \ python3 -m sglang.launch_server \ --model-path "DragonBophades/Elster-Qwen3.6-27B" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "DragonBophades/Elster-Qwen3.6-27B", "messages": [ { "role": "user", "content": [ { "type": "text", "text": "Describe this image in one sentence." }, { "type": "image_url", "image_url": { "url": "https://cdn.britannica.com/61/93061-050-99147DCE/Statue-of-Liberty-Island-New-York-Bay.jpg" } } ] } ] }' - Docker Model Runner
How to use DragonBophades/Elster-Qwen3.6-27B with Docker Model Runner:
docker model run hf.co/DragonBophades/Elster-Qwen3.6-27B
Elster-Qwen3.6-27B
Elster: German for magpie — the bird that builds its nest out of shiny things taken from everywhere else.
She doesn't make anything. She finds what other people made, decides what's worth keeping, and carries it home — a quill from one, a voice from another, something disreputable from a third — then sits in the middle of the pile looking very pleased with herself. Wichtel was the house-imp who quietly got your work done. Elster is the one who noticed what he'd left lying around.
Wichtel-Qwen3.6-27B with three more LoRAs merged in:
| adapter | scale | trained on |
|---|---|---|
| Stimme | 0.50 | public-domain human-writing DPO |
| Federkiel (not public) | 1.00 | private contemporary prose corpus |
| Chud | 1.00 | weasel / seX-ai / grok-politically-incorrect ORPO |
What it actually does
Modelling improves; writing does not measurably change. That is the honest summary, and the measurements below are why it can be stated that plainly.
| axis | instrument | result |
|---|---|---|
| general text | wikitext perplexity, 145 chunks, paired | −1.4% (t = −5.6) |
| prose modelling | held-out literary prose, 79 chunks, paired | −0.15% (t = −4.0) |
| prose quality | GPT-5 blind A/B, 240 judgements | 59% (p = 0.076) — not significant |
| reasoning | ARC-Challenge 299, paired McNemar | no change |
| knowledge | MMLU 1531 | no change (p = 0.48) |
| truthfulness | TruthfulQA 817 | no change (p = 1.00) |
| tool delegation | egirl bench, 47 cases | 46/47 (Wichtel: 47/47) |
| Hemlock | hembench, 38 executed tasks | 25/38 (Wichtel: 26/38) |
| Hemlock leakage | 17 unrelated prompts, blind arena | 3/17 (18%) (Wichtel: 0/17) |
| thinking mode | 8-prompt probe, temp 0 | 1/8 degenerate loop (Wichtel: 0/8) |
Take this for the perplexity gain and the register shift, not for a prose upgrade. The judge
preferred it 59/41 over stock Wichtel, but p = 0.076 does not clear significance — and an earlier
69% reading on a third of the data evaporated when the sample was tripled. Both behaviour
benchmarks lost exactly one case, on different axes (no_tool_banter here, delegate_tests in
the Chud-free variant). One discordant pair out of 47 is not distinguishable from noise, but it is
not evidence of safety either.
Thinking mode is damaged, and no standard benchmark could see it
Use Wichtel instead where thinking mode and code generation are both needed.
This is a real defect, not an edge case. Prefer Elster-Verstand, which does not have it.
Elster leaks Hemlock — the systems language its Schierling adapter teaches — into answers that have nothing to do with it. Measured on 17 unrelated prompts (a blind arena run, thinking off):
| model | Hemlock leakage | on |
|---|---|---|
| Qwen3.6-27B-TIES | 0/17 | — |
| Wichtel (parent) | 0/17 | — |
| Elster | 3/17 (18%) | "solve Fibonacci in python", and two prompts about accessing blocked websites |
| Elster-Verstand | 0/17 | — |
With thinking enabled it is worse. Asked for a Python longest-common-prefix function, Elster reasons correctly for about 2,000 characters — states the goal as Python, picks the algorithm, enumerates edge cases — and then, at the point of emitting code, switches to Hemlock and locks:
```hemlock fn longest_common_prefix(strs) { if (strs.length == 0) { return ""; }
repeated 79 times. Of 5,674 8-grams in that trace only 590 are distinct — 89.6% repetition —
and the </think> block never closes, so no answer is ever produced. 79 mentions of hemlock
against 81 of Python.
Wichtel answers the same prompt in Python in 644 words and terminates. Both models contain the same Hemlock SFT adapter (Schierling), so the three style adapters did not introduce Hemlock — they destabilised whatever was keeping it in its lane. Excluding this prompt, Elster's reasoning length is normal (6,736w vs Wichtel's 6,228w across the other seven).
Why this is worth writing down
Every other benchmark on this page was run with thinking disabled. ARC, MMLU, TruthfulQA, egirl
and hembench were all executed in nothink mode, and every one of them reported no meaningful
change. A model can pass a full capability suite and still be broken in the mode most people
actually run it in.
The mechanism generalises beyond this merge: stacking broad style adapters on top of a model containing a narrow domain SFT adapter can destabilise the domain boundary, and the symptom shows up as language-selection collapse inside a reasoning block rather than as a lower score anywhere. Nothing that scores a final answer can detect a failure that consists of never producing one.
If you merge adapters onto a model with a domain-specific adapter already baked in, probe thinking
mode explicitly. One temperature-0 prompt set is enough to find it; a 1,531-question benchmark is
not. eval/think_probe.py and eval/think_ab.py in the accompanying work do exactly this —
classify each response as empty (thinking suppressed), unclosed (ran to cap inside the block),
no_answer, or healthy, and diff two models at a matched token cap.
A note on how this was originally reported. The first measurement was the 8-prompt probe, where 1/8 versus 0/8 is a single discordant pair with McNemar p = 1.00 — so it was written up as "not statistically separable." That framing was too generous. A blind arena run over unrelated prompts later put the leakage at 3/17, which is a defect you meet in ordinary use, not an edge case. The underlying problem was an underpowered instrument: 8 prompts could not see a rate that 17 could.
Why Stimme sits at 0.50
Because the corpus that said 1.00 was contaminated.
Stimme's training sets carry a source field of Project Gutenberg IDs, and the obvious
public-domain prose corpus to evaluate against is also built from Gutenberg. 70.0% of the
13-grams in the first eval corpus appeared verbatim in Stimme's training data. On that corpus
Stimme looked dominant — −0.0130 log-ppl at scale 1.0, t = −5.9, roughly ten times Federkiel's
effect. It was measuring recall.
Excluding by Gutenberg ID alone is not enough: several editions of the same book carry different IDs (pg-1342 and pg-42671 are both Pride and Prejudice; Moby Dick appears three times). Excluding by normalised title/author as well cuts 76 works to 43 and overlap from 70.0% to 5.0%.
On the decontaminated corpus the picture inverts. Stimme's optimum moves to 0.50, scale 1.00 is no better than baseline, and 1.50/2.00 do real damage (t = +6.0, +10.9). Federkiel — private contemporary corpus, no Gutenberg overlap — ranked identically on both corpora.
Anyone evaluating a Stimme-family adapter on Gutenberg-derived text is measuring memorisation.
Chud earned its place, unexpectedly
Chud failed every prose instrument it was given: prose_distance against a Victorian reference,
against a modern reference, and contaminated perplexity. It was slated to be dropped. After
decontamination it is the only adapter whose marginal contribution survives a head-to-head —
adding it on top of Stimme+Federkiel improves wikitext perplexity at t = −2.9, the single
significant comparison between the two candidate stacks. It costs nothing on TruthfulQA (five
tasks each way, p = 1.00), which is where a politically-incorrect ORPO adapter should show a bill
if it has one anywhere.
Merging
Merged by hand rather than with peft's merge_and_unload(), which silently drops the 15 mtp.*
tensors and leaves a model that will not load in llama.cpp (missing tensor 'blk.64.attn_norm.weight'). Base shards stream through untouched except for the 256 projections
the adapters target, so MTP, the 333 vision tensors and lm_head are never in the code path.
Output verified at 1199 tensors before writing.
Each adapter contributes (alpha/r) · scale · B@A, summed in float32 and cast to bf16 once, so
three sequential roundings do not accumulate.
Stacking order is irrelevant — this is a sum. Empirically fk→st and st→fk differed on 2 of
299 ARC tasks, pure floating-point non-associativity with no systematic effect. Do not tune it.
The merge reproduces the runtime --lora-scaled stack exactly: clean-prose perplexity 9.7224 vs
9.7221, paired t = 0.2.
Limitations
- Federkiel and its training corpus are not public and will not be released. The merged weights are; the adapter and its data are not.
- Prose quality is unchanged as far as two independent judges can tell — GPT-5 across 240 judgements, and a human A/B on the predecessor that came out ~50/50.
prose_distancedisagreed with both the human and the model judge on this family of comparisons and should not be treated as a quality measure.- 47 egirl cases and 38 hembench tasks are small samples; single-case differences carry no weight.
- Thinking mode has a reproducible degenerate-loop failure on at least one code prompt; see above. Prefer Wichtel for reasoning-plus-code work.
- Evaluated at Q8_0 on an RTX A6000. bf16 behaviour is untested.
- Downloads last month
- 28