LLM·

IFM releases K2 Horizon — Uno's LoRA diffusion adapter for block-parallel decoding — What does it mean?

The news. On September 3, 2026, the Institute of Foundation Models released K2 Horizon, six Apache-2.0 models — 375B-A23B, 36B-A4B, 32B, 7B, 3.7B and 0.9B — together with intermediate checkpoints, training code, data recipes, configurations and training logs. Shipped alongside them is Uno, which IFM describes as a "plug-and-play lossless speedup": a LoRA adapter you attach to a Horizon model so it generates blocks of tokens in parallel instead of one token at a time. Read the release →

Uno is an adapter that changes how fast a K2 Horizon model writes, not what it writes. Picture a bricklayer building a wall from an architect's drawing: the drawing settles every question about what the wall looks like, and the bricklayer only decides how fast it goes up. Autoregressive decoding is the brick-by-brick version: one token per forward pass, and every pass has to wait for the token before it. That is tolerable for a short reply and expensive for a reasoning trace, because, as IFM puts it, "even small per-token delays compound into substantial latency."

Both established fixes make you give something up. Speculative decoding brings in a second bricklayer — a small draft model that guesses ahead while the big model checks the guesses in one pass — so quality holds, but you now train, ship and serve an extra model. A discrete diffusion language model instead rebuilds the wall out of different material: it is trained from scratch to refine a whole block at once, which parallelises natively but, in IFM's words, "often sacrifices quality for speed."

Draft Model (1B) — generates K=5 tokens
Paris.Itis
↓ verify all at once
Target Model (70B) — one forward pass
Par is . It→The is
accepted
rejected → corrected
discarded
3 accepted + 1 corrected = 4 tokens from 2 forward passes
↻ repeat until done

Uno's move is to leave the drawing alone and change only the laying. The autoregressive weights stay frozen and, in IFM's phrasing, "fully responsible for the model's output distribution", while a small separate set of diffusion parameters "learns only how to generate more efficiently". Training those parameters is what IFM calls Diffusion Distillation: the adapters learn to reproduce the frozen model's own output a block at a time, the way a prefab panel is cast from the same bricks the wall would have used anyway. The whole thing ships as a LoRA adapter — the same low-rank adapter trick that serves many fine-tunes off one base model — so adopting it is an attach, not a retrain.

ApproachExtra model to train?Base weights changed?Quality claim
Autoregressive decodingNoThe baseline everything else is measured against
Speculative decodingYes — a separately trained draft modelNoPreserved by the verification step
Discrete diffusion LMYes — a different model entirelyRetrained from scratch"often sacrifices quality for speed" (IFM)
UnoNo — a LoRA adapter, at "negligible additional training overhead"No — frozenClaimed lossless; no speedup figure published (IFM)

Why the pass count is the thing to watch is easiest to see with round numbers (illustrative — IFM publishes no speedup figure for Uno). Hold three things fixed: a 500-token answer, a decode step that takes 20 ms, and a batch of one. Brick by brick, that is 500 sequential passes, or 10.0 seconds of decode. Now suppose the adapter commits an average of 4 tokens per pass, and each pass costs a little more — say 22 ms, because producing four tokens at once is more work than producing one. You need 125 passes instead of 500: 2.75 seconds, a 3.6× wall-clock reduction, even though every individual pass got 10% more expensive. The lever is the number of passes, not the price of one, which is why this family of tricks pays off exactly where decode dominates the request.

What the release does not give you is numbers. IFM reports that Uno "achieves a better speed–quality tradeoff than leading speculative-decoding systems and both open-weight and proprietary diffusion language models", and that its gains "persist across every batch size we tested" — but it publishes no speedup factor, no block size, and no rule for how a block is accepted. Until those land, the shape of the idea is the news: a frozen model plus a cheap adapter is a far lower-friction way to buy decode speed than either a second model or a second architecture. That the weights and the training code are Apache-2.0 is what makes the claim checkable at all.

Goes deeper in: LLM Serving → Speculative Decoding → Draft Model Variants

Related explainers

This news row produced a single concept, so there are no siblings from the same run. The closest neighbours already on the site:

Frequently Asked Questions

Check what you knowMap your AI & GPU knowledge across every track — free, role-based