Qwen3-4B Recursive SFT V3.2

This is the original-tag recursive V3.2 balanced SFT checkpoint. It is not V3.1, the JSON variant, the flattened baseline, or an RL-finetuned model. The weights and tokenizer are unchanged from the final saved checkpoint named qwen3-4b-recursive-sft-v3.2-balanced.

The model was trained from Qwen3-4B-Base with additional recursive protocol tokens. It was not initialized from the already SFT-trained V3.1 model. It is a research math-solving model, not a general-purpose chat assistant.

Download

No ZIP extraction or login is required:

from huggingface_hub import snapshot_download

snapshot_download(
    "tawer12/qwen3-4b-recursive-sft-v3.2",
    local_dir="qwen3-4b-recursive-sft-v3.2",
)

The two safetensors shards, tokenizer files, and configuration files must be kept together. release_manifest.json lists file sizes and SHA256 checksums. The download is approximately 8.06 GB. There are no optimizer states, pickled training arguments, intermediate checkpoints, training examples, or evaluation rollouts in this repository.

Training

V3.2 downsamples only direct-solve examples from the expanded V3.1 call-level training corpus, retaining the decomposition and aggregation examples unchanged.

Setting Value
Decomposition examples 4,707
Direct-solve examples 4,707: 530 root, 4,177 child
Aggregation examples 4,712
Total component-level examples 14,126
Unique source problems represented 5,241
Configured epochs 6
Optimizer updates 660
Global batch 128 component calls, not 128 source problems
GPUs / per-device batch / accumulation 8 / 1 / 16
Maximum sequence length 2,048 tokens
Learning rate / weight decay 1e-5 / 0.01
Warmup / scheduler 10% / cosine
Precision / seed BF16 / 1
Objective Output-token-only causal language modeling

The six epochs approximately match the previous four-epoch V3.1 run's total example exposure; this is not an exactly token- or update-matched experiment. The corpus contains independent component calls, not necessarily complete trees after downsampling. No syntax repair was applied: 387 targets retain known defects under the newer strict Final answer: requirement. The training summary is included separately from the raw training state.

Recursive Inference

Inputs are raw recursive prompt strings, not Qwen chat-template conversations. Use prompts/recursive_sft_prefix_prompt.txt. Preserve protocol special tokens when decoding (skip_special_tokens=False). A single generation returns one action, not necessarily the entire solution:

  • SOLVE_DIRECTLY: solve the supplied problem.
  • DECOMPOSE: propose at least two child paths for the engine to execute.
  • AGGREGATE: combine child answers when the engine requests aggregation.

The bundled recursive_engine.py provides a standalone, unconstrained baseline engine. This example executes a complete tree:

pip install 'transformers==4.51.1' torch accelerate huggingface_hub
import sys
from pathlib import Path
from huggingface_hub import snapshot_download

snapshot = Path(snapshot_download("tawer12/qwen3-4b-recursive-sft-v3.2"))
sys.path.insert(0, str(snapshot))
from recursive_engine import RecursiveEngine, load_model_and_tokenizer

model, tokenizer = load_model_and_tokenizer(str(snapshot), dtype="bf16", device_map="auto")
engine = RecursiveEngine(
    model=model,
    tokenizer=tokenizer,
    prefix_template=(snapshot / "prompts/recursive_sft_prefix_prompt.txt").read_text(),
    max_new_tokens=2048,
    temperature=0.0,
    top_p=1.0,
    max_depth=3,
    max_calls=10,
)
result = engine.rollout("What is the smallest multiple of 5 greater than -32?")
print(result.full_trace)
print(result.final_answer, result.parsed_ok, result.parse_errors)

For this bundled legacy engine, max_calls=10 is a whole-tree model-call limit, including the root and aggregations, not ten children per node. The newer constrained GRPO/evaluation implementation in the math-recursive repository has separate per-decomposition and whole-tree limits. Do not conflate them. The example helper enables the generation cache even though the saved training configuration has use_cache=false.

Limitations And Attribution

Format validity and answer correctness are distinct. A malformed downstream call can invalidate a tree, and well-formed child answers can be mathematically wrong. Decomposition paths may be dependent or underspecified. Aggregation receives child answer summaries rather than their full reasoning. The standalone engine executes children sequentially; critical-path token counts are not measured parallel wall-clock speedups. Grammar constraints are external decoding support, not an intrinsic guarantee supplied by this checkpoint.

The historical helper's answer extraction is not an authoritative benchmark grader; use explicit root-answer grading and the standard evaluation protocol for comparisons. No new benchmark accuracy claims are made in this release.

This is a modified, fine-tuned version of the Qwen team's Apache-2.0 Qwen3-4B-Base model. The upstream license is included in LICENSE. GSM8K supplies the curated training questions. The model card and publishing recipe were added for this V3.2 release on 2026-09-30.

Downloads last month
210
Safetensors
Model size
4B params
Tensor type
BF16
·
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for tawer12/qwen3-4b-recursive-sft-v3.2

Finetuned
(496)
this model

Dataset used to train tawer12/qwen3-4b-recursive-sft-v3.2