104 lines
3.9 KiB
Markdown
104 lines
3.9 KiB
Markdown
---
|
|
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}
|
|
}
|
|
```
|