openai/gsm8k
Benchmark • Updated • 17.6k • 1.07M • 1.57k
How to use ssurface/cot-dialect-olmo3-7b-think-sft-l3 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-l3")A LoRA adapter that makes allenai/Olmo-3-7B-Think reason at compression level L3 — one named assignment per line.
| Accuracy | |
|---|---|
| This adapter | 76.0% |
GSM8K test (n=1317), greedy decoding, single-turn, no exemplars, no self-consistency.
GSM8K train, re-expressed at level L3 by a teacher model: 6970 examples, median chain length 90 characters inside <think>.
Across the family the median chain runs from 532 characters at L1 to 16 at L5 — a 33x span. An L3 chain looks like this:
p = 40
w = 2 * 4 = 8
T = p * w = 40 * 8 = 320
| 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 3 (Symbolic).
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-l3")
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