Construction-site photo tagger (soupR)

Tags photographs from fibre/utility construction sites against a 29-term company taxonomy. LoRA adapter over Qwen/Qwen2.5-VL-3B-Instruct.

This is not a single fine-tune. It is an exact weight-space mean of three runs of the same recipe at seeds 42, 1337 and 7, formed by concatenating along the rank axis so the stack computes the true mean of the three updates (averaging the low-rank A and B factors separately would introduce cross terms belonging to no model). Rank 96 rather than 32. merge_and_unload() folds it into the base weights at load, so inference costs the same as a single adapter.

Scores

Micro-F1 on 283 held-out photographs, against labels a human reviewed image by image (445 corrections across train and test):

soupR (this model)              0.9018
  seed 7                        0.8833
  seed 1337                     0.8819
  seed 42                       0.8738
previous production model       0.8673

Four settings that must not drift

The adapter was trained under these and moves off its training distribution without them:

  • 560px images
  • the definitions prompt format
  • greedy decoding (do_sample=False)
  • the corrected trench thresholds (0.3/0.6 m, not 0.5/1.0)

That last one matters most. The training labels encode 0.3/0.6 m boundaries, so a prompt stating the old 0.5/1.0 m ones contradicts them, which costs about 0.035 micro-F1.

Usage

from peft import PeftModel
from transformers import AutoProcessor, Qwen2_5_VLForConditionalGeneration

base = "Qwen/Qwen2.5-VL-3B-Instruct"
model = Qwen2_5_VLForConditionalGeneration.from_pretrained(base, dtype="bfloat16", device_map="cuda")
model = PeftModel.from_pretrained(model, "alexha11/construction-tagger-soupR").merge_and_unload()
processor = AutoProcessor.from_pretrained(base)

Live demo: https://alexha11-construction-tagger.static.hf.space

Downloads last month
25
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for alexha11/construction-tagger-soupR

Adapter
(274)
this model