23 1 month ago

Vidya Kisan is a fine-tuned Qwen3.5 offline agronomic advisory model for Indian smallholder farmers — crop disease, pest IPM, irrigation and nutrients — with least-harm-first advice and KVK escalation. Research preview

2b 4b
ollama run neosaket/vidya-kisan:2b

Models

View all →

Readme

Vidya Kisan 2B — offline agronomic advisory model (research preview)

A 2B-parameter, offline farm-advisory model for Indian smallholders, built on Qwen3.5-2B and quantised to Q4_K_M (~1.3 GB) so it runs on modest hardware without a network.

Status: research preview. NOT validated for field advisory use. Out of scope: giving real agronomic advice to real farmers. Harmful advice here can poison the person spraying or cost a season’s income.

Quickstart

ollama run neosaket/vidya-kisan:2b

The model ships with its advisory system prompt, a ChatML template, and three few-shot examples that prime the behaviours it is trained for: refuse-and-route on a banned product, hedge instead of guessing a diagnosis, and answer in the farmer’s language.

What it is designed to do

The intended architecture is sensor → structured fact → small LLM. A vision module classifies a leaf photo and a geospatial module scores a site; the model then explains, advises and localises over those structured facts. It is not designed to diagnose from a free-text description alone, and is meaningfully worse used that way.

Its answers are meant to be least-harm first (cultural, mechanical and biological steps before any chemical), to hedge honestly where the evidence does not settle a diagnosis, and to route any chemical dose or land-use decision to the local KVK/extension officer.

The runtime guards are not in these weights. serve/advisor.py in the project repo refuses unsupported languages, routes disaster questions to emergency services rather than an agricultural office, and appends an escalation sentence on high-stakes queries. Pulling this GGUF gets you the model without any of that.

This is NOT a vision model

ollama show neosaket/vidya-kisan:2b reports Capabilities: completion — text only. Do not send it images; it cannot read them.

The “vision” in the architecture is a separate on-device leaf classifier that runs before the model and hands it a structured fact like condition: early blight, confidence: 0.86. The model’s job is to explain and act on that fact in the farmer’s language. If you have a photo, classify it with your own model (or identify it yourself) and pass the conclusion as text.

Getting good responses

The single biggest quality lever is giving it facts instead of asking it to guess.

  1. Lead with structured facts. Crop, condition, confidence, growth stage, recent weather. This is the path it was trained for and it answers noticeably better.
  2. Say the crop explicitly. Its worst failure mode is attaching a real disease to the wrong crop.
  3. Ask one question at a time. Long multi-part questions degrade the answer.
  4. Use English. See the Hindi example below — it is not usable off its primed examples.
  5. Keep the shipped parameters. Especially repeat_penalty 1.05–1.15 and the stop tokens; changing them degenerates long answers.
  6. Treat every chemical name and dose as unverified and send it to a KVK officer.

Usage examples

Real, unedited output from neosaket/vidya-kisan:2b at its shipped settings (only terminal control characters removed).

Best: facts first

Facts:
- crop: tomato
- condition: early blight (Alternaria solani)
- classifier confidence: 0.86
- growth stage: fruiting
- last 7 days: 82% humidity, 3 rain days

The farmer asks: what should I do about this?

early blight spreads in warm, humid weather, so the best defense is cultural management: remove and destroy affected lower-lying leaves and old mulch, avoid overhead irrigation that wets leaves in the evening, and keep the root zone well-drained and free of weeds. […] A registered fungicide can be considered if the disease persists despite cultural steps, but please confirm the correct product, safety and the area it covers for your region with your KVK before spraying.

Cultural steps first, chemical last and hedged, routed to a KVK. That is the target behaviour.

Acceptable: free text, English

My tomato plants have brown spots on the lower leaves. What is it and what should I spray?

The description of brown spots with concentric rings and a yellow halo on lower leaves is typical of early blight […] please send a photo of the affected lower leaf and tell me your district so I can point you to the correct KVK.

Note it asks for a photo it cannot actually read — a symptom of the runtime being absent.

Safety: banned product

The shopkeeper says to spray monocrotophos on my brinjal for fruit borer. Should I?

I can’t recommend monocrotophos for brinjal fruit borer — it is banned for use in India and is acutely toxic to the person spraying it. Please ask your local KVK […] prefer biological and cultural methods first.

This is the behaviour the safety work targets. It is not reliable — the internal safety set still finds harmful answers.

What Hindi actually does

Ask it the Hindi question that is baked in as a few-shot example and it replays that answer fluently. Ask an unseen Hindi question and it collapses:

मेरी प्याज़ की फसल में पत्तियाँ नोक से सूख रही हैं। क्या करूँ?

पत्तियाँ नोक के लिए सबसे पहले कृपया यदि सूखने के बाद नुकसान होता है […] स्थानीकृत पहचान, उपयोगी कीमत और स्थानीकी कृषि के संबंधित वित्तारक के नाम की ज़रूरत होती है

स्थानीकृत, स्थानीकी and वित्तारक are not Hindi words, and the sentence does not parse. A second unseen question produced सुअरकार्य (textured soil) and सूचनात्मक स्थानीय (CLH) — also invented. Do not use this model in Hindi.

Measured limitations

These are measured, not hypothetical.

  • Treat it as English-only in practice. Despite the system prompt inviting any language, Hindi degenerates into invented non-words on any question outside its few-shot examples (see What Hindi actually does). It reproduces at temperature 0.3 — this is not sampling noise. Beware of judging Hindi by the primed examples: those replay cleanly and are not evidence the model works.
  • No native speaker has reviewed any Hindi or Marathi string in this project, including the safety escalation sentences appended to answers.
  • Marathi is not supported. There is no Marathi training data. The runtime refuses it; the raw model will answer anyway, with degenerate output.
  • The safety gate is not passed. The project’s target for harmful advice is zero on an internal 30-case set. The shipped builds do not reach it. Re-run the gate several times before trusting any single number.
  • The banned-substance screen is a seed list, not the authoritative CIB&RC list.
  • The vision and geospatial modules are scaffolds. No leaf classifier has been trained, so the fact-grounding the architecture depends on is not yet real.

Intended use

Research on small vernacular advisory models, evaluation methodology, and as a baseline for further training.

Do not deploy to farmers without a completed banned-substance list, native-speaker review, a reproducible safety gate the build actually passes, and a qualified agronomist in the loop.

Inference parameters

Ships with temperature 0.3, top_p 0.9, top_k 40, repeat_penalty 1.1, num_predict 1024, and stop tokens <|im_end|> / <|endoftext|>. Keep repeat_penalty in 1.05–1.15 — higher values degenerate long answers into garbled text. The template pre-fills an empty <think></think> block; removing it makes the model emit that block as literal text in every answer.

Licence and attribution

Inherits the Qwen3.5 base model licence. Training data includes the KisanVaani agri-QA dataset; its terms apply to derived weights. Confirm both before redistribution.