Notes from the work

One email when a tutorial or migration write-up goes live. Nothing else, and an unsubscribe link in every email.

LeanZero

Two people in Romania doing Atlassian migrations, Forge apps and practical AI work for teams that would rather talk to the person doing the job. Most of what we learn ends up on this site.

Services

  • Atlassian migrations
  • Atlassian FastShift
  • Atlassian maintenance
  • Forge app development
  • AI development consultation

Topics

  • Jira
  • Jira Service Management
  • Confluence
  • Bitbucket
  • Atlassian Forge
  • Cloud Migration
  • Local AI
  • AI Coding
  • Certifications
  • Atlassian Team
  • All topics

Company

  • Blog
  • Tutorials
  • Contact

Community

  • Join Discord
  • Support this site

© 2026 LeanZero. All rights reserved.

Privacy policyTerms of service24/7 SupportTrust centerSecurityDPALegal notice
  1. Home
  2. Portfolio
  3. Elzi
  4. Features
  5. Speed
Elzi feature guide

Speed: measured numbers

Decode, prefill and time to first token from our own runs, with model, Mac and date.

These are speeds we measured ourselves, through Elzi's engine on our own Macs. Every row names the model, the Mac and the date, because the same model can run twice as fast on another Mac or with another setting. Decode is how fast the answer is written. Prefill is how fast the prompt is read. Time to first token is how long you wait before the answer starts, and it grows with the length of the prompt.

One Mac: a 27B model

TaskPlainWith MTPMTP + prompt lookup
Code edit21.442.8134.8
Document summary22.133.332.4
Free chat22.037.337.1
Qwen3.8-27B, our Atlassian fine-tune, 8-bit, on the M3 Ultra Mac Studio, 26 October 2026. Decode in tokens per second, median of three runs.
PromptFirst tokenPrefillDecode
217 tokens1.19 s182 tok/s22.1 tok/s
31,996 tokens184.9 s173 tok/s16.0 tok/s
The same model on a MacBook Pro (M4 Max, 128 GB), 23 September 2026, engine 0.14.3+lz.1, MTP on, median of three runs.

In an agent loop, where each turn sends the same long prompt plus a little more, the prompt cache matters more than raw speed. On that MacBook, time to first token per turn fell from about 25-29 seconds to 17.5-18 seconds when the engine started caching the changing tail of the prompt (engine lz.2, Elzi 3.0.16).

One Mac: Qwen3.8-Flash-Next at very long context

PromptFirst tokenPrefillDecode
455,700 tokens, cold691.5 s659 tok/sabout 27 tok/s
521,727 tokens, cold656.9 s794 tok/s28.4 tok/s
653,246 tokens (131,519 new on a cached prefix)317.1 s415 tok/s26.5 tok/s
Our own 4-bit build of Qwen3.8-Flash-Next from Qwen's official weights, on the M5 Max Mac Studio, 2 November 2026: Elzi 3.0.148, engine lz.24, the app's default YaRN context extension, three experimental attention switches on (still being evaluated then), one needle test per row.

Across that session decode stayed between 25 and 31 tokens per second from 455k to 653k tokens of context, and swap stayed flat. In the same session, sampling at temperature 1.0 with prompt lookup on a code rewrite, all 591 drafted tokens were accepted and decode reached 96.7 tokens per second.

Over LeanZero Link and across two Macs

Qwen3.8-27B (our Atlassian fine-tune) running on the M3 Ultra Mac Studio answered a chat from an M4 Max MacBook Pro over LeanZero Link at 29.9 tokens per second, reading the prompt at 314 tokens per second (24 September 2026).

Splitting one model across two Macs is for fitting a model that is too big for one, not for speed; the distributed serving page has the measurements.

What makes it faster

  • Prompt lookup and MTP, for text the model copies or rewrites.
  • The prompt cache, for agent loops and new chats that share a system prompt.
  • The memory lock, when other apps compete for memory during long chats.

Related guides

N-gram tables and prompt lookupDrafts copied from your own context make code edits much faster, with the same output.Serving a model on one MacElzi checks the memory, mounts the model and keeps long chats inside what fits.Distributed serving across two MacsSplit one model across two Macs over Thunderbolt, to run models too big for one.Memory lockKeep memory for your local model while other apps compete for it.

Facts on this page were checked against our own test records on 6 November 2026.

Using Elzi

  • What Elzi is
  • Agent sessions
  • Software build sessions
  • Benchmark runs
  • Nodes and strategies
  • Providers

The MLX engine

  • The LeanZero MLX engine
  • Serving a model on one Mac
  • Distributed serving across two Macs
  • N-gram tables and prompt lookup
  • Speed: measured numbers
  • Memory lock

Media and devices

  • Images
  • Voices
  • LeanZero Link

Elzi

  • All feature guides
  • Download and user manual