File size: 9,630 Bytes
c8de259
 
 
 
 
 
 
 
 
 
 
b3882f4
 
 
1122217
d655fbd
c8de259
 
b3882f4
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
780e73f
 
 
 
 
 
 
 
 
 
b3882f4
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
780e73f
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
---
language: en
tags:
- causal-lm
- gqa
- qk-norm
- rope
- swiglu
- refresh-gate
- rose-x1
license: apache-2.0
pipeline_tag: text-generation
---

<img src="Banner.png" width="1300"/>

# Rose-Mini

## The First Bloom

Every model teaches you something.
Some teach optimization.
Some teach patience.
Some teach you that a single misplaced line of code can quietly destroy months of work.

My previous projects taught me all three.

**Archaea** taught me how to train language models from scratch.

The **Ant** series taught me that lowering loss does not necessarily mean a model has learned anything useful.

**Exp-1** humbled me by exposing a catastrophic implementation bug hidden inside my Transformer blocks.

**Archaea-74M-V1.1** reminded me that refining a good model is sometimes more valuable than building a new one.

Rose-Mini begins where those projects ended.
Not with another Transformer.
Not with another checkpoint.
But with a question.

> **What if I stopped modifying existing architectures and started building one of my own?**

That question eventually became **Rose X1**.
And Rose-Mini is the first public model built upon it.

---

# A Different Kind of Project

Unlike my previous releases, Rose-Mini is not simply another pretrained language model.
It represents my first successful custom architecture.
For a long time I had wanted to move beyond reproducing existing Transformer implementations.
Training models is fun.
Understanding them is even more fun.
Building one yourself...
That is where the real adventure begins.
Rose X1 became my playground for exploring architectural ideas while still remaining practical enough to train on consumer hardware.
Fortunately...
The architecture worked.

---

# Acknowledgements

Before talking about Rose X1, I want to thank **Datdanboi25**.
The **TX4** architecture was one of the first compact language model designs that genuinely made me stop scrolling and start reading code.
Rather than simply scaling parameters, TX4 explored interesting architectural ideas for making smaller language models more capable.
Rose X1 is **inspired by** many of those ideas while exploring its own design decisions and implementation.
It is **not** a reproduction of TX4.
It is my own architectural exploration built upon lessons learned from previous projects and inspired by the excellent work shared by the community.
As an independent developer, openly published research and implementations are invaluable learning resources.

So...

Thank you, **Datdanboi25**.
Without builders willing to share ideas, projects like Rose probably would never have existed.

---

# Meet Rose X1

Rose X1 is a lightweight decoder-only architecture designed around one simple philosophy:

> **Extract more capability from fewer parameters.**

Instead of chasing larger parameter counts, Rose focuses on architectural efficiency and better utilization of compute.
The architecture incorporates several modern design ideas including:

* Grouped Query Attention (GQA)
* RMSNorm
* QK Normalization
* Refresh Gates
* Efficient decoder-only design
* BF16 training

The goal was never to reinvent the Transformer.
The goal was to explore it.

## Architecture graph

<a href="https://hfviewer.com/GODELEV/Rose-Mini?utm_source=huggingface&amp;utm_medium=embedded_model_card&amp;utm_campaign=GODELEV_Rose-Mini_card" target="_blank" rel="noopener">
  <img
    src="https://hfviewer.com/api/card.svg?source=GODELEV%2FRose-Mini&amp;granularity=0"
    alt="Architecture graph for GODELEV/Rose-Mini. Open in hfviewer"
    width="100%"
  />
</a>

---

# The Four Hour Battle

Designing an architecture turned out to be easier than convincing Hugging Face that it actually existed.

Training was straightforward.

Writing the custom Hugging Face implementation...

That was another story.

Since Rose X1 is a custom architecture, I had to implement everything required for Hugging Face compatibility.

Configuration classes.

Model classes.

Registration.

Auto mapping.

Generation support.

Loading.

Saving.

Everything.

I spent nearly **four hours** fighting the modeling file.

Every time I fixed one error...

Python politely introduced two more.

Even AI models tried to help.

They certainly made excellent suggestions.

Unfortunately, they underestimated one critical variable.

**Me.**

I have a remarkable talent for introducing new bugs while fixing old ones.

Some people have green fingers.

Some have sticky fingers.

I have **buggy fingers**.

Eventually...

The architecture loaded successfully.

The checkpoints loaded.

Generation worked.

`AutoModelForCausalLM.from_pretrained()` finally stopped complaining.

That tiny success was honestly one of the most satisfying moments of the entire project.

---

# Model Overview

| Property         | Value          |
| ---------------- | -------------- |
| Model            | Rose-Mini      |
| Architecture     | Rose X1        |
| Parameters       | 49.443 Million |
| Layers           | 14             |
| Hidden Size      | 512            |
| Attention Heads  | 8              |
| KV Heads         | 2              |
| QK Normalization | Enabled        |
| Refresh Gates    | Layers 4 & 9   |
| Training Tokens  | 12,206,861,568 |
| Optimizer        | Muon AdamW     |

---

# Training

Rose-Mini was trained on over **12.2 billion tokens**, representing my largest pretraining run so far.
Rather than increasing parameter count, I chose to expose a compact model to significantly more data.
Training small language models is an interesting balancing act.
Too few tokens...
The model memorizes very little.
Too many...
You begin wondering whether your SSD has developed feelings. #wirtten by Chat Gpt
Fortunately, both survived.

---

# Comparing My Models

One thing I enjoy about independent research is watching projects evolve over time.
Each model solved a different problem.

| Model            | Parameters |             Tokens | Architecture            | Purpose                               |
| ---------------- | ---------: | -----------------: | ----------------------- | ------------------------------------- |
| Archaea-74M      |        74M |              1.23B | LLaMA-style Transformer | First successful pretrained model     |
| Archaea-74M-V1.1 |        74M | Continued Training | LLaMA-style Transformer | Refinement and benchmark improvements |
| **Rose-Mini**    |  **49.4M** |          **12.2B** | **Rose X1**             | First custom architecture             |

Rose-Mini contains roughly **33% fewer parameters** than Archaea-74M.
Despite that, it demonstrates that architectural experimentation can remain competitive while dramatically reducing parameter count.
For me, Rose-Mini is less about replacing Archaea.
It is about exploring a different path.

---

# Benchmark Highlights

Rose-Mini demonstrates encouraging performance for a model of its size.

| Benchmark                     |           Score |
| ----------------------------- | --------------: |
| **BananaMind Base Bench 1.1** | **1037.37 Elo** |
| **ArithMark-2.0**             |      **29.52%** |
| **HellaSwag**                 |      **28.95%** |
| **PIQA**                      |      **58.54%** |
| **ARC-Easy**                  |      **36.62%** |
| **ARC-Challenge**             |      **24.32%** |

The BananaMind Base Bench result crossing **1000 Elo** was particularly satisfying.
Watching a custom architecture compete after weeks of implementation work is an incredibly rewarding experience.

---

# Performance Compared to Archaea

Rose-Mini was never intended to be a direct replacement for Archaea.
Both models were built with different objectives.

| Category            | Archaea-74M |   Archaea-74M-V1.1 |       Rose-Mini |
| ------------------- | ----------: | -----------------: | --------------: |
| Parameters          |         74M |                74M |       **49.4M** |
| Training Tokens     |       1.23B | Continued Training |       **12.2B** |
| Architecture        | LLaMA-style |        LLaMA-style |         Rose X1 |
| Custom Architecture |          No |                 No |         **Yes** |
| BananaMind          |           — |                936 | **1037.37 Elo** |
| ArithMark-2.0       |      29.30% |         **37.37%** |      **29.52%** |

---

# Why Rose?

The answer is simple.

Curiosity.

Training another standard Transformer would certainly have been easier.

It also would have been considerably less interesting.

Rose exists because experimentation is how progress happens.

Sometimes the experiment works.

Sometimes it becomes Exp-1.

Fortunately...

This one worked.

---

# Current Limitations

Rose-Mini is still a relatively small language model.

Like every compact model, it has limitations.

* Complex reasoning remains challenging.
* Long-context understanding can be improved.
* Factual consistency still has room for growth.
* Instruction following could be further refined.

None of these are surprising.

They're simply opportunities for the next version.

---

# Future Work

Rose-Mini is only the beginning of the Rose family.
Development is already underway for:

## Rose-Medium

The goal of Rose-Medium is not simply to increase parameter count.

It is to continue exploring the Rose X1 architecture at a larger scale while preserving the design philosophy that made Rose-Mini successful.

Better architecture.

Better training.

Better models.

Hopefully fewer bugs.

Although I refuse to make any promises regarding that last point.

---

# Final Thoughts

Thank you for checking out Rose-Mini.

I hope you enjoy experimenting with it as much as I enjoyed building it.