Instructions to use HumanAIConvention/simsat-lfm25vl-450m-v1 with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- PEFT
How to use HumanAIConvention/simsat-lfm25vl-450m-v1 with PEFT:
from peft import PeftModel from transformers import AutoModelForCausalLM base_model = AutoModelForCausalLM.from_pretrained("LiquidAI/LFM2.5-VL-450M") model = PeftModel.from_pretrained(base_model, "HumanAIConvention/simsat-lfm25vl-450m-v1") - Notebooks
- Google Colab
- Kaggle
| base_model: LiquidAI/LFM2.5-VL-450M | |
| library_name: peft | |
| license: apache-2.0 | |
| tags: | |
| - lora | |
| - sft | |
| - trl | |
| - vision-language | |
| - earth-observation | |
| - sentinel-2 | |
| - simsat | |
| - liquid-ai | |
| # SimSat LFM2.5-VL-450M v1 — LoRA adapter (superseded by v3) | |
| > **NOTE — superseded by [`HumanAIConvention/simsat-lfm25vl-450m-v3`](https://huggingface.co/HumanAIConvention/simsat-lfm25vl-450m-v3).** | |
| > v1 stays published for reference; v3 is canonical. v3 holdout numbers | |
| > (+18.8 pp action / -47 pp MAE over v1 Run 14) are documented on the v3 | |
| > model card. | |
| LoRA fine-tune of [`LiquidAI/LFM2.5-VL-450M`](https://huggingface.co/LiquidAI/LFM2.5-VL-450M) | |
| trained on operator-reviewed Sentinel-2 tiles for the | |
| **AI in Space Hackathon (DPhi Space x Liquid AI)** — Liquid Track. | |
| ## Holdout eval (matched-pair, 32 samples, 8 per action class) | |
| | Metric | Base | Tuned (this adapter) | Tuned + `repetition_penalty=1.05` (Run A) | | |
| |---|---|---|---| | |
| | `exact_action_agreement` | 0.250 | 0.656 | **0.750** | | |
| | `score_mae` (lower is better) | 0.312 | 0.102 | **0.080** | | |
| | `parse_rate` | 1.000 | 0.906 | **1.000** | | |
| The 9.4 pp parse-rate dip on tuned-without-rep_penalty came from a | |
| numeric-field repetition loop on a single scene. Run A confirmed | |
| `repetition_penalty=1.05, no_repeat_ngram_size=20` at inference time | |
| recovers parse rate to 1.000 and lifts action agreement +9.4 pp without | |
| any retraining. v3 replicates this decode hardening AND adds 56 more | |
| operator-reviewed train rows. | |
| ## Recipe (preserved for v1 reproducibility) | |
| - TRL `SFTTrainer` + PEFT LoRA, `transformers` (main). | |
| - 109 train / 32 holdout (8 per class) / 4 legacy eval. | |
| - LoRA `r=16`, `alpha=32`, `dropout=0.05`; assistant-only loss masking. | |
| - AdamW `lr=2e-4`, 5 epochs, effective batch 8, `bfloat16`, T4 GPU. | |
| - 4,456,448 trainable / 453,175,296 total params (0.98%). | |
| Public training kernel: `benhaslam/simsat-lfm2-5-vl-v1-training` on Kaggle. | |
| ## Inference (recommended: use v3 instead) | |
| ```python | |
| # v3 adapter, applied to the same base model: | |
| from transformers import AutoModelForImageTextToText, AutoProcessor | |
| from peft import PeftModel | |
| base = "LiquidAI/LFM2.5-VL-450M" | |
| model = AutoModelForImageTextToText.from_pretrained(base, torch_dtype="bfloat16") | |
| processor = AutoProcessor.from_pretrained(base) | |
| model = PeftModel.from_pretrained(model, "HumanAIConvention/simsat-lfm25vl-450m-v3") | |
| out = model.generate( | |
| **inputs, max_new_tokens=256, do_sample=False, | |
| repetition_penalty=1.05, no_repeat_ngram_size=20, | |
| ) | |
| ``` | |
| ## License | |
| Apache-2.0, matching the LFM2.5-VL-450M base model. Sentinel-2 imagery | |
| (c) European Union, Copernicus Sentinel-2 data 2024-2026, redistributable | |
| under the [Sentinel data legal notice](https://sentinels.copernicus.eu/web/sentinel/terms-conditions). | |