---
title: UHR-BAT2-8B-20K
canonical_url: "https://www.modelscope.cn/models/KAIWANG/UHR-BAT2-8B-20K"
md_url: "https://www.modelscope.cn/models/KAIWANG/UHR-BAT2-8B-20K.md"
repository: KAIWANG/UHR-BAT2-8B-20K
chinese_name: "UHR-BAT2 8B"
last_updated: 2026-10-14
license: apache-2.0
pipeline_tag: image-text-to-text
tasks:
  - image-text-to-text
model_type:
  - qwen3_vl
architectures:
  - Qwen3VLForConditionalGeneration
base_model:
  - Qwen/Qwen3-VL-8B-Instruct
base_model_relation: finetune
parameters: 8.8B
tensor_type:
  - BF16
library_name:
  - transformer
  - safetensors
  - pytorch
frameworks:
  - pytorch
language:
  - en
  - zh
downloads: 8
stars: 0
tags:
  - qwen3_vl
  - remote-sensing
  - visual-question-answering
  - geospatial
  - uhr-bat2
---

# UHR-BAT2-8B-20K

> UHR-BAT2-8B-20K - KAIWANG 在 ModelScope 开源的模型。Native Qwen3-VL-8B remote-sensing VQA fine-tune on GeoLLaVA 20K; full BF16 weights.

KAIWANG/UHR-BAT2-8B-20K 是 ModelScope 魔搭社区上的 8.8B 参数image-text-to-text模型，采用 apache-2.0 许可，基于 Qwen/Qwen3-VL-8B-Instruct 构建。

- **Repository**: KAIWANG/UHR-BAT2-8B-20K
- **License**: apache-2.0
- **Tasks**: image-text-to-text
- **Parameters**: 8.8B
- **Base model**: Qwen/Qwen3-VL-8B-Instruct
- **Tags**: qwen3_vl, remote-sensing, visual-question-answering, geospatial, uhr-bat2
- **Downloads**: 8
- **Stars**: 0
- **Last updated**: 2026-10-14

Source: https://www.modelscope.cn/models/KAIWANG/UHR-BAT2-8B-20K

---

# UHR-BAT2-8B-20K

[English](README.md) | [简体中文](README_zh.md)

[Hugging Face](https://huggingface.co/FelixKAI/UHR-BAT2-8B-20K) · [ModelScope](https://www.modelscope.cn/models/KAIWANG/UHR-BAT2-8B-20K) · [Evaluation details](EVALUATION.md)

**A full-weight Qwen3-VL-8B fine-tune for remote-sensing visual question answering.**

This checkpoint keeps the native Qwen3-VL architecture and loads directly with Transformers. Training used a 20,000-record GeoLLaVA manifest, with the vision encoder frozen and the merger and LLM trainable. The original final export is `qwen3vl-8b-geollava-ft3-quota20k-1gpu`.

## Model and training

| Item | Value |
|---|---|
| Base | Qwen/Qwen3-VL-8B-Instruct |
| Data | [GeoLLaVA-Data](https://huggingface.co/datasets/initiacms/GeoLLaVA-Data), 20,000 training records |
| Weights | Full BF16 safetensors, 4 file(s) |
| Observed endpoint | 1,250 optimizer steps, epoch 1 |
| Optimizer / learning rate | Adafactor / 1e-05 |
| Per-device batch / accumulation | 1 / 16 |
| Image budget / maximum sequence length | 784–1,310,720 pixels / 8,192 tokens (launcher settings) |

The trainer state records one completed epoch. This is the final checkpoint; no validation-selected best checkpoint was recorded. Details are in [training_config.json](training_config.json) and [training_state_summary.json](training_state_summary.json). The original subset manifest is not included; its historical source path is currently unavailable, so the exact selection recipe has not been reconstructed.

## Archived evaluation results

The following results were recounted from existing prediction records on 2026-10-14. They use greedy answer generation and the archived answer parsers. They were not rerun for this release. The existing 8B 10K [UHR-BAT2](https://huggingface.co/FelixKAI/UHR-BAT2) card uses a different corrected candidate-logit/strict-option scoring protocol, so the tables should not be combined into a controlled comparison.

| Dataset | Archived accuracy | Correct / Total |
|---|---:|---:|
| RSHR-Bench | 50.10% | 968 / 1,932 |
| MME-RealWorld Remote Sensing | 55.89% | 2,089 / 3,738 |


MME covers the full 3,738-record remote-sensing subset. Legacy XLRS and LRS-VQA results, category counts and source hashes are in [EVALUATION.md](EVALUATION.md) and [evaluation_results.json](evaluation_results.json). The legacy XLRS single-letter parser does not support strict multi-select option-set scoring.

## Quick start

Use Python 3.10+ and a CUDA-enabled PyTorch installation.

```bash
pip install -r requirements.txt
python inference.py --model FelixKAI/UHR-BAT2-8B-20K --image /path/to/image.jpg --question "Describe this remote-sensing image."
```

```python
from transformers import AutoProcessor, Qwen3VLForConditionalGeneration
model_id = "FelixKAI/UHR-BAT2-8B-20K"
processor = AutoProcessor.from_pretrained(model_id)
model = Qwen3VLForConditionalGeneration.from_pretrained(
    model_id, dtype="auto", device_map="auto", attn_implementation="sdpa"
).eval()
```

For ModelScope, download the same package and use its local path with Transformers or `inference.py --model`:

```bash
pip install modelscope
```

```python
from modelscope import snapshot_download
local_path = snapshot_download("KAIWANG/UHR-BAT2-8B-20K")
```

Loading and short image-generation checks are recorded in [validation.json](validation.json); file hashes and tensor metadata are in [release_manifest.json](release_manifest.json).

## Limitations and attribution

Images are resized within the pixel budget. These archived results do not establish native full-resolution performance or geographic-disjoint generalization. The exact training selection and overlap have not been fully reconstructed. There is no controlled improvement claim over the unfine-tuned base model or between the 20K and 10K versions. Counting, small-object recognition and spatial reasoning can fail.

Released under [Apache-2.0](LICENSE), following the base model license. See [NOTICE](NOTICE). Training and evaluation datasets are not redistributed. We acknowledge the Qwen team, [GeoLLaVA contributors](https://github.com/MiliLab/GeoLLaVA-8K) and the benchmark authors.
