Model reference · open weights
Ouro-Thinking is an open-weight language model from ByteDance. AxForge deploys and operates it for you on dedicated EU-owned hardware — with the licence handled where one is required.
Available as managed deployment — configured and operated for you on dedicated EU hardware, quoted per deployment.
What it is
| Maker | ByteDance |
|---|---|
| Type | Language models |
| Task | Text gen |
| Parameters (lead) | 2.7B |
| Runs with | transformers |
| Released | 2025-10-28 |
| Popularity | 13k downloads / month |
| Licence | Open weights |
About
**⚠️ IMPORTANT: This model is intended for research purposes only. It is provided as-is without warranties for production use. **
Ouro-2.6B-Thinking is a reasoning-specialized variant of the Ouro-2.6B base model, enhanced through supervised fine-tuning on high-quality reasoning data. Please use transformers==4.54.1for compatibility.
The model's computational behavior can be configured through the config.json file:
{
"total_ut_steps": 4,
"early_exit_threshold": 1.0
}
total_ut_steps: Controls the number of recurrent steps (default: 4). You can adjust this value to trade off between performance and computation time.early_exit_threshold: Controls the adaptive exit mechanism (default: 1.0). Lower values encourage earlier exit, while 1.0 means always use all steps.Example: Modify recurrent steps
from transformers import AutoConfig, AutoModelForCausalLM
config = AutoConfig.from_pretrained("ByteDance/Ouro-2.6B-Thinking")
config.total_ut_steps = 3 # Use 3 recurrent steps instead of 4
model = AutoModelForCausalLM.from_pretrained(
"ByteDance/Ouro-2.6B-Thinking",
config=config,
device_map="auto"
)
Note: vLLM does not currently support the adaptive exit feature due to its inference optimization characteristics. When using vLLM, the model will always execute the full number of
total_ut_steps.
Based on Ouro-2.6B with additional reasoning fine-tuning:
| Configuration | Value |
|---|---|
| Parameters | 2.6B |
| Layers | 24 |
| Recurrent Steps | 4 |
| Hidden Size | 2048 |
| Attention Heads | Multi-Head Attention (MHA) |
| FFN Activation | SwiGLU |
| Position Embedding | RoPE |
| Vocabulary Size | 49,152 |
| Context Length | 32K (SFT) |
| Normalization | Sandwich RMSNorm |
⚠️ IMPORTANT: Please use transformers<4.56.0 to avoid compatibility issues. We recommend transformers==4.54.1 or earlier versions.
from transformers import AutoModelForCausalLM, AutoTokenizer
model_name = "Bytedance/Ouro-2.6B-Thinking"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(
model_name,
device_map="auto",
torch_dtype="auto"
)
# Generate with reasoning
messages = [
{"role": "user", "content": "Solve: If 2x + 3 = 11, what is x?"}
]
inputs = tokenizer.apply_chat_template(
messages,
tokenize=True,
add_generation_prompt=True,
return_tensors="pt"
).to(model.device)
outputs = model.generate(inputs, max_new_tokens=512, temperature=1.0, top_p=0.7)
print(tokenizer.decode(outputs[0], skip_special_tokens=True))
We thank @Antizana for the KV cache fix merged from ouro-cache-fix, which resolved a critical compatibility issue with transformers>=4.56.0.
@article{zhu2025scaling,
title={Scaling Latent Reasoning via Looped Language Models},
author={Zhu, Rui-Jie and Wang, Zixuan and Hua, Kai and Zhang, Tianyu and Li, Ziniu and Que, Haoran and Wei, Boyi and Wen, Zixin and Yin, Fan and Xing, He and others},
journal={arXiv preprint arXiv:2510.25741},
year={2025}
}
## License
This model is licensed under Apache-2.0. See the LICENSE file for details.
## Project Links
- **Paper**: [Scaling Latent Reasoning via Looped Language Models](https://huggingface.co/papers/2510.25741)
- **Project Page**: [https://ouro-llm.github.io](https://ouro-llm.github.io)
- **Code**: [https://github.com/ByteDance/Ouro](https://github.com/ByteDance/Ouro)
---
From the published model card. Full card on the HuggingFace links in the sidebar.
Using it via the API
Once AxForge deploys ouro-thinking for you, it answers on the OpenAI-compatible API — the same base URL and keys as every other model. (ouro-thinking below is illustrative; you get the exact model name on deployment.)
$ curl -sS https://api.axforge.ai/v1/chat/completions \
-H "Authorization: Bearer $AXFORGE_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"ouro-thinking","messages":[{"role":"user","content":"Hello"}]}'
Create an account — your API key is available in the console. 5M tokens/month currently included with every new account at launch.