Madison Update: What was Promised and What was Shipped
Last week's promise was real precision and recall from the model itself, and this update checks whether it was kept. Gavia, a loon detector packaged as a desktop app that runs with no server, carries its own numbers on a model card.
Last week's update promised that real precision and recall numbers would come from the model itself before the meeting. This weekly Madison update checks that promise against what actually shipped. The answer is an application, Gavia, that runs on a laptop with no server and no account, and that prints the model's numbers on a card inside the bundle.
From a notebook to an application
Gavia is a desktop application that detects loons in field and drone photographs. The video gives its size as 84 megabytes to download and 176 once installed, for Apple silicon Macs running macOS 10.15 and up. Inside the bundle are a Rust shell, a Python service, the ONNX runtime and the detector itself, about 36 megabytes of weights. The video notes that nothing in that list reaches for a server. The written description adds that the detector is YOLO11s, trained for 100 epochs at 640 pixels, and that the backend binds to the local loopback address only.
One image in, one box out
The app behaves the way a field tool should. You give it one image, and it draws a box where the bird is. The box shows a confidence of 82 percent, with a line underneath saying that highlighted areas show where a loon was found. The video is careful to say this is a place, not a score on its own. The written description stresses that this 82 percent is the confidence on one box in one photograph and is not a model metric. The history page keeps earlier checks on your own disk.
The card the promise was about
The promise concerned four numbers read from the model card: precision 0.93, recall 0.80, mean average precision at 50 of 0.894, and the stricter 50 through 95 figure of 0.614. They come from the checkpoint inside the app, not from a hand count. Precision means that when the model calls something a loon, it is almost always right.
Two definitions that differ by one term
The video explains that precision and recall form a trade. Precision divides the true finds by everything the model called a loon. Recall divides the same true finds by every loon that was really there. A single number can balance them, the harmonic mean, which comes to 0.86. The card does not print it, and the video says plainly that it was computed from the two numbers the card does print.
One loon in five
A recall of 80 percent has a plain meaning: roughly one loon in five goes unreported by the model. The card exposes a dial for this, a confidence threshold set to 0.25. Lowering it finds more birds and also more reed beds, while holding it keeps the misses. The video calls this a decision to make, not a bug to fix. The verdict is that the promise was kept, the detector left the notebook, and the app calls itself a prototype on every screen, with the one-in-five gap left for next week.
Key takeaways
- The promise was real precision and recall from the model itself, and it was delivered inside a desktop application.
- Gavia runs on a laptop with no server and no account; it is 84 MB to download and 176 MB installed.
- The model card reports precision 0.93, recall 0.80 and mAP at 50 of 0.894.
- F1, the harmonic mean of precision and recall, is 0.86 and is computed rather than printed on the card.
- An 82 percent figure on a result box is a confidence for one detection, not a model metric.
- A recall of 0.80 means about one loon in five is missed, and the confidence threshold trades misses against false alarms.
Try it yourself
If you have a model that only works in a notebook, put it in something a colleague can open with no terminal and no account. Then make the build write the model's own numbers into the bundle. If you cannot state recall on the way out the door, the video says, it is not shipped yet.
Chapters
Full transcript(auto-generated, with timestamps)
Last week's promise, and an application
[0:00]Last week I told you the real numbers would come from the model itself before the meeting. They did and they are printed on a card inside an application that now runs on a laptop with no server and no account. This is sigh. Here is what it promised and here is what it shipped. So what is it? A desktop
What shipped — inside the bundle
[0:15]Application. 84 megabytes to download 176 once it is installed. Apple silicon Mac OS 1015 and up. Inside there is a rust shell, a Python service, the enh runtime and the detector itself. 36 megabytes of weights. Nothing in that list reaches for a server. And it
One image in, one box out
[0:33]Behaves the way a field tool should. One image in a box drawn where the bird is. 82% on that box and a line underneath saying highlighted areas show where a loon was found. Not a score on its own a place. The history page keeps the earlier checks on your own disc. Here is
The card the promise was about
[0:48]The card. The promise was about precision 93%. When it calls something a loon, it is almost always right. Recall 80. Mean average precision at 50 89. and the strict one 50 through 9561. Four numbers off the checkpoint itself, not a hand count this time. Two of those four
Two definitions that differ by one term
[1:05]Are a trade and the trade has a shape. Precision divides the true finds by everything it called a loon. Recall divides the same true finds by every loon that was really there. One number balances them. The harmonic mean 86. The card does not print it. I computed it from the two it does. But 80% recall has
One loon in five
[1:22]A plain meaning. One loon in five the model says nothing about. And there is a dial for it in the card. Confidence threshold 0.25. Drop it and you find more birds and more read beds. Hold it and the misses stay. That is a decision to make, not a bug to fix. So one page the promise is kept.
Verdict — promise kept, one number open
[1:39]Four numbers from the checkpoint inside the app. The detector left the notebook and runs on a laptop. It calls itself a prototype on every screen. And one loon in five is still unreported. That is next week. Your turn. If you have a
Your turn
[1:52]Model that only works in a notebook, try this before you demo it again. Put it in something a colleague can open with no terminal and no account. Then make the build write the model's own numbers into the bundle. If you cannot state recall on the way out the door, it is not shipped yet. What it promised and what
Outro
[2:08]It shipped. Sigh.
More from Madison
2:13Madison Weekly Update by Komal
2:33Madison Update: What the Measure was Hiding
2:35Building the Madison Pilot Runner | Karishma
2:24Building a Baseline AI Model for Wildlife Detection | Swara Joshi
2:20Human-in-the-Loop AI: Accelerating Wildlife Data Annotation | Madison
2:47