AUGURY treats weeds as soil-health indicators. It is an open-source pipeline that maps weed species to the soil conditions they indicate — compaction, waterlogging, nutrient imbalances, pH, salinity and organic-matter state. Indicators only, no management advice. No cloud required, and it is designed to run on a phone.
"The plant is the mirror of the soil." — Gérard Ducerf
How It Works
[photo] → DINOv2-base embedding → FAISS kNN over 111k-photo gallery → top-k species
[text] → deterministic species extraction (regex + fuzzy DB match)
│
▼
species_lookup.py → database-merged.json (2,230 spp)
│ the model NEVER generates facts
▼
MiniCPM5-1B + LoRA ("the voice") → conversational soil story
Three layers, one job each:
- Perception — retrieval, not classification. DINOv2-base embeddings plus FAISS over a 111,320-photo gallery. A new species means new photos and a DB row; the encoder never retrains. AU-scoped: 80.9% top-1 / 88.3% top-3 on 188 Australian weeds (alias-merged).
- Facts — a deterministic database. 2,230 species × region (Australia / Europe / UK) × indicator dicts, drawn from Ellenberg (1991), Maughan & Amos, CAWR and Australian government publications. The model formats these facts; it cannot hallucinate a pH value because it never generates one.
- Voice — one small fine-tune. A MiniCPM5-1B LoRA (r16/α32, 3 epochs, bf16, one A10 session) on 13,627 DB-generated rows. GGUF Q4_K_M = 660MB, phone-ready via llama.cpp. Eval: val loss 0.0398; 6/6 fact-keys echoed in a local smoke test.
Status (2026-08-13)
- ✅ Text funnel live: species extraction → DB → trained formatter story. Multi-species ("docks and thistles"), region-aware, with the correct refusal boundary (indicators only, never management advice). 6–12 s per answer on a 16-core laptop.
- 🔄 Photo path in progress: the full-gallery FAISS index is being built, with confidence bands (auto-accept / top-3 confirm / honest unknown).
- ✅ All artifacts published: model, species DB and training data. The vision gallery stays local as the index-build source (the runtime artifact is the compact FAISS index, not the raw images).
Quick Start
# text funnel (CLI)
.venv-mcpmv46/bin/python scripts/augury_funnel.py \
--model models/MiniCPM5-1B-AUGURY-Q4_K_M.gguf --region Australia \
"What does dandelion indicate about my soil?"
# chat server (Flask, feedback loop included)
.venv-mcpmv46/bin/python scripts/augury_server.py
Artifacts
| What | Where |
|---|---|
| Model (GGUF Q4_K_M / F16 / merged fp16 / LoRA adapter) | RegeneratusLabs/augury-1b |
| Species database (2,230 spp) | RegeneratusLabs/augury-species-db |
| Training data (13,627 rows) | RegeneratusLabs/augury-training-data |
| Vision gallery (111k images + license sidecars) | Local only; build-time source, never read at runtime |
| Vision retrieval index (runtime artifact, to be built) | RegeneratusLabs/augury-vision-index (pending) |
Lessons Learned
- Retrieval beats classification for open-ended fine-grained ID: nearest-neighbour search over the gallery scales to new species without retraining; a fixed classifier cannot.
- Loss is a liar: always evaluate per species on held-out data; never trust the train-loss curve alone.
- The voice model formats given facts; the funnel never lets it do anything else.
See the repo's technical stack and model card for details.
Roadmap
AUGURY is the first model in a composable SLM ecosystem for regenerative agriculture: AUGURY (weeds → indicators) → Soil Assessment SLM → Remediation SLM → Grazing SLM. Each model does one thing. All open source. All phone-deployable.
Links
- GitHub: RegeneratusLabs/AUGURY
- Hugging Face model: RegeneratusLabs/augury-1b
