qwen35-08b-spell-m7-distill
Merged fp16 checkpoint of Cristian's M7 spelling corrector: a Qwen/Qwen3.5-0.8B
QLoRA student distilled from the M6 Qwen/Qwen3.5-2B teacher (token-level KD on
BEA-60K word errors), then LoRA-merged back into the base.
Task
Given a sentence with one misspelled word marked <TYPO>…</TYPO>, return only
the correctly spelled replacement word (greedy, ~5 tokens max).
Prompt template (direct_correct_v1)
You are a spelling corrector. The sentence below has one misspelled word marked with <TYPO>…</TYPO>. Reply with ONLY the correctly spelled replacement word — no quotes, no explanation, no full sentence.
Sentence: {{SENTENCE}}
Example: I started <TYPO>crimbimg</TYPO> the wall. → climbing
Metrics (BEA, sentence-disjoint holds)
| System | Split | Acc@1 casefold |
|---|---|---|
| Student 0.8B NF4 (this lineage) | frozen BEA-100 | 89.0% |
| Student 0.8B NF4 | test n=2,000 | 87.30% |
| Student 0.8B Q4_K_M GGUF | frozen BEA-100 | 88.0% |
| Student 0.8B Q4_K_M GGUF | test n=2,000 | 86.60% |
Teacher (2B NF4) is ~88.75% casefold at n=2,000 — the student recovers nearly all of it.
Serving notes
- Keep context modest (
MAX_MODEL_LEN2048–8192); do not use the base's 262k window. - Prefer greedy /
temperature=0,max_tokens≈5. - Qwen3.5 chat templates may open a
<think>block — disable reasoning / strip think tags when serving with chat templates.
Files
model.safetensors— merged weights (fp16, ~1.6 GiB), MTP head retained- Tokenizer +
config.jsonfromQwen/Qwen3.5-0.8B
vLLM serving tip
Qwen3.5-0.8B is a multimodal architecture. For text-only spelling correction, serve with:
vllm serve ctalau/qwen35-08b-spell-m7-distill --language-model-only --max-model-len 2048
preprocessor_config.json / video_preprocessor_config.json are included from the base so the processor can load if multimodal profiling is not disabled.