Model: MrMeOrYou/emma-5-GGUF Source: Original Platform
license, base_model, base_model_relation, library_name, pipeline_tag, language, authors, tags, datasets
| license | base_model | base_model_relation | library_name | pipeline_tag | language | authors | tags | datasets | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| openrail | egomnia/emma-5 | quantized | gguf | text-generation |
|
|
|
|
🇮🇹 Emma-5 (GGUF)
Premessa
Questo repository contiene una conversione non ufficiale in formato GGUF di egomnia/emma-5, realizzata con llama.cpp.
Il modello originale Emma-5 è stato sviluppato da Egomnia S.p.A.. Questo repository non è affiliato a Egomnia S.p.A. e non modifica l'autorialità del modello originale.
Provenienza dei pesi
La prima conversione GGUF è stata creata mentre il repository originale egomnia/emma-5 non era disponibile pubblicamente. In quel momento i pesi sono stati recuperati da eldavoo/emma-5, un reupload/archivio pubblico del modello.
Dopo la ripubblicazione di egomnia/emma-5, i file del modello e del tokenizer sono stati confrontati con quelli di eldavoo/emma-5 e verificati come byte-identici. Per questo motivo i metadata di questo repository puntano ora a egomnia/emma-5 come modello base originale.
Grazie a eldavoo per aver mantenuto disponibile l'archivio pubblico usato come sorgente al momento della conversione iniziale. L'autorialità e i diritti sul modello restano attribuiti a Egomnia S.p.A. secondo la licenza e il model card originali.
File disponibili
Il file emma-5-F32.gguf è la conversione GGUF in F32 del modello originale. Le altre varianti sono state ricavate da questo file con llama-quantize, usando i tipi di quantizzazione supportati da llama.cpp.
Sono disponibili:
emma-5-F32.ggufemma-5-F16.ggufemma-5-BF16.ggufemma-5-Q8_0.ggufemma-5-Q6_K.ggufemma-5-Q5_K_M.ggufemma-5-Q5_K_S.ggufemma-5-Q5_1.ggufemma-5-Q5_0.ggufemma-5-Q4_K_M.ggufemma-5-Q4_K_S.ggufemma-5-Q4_1.ggufemma-5-Q4_0.ggufemma-5-IQ4_NL.ggufemma-5-IQ4_XS.ggufemma-5-Q3_K_L.ggufemma-5-Q3_K_M.ggufemma-5-Q3_K_S.ggufemma-5-IQ3_M.ggufemma-5-IQ3_S.ggufemma-5-Q2_K.ggufemma-5-TQ2_0.ggufemma-5-TQ1_0.ggufemma-5-Q1_0.ggufemma-5-MXFP4_MOE.gguf
Le quantizzazioni sono state verificate localmente come riproducibili a partire da emma-5-F32.gguf con llama.cpp: gli output generati coincidono byte-per-byte con i file pubblicati.
Esecuzione con llama.cpp
Chat interattiva
llama-cli -m emma-5-F32.gguf --jinja -ngl 99 -c 2048 -cnv
Prompt diretto
llama-cli -m emma-5-F32.gguf --jinja -ngl 99 -c 2048 -st -p "Qual è la capitale d'Italia?"
--jinja applica il chat template incorporato nel GGUF. -ngl 99 carica i layer in GPU, se disponibile; omettilo per usare solo la CPU. -c 2048 imposta la context length massima del modello.
Adattamenti rispetto al checkpoint ONNX
Per l'architettura llama di llama.cpp sono stati applicati due adattamenti:
- RoPE: le proiezioni Q e K sono permutate dal layout half-split (GPT-NeoX) al layout interleaved (GPT-J), come per i modelli LLaMA.
- Chat template: il formato di istruzione Alpaca italiano usato nell'SFT è incorporato nel file (
tokenizer.chat_template).
Formato del prompt
### Istruzione: <richiesta> ### Risposta:
Con --jinja il formato viene applicato automaticamente. Per il completamento grezzo, usa lo stesso formato su una sola riga.
Parametri di campionamento
Né i repository ufficiali né il checkpoint ONNX definiscono parametri di campionamento: un modello ONNX espone soltanto i logit, mentre temperature, top-p e top-k vengono applicati a valle dal codice di inferenza, non dal modello stesso. I valori seguenti non provengono quindi da Egomnia: sono valori di riferimento generici, scelti per questa conversione come compromesso ragionevole tra coerenza e varietà dell'output, e possono essere adattati liberamente al caso d'uso:
temperature: 0.7top-p: 0.9top-k: 40
I default di llama.cpp sono diversi, quindi per usare questi valori conviene impostarli manualmente, incluso --min-p 0.
Il --repeat-penalty non va invece impostato: llama.cpp lo lascia già a 1.0, cioè nessuna penalità di ripetizione, coerentemente con un percorso di inferenza ONNX che non applica alcuna penalità.
llama-cli -m emma-5-F32.gguf --jinja -c 2048 -ngl 99 -cnv \
--temp 0.7 --top-k 40 --top-p 0.9 --min-p 0
Server OpenAI-compatibile:
llama-server -m emma-5-F32.gguf --jinja -c 2048 -ngl 99 \
--temp 0.7 --top-k 40 --top-p 0.9 --min-p 0
Per un output deterministico e riproducibile, e fedele al checkpoint ONNX, usa --temp 0 (greedy).
Nota sul tokenizer
Il tokenizer SentencePiece originale normalizza i ritorni a capo (nmt_nfkc, remove_extra_whitespaces), mentre il tokenizer di llama.cpp non lo fa nello stesso modo. Per evitare differenze nella tokenizzazione usa --jinja, oppure, nei prompt grezzi, spazi singoli al posto dei caratteri di a capo.
Nota sul multi-turno
Emma-5 è stato addestrato (SFT) principalmente su singoli turni istruzione/risposta. È quindi più affidabile a turno singolo. In conversazioni a più turni la qualità può calare e l'output dipende da come viene ricostruita la cronologia del contesto.
Per risultati più fedeli conviene inviare una istruzione completa per ogni richiesta.
Informazioni sul modello originale
Le informazioni seguenti derivano dal model card di egomnia/emma-5.
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 originali
- Framework originale: PyTorch
- Export originale: ONNX
- Opset: 18
- Quantizzazione ONNX: 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.