初始化项目,由ModelHub XC社区提供模型

Model: littlelearner/littlelearner-1.3b-grpo-math-expert
Source: Original Platform
This commit is contained in:
ModelHub XC
2026-09-08 11:40:19 +08:00
commit ac4b804342
8 changed files with 320548 additions and 0 deletions

35
.gitattributes vendored Normal file
View File

@@ -0,0 +1,35 @@
*.7z filter=lfs diff=lfs merge=lfs -text
*.arrow filter=lfs diff=lfs merge=lfs -text
*.bin filter=lfs diff=lfs merge=lfs -text
*.bz2 filter=lfs diff=lfs merge=lfs -text
*.ckpt filter=lfs diff=lfs merge=lfs -text
*.ftz filter=lfs diff=lfs merge=lfs -text
*.gz filter=lfs diff=lfs merge=lfs -text
*.h5 filter=lfs diff=lfs merge=lfs -text
*.joblib filter=lfs diff=lfs merge=lfs -text
*.lfs.* filter=lfs diff=lfs merge=lfs -text
*.mlmodel filter=lfs diff=lfs merge=lfs -text
*.model filter=lfs diff=lfs merge=lfs -text
*.msgpack filter=lfs diff=lfs merge=lfs -text
*.npy filter=lfs diff=lfs merge=lfs -text
*.npz filter=lfs diff=lfs merge=lfs -text
*.onnx filter=lfs diff=lfs merge=lfs -text
*.ot filter=lfs diff=lfs merge=lfs -text
*.parquet filter=lfs diff=lfs merge=lfs -text
*.pb filter=lfs diff=lfs merge=lfs -text
*.pickle filter=lfs diff=lfs merge=lfs -text
*.pkl filter=lfs diff=lfs merge=lfs -text
*.pt filter=lfs diff=lfs merge=lfs -text
*.pth filter=lfs diff=lfs merge=lfs -text
*.rar filter=lfs diff=lfs merge=lfs -text
*.safetensors filter=lfs diff=lfs merge=lfs -text
saved_model/**/* filter=lfs diff=lfs merge=lfs -text
*.tar.* filter=lfs diff=lfs merge=lfs -text
*.tar filter=lfs diff=lfs merge=lfs -text
*.tflite filter=lfs diff=lfs merge=lfs -text
*.tgz filter=lfs diff=lfs merge=lfs -text
*.wasm filter=lfs diff=lfs merge=lfs -text
*.xz filter=lfs diff=lfs merge=lfs -text
*.zip filter=lfs diff=lfs merge=lfs -text
*.zst filter=lfs diff=lfs merge=lfs -text
*tfevents* filter=lfs diff=lfs merge=lfs -text

57
README.md Normal file
View File

@@ -0,0 +1,57 @@
---
license: other
language:
- en
library_name: transformers
pipeline_tag: text-generation
tags:
- qwen3
- text-generation
- littlelearner
- bounded
- instruct
- reinforcement-learning
---
# littlelearner-1.3b-grpo-math-expert
1.36B K-5-bounded 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 K-5 **LittleCurriculum** (FineWeb-Edu filtered to U.S. grades K-5). WSD schedule, sharded Muon, MXFP8, Megatron-Core on 8xB200.
- **SFT:** supervised fine-tuned on K-5 chat data (lr 1e-5, 3 epochs) from a cooloff-SFT-primed base.
- **RL (GRPO):** segmented policy re-banding on a strictly K-5 verifiable-answer pool (Gemini-generated K-5 word problems + K-5-filtered GSM8K): 4 segments at rollout/training temperature 1.0, then 2 more at temperature 2.0 (the bounded-corpus, 1.3B-scale unlock temperature).
## Evaluation
MathCAMPS:
- K-5 pass@64 **61.2** / pass@1 **40.1**
- beyond-K-5 pass@64 **17.1** / pass@1 **6.5**
## Usage
```python
# transformers (chat)
from transformers import AutoModelForCausalLM, AutoTokenizer
repo = "manueldeprada/littlelearner-1.3b-bounded-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-bounded-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)
```

1
chat_template.jinja Normal file
View File

@@ -0,0 +1 @@
{%- for message in messages -%}{{- '<|im_start|>' + message['role'] + '\n' + message['content'] + '<|im_end|>\n' -}}{%- endfor -%}{%- if add_generation_prompt -%}{{- '<|im_start|>assistant\n' -}}{%- endif -%}

65
config.json Normal file
View File

@@ -0,0 +1,65 @@
{
"architectures": [
"Qwen3ForCausalLM"
],
"attention_bias": false,
"attention_dropout": 0.0,
"bos_token_id": null,
"dtype": "float32",
"eos_token_id": [
3,
0
],
"head_dim": 128,
"hidden_act": "silu",
"hidden_size": 2048,
"initializer_range": 0.02,
"intermediate_size": 5632,
"layer_types": [
"full_attention",
"full_attention",
"full_attention",
"full_attention",
"full_attention",
"full_attention",
"full_attention",
"full_attention",
"full_attention",
"full_attention",
"full_attention",
"full_attention",
"full_attention",
"full_attention",
"full_attention",
"full_attention",
"full_attention",
"full_attention",
"full_attention",
"full_attention",
"full_attention",
"full_attention",
"full_attention",
"full_attention",
"full_attention",
"full_attention"
],
"max_position_embeddings": 4096,
"max_window_layers": 28,
"model_type": "qwen3",
"num_attention_heads": 16,
"num_hidden_layers": 26,
"num_key_value_heads": 8,
"pad_token_id": 0,
"rms_norm_eps": 1e-06,
"rope_parameters": {
"rope_theta": 1000000.0,
"rope_type": "default"
},
"sliding_window": null,
"tie_word_embeddings": true,
"transformers_version": "5.2.0",
"use_cache": false,
"use_sliding_window": false,
"vocab_size": 64000,
"rope_theta": 1000000.0
}

13
generation_config.json Normal file
View File

@@ -0,0 +1,13 @@
{
"_from_model_config": true,
"eos_token_id": [
3,
0
],
"output_attentions": false,
"output_hidden_states": false,
"pad_token_id": 0,
"transformers_version": "5.2.0",
"use_cache": true,
"max_new_tokens": 512
}

3
model.safetensors Normal file
View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:5d086e755234f85f5eee7cdad826d4fdbc5b108eaebe8cf4b8f3ee9f55a8f157
size 2716075264

320361
tokenizer.json Normal file

File diff suppressed because it is too large Load Diff

13
tokenizer_config.json Normal file
View File

@@ -0,0 +1,13 @@
{
"add_prefix_space": null,
"backend": "tokenizers",
"bos_token": null,
"eos_token": "<|im_end|>",
"is_local": true,
"local_files_only": false,
"model_max_length": 1000000000000000019884624838656,
"pad_token": "<|endoftext|>",
"tokenizer_class": "Qwen2Tokenizer",
"unk_token": "<|endoftext|>",
"chat_template": "{%- for message in messages -%}\n{{- '<|im_start|>' + message['role'] + '\\n' + message['content'] + '<|im_end|>\\n' -}}\n{%- endfor -%}\n{%- if add_generation_prompt -%}{{- '<|im_start|>assistant\\n' -}}{%- endif -%}\n"
}