--- license: other language: - en library_name: transformers pipeline_tag: text-generation tags: - qwen3 - text-generation - littlelearner - unbounded - instruct - reinforcement-learning --- # unfiltered-1.3b-grpo-math-expert 1.36B fully-unbounded chat model post-trained with GRPO on top of SFT. Part of the [**LittleLearner**](https://arxiv.org/abs/2608.13545) scale-up study (*pedagogically-controlled knowledge exposure*): Qwen3 dense LMs trained on a corpus filtered to U.S. K-5 material (**bounded**) vs an unfiltered FineWeb-Edu corpus (**unbounded**), to measure what an interpretable knowledge boundary costs and grants. Note: This checkpoint was post-trained with GRPO on mathematical reasoning tasks to probe achievable performance on MathCAMPS. As a result, its behavior is specialized toward mathematical reasoning and may not preserve general-purpose chat capabilities; responses may also exhibit a tendency toward math-oriented reasoning or output. ## Model - **Architecture:** Qwen3 dense (`Qwen3ForCausalLM`). - **Size:** 1.358B params, hidden 2048, 26 layers, 16 query / 8 KV heads, FFN 5632. **Context:** 4096. - **Tokenizer:** custom 64k byte-level BPE with per-digit splitting (ChatML special tokens). - **Pretraining:** 88B tokens on **unfiltered** FineWeb-Edu (score >= 2, no grade filter). WSD schedule, sharded Muon, MXFP8, Megatron-Core on 8xB200. - **SFT:** supervised fine-tuned on unbounded chat data (lr 1e-5, 3 epochs). - **RL (GRPO):** segmented policy re-banding on a verifiable-answer pool: temperature-1.0 segments to a plateau, then one segment at temperature 1.3 (a one-shot unlock). ## Evaluation MathCAMPS: - K-5 pass@64 **70.6** / pass@1 **45.7** - beyond-K-5 pass@64 **45.6** / pass@1 **16.5** ## Usage ```python # transformers (chat) from transformers import AutoModelForCausalLM, AutoTokenizer repo = "manueldeprada/littlelearner-1.3b-unbounded-grpo" tok = AutoTokenizer.from_pretrained(repo) model = AutoModelForCausalLM.from_pretrained(repo, dtype="bfloat16", device_map="cuda") msgs = [{"role": "user", "content": "Liam has 3 apples and buys 4 more. How many apples does he have?"}] ids = tok.apply_chat_template(msgs, add_generation_prompt=True, return_tensors="pt").to(model.device) out = model.generate(ids) print(tok.decode(out[0, ids.shape[1]:], skip_special_tokens=True)) ``` ```python # vLLM from vllm import LLM repo = "manueldeprada/littlelearner-1.3b-unbounded-grpo" llm = LLM(repo) msgs = [{"role": "user", "content": "Liam has 3 apples and buys 4 more. How many apples does he have?"}] print(llm.chat(msgs)[0].outputs[0].text) ```