What was done
- Antidoom FTPO pass: sampled completions at temperature 0.01 from the
LiquidAI/antidoom-mix-v1.0 prompt mix
(filtered to the highest doom-loop-yield sources: code + instruction-following), detected runaway
repetition, extracted 58 FTPO preference pairs (the 14B rarely doom-loops — ~0.8% of low-temp completions), trained a QLoRA (r=128, 4-bit base for the training pass, all layers + lm_head, max_seq 3072, lr 3e-5) and merged the adapter into the bf16 base on CPU
with early stop at
chosen_win ≥ 0.4 (hit at epoch ~3.9).
The anti-loop preference flips from 5% to 45% chosen-win during training.
- Post-training GPTQ (llm-compressor): int4 W4A16 group=32 symmetric, 256 ultrachat calibration
samples with chat template. Post-training quantization preserves DSpark draft acceptance —
retraining-style (QAT) quantization destroys it (see
gemma-4-12B-it-W4A16-GPTQ-g32-DSpark).
DSpark acceptance is preserved: 25.5% (original, official AWQ reference) → 30.8% (this model, antidoom + GPTQ g32). The FTPO patch is local and targeted; it does not break the draft head.
Measured speed — RTX 5090 (32 GB, Blackwell), single stream, greedy, 256-tok gens
Table with columns: config, tok/s, DSpark accept| config | tok/s | DSpark accept |
|---|
| this model + DSpark k=7 + CUDA graphs | 263 (peaks 343) | 30.8% |
| this model, native (no speculation) | 144 | — |
| reference: official Qwen3-14B-AWQ + DSpark k=7 | 244 | 25.5% |
| reference: official Qwen3-14B-AWQ, native | 147 | — |
Loop-rate eval (held-out, measured)
2,028 held-out prompts per arm (training prompts excluded), temperature 0.01, up to 4k tokens,
loop detection via the antidoom pipeline's own detector:
Table with columns: model, doom-loop rate| model | doom-loop rate |
|---|
| original Qwen3-14B (official AWQ) | 21/2039 = 1.03% |
| this model (antidoom) | 8/2039 = 0.39% |
~60% relative reduction in runaway-repetition incidence (two-proportion z ≈ 2.3, p ≈ 0.02),
from only 58 FTPO pairs — measured, not assumed.
Usage (vLLM + DSpark)
from vllm import LLM, SamplingParams
from transformers import AutoTokenizer
MODEL = "Danny-Dasilva/Qwen3-14B-antidoom-W4A16-GPTQ-g32-DSpark"
DRAFT = "deepseek-ai/dspark_qwen3_14b_block7"
llm = LLM(
model=MODEL,
max_model_len=8192,
attention_backend="FLASHINFER",
speculative_config={
"method": "dspark",
"model": DRAFT,
"num_speculative_tokens": 7,
"attention_backend": "TRITON_ATTN",
},
)
tok = AutoTokenizer.from_pretrained(MODEL)
prompt = tok.apply_chat_template([{"role": "user", "content": "Hello!"}],
add_generation_prompt=True, tokenize=False)
print(llm.generate([prompt], SamplingParams(temperature=0.0, max_tokens=256))[0].outputs[0].text)
Requires a vLLM build with DSpark support (merged to vLLM main 2026-07-02).
Antidoom details
- Pipeline: Liquid4All/antidoom at upstream defaults except:
temperature=0.01, prompt sources filtered to code/instruction-following (3-8× higher loop yield
than math/QA), pair budget 58 (5h generation cap; the model is extremely loop-resistant), num_epochs=10, lr=3e-5, lora_r=128, max_seq_length=3072, load_in_4bit for the training pass (14B bf16 + optimizer exceeds 32 GB), with the built-in chosen_win ≥ 0.4 early stop. Note: vLLM needs gpu_memory_utilization≈0.70 for this target+draft pair on 32 GB.
- The base model is healthy — only ~2% of low-temperature completions doom-loop — so this is a
targeted robustness patch against runaway repetition, not a rescue. FTPO trains only local
single-token preferences at loop-start positions.
Provenance
Qwen/Qwen3-14B (bf16) → antidoom FTPO LoRA merge → GPTQ W4A16 g32
- Built 2026-07-07 on a single RTX 5090. Apache-2.0, same as the base model.