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
| 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}, | |
| } | |
| ``` |