Image-Text-to-Text
Transformers
Safetensors
remote-sensing
earth-observation
geospatial
qwen2_5_vl
grpo
Instructions to use ibm-research/GeoVLM-R1 with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use ibm-research/GeoVLM-R1 with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("image-text-to-text", model="ibm-research/GeoVLM-R1")# pip install -U transformers accelerate # Load model directly from transformers import AutoModel model = AutoModel.from_pretrained("ibm-research/GeoVLM-R1", device_map="auto") - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- vLLM
How to use ibm-research/GeoVLM-R1 with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "ibm-research/GeoVLM-R1" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "ibm-research/GeoVLM-R1", "prompt": "Once upon a time,", "max_tokens": 512, "temperature": 0.5 }'Use Docker
docker model run hf.co/ibm-research/GeoVLM-R1
- SGLang
How to use ibm-research/GeoVLM-R1 with SGLang:
Install from pip and serve model
# Install SGLang from pip: pip install sglang # Start the SGLang server: python3 -m sglang.launch_server \ --model-path "ibm-research/GeoVLM-R1" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "ibm-research/GeoVLM-R1", "prompt": "Once upon a time,", "max_tokens": 512, "temperature": 0.5 }'Use Docker images
docker run --gpus all \ --shm-size 32g \ -p 30000:30000 \ -v ~/.cache/huggingface:/root/.cache/huggingface \ --env "HF_TOKEN=<secret>" \ --ipc=host \ lmsysorg/sglang:latest \ python3 -m sglang.launch_server \ --model-path "ibm-research/GeoVLM-R1" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "ibm-research/GeoVLM-R1", "prompt": "Once upon a time,", "max_tokens": 512, "temperature": 0.5 }' - Docker Model Runner
How to use ibm-research/GeoVLM-R1 with Docker Model Runner:
docker model run hf.co/ibm-research/GeoVLM-R1
File size: 2,555 Bytes
24d4dfa 7507bdb 24d4dfa 7507bdb | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 | ---
library_name: transformers
pipeline_tag: image-text-to-text
base_model: Qwen/Qwen2.5-VL-3B-Instruct
tags:
- remote-sensing
- earth-observation
- geospatial
- qwen2_5_vl
- grpo
---
# GeoVLM-R1
> **Disclaimer**
>
> THIS MODEL IS PROVIDED “AS IS,” WITHOUT WARRANTIES OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, ACCURACY, OR NON-INFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR THEIR AFFILIATES BE LIABLE FOR ANY DAMAGES ARISING FROM ACCESS TO OR USE OF THIS MODEL.
These models are released **without a license**. They are not open-source software.
Model weights for
[GeoVLM-R1: Reinforcement Fine-Tuning for Improved Remote Sensing Reasoning](https://arxiv.org/abs/2509.25026).
Each folder is a separate Qwen2.5-VL-3B checkpoint trained for one Earth-observation task.
| Model | Task | Benchmarks |
|-------|------|------------|
| [`GeoVLM_R1_Classification`](GeoVLM_R1_Classification) | Scene classification | AID, UCMerced, WHU-RS19, BigEarthNet, fMoW |
| [`GeoVLM_R1_VQA`](GeoVLM_R1_VQA) | Visual question answering | RSVQA-LR, RSVQA-HRBEN |
| [`GeoVLM_R1_Image_caption`](GeoVLM_R1_Image_caption) | Image captioning | NWPU-Captions, RSICD, RSITMD |
| [`GeoVLM_R1_Region_Captioning`](GeoVLM_R1_Region_Captioning) | Region captioning | GeoChat region captioning, NWPU VHR-10 |
| [`GeoVLM_R1_grounding`](GeoVLM_R1_grounding) | Visual grounding (grounding description) | NWPU VHR-10 grounding |
| [`GeoVLM_R1_Refer`](GeoVLM_R1_Refer) | Referred object detection | GeoChat referring detection, NWPU VHR-10 |
| [`GeoVLM_R1_CD_Caption`](GeoVLM_R1_CD_Caption) | Change-detection captioning | LEVIR-CC, Dubai-CC, MUDS, SYSU-CC |
| [`GeoVLM_R1_xBD_object_Detection`](GeoVLM_R1_xBD_object_Detection) | xBD object detection | xBD object detection |
| [`GeoVLM_R1_xBD_refer_object_detection`](GeoVLM_R1_xBD_refer_object_detection) | xBD referred object detection | xBD referred object detection |
See each folder's `README.md` for usage. Code for training, inference and evaluation is in the
[GeoVLM-R1 Toolkit](https://github.com/IBM/GeoVLM-R1-Toolkit).
## Citation
```bibtex
@article{fiaz2025geovlmr1,
title = {GeoVLM-R1: Reinforcement Fine-Tuning for Improved Remote Sensing Reasoning},
author = {Fiaz, Mustansar and Debary, Hiyam and Fraccaro, Paolo and Paudel, Danda and
Van Gool, Luc and Khan, Fahad and Khan, Salman},
journal = {arXiv preprint arXiv:2509.25026},
year = {2025}
}
```
## Contact
Mustansar Fiaz <mustansar.fiaz@ibm.com>
|