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

Model: littlelearner/unfiltered-1.3b-grpo-math-expert
Source: Original Platform
This commit is contained in:
ModelHub XC
2026-09-08 15:32:20 +08:00
commit 1959e337f4
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
- 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)
```

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 -%}

66
config.json Normal file
View File

@@ -0,0 +1,66 @@
{
"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,
"torch_dtype": "bfloat16"
}

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:60f0f0e621a6e9318e2caf88e63e3a480d4e7d154af0a05a816fa63b3de5ef40
size 2716075264

320361
tokenizer.json Normal file

File diff suppressed because it is too large Load Diff

12
tokenizer_config.json Normal file
View File

@@ -0,0 +1,12 @@
{
"add_prefix_space": null,
"backend": "tokenizers",
"bos_token": null,
"eos_token": "<|im_end|>",
"is_local": true,
"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"
}