Skip to main content
株式会社オブライト
AI2026-09-1410 min read

Edge0-35B-A3B Requirements: Run 35B MoE in Under 3GB

Released Sep 2026, Edge0-35B-A3B-preview 4-bit-quantizes Qwen3.5-MoE 35B-A3B and streams experts off SSD on demand, running at under 3GiB of active memory and roughly 15-18 tok/s on MLX. Here's how it works, what hardware you need, how to run it, and how it compares to llama.cpp mmap offload and Colibri.


Edge0-35B-A3B streams MoE experts off SSD to run a 35B model in under 3GiB of RAM

Edge0-35B-A3B-preview is an open-weight model that Edge0-AI released in early September 2026. It's built on Qwen3.5-MoE 35B-A3B (35B total parameters, roughly 3B active per token) at 4-bit quantization. Normally you'd need to keep the full ~19.6GB of weights resident in memory, but Edge0 instead keeps all the weights on SSD and streams only the experts each token needs, holding active memory under 3GiB. On a Mac mini M4 Pro (24GB unified memory), measured decode speed is roughly 14.9-17.7 tok/s, with prefill at roughly 113 tok/s cold and 140 tok/s warm. It ships only as an MLX (Apple Silicon) implementation; as of September 2026, CUDA support is still a roadmap item.

Spec summary

ItemValue
Base modelQwen3.5-MoE 35B-A3B
Total parameters35B
Active parameters (per token)~3B (K=4 of 256 experts)
Layers40
Hidden size2048
Quantization4-bit (int4 base + LoRA + prerouter safetensors)
Full package disk size~19.6GB
Peak active memory (short context)~2.9GiB
Decode speed (measured, M4 Pro)~14.9-17.7 tok/s
Prefill speed (measured, M4 Pro)~113 tok/s cold / ~140 tok/s warm
Supported backendMLX (Apple Silicon). CUDA on the roadmap
LicenseApache 2.0

To compare memory needs against other models on your own GPU or Mac, our free VRAM calculator (no signup required) lets you pick a model, quantization, and context length. Note that the calculator uses the standard formula for loading full weights, so it does not capture Edge0's SSD-streaming trick (more on that below).

Why a 35B model can run in under 3GB of RAM

In a normal mixture-of-experts (MoE) model, which experts fire changes token by token, so every expert's weights have to sit resident in memory even though only a subset fires on any given token. As explained in our K2 Horizon requirements article, that "light on compute, heavy on memory" asymmetry holds even for a normal load of Qwen3.5-MoE 35B-A3B, the same base model Edge0 is built on. What Edge0 changes is that premise itself: it keeps all 256 experts' weights on SSD rather than in RAM, and a prediction head called the prerouter guesses ahead of time which 4 experts the next token will need, streaming just that slice into a RAM active buffer. The other 252 experts never load into RAM, so resident memory tracks the ~3B active count instead of the 35B total — under 3GiB.

Comparison diagram: normal loading keeps all 19.6GB of a 35B model's weights resident in RAM, while Edge0 keeps the full weights on SSD and has a prerouter predict, one step ahead, the 4 experts the next token will need, streaming only that slice into a sub-3GB RAM active buffer for MLX to compute on

The prerouter — predicting one step ahead to hide read latency

If Edge0 read experts from SSD fresh for every token, that read latency would show up directly as inference lag. To avoid that, it uses a lightweight prediction head called the prerouter that predicts token t's routing decision one step early, at token t-1. As soon as that prediction is made, an async read starts pulling the weights from SSD in the background, so by the time compute for token t-1 finishes, the weights token t needs are already sitting in RAM. This design reportedly improves decode throughput by up to 59% compared to reading synchronously with no prerouting. When the prediction misses, the missing expert is fetched from SSD on the spot — slower, but generation continues.

Two-lane timeline showing that while token t is being computed, the prerouter predicts the 4 experts token t+1 will need and an async read pulls them from SSD in the background, so by the time compute for the next step starts, the required weights are already sitting in RAM

Recover-LoRA — clawing back what 4-bit quantization loses

Alongside SSD streaming, the other key piece is Recover-LoRA. The int4-quantized base model is frozen, and LoRA adapters are trained by distillation from an FP-precision teacher model, recovering most of the quality lost to 4-bit quantization. Edge0's own reporting states that, after int4 quantization, evaluation scores drop by an average of only about 3.9 points versus the fp16 base (reported figures: 86.6 on AIME 2026, 90.9 on HumanEval, 79.8 on GPQA-Diamond, and 81.0 on MMLU-Pro). These numbers come from figures Edge0 has published; we have not independently reproduced them.

Required SSD speed, RAM, and supported hardware

- Storage: Official documentation says the architecture "assumes NVMe or comparable internal flash," but as of September 2026 no concrete required read speed (in GB/s) has been published. One community estimate puts the theoretical need at over 20GB/s if every token read cold off the drive, but in practice the OS file (page) cache serves most reads, so the actual sustained throughput needed appears to be lower. No test results for external SSDs or slower USB storage have been confirmed
- RAM (unified memory): Peak active memory is about 2.9GiB for short contexts. KV cache consumes RAM separately and grows with context length (the sibling Edge0-8B model reportedly measures ~3.3GiB total, including KV cache, at a 3.3k-token context). Treat 2.9GiB as a floor rather than a fixed figure when working with long prompts
- Supported hardware: As of September 2026, only the Apple Silicon MLX backend is supported. CUDA (NVIDIA GPUs) and general Windows/Linux support are roadmap items and do not work today
- Tested devices: Published information confirms measurements only on a Mac mini M4 Pro (24GB unified memory). The project claims support across M1-M4 generation Apple Silicon broadly, but per-device benchmarks are limited

How to use it — install to first chat

Edge0 is a Python package published by Edge0-AI. It fetches the full model package (base checkpoint plus LoRA adapter plus prerouter weights) from Hugging Face in one step and launches a chat session via the CLI.

# Install the package
pip install edge0[fetch]

# Fetch the full model package (base + LoRA + prerouter)
huggingface-cli download Edge0/Edge0-35b-a3b-preview

# Launch chat
edge0 chat --name edge0-35b

To try a development checkout of the repository directly, an editable install is also documented.

pip install -e 'git+https://github.com/Edge0-AI/edge0.git#egg=edge0[fetch]'

The Edge0 framework itself is designed as an extensible generalization of the "SSD expert offload + Recover-LoRA + prerouter routing prediction" recipe, and ships with two models out of the box: the 35B model covered here (Qwen3.5-MoE, K=4), plus the smaller Edge0-8B (Ling 3.0 hybrid, K=8, ~1.0GiB peak active memory). Backend code lives under edge0/backends/mlx/, structured to leave room for a future CUDA backend.

How it differs from existing approaches — llama.cpp mmap offload and Colibri

Edge0 isn't the first project to run an MoE model through SSD. llama.cpp can handle GGUF models via mmap, letting oversized models run with the OS handling paging even when they don't fit in physical memory. But OS-level page faults don't know what's needed next, so reads happen blindly, one blocking page at a time. Colibri, by contrast, is a C-based inference engine built to run the 370GB-class GLM 5.2 model on 25GB of RAM: it predicts router decisions ahead of time, requests the needed experts asynchronously, and speculatively preloads experts likely to be needed in the next layer (reported at roughly 72% prediction accuracy). The idea is close to Edge0's prerouter, but Colibri targets a general-purpose MoE model with 21,500+ fine-grained experts, and its measured throughput — roughly 0.1-1 tok/s — runs considerably slower than Edge0's.

ApproachExample target modelPredictive loadingQuality recoveryApprox. measured speedSupported backend
Edge0 (this article)Qwen3.5-MoE 35B-A3B (4-bit)Prerouter, one-step-ahead prediction (up to +59%)Recover-LoRA (distilled LoRA)~14.9-17.9 tok/s (M4 Pro)MLX (Apple Silicon only)
llama.cpp mmap offloadVarious GGUF MoE/dense modelsNone (relies on blind OS page faults)None (depends on quantization scheme)Varies widely by model and storageBroad CPU/GPU support (CUDA, Metal, etc.)
ColibriGLM 5.2 (370B class)Router-aware prefetch + speculative preload (~72% hit rate)None (depends on quantization scheme)~0.1-1 tok/sMostly CPU, pure C
Standard full load of Qwen3.5-35B-A3BQwen3.5-MoE 35B-A3B (unquantized to 4-bit)Not needed (all weights stay resident in RAM)Depends on quantization scheme (no Recover-LoRA)Depends on hardware (fast once it fits in VRAM/RAM)Implementation-dependent (llama.cpp, vLLM, MLX, etc.)

What the comparison shows is that Edge0 is a purpose-built implementation: it trains a prerouter and a Recover-LoRA specifically for one model at a time (Qwen3.5-MoE 35B-A3B, with Edge0-8B added later), rather than aiming for the general applicability of llama.cpp's mmap offload or Colibri. That narrower scope trades away generality, but the per-model tuning of the prediction head and quality-recovery LoRA puts its measured throughput among the faster SSD-streaming approaches we could confirm publicly at the time of writing.

Caveats and limitations

- It's a preview release: As the "preview" tag suggests, this isn't a final release. The README explicitly notes weak tool use, multi-step agentic planning, and long-horizon autonomy
- Apple Silicon only: As of September 2026, only the MLX backend runs. CUDA and Windows/Linux support are roadmap items and don't work yet
- KV cache grows with context: The 2.9GiB peak active memory figure is for short contexts. Long prompts or extended conversation history add to RAM usage via the KV cache
- No official storage-speed spec published: A concrete required read speed (in GB/s) isn't documented, and no test results exist for external or slower storage. Using anything other than internal NVMe means testing it yourself at your own risk

Related Articles

FAQ

What quantization does Edge0-35B-A3B use, and how much disk space does it need?

The base model is 4-bit quantized. The full package — base checkpoint, LoRA adapter, and prerouter weights combined — is about 19.6GB on disk. It is never fully loaded into RAM; it stays on SSD and only the needed slice is streamed in.

Why can a 35B model run in under 3GiB of RAM?

A normal MoE model keeps every expert's weights resident in RAM, even the ones a given token doesn't use. Edge0 instead keeps all 256 experts' weights on SSD, and a prediction head called the prerouter guesses, one step ahead, which 4 experts the next token will need, streaming only that slice into a RAM active buffer. Since only the ~3B-active slice is resident, memory stays under 3GiB.

What hardware does it run on? Does it work on Windows or NVIDIA GPUs?

As of September 2026 it only supports the Apple Silicon MLX backend, and the only publicly confirmed measurements are on a Mac mini M4 Pro. CUDA support and Windows/Linux support are roadmap items and don't work today.

How is this different from llama.cpp's mmap offload or Colibri?

llama.cpp's mmap offload relies on blind OS page faults with no prediction of what's needed next. Colibri has router-aware prefetch and speculative preloading, but targets a general-purpose MoE model and measures roughly 0.1-1 tok/s. Edge0 is a purpose-built implementation with a prerouter and Recover-LoRA trained specifically for Qwen3.5-MoE 35B-A3B, reaching roughly 14.9-17.7 tok/s on an M4 Pro — among the faster of the SSD-streaming approaches we could confirm.

What changes compared to running the standard Qwen3.5-35B-A3B model?

A standard load keeps all 35B of weights resident in RAM/VRAM, needing roughly 19.6GB even at 4-bit. Edge0 trades that down to under 3GiB via SSD streaming, but even with Recover-LoRA applied, it reportedly loses an average of about 3.9 points versus the fp16 base on benchmarks, and it's currently limited to Apple Silicon hardware.

Feel free to contact us

Contact Us