File size: 28,003 Bytes
fc00151
5750544
 
 
fc00151
 
5750544
fc00151
5750544
fc00151
5750544
 
 
 
fc00151
5750544
fc00151
5750544
fc00151
5750544
 
 
 
fc00151
5750544
fc00151
5750544
 
fc00151
5750544
 
 
 
 
 
 
fc00151
5750544
 
fc00151
5750544
fc00151
5750544
fc00151
5750544
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
fc00151
 
 
5750544
 
 
 
fc00151
5750544
fc00151
2e2c561
 
5750544
fc00151
5750544
fc00151
5750544
fc00151
5750544
 
 
 
 
 
 
 
 
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
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
---
license: other
license_link: LICENSE
pipeline_tag: text-generation
library_name: transformers
---
# Instella✨: Fully Open Language Models with Stellar Performance

AMD is excited to announce Instella, a family of fully open state-of-the-art 3-billion-parameter language models (LMs) trained from scratch on AMD Instinct™ MI300X GPUs. Instella models outperform existing fully open models of similar sizes and achieve competitive performance compared to state-of-the-art open-weight models such as Llama-3.2-3B, Gemma-2-2B, and Qwen-2.5-3B, including their instruction-tuned counterparts.

<div align="center">
<img src="scaling_perf_instruct.png" style="object-fit: contain;"/>
<em><b>Figure 1:</b> Pareto frontier of pre-training tokens vs average performance for pre-trained and instruction-tuned models.</em>
</div>

By training Instella from scratch on Instinct MI300X GPUs, we highlight our hardware’s capability and scalability in handling demanding large-scale AI training workloads, offering a viable alternative in the AI hardware landscape. In line with the AMD commitment to open source, we are releasing all artifacts related to Instella models [here](#additional-resources), including the model weights, detailed training configurations, datasets, and code, enabling the AI community to collaborate, replicate, and innovate, thereby accelerating progress.

## Takeaways

- **Announcing Instella**, a series of 3 billion parameter language models developed by AMD, trained from scratch on 128 Instinct MI300X GPUs.
- **Instella models significantly outperform existing fully open LMs** (Figure 1) of comparable size, as well as bridge the gap between fully open and open weight models by achieving competitive performance compared state-of-the-art open weight models and their instruction-tuned counterparts.
- Fully open and accessible: **Fully open-source release of model weights, training hyperparameters, datasets, and code**, fostering innovation and collaboration within the AI community.  
- Supported by the AMD ROCm software stack, Instella employs efficient training techniques such as **FlashAttention-2, Torch Compile, and Fully Sharded Data Parallelism (FSDP)** with hybrid sharding to **scale model training over a large cluster.**

## Instella Models

In this release, we introduce the following Instella models:
<div align="center">

| Model  | Stage | Training Data (Tokens) | Description |
| :----: | :----: | :----: | :---- |
| [Instella-3B-Stage1](https://huggingface.co/amd/Instella-3B-Stage1)  | Pre-training (Stage 1) | 4.065 Trillion | First stage pre-training to develop proficiency in natural language. |
| [Instella-3B](https://huggingface.co/amd/Instella-3B)  | Pre-training (Stage 2) | 57.575 Billion | Second stage pre-training to further enhance problem solving capabilities. |
| [Instella-3B-SFT](https://huggingface.co/amd/Instella-3B-SFT)  | SFT | 8.902 Billion (x3 epochs) | Supervised Fine-tuning (SFT) to enable instruction-following capabilities. |
| [Instella-3B-Instruct](https://huggingface.co/amd/Instella-3B-instruct)  | DPO | 760 Million | Alignment to human preferences and strengthen chat capabilities with direct preference optimization (DPO). |
|  | **Total:** | **4.15 Trillion** |  |

<em><b>Table 1:</b> Instella models and training stages.</em>
</div>

The Instella models are text-only, autoregressive transformer-based LMs having 3 billion parameters. Architecture-wise, Instella is packed with 36 decoder layers, each having 32 attention heads. These models support a sequence length of up to 4,096 tokens and have a vocabulary size of ~50,000 tokens using the OLMo tokenizer. During both pre-training and fine-tuning, we utilized FlashAttention-2, Torch Compile, and bfloat16 mixed-precision training to reduce memory usage, leading to computational speedups and optimal resource utilization. To balance inter-node memory efficiency and intra-node communication overhead within our cluster, we employed fully sharded data parallelism (FSDP) with hybrid sharding, with model parameters, gradients, and optimizer states sharded within a node and replicated across the nodes.

Our training pipeline is based on the open-sourced OLMo codebase, adapted, and optimized for our hardware and model architecture. For pre-training we used a total of 128 Instinct MI300X GPUs distributed across 16 nodes with each node having 8x Instinct MI300X GPUs. We evaluated our models and baselines using standard tasks from [OLMES](https://github.com/allenai/olmes/tree/main), [FastChat MT-Bench](https://github.com/lm-sys/FastChat/blob/main/fastchat/llm_judge/README.md), and [Alpaca](https://github.com/tatsu-lab/alpaca_eval/tree/main). For more details about the architecture, training pipeline/hyperparameters and evaluation results, please refer to our [Blog](https://rocm.blogs.amd.com/artificial-intelligence/introducing-instella-3B/README.html), [Hugging Face model card](https://huggingface.co/amd/Instella-3B) and [Github repository](https://github.com/AMD-AIG-AIMA/Instella).

## Training Pipeline

The training of the Instella models comprised of four stages, where each stage incrementally enhanced the model’s capabilities from fundamental natural language understanding to instruction following and alignment towards human preferences.

### Model Summary

| Stage  | Model | Training Tokens | Layers | Attention Heads | Model Hidden Size | MLP Hidden Size | Context Length | RoPE Theta |
| :---- | :---- | :---- | :---- | :---- | :---- | :---- | :---- | :---- |
| Pre-training  | Instella-3B-stage1 | 4.065T | 36 | 32 | 2560 | 13824 | 4096 | 10,000 | 
| Pre-training  | Instella-3B | 57.575B | 36 | 32 | 2560 | 13824 | 4096 | 10,000 | 
| SFT  | Instella-3B-SFT | 8.902B (x3) | 36 | 32 | 2560 | 13824 | 4096 | 10,000 | 
| SFT+DPO  | Instella-3B-instruct | 760M | 36 | 32 | 2560 | 13824 | 4096 | 10,000 | 

### Hyparparameter

|Stage | Optimizer | Peak LR | LR Scheduler | Alpha F | Warmup (steps) | Weight Decay | Decay Norm & Bias | Decay Embedding | Batch Size (Tokens) | Epochs |
|-----:|-----:|-----:|-----:|-----:|-----:|-----:|-----:|-----:|-----:|-----:|
| Pretraining Stage 1 | AdamW(0.9,0.95) | 4.0e-4 | cosine_with_warmup | 0.1 | 2000 | 0.1 | True | True | 4M | 1 |
| Pretraining Stage 2 | AdamW(0.9,0.95) | 4.0e-5 | cosine_with_warmup | 0.0 | 0 | 0.1 | True | True | 4M | 1 |
| SFT | AdamW(0.9,0.95) | 1.0e-5 | linear_with_warmup | 0.001 | 500 | 0.1 | True | True | 0.5M | 3 |
| DPO  | AdamW(0.9,0.95) | 5.0e-7 | linear | -- | 10% | 0.1 | -- | -- | 0.25M | 1 |

## Getting Started

### Installation

First, install [PyTorch](https://pytorch.org) according to the instructions specific to your operating system. For AMD GPUs, you can also start with a [rocm/pytorch](https://hub.docker.com/r/rocm/pytorch/tags?name=pytorch) docker. 

To install from source (recommended for training/fine-tuning) run:

```bash
git clone https://github.com/AMD-AIG-AIMA/Instella.git
cd Instella
# install Flash-Attention on MI300X
GPU_ARCH=gfx942 MAX_JOBS=$(nproc) pip install git+https://github.com/Dao-AILab/flash-attention.git -v
# install other dependencies
pip install -e .[all]
```

### Example Usage

```python
from transformers import AutoModelForCausalLM, AutoTokenizer
checkpoint = "amd/Instella-3B-Instruct"

tokenizer = AutoTokenizer.from_pretrained(checkpoint, trust_remote_code=True)
model = AutoModelForCausalLM.from_pretrained(checkpoint, device_map="auto", trust_remote_code=True)

prompt = [{"role": "user", "content": "What are the benefits of open-source AI research?"}]
inputs = tokenizer.apply_chat_template(
    prompt,
    add_generation_prompt=True,
    return_tensors='pt'
)

tokens = model.generate(
    inputs.to(model.device),
    max_new_tokens=1024,
    temperature=0.8,
    do_sample=True
)

print(tokenizer.decode(tokens[0], skip_special_tokens=False))
```

### Chat in TRL
You can also use the TRL CLI to chat with the model from the terminal:
```bash
pip install trl
trl chat --model_name_or_path amd/Instella-3B-Instruct --trust_remote_code --max_new_tokens 1024

# <root>:
# which is bigger 9.8 or 9.11?

# <amd/Instella-3B-Instruct>:
# 9.8 is bigger than 9.11. The difference between the two numbers is 0.69 (9.8 - 9.11 = 0.69), which indicates that 9.8 is 0.69 units larger than 9.11.  
```

## Results

### Pre-training

<div class="table-wrapper" align="center">
  <table>
    <thead>
      <tr>
        <th>Models</th>
        <th>Size</th>
        <th>Training Tokens</th>
        <th>Avg</th>
        <th>ARC Challenge</th>
        <th>ARC Easy</th>
        <th>BoolQ</th>
        <th>Hellaswag</th>
        <th>PiQA</th>
        <th>SciQ</th>
        <th>Winnograde</th>
        <th>OpenBookQA</th>
        <th>MMLU</th>
        <th>BBH (3-shot)</th>
        <th>GSM8k (8-shot)</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <th colspan="15">Open Weight Models</th>
      </tr>
      <tr>
        <td>Gemma-2-2B</td>
        <td>2.61B</td>
        <td>~2T</td>
        <td>59.34</td>
        <td>39.46</td>
        <td>59.30</td>
        <td>74.50</td>
        <td>70.50</td>
        <td>76.40</td>
        <td><strong>96.60</strong></td>
        <td>69.80</td>
        <td>44.80</td>
        <td>53.28</td>
        <td>40.75</td>
        <td>27.37</td>
      </tr>
      <tr>
        <td>Llama-3.2-3B</td>
        <td>3.21B</td>
        <td>~9T</td>
        <td>62.51</td>
        <td>47.16</td>
        <td>64.91</td>
        <td>74.80</td>
        <td>73.10</td>
        <td>75.90</td>
        <td>95.30</td>
        <td>70.30</td>
        <td>51.20</td>
        <td>57.81</td>
        <td><ins>47.00</ins></td>
        <td>30.10</td>
      </tr>
      <tr>
        <td>Qwen2.5-3B</td>
        <td>3.09B</td>
        <td>~18T</td>
        <td><strong>68.30</strong></td>
        <td>51.51</td>
        <td>67.19</td>
        <td><strong>79.10</strong></td>
        <td>72.10</td>
        <td>77.40</td>
        <td>95.50</td>
        <td>69.30</td>
        <td><ins>51.40</ins></td>
        <td><strong>67.22</strong></td>
        <td><strong>56.69</strong></td>
        <td><strong>63.84</strong></td>
      </tr>
      <tr>
        <th colspan="15">Fully Open Models</th>
      </tr>
      <tr>
        <td>Pythia-2.8b</td>
        <td>2.91B</td>
        <td>300B</td>
        <td>49.83</td>
        <td>40.47</td>
        <td>60.70</td>
        <td>64.80</td>
        <td>60.10</td>
        <td>72.50</td>
        <td>89.70</td>
        <td>60.80</td>
        <td>42.60</td>
        <td>26.09</td>
        <td>27.69</td>
        <td>2.73</td>
      </tr>
      <tr>
        <td>GPTNeo-2.7B</td>
        <td>2.72B</td>
        <td>~420B</td>
        <td>47.96</td>
        <td>38.46</td>
        <td>54.56</td>
        <td>62.70</td>
        <td>55.20</td>
        <td>70.80</td>
        <td>88.00</td>
        <td>58.30</td>
        <td>40.80</td>
        <td>27.83</td>
        <td>27.25</td>
        <td>3.71</td>
      </tr>
      <tr>
        <td>OpenELM-3B</td>
        <td>3.04B</td>
        <td>~1.5T</td>
        <td>52.28</td>
        <td>37.46</td>
        <td>58.42</td>
        <td>68.60</td>
        <td>71.70</td>
        <td>75.60</td>
        <td>92.50</td>
        <td>65.40</td>
        <td>46.40</td>
        <td>26.69</td>
        <td>29.40</td>
        <td>2.96</td>
      </tr>
      <tr>
        <td>StableLM-3B-4E1T</td>
        <td>2.8B</td>
        <td>~4T</td>
        <td>58.51</td>
        <td>44.82</td>
        <td>67.02</td>
        <td>75.40</td>
        <td><ins>74.20</ins></td>
        <td><strong>78.40</strong></td>
        <td>93.40</td>
        <td>68.40</td>
        <td>48.60</td>
        <td>45.19</td>
        <td>37.33</td>
        <td>10.84</td>
      </tr>
      <tr>
        <td><strong><a href="https://huggingface.co/amd/Instella-3B-Stage1">Instella-3B-Stage1</a></strong></td>
        <td>3.11B</td>
        <td>~4T</td>
        <td>61.33</td>
        <td><strong>53.85</strong></td>
        <td><strong>73.16</strong></td>
        <td><ins>78.70</ins></td>
        <td><ins>74.20</ins></td>
        <td>77.50</td>
        <td>94.90</td>
        <td><ins>71.20</ins></td>
        <td><ins>51.40</ins></td>
        <td>54.69</td>
        <td>34.30</td>
        <td>10.77</td>
      </tr>
      <tr>
        <td><strong><a href="https://huggingface.co/amd/Instella-3B">Instella-3B</a></strong></td>
        <td>3.11B</td>
        <td>~4T+60B</td>
        <td><ins>66.59</ins></td>
        <td><ins>52.84</ins></td>
        <td><ins>70.53</ins></td>
        <td>76.50</td>
        <td><strong>75.00</strong></td>
        <td><ins>77.80</ins></td>
        <td><ins>96.40</ins></td>
        <td><strong>73.10</strong></td>
        <td><strong>52.40</strong></td>
        <td><ins>58.31</ins></td>
        <td>39.74</td>
        <td><ins>59.82</ins></td>
      </tr>
    </tbody>
  </table>
    <em><strong>Table 2:</strong> Pre-trained model performance on standard benchmarks. Here <strong>Bold</strong> represents the best performance, and <ins>Underscore</ins> represents the second best performance.</em>
</div>

- Both Instella-3B-Stage1 & Instella-3B models outperform all the other fully open models over all the benchmarks individually (except PIQA). **Our final pre-trained checkpoint Instella-3B outperforms the existing top performant fully open pre-trained models by a lead of ⬆️8.08% on average**, with significant improvements in `ARC Challenge [+8.02%], ARC Easy [+3.51%], Winnograde [+4.7%], OpenBookQA [+3.88%], MMLU [+13.12%] and ️GSM8K [+48.98%]`.  
- **Second stage pre-training elevated the overall average performance relative to stage-1 by ⬆️5.26%**, substantially narrowing the performance gap between Instella-3B model vs the closed-source models, and **outperforming Llama-3.2-3B by ⬆️4.08% on average** (`+5.69% [ARC Challenge], +5.61% [ARC Easy], and +29.72% [GSM8k]`), **Gemma-2-2B by ⬆️7.25% on average** (`+13.38% [ARC Challenge], +11.23% [ARC Easy], +4.5% [Hellaswag], +7.6% [OpenBookQA], +5.03% [MMLU], and +32.45% [GSM8k]`), and is **competitive with Qwen-2.5-3B** on the majority of the benchmarks.  
- The multi-stage pre-training with diverse and high-quality data mix significantly enhanced Instella-3B’s capabilities, establishing it as a competitive and open alternative in the landscape of comparable size language models.

### Instruction-tuning Results

<div class="table-wrapper" align="center">
  <table>
    <thead>
      <tr>
        <th>Models</th>
        <th>Size</th>
        <th>Training Tokens</th>
        <th>Avg</th>
        <th>MMLU</th>
        <th>TruthfulQA</th>
        <th>BBH</th>
        <th>GPQA</th>
        <th>GSM8K</th>
        <th>Minerva MATH</th>
        <th>IFEval</th>
        <th>AlpacaEval 2</th>
        <th>MT-Bench</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <th colspan="13">Open Weight Models</th>
      </tr>
        <tr>
        <td>Gemma-2-2B-Instruct</td>
        <td>2.61B</td>
        <td>~2T</td>
        <td>39.04</td>
        <td>58.35</td>
        <td><ins>55.76</ins></td>
        <td>42.96</td>
        <td>25.22</td>
        <td>53.45</td>
        <td>22.48</td>
        <td>55.64</td>
        <td><strong>29.41</strong></td>
        <td><strong>8.07</strong></td>
      </tr>
      <tr>
        <td>Llama-3.2-3B-Instruct</td>
        <td>3.21B</td>
        <td>~9T</td>
        <td><ins>47.53</ins></td>
        <td><ins>61.50</ins></td>
        <td>50.23</td>
        <td><strong>61.50</strong></td>
        <td><ins>29.69</ins></td>
        <td><strong>77.03</strong></td>
        <td><ins>46.00</ins></td>
        <td><strong>75.42</strong></td>
        <td>19.31</td>
        <td>7.13</td>
      </tr>
      <tr>
        <td>Qwen2.5-3B-Instruct</td>
        <td>3.09B</td>
        <td>~18T</td>
        <td><strong>48.72</strong></td>
        <td><strong>66.90</strong></td>
        <td><strong>57.16</strong></td>
        <td><ins>57.29</ins></td>
        <td>28.13</td>
        <td><ins>75.97</ins></td>
        <td><strong>60.42</strong></td>
        <td>62.48</td>
        <td><ins>22.12</ins></td>
        <td><ins>8.00</ins></td>
      </tr>
      <tr>
        <th colspan="13">Fully Open Models</th>
      </tr>
      <tr>
        <td>StableLM-zephyr-3B</td>
        <td>2.8B</td>
        <td>4T</td>
        <td>30.50</td>
        <td>45.10</td>
        <td>47.90</td>
        <td>39.32</td>
        <td>25.67</td>
        <td>58.38</td>
        <td>10.38</td>
        <td>34.20</td>
        <td>7.51</td>
        <td>6.04</td>
      </tr>
      <tr>
        <td>OpenELM-3B-Instruct</td>
        <td>3.04B</td>
        <td>~1.5T</td>
        <td>14.11</td>
        <td>27.36</td>
        <td>38.08</td>
        <td>24.24</td>
        <td>18.08</td>
        <td>1.59</td>
        <td>0.38</td>
        <td>16.08</td>
        <td>0.21</td>
        <td>1.00</td>
      </tr>
      <tr>
        <td><a href="https://huggingface.co/amd/Instella-3B-SFT">Instella-3B-SFT</a></td>
        <td>3.11B</td>
        <td>~4T</td>
        <td>42.05</td>
        <td>58.76</td>
        <td>52.49</td>
        <td>46.00</td>
        <td>28.13</td>
        <td>71.72</td>
        <td>40.50</td>
        <td>66.17</td>
        <td>7.58</td>
        <td>7.07</td>
      </tr>
      <tr>
        <td><a href="https://huggingface.co/amd/Instella-3B-Instruct">Instella-3B-Instruct</a></td>
        <td>3.11B</td>
        <td>~4T</td>
        <td>44.87</td>
        <td>58.90</td>
        <td>55.47</td>
        <td>46.75</td>
        <td><strong>30.13</strong></td>
        <td>73.92</td>
        <td>42.46</td>
        <td><ins>71.35</ins></td>
        <td>17.59</td>
        <td>7.23</td>
      </tr>
    </tbody>
  </table>
    <em><strong>Table 2:</strong> Instruct model performance on standard benchmarks. Here <strong>Bold</strong> represents the best performance, and <ins>Underscore</ins> represents the second best performance.</em>
</div>

- **Instella-3B-Instruct model consistently outperforms other fully open models across all evaluated benchmarks with a significant average score lead of ⬆️ 14.37%** w.r.t the next top performing fully open instruction-tuned models. With substantial margins across all the chat benchmarks (`+13% [MMLU], 7.57% [TruthfulQA], 7.43% [BBH], +4.46% [GPQA], +37.15 [IFEval], 10.08% [Alpaca 2], and 1.2% [MT-Bench]`).  
- **Instella-3B-Instruct narrows the performance gap with leading open-weight models.** Instella-3B-Instruct performs **on par with or slightly surpasses existing state-of-the-art open weight instruction-tuned models** such as Llama-3.2-3B-Instruct (`+5.24% [TruthfulQA], 0.45% [GPQA], and +0.1% [MT-Bench]`), and Qwen2.5-3B-Instruct (`+2.01% [GPQA] and +8.87% [IFEval]`), while significantly outperforming Gemma-2-2B-Instruct with an average score lead of ⬆️5.83% (`+0.55% [MMLU], +3.79 [BBH], +4.91 [GPQA], +20.47 [GSM8k], +19.98 [Minerva MATH], and +15.17% [IFEval]`).
- **Overall, Instella-3B-Instruct excels in instruction following tasks and multi-turn QA tasks like TruthfulQA, GPQA, IFEval and MT-Bench**, while being highly competitive compared to existing state-of-the-art open weight models on other knowledge recall and math benchmarks, while being trained on significantly fewer training tokens.

## Training Data

| Stage  | Model | Dataset | License | 
| :---- | :---- | :---- | :---- |
| Pre-training Stage 1  | Instella-3B-stage1 | [https://huggingface.co/datasets/allenai/OLMoE-mix-0924](https://huggingface.co/datasets/allenai/OLMoE-mix-0924) | ODC-BY-1.0 |
| Pre-training Stage 2  | Instella-3B | [https://huggingface.co/datasets/allenai/tulu-3-sft-mixture](https://huggingface.co/datasets/allenai/tulu-3-sft-mixture) | ODC-BY-1.0 |
| Pre-training Stage 2  | Instella-3B | [https://huggingface.co/datasets/allenai/dolmino-mix-1124](https://huggingface.co/datasets/allenai/dolmino-mix-1124) | ODC-BY-1.0 |
| Pre-training Stage 2  | Instella-3B | [https://huggingface.co/datasets/teknium/OpenHermes-2.5](https://huggingface.co/datasets/teknium/OpenHermes-2.5) | Refer source materials |
| Pre-training Stage 2  | Instella-3B | [https://huggingface.co/datasets/TIGER-Lab/WebinstructSub](https://huggingface.co/datasets/TIGER-Lab/WebinstructSub) | Apache-2.0 |
| Pre-training Stage 2  | Instella-3B | [https://huggingface.co/datasets/m-a-p/Code-Feedback](https://huggingface.co/datasets/m-a-p/Code-Feedback) | Apache-2.0 |
| Pre-training Stage 2  | Instella-3B | [https://huggingface.co/datasets/HuggingFaceH4/ultrachat_200k](https://huggingface.co/datasets/HuggingFaceH4/ultrachat_200k) | MIT |
| Pre-training Stage 2  | Instella-3B | [https://huggingface.co/datasets/HuggingFaceTB/smollm-corpus/viewer/python-edu](https://huggingface.co/datasets/HuggingFaceTB/smollm-corpus/viewer/python-edu) | ODC-BY-1.0 |
| Pre-training Stage 2  | Instella-3B | [https://github.com/google-deepmind/mathematics_dataset](https://github.com/google-deepmind/mathematics_dataset) | Apache-2.0 |
| Pre-training Stage 2  | Instella-3B | [https://huggingface.co/datasets/amd/Instella-GSM8K-synthetic](https://huggingface.co/datasets/amd/Instella-GSM8K-synthetic) | [LICENSE](https://huggingface.co/datasets/amd/Instella-GSM8K-synthetic/blob/main/LICENSE) |
| SFT  | Instella-3B-SFT | [https://huggingface.co/datasets/nvidia/OpenMathinstruct-2](https://huggingface.co/datasets/nvidia/OpenMathinstruct-2) | CC-BY-4.0 |
| SFT  | Instella-3B-SFT | [https://huggingface.co/datasets/cais/mmlu](https://huggingface.co/datasets/cais/mmlu) | MIT |
| SFT  | Instella-3B-SFT | [https://huggingface.co/datasets/HuggingFaceTB/smoltalk](https://huggingface.co/datasets/HuggingFaceTB/smoltalk) | Apache-2.0 |
| SFT  | Instella-3B-SFT | [https://huggingface.co/datasets/GAIR/o1-journey](https://huggingface.co/datasets/GAIR/o1-journey) | Refer source materials |
| SFT  | Instella-3B-SFT | [https://huggingface.co/datasets/allenai/tulu-3-sft-personas-instruction-following (subset of Tulu3)](https://huggingface.co/datasets/allenai/tulu-3-sft-personas-instruction-following) | ODC-BY-1.0 |
| DPO  | Instella-3B-instruct | [https://huggingface.co/datasets/allenai/olmo-2-1124-7b-preference-mix](https://huggingface.co/datasets/allenai/olmo-2-1124-7b-preference-mix) | ODC-BY-1.0 |

> [!NOTE]
> Further information concerning the training datasets, including applicable licensing terms and use restrictions, may be located at the linked source location.

## Conclusion

The release of the Instella family of models represents a significant stride in advancing open-source AI and demonstrating the capabilities of AMD hardware in large-scale language model training. The 3 billion parameter models from Instella family significantly outperform present fully open comparable size models in key benchmarks while also being competitive to comparable open-weight models, which we attribute to the high-quality data-mix selection, multi-stage training pipeline, and the use of high-performance Instinct MI300X GPUs for large scale training.

By fully open sourcing the Instella models, including weights, training configurations, datasets, and code, we aim to foster innovation and collaboration within the AI community. We believe that transparency, reproducibility and accessibility are key drivers of progress in AI research and development. We invite developers, researchers, and AI enthusiasts to explore Instella, contribute to its ongoing improvement, and join us in pushing the boundaries of what is possible with language models.

We will continue enhancing the models across multiple dimensions, including context length, reasoning ability, and multimodal capabilities. Additionally, we will scale up both the model and dataset while exploring diverse architectural approaches. Keep your eyes peeled for more exciting blogs on the Instella LMs family, its features and capabilities!

## Additional Resources

### Hugging Face Model Cards

- Pre-trained models:
  - Instella-3B-Stage1: [amd/Instella-3B-Stage1](https://huggingface.co/amd/Instella-3B-Stage1), First stage pre-training checkpoint.
  - Instella-3B: [amd/Instella-3B](https://huggingface.co/amd/Instella-3B), Final pre-training checkpoint.
- Instruction-tuned models:
  - Instella-3B-SFT: [amd/Instella-3B-SFT](https://huggingface.co/amd/Instella-3B-SFT), Supervised fine-tuned checkpoint.
  - Instella-3B-Instruct: [amd/Instella-3B-Instruct](https://huggingface.co/amd/Instella-3B-Instruct), Final Instruction-tuned checkpoint.

### Datasets

Second stage pre-training GSM8k synthetic dataset: [amd/Instella-GSM8K-synthetic](https://huggingface.co/datasets/amd/Instella-GSM8K-synthetic)

- The dataset consists of two splits: `train` and `train_119K`.
- For Instella-3B model second stage pre-training we used the `train_119K` split, which is a subset of the larger `train` split.

### Code

- Github: [https://github.com/AMD-AIG-AIMA/Instella](https://github.com/AMD-AIG-AIMA/Instella)

Please refer to the following blogs to get started with using these techniques on AMD GPUs:

- [PyTorch Fully Sharded Data Parallel (FSDP) on AMD GPUs with ROCm™](https://rocm.blogs.amd.com/artificial-intelligence/fsdp-training-pytorch/README.html)
- [Accelerating Large Language Models with Flash Attention on AMD GPUs](https://rocm.blogs.amd.com/artificial-intelligence/flash-attention/README.html)
- [Accelerate PyTorch Models using torch.compile on AMD GPUs with ROCm™](https://rocm.blogs.amd.com/artificial-intelligence/torch_compile/README.html)
- [Introducing the First AMD 1B Language Models: AMD OLMo](https://www.amd.com/en/developer/resources/technical-articles/introducing-the-first-amd-1b-language-model.html)

## Bias, Risks, and Limitations

- The models are being released for research purposes only and are not intended for use cases that require high levels of factuality, safety-critical situations, health, or medical applications, generating false information, facilitating toxic conversations.
- Model checkpoints are made accessible without any safety promises. It is crucial for users to conduct comprehensive evaluations and implement safety filtering mechanisms as per their respective use cases.
- It may be possible to prompt the model to generate content that may be factually inaccurate, harmful, violent, toxic, biased, or otherwise objectionable. Such content may also get generated by prompts that did not intend to produce output as such. Users are thus requested to be aware of this and exercise caution and responsible thinking when using the model.
- Multi-lingual abilities of the models have not been tested and thus may misunderstand and generate erroneous responses across different languages.

## License

- The Instella-3B models are licensed for academic and research purposes under a ResearchRAIL license. 
- The [amd/Instella-GSM8K-synthetic](https://huggingface.co/datasets/amd/Instella-GSM8K-synthetic) dataset used in second stage pre-training is built with Qwen2.5-72B-Instruct, and is licensed for academic and research purposes under a ResearchRAIL license. Refer to the [LICENSE](https://huggingface.co/datasets/amd/Instella-GSM8K-synthetic/blob/main/LICENSE) and [NOTICES](https://huggingface.co/datasets/amd/Instella-GSM8K-synthetic/blob/main/NOTICES) in the [amd/Instella-GSM8K-synthetic](https://huggingface.co/datasets/amd/Instella-GSM8K-synthetic) dataset card files for more information.
- Refer to the [LICENSE](https://huggingface.co/amd/Instella-3B/blob/main/LICENSE) and [NOTICES](https://huggingface.co/amd/Instella-3B/blob/main/NOTICES) files for more information.

## Citations

Feel free to cite our Instella-3B models:

```text
@misc{Instella,
    title = {Instella: Fully Open Language Models with Stellar Performance},
    url = {https://huggingface.co/amd/Instella-3B},
    author = {Jiang Liu, Jialian Wu, Xiaodong Yu, Prakamya Mishra, Sudhanshu Ranjan, Zicheng Liu, Chaitanya Manem, Yusheng Su, Pratik Prabhanjan Brahma, Gowtham Ramesh, Ximeng Sun, Ze Wang, Emad Barsoum},
    month = {March},
    year = {2025}
}
```