5 3 days ago

AILO-152M-Events-EN Natural language → calendar-event JSON ⚡

tools thinking 152m
ollama run Alieno/ailo-152m-events-en:152m

Details

3 days ago

ad0e8759a284 · 163MB ·

llama
·
152M
·
Q8_0
{{- if .Tools }}{{ end }}{{- $u := "" }}{{- range .Messages }}{{- if eq .Role "user" }}{{- $u = .Con
{ "num_ctx": 512, "num_predict": 160, "repeat_penalty": 1.05, "stop": [ "<|e

Readme

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.

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

{"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

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 SparacinoLinkedIn

@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}
}