Lumina 2.75M Official Banner

Try Live Demo


License: MIT Parameters Language Format Size


🌟 Che cos'è Lumina 2.75M?

Lumina 2.75M è un piccolo modello linguistico (Small Language Model - SLM) autoregressivo causale per la lingua italiana, progettato e addestrato interamente da zero senza riutilizzare modelli preaddestrati di giganti tecnologici, senza API esterne e senza tokenizer preconfigurati.

A differenza dei modelli da centinaia di milioni o miliardi di parametri che richiedono server cloud dedicati e gigabyte di RAM:

  • Pesa solo 11 MB in formato nativo safetensors.
  • Può essere eseguito istantaneamente su qualsiasi laptop, Raspberry Pi, smartphone o persino all'interno del browser web via JavaScript.
  • Risponde con latenza quasi istantanea (< 0.1s su GPU o CPU standard).

💡 Filosofia del Progetto: Onestà contro Allucinazioni

Uno dei problemi più evidenti dei moderni modelli linguistici di grandi dimensioni è la tendenza all'allucinazione: inventare fatti storici, formule matematiche errate o risposte stravaganti con tono autorevole.

Lumina è stato addestrato secondo un principio di affidabilità e onestà delimitata:

  1. Risposte precise nel perimetro noto: eccelle su definizioni scientifiche, concetti informatici, astronomia, saluti e spiegazioni.
  2. Rifiuto onesto fuori perimetro: se gli viene posta una domanda complessa o fuori dalla sua conoscenza (es. calcoli avanzati, notizie in tempo reale, prescrizioni mediche o legali), è addestrato a dichiarare apertamente:

    "Non lo so: è fuori da ciò che ho imparato. Prova una domanda più semplice."

  3. Nessuna dipendenza esterna: nessuna chiamata a server remoti, massima riservatezza locale (privacy by design).

📊 Risultati e Benchmark di Valutazione

Il modello è stato testato con greedy decoding su centinaia di esempi di validazione contenenti formulazioni e domande mai viste durante l'addestramento:

Ambito di Prova Accuratezza su dati mai visti Comportamento
Definizioni e Concetti Tecnici 98.2% Spiega correttamente concetti con frasi nuove mai viste prima
Domande di Verifica Libera (Probes) 85.7% Riconosce l'intento dell'utente anche con sinonimi e saluti diversi
Domande Note con Riformulazioni 79.1% Generalizzazione robusta su frasi con punteggiatura e prefissi vari
Riconoscimento Fatti Fuori Perimetro 66.7% Riconosce le domande ignote e rifiuta onestamente invece di inventare
Falsi Rifiuti (Errori di Blocco) 2.9% Tasso bassissimo: risponde quasi sempre quando la domanda è valida

📐 Architettura del Modello

Componente Dettaglio Tecnico Note
Tipo di Rete Decoder-only Causal Transformer Meccanismo di attenzione scalata SDPA
Numero di Parametri 2.750.976 Tutti attivi nel forward pass
Livelli (Layers) 6 blocchi Transformer LayerNorm pre-attenzione e pre-FFN
Dimensione Nascosta ($d_{\text{model}}$) 192 Larghezza dello spazio latente
Teste di Attenzione ($n_{\text{heads}}$) 6 teste ($d_{\text{head}} = 32$) Attenzione multi-testa causale
Feed-Forward ($d_{\text{ff}}$) 768 (espansione 4x) Attivazione GELU approssimata
Contesto massimo 165 byte Finestra scorrevole per chat
Vocabolario 259 token (livello byte) 256 byte UTF-8 + BOS (256), EOS (257), PAD (258)
Tied Embeddings Sì La matrice di output condivide i pesi con l'embedding iniziale
Regolarizzazione Dropout 0.1, Weight Decay 0.05 Addestrato con AdamW e Cosine Annealing su GPU RTX 5060

🚀 Guida all'Uso Rapido (Quickstart)

1. In Python con modeling_lumina.py

Scarica la cartella o i file del repository (config.json, model.safetensors, modeling_lumina.py):

from modeling_lumina import LuminaForCausalLM

# Carica il modello in 0.1 secondi
model = LuminaForCausalLM.from_pretrained("jacopof/lumina-2.75m")

# Esempio 1: Saluto e presentazione
print(model.generate("Ciao! Chi sei?"))
# Output: "Sono Lumina. Non uso altri chatbot per generare le risposte."

# Esempio 2: Spiegazione scientifica
print(model.generate("Cos'è il Sole?"))
# Output: "Il Sole è la stella al centro del nostro sistema solare."

# Esempio 3: Domanda informatica
print(model.generate("Cos'è Python?"))
# Output: "Python è un linguaggio di programmazione semplice e versatile."

2. Da Riga di Comando con generate.py

python generate.py "Raccontami una storia"
# Lumina: Una piccola stella perse la strada. La Luna le mostrò come tornare a casa.

3. Nel Browser Web (Web Worker)

Il repository include anche weights.json, una mappa serializzata dei pesi in formato JSON float compatibile con motori di inferenza pura in JavaScript / Web Audio per web app completamente offline senza backend!


⚠️ Limiti e Note d'Uso

  • Contesto: Essendo un micro-modello educativo da 2.75M di parametri, il contesto massimo è calibrato per scambi domanda-risposta brevi.
  • Conoscenza del mondo: Non ha accesso a Internet in tempo reale e non possiede la sterminata enciclopedia di un modello da centinaia di miliardi di parametri.
  • Scopi critici: Non deve essere impiegato per consulenze mediche, finanziarie, legali o per decisioni ad alto rischio.

📜 Licenza e Crediti

  • Autore: Jacopo Forti (jacopof)
  • Licenza: MIT License (libero per uso didattico, sperimentale, di ricerca e commerciale).
  • Progetto Lumina: sviluppato con l'obiettivo di dimostrare come sia possibile costruire intelligenze artificiali indipendenti, trasparenti e leggere a partire da zero.
Downloads last month
-
Safetensors
Model size
2.75M params
Tensor type
F32
·
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support