openai/gsm8k
Benchmark • Updated • 17.6k • 1.06M • 1.57k
How to use ssurface/cot-dialect-olmo3-7b-think-sft-l4 with PEFT:
from peft import PeftModel
from transformers import AutoModelForCausalLM
base_model = AutoModelForCausalLM.from_pretrained("allenai/Olmo-3-7B-Think")
model = PeftModel.from_pretrained(base_model, "ssurface/cot-dialect-olmo3-7b-think-sft-l4")A LoRA adapter that makes allenai/Olmo-3-7B-Think reason at compression level L4 — semicolon-chained assignments.
| Accuracy | |
|---|---|
| This adapter | 43.8% |
GSM8K test (n=1317), greedy decoding, single-turn, no exemplars, no self-consistency.
GSM8K train, re-expressed at level L4 by a teacher model: 6976 examples, median chain length 41 characters inside <think>.
Across the family the median chain runs from 532 characters at L1 to 16 at L5 — a 33x span. An L4 chain looks like this:
K=18*2.5;D=8*4;T=K+D->T=77
| 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 4 (Shorthand).
Problem: {your problem}
from transformers import AutoModelForCausalLM, AutoTokenizer
from peft import PeftModel
model = AutoModelForCausalLM.from_pretrained("allenai/Olmo-3-7B-Think", torch_dtype="bfloat16", device_map="auto")
model = PeftModel.from_pretrained(model, "ssurface/cot-dialect-olmo3-7b-think-sft-l4")
tok = AutoTokenizer.from_pretrained("allenai/Olmo-3-7B-Think")
@misc{cot-compression-dialects,
title = {Chain-of-Thought Compression Dialects},
author = {Frolov, Anatolii},
year = {2026}
}
Base model
allenai/Olmo-3-1025-7B