openai/gsm8k
Benchmark • Updated • 17.6k • 1.06M • 1.57k
How to use ssurface/cot-dialect-qwen3-4b-instruct-sft-l0 with PEFT:
from peft import PeftModel
from transformers import AutoModelForCausalLM
base_model = AutoModelForCausalLM.from_pretrained("Qwen/Qwen3-4B-Instruct-2507")
model = PeftModel.from_pretrained(base_model, "ssurface/cot-dialect-qwen3-4b-instruct-sft-l0")A LoRA adapter trained on the original, unmodified GSM8K chains. This is the anchor at the verbose end of the spectrum — no compression is applied at all.
| Accuracy | |
|---|---|
| This adapter | 81.5% |
GSM8K test (n=1317), greedy decoding, single-turn, no exemplars, no self-consistency.
GSM8K train. Chains are the original gold solutions.
| 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 problem.
Problem: {your problem}
from transformers import AutoModelForCausalLM, AutoTokenizer
from peft import PeftModel
model = AutoModelForCausalLM.from_pretrained("Qwen/Qwen3-4B-Instruct-2507", torch_dtype="bfloat16", device_map="auto")
model = PeftModel.from_pretrained(model, "ssurface/cot-dialect-qwen3-4b-instruct-sft-l0")
tok = AutoTokenizer.from_pretrained("Qwen/Qwen3-4B-Instruct-2507")
@misc{cot-compression-dialects,
title = {Chain-of-Thought Compression Dialects},
author = {Frolov, Anatolii},
year = {2026}
}
Base model
Qwen/Qwen3-4B-Instruct-2507