argirovga / GeospatialVLM

VLM specially crafted for geospatial reasoning tasks

Repository from Github https://github.comargirovga/GeospatialVLMRepository from Github https://github.comargirovga/GeospatialVLM

πŸ“ Geospatial VLM

πŸ—‚οΈ Project Structure

β”‚
β”œβ”€β”€ datasets/ # folder with all of the data used for training and scripts for loading it on server
β”‚   └── custom_dataset/ # folder with our special custom dataset
β”‚   β”‚   β”œβ”€β”€ base/ # folder with final parquets used for first pre train stage (only captions)
β”‚   β”‚   β”œβ”€β”€ fine_tune/ # folder with final parquets used for second finetune stage (various RS tasks)
β”‚   β”‚   β”œβ”€β”€ dataset_gather/ # folder with scripts used for gathering our custom dataset
β”‚   β”‚   └── data_EDA.ipynb # notebook with different statistics, hypothesis checking scripts and etc.
β”‚   └── vhm_dataset/ # folder with original dataset configured by https://github.com/opendatalab
β”‚
β”œβ”€β”€ eval/ # folder with all files used to evaluate models
β”‚   β”œβ”€β”€ eval_kits/ # various opensource benchmarks used to evaluate our trained models
β”‚   β”‚   β”œβ”€β”€ RSEvalKit/ # eval kit 1, special thank to authors for their contribution -> https://github.com/fitzpchao/RSEvalKit/tree/master?tab=readme-ov-file
β”‚   β”‚   └── ScoreRS/ # eval kit 2, special thank to authors for their contribution -> https://github.com/NJU-LHRS/ScoreRS/tree/main
β”‚   β”‚       β”œβ”€β”€ python_script/ # main folder with scripts to run model inferences
β”‚   β”‚       β”œβ”€β”€ eval_data/ # folder with datasets used in this benchmarks
β”‚   β”‚       β”œβ”€β”€ eval_launches/ # folder with bash files to launch model inferencing
β”‚   β”‚       └── ... # other scripts used by ScoreRS
β”‚   └── eval_results/
β”‚       β”œβ”€β”€ model_evaluator/ # folder with streamlit app and notebooks used to build leaderboard and compare models
β”‚       β”‚   β”œβ”€β”€ get_all_model_profiles.ipynb # notebook with simple scripts to get the benchmarks results of all tested models
β”‚       β”‚   └── leaderboard.py # script to launch streamlit app to view testing results
β”‚       β”œβ”€β”€ score_rs_eval_results/ # folder with results of inferencing models on eval kit 1 (RSEvalKit)
β”‚       └── rsevalkit_eval_results/ # folder with results of inferencing models on eval kit 2 (ScoreRS)
β”‚
β”œβ”€β”€ models/ # different models architectures used and developed
β”‚   β”œβ”€β”€ VHM/ # base of this model was taken from this repository -> https://github.com/opendatalab/VHM, special thanks to the authors
β”‚   β”‚    β”œβ”€β”€ scipts/ # folder with bash scripts to launch training processes + deepspeed configurations
β”‚   β”‚    β”‚   β”œβ”€β”€ rs/ # folder with bash scripts to launch training processes
β”‚   β”‚    β”‚   └── zero2.json | zero3_offload.json | zero3.json | # deepspeed configurations
β”‚   β”‚    β”œβ”€β”€ trained_models/ # folder with trained models weights and configurations
β”‚   β”‚    └── vhm/ # main model folder
β”‚   β”‚        β”œβ”€β”€ model/ # folder with architecture designed by https://github.com/opendatalab
β”‚   β”‚        β”œβ”€β”€ train/ # scripts to train VHM based models\
β”‚   β”‚        β”‚   β”œβ”€β”€ train.py # original vhm training script with llama attention
β”‚   β”‚        β”‚   β”œβ”€β”€ train_mem.py # original vhm training with flash attention
β”‚   β”‚        β”‚   β”œβ”€β”€ train_custom_dataset.py # custom training script for vhm based models with llama attention
β”‚   β”‚        β”‚   β”œβ”€β”€ train_custom_dataset_flash_attention.py # custom training script for vhm based models with flash attention
β”‚   β”‚        β”‚   └── ... # other scripts
β”‚   β”‚        └── ... # other utils
β”‚   β”œβ”€β”€ VHM_W_Q_FORMER/ # custom arhitecture
β”‚   β”‚    β”œβ”€β”€ scipts/ # folder with bash scripts to launch training processes + deepspeed configurations
β”‚   β”‚    β”‚   β”œβ”€β”€ rs/ # folder with bash scripts to launch training processes
β”‚   β”‚    β”‚   └── zero2.json | zero3_offload.json | zero3.json | # deepspeed configurations
β”‚   β”‚    β”œβ”€β”€ trained_models/ # folder with trained models weights and configurations
β”‚   β”‚    └── vhm_w_q_former/ # main model folder
β”‚   β”‚        β”œβ”€β”€ model/ # folder with architecture designed by us
β”‚   β”‚        β”œβ”€β”€ train/ # scripts to train models\
β”‚   β”‚        β”‚   β”œβ”€β”€ train.py # training script with llama attention
β”‚   β”‚        β”‚   β”œβ”€β”€ train_mem.py # training with flash attention
β”‚   β”‚        β”‚   β”œβ”€β”€ train_custom_dataset.py # custom training script for q-former models with llama attention
β”‚   β”‚        β”‚   β”œβ”€β”€ train_custom_dataset_flash_attention.py # custom training script for q-former models with flash attention
β”‚   β”‚        β”‚   └── ... # other scripts
β”‚   β”‚        └── ... # other utils
β”‚   β”œβ”€β”€ VHM_W_Q_FORMER_V2/ # custom arhitecture
β”‚   β”‚    β”œβ”€β”€ scipts/ # folder with bash scripts to launch training processes + deepspeed configurations
β”‚   β”‚    β”‚   β”œβ”€β”€ rs/ # folder with bash scripts to launch training processes
β”‚   β”‚    β”‚   └── zero2.json | zero3_offload.json | zero3.json | # deepspeed configurations
β”‚   β”‚    β”œβ”€β”€ trained_models/ # folder with trained models weights and configurations
β”‚   β”‚    └── vhm_w_q_former/ # main model folder
β”‚   β”‚        β”œβ”€β”€ model/ # folder with architecture designed by us
β”‚   β”‚        β”œβ”€β”€ train/ # scripts to train VHM based models\
β”‚   β”‚        β”‚   β”œβ”€β”€ train.py # custom training script with llama attention
β”‚   β”‚        β”‚   β”œβ”€β”€ train_mem.py # training with flash attention
β”‚   β”‚        β”‚   β”œβ”€β”€ train_custom_dataset.py # custom training script for models with q-former
β”‚   β”‚        β”‚   β”œβ”€β”€ train_custom_dataset_flash_attention.py # custom training script for q-former models with flash attention
β”‚   β”‚        β”‚   └── ... # other scripts
β”‚   β”‚        └── ... # other utils
β”‚   β”œβ”€β”€ VHM_W_QWEN/ # custom arhitecture
β”‚   β”‚    β”œβ”€β”€ scipts/ # folder with bash scripts to launch training processes + deepspeed configurations
β”‚   β”‚    β”‚   β”œβ”€β”€ rs/ # folder with bash scripts to launch training processes
β”‚   β”‚    β”‚   └── zero2.json | zero3_offload.json | zero3.json | # deepspeed configurations
β”‚   β”‚    β”œβ”€β”€ trained_models/ # folder with trained models weights and configurations
β”‚   β”‚    └── vhm_w_qwen/ # main model folder
β”‚   β”‚        β”œβ”€β”€ model/ # folder with architecture designed by us
β”‚   β”‚        β”œβ”€β”€ train/ # scripts to train VHM based models\
β”‚   β”‚        β”‚   β”œβ”€β”€ train.py # custom training script with qwen
β”‚   β”‚        β”‚   β”œβ”€β”€ train_mem.py # training with flash attention
β”‚   β”‚        β”‚   β”œβ”€β”€ train_custom_dataset.py # custom training script for qwen models
β”‚   β”‚        β”‚   β”œβ”€β”€ train_custom_dataset_flash_attention.py # custom training script for qwen models with flash attention
β”‚   β”‚        β”‚   └── ... # other scripts
β”‚   └──      └── ... # other utils
└── README.md

About

VLM specially crafted for geospatial reasoning tasks

License:Apache License 2.0


Languages

Language:Jupyter Notebook 41.6%Language:Python 37.7%Language:C++ 12.9%Language:Cuda 6.6%Language:Shell 0.7%Language:CMake 0.5%Language:PowerShell 0.0%Language:Makefile 0.0%Language:Batchfile 0.0%Language:C 0.0%Language:CSS 0.0%