openai/gsm8k
Benchmark • Updated • 17.6k • 1.23M • 1.6k
How to use ssurface/cot-dialect-qwen3-14b-sft-l5 with PEFT:
from peft import PeftModel
from transformers import AutoModelForCausalLM
base_model = AutoModelForCausalLM.from_pretrained("unsloth/Qwen3-14B")
model = PeftModel.from_pretrained(base_model, "ssurface/cot-dialect-qwen3-14b-sft-l5")A LoRA adapter that makes Qwen/Qwen3-14B reason at compression level L5 — a single collapsed expression.
| Accuracy | |
|---|---|
| This adapter | 75.5% |
GSM8K test (n=1317), greedy decoding, single-turn, no exemplars, no self-consistency.
GSM8K train, re-expressed at level L5 by a teacher model: 6993 examples, median chain length 16 characters inside <think>.
Across the family the median chain runs from 532 characters at L1 to 16 at L5 — a 33x span. An L5 chain looks like this:
18/3*2=12
| Stage | supervised fine-tuning (distillation) |
| Engine | HuggingFace transformers + peft |
| LoRA | r=16, alpha=32, dropout=0.05 |
| Epochs | 3 |
| Learning rate | 2e-4, cosine, warmup 0.03 |
| Batch | 16 x 4 grad-accum = 64 effective |
| Max sequence | 1024 |
| Precision | bf16 |
| Hardware | 1x NVIDIA A100 80GB |
Loss is on the completion only, with prompt lengths precomputed at load time rather than found by pattern search — the pattern-search collator silently masked nothing, which let the base model's tool-calling prior leak into the chains.
Solve this using Level 5 (Extreme).
Problem: {your problem}
from transformers import AutoModelForCausalLM, AutoTokenizer
from peft import PeftModel
model = AutoModelForCausalLM.from_pretrained("Qwen/Qwen3-14B", torch_dtype="bfloat16", device_map="auto")
model = PeftModel.from_pretrained(model, "ssurface/cot-dialect-qwen3-14b-sft-l5")
tok = AutoTokenizer.from_pretrained("Qwen/Qwen3-14B")
@misc{cot-compression-dialects,
title = {Chain-of-Thought Compression Dialects},
author = {Frolov, Anatolii},
year = {2026}
}