Models

Pick the smallest bird that does the job.

Every model answers yes/no, pick-one and score questions with calibrated probabilities. They differ in input, size and where they run.

The family

Smallest first. Every field comes from a measurement; fields we have not measured are left out.

pico

sparrow-pico-rover-v1.1

~2 KB
per question (501 parameters)

Numbers in, decision out. You write a spec of sensors, flags, enums, rules and questions, and the compiler writes one tiny MLP per question as a C header. It answers only the questions it was compiled for.

Input
sensor numbers, flags, enums
Runs on
any microcontroller
ESP32-S3
9.3 µs per decision
Laptop
0.18 µs
Quality
94.0% vs the spec's rules (its 2B teacher: 94.2%)
nano

sparrow-nano-robot-v1.2

1.11 MB

Reads states like battery: 6% as values, not words, and ships with pip. 3.5 ms per decision on an ESP32-S3.

Input
text with sensor readings
Runs on
ESP32-S3, Pi, laptop
ESP32-S3
3.5 ms per decision
Laptop
0.08 ms (C)
Quality
RobotBench 36/55; navigation from sensor numbers 8/10 (public 2B: 3/10)
nano

sparrow-nano-general-v1.1

2.2 MB

Reads text and answers in 3.8 ms on an ESP32-S3. Good for routing and gating inside an agent when you want no network call.

Input
text
Runs on
ESP32-S3, Raspberry Pi, laptop
ESP32-S3
3.8 ms per decision
Laptop
0.06 ms (C)
Quality
general text decisions; JevBench 122/231, MASSIVE intent 0.588
micro

sparrow-micro-general-v1.1

7.6 MB

More room, more reach: a text model for a Raspberry Pi, a laptop or a Jetson.

Input
text
Runs on
Pi, laptop
Laptop
0.22 ms (C)
tiny

sparrow-tiny-general-v1.0

17.9 MB

More room, more reach: a text model for a Raspberry Pi, a laptop or a Jetson.

Input
text
Runs on
laptop, Pi
Laptop
23 ms (numpy)
small

sparrow-small-general-v1.0

47 MB

More room, more reach: a text model for a Raspberry Pi, a laptop or a Jetson.

Input
text
Runs on
laptop, Pi, Jetson
Laptop
64 ms (numpy)

Compare

The Sparrow Decider family. Timings are measured; blank cells were not measured.
TierModel IDSizeInputRuns onESP32-S3LaptopQuality
picosparrow-pico-rover-v1.1~2 KB per question (501 parameters)sensor numbers, flags, enumsany microcontroller9.3 µs0.18 µs94.0% vs the spec's rules (its 2B teacher: 94.2%)
nanosparrow-nano-general-v1.12.2 MBtextESP32-S3, Raspberry Pi, laptop3.8 ms0.06 ms (C)general text decisions; JevBench 122/231, MASSIVE intent 0.588
nanosparrow-nano-robot-v1.21.11 MBtext with sensor readingsESP32-S3, Pi, laptop3.5 ms0.08 ms (C)RobotBench 36/55; navigation from sensor numbers 8/10 (public 2B: 3/10)
microsparrow-micro-general-v1.17.6 MBtextPi, laptopnot measured0.22 ms (C)not measured
tinysparrow-tiny-general-v1.017.9 MBtextlaptop, Pinot measured23 ms (numpy)not measured
smallsparrow-small-general-v1.047 MBtextlaptop, Pi, Jetsonnot measured64 ms (numpy)not measured

Laptop times are per question on one CPU core, with the runtime in brackets. See Benchmarks for methodology.

Which one?

  • Your input is sensor numbers and the questions never change → pico
  • Your input is text and the device is an ESP32-S3 → nano-general
  • Your input mixes text and sensor readings → nano-robot
  • You have a Pi, a laptop or a Jetson and want more headroom → micro, tiny or small

Get the models

pip

nano, bundled

numpy only. The package bundles sparrow-nano-general-v1.1 and sparrow-nano-robot-v1.2; load them with Decider.load().

pip install sparrow-decider

Python guide

Hugging Face

micro, tiny, small

Put the .sparrow files in ~/.cache/sparrow-decider/ (or any folder in $SPARROW_MODELS) to load them by name.

Download models
Compile

pico

pico models are compiled for your device from a spec.

sparrow-pico guide

C runtime and ESP-IDF component

Model card

What it does
Answers noul (yes/no), choice (pick one) and score (rate on a scale) questions about a state, with calibrated probabilities, in the same shapes as Strands Decider.
Teachers
A full Strands Decider (4B) teaches the text tiers through distillation on ~430k decisions. pico models are labelled by the public Strands Decider 2B on sampled device states.
Base weights
micro and nano from potion-base-8M (MinishLab, MIT); tiny and small from Ettin encoders (JHU CLSP, MIT).
Runtimes
Python (numpy only); C99, no malloc, model read from flash (ESP-IDF component); sparrow-pico compiler: device spec → C header.
Calibration
Each model ships per-kind temperatures fitted on held-out data. A yes/no answer near 0.5 means "don't know".
Licence
Apache-2.0 (code); model weights derived from MIT-licensed potion-base-8M and Ettin encoders.

Limitations

  • Open-ended language it never trained on: well behind the 2B (MASSIVE domain routing 0.37-0.67 across released Sparrow models vs 0.86).
  • Yes/no judgement on JevBench is near chance at every tier.
  • pico answers only the questions it was compiled for.
  • These models suggest decisions. Don't use them as the only safety mechanism on a physical system.

Full model card