---
base_model: IFM/uno-qwen3-8b-base
library_name: transformers
license: apache-2.0
pipeline_tag: text-generation
tags:
- diffusion-language-model
- qwen3
- sdar
- custom_code
- peft
- lora
- speculative-decoding
- uno
---
Uno Qwen3-8B
**Paper:** [Unlocking Lossless Speedups in LLMs via Discrete Diffusion](https://huggingface.co/papers/2609.04010)
**Project page:** [https://s-sahoo.github.io/uno/](https://s-sahoo.github.io/uno/)

This repository is a self-contained inference bundle for Uno-Qwen3-8B. The
frozen verifier/base checkpoint is stored at the repository root, and the
rank-128 gated LoRA adapter used for noisy draft rows is stored under
[`adapter/`](./adapter).
Uno applies the adapter selectively during draft-noise forwards. Seed, prefill,
verification, and autoregressive rows use the frozen base weights. Loading the
adapter as an ordinary always-on PEFT adapter does not reproduce Uno decoding.
## Repository layout
```text
s-sahoo/uno-qwen3-8B
|-- config.json
|-- model-*.safetensors
|-- model.safetensors.index.json
|-- modeling_sdar.py
|-- tokenizer files
`-- adapter/
|-- adapter_config.json
`-- adapter_model.safetensors
```
## Evaluation protocol
The reproducible entry points are the Qwen benchmark wrappers in
[`ifm-ai/uno`](https://github.com/ifm-ai/uno/tree/main/scripts/qwen).
Unless an experiment explicitly overrides a setting, the release wrappers use
the following protocol:
| Setting | Value |
| --- | --- |
| Runtime | Uno with conditional gated-LoRA routing |
| Sampler | Linear diffusion |
| Diffusion block size | 16 |
| Temperature | 1.0 |
| Top-p | 0.95 |
| Top-k | 50 |
| Samples per problem | 1 |
| Noise mode | `random_uniform` |
| Served context length | 32,768 tokens |
| Maximum batched tokens | 32,768 |
| Maximum sequences per replica | 64 |
| Data / tensor parallel size | 8 / 1 |
| Attention backend | FlashAttention 2 |
Math tasks use the instruction `Please reason step by step and put your final
answer in \boxed{}.`. Benchmarks that request it in the release configuration
use `reasoning_effort=high` through the chat template.
| Benchmark | Problems | Scoring |
| --- | ---: | --- |
| GSM8K | 1,319 | Mathematical answer equivalence |
| MATH-500 | 500 | Mathematical answer equivalence |
| AIME 2024 | 30 | Mathematical answer equivalence |
| AIME 2025 | 30 | Mathematical answer equivalence |
| AIME 2026 | 30 | Mathematical answer equivalence |
| HumanEval | 164 | Code execution |
| MBPP | 500 | Code execution |
| LiveCodeBench v6 shard | 175 | Public and private test execution |
| GPQA Main | 448 | Multiple-choice answer matching |
| GPQA Diamond | 198 | Multiple-choice answer matching |
| MMLU-Pro | 12,032 | Multiple-choice answer matching |
| IFEval | 541 | Strict and loose instruction following |
| AA-LCR | 100 | External judge; data and judge must be supplied separately |
Generation artifacts are written to `generations.jsonl`.
`generation_summary.json` records all resolved settings, aggregate output TPS,
and TPF as accepted tokens divided by decoder sequence-forwards. Accuracy and
grader details are written to `grades.jsonl` and `scores.json` when the selected
benchmark has a local grader.
```python
from huggingface_hub import snapshot_download
snapshot = snapshot_download(
"s-sahoo/uno-qwen3-8B",
revision="",
)
print("Base:", snapshot)
print("Adapter:", f"{snapshot}/adapter")
```
With the [Uno repository](https://github.com/ifm-ai/uno/tree/main/scripts/qwen):
```bash
UNO_BUNDLE_REPO=s-sahoo/uno-qwen3-8B \
UNO_BUNDLE_REVISION= \
bash scripts/qwen/run_gsm8k_eval.sh
```
The repository contains custom model code. Conventional Transformers loading
of the base checkpoint requires `trust_remote_code=True`. Official Uno
generation additionally requires conditional adapter routing and lossless
verification implemented by the Uno runtime.