FatStinkyPanda commited on
Commit
4c6b445
Β·
verified Β·
1 Parent(s): 1b62b5a

Aether step 90

Browse files
Files changed (6) hide show
  1. MODEL_CARD.md +10 -0
  2. README.md +17 -0
  3. config.yaml +134 -0
  4. latest.safetensors +3 -0
  5. metadata.json +7 -0
  6. tokenizer.json +0 -0
MODEL_CARD.md ADDED
@@ -0,0 +1,10 @@
 
 
 
 
 
 
 
 
 
 
 
1
+ # FatStinkyPanda Β· Aether
2
+
3
+ A from-scratch reasoning LLM (MLA + Mamba2 hybrid, MoE, self-verification), part of the **Anima** project. Trained in Anima; usable by the standalone `aether` project too.
4
+
5
+ - **Creator / Developer:** FatStinkyPanda (Daniel A. Bissey)
6
+ - **Model:** FatStinkyPanda/Aether
7
+ - **Training step:** 90
8
+ - **Project:** Anima β€” https://github.com/FatStinkyPanda/Anima
9
+
10
+ Created and released by **FatStinkyPanda**.
README.md ADDED
@@ -0,0 +1,17 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ license: apache-2.0
3
+ tags: [aether, anima, reasoning, from-scratch]
4
+ ---
5
+
6
+ # FatStinkyPanda Β· Aether β€” step 90
7
+
8
+ A from-scratch reasoning LLM (MLA + Mamba2 hybrid, MoE, MTP, self-verification), trained in the **Anima** project (https://github.com/FatStinkyPanda/Anima). Created & released by **FatStinkyPanda** (Daniel A. Bissey).
9
+
10
+ > Honest scope: a small (~100M-active/330M-total) model trained on a tiny budget β€” best-in-class for its size, NOT frontier-scale. The architecture is built to scale.
11
+
12
+ ## Latest held-out benchmarks (acc_norm)
13
+ - **hellaswag**: 0.26
14
+ - **arc_easy**: 0.27
15
+ - **arc_challenge**: 0.28
16
+ - **winogrande**: 0.56
17
+ - **train_slice_ppl**: 174.91
config.yaml ADDED
@@ -0,0 +1,134 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # aether-100m "all improvements" preset β€” same architecture as aether-100m
2
+ # but every adaptive variant turned ON (except those needing Ollama).
3
+ #
4
+ # What's enabled vs aether-100m.yaml:
5
+ # * SSM: chunk_strategy=sqrt β€” Mamba2 picks chunk size from seq length
6
+ # * MoE: adaptive_bias_speed + adaptive_top_k β€” load-aware routing
7
+ # * Reasoning: adaptive_threshold β€” ALR halt threshold tracks a target rate
8
+ # * Memory: activation_checkpointing=selective β€” adaptive memory-pressure policy
9
+ #
10
+ # The training-time flags (adaptive grad clip, adaptive curriculum) live in
11
+ # scripts/train_improved.py since they're TrainConfig fields, not architecture.
12
+
13
+ name: aether-100m-improved
14
+ vocab_size: 16000 # matches the trained 16k BPE tokenizer (pinned at load regardless)
15
+ # LM-head z-loss (PaLM/Chinchilla logit regularizer): keeps output logits from drifting
16
+ # large β†’ better bf16 stability at high LR/depth, complementing QK-norm (attention logits)
17
+ # and the router z-loss. Near-free in the fused CE (reuses the per-chunk logsumexp). 1e-4
18
+ # is PaLM's value; set 0.0 to disable.
19
+ lm_z_loss_coef: 1.0e-4
20
+ # Multi-Token Prediction (DeepSeek-V3): extra head(s) predict the +2… token from the shared
21
+ # trunk hidden β€” a denser training signal (and a speculative-decoding draft head) that's near-free
22
+ # since the forward already builds MTPHeads + folds the averaged MTP loss into aux_losses.
23
+ num_mtp_heads: 1
24
+ mtp_loss_weight: 0.3
25
+ hidden_size: 768
26
+ num_hidden_layers: 12
27
+ layer_pattern: "ASSS"
28
+ activation: swiglu
29
+ norm_type: rmsnorm
30
+ norm_eps: 1.0e-5
31
+ tie_word_embeddings: true
32
+ init_std: 0.02
33
+ hidden_dropout: 0.0
34
+ dtype: bfloat16
35
+ moe_layer_freq: every_other
36
+ dense_layer_prefix: 2
37
+
38
+ attention:
39
+ num_query_heads: 12
40
+ num_kv_heads: 4
41
+ head_dim: 64
42
+ kv_lora_rank: 128
43
+ q_lora_rank: 0
44
+ rope_theta: 1000000.0
45
+ rope_scaling: 1.0
46
+ max_position_embeddings: 4096
47
+ sliding_window: 0
48
+ attention_bias: false
49
+ attention_dropout: 0.0
50
+ qk_norm: true # per-head RMSNorm on Q/K before SDPA β€” bounds attention logits (default ON)
51
+
52
+ ssm:
53
+ state_size: 64
54
+ conv_kernel: 4
55
+ expand: 2
56
+ head_dim: 64
57
+ n_groups: 1
58
+ dt_min: 0.001
59
+ dt_max: 0.1
60
+ dt_init_floor: 1.0e-4
61
+ chunk_size: 128
62
+ # Adaptive chunk size: pick based on sqrt(seq * state_size), clamped to [min, max].
63
+ chunk_strategy: sqrt
64
+ chunk_size_min: 32
65
+ chunk_size_max: 512
66
+ # True chunk-parallel SSD scan (structured matmul, ~10x faster than the
67
+ # per-timestep loop; identical function β€” proven by equivalence tests) +
68
+ # recompute-in-backward to bound activation memory.
69
+ scan_impl: matmul
70
+ mem_efficient_scan: true
71
+
72
+ moe:
73
+ enabled: true
74
+ expert_dim: 1024
75
+ num_routed_experts: 16
76
+ num_shared_experts: 2
77
+ num_experts_per_token: 4
78
+ routing_bias_update_speed: 0.001
79
+ score_func: sigmoid
80
+ sparsity_schedule: depth
81
+ router_z_loss_coef: 0.001
82
+ # Adaptive: scale bias-update speed by load imbalance.
83
+ adaptive_bias_speed: true
84
+ bias_speed_min_mult: 0.25
85
+ bias_speed_max_mult: 4.0
86
+ # Adaptive: per-token gap-confidence collapse to k=1.
87
+ adaptive_top_k: true
88
+ adaptive_top_k_gap_threshold: 0.10
89
+
90
+ reasoning:
91
+ enabled: true
92
+ num_latent_tokens: 4
93
+ max_recurrence: 2 # raised from 1 so ALR can actually re-execute
94
+ recurrence_entropy_threshold: 1.5
95
+ verifier_hidden: 128
96
+ verifier_dropout: 0.1
97
+ dual_stream: true
98
+ max_thinking_tokens: 128
99
+ # Adaptive: ALR halt threshold drifts to hit a 30% recurrence rate.
100
+ adaptive_threshold: true
101
+ target_recurrence_rate: 0.30
102
+ threshold_min: 0.05
103
+ threshold_max: 0.95
104
+ threshold_ema_alpha: 0.02
105
+
106
+ memory:
107
+ kv_cache_dtype: auto
108
+ paged_kv_block_size: 16
109
+ # Adaptive (memory-pressure) activation checkpointing β€” now correct with the
110
+ # stateful MoE/ALR paths (in-place updates deferred out of the forward, so
111
+ # recompute == forward). Tuned to only engage under genuine VRAM pressure
112
+ # (<2 GB free): a 110M model that fits stays at full speed, while a tighter
113
+ # fit transparently trades compute for memory instead of OOMing.
114
+ activation_checkpointing: adaptive
115
+ # Tuned for an 8 GB card: during training free VRAM is normally ~0.7-2 GB, so a
116
+ # high `free_high` (e.g. 2048) made the adaptive policy checkpoint ~50% almost
117
+ # always β€” paying the recompute tax even when the model fits uncheckpointed. With
118
+ # free_high=768 the policy stays at 0% in the normal regime (full speed) and only
119
+ # ramps recompute when genuinely near the edge (<768), full at <512; the VRAM
120
+ # guard (<450) shrinks the batch as the last resort.
121
+ activation_ckpt_free_low_mb: 512
122
+ activation_ckpt_free_high_mb: 768
123
+ offload_dormant_experts: false
124
+ offload_threshold: 0.01
125
+ weight_quant: none
126
+
127
+ brain:
128
+ enabled: false
129
+ num_cross_attention_layers: 2
130
+ top_k_memories: 4
131
+ embed_model: nomic-embed-text
132
+ embed_dim: 768
133
+ gbrain_home: null
134
+ ollama_base_url: http://localhost:11434
latest.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:024f576096e018886b73a8a4287bb873b9073aaafefd14e55e392be79a7633a6
3
+ size 1284657420
metadata.json ADDED
@@ -0,0 +1,7 @@
 
 
 
 
 
 
 
 
1
+ {
2
+ "creator": "FatStinkyPanda",
3
+ "developer": "Daniel A. Bissey",
4
+ "model": "FatStinkyPanda/Aether",
5
+ "project": "Anima",
6
+ "step": 90
7
+ }
tokenizer.json ADDED
The diff for this file is too large to render. See raw diff