trymirai/Qwen3.5-2B-L

Run locally on Apple devices with Mirai

Type
local
From
Alibaba
Quantization
Mirai Large
Parameters
2B
Size
1.9 GB
Source
Hugging Face

Mirai's Qwen3.5-2B Large Quantization

A lossless quantization that runs at about 110 tok/s on Apple M4 Pro while staying under 2.08 GB resident memory. Read more in our blog post.

Quickstart

If you are on macOS, the easiest way is to install the `mirai` Homebrew package and then run the CLI:

sh
brew install mirai
mirai --model trymirai/Qwen3.5-2B-L

Currently only Apple silicon inference is supported. If you want to build things from source, read this overview.

Model page | API Docs


Method

Mirai Large uses lossless 8-bit symmetric quantization, plus block-diagonal Random Hadamard Transforms with block size 32 to suppress outliers. The checkpoint is produced with Post-Training Quantization, using YAQA with additional stabilization heuristics.

Benchmarks & Evaluations

In our reasoning-enabled MMLU-Pro evaluation with an 81,920-token limit, Mirai-L reaches 61.5% accuracy, compared with 61.2% for the unquantized BF16 Qwen/Qwen3.5-2B baseline under the same setting.

DeviceGenerationPrefill
Apple A18 Pro25 tok/s412 tok/s
Apple M129 tok/s398 tok/s
Apple M242 tok/s552 tok/s
Apple M2 Pro80 tok/s1,017 tok/s
Apple M3 Max154 tok/s3,464 tok/s
Apple M449 tok/s1,079 tok/s
Apple M4 Pro110 tok/s2,068 tok/s
Apple M4 Max196 tok/s4,000 tok/s

Citation

If you find our work helpful, feel free to give us a cite.

bibtex
@misc{mirai-quant,
    title  = {{Mirai Quantization}: Redefining the speed-quality frontier for local LLMs on Apple silicon},
    author = {Artur Chakhvadze and Ryan Mathieu and Roman Knyazhitskiy and Nikolai Voinilenko and Chen-Chen Yeh and Artur Mullakhmetov and Eugene Bokhan and others},
    note   = {In collaboration with others at Mirai Labs},
    month  = {June},
    year   = {2026},
    url    = {https://trymirai.com/blog/quantization}
}
Explore all local models
1
Choose framework
2
Run the following command to install Mirai SDK
spm https://github.com/trymirai/uzu.git
3
Apply code
1import Uzu23public func runChat() async throws {4    let engineConfig = EngineConfig.create()5    let engine = try await Engine.create(config: engineConfig)67    guard let model = try await engine.model(identifier: "trymirai/Qwen3.5-2B-L") else {8        return9    }10    for try await update in try await engine.download(model: model).iterator() {11        print("Download progress: \(update.progress())")12    }1314    let messages = [15        ChatMessage.system().withText(text: "You are a helpful assistant"),16        ChatMessage.user().withText(text: "Tell me a short, funny story about a robot")17    ]18    let session = try await engine.chat(model: model, config: .create())19    let stream = await session.replyWithStream(input: messages, config: .create())20    var message: ChatMessage? = nil21    for try await update in stream.iterator() {22        switch update {23        case .replies(let replies):24            message = replies.last?.message25        case .error(let error):26            print("Error: \(error)")27        }28    }29    print("Text: \(message?.text() ?? "empty")")30}

Other local models from Alibaba