Instructions to use Marco711/Weather-R1 with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use Marco711/Weather-R1 with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("image-text-to-text", model="Marco711/Weather-R1")# Load model directly from transformers import AutoModel model = AutoModel.from_pretrained("Marco711/Weather-R1", dtype="auto") - Notebooks
- Google Colab
- Kaggle
- Local Apps
- vLLM
How to use Marco711/Weather-R1 with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "Marco711/Weather-R1" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "Marco711/Weather-R1", "prompt": "Once upon a time,", "max_tokens": 512, "temperature": 0.5 }'Use Docker
docker model run hf.co/Marco711/Weather-R1
- SGLang
How to use Marco711/Weather-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 "Marco711/Weather-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": "Marco711/Weather-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 "Marco711/Weather-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": "Marco711/Weather-R1", "prompt": "Once upon a time,", "max_tokens": 512, "temperature": 0.5 }' - Docker Model Runner
How to use Marco711/Weather-R1 with Docker Model Runner:
docker model run hf.co/Marco711/Weather-R1
File size: 3,471 Bytes
21495cc 19e0174 21495cc | 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 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 | ---
license: cc-by-nc-sa-4.0
pipeline_tag: image-text-to-text
library_name: transformers
tags:
- meteorology
- reasoning
- vlm
- weather
---
# π€οΈ Weather-R1: Multimodal Reasoning in Meteorology
This repository contains the checkpoints for **Weather-R1**, as presented in the paper [Weather-R1: Logically Consistent Reinforcement Fine-Tuning for Multimodal Reasoning in Meteorology](https://huggingface.co/papers/2601.14044).
[**Paper (ArXiv)**](https://arxiv.org/abs/2601.14044) | [**Code (GitHub)**](https://github.com/Marcowky/Weather-R1)
# π€οΈ Introduction
While Vision Language Models (VLMs) show advancing reasoning capabilities, their application in meteorology is constrained by a domain gap and a reasoning faithfulness gap. Mainstream Reinforcement Fine-Tuning (RFT) can induce Self-Contradictory Reasoning (Self-Contra), where the reasoning process contradicts the final answer, which is unacceptable in this high-stakes domain.
To address these challenges, we construct WeatherQA, a multimodal multiple-choice benchmark for meteorology comprising 15,400 entries that cover four themes and seven imaging modality tasks. We propose Logically Consistent Reinforcement Fine-Tuning (LoCo-RFT), which introduces a logical consistency reward to resolve Self-Contra. Based on this paradigm and WeatherQA, we present Weather-R1, the first reasoning VLM with logical faithfulness in meteorology, to the best of our knowledge. Weather-R1 (7B) achieves 52.9% accuracy on WeatherQA, a 9.8 percentage point gain over the baseline model Qwen2.5-VL-7B; it surpasses Supervised Fine-Tuning and RFT baselines, exceeds the original Qwen2.5-VL-32B, and improves out-of-domain ScienceQA performance by 4.98 percentage points.
<div align="center\">
<img src="asserts/Case_Study.png" width="70%" />
<p><em>Response Comparison.</em></p>
</div>
# ποΈ Folder Structure
This repository provides model checkpoints organized by training strategy and task:
```
Weather-R1/
ββ LoCo-RFT/ # Weather-R1 checkpoints
β ββ WeatherQA-500hPa/
β ββ WeatherQA-850hPa/
β ββ WeatherQA-Land/
β ββ WeatherQA-Max-Temp/
β ββ WeatherQA-Min-Temp/
β ββ WeatherQA-Phenom/
β ββ WeatherQA-Rain/
ββ RFT/ # Standard RFT checkpoints
β ββ WeatherQA-500hPa/
β ββ WeatherQA-850hPa/
β ββ WeatherQA-Land/
β ββ WeatherQA-Max-Temp/
β ββ WeatherQA-Min-Temp/
β ββ WeatherQA-Phenom/
β ββ WeatherQA-Rain/
ββ asserts/ # Figures used in README
```
Each task folder contains HuggingFace-style model files such as `config.json`,
`tokenizer.json`, and sharded weights like `model-00001-of-00004.safetensors`.
# π Training and Evaluation
Please refer to our official repository: [Weather-R1](https://github.com/Marcowky/Weather-R1)
# π Acknowledgements
Training code is built on [EasyR1](https://github.com/hiyouga/EasyR1).
# π Citation
If you use Weather-R1 resources, please cite the following paper:
```bibtex
@misc{wu2026weatherr1logicallyconsistentreinforcement,
title={Weather-R1: Logically Consistent Reinforcement Fine-Tuning for Multimodal Reasoning in Meteorology},
author={Kaiyu Wu and Pucheng Han and Hualong Zhang and Naigeng Wu and Keze Wang},
year={2026},
eprint={2601.14044},
archivePrefix={arXiv},
primaryClass={cs.CV},
url={https://arxiv.org/abs/2601.14044},
}
``` |