--- license: cc-by-nc-sa-4.0 language: - it tags: - text-generation - information-extraction - structured-output - json - ner - small-language-model - edge-ai - on-device - ollama - gguf - calendar - italian pipeline_tag: text-generation library_name: gguf model-index: - name: AILO-152M-Events-IT results: [] --- # AILO-152M-Events-IT Linguaggio naturale italiano → evento JSON 🇮🇹⚡ > **Uno specialista da 152M** che trasforma una frase italiana in un **evento JSON** pulito — titolo, data, ora, luogo, partecipanti — e gira quasi ovunque. Specialista di un solo compito, costruito su AILO-152M: legge la descrizione di un evento in italiano e produce JSON strutturato. Minuscolo, veloce, deterministico — ideale come "parser" di un'app calendario, un assistente o un'automazione. ```bash ollama run Alieno/ailo-152m-events-it >>> Pranzo con Sara domani alle 13 al nuovo ristorante giapponese {"titolo": "pranzo", "data": "domani", "ora": "13:00", "luogo": "ristorante giapponese", "partecipanti": ["Sara"]} ``` ## Schema ```json {"titolo": str, "data": str|null, "ora": "HH:MM"|null, "luogo": str|null, "partecipanti": [str]} ``` - **ora normalizzata** a 24h `HH:MM` — *"alle 3 del pomeriggio"* → `15:00`, *"alle 7 e mezza"* → `07:30`, *"a mezzogiorno"* → `12:00`. - **data estratta com'è scritta** (*"domani"*, *"venerdì prossimo"*, *"15 marzo"*) — **non** risolta in data di calendario (il modello non ha un orologio). - Campi assenti → `null`; nessun partecipante → `[]`. ## Benchmark (test set held-out, 1500 esempi mai visti) | Metrica | Valore | |---|---| | **JSON valido** | **100%** | | Oggetto esatto | 85.7% | | `titolo` | 97.7% | | `data` | **100%** | | `ora` (normalizzata) | 99.7% | | `luogo` | 87.3% | | `partecipanti` | 97.7% | **Generalizza** su frasi libere reali (ha imparato a *copiare lo span*, non a classificare): *"Chiama la mamma stasera"* → `{"titolo": "chiamare la mamma", ...}`, *"Festa di compleanno sabato da Luca con tutti"* → `{"titolo": "festa di compleanno", "luogo": "da Luca", "partecipanti": ["tutti"]}`. ## Usarlo in un'app ```bash curl http://localhost:11434/api/chat -d '{ "model": "Alieno/ailo-152m-events-it", "messages": [{"role": "user", "content": "Riunione veloce col team lunedì alle 10 su Zoom"}], "stream": false, "options": {"temperature": 0.0} }' ``` Tag: `:latest` / `:q8_0` (migliore, 156 MB) · `:q4_k_m` (più piccolo, 97 MB) · `:f16` (291 MB). Usa **temperature 0** per JSON deterministico; `repeat_penalty` basso (1.05) così la punteggiatura del JSON non viene penalizzata. ## Dettagli | Proprietà | Valore | |---|---| | Parametri | 151,9M | | Architettura | Transformer decoder-only (LayerNorm · RoPE · SwiGLU), 12L/768/12H, ctx 512 | | Base | AILO-152M-v2-ITA → specializzato sull'estrazione eventi | | Training | 26k coppie sintetiche (frase → JSON), vocabolario aperto/compositivo (~1500 titoli unici) per imparare a **copiare lo span** | | Formati | GGUF (q4_k_m, q8_0, f16) + PyTorch | ## Limiti - **Le date non vengono risolte** in date assolute — la frase è estratta com'è. - Forme orarie/locuzioni rare (*"all'una"*, *"col"* al posto di *"con il"*) possono sfuggire. - Un evento per input; solo italiano; contesto 512 token (frasi brevi). - Per voci di calendario esatte, risolvi la data relativa a valle con fuso/orologio dell'utente. ## Licenza & contatti Doppia licenza: **CC BY-NC-SA 4.0** (libera per ricerca/didattica/uso personale) + **commerciale** con accordo separato. **Riccardo Sparacino** — [LinkedIn](https://www.linkedin.com/in/riccardo-sparacino-developer-php-javascript-mysql-app-ios-android/) ```bibtex @misc{ailo152m_events_it_2026, title = {AILO-152M-Events-IT: estrattore italiano da linguaggio naturale a evento JSON}, author = {Sparacino, Riccardo}, year = {2026}, note = {Dual-licensed CC BY-NC-SA 4.0 / commerciale} } ```