Davide Palma (ElDavo) commited on
Commit
ccc5b7e
·
unverified ·
1 Parent(s): 8f80569
Files changed (11) hide show
  1. .gitattributes +2 -0
  2. README.md +176 -1
  3. README.txt +11 -0
  4. bpe.model +3 -0
  5. bpe.vocab +0 -0
  6. config.json +20 -0
  7. emma5.onnx +3 -0
  8. emma5.onnx.data +3 -0
  9. emma5_full_config.json +59 -0
  10. tokenizer.model +1 -0
  11. tokenizer_config.json +8 -0
.gitattributes CHANGED
@@ -3,6 +3,7 @@
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
@@ -33,3 +34,4 @@ saved_model/**/* 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
 
 
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
+ *.data filter=lfs diff=lfs merge=lfs -text
7
  *.ftz filter=lfs diff=lfs merge=lfs -text
8
  *.gz filter=lfs diff=lfs merge=lfs -text
9
  *.h5 filter=lfs diff=lfs merge=lfs -text
 
34
  *.zip filter=lfs diff=lfs merge=lfs -text
35
  *.zst filter=lfs diff=lfs merge=lfs -text
36
  *tfevents* filter=lfs diff=lfs merge=lfs -text
37
+ emma5.onnx.data filter=lfs diff=lfs merge=lfs -text
README.md CHANGED
@@ -1,3 +1,178 @@
1
  ---
2
- license: creativeml-openrail-m
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3
  ---
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  ---
2
+ license: openrail
3
+ authors:
4
+ - Egomnia S.p.A.
5
+ language:
6
+ - it
7
+ tags:
8
+ - llm
9
+ - italian
10
+ - gpt
11
+ - onnx
12
+ - text-generation
13
+ - enterprise
14
+ - swiGLU
15
+ - gqa
16
+ - int8
17
+ library_name: onnxruntime
18
+ pipeline_tag: text-generation
19
+ datasets:
20
+ - custom-mixture
21
  ---
22
+
23
+ # 🇮🇹 Emma-5 (ONNX)
24
+
25
+ ## Preamble
26
+
27
+ This model has been reuploaded for archiving purposes.
28
+ I'm not affiliated in anyway with Egomnia and its guy.
29
+ Unmodified readme below.
30
+
31
+ ## Overview
32
+
33
+ **Emma-5** è un Large Language Model decoder-only sperimentale sviluppato da **Egomnia S.p.A.**, progettato per lingua italiana.
34
+
35
+ Sito ufficiale: https://emma.egomnia.com
36
+
37
+ Il modello è pensato per:
38
+ - comprensione contestuale moderata
39
+ - generazione di contenuti di media complessità
40
+
41
+ Non è progettato per applicazioni safety-critical o reasoning avanzato multi-step.
42
+
43
+ ## Architettura
44
+
45
+ - Tipo: GPT decoder-only
46
+ - Transformer blocks: 28
47
+ - Hidden size: 1.280
48
+ - Attention heads: 16 query + 4 KV (GQA 4:1)
49
+ - Head dimension: 80
50
+ - Feed-forward dimension: 3.456 (SwiGLU, ff_mult 8/3)
51
+ - Activation function: SwiGLU
52
+ - Normalization: RMSNorm
53
+ - Positional encoding: RoPE (theta 10.000)
54
+ - Dropout: 0.0
55
+ - Embeddings: tied (token embedding = lm_head)
56
+
57
+ ## Contesto e vocabolario
58
+
59
+ - Context length: 2.048 token
60
+ - Vocabulary size: 50.000 token
61
+ - Tokenizer: SentencePiece BPE con byte fallback
62
+
63
+ ## Dataset di training
64
+
65
+ - Codice: 40,48%
66
+ - Generalista: 39,46%
67
+ - Enciclopedico: 15,68%
68
+ - Libri: 3,07%
69
+ - Colloquiale: 0,73%
70
+ - Politico: 0,55%
71
+
72
+ ## Training pipeline
73
+
74
+ - Pretraining: 200.000 step
75
+ - Fine-tuning: SFT (3 epoche)
76
+ - DPO: disabilitato
77
+ - Corpus pretraining: 54,36 GB raw (~10,8 miliardi token)
78
+
79
+ ## Export e ottimizzazione
80
+
81
+ - Framework originale: PyTorch
82
+ - Export: ONNX
83
+ - Opset: 18
84
+ - Quantizzazione: INT8
85
+ - Peso modello ONNX: 2,46 GB (FP32)
86
+ - Peso quantizzato INT8: ~560 MB
87
+
88
+ ## Uso previsto
89
+
90
+ Emma-5 è progettato per:
91
+
92
+ - piccoli chatbot aziendali per PMI
93
+ - piccole automazioni
94
+ - generazione contenuti moderatamente complessi
95
+
96
+ ## Uso non previsto
97
+
98
+ - applicazioni mediche, legali o finanziarie critiche
99
+ - sistemi ad alta affidabilità o mission critical
100
+ - reasoning complesso multi-step
101
+ - ricerca scientifica avanzata senza supervisione
102
+
103
+ ## Focus prestazionale
104
+
105
+ Il modello è ottimizzato per:
106
+
107
+ - equilibrio tra qualità e latenza
108
+ - inference su CPU/GPU entry-level
109
+ - contesti leggeri
110
+ - generazione coerente su testi strutturati
111
+
112
+ ## Limitazioni
113
+
114
+ - capacità di reasoning ancora limitata rispetto a modelli di grandi dimensioni
115
+ - possibile generazione di contenuti imprecisi o incompleti
116
+ - sensibilità a prompt ambigui o molto lunghi
117
+ - contesto limitato a 2.048 token
118
+
119
+ ## Licenza
120
+
121
+ Distribuito sotto licenza **OpenRAIL-M**, con eventuali vincoli derivati dalle licenze dei dataset utilizzati.
122
+ Questa licenza consente l’uso, la modifica e la distribuzione del modello anche in ambito commerciale, imponendo tuttavia restrizioni sull’utilizzo in scenari potenzialmente dannosi, illegali o non etici, secondo i principi di Responsible AI e nel rispetto delle eventuali restrizioni derivanti dalle licenze dei dataset utilizzati.
123
+ Si richiede esprezzamente di citare **Egomnia S.p.A.** come autore del modello in caso di utilizzo di quest'ultimo per prodotti, servizi, pubblicazioni o documentazione tecnica.
124
+
125
+ ## Autore
126
+
127
+ Egomnia S.p.A.
128
+
129
+ ## Sito ufficiale
130
+
131
+ https://emma.egomnia.com
132
+
133
+ ## Manifesto di Emma — LLM italiano per la sovranità tecnologica
134
+
135
+ Per la sovranità tecnologica italiana
136
+
137
+ Noi crediamo che l’intelligenza artificiale non sia soltanto una tecnologia, ma un’infrastruttura critica per il futuro economico, culturale e democratico di una nazione.
138
+
139
+ Per troppo tempo, i modelli linguistici che plasmano informazione, lavoro e conoscenza sono stati sviluppati altrove, secondo logiche, valori e priorità non sempre allineate con il contesto italiano ed europeo.
140
+
141
+ I nostri modelli nascono per cambiare questo paradigma.
142
+ Non è solo il lancio di un nuovo modello, ma una presa di posizione chiara: rilanciare un ecosistema italiano dell’intelligenza artificiale, capace di essere autonomo, competitivo e coerente con le esigenze del nostro Paese.
143
+
144
+ La famiglia dei LLM "Emma" è anche il risultato di un lavoro costruito nel tempo. Il modello è stato addestrato utilizzando, in parte, dataset proprietari realizzati e custoditi per anni, mai ceduti a terzi. Un patrimonio informativo unico, che siamo convinti possa diventare nel tempo il nostro vero elemento distintivo rispetto ai grandi attori globali.
145
+
146
+ Oggi non abbiamo la presunzione di competere con i nomi che guidano il settore: Emma rappresenta un primo passo, concreto ma ancora iniziale, all'interno di un percorso di crescita e innovazione che intendiamo sviluppare negli anni a venire.
147
+
148
+ Questa non è solo innovazione tecnologica.
149
+ È una scelta di indipendenza.
150
+ È una visione industriale.
151
+
152
+ È il nostro contributo.
153
+
154
+ Dedicato a mia figlia, Emma.
155
+
156
+ Matteo Achilli
157
+ Fondatore di Egomnia
158
+
159
+ ## Note
160
+
161
+ Italian GPT: Emma-5 rappresenta un modello di nuova generazione della famiglia Emma, bilanciando efficienza e capacità generativa per applicazioni enterprise leggere nel contesto italiano.
162
+
163
+ ---
164
+
165
+ ## Inference (ONNX Runtime)
166
+
167
+ ```python
168
+ import onnxruntime as ort
169
+
170
+ session = onnxruntime.InferenceSession("model.onnx")
171
+
172
+ outputs = session.run(
173
+ None,
174
+ {
175
+ "input_ids": input_ids,
176
+ "attention_mask": attention_mask
177
+ }
178
+ )
README.txt ADDED
@@ -0,0 +1,11 @@
 
 
 
 
 
 
 
 
 
 
 
 
1
+ MODELLO EMMA-5 — Egomnia S.p.A.
2
+ Parametri trainabili: ~550.4M
3
+ Architettura: decoder-only Transformer + GQA (n_head=16, n_kv_head=4) + RMSNorm + RoPE(theta=10000.0) + SwiGLU + tied embeddings.
4
+ Context length: 2048.
5
+ Tokenizer: SentencePiece BPE byte_fallback, vocab 50000.
6
+ Limite VRAM PyTorch per processo: 14.00 GB.
7
+ Pipeline: pretrain (200000 step) → SFT (3 epoche). DPO disabilitato.
8
+ Export: ONNX opset 18 (path attention 'math', portabile) in formato fp32 con External Data Format consolidato in 'emma5.onnx.data'. Per caricarlo: onnx.load('emma5.onnx') con emma5.onnx.data nella stessa cartella.
9
+ Provenance: emma5_full_config.json contiene la configurazione esatta.
10
+ Corpus pretraining: 54.36 GB raw → ~10.8B token.
11
+ Licence: OpenRAIL-M License
bpe.model ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:54c131b4c26707f9b3186a8698d3ba33d7aefd98002a068a0557d5f3a74d3e7c
3
+ size 1060753
bpe.vocab ADDED
The diff for this file is too large to render. See raw diff
 
config.json ADDED
@@ -0,0 +1,20 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "model_name": "emma-5",
3
+ "model_type": "gpt",
4
+ "architecture": "decoder-only-transformer-gqa",
5
+ "vocab_size": 50000,
6
+ "hidden_size": 1280,
7
+ "num_hidden_layers": 28,
8
+ "num_attention_heads": 16,
9
+ "num_kv_heads": 4,
10
+ "intermediate_size": 3456,
11
+ "context_length": 2048,
12
+ "rope_theta": 10000.0,
13
+ "norm_type": "rmsnorm",
14
+ "activation": "swiglu",
15
+ "tokenizer": "sentencepiece",
16
+ "tied_embeddings": true,
17
+ "alignment": "SFT",
18
+ "gpu_memory_limit_gb": 14.0,
19
+ "onnx_opset": 18
20
+ }
emma5.onnx ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:3db26acd094b47c7aaf57414dba73d8c6dcd2b2e888694b344342c3964e6b75d
3
+ size 1361508
emma5.onnx.data ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:d54a34a1ea19a6f1490d7c4bc5addb9005c5cda720d7a44fc3d5d47a8c49f57d
3
+ size 2457400320
emma5_full_config.json ADDED
@@ -0,0 +1,59 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "data_root": "/data/emma5_lite",
3
+ "raw_pretrain_path": "pretraining.txt",
4
+ "finetune_path": "finetuning_prompt_response.json",
5
+ "rlhf_path": "rlhf.json",
6
+ "use_dpo": false,
7
+ "gpu_memory_limit_gb": 14.0,
8
+ "vocab_size": 50000,
9
+ "spm_input_sentence_size": 5000000,
10
+ "spm_max_sentence_length": 8192,
11
+ "tokens_dtype": "uint16",
12
+ "n_embd": 1280,
13
+ "n_layer": 28,
14
+ "n_head": 16,
15
+ "n_kv_head": 4,
16
+ "ff_mult": 2.6666666666666665,
17
+ "block_size": 2048,
18
+ "rope_theta": 10000.0,
19
+ "dropout": 0.0,
20
+ "use_flash_attn": true,
21
+ "pt_micro_batch": 4,
22
+ "pt_grad_accum": 32,
23
+ "pt_max_steps": 200000,
24
+ "pt_lr": 0.0004,
25
+ "pt_min_lr": 4e-05,
26
+ "pt_warmup_steps": 4000,
27
+ "pt_weight_decay": 0.1,
28
+ "pt_betas": [
29
+ 0.9,
30
+ 0.95
31
+ ],
32
+ "pt_grad_clip": 1.0,
33
+ "pt_eval_interval": 500,
34
+ "pt_eval_iters": 100,
35
+ "pt_log_interval": 50,
36
+ "pt_ckpt_interval": 2000,
37
+ "pt_grad_checkpoint": true,
38
+ "sft_micro_batch": 1,
39
+ "sft_grad_accum": 64,
40
+ "sft_epochs": 3,
41
+ "sft_lr": 1.2e-05,
42
+ "sft_warmup_steps": 150,
43
+ "sft_weight_decay": 0.0,
44
+ "sft_grad_clip": 1.0,
45
+ "sft_log_interval": 25,
46
+ "sft_use_8bit_optimizer": true,
47
+ "sft_dynamic_padding": true,
48
+ "dpo_micro_batch": 2,
49
+ "dpo_grad_accum": 8,
50
+ "dpo_epochs": 4,
51
+ "dpo_steps": 4000,
52
+ "dpo_lr": 7e-06,
53
+ "dpo_beta": 0.1,
54
+ "dpo_warmup_steps": 100,
55
+ "dpo_grad_clip": 1.0,
56
+ "dpo_log_interval": 25,
57
+ "onnx_opset": 18,
58
+ "seed": 1337
59
+ }
tokenizer.model ADDED
@@ -0,0 +1 @@
 
 
1
+ bpe.model
tokenizer_config.json ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "tokenizer_type": "sentencepiece",
3
+ "model_file": "bpe.model",
4
+ "pad_id": 0,
5
+ "unk_id": 1,
6
+ "bos_id": 2,
7
+ "eos_id": 3
8
+ }