tmarques maxbittker commited on
Commit
eb88ea6
·
0 Parent(s):

Duplicate from maxbittker/nemotron3-nano-30b-a3b-spiral-step130

Browse files

Co-authored-by: max bittker <maxbittker@users.noreply.huggingface.co>

Files changed (4) hide show
  1. .gitattributes +35 -0
  2. README.md +63 -0
  3. adapter_config.json +31 -0
  4. adapter_model.safetensors +3 -0
.gitattributes ADDED
@@ -0,0 +1,35 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ *.7z filter=lfs diff=lfs merge=lfs -text
2
+ *.arrow filter=lfs diff=lfs merge=lfs -text
3
+ *.bin filter=lfs diff=lfs merge=lfs -text
4
+ *.bz2 filter=lfs diff=lfs merge=lfs -text
5
+ *.ckpt filter=lfs diff=lfs merge=lfs -text
6
+ *.ftz filter=lfs diff=lfs merge=lfs -text
7
+ *.gz filter=lfs diff=lfs merge=lfs -text
8
+ *.h5 filter=lfs diff=lfs merge=lfs -text
9
+ *.joblib filter=lfs diff=lfs merge=lfs -text
10
+ *.lfs.* filter=lfs diff=lfs merge=lfs -text
11
+ *.mlmodel filter=lfs diff=lfs merge=lfs -text
12
+ *.model filter=lfs diff=lfs merge=lfs -text
13
+ *.msgpack filter=lfs diff=lfs merge=lfs -text
14
+ *.npy filter=lfs diff=lfs merge=lfs -text
15
+ *.npz filter=lfs diff=lfs merge=lfs -text
16
+ *.onnx filter=lfs diff=lfs merge=lfs -text
17
+ *.ot filter=lfs diff=lfs merge=lfs -text
18
+ *.parquet filter=lfs diff=lfs merge=lfs -text
19
+ *.pb filter=lfs diff=lfs merge=lfs -text
20
+ *.pickle filter=lfs diff=lfs merge=lfs -text
21
+ *.pkl filter=lfs diff=lfs merge=lfs -text
22
+ *.pt filter=lfs diff=lfs merge=lfs -text
23
+ *.pth filter=lfs diff=lfs merge=lfs -text
24
+ *.rar filter=lfs diff=lfs merge=lfs -text
25
+ *.safetensors filter=lfs diff=lfs merge=lfs -text
26
+ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
27
+ *.tar.* filter=lfs diff=lfs merge=lfs -text
28
+ *.tar filter=lfs diff=lfs merge=lfs -text
29
+ *.tflite filter=lfs diff=lfs merge=lfs -text
30
+ *.tgz filter=lfs diff=lfs merge=lfs -text
31
+ *.wasm filter=lfs diff=lfs merge=lfs -text
32
+ *.xz filter=lfs diff=lfs merge=lfs -text
33
+ *.zip filter=lfs diff=lfs merge=lfs -text
34
+ *.zst filter=lfs diff=lfs merge=lfs -text
35
+ *tfevents* filter=lfs diff=lfs merge=lfs -text
README.md ADDED
@@ -0,0 +1,63 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ base_model: nvidia/NVIDIA-Nemotron-3-Nano-30B-A3B-BF16
3
+ library_name: peft
4
+ tags:
5
+ - spiral
6
+ - self-play
7
+ - reinforcement-learning
8
+ - lora
9
+ - nemotron
10
+ ---
11
+
12
+ # nemotron3-nano-30b-a3b-spiral-step130 (LoRA)
13
+
14
+ LoRA adapter trained with the [SPIRAL](https://arxiv.org/abs/2506.24119) self-play RL framework on top of
15
+ `nvidia/NVIDIA-Nemotron-3-Nano-30B-A3B-BF16`.
16
+
17
+ ## Training
18
+
19
+ - **Base model**: `nvidia/NVIDIA-Nemotron-3-Nano-30B-A3B-BF16` (30B-total / 3B-active MoE, reasoning-capable)
20
+ - **Renderer**: `nemotron3` (thinking enabled)
21
+ - **Environments**: `TicTacToe-v0`, `KuhnPoker-v1`, `SimpleNegotiation-v1` (self-play, role-conditioned advantage estimation / RAE)
22
+ - **LoRA rank**: 64 (`target_modules=all-linear`, alpha 32)
23
+ - **Batch size**: 128 self-play games
24
+ - **Max tokens per turn**: 4096
25
+ - **Learning rate**: 4e-5
26
+ - **Checkpointed at**: training step 130 (of planned 400)
27
+ - **Training backend**: [Tinker](https://tinker-docs.thinkingmachines.ai/) (LoRA fine-tuning API from Thinking Machines Lab)
28
+
29
+ ## Math benchmark results (step-130 vs base)
30
+
31
+ | Benchmark | Base | Step-130 | Δ |
32
+ |---|---:|---:|---:|
33
+ | AIME24 | 36.7% | 36.7% | 0.0 |
34
+ | AMC23 | 67.1% | 74.4% | +7.3 |
35
+ | MATH500 | 89.0% | 90.8% | +1.8 |
36
+ | Minerva | 29.4% | 30.1% | +0.7 |
37
+ | Olympiad-Bench | 50.1% | 53.2% | +3.1 |
38
+ | **Average** | **54.5%** | **57.0%** | **+2.5** |
39
+
40
+ All evals done with `nemotron3` renderer (thinking enabled), max_tokens 8192, full test sets, unified `\boxed{}` answer extraction.
41
+
42
+ ## Load
43
+
44
+ ```python
45
+ from peft import AutoPeftModelForCausalLM
46
+ from transformers import AutoTokenizer
47
+
48
+ model = AutoPeftModelForCausalLM.from_pretrained("maxbittker/nemotron3-nano-30b-a3b-spiral-step130",
49
+ device_map="auto",
50
+ torch_dtype="auto")
51
+ tokenizer = AutoTokenizer.from_pretrained("nvidia/NVIDIA-Nemotron-3-Nano-30B-A3B-BF16")
52
+ ```
53
+
54
+ Or merge and save as a full model:
55
+
56
+ ```python
57
+ merged = model.merge_and_unload()
58
+ merged.save_pretrained("./nemotron3-spiral-step130-merged")
59
+ ```
60
+
61
+ ## Status
62
+
63
+ Training is ongoing — further checkpoints will land at `step200`, `step300`, `step400`.
adapter_config.json ADDED
@@ -0,0 +1,31 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "alpha_pattern": {},
3
+ "auto_mapping": null,
4
+ "base_model_name_or_path": "nvidia/NVIDIA-Nemotron-3-Nano-30B-A3B-BF16",
5
+ "bias": "none",
6
+ "corda_config": null,
7
+ "eva_config": null,
8
+ "exclude_modules": null,
9
+ "fan_in_fan_out": false,
10
+ "inference_mode": false,
11
+ "init_lora_weights": true,
12
+ "layer_replication": null,
13
+ "layers_pattern": null,
14
+ "layers_to_transform": null,
15
+ "loftq_config": {},
16
+ "lora_alpha": 32,
17
+ "lora_bias": false,
18
+ "lora_dropout": 0,
19
+ "megatron_config": null,
20
+ "megatron_core": "megatron.core",
21
+ "modules_to_save": null,
22
+ "peft_type": "LORA",
23
+ "r": 64,
24
+ "rank_pattern": {},
25
+ "revision": null,
26
+ "target_modules": "all-linear",
27
+ "task_type": "CAUSAL_LM",
28
+ "trainable_token_indices": null,
29
+ "use_dora": false,
30
+ "use_rslora": false
31
+ }
adapter_model.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:b2de86f80a09f1bc1b1db949859a5c715bbc132c8c9d530a7a05cb528d934baa
3
+ size 3088638968