Instructions to use Edge0/Edge0-120B-NVFP4 with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- llama.cpp
How to use Edge0/Edge0-120B-NVFP4 with llama.cpp:
Install (macOS, Linux)
curl -LsSf https://llama.app/install.sh | sh # Start a local OpenAI-compatible server with a web UI: llama serve -hf Edge0/Edge0-120B-NVFP4 # Run inference directly in the terminal: llama cli -hf Edge0/Edge0-120B-NVFP4
Install from WinGet (Windows)
winget install llama.cpp # Start a local OpenAI-compatible server with a web UI: llama serve -hf Edge0/Edge0-120B-NVFP4 # Run inference directly in the terminal: llama cli -hf Edge0/Edge0-120B-NVFP4
Build from source code
git clone https://github.com/ggml-org/llama.cpp.git cd llama.cpp cmake -B build cmake --build build -j --target llama-app # Start a local OpenAI-compatible server with a web UI: ./build/bin/llama serve -hf Edge0/Edge0-120B-NVFP4 # Run inference directly in the terminal: ./build/bin/llama cli -hf Edge0/Edge0-120B-NVFP4
Use Docker
docker model run hf.co/Edge0/Edge0-120B-NVFP4
- Llama new
- LM Studio
- Jan
- vLLM
How to use Edge0/Edge0-120B-NVFP4 with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "Edge0/Edge0-120B-NVFP4" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "Edge0/Edge0-120B-NVFP4", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker
docker model run hf.co/Edge0/Edge0-120B-NVFP4
- Ollama
How to use Edge0/Edge0-120B-NVFP4 with Ollama:
ollama run hf.co/Edge0/Edge0-120B-NVFP4
- Unsloth Desktop
- Pi
How to use Edge0/Edge0-120B-NVFP4 with Pi:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf Edge0/Edge0-120B-NVFP4
Configure the model in Pi
# Install Pi: npm install -g @earendil-works/pi-coding-agent # Add to ~/.pi/agent/models.json: { "providers": { "llama-cpp": { "baseUrl": "http://localhost:8080/v1", "api": "openai-completions", "apiKey": "none", "models": [ { "id": "Edge0/Edge0-120B-NVFP4" } ] } } }Run Pi
# Start Pi in your project directory: pi
- Docker Model Runner
How to use Edge0/Edge0-120B-NVFP4 with Docker Model Runner:
docker model run hf.co/Edge0/Edge0-120B-NVFP4
- Lemonade
How to use Edge0/Edge0-120B-NVFP4 with Lemonade:
Pull the model
# Download Lemonade from https://lemonade-server.ai/ lemonade pull Edge0/Edge0-120B-NVFP4
Run and chat with the model
lemonade run user.Edge0-120B-NVFP4-{{QUANT_TAG}}List all available models
lemonade list
- Hermes Agent
How to use Edge0/Edge0-120B-NVFP4 with Hermes Agent:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf Edge0/Edge0-120B-NVFP4
Configure Hermes
# Install Hermes: curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash hermes setup # Point Hermes at the local server: hermes config set model.provider custom hermes config set model.base_url http://127.0.0.1:8080/v1 hermes config set model.default Edge0/Edge0-120B-NVFP4
Run Hermes
hermes
- Atomic Chat
- OpenClaw
How to use Edge0/Edge0-120B-NVFP4 with OpenClaw:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf Edge0/Edge0-120B-NVFP4
Configure OpenClaw
# Install OpenClaw: npm install -g openclaw@latest # Register the local server and set it as the default model: openclaw onboard --non-interactive --mode local \ --auth-choice custom-api-key \ --custom-base-url http://127.0.0.1:8080/v1 \ --custom-model-id "Edge0/Edge0-120B-NVFP4" \ --custom-provider-id llama-cpp \ --custom-compatibility openai \ --custom-text-input \ --accept-risk \ --skip-health
Run OpenClaw
openclaw agent --local --agent main --message "Hello from Hugging Face"
A 120B agent for local inference.
135.5 tok/s agent decode · 4357.1 tok/s 16K prefill · 75.3 terminal-bench 2.1.
Throughput measured on RTX 5090 D 24 GB · NVFP4.
A latent sparse MoE: 48 layers, 512 experts, 10 active per token, 256K context, trained natively at 4 bits.
This repository: Edge0-120B · NVFP4
ⓘ 120B NVFP4 was tested with a 16 GiB VRAM + 20 GiB host RAM budget on RTX 5090 D 24 GB. These are test limits, not minimum system requirements; see the speed table and residency figures below.
Model overview
NVFP4 · RTX 5090 D 24 GB. Prefill throughput uses a 16K-token input; weight sizes are listed separately for each format.
Quality
Higher is better. Results are listed by model.
Speed
Throughput is shown in tok/s, grouped by hardware and build. The summary above uses NVFP4 on RTX 5090 D 24 GB.
Full speed table · all reported machines and builds
Highlighted rows show the NVFP4 build in this repository.
| Machine | Build | 4K prefill | 16K prefill | Chat decode | Agent decode |
|---|---|---|---|---|---|
| RTX 5090 D 24 GB | Q3_K | 3236.7 | 4576.5 | 130.2 | 144.6 |
| RTX 5090 D 24 GB | NVFP4 | 2668.5 | 4357.1 | 124.9 | 135.5 |
| RTX 4090 24 GB | Q3_K | 2637.5 | 3551.1 | 95.0 | 104.9 |
| RTX Spark N1X 60 GiB | Q3_K | 987.0 | 1081.7 | 47.2 | 68.4 |
| RTX Spark N1X 60 GiB | NVFP4 | 996.4 | 1066.9 | 45.1 | 68.9 |
| Apple M2 Ultra (Metal) | Q3_K | 867.6 | 908.7 | 60.4 | 63.0 |
| 16 GiB VRAM + 20 GiB RAM | Q3_K | 430 | 778 | 62.4 | 73.3 |
| 16 GiB VRAM + 20 GiB RAM | NVFP4 | 361.1 | 619.7 | 51.3 | 59.9 |
Measurement conditions · constrained budget and memory residency
The 16 GiB VRAM + 20 GiB RAM rows are the same RTX 5090 D 24 GB, not a different card. VRAM is capped with --vram-reserve-mib 8192. System RAM is capped by a cgroup (MemoryMax=20G, no swap). With residency on, the same card holds Q3_K (27.98 GiB of weights)
as 22.93 GiB VRAM + 18.40 GiB RAM, and NVFP4 (32.96 GiB) as 23.02 GiB VRAM + 23.40 GiB RAM — disjoint expert sets,
nothing counted twice.
See Usage & troubleshooting for memory-saving options.
In action
These demonstrations were recorded with Edge0-145B.
Architecture
Architecture details · diagram, configuration and expert routing
| Edge0-120B | |
|---|---|
| Total parameters | 120B · 8.64 B active per token |
| Layers | 48 · hybrid attention, full every 4 layers + sparse indexer |
| Experts | 512 per layer, 10 routed + 1 shared active per token, SwiGLU width 640 |
| Expert pool | 60.4 B parameters at latent width ℓ = 1280 |
| PLE | 51.2 B n-gram embedding table, fp8, memory-mapped |
| MTP head | 1.26 B draft model, 512 experts, for speculative decode |
| Context | 256K · KV int8 with 32K resident |
| Builds | Q3_K 27.98 GiB · NVFP4 32.96 GiB |
Left: the stack the model actually runs — token embedding, 48 hybrid-attention layers, final norm, lm_head. Right: one layer opened up. Attention reads and writes the full 2560 width. D then projects the token down to ℓ per routing group, the router picks 10 of 512 experts, each expert runs ℓ → 640 → ℓ, a shared expert runs alongside, and U projects the combined result back to 2560.
Everything outside the expert pool stays at 2560: D and U are shared, one copy per layer. Only the 512 experts work at ℓ. That is why an expert is a fixed 1,164,800 B record — the engine keeps a few thousand of them on the card and streams the rest from host memory, at a cost that tracks how many experts are resident and not how big the model is.
Quick start
Each model folder (Q3_K or NVFP4, Edge0-145B or Edge0-120B) runs on Edge0
through edge0-infer, from the command line or from the Edge0 Chat desktop app. Keep the folder as it is:
edge0-infer identifies the model by model_name in its model.json.
Platform & documentation notes
The build instructions target NVIDIA GPUs with CUDA 13 on Linux or Windows (x64 or ARM64). The Apple M2 Ultra measurements use Metal; they do not establish macOS release availability.
Build & command-line instructions
1. Build. Clone the repository, then build two parts:
git clone https://github.com/Edge0-AI/Edge0.git edge0
- edge0-strata, the engine: follow "Build (Linux, NVIDIA)" or "Build (Windows, NVIDIA)" in edge0-strata/EDGE0.md.
- edge0-infer: follow "Build" (Linux) or "Windows" in edge0-infer/docs/getting-started.md.
2. Run from the command line. Pass one model folder, such as Edge0-120B-NVFP4, not the folder that holds several of
them. On Windows the program is build\windows\bin\edge0-infer.exe.
build/cpu/bin/edge0-infer serve --model /path/to/Edge0-120B-NVFP4
It prints Listening: http://127.0.0.1:8000 model=<name> once the weights are loaded, where <name> is edge0_120b,
and then serves OpenAI- and Anthropic-compatible endpoints:
curl localhost:8000/v1/chat/completions -H 'content-type: application/json' -d '{"model":"edge0_120b","messages":[{"role":"user","content":"hi"}],"max_tokens":64}'
edge0-infer chat --model /path/to/Edge0-120B-NVFP4 opens an interactive session instead. More options:
edge0-infer/docs/edge0-120b.md.
Desktop app · Windows
⬇️ Download: GitHub Releases
Open Edge0 Chat on Windows and choose a model folder, such as Edge0-120B-NVFP4, to run the model locally. To build the app from source, follow the Edge0 Chat guide.
Usage & troubleshooting
145B / 120B · Memory options
Low RAM · SSD offload
- SSD mode:
--mmap-experts— read uncached experts from SSD on demand. - Low-memory arguments:
--resident-budget-gib 20 --expert-profile expert-profile.bin
Up to 20 GiB of host RAM for the expert cache; uncached experts are read from SSD on demand. Includes --mmap-experts and disjoint GPU/RAM caches automatically.
Required: a static expert profile. Replace expert-profile.bin with your profile path.
RAM budget · what 20 GiB covers
- Expert cache:
--resident-budget-gib 20caps host-RAM expert caching at 20 GiB, lowered further to fit available memory. - Total RAM: expert cache + other runtime allocations. This flag does not set a total-process RAM limit.
- Benchmark limit: the 20 GiB total RAM test budget is a separate measurement condition.
GPU / RAM · avoid duplicate experts
- Enable:
--resident-expertsor--resident-budget-gib N, with a static--expert-profile. - Effect: experts cached in VRAM need no duplicate RAM copy. Compatible with SSD loading.
- Default: off, prioritizing speed.
- Automatically enabled:
--mmap-experts,--resident-cpu-experts,--resident-pin.
Capacity controls · VRAM and host RAM
All of these live in the pack's model.json, not on a command line: flags go in args, environment
variables in env, with paths relative to the pack directory. That is the same file the Edge0 Chat app
and edge0-infer read, so a change there applies to every launch.
"args": ["--expert-cache", "auto", "--kv-resident", "32768", "--vram-reserve-mib", "1024"],
"env": {"STRATA_LATENT_DENSE": "./latent_dense_q4.bin", "STRATA_LATENT_DENSE_FMT": "4",
"STRATA_LAT_FUSED_Q3K": "0"}
VRAM
| Flag | Meaning | Default |
|---|---|---|
--vram-reserve-mib N |
VRAM left free for the desktop, the driver and other processes; the engine sizes its caches from what remains. It means "leave this much free", not "give the engine this much", so the same number means different things on cards with different totals. Accepted but not listed by --help. |
700 |
--expert-cache N|auto |
Expert slots kept in VRAM. auto derives the count from the free VRAM after the fixed footprint (skeleton projections ≈ 2.9 GiB, MTP draft ≈ 0.8 GiB, verify and draft-head buffers ≈ 0.45 GiB, plus the D/U device buffers). |
0 (none) |
--expert-cache-device1..3 N|auto |
Use the second and third GPU as further expert-cache tiers. | off |
--kv-resident N |
Keep N KV cells per QSA layer in VRAM and stream the K/V from pinned host RAM, which frees VRAM for experts. | 0 (all in VRAM) |
--mtp-q4 all|proj|head |
4-bit copies of the draft layer's projections and/or head, about 0.3–0.5 GiB less VRAM. | off |
--prefill CHUNK |
Prompt chunk size; bigger chunks need bigger device buffers. auto uses the largest chunk whose buffers the expert cache can lend. |
auto |
--spec N |
The MTP drafter's verify window: how many tokens it proposes per check. A bigger window needs bigger verify buffers (about 180 MiB at 4) and pays off when every window has a fixed per-layer cost. The shipped packs use 4; the macOS setup picks 2, or 3 when the experts stream from SSD. Without an MTP layer there is no speculation. |
4 |
Host RAM
| Flag | Meaning | Default |
|---|---|---|
--memory-limit-mib N |
The RAM this engine's container or cgroup may use, for when the container cannot see its own limit. | 0 (detect) |
--resident-budget-gib N |
Cap on the host-RAM expert cache. It holds only the experts the VRAM cache does not hold, so the two sets are disjoint, and the value is clamped to the RAM actually available minus headroom. Requires a static --expert-profile. |
0 (off) |
--resident-experts |
The same with the whole complement as the budget. | off |
--mmap-experts |
Read experts through the pack file on demand instead of pinning them, so nothing is resident in RAM. | off |
--conversation-cache-mib N |
Conversation cache. 0 turns it off. |
adaptive |
--ple-io direct|mmap|ram |
The PLE table on its SSD: direct reads it unbuffered and it never enters memory; ram locks the whole table in RAM. |
direct |
--kv-resident N |
The streamed K/V lives in pinned host RAM (1.55 GiB at 32768 cells). | — |
Community builds
Third-party conversions of this model. They are not made or endorsed by Edge0; this model's licence and the upstream terms still apply to them.
- infosave/Edge0-120B-cmf — a single-file CMF build for cortiq (Rust, CUDA and Vulkan, OpenAI-compatible). The routed experts are this NVFP4 build's weights copied bit for bit; the D/U projections and the shared expert are re-encoded to 8 bits and the router to 16. The author reports it running from 12 GB cards.
Acknowledgements
Credits & license
We thank the teams behind Qwen3.8-Flash-Next and Strata for sharing their work with the community. Edge0 extends the Strata engine with latent MoE support.
Model license. Edge0-specific contributions are provided under the Edge0 Community Model License 1.0, only to the extent that Edge0 owns or is authorized to license them. Qwen materials remain subject to the Qwen Community License 1.0. Both sets of applicable terms must be followed; see NOTICE and the release scope.
The Edge0 license permits personal use, research, modification, noncommercial sharing, internal use, and commercial use of generated outputs, subject to applicable upstream conditions. Selling or commercially bundling the model, operating a commercial model service, or offering an independent commercial coding or office assistant using it requires a separate written Edge0 license. See LICENSE for the precise scope and exceptions.
Commercial licensing: info@edge0.ai. Edge0 permission does not waive Qwen's separate authorization or attribution requirements. Framework code retains its Apache-2.0 license; Strata retains its MIT license. Existing valid grants are not revoked.
- Downloads last month
- 112
We're not able to determine the quantization variants.
