Downloads · 30 days
7
10% of all-time downloads
danvinci/lfm25vl_mosaic_change_detection
lfm25vl_mosaic_change_detection is a image-text-to-text model from danvinci. Use it for the image-text-to-text task on the model card, and read the license before you ship it in a product. It is set up for peft. The card lists the license as apache-2.0.
LoRA adapter for LiquidAI/LFM2.5-VL-1.6B, fine-tuned for satellite change detection across 7 event schemas (construction, flood, ice, thermal, urban, vegetation, wetland).
Downloads · 30 days
7
10% of all-time downloads
All-time downloads
67
Public
Repo size
60.4 MB
Likes
0
Public
Click a slice to open those files.
.safetensors60.4 MB · 93%
From the Hugging Face model README
LoRA adapter for LiquidAI/LFM2.5-VL-1.6B, fine-tuned for satellite change detection across 7 event schemas (construction, flood, ice, thermal, urban, vegetation, wetland).
On v2_val (700 rows, 33 positives + 67 nulls per schema):
| metric | value |
|---|---|
| F1 | 0.95 |
| accuracy | 0.969 |
| precision | 0.98 |
| recall | 0.92 |
Per-schema F1: IceExtent 1.00, ThermalHotspot 0.97, VegetationStress 0.97, UrbanChange 0.95, WetlandChange 0.95, FloodExtent 0.91, ConstructionProgress 0.90.
Null-baseline accuracy on this set is 0.670.
LiquidAI/LFM2.5-VL-1.6B (bf16)q_proj k_proj v_proj out_proj in_proj w1 w2 w3finetune_vision_layers=False); language tower onlyfrom peft import PeftModel
from transformers import AutoModelForCausalLM, AutoProcessor
import torch
base = AutoModelForCausalLM.from_pretrained(
"LiquidAI/LFM2.5-VL-1.6B",
torch_dtype=torch.bfloat16,
trust_remote_code=True,
).eval()
model = PeftModel.from_pretrained(base, "danvinci/lfm25vl_mosaic_change_detection")
processor = AutoProcessor.from_pretrained("LiquidAI/LFM2.5-VL-1.6B", trust_remote_code=True)
Generation defaults: do_sample=True, temperature=0.1, min_p=0.15, repetition_penalty=1.05 (Liquid's published values). Greedy decoding underperforms.
Per-schema predicate prompt of the form "did <schema> happen?" with two image inputs (before, after). The model returns either a JSON object matching the schema's field spec or the literal string null. See training/prompts.py for predicate_prompt() and parse_output().