Pomona Ecosystem
Motivation: Small Verifiable Reasoners
This model is part of Pomona's small-model factory experiment: instead of relying on one large general-purpose LLM for every agriculture task, Pomona trains compact specialists for narrow, verifiable jobs and wraps them with deterministic safety logic.
This direction is inspired by recent small-reasoner work such as:
Pomona does not use VibeThinker code, weights, or training data. The connection is conceptual: VibeThinker-style work suggests that small models can become useful when the task is narrow, the output is verifiable, and evaluation is strict. Pomona applies that idea to agriculture by pairing a small LoRA reasoner with deterministic tomato safety rules.
In this release, the small model handles the learned risk-label classification behavior, while Pomona's rule checker enforces hard thresholds for missing data, impossible sensor values, water risk, fungal pressure, and actuator conflicts.
Base Model
- Base:
Qwen/Qwen2.5-0.5B-Instruct
- Adapter type: PEFT LoRA
- Output format: JSON list of risk labels
Allowed Labels
[ "high_ph", "low_ph", "high_ec", "low_ec", "heat_stress", "cold_stress", "fungal_pressure", "nutrient_uptake_issue", "sensor_anomaly", "missing_critical_data", "water_level_risk", "actuator_conflict"]
Recommended Use
sensor input -> v0.1.7 adapter predicts risk labels -> Pomona deterministic rule checker validates/corrects labels -> guarded hybrid output is used by API/dashboard
Do not use this adapter for direct pesticide dosage, autonomous fertigation changes, direct actuator control, definitive disease diagnosis, or unsafe chemical recommendations.
{ "system_type": "controlled_greenhouse", "crop": "tomato", "growth_stage": "flowering", "air_temperature_c": 24.0, "humidity_pct": 89.0, "co2_ppm": 600, "light_ppfd": 350, "ph": 6.2, "ec_ms_cm": 2.4, "water_temperature_c": 21.0, "substrate_temperature_c": 23.0, "substrate_moisture_pct": 45.0, "actuator_states": { "screen_energy_pct": 90 }, "symptoms": []}
Expected guarded Pomona output:
["fungal_pressure", "actuator_conflict"]
Local Pomona Usage
Clone the platform and run the guarded route end to end — no extra
dependencies, no private files required:
git clone https://github.com/okyanu/pomona.gitcd pomonacp .env.example .env./scripts/up.sh python3 examples/tomato_risk_quickstart.py
Runtime status: local Ollama inference for this adapter is wired into
the platform (schema-constrained JSON decoding via format in the Ollama
/api/chat request, so the model can only emit valid label lists), but it
is off by default (REASONER_BACKEND=rules). Enable it with
REASONER_BACKEND=ollama once pomona-tomato-risk:v0.1.7-local is built
and running locally — see
docs/LOCAL_MODEL_RUNTIMES.md
in the platform repo. Even with it enabled, hybrid_guarded mode validates
the model's output but keeps the deterministic rules as the final decision;
only model_only (evaluation) mode surfaces raw model output, currently at
0.60 label F1 on the 15-case golden smoke suite — well below the rules'
1.0, which is why the guardrail stays authoritative.
Evaluation Snapshot
Best standalone adapter from the local iteration:
v0.1.7 staged risk F1: 0.924 on its original staged testv0.1.7 golden risk F1: 0.667
Hybrid guarded evaluation with Pomona deterministic tomato rules:
golden eval: model-only risk F1: 0.667 hybrid risk F1: 1.000 corrections: 5 / 15 v0.1.7 staged test: model-only risk F1: 0.902 hybrid risk F1: 1.000 corrections: 59 / 473
The hybrid score is measured on a rule-derived eval set, so it should be interpreted as a guardrail integration check, not as an independent real-world agronomy benchmark. Future releases should add human-reviewed field cases.
Limitations
- Narrow tomato greenhouse risk-label classifier only.
- Not a chat model.
- Threshold reasoning is imperfect without Pomona guardrails.
- Does not replace agronomist review.
- Does not authorize autonomous actuator or chemical actions.
Intended Role In Pomona
This adapter is one small specialist in the Pomona small-model factory:
small task model + deterministic safety rules = practical local AI component
The platform repository keeps code, schemas, docs, and rule logic. Hugging Face stores model adapter weights.
Citation / References
If you discuss the design motivation, cite the VibeThinker papers as related small-reasoner inspiration, not as the source of this model:
@article{xu2025vibethinker15b, title = {Tiny Model, Big Logic: Diversity-Driven Optimization Elicits Large-Model Reasoning Ability in VibeThinker-1.5B}, author = {Xu, Sen and Zhou, Yi and Wang, Wei and Min, Jixin and Yin, Zhibin and Dai, Yingwei and Liu, Shixi and Pang, Lianyu and Chen, Yirong and Zhang, Junlin}, journal = {arXiv preprint arXiv:2511.06221}, year = {2025}} @article{xu2026vibethinker3b, title = {VibeThinker-3B: Exploring the Frontier of Verifiable Reasoning in Small Language Models}, author = {Xu, Sen and Liu, Shixi and Wang, Wei and Min, Jixin and Dai, Yingwei and Yin, Zhibin and Chen, Yirong and Zhou, Xin and Zhang, Junlin}, journal = {arXiv preprint arXiv:2606.16140}, year = {2026}}