Views
No views yet
Qwen/Qwen3-8B base model. It is trained using the Surgical Post-Training (SPoT) paradigm, which significantly improves the model's reasoning capabilities while alleviating the catastrophic forgetting typically associated with Supervised Fine-Tuning (SFT).| Method | In-domain Avg | OOD Avg | IFEval | Overall Avg |
|---|---|---|---|---|
| Qwen3-8B (base) | 46.8 | 29.9 | 83.0 | 47.1 |
| + SFT | 41.0 (-5.8) | 25.5 (-4.4) | 79.6 (-3.4) | 41.8 (-5.3) |
| + RFT | 47.3 (+0.5) | 26.1 (-3.8) | 81.5 (-1.5) | 46.4 (-0.7) |
| + SFT+ | 50.5 (+3.7) | 30.7 (+0.8) | 80.0 (-3.0) | 49.4 (+2.3) |
| + SPoT (this model) | 52.1 (+5.3) | 41.4 (+11.5) | 84.8 (+1.8) | 53.3 (+6.2) |
transformers pipeline:1from transformers import AutoModelForCausalLM, AutoTokenizer
2import torch
3
4model_id = "linius/Qwen3-8B-SPoT"
5
6# Load Tokenizer and Model
7tokenizer = AutoTokenizer.from_pretrained(model_id)
8model = AutoModelForCausalLM.from_pretrained(
9 model_id,
10 torch_dtype=torch.bfloat16,
11 device_map="auto"
12)
13
14# Prepare prompt
15prompt = "Solve the following math problem step-by-step: ..."
16messages =[
17 {"role": "system", "content": "You are a helpful and precise reasoning assistant."},
18 {"role": "user", "content": prompt}
19]
20
21text = tokenizer.apply_chat_template(
22 messages,
23 tokenize=False,
24 add_generation_prompt=True
25)
26model_inputs = tokenizer([text], return_tensors="pt").to(model.device)
27
28# Generate
29generated_ids = model.generate(
30 **model_inputs,
31 max_new_tokens=2048
32)
33generated_ids =[
34 output_ids[len(input_ids):] for input_ids, output_ids in zip(model_inputs.input_ids, generated_ids)
35]
36
37response = tokenizer.batch_decode(generated_ids, skip_special_tokens=True)[0]
38print(response)1@article{lin2026surgical,
2 title={Surgical Post-Training: Cutting Errors, Keeping Knowledge},
3 author={Wenye Lin and Kai Han},
4 year={2026},
5 journal={arXiv preprint arXiv:2603.01683}
6}