| --- |
| license: openrail |
| authors: |
| - Egomnia S.p.A. |
| language: |
| - it |
| tags: |
| - llm |
| - italian |
| - gpt |
| - onnx |
| - text-generation |
| - enterprise |
| - swiGLU |
| - gqa |
| - int8 |
| library_name: onnxruntime |
| pipeline_tag: text-generation |
| datasets: |
| - custom-mixture |
| --- |
| |
| # 🇮🇹 Emma-5 (ONNX) |
|
|
| ## Overview |
|
|
| **Emma-5** è un "mini" Large Language Model decoder-only sperimentale sviluppato da **Egomnia S.p.A.**, progettato per lingua italiana. |
|
|
| Sito ufficiale: https://emma.egomnia.com |
|
|
| Il modello è pensato per: |
| - comprensione contestuale moderata |
| - generazione di contenuti di media-piccola complessità |
|
|
| Non è progettato per applicazioni safety-critical o reasoning avanzato multi-step. |
|
|
| ## Architettura |
|
|
| - Tipo: GPT decoder-only |
| - Transformer blocks: 28 |
| - Hidden size: 1.280 |
| - Attention heads: 16 query + 4 KV (GQA 4:1) |
| - Head dimension: 80 |
| - Feed-forward dimension: 3.456 (SwiGLU, ff_mult 8/3) |
| - Activation function: SwiGLU |
| - Normalization: RMSNorm |
| - Positional encoding: RoPE (theta 10.000) |
| - Dropout: 0.0 |
| - Embeddings: tied (token embedding = lm_head) |
|
|
| ## Contesto e vocabolario |
|
|
| - Context length: 2.048 token |
| - Vocabulary size: 50.000 token |
| - Tokenizer: SentencePiece BPE con byte fallback |
|
|
| ## Dataset di training |
|
|
| - Codice: 40,48% |
| - Generalista: 39,46% |
| - Enciclopedico: 15,68% |
| - Libri: 3,07% |
| - Colloquiale: 0,73% |
| - Politico: 0,55% |
|
|
| ## Training pipeline |
|
|
| - Pretraining: 200.000 step |
| - Fine-tuning: SFT (3 epoche) |
| - DPO: disabilitato |
| - Corpus pretraining: 54,36 GB raw (~10,8 miliardi token) |
|
|
| ## Export e ottimizzazione |
|
|
| - Framework originale: PyTorch |
| - Export: ONNX |
| - Opset: 18 |
| - Quantizzazione: INT8 |
| - Peso modello ONNX: 2,46 GB (FP32) |
| - Peso quantizzato INT8: ~560 MB |
|
|
| ## Uso non previsto |
|
|
| - applicazioni mediche, legali o finanziarie critiche |
| - sistemi ad alta affidabilità o mission critical |
| - reasoning complesso multi-step |
| - ricerca scientifica avanzata senza supervisione |
|
|
| ## Focus prestazionale |
|
|
| Il modello è ottimizzato per: |
|
|
| - equilibrio tra qualità e latenza |
| - inference su CPU/GPU entry-level |
| - contesti leggeri |
|
|
| ## Limitazioni |
|
|
| - capacità di reasoning ancora limitata rispetto a modelli di grandi dimensioni |
| - possibile generazione di contenuti imprecisi o incompleti |
| - sensibilità a prompt ambigui o molto lunghi |
| - contesto limitato a 2.048 token |
|
|
| ## Licenza |
|
|
| Distribuito sotto licenza **OpenRAIL-M**, con eventuali vincoli derivati dalle licenze dei dataset utilizzati. |
| 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. |
| 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. |
|
|
| ## Autore |
|
|
| Egomnia S.p.A. |
|
|
| ## Sito ufficiale |
|
|
| https://emma.egomnia.com |
|
|
| --- |
|
|
| ## Inference (ONNX Runtime) |
|
|
| ```python |
| import onnxruntime as ort |
| |
| session = onnxruntime.InferenceSession("model.onnx") |
| |
| outputs = session.run( |
| None, |
| { |
| "input_ids": input_ids, |
| "attention_mask": attention_mask |
| } |
| ) |