--- license: cc-by-nc-sa-4.0 language: - en tags: - text-generation - information-extraction - structured-output - json - ner - small-language-model - edge-ai - on-device - ollama - gguf - calendar pipeline_tag: text-generation library_name: gguf model-index: - name: AILO-152M-Events-EN results: [] --- # AILO-152M-Events-EN Natural language → calendar-event JSON ⚡ > **A 152M-parameter specialist** that turns an English sentence into a clean **event JSON** — title, date, time, location, participants — and runs on almost anything. This is a **task-specialist** built on AILO-152M. It does one thing and does it well: read an event description in plain English and output structured JSON. Tiny, fast, deterministic — ideal as the parsing brain of a calendar app, assistant, or automation. ```bash ollama run Alieno/ailo-152m-events-en >>> Lunch with Sarah tomorrow at 1pm at the new Italian place {"title": "lunch", "date": "tomorrow", "time": "13:00", "location": "the new Italian place", "participants": ["Sarah"]} ``` ## Schema ```json {"title": str, "date": str|null, "time": "HH:MM"|null, "location": str|null, "participants": [str]} ``` - **time is normalized** to 24h `HH:MM` — *"at 3pm"* → `15:00`, *"half past 7"* → `07:30`, *"at noon"* → `12:00`. - **date is extracted as written** (*"tomorrow"*, *"next Friday"*, *"March 15"*) — it is **not** resolved to a calendar date (the model has no clock). - Missing fields → `null`; no participants → `[]`. ## Benchmarks (held-out test set, 1500 unseen examples) | Metric | Score | |---|---| | **Valid JSON** | **100%** | | Full object exact-match | 83.7% | | `title` | 97.3% | | `date` | 88.3% | | `time` (normalized) | **100%** | | `location` | 97.0% | | `participants` | 97.3% | It also **generalizes to real, free-form sentences** (it learned to *copy spans*, not classify to a fixed list): *"Call mom tonight"* → `{"title": "call mom", ...}`, *"Birthday party Saturday at Jake's place with everyone"* → `{"title": "birthday party", "location": "Jake's place", "participants": ["everyone"]}`. ## Use it in an app ```bash curl http://localhost:11434/api/chat -d '{ "model": "Alieno/ailo-152m-events-en", "messages": [{"role": "user", "content": "Quick sync with the dev team Monday 10am on Zoom"}], "stream": false, "options": {"temperature": 0.0} }' # -> {"title":"quick sync","date":"Monday","time":"10:00","location":"on Zoom","participants":["the dev team"]} ``` Tags: `:latest` / `:q8_0` (best, 156 MB) · `:q4_k_m` (smallest, 97 MB) · `:f16` (291 MB). Run with **temperature 0** for deterministic JSON. `repeat_penalty` is kept low (1.05) so JSON punctuation isn't penalized. ## Details | Property | Value | |---|---| | Parameters | 151.9M | | Architecture | Decoder-only Transformer (LayerNorm · RoPE · SwiGLU), 12L/768/12H, ctx 512 | | Base | AILO-152M-v2 → specialized on event-extraction | | Training | 26k synthetic (sentence → JSON) pairs, open/compositional vocabulary (~2000 unique titles) so the model learns to **copy spans** | | Formats | GGUF (q4_k_m, q8_0, f16) + PyTorch | ## Limitations - **Dates are not resolved** to absolute dates — the phrase is extracted as-is. - Unusual date phrasings (*"the 23rd of March"*) may drop the day number. - Single event per input; English only; 512-token context (short sentences). - For exact calendar entries, resolve the relative date downstream with the user's timezone/clock. ## License & contact Dual-license: **CC BY-NC-SA 4.0** (free for research/education/personal) + **commercial** by separate agreement. **Riccardo Sparacino** — [LinkedIn](https://www.linkedin.com/in/riccardo-sparacino-developer-php-javascript-mysql-app-ios-android/) ```bibtex @misc{ailo152m_events_en_2026, title = {AILO-152M-Events-EN: A tiny natural-language-to-event-JSON specialist}, author = {Sparacino, Riccardo}, year = {2026}, note = {Dual-licensed CC BY-NC-SA 4.0 / commercial} } ```