Key Features
- 30B total / 3B active parameters (Mixture-of-Experts)
- 262,144 token context window
- SwiReasoning integration — dynamic explicit/latent reasoning switching for Pareto-superior accuracy and efficiency
- Distilled from Qwen3-30B-A3B-Thinking-2507 with traces from Rio 2.5
- Multilingual — strong performance in Portuguese, English, Chinese, and dozens of other languages
- MIT License — fully open for commercial and research use
Benchmark Results
Mathematics & STEM
Table with columns: Model, GPQA Diamond, LiveCodeBench, Composite Math*, AIME 2025, AIME 2026 I, HMMT 2025 I, HMMT 2025 II, BRUMO 2025, CMIMC 2025, SMT 2025| Model | GPQA Diamond | LiveCodeBench | Composite Math* | AIME 2025 | AIME 2026 I | HMMT 2025 I | HMMT 2025 II | BRUMO 2025 | CMIMC 2025 | SMT 2025 |
|---|
| Rio 2.5 Open | 77.20% | 69.60% | 87.53% | 93.33% | 89.17% | 83.33% | 90.83% | 88.33% | 83.75% | 83.96% |
| Rio 2.5 Open (w/o latent) | 75.80% | 69.40% | 82.17% | 90.00% | 83.33% | 76.67% | 84.17% | 85.83% | 75.00% |
*Composite Math is the average across all other mathematics benchmarks in this table.
Rio Model Family Comparison
Table with columns: Model, GPQA Diamond, LiveCodeBench, Composite Math*, AIME 2025| Model | GPQA Diamond | LiveCodeBench | Composite Math* | AIME 2025 |
|---|
| Rio 3.0 Open | 85.10% | 76.00% | 91.78% | 96.67% |
| Rio 2.5 Open | 77.20% | 69.60% | 87.53% | 93.33% |
| Rio 3.0 Open Mini | 71.90% | 63.50% | 78.11% |
Gains Over Base Model (Qwen3-30B-A3B-Thinking-2507)
Table with columns: Benchmark, Base Model, Rio 2.5 Open, Δ| Benchmark | Base Model | Rio 2.5 Open | Δ |
|---|
| GPQA Diamond | 73.40% | 77.20% | +3.80% |
| LiveCodeBench | 66.00% | 69.60% | +3.60% |
| Composite Math | 76.08% | 87.53% | +11.45% |
| AIME 2025 | 82.50% | 93.33% | |
SwiReasoning: Latent/Explicit Reasoning
Rio 2.5 Open integrates SwiReasoning (Shi et al., 2025), a training-free inference framework that dynamically alternates between two reasoning modes:
- Explicit reasoning — standard chain-of-thought in natural language, where the model commits tokens to a single reasoning path
- Latent reasoning — continuous reasoning in hidden space, where the model explores multiple implicit paths simultaneously without emitting tokens
The switching is governed by block-wise confidence estimated from entropy trends in the next-token distribution. When confidence is low (entropy trending upward), the model enters latent mode to explore alternatives. When confidence recovers, it switches back to explicit mode to commit to a solution.
This approach achieves a Pareto-superior trade-off: higher accuracy at unlimited budgets and dramatically better token efficiency under constrained budgets.
The benchmark table above includes (w/o latent) rows showing performance with standard explicit-only reasoning, demonstrating the consistent gains from SwiReasoning across all benchmarks.
How to Use
from transformers import AutoModelForCausalLM, AutoTokenizer
model_name = "prefeitura-rio/Rio-2.5-Open"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(
model_name,
torch_dtype="auto",
device_map="auto"
)
prompt = "Write a poem about Rio de Janeiro."
messages = [
{"role": "user", "content": prompt}
]
text = tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)
inputs = tokenizer([text], return_tensors="pt").to(model.device)
outputs = model.generate(
**inputs,
max_new_tokens=81920,
temperature=0.6,
top_p=0.95,
)
response = tokenizer.decode(outputs[0][inputs.input_ids.shape[-1]:], skip_special_tokens=True)
print(response)
Using with vLLM
vllm serve prefeitura-rio/Rio-2.5-Open \
--tensor-parallel-size 4 \
--max-model-len 262144 \
--trust-remote-code
Using with SGLang
python -m sglang.launch_server \
--model-path prefeitura-rio/Rio-2.5-Open \
--tp 4 \
--context-length 262144 \
--trust-remote-code
Model Details
Table | |
|---|
| Developer | IplanRIO — Empresa Municipal de Informática e Planejamento S.A. |
| Base Model | Qwen3-30B-A3B-Thinking-2507 |
| Architecture | Mixture-of-Experts (MoE) Transformer |
| Total Parameters | ~30B |
| Active Parameters | ~3B |
| Context Length | 262,144 tokens |
| Default Max Output Length | 81,920 tokens |
| Training Method | Distillation |
Citation
If you use SwiReasoning, please also cite:
@misc{shi2025swireasoning,
title={SwiReasoning: Switch-Thinking in Latent and Explicit for Pareto-Superior Reasoning LLMs},
author={Dachuan Shi et al.},
year={2025},
eprint={2510.05069},
archivePrefix={arXiv},
primaryClass={cs.CL}
}
Acknowledgments
Rio 2.5 Open is built upon the exceptional work of the Qwen Team and their Qwen3 model family. We also acknowledge the authors of SwiReasoning for their innovative inference framework.
Developed in Rio de Janeiro 🇧🇷 by IplanRIO.