Zephyrus-R1: Agentic Reinforcement Learning for Weather Reporting
Organizations: University of California, San Diego
Abstract
Reinforcement learning (RL) has emerged as a key method for training AI models in scientific applications, but RL remains difficult when outputs cannot easily be verified against a known ground-truth answer. Natural-language weather forecast reports are one such domain: they translate atmospheric data into assessments of weather evolution, hazards, and uncertainty for both the general public and key decision-makers. Unlike numerical weather-analysis questions, they admit many valid outputs, which limits deterministic verification. To address this, we develop Zephyrus-R1, a practical framework for RL on scientific weather forecast reporting. We focus on three key components of the agentic RL pipeline: reward design, curriculum learning, and an analysis of human-expert alignment. To encourage both report legibility and factual accuracy, we design a reward function that combines a meteorological rubric with bidirectional claim entailment, both evaluated against National Weather Service reference reports. Our framework optimizes this reward in a simulated tool-calling environment, enabling vision-language agents to gather and analyze forecast evidence across regions and lead times before producing a report. We use annotations from three meteorologists to audit the claim labels produced by our LLM judges. Finally, a curriculum helps small models first develop tool use and scientific reasoning through RL on verifiable weather-analysis questions, then optimize the open-ended report reward. After training Qwen3.5-4B with Zephyrus-R1, we improve the mean across six judge-metric scores by 26% over the base model and achieve results competitive with frontier open-weight models. For Qwen3.8-27B, we improve the same mean by 13% over the base model, by 6.7% over Kimi-K3, and by 2.7% over GPT-5.6-Luna.
Figures & tables
| Comparison | Acc. | Within-1 | |
|---|---|---|---|
| GPT-OSS-Expert 1 | 0.370 | 0.097 | 0.920 |
| GPT-OSS-Expert 2 | 0.630 | 0.346 | 0.960 |
| GPT-OSS-Expert 3 | 0.570 | 0.226 | 0.960 |
| Expert 1 -Expert 2 | 0.480 | 0.224 | 0.900 |
| Expert 1 -Expert 3 | 0.460 | 0.214 | 0.860 |
| Expert 2 -Expert 3 | 0.570 | 0.306 | 0.890 |
| GPT-OSS [-1pt] 120B | Gemma-3 [-1pt] 27B-IT | Mistral-Small [-1pt] 3.2-24B | |||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Model | Route | Rub. | F1 | Rub. | F1 | Rub. | F1 | Avg | |||||||
| Qwen3.5-4B | Base | 0.082 | 0.138 | 0.507 | 0.621 | 0.391 | 0.342 | 0.347 | |||||||
| Direct RL | 0.123 | +51% | 0.217 | +57% | 0.575 | +13% | 0.693 | +12% | 0.453 | +16% | 0.477 | +40% | 0.423 | +22% | |
| Curriculum RL | 0.129 | +57% | 0.231 | +67% | 0.514 | +1% | 0.768 | +24% | 0.441 | +13% | 0.548 | +60% | 0.438 | +26% | |
| Qwen3.8-27B | Base | 0.136 | 0.224 | 0.735 | 0.715 | 0.690 | 0.537 | 0.506 | |||||||
| Direct RL | 0.167 | +23% | 0.318 | +42% | 0.742 | +1% | 0.770 | +8% | 0.719 | +4% | 0.631 | +18% | 0.558 | +10% | |
| GPT-OSS [-1pt] 120B | Gemma-3 [-1pt] 27B-IT | Mistral-Small [-1pt] 3.2-24B | ||||||
|---|---|---|---|---|---|---|---|---|
| # | Model | Rub. | F1 | Rub. | F1 | Rub. | F1 | Avg |
| 1 | Qwen3.8-27B + Zephyrus-R1 | 0.260 | 0.312 | 0.778 | 0.736 | 0.728 | 0.615 | 0.571 |
| 2 | GPT-5.6-Luna | 0.170 | 0.297 | 0.713 | 0.801 | 0.698 | 0.660 | 0.556 |
| 3 | Kimi-K3 | 0.168 | 0.286 | 0.736 | 0.732 | 0.721 | 0.570 | 0.536 |
| 4 | DeepSeek-V4-Flash-Vision-Exp | 0.153 | 0.262 | 0.706 | 0.729 | 0.689 | 0.570 | 0.518 |
| 5 | GLM-5.3-Flash | 0.156 | 0.224 | 0.728 | 0.726 | 0.699 | 0.567 | 0.517 |
Appendix figures & tables12 assets
Supplementary material from the paper’s appendix.
Appendix
| Question template | Answer | Required tool |
|---|---|---|
| Geographic feature with the highest or lowest time-mean field value | location | dataset |
| Minimum, maximum, mean, or median field value over a named geographic feature | numerical | dataset |
| Sublocation within a named parent feature with the highest or lowest recorded field value | location | dataset |
| Hours from the initial time at which a named feature reaches its maximum or minimum field value | time | dataset |
| Minimum, maximum, mean, or median field value over a named feature at a specified time | numerical | dataset |
| Geographic features above or below a specified climatological percentile | anomaly list | climatology |
| Type | Required content | Score 1.0 | Score 0.5 | Score 0 |
|---|---|---|---|---|
| Numerical | one JSON number | relative error (absolute error if ) | relative error (absolute error if ) | otherwise |
| Time | one JSON number in hours | exact | within 6 h | otherwise |
| Location | JSON object with place name and value | normalized name equals or contains the gold name | wrong name, value inside the numerical 1.0 band | otherwise |
| Anomaly | JSON list of names (empty if none) | set F1 over normalized names, graded in | (graded) | no overlap |
| Verifier | Accuracy by answer type | ||||||
|---|---|---|---|---|---|---|---|
| Checkpoint | Acc. | Acc. reward | Tool | Num. | Loc. | Time | Anom. |
| Qwen3.5-4B | 0.394 | 0.394 | 0.996 | 0.334 | 0.400 | 0.392 | 0.522 |
| RSFT (step 546) | 0.498 | 0.496 | 0.988 | 0.467 | 0.521 | 0.457 | 0.595 |
| RL-only (step 44) | 0.572 | 0.572 | 0.998 | 0.549 | 0.562 | 0.526 | 0.709 |
| RSFT-RL (step 32) | 0.521 | 0.521 | 1.000 | 0.473 | 0.512 | 0.491 | 0.688 |
| Qwen3.8-27B | 0.648 | 0.648 | 0.998 | 0.571 | 0.637 | 0.685 | 0.785 |
| Setting | Value | Role |
| Rejection sampling | ||
| Base-policy rollouts per question | 8 | candidate trajectories for RSFT |
| Sampling | temperature 0.8 | diversify successful trajectories |
| Retention cap | 2 per question | limit repeated successes |
| Shared RL optimization | ||
| Sampling | temperature 0.6, top- 1.0 | rollout sampling |
| Criterion | Definition |
|---|---|
| Setup Fidelity & Key Feature Retention (Additions AND Omissions) | Accurately represents the specific synoptic/mesoscale features and stated hazards/corridors in the setup, without introducing unsupported details and without dropping any primary stated feature/hazard that changes the forecast story. |
| Spatiotemporal Specificity (Progression When Present; Persistence When Static) | Communicates where and when impacts occur with specificity appropriate to the setup: describes progression tied to moving features when the setup is progressive, or explicitly states persistence/limited movement when the setup is quasi-stationary. |
| Impact/Hazard Extraction & Prioritization (Reference-Weighted) | Identifies the setup’s main hazards and impact corridors (and any stated relative maxima/minima) and ranks them appropriately, using practical, decision-relevant framing without adding new hazards. |
| Mechanism-to-Weather Reasoning (Sufficient, Setup-Consistent) | Uses meteorologically correct, setup-consistent causal links (forcing, moisture transport, instability, terrain/onshore/upslope, deformation/lake-effect) to explain why impacts occur where/when described. Depth is rewarded but not required for a high score if the forecast is a faithful paraphrase. |
| Thermal/Airmass & Precip-Type Plausibility (No Out-of-Pattern P-Type) | Maintains a coherent temperature/airmass narrative consistent with the setup and seasonally plausible precipitation type statements (snow/ice/convective vs stratiform), avoiding thermodynamic regime shifts not supported by the setup. |
| Constraint-Respecting Detail & Calibration (No Invented Timing/Numbers/Pattern Labels) | Uses specificity only when supported: avoids invented cutoffs (“ends by Saturday evening”), ungrounded pattern labels (“split flow”) or pseudo-precision, and matches the setup’s confidence level (possible/expected/likely). |
RL for VLMs
Reinforcement learning for vision-language models aligns multimodal reasoning, tool use, and action with task-specific feedback.
See all 472 papers