+
+
+Full release notes
+
- **[2026-11-13]** We released **`edge0-145b`** and **`edge0-120b`**, latent mixture-of-experts models derived from Qwen3.8-Flash-Next for a single NVIDIA GPU on Linux or Windows. They run on [edge0-strata](edge0-strata/EDGE0.md), which `edge0-infer serve` and `edge0-infer chat` start for them; see the [model page](docs/models/edge0-145b.md). Weights on Hugging Face: [`Edge0-145B-q3k`](https://huggingface.co/Edge0/Edge0-145B-q3k) · [`Edge0-145B-NVFP4`](https://huggingface.co/Edge0/Edge0-145B-NVFP4) · [`Edge0-120B-q3k`](https://huggingface.co/Edge0/Edge0-120B-q3k) · [`Edge0-120B-NVFP4`](https://huggingface.co/Edge0/Edge0-120B-NVFP4).
- **[2026-11-04]** We released the **unified inference engine [`edge0-infer`](edge0-infer/README.md)**: built on [GGML](https://github.com/ggml-org/ggml), one engine and one native C++ API run the same model on macOS, iOS, Android and Windows, with a CLI, an OpenAI-compatible local server, and chat app examples for desktop, Android and iOS. The first release supports `edge0-35b`; `edge0-8b` follows in a later release. It replaces the Python framework and the per-platform engines; the previous code is kept at tag [`pre-edge0-infer`](https://github.com/Edge0-AI/Edge0/tree/pre-edge0-infer).
- **[2026-09-30]** We released the **edge0 inference engines for four platforms — iOS, macOS, Android and Windows** (source at tag [`pre-edge0-infer`](https://github.com/Edge0-AI/Edge0/tree/pre-edge0-infer)).
- **[2026-09-16]** Our technical report is on arXiv: [The Other Half of the Memory Wall: Serving 35B MoEs from SSD with Trained Routing Prediction](https://arxiv.org/abs/2609.18063).
- **[2026-09-08]** Initial open-source release of **edge0**, together with both model tiers — [`Edge0-35B-A3B-preview`](https://huggingface.co/Edge0/Edge0-35B-A3B-preview) and [`Edge0-8B-A1B-preview`](https://huggingface.co/Edge0/Edge0-8B-A1B-preview) — on Hugging Face and ModelScope.
+
+
+
+
+
+
Previous release
+
+→ [35B / 8B release guide](docs/legacy-models.md) — model downloads, architecture, benchmarks, supported platforms and setup instructions.
+
+
+
## About
-**edge0** is an open-source streaming MoE inference framework. It
-generalizes the production-proven recipe — **SSD expert offload +
-Recover-LoRA + prerouter routing prediction** — into an extensible
-framework that runs large sparse-MoE models on consumer hardware: peak
-memory is bounded by the *active* expert set, not the parameter count.
-
-### Core mechanisms
-
-- **SSD expert offload**: expert weights are streamed from storage on
- demand; peak memory is bounded by the active set, not the parameter
- count.
-- **Prerouter**: a trained head predicts expert routing one step
- ahead, so expert loads overlap the forward pass instead of stalling
- it — **up to +59%** decode throughput; the gain grows with storage
- latency, model size, and routed width *K*.
-- **Recover-LoRA**: the int4 base is frozen and LoRA adapters are
- trained by distillation from the FP teacher, recovering most of the
- quantization loss at 4-bit (see [Quality](#quality)). Adapters are
- stored separately from the base and can be switched on or off.
+
Edge0 is an open-source streaming MoE inference framework for running large sparse models on consumer hardware.
+
+Use it through the command line, a local API server, or the Edge0 Chat app.
+
+The latest release brings 145B and 120B latent-MoE models to a single NVIDIA GPU.
+
+Trained natively at 4 bits, both models are available in Q3_K and NVFP4 for local agent workloads.
+
+[`edge0-infer`](edge0-infer/README.md) provides shared `serve` and `chat` commands and selects the engine from the model folder. The latest models run on [edge0-strata](edge0-strata/EDGE0.md), a fork of Strata; the previous 35B release runs on the [GGML-based native engine](docs/legacy-models.md#native-engine-design).
### Platforms
-[`edge0-infer`](edge0-infer/README.md) is the program you run (CLI, local OpenAI- and Anthropic-compatible server, chat apps), with the same commands for every model. Each model runs on the engine built for it, and edge0-infer picks the engine from the model folder; there is nothing to choose: `edge0-35b` runs on the **native engine** in `edge0-infer/` (built on GGML, with a native C++ API), and `edge0-145b` and `edge0-120b` run on **edge0-strata** in [`edge0-strata/`](edge0-strata/EDGE0.md), a fork of Strata.
+Support depends on the model and its engine.
+
+| Platform | `edge0-145b`, `edge0-120b` (edge0-strata) | `edge0-35b` (native engine) |
+| --- | --- | --- |
+| **Linux** | NVIDIA GPU (CUDA 13) | CPU |
+| **Windows** | NVIDIA GPU (CUDA 13) | CPU, Vulkan |
+| **macOS** (Apple Silicon) | — | Metal, CPU |
+| **iOS** | — | Metal |
+| **Android** | — | CPU |
-| Platform | `edge0-35b` (native engine) | `edge0-145b`, `edge0-120b` (edge0-strata) |
-|---|---|---|
-| **macOS** (Apple Silicon) | Metal, CPU | — |
-| **iOS** | Metal | — |
-| **Android** | CPU | — |
-| **Linux** | CPU | NVIDIA GPU (CUDA 13) |
-| **Windows** | CPU, Vulkan | NVIDIA GPU (CUDA 13) |
+Use the [145B / 120B setup](#getting-started) for the latest release. The [previous-release guide](docs/legacy-models.md#platforms) covers native backends, platform-specific builds and chat examples. The 8B checkpoint is available; native-engine support is planned.
-Measurements: [Benchmarking](edge0-infer/docs/benchmarking.md#reference-figures) for `edge0-35b`, and the [model page](docs/models/edge0-145b.md) for `edge0-145b` and `edge0-120b`. On the native engine, prefill and decode can run on different backends of the same device, for example Metal prefill with CPU decode. Chat app examples for desktop (macOS, Windows), Android and iOS are in [`edge0-infer/examples/`](edge0-infer/examples/README.md#chat-applications).
+## Models
-### Models
+
145B / 120B are the current latent-MoE series, derived from Qwen3.8-Flash-Next and trained natively at 4 bits.
-Two model tiers, `edge0-35b` and `edge0-8b`, ship with the framework. Each tier is an end-to-end
-release: the released checkpoint, the trained LoRA adapters, and the
-trained prerouter heads work together as one unit.
+They run on edge0-strata through `edge0-infer serve` and `edge0-infer chat`, on Linux or Windows with an NVIDIA GPU and CUDA 13.
+
+**145B Q3_K · RTX 5090 D 24 GB:** 121.2 tok/s agent decode · 3554.9 tok/s 16K prefill.
| Tier | Released checkpoint | Inference profile | Engine |
|---|---|---|---|
-| `edge0-35b` | [`Edge0/Edge0-35B-A3B-preview`](https://huggingface.co/Edge0/Edge0-35B-A3B-preview) · [ModelScope](https://www.modelscope.cn/models/Edge0/Edge0-35B-A3B-preview) | 4-bit, 40 layers, 256 experts, prerouter K=4 | Native engine ✅ |
-| `edge0-8b` | [`Edge0/Edge0-8B-A1B-preview`](https://huggingface.co/Edge0/Edge0-8B-A1B-preview) · [ModelScope](https://www.modelscope.cn/models/Edge0/Edge0-8B-A1B-preview) | 4-bit, 24 layers, 128 experts, prerouter K=8 | Native engine (planned) |
| [`edge0-145b`](docs/models/edge0-145b.md) | [`Edge0/Edge0-145B-q3k`](https://huggingface.co/Edge0/Edge0-145B-q3k) · [NVFP4](https://huggingface.co/Edge0/Edge0-145B-NVFP4) | Q3_K or NVFP4 latent experts (1792), 48 layers, 512 experts, K=10 | edge0-strata ✅ (Linux or Windows, NVIDIA GPU) |
| [`edge0-120b`](docs/models/edge0-145b.md) | [`Edge0/Edge0-120B-q3k`](https://huggingface.co/Edge0/Edge0-120B-q3k) · [NVFP4](https://huggingface.co/Edge0/Edge0-120B-NVFP4) | Q3_K or NVFP4 latent experts (1280), 48 layers, 512 experts, K=10 | edge0-strata ✅ (Linux or Windows, NVIDIA GPU) |
-The two released checkpoints are built on open sparse-MoE base models (Qwen3.6-35B-A3B
-and the Ling 3.0 bailing hybrid respectively) and ship with the
-LoRA and prerouter training done for this framework. edge0-infer downloads
-the released checkpoint with its asset tools and converts it into the
-engine's model assets (see [Getting Started](#getting-started)).
-`edge0-145b` and `edge0-120b` are a separate latent-MoE tier for a single NVIDIA GPU; they run on edge0-strata, which `edge0-infer serve` and `edge0-infer chat` start for them (see [edge0-145b and edge0-120b](docs/models/edge0-145b.md)).
-
-### Design
-
-- **GGML-based, the same code on every platform**: the native library
- depends only on GGML, vendored unmodified at a fixed version; the build
- downloads nothing;
-- **One native API**: applications link the CMake target `edge0::edge0`
- and include the headers in `include/edge0/` to use the engine in
- process; the reference CLI and the local server use the same
- settings and defaults as the native API;
-- **Experts on demand**: routed experts are read from storage on demand
- into a fixed number of expert slots per layer, so a model larger than the
- device memory budget runs without being loaded whole;
-- **Two routing modes**: `predicted` (default) uses the prerouter to
- prepare the next token's experts in the background while the current
- token computes; `actual` is the model's original computation, for
- comparison;
-- **Multi-turn reuse**: in a multi-turn conversation usually only each
- turn's new message is computed; earlier results are reused.
-
-See the [edge0-infer architecture](edge0-infer/docs/architecture.md).
-
-### Quality
-
-All benchmarks were run by us with [OpenCompass](https://github.com/open-compass/opencompass)
-under identical settings and parameters for both the edge0 models (int4 +
-trained adapters + prerouter routing) and the original fp16 base models.
-The loss of the edge0 pipeline is small: **3.9 points on average for
-edge0-35b, 2.8 for edge0-8b** (MMLU-Pro is even above the base). Max 100:
-
-| Benchmark | edge0-35b (int4) | Qwen3.6-35B-A3B (fp16) | edge0-8b (int4) | Ling 3.0 tiny (fp16) |
-|---|---:|---:|---:|---:|
-| AIME 2026 | 86.6 | 92.7 | 63.3 | 73.3 |
-| HumanEval | 90.9 | 95.1 | 91.5 | 92.7 |
-| GPQA-Diamond | 79.8 | 81.8 | 70.7 | 71.2 |
-| MMLU-Pro | 81.0 | 84.6 | 70.1 | 65.8 |
-| IFBench | 57.9 | 61.7 | 53.9 | 60.6 |
-| **Average** | **79.2** | **83.2** | **69.9** | **72.7** |
-
-`edge0-145b` and `edge0-120b` (**bold** = best in column; see the [model page](docs/models/edge0-145b.md#quality)):
+
+
Model overview · 145B Q3_K
+
+Q3_K · RTX 5090 D 24 GB. Prefill uses a 16K-token input. Quality scores are model-level results.
+
+
+
+
+
+## Quality
+
+### 145B / 120B
+
+Six benchmarks, six models. Higher is better. Scores are reported by model, not as separate Q3_K and NVFP4 evaluations.
+
+
+
+[Copyable scores and all model names](docs/models/edge0-145b.md#quality)
+
+
+Copyable scores · all six models
+
+Bold values indicate the best score in each column.
| Model | deepswe 1.1 | terminal-bench 2.1 | AA-LCR | IFBench | GPQA-Diamond | HLE |
| --- | ---: | ---: | ---: | ---: | ---: | ---: |
@@ -136,134 +140,207 @@ edge0-35b, 2.8 for edge0-8b** (MMLU-Pro is even above the base). Max 100:
| Qwen3.8-27B | 42.2 | 73.0 | **82.0** | 79.5 | 89.2 | 30.8 |
| Claude-Opus-4.6 (Max) | / | 78.2 | 78.0 | 62.5 | 91.3 | **40.0** |
-### Benchmark
+
+
+
+
+## Benchmark
-`edge0-35b` with `predicted` routing, measured with edge0-infer (each range is the minimum to maximum of three processes):
+### 145B / 120B
-| Platform | Device | Prompt | First token | Decode speed | Memory peak |
-|---|---|---|---|---|---|
-| macOS Metal | Apple M5, 16 GiB | 3,084 tokens | 5.60–5.87 s | 24.8–24.9 tok/s | 3.43 GiB (`phys_footprint`) |
-| macOS CPU | Apple M5, 16 GiB | 627 tokens | 11.5–11.7 s | 21.7–22.3 tok/s | 2.96 GiB (`phys_footprint`) |
-| iOS Metal | iPhone 17 Pro Max, 12 GB | 627 tokens | 8.20–8.26 s | 13.2 tok/s | 3.05 GiB (`phys_footprint`) |
-| Android CPU | OnePlus PKR110, 16 GB | 627 tokens | 18.4–18.8 s | 11.4–11.8 tok/s | 2.82 GiB (RSS) |
-| Windows CPU | Intel Core i5-12400, 32 GB | 627 tokens | 16.9–17.3 s | 7.3–8.2 tok/s | 2.86 GiB (working set) |
-| Windows Vulkan (both phases, 32 expert slots) | RTX 4070 SUPER, 12 GB | 627 tokens | 3.75–3.76 s | 23.6–24.0 tok/s | GPU memory increase 5.35 GiB |
+All throughput figures are in tok/s. The headline uses **145B Q3_K** on RTX 5090 D 24 GB.
-Memory metrics differ by platform and cannot be compared directly. The measurement method, the `actual` routing figures and the commands to reproduce them are in [Benchmarking](edge0-infer/docs/benchmarking.md#reference-figures).
+
+145B speed table · all machines and builds
-`edge0-145b` and `edge0-120b` on edge0-strata, one NVIDIA GPU (tok/s):
+Highlighted rows show Q3_K. Click the table to view it at full size.
-#### edge0-145b
+
+
+
+Copyable 145B speed data
| Machine | Build | 4K prefill | 16K prefill | Chat decode | Agent decode |
-| --- | --- | ---: | ---: | ---: | ---: |
+|---|---|---:|---:|---:|---:|
| RTX 5090 D 24 GB | Q3_K | 2169.9 | 3554.9 | 99.7 | **121.2** |
| RTX 5090 D 24 GB | NVFP4 | 1839.6 | 3165.7 | 79.6 | 98.3 |
| RTX 4090 24 GB | Q3_K | 2042.0 | 3179.4 | 69.9 | 91.7 |
| RTX Spark N1X 60 GiB | Q3_K | 674.0 | 770.3 | 37.7 | 36.7 |
| RTX Spark N1X 60 GiB | NVFP4 | 821.2 | 922.4 | 40.1 | 46.0 |
+| Apple M2 Ultra (Metal) | Q3_K | 755.6 | 800.3 | 60.9 | 57.0 |
| 16 GiB VRAM + 20 GiB RAM | Q3_K | 249 | 335 | 36.8 | 44.9 |
-#### edge0-120b
+
+
+
+
+
+145B measurement conditions · constrained budget and memory residency
+
+`16 GiB VRAM + 20 GiB RAM` rows are the RTX 5090 D 24 GB again, constrained by cgroup to a 16 GiB VRAM and
+20 GiB system-RAM budget — not a different card. With residency on, the same card holds **Q3_K** (40.81 GiB of weights)
+as 23.14 GiB VRAM + 31.28 GiB RAM, and **NVFP4** (47.79 GiB) as 23.25 GiB VRAM + 38.27 GiB RAM — disjoint expert sets,
+nothing counted twice.
+
+The 16 GiB VRAM + 20 GiB RAM budget is a test limit, not a minimum system requirement. The Apple M2 Ultra row is a Metal measurement, not an announcement of macOS release availability.
+
+
+
+
+120B speed table · all machines and builds
+
+
+
+
+Copyable 120B speed data
| 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 |
-`16 GiB VRAM + 20 GiB RAM` rows are the same RTX 5090 D 24 GB, limited by cgroup to 16 GiB of GPU memory and 20 GiB of system memory. Details are on the [model page](docs/models/edge0-145b.md#speed-measured-one-card).
+
+
+`16 GiB VRAM + 20 GiB RAM` rows are the RTX 5090 D 24 GB again, constrained by cgroup to a 16 GiB VRAM and
+20 GiB system-RAM budget — not a different card. 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.
+
+
+
+
+
+
+
+Five demonstrations · chapter guide
+
+| Time | Demonstration |
+| --- | --- |
+| 0:00 | Local Chat & Coding |
+| 0:36 | Video Production |
+| 0:58 | Manhattan in 3D |
+| 1:19 | Cathedral World Building |
+| 1:38 | PCB Design |
+
+[Chapter markers (VTT)](assets/edge0-release/showcase-chapters.vtt)
+
+
+
+
+
+## Architecture
+
+Latent MoE compresses expert inputs while keeping attention at full width. The 145B model uses latent width 1792; the 120B model uses 1280. Both route each token to 10 of 512 experts, alongside one shared expert.
+
+
+Architecture details · diagram and configuration
+
+
+
+[Full configuration, routing and both model profiles](docs/models/edge0-145b.md#model-profile).
+
+
+
+
## Getting Started
-Run the following commands in `edge0-infer/`. You need CMake 3.21+,
-Ninja, a C++17/C11 compiler, uv and Git; the 35B needs about 18 GB for the
-original weights and about 20 GB for the converted assets, plus as much free
-space again while converting.
+### 145B / 120B · edge0-strata
-### 1) Build
+Each model folder (Q3_K or NVFP4, Edge0-145B or Edge0-120B) runs 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`.
-```bash
-cd edge0-infer
-cmake --preset mac-metal && cmake --build --preset mac-metal
-build/mac-metal/bin/edge0-infer info # expect a line: model.0: edge0_35b
-```
+For 145B and 120B, use `serve` or `chat`; `run` belongs to the native engine.
-On machines without Metal use `--preset cpu`, `build/cpu/bin/edge0-infer`,
-and `--device cpu` in the commands below.
+
+Platform & documentation notes
-### 2) Get a model
+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.
-**edge0-35b (native engine).** Download and convert the model assets:
+
-```bash
-export MOE_SOURCE_35B=
-export MOE_ASSETS_35B=
+
+Build & command-line instructions
-uv sync --project tools/assets
-assets_py() { uv run --project tools/assets --offline --no-sync python -I "$@"; }
+**1. Build.** Clone the repository, then build two parts. Run the launch commands below from `edge0-infer/`:
-assets_py tools/assets/edge0_35b/fetch_source.py download --out "$MOE_SOURCE_35B"
-assets_py tools/assets/edge0_35b/make_assets.py --source "$MOE_SOURCE_35B" --out "$MOE_ASSETS_35B"
-assets_py tools/assets/check_assets.py check "$MOE_ASSETS_35B"
+```bash
+git clone https://github.com/Edge0-AI/Edge0.git edge0
```
-This downloads `Edge0/Edge0-35B-A3B-preview` from Hugging Face and checks
-it against the locked revision and digests.
+- **edge0-strata**, the engine: follow "Build (Linux, NVIDIA)" or "Build (Windows, NVIDIA)" in [edge0-strata/EDGE0.md](edge0-strata/EDGE0.md).
+- **edge0-infer**: follow "Build" (Linux) or "Windows" in [edge0-infer/docs/getting-started.md](edge0-infer/docs/getting-started.md).
-**edge0-145b and edge0-120b (edge0-strata).** Build edge0-strata as [`edge0-strata/EDGE0.md`](edge0-strata/EDGE0.md) describes and use a released model folder (see [edge0-145b and edge0-120b](docs/models/edge0-145b.md)).
+**2. Run from the command line.** Pass one model folder, such as `Edge0-145B-q3k`, not the folder that holds several of
+them. On Windows the program is `build\windows\bin\edge0-infer.exe`.
+
+```bash
+build/cpu/bin/edge0-infer serve --model /path/to/Edge0-145B-q3k
+```
-### 3) Run
+It prints `Listening: http://127.0.0.1:8000 model=` once the weights are loaded, where `` is `edge0_145b`,
+and then serves OpenAI- and Anthropic-compatible endpoints:
```bash
-# one prompt
-build/mac-metal/bin/edge0-infer run --model "$MOE_ASSETS_35B" --device metal --user "Introduce yourself in one sentence."
-# multi-turn chat
-build/mac-metal/bin/edge0-infer chat --model "$MOE_ASSETS_35B" --device metal
-# serve (OpenAI- and Anthropic-compatible, default http://127.0.0.1:8000)
-build/mac-metal/bin/edge0-infer serve --model "$MOE_ASSETS_35B" --device metal
+curl localhost:8000/v1/chat/completions -H 'content-type: application/json' -d '{"model":"edge0_145b","messages":[{"role":"user","content":"hi"}],"max_tokens":64}'
```
-For edge0-145b and edge0-120b, `chat` and `serve` take the model folder the same way (`--model `); `run` is for the native engine.
+`edge0-infer chat --model /path/to/Edge0-145B-q3k` opens an interactive session instead. More options:
+[edge0-infer/docs/edge0-145b.md](edge0-infer/docs/edge0-145b.md).
-For the Android, Windows and iOS builds, and for using the engine from
-your own CMake project, see [Getting started](edge0-infer/docs/getting-started.md).
+
+
+
+Desktop app · Windows
+
+⬇️ **Download:** **[GitHub Releases](https://github.com/Edge0-AI/Edge0/releases)**
+
+Open **Edge0 Chat** on Windows and choose a model folder, such as `Edge0-145B-q3k`, to run the model locally. To build the app from source, follow the [Edge0 Chat](edge0-infer/examples/desktop/README.md) guide.
+
+
## Documentation
-**Models**
+**Latest release · 145B / 120B**
-- [MoE routing and experts](docs/moe.md) / [prerouter](docs/prerouter.md)
-- [edge0-35b](docs/models/edge0-35b.md) / [edge0-8b](docs/models/edge0-8b.md) / [edge0-145b and edge0-120b](docs/models/edge0-145b.md)
-- Technical report: [The Other Half of the Memory Wall](https://arxiv.org/abs/2609.18063) ([PDF](paper/main.pdf))
+- [Models, measurements and architecture](docs/models/edge0-145b.md)
+- [edge0-strata · build and launch contract](edge0-strata/EDGE0.md)
+- edge0-infer model guides: [145B](edge0-infer/docs/edge0-145b.md) / [120B](edge0-infer/docs/edge0-120b.md)
-**edge0-infer**
+**Framework**
-- [Getting started](edge0-infer/docs/getting-started.md): build, model assets, run, chat and serve on every platform
-- [Configuration](edge0-infer/docs/configuration.md) / [Native API](edge0-infer/docs/native-api.md) / [Local server](edge0-infer/docs/local-server.md)
-- [Architecture](edge0-infer/docs/architecture.md) / [Known limitations](edge0-infer/docs/limitations.md)
-- [Benchmarking](edge0-infer/docs/benchmarking.md) / [Testing](edge0-infer/docs/testing.md)
+- [edge0-infer](edge0-infer/README.md) · command line, local server and chat applications
+- [Local server](edge0-infer/docs/local-server.md) / [Testing](edge0-infer/docs/testing.md)
- [Model asset tools and adding a model](edge0-infer/tools/assets/README.md)
-**Engines**
+
+Previous release · models and native-engine documentation
-- Native engine: [Architecture](edge0-infer/docs/architecture.md#native-engine) / [Native API](edge0-infer/docs/native-api.md)
-- edge0-strata: [build and launch contract](edge0-strata/EDGE0.md) / [edge0-145b](edge0-infer/docs/edge0-145b.md) and [edge0-120b](edge0-infer/docs/edge0-120b.md) in edge0-infer
-
-## Roadmap
+- [35B / 8B release guide](docs/legacy-models.md)
+- [MoE routing and experts](docs/moe.md) / [prerouter](docs/prerouter.md)
+- Model references: [edge0-35b](docs/models/edge0-35b.md) / [edge0-8b](docs/models/edge0-8b.md)
+- [Getting started](edge0-infer/docs/getting-started.md): native build, model assets, run, chat and serve across supported platforms
+- [Configuration](edge0-infer/docs/configuration.md) / [Native API](edge0-infer/docs/native-api.md)
+- [Architecture](edge0-infer/docs/architecture.md) / [Native-engine design](edge0-infer/docs/architecture.md#native-engine) / [Known limitations](edge0-infer/docs/limitations.md)
+- [Benchmarking](edge0-infer/docs/benchmarking.md)
+- Technical report: [The Other Half of the Memory Wall](https://arxiv.org/abs/2609.18063) ([PDF](paper/main.pdf))
-### Q4 2026
+
-**Platforms & systems**
+## Roadmap
-- ✅ **edge0 unified inference engine open-sourced** (2026-11-04) —
- [`edge0-infer`](edge0-infer/README.md): one engine and one native API
- across macOS, iOS, Android and Windows.
-- **`edge0-8b` support in edge0-infer**.
+
+Q4 2026 · architecture and inference
**Models & algorithms**
@@ -286,10 +363,16 @@ than just an arithmetic one.
count** — plus cross-block prefetch that loads the next block's experts
inside the current block's compute window. Progress is measured as
**end-to-end thinking-phase time at matched accuracy** (never tokens/s).
-- More model tiers and adapter releases on the existing pipeline.
+
+[Previous-release milestones and planned native-engine support](docs/legacy-models.md#roadmap).
+
+
## Contributing
+
+Development workflow and checks
+
Contributions are welcome — issues, PRs, benchmark reports and model
ports all count.
@@ -310,8 +393,12 @@ with the next sync. See [CONTRIBUTING](CONTRIBUTING.md).
Workflow: fork → feature branch → PR against `main`. Please keep the
tests passing and add tests for new behavior.
+
+
## Citation
+The technical report covers 35B SSD streaming and trained routing prediction.
+
If you find edge0 useful, please cite our technical report:
```bibtex
@@ -334,6 +421,40 @@ If you find edge0 useful, please cite our technical report:
For bugs and feature requests, please use
[GitHub Issues](https://github.com/Edge0-AI/Edge0/issues).
-## License
+
+
License
+
+### Framework code
+
+The framework code remains under [Apache-2.0](LICENSE). Bundled components retain their own licenses and [notices](NOTICE), including the [MIT license](edge0-strata/LICENSE) for Strata.
+
+### Model license
+
+Edge0-specific model contributions are licensed under the [Edge0 Community Model License 1.0](licenses/edge0-model/LICENSE), which applies only to contributions that Edge0 owns or is authorized to license. Prior valid licenses remain unchanged.
+
+Subject to applicable upstream terms, the license permits personal use, research, education, modification, noncommercial sharing, internal use and commercial use of generated outputs. It does not require disclosure of private modifications or an Edge0 interface badge.
+
+Separate written Edge0 permission is required for:
+
+- **Model sales and paid distribution**, including covered adapters, deltas and commercial bundles whose principal value is model access.
+- **Commercial model services** offering inference or fine-tuning, funded by fees, subscriptions, advertising or related sponsorship.
+- **Independent commercial coding or office assistants**, whether inference runs on a server or on the user's device.
+
+See the full license for definitions, exceptions and redistribution requirements. Commercial licensing: [info@edge0.ai](mailto:info@edge0.ai).
+
+### Upstream terms and scope
+
+Qwen materials remain governed by their applicable upstream license. The retained [Qwen Community License 1.0](licenses/edge0-model/third-party/Qwen-LICENSE.txt) is reproduced unchanged; Edge0 permission does not waive Qwen's attribution or separate commercial authorization requirements.
+
+See the [model NOTICE](licenses/edge0-model/NOTICE) for attribution and licensing scope. Framework and third-party code licenses are unaffected.
+
+
+Acknowledgements · model lineage and engine credits
+
+We thank the teams behind [Qwen3.8-Flash-Next](https://huggingface.co/Qwen/Qwen3.8-Flash-Next) and [Strata](https://github.com/Niko1221/Strata). Edge0 adds latent MoE support to the Strata engine. `edge0-strata` is a fork of Strata by Niko1221 and the Strata contributors and retains its [MIT license](edge0-strata/LICENSE).
+
+The Edge0 framework code is released under [Apache-2.0](LICENSE); bundled third-party components keep their own licenses (see [NOTICE](NOTICE)). The [earlier releases](docs/legacy-models.md#models) retain their Qwen3.6 and Ling model lineage.
+
+
-Apache-2.0; bundled third-party components keep their own licenses (see [NOTICE](NOTICE)).
+
diff --git a/README_es.md b/README_es.md
index 2cdc11ed..bfea9726 100644
--- a/README_es.md
+++ b/README_es.md
@@ -1,141 +1,151 @@
-
+
-
+
Edge0
-# edge0
+
Un framework de inferencia MoE en streaming de código abierto
-**Un framework de inferencia MoE en streaming de código abierto — SSD expert offload + Recover-LoRA + predicción de enrutamiento del prerouter.**
+
-**macOS** · **iOS** · **Android** · **Linux** · **Windows** — un programa para todos los modelos Edge0.
+
Piensa en grande. Ejecútalo aquí. Disperso por diseño.
+
+
+
+
## Novedades
-- **[2026-11-13]** Lanzamos **`edge0-145b`** y **`edge0-120b`**, modelos latent mixture-of-experts derivados de Qwen3.8-Flash-Next para una sola GPU NVIDIA en Linux o Windows. Se ejecutan en [edge0-strata](edge0-strata/EDGE0.md), que `edge0-infer serve` y `edge0-infer chat` inician para ellos; consulta la [página del modelo](docs/models/edge0-145b.md). Pesos en Hugging Face: [`Edge0-145B-q3k`](https://huggingface.co/Edge0/Edge0-145B-q3k) · [`Edge0-145B-NVFP4`](https://huggingface.co/Edge0/Edge0-145B-NVFP4) · [`Edge0-120B-q3k`](https://huggingface.co/Edge0/Edge0-120B-q3k) · [`Edge0-120B-NVFP4`](https://huggingface.co/Edge0/Edge0-120B-NVFP4).
-- **[2026-11-04]** Lanzamos el **motor de inferencia unificado [`edge0-infer`](edge0-infer/README_es.md)**: construido sobre [GGML](https://github.com/ggml-org/ggml), un solo motor y una sola API nativa en C++ ejecutan el mismo modelo en macOS, iOS, Android y Windows, con una CLI, un servidor local compatible con OpenAI y ejemplos de aplicaciones de chat para escritorio, Android e iOS. La primera versión admite `edge0-35b`; `edge0-8b` llegará en una versión posterior. Sustituye al framework de Python y a los motores de cada plataforma; el código anterior se conserva en la etiqueta [`pre-edge0-infer`](https://github.com/Edge0-AI/Edge0/tree/pre-edge0-infer).
-- **[2026-09-30]** Lanzamos los **motores de inferencia de edge0 para cuatro plataformas — iOS, macOS, Android y Windows** (código fuente en la etiqueta [`pre-edge0-infer`](https://github.com/Edge0-AI/Edge0/tree/pre-edge0-infer)).
-- **[2026-09-16]** Nuestro informe técnico está en arXiv: [The Other Half of the Memory Wall: Serving 35B MoEs from SSD with Trained Routing Prediction](https://arxiv.org/abs/2609.18063).
-- **[2026-09-08]** Primera versión de código abierto de **edge0**, junto con los dos niveles de modelos — [`Edge0-35B-A3B-preview`](https://huggingface.co/Edge0/Edge0-35B-A3B-preview) y [`Edge0-8B-A1B-preview`](https://huggingface.co/Edge0/Edge0-8B-A1B-preview) — en Hugging Face y ModelScope.
+
+
+
+
+
+
+
+Más novedades
+
+
+
+
+
+
+Notas de publicación completas
+
+- **[2026-11-13]** Publicamos **`edge0-145b`** y **`edge0-120b`**, modelos de mezcla de expertos latentes derivados de Qwen3.8-Flash-Next, para una sola GPU NVIDIA en Linux o Windows. Utilizan [edge0-strata](edge0-strata/EDGE0.md), que `edge0-infer serve` y `edge0-infer chat` inician para estos modelos; consulta la [página de modelos](docs/models/edge0-145b.md). Pesos en Hugging Face: [`Edge0-145B-q3k`](https://huggingface.co/Edge0/Edge0-145B-q3k) · [`Edge0-145B-NVFP4`](https://huggingface.co/Edge0/Edge0-145B-NVFP4) · [`Edge0-120B-q3k`](https://huggingface.co/Edge0/Edge0-120B-q3k) · [`Edge0-120B-NVFP4`](https://huggingface.co/Edge0/Edge0-120B-NVFP4).
+- **[2026-11-04]** Publicamos el **motor de inferencia unificado [`edge0-infer`](edge0-infer/README.md)**: basado en [GGML](https://github.com/ggml-org/ggml), un motor y una API nativa de C++ ejecutan el mismo modelo en macOS, iOS, Android y Windows, con CLI, servidor local compatible con OpenAI y ejemplos de aplicaciones de chat para escritorio, Android e iOS. La primera versión admite `edge0-35b`; `edge0-8b` llegará en una versión posterior. Sustituye al framework de Python y a los motores específicos de cada plataforma; el código anterior se conserva en la etiqueta [`pre-edge0-infer`](https://github.com/Edge0-AI/Edge0/tree/pre-edge0-infer).
+- **[2026-09-30]** Publicamos los **motores de inferencia edge0 para cuatro plataformas: iOS, macOS, Android y Windows** (código en la etiqueta [`pre-edge0-infer`](https://github.com/Edge0-AI/Edge0/tree/pre-edge0-infer)).
+- **[2026-09-16]** Nuestro informe técnico está disponible en arXiv: [The Other Half of the Memory Wall: Serving 35B MoEs from SSD with Trained Routing Prediction](https://arxiv.org/abs/2609.18063).
+- **[2026-09-08]** Primera publicación de **edge0** como código abierto, junto con los dos tamaños de modelo —[`Edge0-35B-A3B-preview`](https://huggingface.co/Edge0/Edge0-35B-A3B-preview) y [`Edge0-8B-A1B-preview`](https://huggingface.co/Edge0/Edge0-8B-A1B-preview)— en Hugging Face y ModelScope.
+
+
+
+
+
+
+
+
+
Versión anterior
+
+→ [Guía de la versión 35B / 8B](docs/legacy-models_es.md) — Descargas de modelos, arquitectura, evaluaciones, plataformas compatibles e instrucciones de instalación.
+
+
+
+
## Acerca de
-**edge0** es un framework de inferencia MoE en streaming de código abierto.
-Generaliza la receta probada en producción — **SSD expert offload +
-Recover-LoRA + predicción de enrutamiento del prerouter** — en un framework
-extensible que ejecuta grandes modelos sparse-MoE en hardware de consumo: la
-memoria pico está limitada por el conjunto de expertos *activos*, no por el
-número de parámetros.
-
-### Mecanismos principales
-
-- **SSD expert offload**: los pesos de los expertos se transmiten desde el
- almacenamiento bajo demanda; la memoria pico está limitada por el conjunto
- activo, no por el número de parámetros.
-- **Prerouter**: una cabeza entrenada predice el enrutamiento de expertos un
- paso por delante, de modo que las cargas de expertos se solapan con el
- forward pass en lugar de bloquearlo — **hasta +59%** de throughput de
- decode; la ganancia crece con la latencia del almacenamiento, el tamaño del
- modelo y el ancho de enrutamiento *K*.
-- **Recover-LoRA**: la base int4 se mantiene congelada y los adaptadores LoRA
- se entrenan por destilación desde el teacher FP, recuperando la mayor parte
- de la pérdida de cuantización a 4 bits (consulta [Calidad](#calidad)). Los
- adaptadores se guardan aparte de la base y pueden activarse o desactivarse
- por separado.
+
Edge0 es un framework de inferencia MoE en streaming de código abierto para ejecutar grandes modelos dispersos en hardware de consumo.
+
+Úsalo desde la línea de comandos, un servidor API local o la aplicación Edge0 Chat.
+
+La última versión permite ejecutar modelos MoE latentes de 145B y 120B en una sola GPU NVIDIA.
+
+Ambos se entrenan de forma nativa a 4 bits y se ofrecen en Q3_K y NVFP4 para tareas de agentes locales.
+
+[`edge0-infer`](edge0-infer/README.md) proporciona los comandos comunes `serve` y `chat` y selecciona el motor a partir de la carpeta del modelo. Los modelos actuales utilizan [edge0-strata](edge0-strata/EDGE0.md), un fork de Strata; la versión anterior de 35B utiliza el [motor nativo basado en GGML](docs/legacy-models_es.md#native-engine-design).
+
+
### Plataformas
-[`edge0-infer`](edge0-infer/README_es.md) es el programa que ejecutas (CLI, servidor local compatible con OpenAI y Anthropic, aplicaciones de chat), con los mismos comandos para todos los modelos. Cada modelo se ejecuta en el motor preparado para él, y edge0-infer elige el motor a partir de la carpeta del modelo; no hay nada que elegir: `edge0-35b` se ejecuta en el **motor nativo** de `edge0-infer/` (construido sobre GGML, con una API nativa en C++), y `edge0-145b` y `edge0-120b` en **edge0-strata**, en [`edge0-strata/`](edge0-strata/EDGE0.md), un fork de Strata.
+La compatibilidad depende del modelo y de su motor.
+
+| Plataforma | `edge0-145b`, `edge0-120b` (edge0-strata) | `edge0-35b` (motor nativo) |
+| --- | --- | --- |
+| **Linux** | NVIDIA GPU (CUDA 13) | CPU |
+| **Windows** | NVIDIA GPU (CUDA 13) | CPU, Vulkan |
+| **macOS** (Apple Silicon) | — | Metal, CPU |
+| **iOS** | — | Metal |
+| **Android** | — | CPU |
+
+Para la última versión, sigue la [instalación de 145B / 120B](#getting-started). La [guía de la versión anterior](docs/legacy-models_es.md#platforms) cubre los backends nativos, las compilaciones por plataforma y los ejemplos de chat. El checkpoint de 8B está disponible; su compatibilidad con el motor nativo está prevista.
-| Plataforma | `edge0-35b` (motor nativo) | `edge0-145b`, `edge0-120b` (edge0-strata) |
-|---|---|---|
-| **macOS** (Apple Silicon) | Metal, CPU | — |
-| **iOS** | Metal | — |
-| **Android** | CPU | — |
-| **Linux** | CPU | GPU NVIDIA (CUDA 13) |
-| **Windows** | CPU, Vulkan | GPU NVIDIA (CUDA 13) |
+
-Mediciones: [Benchmarking](edge0-infer/docs/benchmarking.md#reference-figures) para `edge0-35b` y la [página del modelo](docs/models/edge0-145b.md) para `edge0-145b` y `edge0-120b`. En el motor nativo, el prefill y el decode pueden ejecutarse en backends distintos del mismo dispositivo, por ejemplo prefill en Metal y decode en CPU. Los ejemplos de aplicaciones de chat para escritorio (macOS, Windows), Android e iOS están en [`edge0-infer/examples/`](edge0-infer/examples/README.md#chat-applications).
+## Modelos
-### Modelos
+
145B / 120B es la serie MoE latente actual, derivada de Qwen3.8-Flash-Next y entrenada de forma nativa a 4 bits.
-El framework incluye dos niveles de modelos, `edge0-35b` y `edge0-8b`. Cada nivel es una versión de
-extremo a extremo: el checkpoint publicado, los adaptadores LoRA entrenados y
-las cabezas prerouter entrenadas funcionan en conjunto como una sola unidad.
+Se ejecuta en edge0-strata mediante `edge0-infer serve` y `edge0-infer chat`, en Linux o Windows con una GPU NVIDIA y CUDA 13.
-| Nivel | Checkpoint publicado | Perfil de inferencia | Motor |
+**145B Q3_K · RTX 5090 D 24 GB:** 121.2 tok/s de decodificación de agente · 3554.9 tok/s de prefill de 16K.
+
+| Tamaño | Checkpoint publicado | Perfil de inferencia | Motor |
|---|---|---|---|
-| `edge0-35b` | [`Edge0/Edge0-35B-A3B-preview`](https://huggingface.co/Edge0/Edge0-35B-A3B-preview) · [ModelScope](https://www.modelscope.cn/models/Edge0/Edge0-35B-A3B-preview) | 4 bits, 40 capas, 256 expertos, prerouter K=4 | Motor nativo ✅ |
-| `edge0-8b` | [`Edge0/Edge0-8B-A1B-preview`](https://huggingface.co/Edge0/Edge0-8B-A1B-preview) · [ModelScope](https://www.modelscope.cn/models/Edge0/Edge0-8B-A1B-preview) | 4 bits, 24 capas, 128 expertos, prerouter K=8 | Motor nativo (previsto) |
-| [`edge0-145b`](docs/models/edge0-145b.md) | [`Edge0/Edge0-145B-q3k`](https://huggingface.co/Edge0/Edge0-145B-q3k) · [NVFP4](https://huggingface.co/Edge0/Edge0-145B-NVFP4) | expertos latentes Q3_K o NVFP4 (1792), 48 capas, 512 expertos, K=10 | edge0-strata ✅ (Linux o Windows, GPU NVIDIA) |
-| [`edge0-120b`](docs/models/edge0-145b.md) | [`Edge0/Edge0-120B-q3k`](https://huggingface.co/Edge0/Edge0-120B-q3k) · [NVFP4](https://huggingface.co/Edge0/Edge0-120B-NVFP4) | expertos latentes Q3_K o NVFP4 (1280), 48 capas, 512 expertos, K=10 | edge0-strata ✅ (Linux o Windows, GPU NVIDIA) |
-
-Los dos checkpoints publicados se construyen sobre modelos base sparse-MoE abiertos
-(Qwen3.6-35B-A3B y el híbrido bailing Ling 3.0, respectivamente) e incluyen
-el entrenamiento de LoRA y prerouter realizado para este framework.
-edge0-infer descarga el checkpoint publicado con sus herramientas de recursos
-y lo convierte en los recursos de modelo del motor (consulta
-[Primeros pasos](#primeros-pasos)).
-`edge0-145b` y `edge0-120b` forman un nivel latent-MoE aparte para una sola GPU NVIDIA; se ejecutan con edge0-strata, que `edge0-infer serve` y `edge0-infer chat` inician (consulta [edge0-145b y edge0-120b](docs/models/edge0-145b.md)).
-
-### Diseño
-
-- **Basado en GGML, el mismo código en todas las plataformas**: la biblioteca
- nativa solo depende de GGML, incluido sin modificaciones en una versión
- fija; la compilación no descarga nada;
-- **Una API nativa**: las aplicaciones enlazan el target de CMake
- `edge0::edge0` e incluyen las cabeceras de `include/edge0/` para usar el
- motor dentro del proceso; la CLI de referencia y el servidor local
- usan los mismos ajustes y valores por defecto que la API nativa;
-- **Expertos bajo demanda**: los expertos enrutados se leen del almacenamiento
- bajo demanda en un número fijo de ranuras por capa, de modo que un modelo
- más grande que el presupuesto de memoria del dispositivo se ejecuta sin
- cargarlo entero;
-- **Dos modos de enrutamiento**: `predicted` (por defecto) usa el prerouter
- para preparar en segundo plano los expertos del siguiente token mientras se
- calcula el actual; `actual` es el cálculo original del modelo, para
- comparar;
-- **Reutilización entre turnos**: en una conversación de varios turnos
- normalmente solo se calcula el mensaje nuevo de cada turno y se reutilizan
- los resultados anteriores.
-
-Consulta la [arquitectura de edge0-infer](edge0-infer/docs/architecture.md).
-
-### Calidad
-
-Todos los benchmarks fueron ejecutados por nosotros con
-[OpenCompass](https://github.com/open-compass/opencompass) bajo configuraciones
-y parámetros idénticos tanto para los modelos edge0 (int4 + adaptadores
-entrenados + enrutamiento prerouter) como para los modelos base fp16
-originales. La pérdida del pipeline edge0 es pequeña: **3.9 puntos de media
-para edge0-35b, 2.8 para edge0-8b** (MMLU-Pro incluso supera a la base).
-Máximo 100:
-
-| Benchmark | edge0-35b (int4) | Qwen3.6-35B-A3B (fp16) | edge0-8b (int4) | Ling 3.0 tiny (fp16) |
-|---|---:|---:|---:|---:|
-| AIME 2026 | 86.6 | 92.7 | 63.3 | 73.3 |
-| HumanEval | 90.9 | 95.1 | 91.5 | 92.7 |
-| GPQA-Diamond | 79.8 | 81.8 | 70.7 | 71.2 |
-| MMLU-Pro | 81.0 | 84.6 | 70.1 | 65.8 |
-| IFBench | 57.9 | 61.7 | 53.9 | 60.6 |
-| **Media** | **79.2** | **83.2** | **69.9** | **72.7** |
-
-`edge0-145b` y `edge0-120b` (**negrita** = mejor de la columna; consulta la [página del modelo](docs/models/edge0-145b.md#quality)):
-
-| Model | deepswe 1.1 | terminal-bench 2.1 | AA-LCR | IFBench | GPQA-Diamond | HLE |
+| [`edge0-145b`](docs/models/edge0-145b.md) | [`Edge0/Edge0-145B-q3k`](https://huggingface.co/Edge0/Edge0-145B-q3k) · [NVFP4](https://huggingface.co/Edge0/Edge0-145B-NVFP4) | Expertos latentes Q3_K o NVFP4 (1792), 48 capas, 512 expertos, K=10 | edge0-strata ✅ (Linux o Windows, GPU NVIDIA) |
+| [`edge0-120b`](docs/models/edge0-145b.md) | [`Edge0/Edge0-120B-q3k`](https://huggingface.co/Edge0/Edge0-120B-q3k) · [NVFP4](https://huggingface.co/Edge0/Edge0-120B-NVFP4) | Expertos latentes Q3_K o NVFP4 (1280), 48 capas, 512 expertos, K=10 | edge0-strata ✅ (Linux o Windows, GPU NVIDIA) |
+
+
+
+
+
Resumen del modelo · 145B Q3_K
+
+Q3_K · RTX 5090 D 24 GB. El prefill usa una entrada de 16K tokens. Las puntuaciones de calidad son resultados por modelo.
+
+
+
+
+
+
+
+## Calidad
+
+### 145B / 120B
+
+Seis evaluaciones, seis modelos. Cuanto más alto, mejor. Las puntuaciones se presentan por modelo, no como evaluaciones separadas de Q3_K y NVFP4.
+
+
+
+[Puntuaciones copiables y nombres completos de los modelos](docs/models/edge0-145b.md#quality)
+
+
+Puntuaciones copiables · los seis modelos
+
+La negrita indica la mejor puntuación de cada columna.
+
+| Modelo | deepswe 1.1 | terminal-bench 2.1 | AA-LCR | IFBench | GPQA-Diamond | HLE |
| --- | ---: | ---: | ---: | ---: | ---: | ---: |
| **Edge0-145B** | **64.6** | **86.5** | 79.3 | 80.6 | 90.4 | 35.4 |
| **Edge0-120B** | 51.3 | 75.3 | 81.0 | 79.3 | 87.4 | 31.0 |
@@ -144,169 +154,233 @@ Máximo 100:
| Qwen3.8-27B | 42.2 | 73.0 | **82.0** | 79.5 | 89.2 | 30.8 |
| Claude-Opus-4.6 (Max) | / | 78.2 | 78.0 | 62.5 | 91.3 | **40.0** |
-### Benchmark
+
+
+
+
+
+
+## Rendimiento
-`edge0-35b` con enrutamiento `predicted`, medido con edge0-infer (cada rango va del mínimo al máximo de tres procesos):
+
-| Plataforma | Dispositivo | Prompt | Primer token | Velocidad de decode | Pico de memoria |
-|---|---|---|---|---|---|
-| macOS Metal | Apple M5, 16 GiB | 3084 tokens | 5.60–5.87 s | 24.8–24.9 tok/s | 3.43 GiB (`phys_footprint`) |
-| macOS CPU | Apple M5, 16 GiB | 627 tokens | 11.5–11.7 s | 21.7–22.3 tok/s | 2.96 GiB (`phys_footprint`) |
-| iOS Metal | iPhone 17 Pro Max, 12 GB | 627 tokens | 8.20–8.26 s | 13.2 tok/s | 3.05 GiB (`phys_footprint`) |
-| Android CPU | OnePlus PKR110, 16 GB | 627 tokens | 18.4–18.8 s | 11.4–11.8 tok/s | 2.82 GiB (RSS) |
-| Windows CPU | Intel Core i5-12400, 32 GB | 627 tokens | 16.9–17.3 s | 7.3–8.2 tok/s | 2.86 GiB (conjunto de trabajo) |
-| Windows Vulkan (ambas fases, 32 ranuras de expertos) | RTX 4070 SUPER, 12 GB | 627 tokens | 3.75–3.76 s | 23.6–24.0 tok/s | Aumento de memoria de GPU 5.35 GiB |
+### 145B / 120B
-Las métricas de memoria difieren entre plataformas y no se pueden comparar directamente. El método de medición, las cifras con enrutamiento `actual` y los comandos para reproducirlas están en [Benchmarking](edge0-infer/docs/benchmarking.md#reference-figures).
+Todas las tasas se expresan en tok/s. La cifra destacada corresponde a **145B Q3_K** en RTX 5090 D 24 GB.
-`edge0-145b` y `edge0-120b` en edge0-strata, una GPU NVIDIA (tok/s):
+
+Velocidad de 145B · todos los equipos y formatos
-#### edge0-145b
+Las filas resaltadas corresponden a Q3_K. Haz clic en la tabla para verla a tamaño completo.
-| Machine | Build | 4K prefill | 16K prefill | Chat decode | Agent decode |
-| --- | --- | ---: | ---: | ---: | ---: |
+
+
+
+Datos copiables de velocidad de 145B
+
+| Equipo | Formato | Prefill 4K | Prefill 16K | Decodificación de chat | Decodificación de agente |
+|---|---|---:|---:|---:|---:|
| RTX 5090 D 24 GB | Q3_K | 2169.9 | 3554.9 | 99.7 | **121.2** |
| RTX 5090 D 24 GB | NVFP4 | 1839.6 | 3165.7 | 79.6 | 98.3 |
| RTX 4090 24 GB | Q3_K | 2042.0 | 3179.4 | 69.9 | 91.7 |
| RTX Spark N1X 60 GiB | Q3_K | 674.0 | 770.3 | 37.7 | 36.7 |
| RTX Spark N1X 60 GiB | NVFP4 | 821.2 | 922.4 | 40.1 | 46.0 |
+| Apple M2 Ultra (Metal) | Q3_K | 755.6 | 800.3 | 60.9 | 57.0 |
| 16 GiB VRAM + 20 GiB RAM | Q3_K | 249 | 335 | 36.8 | 44.9 |
-#### edge0-120b
+
+
+
+
+
+Condiciones de medición de 145B · presupuesto limitado y residencia en memoria
+
+Las filas `16 GiB VRAM + 20 GiB RAM` también usan la RTX 5090 D 24 GB, limitada mediante cgroup a un presupuesto de 16 GiB de VRAM y 20 GiB de RAM del sistema; no se trata de otra tarjeta. Con la residencia activada, **Q3_K** (40.81 GiB de pesos) ocupa 23.14 GiB VRAM + 31.28 GiB RAM, y **NVFP4** (47.79 GiB) ocupa 23.25 GiB VRAM + 38.27 GiB RAM en la misma tarjeta. Los conjuntos de expertos son disjuntos: nada se contabiliza dos veces.
+
+El presupuesto de 16 GiB VRAM + 20 GiB RAM es un límite de prueba, no un requisito mínimo del sistema. La fila Apple M2 Ultra es una medición con Metal, no un anuncio de disponibilidad para macOS.
+
+
+
+
+Velocidad de 120B · todos los equipos y formatos
-| Machine | Build | 4K prefill | 16K prefill | Chat decode | Agent decode |
-| --- | --- | ---: | ---: | ---: | ---: |
+
+
+
+Datos copiables de velocidad de 120B
+
+| Equipo | Formato | Prefill 4K | Prefill 16K | Decodificación de chat | Decodificación de agente |
+|---|---|---:|---:|---:|---:|
| 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 |
-Las filas `16 GiB VRAM + 20 GiB RAM` son la misma RTX 5090 D 24 GB, limitada por cgroup a 16 GiB de memoria de GPU y 20 GiB de memoria del sistema. Los detalles están en la [página del modelo](docs/models/edge0-145b.md#speed-measured-one-card).
+
+
+Las filas `16 GiB VRAM + 20 GiB RAM` también usan la RTX 5090 D 24 GB, limitada mediante cgroup a un presupuesto de 16 GiB de VRAM y 20 GiB de RAM del sistema; no se trata de otra tarjeta. Con la residencia activada, **Q3_K** (27.98 GiB de pesos) ocupa 22.93 GiB VRAM + 18.40 GiB RAM, y **NVFP4** (32.96 GiB) ocupa 23.02 GiB VRAM + 23.40 GiB RAM en la misma tarjeta. Los conjuntos de expertos son disjuntos: nada se contabiliza dos veces.
+
+
+
+
+
+
+
+
+
+Cinco demostraciones · guía de capítulos
+
+| Tiempo | Demostración |
+| --- | --- |
+| 0:00 | Chat y programación locales |
+| 0:36 | Producción de vídeo |
+| 0:58 | Manhattan en 3D |
+| 1:19 | Creación de un entorno de catedral |
+| 1:38 | Diseño de PCB |
+
+[Marcadores de capítulos (VTT)](assets/edge0-release/showcase-chapters.vtt)
+
+
+
+
+
+
+
+## Arquitectura
+
+El MoE latente comprime las entradas de los expertos y mantiene la atención a anchura completa. El modelo de 145B usa una anchura latente de 1792; el de 120B, de 1280. Ambos enrutan cada token a 10 de los 512 expertos, además de un experto compartido.
+
+
+Detalles de arquitectura · diagrama y configuración
+
+
+
+[Configuración completa, enrutamiento y perfiles de ambos modelos](docs/models/edge0-145b.md#model-profile).
+
+
+
+
+
+
## Primeros pasos
-Ejecuta los siguientes comandos en `edge0-infer/`. Necesitas CMake 3.21 o
-posterior, Ninja, un compilador de C++17/C11, uv y Git; el 35B necesita unos
-18 GB para los pesos originales y unos 20 GB para los recursos convertidos,
-más otro tanto de espacio libre durante la conversión.
+### 145B / 120B · edge0-strata
-### 1) Compilar
+Cada carpeta de modelo (Q3_K o NVFP4, Edge0-145B o Edge0-120B) se ejecuta mediante `edge0-infer`, desde la línea de comandos o la aplicación de escritorio Edge0 Chat. Conserva la estructura de la carpeta: `edge0-infer` identifica el modelo mediante `model_name` en su `model.json`.
-```bash
-cd edge0-infer
-cmake --preset mac-metal && cmake --build --preset mac-metal
-build/mac-metal/bin/edge0-infer info # debe mostrar una línea: model.0: edge0_35b
-```
+Para 145B y 120B, usa `serve` o `chat`; `run` corresponde al motor nativo.
-En máquinas sin Metal usa `--preset cpu`, `build/cpu/bin/edge0-infer` y
-`--device cpu` en los comandos siguientes.
+
+Notas sobre plataformas y documentación
-### 2) Obtener un modelo
+Las instrucciones de compilación están destinadas a GPU NVIDIA con CUDA 13 en Linux o Windows (x64 o ARM64). Las mediciones de Apple M2 Ultra usan Metal; no establecen la disponibilidad de una versión para macOS.
-**edge0-35b (motor nativo).** Descarga y convierte los recursos del modelo:
+
-```bash
-export MOE_SOURCE_35B=
-export MOE_ASSETS_35B=
+
+Instrucciones de compilación y línea de comandos
-uv sync --project tools/assets
-assets_py() { uv run --project tools/assets --offline --no-sync python -I "$@"; }
+**1. Compilar.** Clona el repositorio y compila las dos partes. Ejecuta los siguientes comandos de inicio desde `edge0-infer/`:
-assets_py tools/assets/edge0_35b/fetch_source.py download --out "$MOE_SOURCE_35B"
-assets_py tools/assets/edge0_35b/make_assets.py --source "$MOE_SOURCE_35B" --out "$MOE_ASSETS_35B"
-assets_py tools/assets/check_assets.py check "$MOE_ASSETS_35B"
+```bash
+git clone https://github.com/Edge0-AI/Edge0.git edge0
```
-Se descarga `Edge0/Edge0-35B-A3B-preview` de Hugging Face y se verifica con
-la revisión y los resúmenes fijados.
+- **edge0-strata**, el motor: sigue «Build (Linux, NVIDIA)» o «Build (Windows, NVIDIA)» en [edge0-strata/EDGE0.md](edge0-strata/EDGE0.md).
+- **edge0-infer**: sigue «Build» (Linux) o «Windows» en [edge0-infer/docs/getting-started.md](edge0-infer/docs/getting-started.md).
+
+**2. Ejecutar desde la línea de comandos.** Indica una sola carpeta de modelo, como `Edge0-145B-q3k`, no la carpeta que contiene varios modelos. En Windows el programa es `build\windows\bin\edge0-infer.exe`.
-**edge0-145b y edge0-120b (edge0-strata).** Compila edge0-strata como indica [`edge0-strata/EDGE0.md`](edge0-strata/EDGE0.md) y usa una carpeta de modelo publicada (consulta [edge0-145b y edge0-120b](docs/models/edge0-145b.md)).
+```bash
+build/cpu/bin/edge0-infer serve --model /path/to/Edge0-145B-q3k
+```
-### 3) Ejecutar
+Una vez cargados los pesos, muestra `Listening: http://127.0.0.1:8000 model=`, donde `` es `edge0_145b`, y ofrece endpoints compatibles con OpenAI y Anthropic:
```bash
-# una instrucción
-build/mac-metal/bin/edge0-infer run --model "$MOE_ASSETS_35B" --device metal --user "Preséntate en una frase."
-# chat de varios turnos
-build/mac-metal/bin/edge0-infer chat --model "$MOE_ASSETS_35B" --device metal
-# servidor (compatible con OpenAI y Anthropic, por defecto http://127.0.0.1:8000)
-build/mac-metal/bin/edge0-infer serve --model "$MOE_ASSETS_35B" --device metal
+curl localhost:8000/v1/chat/completions -H 'content-type: application/json' -d '{"model":"edge0_145b","messages":[{"role":"user","content":"hi"}],"max_tokens":64}'
```
-Para edge0-145b y edge0-120b, `chat` y `serve` reciben la carpeta del modelo de la misma forma (`--model `); `run` es para el motor nativo.
+`edge0-infer chat --model /path/to/Edge0-145B-q3k` abre una sesión interactiva. Más opciones: [edge0-infer/docs/edge0-145b.md](edge0-infer/docs/edge0-145b.md).
-Para las compilaciones de Android, Windows e iOS, y para usar el motor desde
-tu propio proyecto CMake, consulta [Getting started](edge0-infer/docs/getting-started.md).
+
+
+
+Aplicación de escritorio · Windows
+
+⬇️ **Descargar:** **[GitHub Releases](https://github.com/Edge0-AI/Edge0/releases)**
+
+Abre **Edge0 Chat** en Windows y selecciona una carpeta de modelo, como `Edge0-145B-q3k`, para ejecutarlo localmente. Para compilar la aplicación desde el código fuente, sigue la guía de [Edge0 Chat](edge0-infer/examples/desktop/README.md).
+
+
+
+
## Documentación
-**Modelos**
+**Última versión · 145B / 120B**
+
+- [Modelos, mediciones y arquitectura](docs/models/edge0-145b.md)
+- [edge0-strata · requisitos de compilación e inicio](edge0-strata/EDGE0.md)
+- Guías de modelos de edge0-infer: [145B](edge0-infer/docs/edge0-145b.md) / [120B](edge0-infer/docs/edge0-120b.md)
+
+**Framework**
+- [edge0-infer](edge0-infer/README.md) · línea de comandos, servidor local y aplicaciones de chat
+- [Servidor local](edge0-infer/docs/local-server.md) / [Pruebas](edge0-infer/docs/testing.md)
+- [Herramientas de recursos de modelos y cómo añadir un modelo](edge0-infer/tools/assets/README.md)
+
+
+Versión anterior · modelos y documentación del motor nativo
+
+- [Guía de la versión 35B / 8B](docs/legacy-models_es.md)
- [Enrutamiento MoE y expertos](docs/moe.md) / [prerouter](docs/prerouter.md)
-- [edge0-35b](docs/models/edge0-35b.md) / [edge0-8b](docs/models/edge0-8b.md) / [edge0-145b y edge0-120b](docs/models/edge0-145b.md)
+- Referencias de modelos: [edge0-35b](docs/models/edge0-35b.md) / [edge0-8b](docs/models/edge0-8b.md)
+- [Primeros pasos](edge0-infer/docs/getting-started.md): compilación nativa, recursos de modelos, run, chat y serve en las plataformas compatibles
+- [Configuración](edge0-infer/docs/configuration.md) / [API nativa](edge0-infer/docs/native-api.md)
+- [Arquitectura](edge0-infer/docs/architecture.md) / [Diseño del motor nativo](edge0-infer/docs/architecture.md#native-engine) / [Limitaciones conocidas](edge0-infer/docs/limitations.md)
+- [Mediciones de rendimiento](edge0-infer/docs/benchmarking.md)
- Informe técnico: [The Other Half of the Memory Wall](https://arxiv.org/abs/2609.18063) ([PDF](paper/main.pdf))
-**edge0-infer**
+
-- [Getting started](edge0-infer/docs/getting-started.md): compilación, recursos del modelo, ejecución, chat y servidor en cada plataforma
-- [Configuration](edge0-infer/docs/configuration.md) / [Native API](edge0-infer/docs/native-api.md) / [Servidor local](edge0-infer/docs/local-server.md)
-- [Architecture](edge0-infer/docs/architecture.md) / [Known limitations](edge0-infer/docs/limitations.md)
-- [Benchmarking](edge0-infer/docs/benchmarking.md) / [Testing](edge0-infer/docs/testing.md)
-- [Herramientas de recursos del modelo y cómo añadir un modelo](edge0-infer/tools/assets/README.md)
+
-**Motores**
+## Hoja de ruta
-- Motor nativo: [Architecture](edge0-infer/docs/architecture.md#native-engine) / [Native API](edge0-infer/docs/native-api.md)
-- edge0-strata: [compilación y contrato de arranque](edge0-strata/EDGE0.md) / [edge0-145b](edge0-infer/docs/edge0-145b.md) y [edge0-120b](edge0-infer/docs/edge0-120b.md) en edge0-infer
+
+Cuarto trimestre de 2026 · arquitectura e inferencia
-## Hoja de ruta
+**Modelos y algoritmos**
-### Q4 2026
+El cuarto trimestre aborda dos frentes: incorporar una arquitectura de nueva generación al framework y convertir el razonamiento latente en una reducción real de latencia, no solo del número de operaciones.
-**Plataformas y sistemas**
+- **Compatibilidad con arquitecturas de nueva generación (clase Qwen3.8-Flash)** — ejecutar atención lineal híbrida (GDN + QSA), conexiones residuales multirrama con compuertas y topologías de embeddings N-gram en edge0. Estos diseños encajan de forma natural con la descarga en streaming a SSD: la atención con estado O(1) evita que el razonamiento prolongado se convierta en un problema de KV-cache, y las tablas N-gram de solo consulta se cargan bajo demanda. Objetivo: ejecutar el modelo en un solo dispositivo y obtener resultados con una diferencia aceptable respecto al modelo base fp16.
+- **Razonamiento latente + predicción anticipada de expertos por lotes** — reducir la *latencia* del razonamiento latente, no solo sus operaciones aritméticas. El reto central consiste en pasar del enrutamiento por posición a **una vez por bloque**, para que una predicción cubra todas las posiciones y rondas del bloque y **el volumen de expertos cargados sea independiente del número de iteraciones de razonamiento**. Se añade la precarga entre bloques, que carga los expertos del siguiente bloque durante el cálculo del actual. El progreso se mide por el **tiempo total de la fase de razonamiento a igual precisión**, nunca por tokens/s.
-- ✅ **Motor de inferencia unificado de edge0 liberado** (2026-11-04) —
- [`edge0-infer`](edge0-infer/README_es.md): un solo motor y una sola API
- nativa para macOS, iOS, Android y Windows.
-- **Compatibilidad con `edge0-8b` en edge0-infer**.
+[Hitos de la versión anterior y compatibilidad prevista con el motor nativo](docs/legacy-models_es.md#roadmap).
-**Modelos y algoritmos**
+
-Q4 trabaja en dos frentes: incorporar una arquitectura de próxima generación
-al framework y convertir el razonamiento latente en un ahorro real de latencia
-y no solo aritmético.
-
-- **Soporte de arquitectura de próxima generación (clase Qwen3.8-Flash)** —
- ejecutar atención lineal híbrida (GDN + QSA), residual multirrama con
- puertas y topologías de embedding N-gram en edge0. Estos diseños encajan de
- forma natural con el streaming offload a SSD: la atención de estado O(1)
- evita que el thinking prolongado se convierta en un problema de KV cache, y
- las tablas N-gram de solo consulta se transmiten bajo demanda. Objetivo: que
- el nivel se ejecute en un solo dispositivo y que los benchmarks queden a una
- distancia aceptable de la base fp16.
-- **Thinking latente + predicción anticipada de expertos por lotes** —
- convertir el razonamiento latente en un ahorro de *latencia*, no solo
- aritmético. El problema central de ingeniería: mover el enrutamiento de
- expertos de por posición a **una vez por bloque**, de modo que una sola
- predicción cubra cada posición y ronda de un bloque y **el volumen de carga
- de expertos se desacople del número de bucles de razonamiento** — además de
- prefetch entre bloques que carga los expertos del siguiente bloque dentro de
- la ventana de cómputo del bloque actual. El progreso se mide como **tiempo
- de la fase de thinking de extremo a extremo con la misma precisión** (nunca
- tokens/s).
-- Más niveles de modelos y versiones de adaptadores sobre el pipeline
- existente.
+
## Contribuir
-Las contribuciones son bienvenidas — issues, PRs, informes de benchmarks y
-ports de modelos, todo cuenta.
+
+Flujo de desarrollo y comprobaciones
-La compilación y las pruebas se describen en [Testing](edge0-infer/docs/testing.md);
-las comprobaciones que no necesitan recursos del modelo:
+Todas las contribuciones son bienvenidas: issues, PR, informes de rendimiento y adaptaciones de modelos.
+
+La compilación y las pruebas se describen en [Pruebas](edge0-infer/docs/testing.md). Estas comprobaciones no requieren recursos de modelos:
```bash
cd edge0-infer
@@ -314,16 +388,18 @@ cmake --preset cpu && cmake --build --preset cpu
ctest --preset cpu -L "L0|L1"
```
-Para cambios en `edge0-infer/`, abre issues y PRs en este repositorio como
-de costumbre; el directorio se desarrolla en un repositorio aparte: los
-mantenedores aplican primero allí los cambios aceptados, que llegan aquí con
-la siguiente sincronización. Consulta [CONTRIBUTING](CONTRIBUTING.md).
+Para cambios en `edge0-infer/`, abre issues y PR en este repositorio como de costumbre. Ese directorio se desarrolla en otro repositorio; los mantenedores aplican primero allí los cambios aceptados y llegan aquí con la siguiente sincronización. Consulta [CONTRIBUTING](CONTRIBUTING.md).
+
+Flujo: fork → rama de funcionalidad → PR dirigido a `main`. Mantén las pruebas aprobadas y añade pruebas para los comportamientos nuevos.
-Flujo de trabajo: fork → rama de feature → PR contra `main`. Mantén las
-pruebas en verde y añade pruebas para los nuevos comportamientos.
+
+
+
## Cita
+El informe técnico trata la inferencia de 35B en streaming desde SSD y la predicción de enrutamiento entrenada.
+
Si edge0 te resulta útil, cita nuestro informe técnico:
```bibtex
@@ -338,15 +414,57 @@ Si edge0 te resulta útil, cita nuestro informe técnico:
}
```
+
+
## Contacto
-- **Discord**: [edge0.ai/discord](https://edge0.ai/discord) — chat y soporte de la comunidad
-- **Email**: samuel@edge0.ai
+- **Discord**: [edge0.ai/discord](https://edge0.ai/discord) — conversación y soporte de la comunidad
+- **Correo electrónico**: samuel@edge0.ai
+
+Para errores y solicitudes de funciones, utiliza [GitHub Issues](https://github.com/Edge0-AI/Edge0/issues).
+
+
+
+
+
Licencia
+
+
+
+### Código del framework
+
+El código del framework sigue bajo [Apache-2.0](LICENSE). Los componentes incluidos conservan sus propias licencias y [avisos](NOTICE), incluida la [licencia MIT](edge0-strata/LICENSE) de Strata.
+
+
+
+### Licencia de los modelos
+
+Las contribuciones específicas de Edge0 a los modelos se ofrecen bajo la [Edge0 Community Model License 1.0](licenses/edge0-model/LICENSE), aplicable únicamente a las contribuciones que Edge0 posee o está autorizado a licenciar. Las licencias válidas anteriores no cambian.
+
+Sujeta a las condiciones aplicables de los proveedores originales, la licencia permite el uso personal, la investigación, la educación, la modificación, la distribución no comercial, el uso interno y el uso comercial de los resultados generados. No exige revelar modificaciones privadas ni mostrar una insignia de Edge0 en la interfaz.
+
+Se requiere un permiso escrito independiente de Edge0 para:
+
+- **Venta de modelos y distribución de pago**, incluidos los adaptadores y deltas cubiertos, así como los paquetes comerciales cuyo valor principal sea el acceso al modelo.
+- **Servicios comerciales de modelos** que ofrezcan inferencia o ajuste fino y se financien mediante pagos, suscripciones, publicidad o patrocinios relacionados.
+- **Asistentes comerciales independientes de programación u ofimática**, tanto si la inferencia se ejecuta en un servidor como en el dispositivo del usuario.
+
+Consulta la licencia completa para conocer las definiciones, excepciones y requisitos de redistribución. Licencias comerciales: [info@edge0.ai](mailto:info@edge0.ai).
+
+
+
+### Condiciones de origen y alcance
+
+Los materiales de Qwen siguen sujetos a su licencia de origen aplicable. La [Qwen Community License 1.0](licenses/edge0-model/third-party/Qwen-LICENSE.txt) conservada se reproduce sin modificaciones; el permiso de Edge0 no exime de los requisitos de atribución de Qwen ni de sus autorizaciones comerciales independientes.
+
+Consulta el [NOTICE del modelo](licenses/edge0-model/NOTICE) para conocer las atribuciones y el alcance de las licencias. Las licencias del framework y del código de terceros no se ven afectadas.
+
+
+Agradecimientos · linaje de los modelos y créditos del motor
+
+Agradecemos a los equipos de [Qwen3.8-Flash-Next](https://huggingface.co/Qwen/Qwen3.8-Flash-Next) y [Strata](https://github.com/Niko1221/Strata). Edge0 añade compatibilidad con MoE latente al motor Strata. `edge0-strata` es un fork de Strata, de Niko1221 y los colaboradores de Strata, y conserva su [licencia MIT](edge0-strata/LICENSE).
-Para bugs y solicitudes de funcionalidades, usa
-[GitHub Issues](https://github.com/Edge0-AI/Edge0/issues).
+El código del framework Edge0 se publica bajo [Apache-2.0](LICENSE); los componentes de terceros incluidos mantienen sus propias licencias (véase [NOTICE](NOTICE)). Las [versiones anteriores](docs/legacy-models_es.md#models) conservan su linaje de modelos Qwen3.6 y Ling.
-## Licencia
+
-Apache-2.0; los componentes de terceros incluidos conservan sus propias licencias
-(consulta [NOTICE](NOTICE)).
+
diff --git a/README_fr.md b/README_fr.md
index 68dfd3f0..716dc050 100644
--- a/README_fr.md
+++ b/README_fr.md
@@ -1,142 +1,151 @@
-
+
-
+
Edge0
-# edge0
+
Un framework d’inférence MoE en streaming, open source
-**Un framework open source d'inférence MoE en streaming — SSD expert offload + Recover-LoRA + prédiction de routage prerouter.**
+
-**macOS** · **iOS** · **Android** · **Linux** · **Windows** — un seul programme pour tous les modèles Edge0.
+
Voyez grand. Exécutez ici. La parcimonie, dès la conception.
+
+
+
+
## Actualités
-- **[2026-11-13]** Nous avons publié **`edge0-145b`** et **`edge0-120b`**, des modèles latent mixture-of-experts dérivés de Qwen3.8-Flash-Next pour un seul GPU NVIDIA sous Linux ou Windows. Ils s'exécutent sur [edge0-strata](edge0-strata/EDGE0.md), que `edge0-infer serve` et `edge0-infer chat` démarrent pour eux ; voir la [page du modèle](docs/models/edge0-145b.md). Poids sur Hugging Face : [`Edge0-145B-q3k`](https://huggingface.co/Edge0/Edge0-145B-q3k) · [`Edge0-145B-NVFP4`](https://huggingface.co/Edge0/Edge0-145B-NVFP4) · [`Edge0-120B-q3k`](https://huggingface.co/Edge0/Edge0-120B-q3k) · [`Edge0-120B-NVFP4`](https://huggingface.co/Edge0/Edge0-120B-NVFP4).
-- **[2026-11-04]** Nous avons publié le **moteur d'inférence unifié [`edge0-infer`](edge0-infer/README_fr.md)** : construit sur [GGML](https://github.com/ggml-org/ggml), un seul moteur et une seule API C++ native exécutent le même modèle sur macOS, iOS, Android et Windows, avec une CLI, un serveur local compatible OpenAI et des exemples d'applications de discussion pour le bureau, Android et iOS. La première version prend en charge `edge0-35b` ; `edge0-8b` suivra dans une version ultérieure. Il remplace le framework Python et les moteurs propres à chaque plateforme ; l'ancien code est conservé au tag [`pre-edge0-infer`](https://github.com/Edge0-AI/Edge0/tree/pre-edge0-infer).
-- **[2026-09-30]** Nous avons publié les **moteurs d'inférence edge0 pour quatre plateformes — iOS, macOS, Android et Windows** (code source au tag [`pre-edge0-infer`](https://github.com/Edge0-AI/Edge0/tree/pre-edge0-infer)).
-- **[2026-09-16]** Notre rapport technique est sur arXiv : [The Other Half of the Memory Wall: Serving 35B MoEs from SSD with Trained Routing Prediction](https://arxiv.org/abs/2609.18063).
-- **[2026-09-08]** Première publication open source d'**edge0**, avec les deux gammes de modèles — [`Edge0-35B-A3B-preview`](https://huggingface.co/Edge0/Edge0-35B-A3B-preview) et [`Edge0-8B-A1B-preview`](https://huggingface.co/Edge0/Edge0-8B-A1B-preview) — sur Hugging Face et ModelScope.
+
+
+
+
+
+
+
+Plus d’actualités
+
+
+
+
+
+
+Notes de version complètes
+
+- **[2026-11-13]** Nous avons publié **`edge0-145b`** et **`edge0-120b`**, des modèles à mélange d’experts latents dérivés de Qwen3.8-Flash-Next, pour un seul GPU NVIDIA sous Linux ou Windows. Ils utilisent [edge0-strata](edge0-strata/EDGE0.md), lancé pour eux par `edge0-infer serve` et `edge0-infer chat` ; voir la [page des modèles](docs/models/edge0-145b.md). Poids sur Hugging Face : [`Edge0-145B-q3k`](https://huggingface.co/Edge0/Edge0-145B-q3k) · [`Edge0-145B-NVFP4`](https://huggingface.co/Edge0/Edge0-145B-NVFP4) · [`Edge0-120B-q3k`](https://huggingface.co/Edge0/Edge0-120B-q3k) · [`Edge0-120B-NVFP4`](https://huggingface.co/Edge0/Edge0-120B-NVFP4).
+- **[2026-11-04]** Nous avons publié le **moteur d’inférence unifié [`edge0-infer`](edge0-infer/README.md)** : fondé sur [GGML](https://github.com/ggml-org/ggml), un moteur et une API native C++ exécutent le même modèle sous macOS, iOS, Android et Windows, avec une CLI, un serveur local compatible OpenAI et des exemples d’applications de chat pour ordinateur, Android et iOS. La première version prend en charge `edge0-35b` ; `edge0-8b` suivra dans une prochaine version. Ce moteur remplace le framework Python et les moteurs propres à chaque plateforme ; l’ancien code est conservé sous le tag [`pre-edge0-infer`](https://github.com/Edge0-AI/Edge0/tree/pre-edge0-infer).
+- **[2026-09-30]** Nous avons publié les **moteurs d’inférence edge0 pour quatre plateformes : iOS, macOS, Android et Windows** (sources sous le tag [`pre-edge0-infer`](https://github.com/Edge0-AI/Edge0/tree/pre-edge0-infer)).
+- **[2026-09-16]** Notre rapport technique est disponible sur arXiv : [The Other Half of the Memory Wall: Serving 35B MoEs from SSD with Trained Routing Prediction](https://arxiv.org/abs/2609.18063).
+- **[2026-09-08]** Première publication open source d’**edge0**, accompagnée des deux tailles de modèle — [`Edge0-35B-A3B-preview`](https://huggingface.co/Edge0/Edge0-35B-A3B-preview) et [`Edge0-8B-A1B-preview`](https://huggingface.co/Edge0/Edge0-8B-A1B-preview) — sur Hugging Face et ModelScope.
+
+
+
+
+
+
+
+
+
Version précédente
+
+→ [Guide de la version 35B / 8B](docs/legacy-models_fr.md) — Téléchargements, architecture, évaluations, plateformes prises en charge et installation.
+
+
+
+
## À propos
-**edge0** est un framework open source d'inférence MoE en streaming. Il
-généralise la recette éprouvée en production — **SSD expert offload +
-Recover-LoRA + prédiction de routage prerouter** — en un framework
-extensible qui exécute de grands modèles MoE creux (sparse-MoE) sur du
-matériel grand public : la mémoire de pointe est limitée par l'ensemble
-*actif* d'experts, et non par le nombre de paramètres.
-
-### Mécanismes fondamentaux
-
-- **SSD expert offload** : les poids des experts sont lus en streaming
- depuis le stockage à la demande ; la mémoire de pointe est limitée par
- l'ensemble actif, et non par le nombre de paramètres.
-- **Prerouter** : une tête entraînée prédit le routage des experts un pas
- à l'avance, de sorte que les chargements d'experts chevauchent la passe
- avant au lieu de la bloquer — **jusqu'à +59 %** de débit de decode ; le
- gain augmente avec la latence du stockage, la taille du modèle et la
- largeur routée *K*.
-- **Recover-LoRA** : la base int4 est gelée et les adaptateurs LoRA sont
- entraînés par distillation depuis l'enseignant FP, récupérant
- l'essentiel de la perte de quantification à 4 bits (voir
- [Qualité](#qualité)). Les adaptateurs sont stockés séparément de la base et peuvent être
- activés ou désactivés indépendamment.
+
Edge0 est un framework d’inférence MoE en streaming, open source, qui exécute de grands modèles parcimonieux sur du matériel grand public.
+
+Utilisez-le en ligne de commande, via un serveur API local ou avec l’application Edge0 Chat.
+
+La dernière version permet d’exécuter les modèles MoE latents de 145B et 120B sur un seul GPU NVIDIA.
+
+Tous deux sont entraînés nativement en 4 bits et proposés aux formats Q3_K et NVFP4 pour les tâches d’agents locaux.
+
+[`edge0-infer`](edge0-infer/README.md) fournit les commandes communes `serve` et `chat` et sélectionne le moteur à partir du dossier du modèle. Les modèles actuels utilisent [edge0-strata](edge0-strata/EDGE0.md), un fork de Strata ; la version précédente de 35B utilise le [moteur natif fondé sur GGML](docs/legacy-models_fr.md#native-engine-design).
+
+
### Plateformes
-[`edge0-infer`](edge0-infer/README_fr.md) est le programme que vous lancez (CLI, serveur local compatible OpenAI et Anthropic, applications de discussion), avec les mêmes commandes pour tous les modèles. Chaque modèle s'exécute sur le moteur conçu pour lui, et edge0-infer choisit le moteur d'après le dossier du modèle ; il n'y a rien à choisir : `edge0-35b` s'exécute sur le **moteur natif** de `edge0-infer/` (construit sur GGML, avec une API C++ native), et `edge0-145b` et `edge0-120b` sur **edge0-strata**, dans [`edge0-strata/`](edge0-strata/EDGE0.md), un fork de Strata.
+La prise en charge dépend du modèle et de son moteur.
+
+| Plateforme | `edge0-145b`, `edge0-120b` (edge0-strata) | `edge0-35b` (moteur natif) |
+| --- | --- | --- |
+| **Linux** | NVIDIA GPU (CUDA 13) | CPU |
+| **Windows** | NVIDIA GPU (CUDA 13) | CPU, Vulkan |
+| **macOS** (Apple Silicon) | — | Metal, CPU |
+| **iOS** | — | Metal |
+| **Android** | — | CPU |
+
+Pour la dernière version, suivez l’[installation de 145B / 120B](#getting-started). Le [guide de la version précédente](docs/legacy-models_fr.md#platforms) couvre les backends natifs, les compilations par plateforme et les exemples de chat. Le checkpoint 8B est disponible ; sa prise en charge par le moteur natif est prévue.
-| Plateforme | `edge0-35b` (moteur natif) | `edge0-145b`, `edge0-120b` (edge0-strata) |
-|---|---|---|
-| **macOS** (Apple Silicon) | Metal, CPU | — |
-| **iOS** | Metal | — |
-| **Android** | CPU | — |
-| **Linux** | CPU | GPU NVIDIA (CUDA 13) |
-| **Windows** | CPU, Vulkan | GPU NVIDIA (CUDA 13) |
+
-Mesures : [Benchmarking](edge0-infer/docs/benchmarking.md#reference-figures) pour `edge0-35b`, et la [page du modèle](docs/models/edge0-145b.md) pour `edge0-145b` et `edge0-120b`. Sur le moteur natif, le prefill et le decode peuvent s'exécuter sur des backends différents du même appareil, par exemple prefill sur Metal et decode sur CPU. Les exemples d'applications de discussion pour le bureau (macOS, Windows), Android et iOS se trouvent dans [`edge0-infer/examples/`](edge0-infer/examples/README.md#chat-applications).
+## Modèles
-### Modèles
+
145B / 120B est la série MoE latente actuelle, dérivée de Qwen3.8-Flash-Next et entraînée nativement en 4 bits.
-Deux gammes de modèles, `edge0-35b` et `edge0-8b`, sont fournies avec le framework. Chaque gamme est
-une publication complète : le checkpoint publié, les adaptateurs LoRA
-entraînés et les têtes prerouter entraînées fonctionnent ensemble comme
-une seule unité.
+Ces modèles fonctionnent sur edge0-strata via `edge0-infer serve` et `edge0-infer chat`, sous Linux ou Windows avec un GPU NVIDIA et CUDA 13.
-| Gamme | Checkpoint publié | Profil d'inférence | Moteur |
+**145B Q3_K · RTX 5090 D 24 GB :** décodage agent à 121.2 tok/s · préremplissage 16K à 3554.9 tok/s.
+
+| Taille | Checkpoint publié | Profil d’inférence | Moteur |
|---|---|---|---|
-| `edge0-35b` | [`Edge0/Edge0-35B-A3B-preview`](https://huggingface.co/Edge0/Edge0-35B-A3B-preview) · [ModelScope](https://www.modelscope.cn/models/Edge0/Edge0-35B-A3B-preview) | 4-bit, 40 couches, 256 experts, prerouter K=4 | Moteur natif ✅ |
-| `edge0-8b` | [`Edge0/Edge0-8B-A1B-preview`](https://huggingface.co/Edge0/Edge0-8B-A1B-preview) · [ModelScope](https://www.modelscope.cn/models/Edge0/Edge0-8B-A1B-preview) | 4-bit, 24 couches, 128 experts, prerouter K=8 | Moteur natif (prévu) |
-| [`edge0-145b`](docs/models/edge0-145b.md) | [`Edge0/Edge0-145B-q3k`](https://huggingface.co/Edge0/Edge0-145B-q3k) · [NVFP4](https://huggingface.co/Edge0/Edge0-145B-NVFP4) | experts latents Q3_K ou NVFP4 (1792), 48 couches, 512 experts, K=10 | edge0-strata ✅ (Linux ou Windows, GPU NVIDIA) |
-| [`edge0-120b`](docs/models/edge0-145b.md) | [`Edge0/Edge0-120B-q3k`](https://huggingface.co/Edge0/Edge0-120B-q3k) · [NVFP4](https://huggingface.co/Edge0/Edge0-120B-NVFP4) | experts latents Q3_K ou NVFP4 (1280), 48 couches, 512 experts, K=10 | edge0-strata ✅ (Linux ou Windows, GPU NVIDIA) |
-
-Les deux checkpoints publiés reposent sur des modèles de base sparse-MoE ouverts
-(respectivement Qwen3.6-35B-A3B et l'hybride bailing Ling 3.0) et intègrent
-l'entraînement LoRA et prerouter réalisé pour ce framework. edge0-infer
-télécharge le checkpoint publié avec ses outils de ressources et le convertit
-en ressources de modèle du moteur (voir [Démarrage rapide](#démarrage-rapide)).
-`edge0-145b` et `edge0-120b` forment une gamme latent-MoE distincte pour un seul GPU NVIDIA ; ils s'exécutent avec edge0-strata, que `edge0-infer serve` et `edge0-infer chat` démarrent (voir [edge0-145b et edge0-120b](docs/models/edge0-145b.md)).
-
-### Conception
-
-- **Basé sur GGML, le même code sur chaque plateforme** : la bibliothèque
- native ne dépend que de GGML, intégré sans modification dans une version
- fixe ; la compilation ne télécharge rien ;
-- **Une seule API native** : les applications se lient à la cible CMake
- `edge0::edge0` et incluent les en-têtes de `include/edge0/` pour utiliser le
- moteur dans le processus ; la CLI de référence et le serveur local
- utilisent les mêmes paramètres et valeurs par défaut que l'API
- native ;
-- **Experts à la demande** : les experts routés sont lus depuis le stockage à
- la demande dans un nombre fixe d'emplacements par couche, si bien qu'un
- modèle plus grand que le budget mémoire de l'appareil s'exécute sans être
- chargé en entier ;
-- **Deux modes de routage** : `predicted` (par défaut) utilise le prerouter
- pour préparer en arrière-plan les experts du token suivant pendant le calcul
- du token courant ; `actual` est le calcul d'origine du modèle, pour
- comparaison ;
-- **Réutilisation multi-tours** : dans une conversation multi-tours, seul le
- nouveau message de chaque tour est généralement calculé ; les résultats
- précédents sont réutilisés.
-
-Voir l'[architecture d'edge0-infer](edge0-infer/docs/architecture.md).
-
-### Qualité
-
-Tous les benchmarks ont été exécutés par nos soins avec
-[OpenCompass](https://github.com/open-compass/opencompass), dans des
-conditions et avec des paramètres identiques, pour les modèles edge0
-(int4 + adaptateurs entraînés + routage prerouter) et pour les modèles de
-base fp16 d'origine. La perte du pipeline edge0 est faible : **3,9 points
-en moyenne pour edge0-35b, 2,8 pour edge0-8b** (MMLU-Pro est même
-au-dessus de la base). Maximum 100 :
-
-| Benchmark | edge0-35b (int4) | Qwen3.6-35B-A3B (fp16) | edge0-8b (int4) | Ling 3.0 tiny (fp16) |
-|---|---:|---:|---:|---:|
-| AIME 2026 | 86.6 | 92.7 | 63.3 | 73.3 |
-| HumanEval | 90.9 | 95.1 | 91.5 | 92.7 |
-| GPQA-Diamond | 79.8 | 81.8 | 70.7 | 71.2 |
-| MMLU-Pro | 81.0 | 84.6 | 70.1 | 65.8 |
-| IFBench | 57.9 | 61.7 | 53.9 | 60.6 |
-| **Moyenne** | **79.2** | **83.2** | **69.9** | **72.7** |
-
-`edge0-145b` et `edge0-120b` (**gras** = meilleur de la colonne ; voir la [page du modèle](docs/models/edge0-145b.md#quality)) :
-
-| Model | deepswe 1.1 | terminal-bench 2.1 | AA-LCR | IFBench | GPQA-Diamond | HLE |
+| [`edge0-145b`](docs/models/edge0-145b.md) | [`Edge0/Edge0-145B-q3k`](https://huggingface.co/Edge0/Edge0-145B-q3k) · [NVFP4](https://huggingface.co/Edge0/Edge0-145B-NVFP4) | Experts latents Q3_K ou NVFP4 (1792), 48 couches, 512 experts, K=10 | edge0-strata ✅ (Linux ou Windows, GPU NVIDIA) |
+| [`edge0-120b`](docs/models/edge0-145b.md) | [`Edge0/Edge0-120B-q3k`](https://huggingface.co/Edge0/Edge0-120B-q3k) · [NVFP4](https://huggingface.co/Edge0/Edge0-120B-NVFP4) | Experts latents Q3_K ou NVFP4 (1280), 48 couches, 512 experts, K=10 | edge0-strata ✅ (Linux ou Windows, GPU NVIDIA) |
+
+
+
+
+
Vue d’ensemble · 145B Q3_K
+
+Q3_K · RTX 5090 D 24 GB. Le préremplissage utilise une entrée de 16K tokens. Les scores de qualité sont des résultats par modèle.
+
+
+
+
+
+
+
+## Qualité
+
+### 145B / 120B
+
+Six évaluations, six modèles. Un score plus élevé est meilleur. Les résultats sont présentés par modèle, et non sous forme d’évaluations distinctes de Q3_K et NVFP4.
+
+
+
+[Scores copiables et noms complets des modèles](docs/models/edge0-145b.md#quality)
+
+
+Scores copiables · les six modèles
+
+Le gras indique le meilleur score de chaque colonne.
+
+| Modèle | deepswe 1.1 | terminal-bench 2.1 | AA-LCR | IFBench | GPQA-Diamond | HLE |
| --- | ---: | ---: | ---: | ---: | ---: | ---: |
| **Edge0-145B** | **64.6** | **86.5** | 79.3 | 80.6 | 90.4 | 35.4 |
| **Edge0-120B** | 51.3 | 75.3 | 81.0 | 79.3 | 87.4 | 31.0 |
@@ -145,172 +154,229 @@ au-dessus de la base). Maximum 100 :
| Qwen3.8-27B | 42.2 | 73.0 | **82.0** | 79.5 | 89.2 | 30.8 |
| Claude-Opus-4.6 (Max) | / | 78.2 | 78.0 | 62.5 | 91.3 | **40.0** |
-### Benchmark
+
+
+
+
+
+
+## Performances
-`edge0-35b` avec le routage `predicted`, mesuré avec edge0-infer (chaque plage va du minimum au maximum de trois processus) :
+
-| Plateforme | Appareil | Prompt | Premier token | Vitesse de decode | Pic mémoire |
-|---|---|---|---|---|---|
-| macOS Metal | Apple M5, 16 Gio | 3 084 tokens | 5,60–5,87 s | 24,8–24,9 tok/s | 3,43 Gio (`phys_footprint`) |
-| macOS CPU | Apple M5, 16 Gio | 627 tokens | 11,5–11,7 s | 21,7–22,3 tok/s | 2,96 Gio (`phys_footprint`) |
-| iOS Metal | iPhone 17 Pro Max, 12 Go | 627 tokens | 8,20–8,26 s | 13,2 tok/s | 3,05 Gio (`phys_footprint`) |
-| Android CPU | OnePlus PKR110, 16 Go | 627 tokens | 18,4–18,8 s | 11,4–11,8 tok/s | 2,82 Gio (RSS) |
-| Windows CPU | Intel Core i5-12400, 32 Go | 627 tokens | 16,9–17,3 s | 7,3–8,2 tok/s | 2,86 Gio (jeu de travail) |
-| Windows Vulkan (deux phases, 32 emplacements d'experts) | RTX 4070 SUPER, 12 Go | 627 tokens | 3,75–3,76 s | 23,6–24,0 tok/s | Hausse de la mémoire GPU 5,35 Gio |
+### 145B / 120B
-Les métriques mémoire diffèrent selon la plateforme et ne sont pas directement comparables. La méthode de mesure, les chiffres en routage `actual` et les commandes de reproduction se trouvent dans [Benchmarking](edge0-infer/docs/benchmarking.md#reference-figures).
+Tous les débits sont exprimés en tok/s. Le chiffre mis en avant correspond à **145B Q3_K** sur RTX 5090 D 24 GB.
-`edge0-145b` et `edge0-120b` sur edge0-strata, un seul GPU NVIDIA (tok/s) :
+
+Vitesse de 145B · tous les appareils et formats
-#### edge0-145b
+Les lignes mises en évidence correspondent à Q3_K. Cliquez sur le tableau pour l’afficher en taille réelle.
-| Machine | Build | 4K prefill | 16K prefill | Chat decode | Agent decode |
-| --- | --- | ---: | ---: | ---: | ---: |
+
+
+
+Données de vitesse copiables pour 145B
+
+| Appareil | Format | Préremplissage 4K | Préremplissage 16K | Décodage chat | Décodage agent |
+|---|---|---:|---:|---:|---:|
| RTX 5090 D 24 GB | Q3_K | 2169.9 | 3554.9 | 99.7 | **121.2** |
| RTX 5090 D 24 GB | NVFP4 | 1839.6 | 3165.7 | 79.6 | 98.3 |
| RTX 4090 24 GB | Q3_K | 2042.0 | 3179.4 | 69.9 | 91.7 |
| RTX Spark N1X 60 GiB | Q3_K | 674.0 | 770.3 | 37.7 | 36.7 |
| RTX Spark N1X 60 GiB | NVFP4 | 821.2 | 922.4 | 40.1 | 46.0 |
+| Apple M2 Ultra (Metal) | Q3_K | 755.6 | 800.3 | 60.9 | 57.0 |
| 16 GiB VRAM + 20 GiB RAM | Q3_K | 249 | 335 | 36.8 | 44.9 |
-#### edge0-120b
+
+
+
+
+
+Conditions de mesure de 145B · budget limité et résidence en mémoire
+
+Les lignes `16 GiB VRAM + 20 GiB RAM` utilisent elles aussi la RTX 5090 D 24 GB, limitée par cgroup à un budget de 16 GiB de VRAM et de 20 GiB de RAM système ; il ne s’agit pas d’une autre carte. Avec la résidence activée, **Q3_K** (40.81 GiB de poids) occupe 23.14 GiB VRAM + 31.28 GiB RAM, et **NVFP4** (47.79 GiB) occupe 23.25 GiB VRAM + 38.27 GiB RAM sur cette même carte. Les ensembles d’experts sont disjoints, sans double comptage.
+
+Le budget de 16 GiB VRAM + 20 GiB RAM est une limite de test, pas une configuration minimale requise. La ligne Apple M2 Ultra est une mesure sous Metal, et non une annonce de disponibilité pour macOS.
+
+
+
+
+Vitesse de 120B · tous les appareils et formats
-| Machine | Build | 4K prefill | 16K prefill | Chat decode | Agent decode |
-| --- | --- | ---: | ---: | ---: | ---: |
+
+
+
+Données de vitesse copiables pour 120B
+
+| Appareil | Format | Préremplissage 4K | Préremplissage 16K | Décodage chat | Décodage agent |
+|---|---|---:|---:|---:|---:|
| 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 |
-Les lignes `16 GiB VRAM + 20 GiB RAM` correspondent à la même RTX 5090 D 24 GB, limitée par cgroup à 16 Gio de mémoire GPU et 20 Gio de mémoire système. Les détails sont sur la [page du modèle](docs/models/edge0-145b.md#speed-measured-one-card).
+
-## Démarrage rapide
+Les lignes `16 GiB VRAM + 20 GiB RAM` utilisent elles aussi la RTX 5090 D 24 GB, limitée par cgroup à un budget de 16 GiB de VRAM et de 20 GiB de RAM système ; il ne s’agit pas d’une autre carte. Avec la résidence activée, **Q3_K** (27.98 GiB de poids) occupe 22.93 GiB VRAM + 18.40 GiB RAM, et **NVFP4** (32.96 GiB) occupe 23.02 GiB VRAM + 23.40 GiB RAM sur cette même carte. Les ensembles d’experts sont disjoints, sans double comptage.
-Lancez les commandes suivantes dans `edge0-infer/`. Il faut CMake 3.21 ou
-plus récent, Ninja, un compilateur C++17/C11, uv et Git ; le 35B nécessite
-environ 18 Go pour les poids d'origine et environ 20 Go pour les ressources
-converties, plus autant d'espace libre pendant la conversion.
+
-### 1) Compiler
+
-```bash
-cd edge0-infer
-cmake --preset mac-metal && cmake --build --preset mac-metal
-build/mac-metal/bin/edge0-infer info # doit afficher une ligne : model.0: edge0_35b
-```
+
+
En action
-Sur les machines sans Metal, utilisez `--preset cpu`, `build/cpu/bin/edge0-infer`
-et `--device cpu` dans les commandes ci-dessous.
+
-**edge0-35b (moteur natif).** Téléchargez et convertissez les ressources du modèle :
+
+Cinq démonstrations · guide des chapitres
-```bash
-export MOE_SOURCE_35B=
-export MOE_ASSETS_35B=
+| Temps | Démonstration |
+| --- | --- |
+| 0:00 | Chat et programmation en local |
+| 0:36 | Production vidéo |
+| 0:58 | Manhattan en 3D |
+| 1:19 | Création d’un environnement de cathédrale |
+| 1:38 | Conception de PCB |
+
+[Repères de chapitres (VTT)](assets/edge0-release/showcase-chapters.vtt)
-uv sync --project tools/assets
-assets_py() { uv run --project tools/assets --offline --no-sync python -I "$@"; }
+
-assets_py tools/assets/edge0_35b/fetch_source.py download --out "$MOE_SOURCE_35B"
-assets_py tools/assets/edge0_35b/make_assets.py --source "$MOE_SOURCE_35B" --out "$MOE_ASSETS_35B"
-assets_py tools/assets/check_assets.py check "$MOE_ASSETS_35B"
+
+
+## Architecture
+
+Le MoE latent compresse les entrées des experts tout en conservant l’attention à pleine largeur. Le modèle 145B utilise une largeur latente de 1792, contre 1280 pour le 120B. Tous deux acheminent chaque token vers 10 des 512 experts, auxquels s’ajoute un expert partagé.
+
+
+Détails de l’architecture · schéma et configuration
+
+
+
+[Configuration complète, routage et profils des deux modèles](docs/models/edge0-145b.md#model-profile).
+
+
+
+
+
+
+
+## Premiers pas
+
+### 145B / 120B · edge0-strata
+
+Chaque dossier de modèle (Q3_K ou NVFP4, Edge0-145B ou Edge0-120B) s’exécute via `edge0-infer`, depuis la ligne de commande ou l’application de bureau Edge0 Chat. Conservez la structure du dossier : `edge0-infer` identifie le modèle grâce à `model_name` dans son `model.json`.
+
+Pour 145B et 120B, utilisez `serve` ou `chat` ; `run` est réservé au moteur natif.
+
+
+Notes sur les plateformes et la documentation
+
+Les instructions de compilation ciblent les GPU NVIDIA avec CUDA 13 sous Linux ou Windows (x64 ou ARM64). Les mesures sur Apple M2 Ultra utilisent Metal ; elles n’établissent pas la disponibilité d’une version pour macOS.
+
+
+
+
+Compilation et ligne de commande
+
+**1. Compiler.** Clonez le dépôt, puis compilez les deux parties. Exécutez les commandes de lancement ci-dessous depuis `edge0-infer/` :
+
+```bash
+git clone https://github.com/Edge0-AI/Edge0.git edge0
```
-Le téléchargement récupère `Edge0/Edge0-35B-A3B-preview` sur Hugging Face et le
-vérifie avec la révision et les empreintes verrouillées.
+- **edge0-strata**, le moteur : suivez « Build (Linux, NVIDIA) » ou « Build (Windows, NVIDIA) » dans [edge0-strata/EDGE0.md](edge0-strata/EDGE0.md).
+- **edge0-infer** : suivez « Build » (Linux) ou « Windows » dans [edge0-infer/docs/getting-started.md](edge0-infer/docs/getting-started.md).
-**edge0-145b et edge0-120b (edge0-strata).** Compilez edge0-strata comme l'indique [`edge0-strata/EDGE0.md`](edge0-strata/EDGE0.md) et utilisez un dossier de modèle publié (voir [edge0-145b et edge0-120b](docs/models/edge0-145b.md)).
+**2. Exécuter en ligne de commande.** Indiquez un seul dossier de modèle, tel que `Edge0-145B-q3k`, et non le dossier contenant plusieurs modèles. Sous Windows, le programme est `build\windows\bin\edge0-infer.exe`.
-### 3) Exécuter
+```bash
+build/cpu/bin/edge0-infer serve --model /path/to/Edge0-145B-q3k
+```
+
+Une fois les poids chargés, le programme affiche `Listening: http://127.0.0.1:8000 model=`, où `` vaut `edge0_145b`, puis expose des endpoints compatibles OpenAI et Anthropic :
```bash
-# une requête
-build/mac-metal/bin/edge0-infer run --model "$MOE_ASSETS_35B" --device metal --user "Présente-toi en une phrase."
-# discussion multi-tours
-build/mac-metal/bin/edge0-infer chat --model "$MOE_ASSETS_35B" --device metal
-# serveur (compatible OpenAI et Anthropic, par défaut http://127.0.0.1:8000)
-build/mac-metal/bin/edge0-infer serve --model "$MOE_ASSETS_35B" --device metal
+curl localhost:8000/v1/chat/completions -H 'content-type: application/json' -d '{"model":"edge0_145b","messages":[{"role":"user","content":"hi"}],"max_tokens":64}'
```
-Pour edge0-145b et edge0-120b, `chat` et `serve` prennent le dossier du modèle de la même façon (`--model `) ; `run` est réservé au moteur natif.
+`edge0-infer chat --model /path/to/Edge0-145B-q3k` ouvre une session interactive. Autres options : [edge0-infer/docs/edge0-145b.md](edge0-infer/docs/edge0-145b.md).
+
+
-Pour les compilations Android, Windows et iOS, et pour utiliser le moteur depuis
-votre propre projet CMake, voir [Getting started](edge0-infer/docs/getting-started.md).
+
+Application de bureau · Windows
+
+⬇️ **Télécharger :** **[GitHub Releases](https://github.com/Edge0-AI/Edge0/releases)**
+
+Ouvrez **Edge0 Chat** sous Windows et choisissez un dossier de modèle, tel que `Edge0-145B-q3k`, pour l’exécuter localement. Pour compiler l’application depuis les sources, suivez le guide [Edge0 Chat](edge0-infer/examples/desktop/README.md).
+
+
## Documentation
-**Modèles**
+**Dernière version · 145B / 120B**
+
+- [Modèles, mesures et architecture](docs/models/edge0-145b.md)
+- [edge0-strata · conventions de compilation et de lancement](edge0-strata/EDGE0.md)
+- Guides des modèles edge0-infer : [145B](edge0-infer/docs/edge0-145b.md) / [120B](edge0-infer/docs/edge0-120b.md)
+
+**Framework**
+
+- [edge0-infer](edge0-infer/README.md) · ligne de commande, serveur local et applications de chat
+- [Serveur local](edge0-infer/docs/local-server.md) / [Tests](edge0-infer/docs/testing.md)
+- [Outils de ressources des modèles et ajout d’un modèle](edge0-infer/tools/assets/README.md)
+
+
+Version précédente · modèles et documentation du moteur natif
+- [Guide de la version 35B / 8B](docs/legacy-models_fr.md)
- [Routage MoE et experts](docs/moe.md) / [prerouter](docs/prerouter.md)
-- [edge0-35b](docs/models/edge0-35b.md) / [edge0-8b](docs/models/edge0-8b.md) / [edge0-145b et edge0-120b](docs/models/edge0-145b.md)
+- Références des modèles : [edge0-35b](docs/models/edge0-35b.md) / [edge0-8b](docs/models/edge0-8b.md)
+- [Premiers pas](edge0-infer/docs/getting-started.md) : compilation native, ressources des modèles, run, chat et serve sur les plateformes prises en charge
+- [Configuration](edge0-infer/docs/configuration.md) / [API native](edge0-infer/docs/native-api.md)
+- [Architecture](edge0-infer/docs/architecture.md) / [Conception du moteur natif](edge0-infer/docs/architecture.md#native-engine) / [Limitations connues](edge0-infer/docs/limitations.md)
+- [Mesures de performances](edge0-infer/docs/benchmarking.md)
- Rapport technique : [The Other Half of the Memory Wall](https://arxiv.org/abs/2609.18063) ([PDF](paper/main.pdf))
-**edge0-infer**
+
-- [Getting started](edge0-infer/docs/getting-started.md) : compilation, ressources du modèle, exécution, discussion et serveur sur chaque plateforme
-- [Configuration](edge0-infer/docs/configuration.md) / [Native API](edge0-infer/docs/native-api.md) / [Serveur local](edge0-infer/docs/local-server.md)
-- [Architecture](edge0-infer/docs/architecture.md) / [Known limitations](edge0-infer/docs/limitations.md)
-- [Benchmarking](edge0-infer/docs/benchmarking.md) / [Testing](edge0-infer/docs/testing.md)
-- [Outils de ressources du modèle et ajout d'un modèle](edge0-infer/tools/assets/README.md)
+
-**Moteurs**
+## Feuille de route
-- Moteur natif : [Architecture](edge0-infer/docs/architecture.md#native-engine) / [Native API](edge0-infer/docs/native-api.md)
-- edge0-strata : [compilation et contrat de lancement](edge0-strata/EDGE0.md) / [edge0-145b](edge0-infer/docs/edge0-145b.md) et [edge0-120b](edge0-infer/docs/edge0-120b.md) dans edge0-infer
+
+Quatrième trimestre 2026 · architecture et inférence
-## Feuille de route
+**Modèles et algorithmes**
-### T4 2026
+Deux axes structurent le quatrième trimestre : intégrer une architecture de nouvelle génération et transformer le raisonnement latent en un véritable gain de latence, au-delà de la seule réduction du calcul.
-**Plateformes et systèmes**
+- **Prise en charge des architectures de nouvelle génération (classe Qwen3.8-Flash)** — exécuter l’attention linéaire hybride (GDN + QSA), les résidus multibranches à portes et les topologies d’embeddings N-gram sur edge0. Ces conceptions conviennent naturellement à la décharge en streaming vers le SSD : l’attention à état O(1) évite que les longues phases de réflexion deviennent un problème de KV-cache, et les tables N-gram utilisées uniquement en consultation se chargent à la demande. Objectif : exécuter le modèle sur un seul appareil avec un écart d’évaluation acceptable par rapport à la base fp16.
+- **Réflexion latente + préprédiction d’experts par lots** — faire du raisonnement latent un gain de *latence*, et pas seulement de calcul. Le problème central est de passer d’un routage par position à **un routage par bloc**, afin qu’une prédiction couvre toutes les positions et toutes les itérations du bloc, et que **le volume d’experts chargés soit indépendant du nombre de boucles de raisonnement**. S’y ajoute la prélecture entre blocs, qui charge les experts du bloc suivant pendant le calcul du bloc actuel. Les progrès se mesurent par le **temps de bout en bout de la phase de réflexion à précision égale**, jamais en tokens/s.
-- ✅ **Moteur d'inférence unifié edge0 publié en open source** (2026-11-04) —
- [`edge0-infer`](edge0-infer/README_fr.md) : un seul moteur et une seule API
- native pour macOS, iOS, Android et Windows.
-- **Prise en charge d'`edge0-8b` dans edge0-infer**.
+[Jalons de la version précédente et prise en charge prévue par le moteur natif](docs/legacy-models_fr.md#roadmap).
-**Modèles et algorithmes**
+
+
+
+
+## Contribuer
+
+
+Processus de développement et vérifications
+
+Toutes les contributions sont bienvenues : issues, PR, rapports de performances et portages de modèles.
-Le T4 travaille sur deux fronts : intégrer une architecture de nouvelle
-génération dans le framework, et transformer le raisonnement latent en un
-véritable gain de latence et non seulement arithmétique.
-
-- **Prise en charge des architectures de nouvelle génération (classe
- Qwen3.8-Flash)** — exécuter sur edge0 l'attention linéaire hybride
- (GDN + QSA), les résidus multi-branches à portail et les topologies
- d'embedding N-gram. Ces conceptions se prêtent naturellement au SSD
- expert offload en streaming : l'attention à état O(1) évite que les
- longues réflexions ne deviennent un problème de KV cache, et les tables
- N-gram, consultables uniquement en lecture (lookup-only), se chargent en
- streaming à la demande. Objectif : que la gamme s'exécute sur un seul
- appareil et que les benchmarks se situent à un écart acceptable de la
- base fp16.
-- **Raisonnement latent + pré-prédiction d'experts par lots** — faire du
- raisonnement latent une économie de *latence*, et pas seulement
- arithmétique. Le problème d'ingénierie central : faire passer le routage
- des experts d'une prédiction par position à **une prédiction par bloc**,
- afin qu'une seule prédiction couvre toutes les positions et tous les
- tours d'un bloc et que **le volume de chargement des experts soit
- découplé du nombre de tours de la boucle de raisonnement** — plus un
- préchargement inter-blocs qui charge les experts du bloc suivant dans la
- fenêtre de calcul du bloc courant. Les progrès sont mesurés en **temps
- de phase de réflexion de bout en bout à précision égale** (jamais en
- tokens/s).
-- Davantage de gammes de modèles et de versions d'adaptateurs sur le
- pipeline existant.
-
-## Contribution
-
-Les contributions sont les bienvenues — issues, PR, rapports de benchmark
-et portages de modèles, tout compte.
-
-La compilation et les tests sont décrits dans [Testing](edge0-infer/docs/testing.md) ;
-les vérifications qui ne nécessitent pas de ressources de modèle :
+La compilation et les tests sont décrits dans [Tests](edge0-infer/docs/testing.md). Ces vérifications ne nécessitent aucun fichier de modèle :
```bash
cd edge0-infer
@@ -318,19 +384,17 @@ cmake --preset cpu && cmake --build --preset cpu
ctest --preset cpu -L "L0|L1"
```
-Pour les modifications sous `edge0-infer/`, ouvrez comme d'habitude des
-issues et des PR dans ce dépôt ; le répertoire est développé dans un dépôt
-séparé : les mainteneurs appliquent d'abord là-bas les modifications
-acceptées, qui arrivent ici lors de la synchronisation suivante. Voir
-[CONTRIBUTING](CONTRIBUTING.md).
+Pour les changements dans `edge0-infer/`, ouvrez les issues et PR dans ce dépôt comme d’habitude. Ce répertoire est développé dans un dépôt distinct : les mainteneurs y appliquent d’abord les changements acceptés, qui arrivent ici à la synchronisation suivante. Voir [CONTRIBUTING](CONTRIBUTING.md).
-Workflow : fork → branche de fonctionnalité → PR vers `main`. Merci de
-garder les tests au vert et d'ajouter des tests pour les nouveaux
-comportements.
+Processus : fork → branche de fonctionnalité → PR vers `main`. Veillez à ce que les tests réussissent et ajoutez-en pour les nouveaux comportements.
+
+
## Citation
-Si vous trouvez edge0 utile, merci de citer notre rapport technique :
+Le rapport technique porte sur l’inférence de 35B en streaming depuis un SSD et la prédiction de routage apprise.
+
+Si edge0 vous est utile, veuillez citer notre rapport technique :
```bibtex
@article{lin2026other,
@@ -344,14 +408,57 @@ Si vous trouvez edge0 utile, merci de citer notre rapport technique :
}
```
-## Nous contacter
+
+
+## Contact
+
+- **Discord** : [edge0.ai/discord](https://edge0.ai/discord) — échanges et assistance de la communauté
+- **E-mail** : samuel@edge0.ai
+
+Pour les bugs et les demandes de fonctionnalités, utilisez [GitHub Issues](https://github.com/Edge0-AI/Edge0/issues).
+
+
+
+
+
Licence
+
+
+
+### Code du framework
+
+Le code du framework reste sous [Apache-2.0](LICENSE). Les composants inclus conservent leurs licences et [mentions](NOTICE) propres, notamment la [licence MIT](edge0-strata/LICENSE) de Strata.
+
+
+
+### Licence des modèles
+
+Les contributions propres à Edge0 aux modèles sont sous [Edge0 Community Model License 1.0](licenses/edge0-model/LICENSE). Celle-ci ne s’applique qu’aux contributions détenues par Edge0 ou qu’Edge0 est autorisé à licencier. Les licences antérieures valides restent inchangées.
+
+Sous réserve des conditions amont applicables, la licence autorise l’usage personnel, la recherche, l’éducation, la modification, le partage non commercial, l’usage interne et l’usage commercial des résultats générés. Elle n’impose ni la divulgation des modifications privées ni l’affichage d’un badge Edge0 dans l’interface.
+
+Une autorisation écrite distincte d’Edge0 est nécessaire pour :
+
+- **La vente de modèles et la distribution payante**, y compris les adaptateurs et deltas couverts ainsi que les offres commerciales groupées dont la valeur principale est l’accès au modèle.
+- **Les services commerciaux de modèles** proposant de l’inférence ou de l’ajustement fin, financés par des paiements, abonnements, publicités ou parrainages associés.
+- **Les assistants commerciaux indépendants de programmation ou de bureautique**, que l’inférence s’exécute sur un serveur ou sur l’appareil de l’utilisateur.
+
+Consultez la licence complète pour les définitions, exceptions et obligations de redistribution. Licences commerciales : [info@edge0.ai](mailto:info@edge0.ai).
+
+
+
+### Conditions amont et périmètre
+
+Les éléments de Qwen restent régis par leur licence amont applicable. La [Qwen Community License 1.0](licenses/edge0-model/third-party/Qwen-LICENSE.txt) conservée est reproduite sans modification ; l’autorisation d’Edge0 ne dispense pas des exigences d’attribution de Qwen ni de ses autorisations commerciales distinctes.
+
+Voir le [NOTICE du modèle](licenses/edge0-model/NOTICE) pour les attributions et le périmètre des licences. Les licences du framework et du code tiers ne sont pas affectées.
+
+
+Remerciements · filiation des modèles et crédits du moteur
-- **Discord** : [edge0.ai/discord](https://edge0.ai/discord) — discussion et support communautaires
-- **Email** : samuel@edge0.ai
+Nous remercions les équipes de [Qwen3.8-Flash-Next](https://huggingface.co/Qwen/Qwen3.8-Flash-Next) et de [Strata](https://github.com/Niko1221/Strata). Edge0 ajoute la prise en charge du MoE latent au moteur Strata. `edge0-strata` est un fork de Strata, créé par Niko1221 et les contributeurs de Strata, et conserve sa [licence MIT](edge0-strata/LICENSE).
-Pour les bugs et les demandes de fonctionnalités, merci d'utiliser
-[GitHub Issues](https://github.com/Edge0-AI/Edge0/issues).
+Le code du framework Edge0 est publié sous [Apache-2.0](LICENSE) ; les composants tiers inclus gardent leurs licences propres (voir [NOTICE](NOTICE)). Les [versions précédentes](docs/legacy-models_fr.md#models) conservent leur filiation avec Qwen3.6 et Ling.
-## Licence
+
-Apache-2.0 ; les composants tiers intégrés conservent leur propre licence (voir [NOTICE](NOTICE)).
+
diff --git a/README_ja.md b/README_ja.md
index aae52b0f..749ff1ed 100644
--- a/README_ja.md
+++ b/README_ja.md
@@ -1,100 +1,151 @@
-
+
+[← Edge0 homepage · Latest release: 145B / 120B](../README.md)
+
+The previous Edge0 release: 35B / 8B checkpoints, streaming inference design, benchmarks and setup. The 35B tier runs on the native engine; native-engine support for the released 8B checkpoint remains planned.
+
+[Models](#models) · [Platforms](#platforms) · [Design](#native-engine-design) · [Quality](#quality) · [Benchmark](#benchmark) · [Getting started](#getting-started) · [Citation](#citation)
+
+## Streaming inference
+
+**edge0** is an open-source streaming MoE inference framework. It
+generalizes the production-proven recipe — **SSD expert offload +
+Recover-LoRA + prerouter routing prediction** — into an extensible
+framework that runs large sparse-MoE models on consumer hardware: peak
+memory is bounded by the *active* expert set, not the parameter count.
+
+### Core mechanisms
+
+- **SSD expert offload**: expert weights are streamed from storage on
+ demand; peak memory is bounded by the active set, not the parameter
+ count.
+- **Prerouter**: a trained head predicts expert routing one step
+ ahead, so expert loads overlap the forward pass instead of stalling
+ it — **up to +59%** decode throughput; the gain grows with storage
+ latency, model size, and routed width *K*.
+- **Recover-LoRA**: the int4 base is frozen and LoRA adapters are
+ trained by distillation from the FP teacher, recovering most of the
+ quantization loss at 4-bit (see [Quality](#quality)). Adapters are
+ stored separately from the base and can be switched on or off.
+
+## Models
+
+Two model tiers, `edge0-35b` and `edge0-8b`, ship with the framework. Each tier is an end-to-end
+release: the released checkpoint, the trained LoRA adapters, and the
+trained prerouter heads work together as one unit.
+
+| Tier | Released checkpoint | Inference profile | Engine |
+|---|---|---|---|
+| `edge0-35b` | [`Edge0/Edge0-35B-A3B-preview`](https://huggingface.co/Edge0/Edge0-35B-A3B-preview) · [ModelScope](https://www.modelscope.cn/models/Edge0/Edge0-35B-A3B-preview) | 4-bit, 40 layers, 256 experts, prerouter K=4 | Native engine ✅ |
+| `edge0-8b` | [`Edge0/Edge0-8B-A1B-preview`](https://huggingface.co/Edge0/Edge0-8B-A1B-preview) · [ModelScope](https://www.modelscope.cn/models/Edge0/Edge0-8B-A1B-preview) | 4-bit, 24 layers, 128 experts, prerouter K=8 | Native engine (planned) |
+
+The two released checkpoints are built on open sparse-MoE base models (Qwen3.6-35B-A3B
+and the Ling 3.0 bailing hybrid respectively) and ship with the
+LoRA and prerouter training done for this framework. edge0-infer downloads
+the released checkpoint with its asset tools and converts it into the
+engine's model assets (see [Getting Started](#getting-started)).
+
+## Platforms
+
+[`edge0-infer`](../edge0-infer/README.md) is the program you run (CLI, local OpenAI- and Anthropic-compatible server, chat apps), with shared `serve` and `chat` commands across supported models. Each model runs on the engine built for it, and edge0-infer picks the engine from the model folder; there is nothing to choose: `edge0-35b` runs on the **native engine** in `edge0-infer/` (built on GGML, with a native C++ API), and `edge0-145b` and `edge0-120b` run on **edge0-strata** in [`edge0-strata/`](../edge0-strata/EDGE0.md), a fork of Strata.
+
+| Platform | `edge0-35b` (native engine) | `edge0-145b`, `edge0-120b` (edge0-strata) |
+|---|---|---|
+| **macOS** (Apple Silicon) | Metal, CPU | — |
+| **iOS** | Metal | — |
+| **Android** | CPU | — |
+| **Linux** | CPU | NVIDIA GPU (CUDA 13) |
+| **Windows** | CPU, Vulkan | NVIDIA GPU (CUDA 13) |
+
+Measurements: [Benchmarking](../edge0-infer/docs/benchmarking.md#reference-figures) for `edge0-35b`, and the [model page](models/edge0-145b.md) for `edge0-145b` and `edge0-120b`. On the native engine, prefill and decode can run on different backends of the same device, for example Metal prefill with CPU decode. Chat app examples for desktop (macOS, Windows), Android and iOS are in [`edge0-infer/examples/`](../edge0-infer/examples/README.md#chat-applications).
+
+## Native-engine design
+
+- **GGML-based, the same code on every platform**: the native library
+ depends only on GGML, vendored unmodified at a fixed version; the build
+ downloads nothing;
+- **One native API**: applications link the CMake target `edge0::edge0`
+ and include the headers in `include/edge0/` to use the engine in
+ process; the reference CLI and the local server use the same
+ settings and defaults as the native API;
+- **Experts on demand**: routed experts are read from storage on demand
+ into a fixed number of expert slots per layer, so a model larger than the
+ device memory budget runs without being loaded whole;
+- **Two routing modes**: `predicted` (default) uses the prerouter to
+ prepare the next token's experts in the background while the current
+ token computes; `actual` is the model's original computation, for
+ comparison;
+- **Multi-turn reuse**: in a multi-turn conversation usually only each
+ turn's new message is computed; earlier results are reused.
+
+See the [edge0-infer architecture](../edge0-infer/docs/architecture.md).
+
+## Quality
+
+All benchmarks were run by us with [OpenCompass](https://github.com/open-compass/opencompass)
+under identical settings and parameters for both the edge0 models (int4 +
+trained adapters + prerouter routing) and the original fp16 base models.
+The loss of the edge0 pipeline is small: **3.9 points on average for
+edge0-35b, 2.8 for edge0-8b** (MMLU-Pro is even above the base). Max 100:
+
+
+
+
+Copyable quality data
+
+| Benchmark | edge0-35b (int4) | Qwen3.6-35B-A3B (fp16) | edge0-8b (int4) | Ling 3.0 tiny (fp16) |
+|---|---:|---:|---:|---:|
+| AIME 2026 | 86.6 | 92.7 | 63.3 | 73.3 |
+| HumanEval | 90.9 | 95.1 | 91.5 | 92.7 |
+| GPQA-Diamond | 79.8 | 81.8 | 70.7 | 71.2 |
+| MMLU-Pro | 81.0 | 84.6 | 70.1 | 65.8 |
+| IFBench | 57.9 | 61.7 | 53.9 | 60.6 |
+| **Average** | **79.2** | **83.2** | **69.9** | **72.7** |
+
+
+
+## Benchmark
+
+`edge0-35b` with `predicted` routing, measured with edge0-infer (each range is the minimum to maximum of three processes):
+
+
+
+
+Copyable benchmark data
+
+| Platform | Device | Prompt | First token | Decode speed | Memory peak |
+|---|---|---|---|---|---|
+| macOS Metal | Apple M5, 16 GiB | 3,084 tokens | 5.60–5.87 s | 24.8–24.9 tok/s | 3.43 GiB (`phys_footprint`) |
+| macOS CPU | Apple M5, 16 GiB | 627 tokens | 11.5–11.7 s | 21.7–22.3 tok/s | 2.96 GiB (`phys_footprint`) |
+| iOS Metal | iPhone 17 Pro Max, 12 GB | 627 tokens | 8.20–8.26 s | 13.2 tok/s | 3.05 GiB (`phys_footprint`) |
+| Android CPU | OnePlus PKR110, 16 GB | 627 tokens | 18.4–18.8 s | 11.4–11.8 tok/s | 2.82 GiB (RSS) |
+| Windows CPU | Intel Core i5-12400, 32 GB | 627 tokens | 16.9–17.3 s | 7.3–8.2 tok/s | 2.86 GiB (working set) |
+| Windows Vulkan (both phases, 32 expert slots) | RTX 4070 SUPER, 12 GB | 627 tokens | 3.75–3.76 s | 23.6–24.0 tok/s | GPU memory increase 5.35 GiB |
+
+
+
+Memory metrics differ by platform and cannot be compared directly. The measurement method, the `actual` routing figures and the commands to reproduce them are in [Benchmarking](../edge0-infer/docs/benchmarking.md#reference-figures).
+
+## Getting Started
+
+Run the following commands in `edge0-infer/`. You need CMake 3.21+,
+Ninja, a C++17/C11 compiler, uv and Git; the 35B needs about 18 GB for the
+original weights and about 20 GB for the converted assets, plus as much free
+space again while converting.
+
+### 1) Build
+
+```bash
+cd edge0-infer
+cmake --preset mac-metal && cmake --build --preset mac-metal
+build/mac-metal/bin/edge0-infer info # expect a line: model.0: edge0_35b
+```
+
+On machines without Metal use `--preset cpu`, `build/cpu/bin/edge0-infer`,
+and `--device cpu` in the commands below.
+
+### 2) Get a model
+
+**edge0-35b (native engine).** Download and convert the model assets:
+
+```bash
+export MOE_SOURCE_35B=
+export MOE_ASSETS_35B=
+
+uv sync --project tools/assets
+assets_py() { uv run --project tools/assets --offline --no-sync python -I "$@"; }
+
+assets_py tools/assets/edge0_35b/fetch_source.py download --out "$MOE_SOURCE_35B"
+assets_py tools/assets/edge0_35b/make_assets.py --source "$MOE_SOURCE_35B" --out "$MOE_ASSETS_35B"
+assets_py tools/assets/check_assets.py check "$MOE_ASSETS_35B"
+```
+
+This downloads `Edge0/Edge0-35B-A3B-preview` from Hugging Face and checks
+it against the locked revision and digests.
+
+### 3) Run
+
+```bash
+# one prompt
+build/mac-metal/bin/edge0-infer run --model "$MOE_ASSETS_35B" --device metal --user "Introduce yourself in one sentence."
+# multi-turn chat
+build/mac-metal/bin/edge0-infer chat --model "$MOE_ASSETS_35B" --device metal
+# serve (OpenAI- and Anthropic-compatible, default http://127.0.0.1:8000)
+build/mac-metal/bin/edge0-infer serve --model "$MOE_ASSETS_35B" --device metal
+```
+
+For edge0-145b and edge0-120b, `chat` and `serve` take the model folder the same way (`--model `); `run` is for the native engine.
+
+For the Android, Windows and iOS builds, and for using the engine from
+your own CMake project, see [Getting started](../edge0-infer/docs/getting-started.md).
+
+## Documentation
+
+- [35B model](models/edge0-35b.md) · [8B model](models/edge0-8b.md)
+- [MoE routing and experts](moe.md) · [Prerouter](prerouter.md)
+- [Technical report](https://arxiv.org/abs/2609.18063) · [PDF](../paper/main.pdf)
+- [Native engine setup](../edge0-infer/docs/getting-started.md) · [Benchmark reproduction](../edge0-infer/docs/benchmarking.md)
+- [Configuration](../edge0-infer/docs/configuration.md) · [Native API](../edge0-infer/docs/native-api.md) · [Local server](../edge0-infer/docs/local-server.md)
+- [Architecture](../edge0-infer/docs/architecture.md) · [Known limitations](../edge0-infer/docs/limitations.md) · [Testing](../edge0-infer/docs/testing.md)
+- [Model asset tools and adding a model](../edge0-infer/tools/assets/README.md)
+- Project homepages by language: [中文](../README_zh.md) · [日本語](../README_ja.md) · [Español](../README_es.md) · [Français](../README_fr.md)
+
+## Roadmap
+
+### Q4 2026 · native engine and streaming pipeline
+
+- ✅ **edge0 unified inference engine open-sourced** (2026-11-04) —
+ [`edge0-infer`](../edge0-infer/README.md): one engine and one native API
+ across macOS, iOS, Android and Windows.
+- **`edge0-8b` support in edge0-infer**.
+- More model tiers and adapter releases on the existing pipeline.
+
+See the [framework roadmap](roadmap.md) for next-generation architecture support and latent thinking with batched expert pre-prediction.
+
+## Citation
+
+The technical report covers 35B SSD streaming and trained routing prediction.
+
+If you find edge0 useful, please cite our technical report:
+
+```bibtex
+@article{lin2026other,
+ title = {The Other Half of the Memory Wall: Serving 35B MoEs from SSD
+ with Trained Routing Prediction},
+ author = {Lin, Yu and Wang, Yiming and Cai, Runyuan and Liu, Hanze and
+ Zeng, Xiaodong},
+ journal = {arXiv preprint arXiv:2609.18063},
+ year = {2026},
+ url = {https://arxiv.org/abs/2609.18063}
+}
+```
+
+## Release history
+
+- **[2026-11-04]** We released the **unified inference engine [`edge0-infer`](../edge0-infer/README.md)**: built on [GGML](https://github.com/ggml-org/ggml), one engine and one native C++ API run the same model on macOS, iOS, Android and Windows, with a CLI, an OpenAI-compatible local server, and chat app examples for desktop, Android and iOS. The first release supports `edge0-35b`; `edge0-8b` follows in a later release. It replaces the Python framework and the per-platform engines; the previous code is kept at tag [`pre-edge0-infer`](https://github.com/Edge0-AI/Edge0/tree/pre-edge0-infer).
+- **[2026-09-30]** We released the **edge0 inference engines for four platforms — iOS, macOS, Android and Windows** (source at tag [`pre-edge0-infer`](https://github.com/Edge0-AI/Edge0/tree/pre-edge0-infer)).
+- **[2026-09-16]** Our technical report is on arXiv: [The Other Half of the Memory Wall: Serving 35B MoEs from SSD with Trained Routing Prediction](https://arxiv.org/abs/2609.18063).
+- **[2026-09-08]** Initial open-source release of **edge0**, together with both model tiers — [`Edge0-35B-A3B-preview`](https://huggingface.co/Edge0/Edge0-35B-A3B-preview) and [`Edge0-8B-A1B-preview`](https://huggingface.co/Edge0/Edge0-8B-A1B-preview) — on Hugging Face and ModelScope.
+
+[← Edge0 homepage](../README.md)
diff --git a/docs/legacy-models_es.md b/docs/legacy-models_es.md
new file mode 100644
index 00000000..faf8bbf7
--- /dev/null
+++ b/docs/legacy-models_es.md
@@ -0,0 +1,227 @@
+
+
+[← Inicio de Edge0 · Última versión: 145B / 120B](../README_es.md)
+
+La versión anterior de Edge0: checkpoints de 35B / 8B, diseño de inferencia en streaming, evaluaciones e instalación. El modelo de 35B utiliza el motor nativo; la compatibilidad del checkpoint publicado de 8B con el motor nativo sigue prevista.
+
+[Modelos](#models) · [Plataformas](#platforms) · [Diseño](#native-engine-design) · [Calidad](#quality) · [Rendimiento](#benchmark) · [Primeros pasos](#getting-started) · [Cita](#citation)
+
+
+
+## Inferencia en streaming
+
+**edge0** es un framework de inferencia MoE en streaming de código abierto. Generaliza una receta validada en producción —**descarga de expertos a SSD + Recover-LoRA + predicción de enrutamiento con prerouter**— en un framework extensible que ejecuta grandes modelos MoE dispersos en hardware de consumo: el pico de memoria está limitado por el conjunto de expertos *activos*, no por el número de parámetros.
+
+
+
+### Mecanismos principales
+
+- **Descarga de expertos a SSD**: los pesos de los expertos se leen del almacenamiento bajo demanda; el pico de memoria depende del conjunto activo, no del número de parámetros.
+- **Prerouter**: una cabeza entrenada predice el enrutamiento de expertos con un paso de antelación, solapando la carga con la pasada hacia delante en lugar de bloquearla; **hasta +59%** de rendimiento de decodificación. La mejora crece con la latencia del almacenamiento, el tamaño del modelo y la anchura de enrutamiento *K*.
+- **Recover-LoRA**: se congela la base int4 y se entrenan adaptadores LoRA mediante destilación de un modelo profesor FP, recuperando la mayor parte de la pérdida por cuantización a 4 bits (véase [Calidad](#quality)). Los adaptadores se almacenan por separado y pueden activarse o desactivarse.
+
+
+
+## Modelos
+
+El framework incluye dos tamaños de modelo, `edge0-35b` y `edge0-8b`. Cada uno constituye una publicación integral: el checkpoint publicado, los adaptadores LoRA entrenados y las cabezas prerouter entrenadas trabajan como una unidad.
+
+| Tamaño | Checkpoint publicado | Perfil de inferencia | Motor |
+|---|---|---|---|
+| `edge0-35b` | [`Edge0/Edge0-35B-A3B-preview`](https://huggingface.co/Edge0/Edge0-35B-A3B-preview) · [ModelScope](https://www.modelscope.cn/models/Edge0/Edge0-35B-A3B-preview) | 4 bits, 40 capas, 256 expertos, prerouter K=4 | Motor nativo ✅ |
+| `edge0-8b` | [`Edge0/Edge0-8B-A1B-preview`](https://huggingface.co/Edge0/Edge0-8B-A1B-preview) · [ModelScope](https://www.modelscope.cn/models/Edge0/Edge0-8B-A1B-preview) | 4 bits, 24 capas, 128 expertos, prerouter K=8 | Motor nativo (previsto) |
+
+Los dos checkpoints publicados se basan en modelos MoE dispersos abiertos —Qwen3.6-35B-A3B y Ling 3.0 bailing hybrid, respectivamente— e incluyen el entrenamiento de LoRA y prerouter realizado para este framework. edge0-infer descarga el checkpoint con sus herramientas de recursos y lo convierte en recursos de modelo para el motor (véase [Primeros pasos](#getting-started)).
+
+
+
+## Plataformas
+
+[`edge0-infer`](../edge0-infer/README.md) es el programa que se ejecuta: CLI, servidor local compatible con OpenAI y Anthropic, y aplicaciones de chat. Comparte los comandos `serve` y `chat` entre los modelos compatibles. Cada modelo utiliza su motor correspondiente, seleccionado automáticamente a partir de la carpeta del modelo. `edge0-35b` usa el **motor nativo** de `edge0-infer/` (basado en GGML, con API nativa de C++), mientras que `edge0-145b` y `edge0-120b` usan **edge0-strata** en [`edge0-strata/`](../edge0-strata/EDGE0.md), un fork de Strata.
+
+| Plataforma | `edge0-35b` (motor nativo) | `edge0-145b`, `edge0-120b` (edge0-strata) |
+|---|---|---|
+| **macOS** (Apple Silicon) | Metal, CPU | — |
+| **iOS** | Metal | — |
+| **Android** | CPU | — |
+| **Linux** | CPU | NVIDIA GPU (CUDA 13) |
+| **Windows** | CPU, Vulkan | NVIDIA GPU (CUDA 13) |
+
+Mediciones: [Rendimiento](../edge0-infer/docs/benchmarking.md#reference-figures) para `edge0-35b` y la [página de modelos](models/edge0-145b.md) para `edge0-145b` y `edge0-120b`. En el motor nativo, el prefill y la decodificación pueden usar distintos backends del mismo dispositivo; por ejemplo, prefill en Metal y decodificación en CPU. Los ejemplos de chat para escritorio (macOS, Windows), Android e iOS están en [`edge0-infer/examples/`](../edge0-infer/examples/README.md#chat-applications).
+
+
+
+## Diseño del motor nativo
+
+- **Basado en GGML, el mismo código en todas las plataformas**: la biblioteca nativa solo depende de GGML, incluido sin modificaciones y con una versión fija; la compilación no descarga nada.
+- **Una API nativa**: las aplicaciones enlazan el destino CMake `edge0::edge0` e incluyen las cabeceras de `include/edge0/` para usar el motor dentro del proceso. La CLI de referencia y el servidor local usan los mismos ajustes y valores predeterminados que la API nativa.
+- **Expertos bajo demanda**: los expertos seleccionados se leen del almacenamiento a un número fijo de espacios por capa, permitiendo ejecutar un modelo mayor que el presupuesto de memoria sin cargarlo entero.
+- **Dos modos de enrutamiento**: `predicted` (predeterminado) usa el prerouter para preparar en segundo plano los expertos del siguiente token mientras se calcula el actual; `actual` realiza el cálculo original del modelo, para comparar.
+- **Reutilización entre turnos**: en una conversación de varios turnos, normalmente solo se calcula el nuevo mensaje de cada turno; se reutilizan los resultados anteriores.
+
+Consulta la [arquitectura de edge0-infer](../edge0-infer/docs/architecture.md).
+
+
+
+## Calidad
+
+Realizamos todas las evaluaciones con [OpenCompass](https://github.com/open-compass/opencompass), usando los mismos ajustes y parámetros para los modelos edge0 (int4 + adaptadores entrenados + enrutamiento prerouter) y sus bases fp16 originales. La pérdida de la canalización edge0 es pequeña: **3.9 puntos de media para edge0-35b y 2.8 para edge0-8b** (MMLU-Pro incluso supera a la base). Máximo: 100.
+
+
+
+
+Datos copiables de calidad
+
+| Evaluación | edge0-35b (int4) | Qwen3.6-35B-A3B (fp16) | edge0-8b (int4) | Ling 3.0 tiny (fp16) |
+|---|---:|---:|---:|---:|
+| AIME 2026 | 86.6 | 92.7 | 63.3 | 73.3 |
+| HumanEval | 90.9 | 95.1 | 91.5 | 92.7 |
+| GPQA-Diamond | 79.8 | 81.8 | 70.7 | 71.2 |
+| MMLU-Pro | 81.0 | 84.6 | 70.1 | 65.8 |
+| IFBench | 57.9 | 61.7 | 53.9 | 60.6 |
+| **Media** | **79.2** | **83.2** | **69.9** | **72.7** |
+
+
+
+
+
+## Rendimiento
+
+`edge0-35b` con enrutamiento `predicted`, medido con edge0-infer (cada intervalo abarca del mínimo al máximo de tres procesos):
+
+
+
+
+Datos copiables de rendimiento
+
+| Plataforma | Dispositivo | Longitud del prompt | Primer token | Velocidad de decodificación | Pico de memoria |
+|---|---|---|---|---|---|
+| macOS Metal | Apple M5, 16 GiB | 3,084 tokens | 5.60–5.87 s | 24.8–24.9 tok/s | 3.43 GiB (`phys_footprint`) |
+| macOS CPU | Apple M5, 16 GiB | 627 tokens | 11.5–11.7 s | 21.7–22.3 tok/s | 2.96 GiB (`phys_footprint`) |
+| iOS Metal | iPhone 17 Pro Max, 12 GB | 627 tokens | 8.20–8.26 s | 13.2 tok/s | 3.05 GiB (`phys_footprint`) |
+| Android CPU | OnePlus PKR110, 16 GB | 627 tokens | 18.4–18.8 s | 11.4–11.8 tok/s | 2.82 GiB (RSS) |
+| Windows CPU | Intel Core i5-12400, 32 GB | 627 tokens | 16.9–17.3 s | 7.3–8.2 tok/s | 2.86 GiB (conjunto de trabajo) |
+| Windows Vulkan (ambas fases, 32 espacios para expertos) | RTX 4070 SUPER, 12 GB | 627 tokens | 3.75–3.76 s | 23.6–24.0 tok/s | Incremento de memoria GPU de 5.35 GiB |
+
+
+
+Las métricas de memoria varían según la plataforma y no se pueden comparar directamente. El método de medición, las cifras de enrutamiento `actual` y los comandos para reproducirlas están en [Rendimiento](../edge0-infer/docs/benchmarking.md#reference-figures).
+
+
+
+## Primeros pasos
+
+Ejecuta los siguientes comandos en `edge0-infer/`. Necesitas CMake 3.21+, Ninja, un compilador C++17/C11, uv y Git. El modelo de 35B requiere unos 18 GB para los pesos originales y unos 20 GB para los recursos convertidos, más otro tanto de espacio libre durante la conversión.
+
+
+
+### 1) Compilar
+
+```bash
+cd edge0-infer
+cmake --preset mac-metal && cmake --build --preset mac-metal
+build/mac-metal/bin/edge0-infer info # expect a line: model.0: edge0_35b
+```
+
+En equipos sin Metal, usa `--preset cpu`, `build/cpu/bin/edge0-infer` y `--device cpu` en los comandos siguientes.
+
+
+
+### 2) Obtener un modelo
+
+**edge0-35b (motor nativo).** Descarga y convierte los recursos del modelo:
+
+```bash
+export MOE_SOURCE_35B=
+export MOE_ASSETS_35B=
+
+uv sync --project tools/assets
+assets_py() { uv run --project tools/assets --offline --no-sync python -I "$@"; }
+
+assets_py tools/assets/edge0_35b/fetch_source.py download --out "$MOE_SOURCE_35B"
+assets_py tools/assets/edge0_35b/make_assets.py --source "$MOE_SOURCE_35B" --out "$MOE_ASSETS_35B"
+assets_py tools/assets/check_assets.py check "$MOE_ASSETS_35B"
+```
+
+Esto descarga `Edge0/Edge0-35B-A3B-preview` desde Hugging Face y lo verifica frente a la revisión y los resúmenes criptográficos fijados.
+
+
+
+### 3) Ejecutar
+
+```bash
+# one prompt
+build/mac-metal/bin/edge0-infer run --model "$MOE_ASSETS_35B" --device metal --user "Introduce yourself in one sentence."
+# multi-turn chat
+build/mac-metal/bin/edge0-infer chat --model "$MOE_ASSETS_35B" --device metal
+# serve (OpenAI- and Anthropic-compatible, default http://127.0.0.1:8000)
+build/mac-metal/bin/edge0-infer serve --model "$MOE_ASSETS_35B" --device metal
+```
+
+Para edge0-145b y edge0-120b, `chat` y `serve` reciben de la misma forma la carpeta del modelo (`--model `); `run` corresponde al motor nativo.
+
+Para compilar en Android, Windows e iOS, o usar el motor desde tu propio proyecto CMake, consulta [Primeros pasos](../edge0-infer/docs/getting-started.md).
+
+
+
+## Documentación
+
+- [Modelo de 35B](models/edge0-35b.md) · [Modelo de 8B](models/edge0-8b.md)
+- [Enrutamiento MoE y expertos](moe.md) · [Prerouter](prerouter.md)
+- [Informe técnico](https://arxiv.org/abs/2609.18063) · [PDF](../paper/main.pdf)
+- [Instalación del motor nativo](../edge0-infer/docs/getting-started.md) · [Reproducción de las mediciones](../edge0-infer/docs/benchmarking.md)
+- [Configuración](../edge0-infer/docs/configuration.md) · [API nativa](../edge0-infer/docs/native-api.md) · [Servidor local](../edge0-infer/docs/local-server.md)
+- [Arquitectura](../edge0-infer/docs/architecture.md) · [Limitaciones conocidas](../edge0-infer/docs/limitations.md) · [Pruebas](../edge0-infer/docs/testing.md)
+- [Herramientas de recursos de modelos y cómo añadir un modelo](../edge0-infer/tools/assets/README.md)
+- Páginas del proyecto por idioma: [中文](../README_zh.md) · [日本語](../README_ja.md) · [Español](../README_es.md) · [Français](../README_fr.md)
+
+
+
+## Hoja de ruta
+
+
+
+### Cuarto trimestre de 2026 · motor nativo y canalización en streaming
+
+- ✅ **Motor unificado de inferencia edge0 publicado como código abierto** (2026-11-04) — [`edge0-infer`](../edge0-infer/README.md): un motor y una API nativa para macOS, iOS, Android y Windows.
+- **Compatibilidad de `edge0-8b` con edge0-infer**.
+- Más tamaños de modelo y versiones de adaptadores sobre la canalización existente.
+
+Consulta la [hoja de ruta del framework](roadmap.md) para la compatibilidad con arquitecturas de nueva generación y el razonamiento latente con predicción anticipada de expertos por lotes.
+
+
+
+## Cita
+
+El informe técnico trata la inferencia de 35B en streaming desde SSD y la predicción de enrutamiento entrenada.
+
+Si edge0 te resulta útil, cita nuestro informe técnico:
+
+```bibtex
+@article{lin2026other,
+ title = {The Other Half of the Memory Wall: Serving 35B MoEs from SSD
+ with Trained Routing Prediction},
+ author = {Lin, Yu and Wang, Yiming and Cai, Runyuan and Liu, Hanze and
+ Zeng, Xiaodong},
+ journal = {arXiv preprint arXiv:2609.18063},
+ year = {2026},
+ url = {https://arxiv.org/abs/2609.18063}
+}
+```
+
+
+
+## Historial de versiones
+
+- **[2026-11-04]** Publicamos el **motor de inferencia unificado [`edge0-infer`](../edge0-infer/README.md)**: basado en [GGML](https://github.com/ggml-org/ggml), un motor y una API nativa de C++ ejecutan el mismo modelo en macOS, iOS, Android y Windows, con CLI, servidor local compatible con OpenAI y ejemplos de aplicaciones de chat para escritorio, Android e iOS. La primera versión admite `edge0-35b`; `edge0-8b` llegará en una versión posterior. Sustituye al framework de Python y a los motores específicos de cada plataforma; el código anterior se conserva en la etiqueta [`pre-edge0-infer`](https://github.com/Edge0-AI/Edge0/tree/pre-edge0-infer).
+- **[2026-09-30]** Publicamos los **motores de inferencia edge0 para cuatro plataformas: iOS, macOS, Android y Windows** (código en la etiqueta [`pre-edge0-infer`](https://github.com/Edge0-AI/Edge0/tree/pre-edge0-infer)).
+- **[2026-09-16]** Nuestro informe técnico está disponible en arXiv: [The Other Half of the Memory Wall: Serving 35B MoEs from SSD with Trained Routing Prediction](https://arxiv.org/abs/2609.18063).
+- **[2026-09-08]** Primera publicación de **edge0** como código abierto, junto con los dos tamaños de modelo —[`Edge0-35B-A3B-preview`](https://huggingface.co/Edge0/Edge0-35B-A3B-preview) y [`Edge0-8B-A1B-preview`](https://huggingface.co/Edge0/Edge0-8B-A1B-preview)— en Hugging Face y ModelScope.
+
+[← Inicio de Edge0](../README_es.md)
diff --git a/docs/legacy-models_fr.md b/docs/legacy-models_fr.md
new file mode 100644
index 00000000..27784d29
--- /dev/null
+++ b/docs/legacy-models_fr.md
@@ -0,0 +1,223 @@
+
+
+[← Accueil Edge0 · Dernière version : 145B / 120B](../README_fr.md)
+
+La version précédente d’Edge0 : checkpoints 35B / 8B, conception de l’inférence en streaming, évaluations et installation. Le modèle 35B utilise le moteur natif ; la prise en charge du checkpoint 8B publié par ce moteur reste prévue.
+
+[Modèles](#models) · [Plateformes](#platforms) · [Conception](#native-engine-design) · [Qualité](#quality) · [Performances](#benchmark) · [Premiers pas](#getting-started) · [Citation](#citation)
+
+
+
+## Inférence en streaming
+
+**edge0** est un framework d’inférence MoE en streaming, open source. Il généralise une méthode éprouvée en production — **décharge des experts vers un SSD + Recover-LoRA + prédiction de routage par prerouter** — en un framework extensible pour exécuter de grands modèles MoE parcimonieux sur du matériel grand public. Le pic de mémoire dépend de l’ensemble d’experts *actifs*, et non du nombre de paramètres.
+
+
+
+### Mécanismes essentiels
+
+- **Décharge des experts vers un SSD** : les poids des experts sont lus à la demande depuis le stockage ; le pic de mémoire dépend de l’ensemble actif, pas du nombre de paramètres.
+- **Prerouter** : une tête entraînée prédit le routage des experts avec une étape d’avance, ce qui fait chevaucher leur chargement et la passe avant au lieu de la bloquer. Le débit de décodage augmente de **jusqu’à +59%** ; le gain croît avec la latence du stockage, la taille du modèle et la largeur de routage *K*.
+- **Recover-LoRA** : la base int4 est figée et les adaptateurs LoRA sont entraînés par distillation depuis le modèle enseignant FP, récupérant l’essentiel de la perte de quantification à 4 bits (voir [Qualité](#quality)). Les adaptateurs sont stockés séparément de la base et peuvent être activés ou désactivés.
+
+
+
+## Modèles
+
+Le framework est fourni avec deux tailles de modèle, `edge0-35b` et `edge0-8b`. Chaque version forme un ensemble complet : le checkpoint publié, les adaptateurs LoRA entraînés et les têtes prerouter entraînées fonctionnent de concert.
+
+| Taille | Checkpoint publié | Profil d’inférence | Moteur |
+|---|---|---|---|
+| `edge0-35b` | [`Edge0/Edge0-35B-A3B-preview`](https://huggingface.co/Edge0/Edge0-35B-A3B-preview) · [ModelScope](https://www.modelscope.cn/models/Edge0/Edge0-35B-A3B-preview) | 4 bits, 40 couches, 256 experts, prerouter K=4 | Moteur natif ✅ |
+| `edge0-8b` | [`Edge0/Edge0-8B-A1B-preview`](https://huggingface.co/Edge0/Edge0-8B-A1B-preview) · [ModelScope](https://www.modelscope.cn/models/Edge0/Edge0-8B-A1B-preview) | 4 bits, 24 couches, 128 experts, prerouter K=8 | Moteur natif (prévu) |
+
+Les deux checkpoints publiés reposent sur des modèles de base MoE parcimonieux ouverts — respectivement Qwen3.6-35B-A3B et Ling 3.0 bailing hybrid — et intègrent l’entraînement LoRA et prerouter réalisé pour ce framework. edge0-infer télécharge le checkpoint avec ses outils de ressources, puis le convertit en fichiers de modèle destinés au moteur (voir [Premiers pas](#getting-started)).
+
+
+
+## Plateformes
+
+[`edge0-infer`](../edge0-infer/README.md) est le programme à exécuter : CLI, serveur local compatible OpenAI et Anthropic, applications de chat. Les commandes `serve` et `chat` sont communes aux modèles pris en charge. Chaque modèle utilise son moteur, sélectionné automatiquement à partir du dossier du modèle. `edge0-35b` emploie le **moteur natif** de `edge0-infer/` (fondé sur GGML, avec une API native C++), tandis que `edge0-145b` et `edge0-120b` utilisent **edge0-strata** dans [`edge0-strata/`](../edge0-strata/EDGE0.md), un fork de Strata.
+
+| Plateforme | `edge0-35b` (moteur natif) | `edge0-145b`, `edge0-120b` (edge0-strata) |
+|---|---|---|
+| **macOS** (Apple Silicon) | Metal, CPU | — |
+| **iOS** | Metal | — |
+| **Android** | CPU | — |
+| **Linux** | CPU | NVIDIA GPU (CUDA 13) |
+| **Windows** | CPU, Vulkan | NVIDIA GPU (CUDA 13) |
+
+Mesures : [Performances](../edge0-infer/docs/benchmarking.md#reference-figures) pour `edge0-35b`, et [page des modèles](models/edge0-145b.md) pour `edge0-145b` et `edge0-120b`. Sur le moteur natif, le préremplissage et le décodage peuvent utiliser des backends différents d’un même appareil, par exemple Metal pour le préremplissage et le CPU pour le décodage. Les exemples d’applications de chat pour ordinateur (macOS, Windows), Android et iOS se trouvent dans [`edge0-infer/examples/`](../edge0-infer/examples/README.md#chat-applications).
+
+
+
+## Conception du moteur natif
+
+- **Fondé sur GGML, avec le même code sur chaque plateforme** : la bibliothèque native ne dépend que de GGML, intégré sans modification à une version fixe ; la compilation ne télécharge rien.
+- **Une API native** : les applications se lient à la cible CMake `edge0::edge0` et incluent les en-têtes de `include/edge0/` pour utiliser le moteur dans leur processus. La CLI de référence et le serveur local partagent les réglages et valeurs par défaut de l’API native.
+- **Experts à la demande** : les experts sélectionnés sont lus depuis le stockage dans un nombre fixe d’emplacements par couche. Un modèle plus grand que le budget mémoire peut ainsi fonctionner sans être chargé entièrement.
+- **Deux modes de routage** : `predicted` (par défaut) utilise le prerouter pour préparer en arrière-plan les experts du prochain token pendant le calcul du token actuel ; `actual` exécute le calcul original du modèle, à titre de comparaison.
+- **Réutilisation entre les tours** : dans une conversation à plusieurs tours, seul le nouveau message de chaque tour est généralement calculé ; les résultats précédents sont réutilisés.
+
+Voir l’[architecture d’edge0-infer](../edge0-infer/docs/architecture.md).
+
+
+
+## Qualité
+
+Nous avons réalisé toutes les évaluations avec [OpenCompass](https://github.com/open-compass/opencompass), en utilisant les mêmes réglages et paramètres pour les modèles edge0 (int4 + adaptateurs entraînés + routage prerouter) et les modèles de base fp16 d’origine. La perte du pipeline edge0 est faible : **3.9 points en moyenne pour edge0-35b, 2.8 pour edge0-8b** (MMLU-Pro dépasse même la base). Maximum : 100.
+
+
+
+
+Données de qualité copiables
+
+| Évaluation | edge0-35b (int4) | Qwen3.6-35B-A3B (fp16) | edge0-8b (int4) | Ling 3.0 tiny (fp16) |
+|---|---:|---:|---:|---:|
+| AIME 2026 | 86.6 | 92.7 | 63.3 | 73.3 |
+| HumanEval | 90.9 | 95.1 | 91.5 | 92.7 |
+| GPQA-Diamond | 79.8 | 81.8 | 70.7 | 71.2 |
+| MMLU-Pro | 81.0 | 84.6 | 70.1 | 65.8 |
+| IFBench | 57.9 | 61.7 | 53.9 | 60.6 |
+| **Moyenne** | **79.2** | **83.2** | **69.9** | **72.7** |
+
+
+
+
+
+## Performances
+
+`edge0-35b` avec le routage `predicted`, mesuré par edge0-infer (chaque intervalle va du minimum au maximum de trois processus) :
+
+
+
+
+Données de performances copiables
+
+| Plateforme | Appareil | Longueur du prompt | Premier token | Vitesse de décodage | Pic de mémoire |
+|---|---|---|---|---|---|
+| macOS Metal | Apple M5, 16 GiB | 3,084 tokens | 5.60–5.87 s | 24.8–24.9 tok/s | 3.43 GiB (`phys_footprint`) |
+| macOS CPU | Apple M5, 16 GiB | 627 tokens | 11.5–11.7 s | 21.7–22.3 tok/s | 2.96 GiB (`phys_footprint`) |
+| iOS Metal | iPhone 17 Pro Max, 12 GB | 627 tokens | 8.20–8.26 s | 13.2 tok/s | 3.05 GiB (`phys_footprint`) |
+| Android CPU | OnePlus PKR110, 16 GB | 627 tokens | 18.4–18.8 s | 11.4–11.8 tok/s | 2.82 GiB (RSS) |
+| Windows CPU | Intel Core i5-12400, 32 GB | 627 tokens | 16.9–17.3 s | 7.3–8.2 tok/s | 2.86 GiB (ensemble de travail) |
+| Windows Vulkan (les deux phases, 32 emplacements d’experts) | RTX 4070 SUPER, 12 GB | 627 tokens | 3.75–3.76 s | 23.6–24.0 tok/s | Augmentation de mémoire GPU de 5.35 GiB |
+
+
+
+Les métriques mémoire diffèrent selon la plateforme et ne sont pas directement comparables. La méthode de mesure, les résultats du routage `actual` et les commandes de reproduction figurent dans [Performances](../edge0-infer/docs/benchmarking.md#reference-figures).
+
+
+
+## Premiers pas
+
+Exécutez les commandes suivantes dans `edge0-infer/`. Il vous faut CMake 3.21+, Ninja, un compilateur C++17/C11, uv et Git. Le modèle 35B nécessite environ 18 GB pour les poids d’origine et 20 GB pour les fichiers convertis, plus autant d’espace libre supplémentaire pendant la conversion.
+
+
+
+### 1) Compiler
+
+```bash
+cd edge0-infer
+cmake --preset mac-metal && cmake --build --preset mac-metal
+build/mac-metal/bin/edge0-infer info # expect a line: model.0: edge0_35b
+```
+
+Sur les machines sans Metal, utilisez `--preset cpu`, `build/cpu/bin/edge0-infer` et `--device cpu` dans les commandes ci-dessous.
+
+
+
+### 2) Obtenir un modèle
+
+**edge0-35b (moteur natif).** Téléchargez et convertissez les fichiers du modèle :
+
+```bash
+export MOE_SOURCE_35B=
+export MOE_ASSETS_35B=
+
+uv sync --project tools/assets
+assets_py() { uv run --project tools/assets --offline --no-sync python -I "$@"; }
+
+assets_py tools/assets/edge0_35b/fetch_source.py download --out "$MOE_SOURCE_35B"
+assets_py tools/assets/edge0_35b/make_assets.py --source "$MOE_SOURCE_35B" --out "$MOE_ASSETS_35B"
+assets_py tools/assets/check_assets.py check "$MOE_ASSETS_35B"
+```
+
+Cette opération télécharge `Edge0/Edge0-35B-A3B-preview` depuis Hugging Face et le vérifie par rapport à la révision et aux empreintes fixées.
+
+
+
+### 3) Exécuter
+
+```bash
+# one prompt
+build/mac-metal/bin/edge0-infer run --model "$MOE_ASSETS_35B" --device metal --user "Introduce yourself in one sentence."
+# multi-turn chat
+build/mac-metal/bin/edge0-infer chat --model "$MOE_ASSETS_35B" --device metal
+# serve (OpenAI- and Anthropic-compatible, default http://127.0.0.1:8000)
+build/mac-metal/bin/edge0-infer serve --model "$MOE_ASSETS_35B" --device metal
+```
+
+Pour edge0-145b et edge0-120b, `chat` et `serve` reçoivent le dossier du modèle de la même façon (`--model `) ; `run` est destiné au moteur natif.
+
+Pour les compilations Android, Windows et iOS, ou l’utilisation du moteur depuis votre propre projet CMake, consultez [Premiers pas](../edge0-infer/docs/getting-started.md).
+
+## Documentation
+
+- [Modèle 35B](models/edge0-35b.md) · [Modèle 8B](models/edge0-8b.md)
+- [Routage MoE et experts](moe.md) · [Prerouter](prerouter.md)
+- [Rapport technique](https://arxiv.org/abs/2609.18063) · [PDF](../paper/main.pdf)
+- [Installation du moteur natif](../edge0-infer/docs/getting-started.md) · [Reproduction des mesures](../edge0-infer/docs/benchmarking.md)
+- [Configuration](../edge0-infer/docs/configuration.md) · [API native](../edge0-infer/docs/native-api.md) · [Serveur local](../edge0-infer/docs/local-server.md)
+- [Architecture](../edge0-infer/docs/architecture.md) · [Limitations connues](../edge0-infer/docs/limitations.md) · [Tests](../edge0-infer/docs/testing.md)
+- [Outils de ressources des modèles et ajout d’un modèle](../edge0-infer/tools/assets/README.md)
+- Pages d’accueil par langue : [中文](../README_zh.md) · [日本語](../README_ja.md) · [Español](../README_es.md) · [Français](../README_fr.md)
+
+
+
+## Feuille de route
+
+
+
+### Quatrième trimestre 2026 · moteur natif et pipeline de streaming
+
+- ✅ **Moteur d’inférence unifié edge0 publié en open source** (2026-11-04) — [`edge0-infer`](../edge0-infer/README.md) : un moteur et une API native pour macOS, iOS, Android et Windows.
+- **Prise en charge d’`edge0-8b` dans edge0-infer**.
+- De nouvelles tailles de modèle et versions d’adaptateurs sur le pipeline existant.
+
+Voir la [feuille de route du framework](roadmap.md) pour la prise en charge des architectures de nouvelle génération et la réflexion latente avec préprédiction d’experts par lots.
+
+## Citation
+
+Le rapport technique porte sur l’inférence de 35B en streaming depuis un SSD et la prédiction de routage apprise.
+
+Si edge0 vous est utile, veuillez citer notre rapport technique :
+
+```bibtex
+@article{lin2026other,
+ title = {The Other Half of the Memory Wall: Serving 35B MoEs from SSD
+ with Trained Routing Prediction},
+ author = {Lin, Yu and Wang, Yiming and Cai, Runyuan and Liu, Hanze and
+ Zeng, Xiaodong},
+ journal = {arXiv preprint arXiv:2609.18063},
+ year = {2026},
+ url = {https://arxiv.org/abs/2609.18063}
+}
+```
+
+
+
+## Historique des versions
+
+- **[2026-11-04]** Nous avons publié le **moteur d’inférence unifié [`edge0-infer`](../edge0-infer/README.md)** : fondé sur [GGML](https://github.com/ggml-org/ggml), un moteur et une API native C++ exécutent le même modèle sous macOS, iOS, Android et Windows, avec une CLI, un serveur local compatible OpenAI et des exemples d’applications de chat pour ordinateur, Android et iOS. La première version prend en charge `edge0-35b` ; `edge0-8b` suivra dans une prochaine version. Ce moteur remplace le framework Python et les moteurs propres à chaque plateforme ; l’ancien code est conservé sous le tag [`pre-edge0-infer`](https://github.com/Edge0-AI/Edge0/tree/pre-edge0-infer).
+- **[2026-09-30]** Nous avons publié les **moteurs d’inférence edge0 pour quatre plateformes : iOS, macOS, Android et Windows** (sources sous le tag [`pre-edge0-infer`](https://github.com/Edge0-AI/Edge0/tree/pre-edge0-infer)).
+- **[2026-09-16]** Notre rapport technique est disponible sur arXiv : [The Other Half of the Memory Wall: Serving 35B MoEs from SSD with Trained Routing Prediction](https://arxiv.org/abs/2609.18063).
+- **[2026-09-08]** Première publication open source d’**edge0**, accompagnée des deux tailles de modèle — [`Edge0-35B-A3B-preview`](https://huggingface.co/Edge0/Edge0-35B-A3B-preview) et [`Edge0-8B-A1B-preview`](https://huggingface.co/Edge0/Edge0-8B-A1B-preview) — sur Hugging Face et ModelScope.
+
+[← Accueil Edge0](../README_fr.md)
diff --git a/docs/legacy-models_ja.md b/docs/legacy-models_ja.md
new file mode 100644
index 00000000..67550e84
--- /dev/null
+++ b/docs/legacy-models_ja.md
@@ -0,0 +1,227 @@
+
+
+[← Edge0 首页 · 最新版本:145B / 120B](../README_zh.md)
+
+Edge0 此前版本的 35B / 8B 检查点、流式推理设计、评测与安装说明。35B 使用原生引擎;已发布 8B 检查点的原生引擎支持仍在计划中。
+
+[模型](#models) · [平台](#platforms) · [设计](#native-engine-design) · [能力评测](#quality) · [性能测试](#benchmark) · [快速开始](#getting-started) · [引用](#citation)
+
+
+
+## 流式推理
+
+**edge0** 是一个开源流式 MoE 推理框架。它将经过生产验证的方案——**SSD 专家卸载 + Recover-LoRA + prerouter 路由预测**——推广为可扩展框架,在消费级硬件上运行大型稀疏 MoE 模型:内存峰值由*活跃*专家集合限定,而非参数总量。
+
+
+
+### 核心机制
+
+- **SSD 专家卸载**:专家权重按需从存储流式加载;内存峰值由活跃专家集合限定,而非参数总量。
+- **Prerouter**:训练后的预测头提前一步预测专家路由,使专家加载与前向计算重叠,而不阻塞计算;解码吞吐量**最高提升 +59%**,收益随存储延迟、模型规模及路由宽度 *K* 增大。
+- **Recover-LoRA**:冻结 int4 基座,通过 FP 教师模型蒸馏训练 LoRA 适配器,在 4 位下恢复大部分量化损失(见[能力评测](#quality))。适配器与基座分别存储,可随时启用或关闭。
+
+
+
+## 模型
+
+框架随附 `edge0-35b` 和 `edge0-8b` 两个模型档位。每个档位都是端到端发布:已发布检查点、训练后的 LoRA 适配器和 prerouter 预测头作为一个整体协同工作。
+
+| 型号 | 已发布检查点 | 推理配置 | 引擎 |
+|---|---|---|---|
+| `edge0-35b` | [`Edge0/Edge0-35B-A3B-preview`](https://huggingface.co/Edge0/Edge0-35B-A3B-preview) · [ModelScope](https://www.modelscope.cn/models/Edge0/Edge0-35B-A3B-preview) | 4 位,40 层,256 个专家,prerouter K=4 | 原生引擎 ✅ |
+| `edge0-8b` | [`Edge0/Edge0-8B-A1B-preview`](https://huggingface.co/Edge0/Edge0-8B-A1B-preview) · [ModelScope](https://www.modelscope.cn/models/Edge0/Edge0-8B-A1B-preview) | 4 位,24 层,128 个专家,prerouter K=8 | 原生引擎(计划中) |
+
+两个已发布检查点分别基于开源稀疏 MoE 基座模型 Qwen3.6-35B-A3B 和 Ling 3.0 bailing hybrid,并包含针对本框架完成的 LoRA 与 prerouter 训练成果。edge0-infer 使用资产工具下载已发布检查点,并将其转换为引擎所需的模型资产(见[快速开始](#getting-started))。
+
+
+
+## 支持平台
+
+[`edge0-infer`](../edge0-infer/README.md) 是实际运行的程序(CLI、兼容 OpenAI 和 Anthropic 的本地服务、聊天应用),为支持的模型提供统一的 `serve` 和 `chat` 命令。每个模型使用对应引擎,edge0-infer 根据模型文件夹自动选择,无需手动指定:`edge0-35b` 使用 `edge0-infer/` 中的**原生引擎**(基于 GGML,提供原生 C++ API),`edge0-145b` 与 `edge0-120b` 使用 [`edge0-strata/`](../edge0-strata/EDGE0.md) 中的 **edge0-strata**,它是 Strata 的分支。
+
+| 平台 | `edge0-35b`(原生引擎) | `edge0-145b`, `edge0-120b` (edge0-strata) |
+|---|---|---|
+| **macOS** (Apple Silicon) | Metal, CPU | — |
+| **iOS** | Metal | — |
+| **Android** | CPU | — |
+| **Linux** | CPU | NVIDIA GPU (CUDA 13) |
+| **Windows** | CPU, Vulkan | NVIDIA GPU (CUDA 13) |
+
+测量结果:`edge0-35b` 见[性能测试](../edge0-infer/docs/benchmarking.md#reference-figures),`edge0-145b` 与 `edge0-120b` 见[模型页面](models/edge0-145b.md)。原生引擎允许同一设备上的预填充和解码使用不同后端,例如 Metal 预填充配合 CPU 解码。桌面(macOS、Windows)、Android 和 iOS 聊天应用示例位于 [`edge0-infer/examples/`](../edge0-infer/examples/README.md#chat-applications)。
+
+
+
+## 原生引擎设计
+
+- **基于 GGML,跨平台使用同一套代码**:原生库仅依赖 GGML,以固定版本原样随附,构建时不下载任何内容。
+- **统一的原生 API**:应用链接 CMake 目标 `edge0::edge0`,并引入 `include/edge0/` 中的头文件,在进程内使用引擎;参考 CLI 与本地服务使用和原生 API 相同的设置与默认值。
+- **按需加载专家**:被路由选中的专家从存储按需读取到每层固定数量的专家槽位中,因此超出设备内存预算的模型无需整体加载也能运行。
+- **两种路由模式**:`predicted`(默认)使用 prerouter,在计算当前 token 时于后台准备下一个 token 的专家;`actual` 执行模型原有计算,用于对照。
+- **多轮复用**:多轮对话通常只计算每一轮新增的消息,之前的结果直接复用。
+
+详见 [edge0-infer 架构](../edge0-infer/docs/architecture.md)。
+
+
+
+## 能力评测
+
+所有评测均由我们使用 [OpenCompass](https://github.com/open-compass/opencompass) 完成,edge0 模型(int4 + 训练后的适配器 + prerouter 路由)与原始 fp16 基座使用完全相同的设置和参数。edge0 流水线的损失较小:**edge0-35b 平均下降 3.9 分,edge0-8b 下降 2.8 分**(MMLU-Pro 甚至高于基座)。满分 100:
+
+
+
+
+可复制的能力评测数据
+
+| 评测 | edge0-35b (int4) | Qwen3.6-35B-A3B (fp16) | edge0-8b (int4) | Ling 3.0 tiny (fp16) |
+|---|---:|---:|---:|---:|
+| AIME 2026 | 86.6 | 92.7 | 63.3 | 73.3 |
+| HumanEval | 90.9 | 95.1 | 91.5 | 92.7 |
+| GPQA-Diamond | 79.8 | 81.8 | 70.7 | 71.2 |
+| MMLU-Pro | 81.0 | 84.6 | 70.1 | 65.8 |
+| IFBench | 57.9 | 61.7 | 53.9 | 60.6 |
+| **平均分** | **79.2** | **83.2** | **69.9** | **72.7** |
+
+
+
+
+
+## 性能测试
+
+使用 edge0-infer 测量 `edge0-35b` 的 `predicted` 路由模式(每个范围为三个进程测量的最小值至最大值):
+
+
+
+
+可复制的性能测试数据
+
+| 平台 | 设备 | 提示词长度 | 首 token 耗时 | 解码速度 | 内存峰值 |
+|---|---|---|---|---|---|
+| macOS Metal | Apple M5, 16 GiB | 3,084 tokens | 5.60–5.87 s | 24.8–24.9 tok/s | 3.43 GiB (`phys_footprint`) |
+| macOS CPU | Apple M5, 16 GiB | 627 tokens | 11.5–11.7 s | 21.7–22.3 tok/s | 2.96 GiB (`phys_footprint`) |
+| iOS Metal | iPhone 17 Pro Max, 12 GB | 627 tokens | 8.20–8.26 s | 13.2 tok/s | 3.05 GiB (`phys_footprint`) |
+| Android CPU | OnePlus PKR110, 16 GB | 627 tokens | 18.4–18.8 s | 11.4–11.8 tok/s | 2.82 GiB (RSS) |
+| Windows CPU | Intel Core i5-12400, 32 GB | 627 tokens | 16.9–17.3 s | 7.3–8.2 tok/s | 2.86 GiB(工作集) |
+| Windows Vulkan(两个阶段,32 个专家槽位) | RTX 4070 SUPER, 12 GB | 627 tokens | 3.75–3.76 s | 23.6–24.0 tok/s | GPU 内存增量 5.35 GiB |
+
+
+
+各平台使用不同内存指标,不能直接比较。测量方法、`actual` 路由数据与复现命令见[性能测试](../edge0-infer/docs/benchmarking.md#reference-figures)。
+
+
+
+## 快速开始
+
+在 `edge0-infer/` 中执行以下命令。需要 CMake 3.21+、Ninja、C++17/C11 编译器、uv 和 Git;35B 的原始权重约需 18 GB,转换后资产约需 20 GB,转换期间还需再预留同等大小的空闲空间。
+
+
+
+### 1) 构建
+
+```bash
+cd edge0-infer
+cmake --preset mac-metal && cmake --build --preset mac-metal
+build/mac-metal/bin/edge0-infer info # expect a line: model.0: edge0_35b
+```
+
+没有 Metal 的设备请使用 `--preset cpu`、`build/cpu/bin/edge0-infer`,并在以下命令中使用 `--device cpu`。
+
+
+
+### 2) 获取模型
+
+**edge0-35b(原生引擎)。** 下载并转换模型资产:
+
+```bash
+export MOE_SOURCE_35B=
+export MOE_ASSETS_35B=
+
+uv sync --project tools/assets
+assets_py() { uv run --project tools/assets --offline --no-sync python -I "$@"; }
+
+assets_py tools/assets/edge0_35b/fetch_source.py download --out "$MOE_SOURCE_35B"
+assets_py tools/assets/edge0_35b/make_assets.py --source "$MOE_SOURCE_35B" --out "$MOE_ASSETS_35B"
+assets_py tools/assets/check_assets.py check "$MOE_ASSETS_35B"
+```
+
+该操作从 Hugging Face 下载 `Edge0/Edge0-35B-A3B-preview`,并按锁定的版本和摘要校验。
+
+
+
+### 3) 运行
+
+```bash
+# one prompt
+build/mac-metal/bin/edge0-infer run --model "$MOE_ASSETS_35B" --device metal --user "Introduce yourself in one sentence."
+# multi-turn chat
+build/mac-metal/bin/edge0-infer chat --model "$MOE_ASSETS_35B" --device metal
+# serve (OpenAI- and Anthropic-compatible, default http://127.0.0.1:8000)
+build/mac-metal/bin/edge0-infer serve --model "$MOE_ASSETS_35B" --device metal
+```
+
+对于 edge0-145b 和 edge0-120b,`chat` 与 `serve` 同样接收模型文件夹(`--model `);`run` 用于原生引擎。
+
+Android、Windows、iOS 的构建方法,以及如何从自己的 CMake 项目使用引擎,请参阅[快速开始](../edge0-infer/docs/getting-started.md)。
+
+
+
+## 文档
+
+- [35B 模型](models/edge0-35b.md) · [8B 模型](models/edge0-8b.md)
+- [MoE 路由与专家](moe.md) · [Prerouter](prerouter.md)
+- [技术报告](https://arxiv.org/abs/2609.18063) · [PDF](../paper/main.pdf)
+- [原生引擎安装](../edge0-infer/docs/getting-started.md) · [性能复现](../edge0-infer/docs/benchmarking.md)
+- [配置](../edge0-infer/docs/configuration.md) · [原生 API](../edge0-infer/docs/native-api.md) · [本地服务](../edge0-infer/docs/local-server.md)
+- [架构](../edge0-infer/docs/architecture.md) · [已知限制](../edge0-infer/docs/limitations.md) · [测试](../edge0-infer/docs/testing.md)
+- [模型资产工具与新增模型](../edge0-infer/tools/assets/README.md)
+- 各语种项目首页:[中文](../README_zh.md) · [日本語](../README_ja.md) · [Español](../README_es.md) · [Français](../README_fr.md)
+
+
+
+## 路线图
+
+
+
+### 2026 年第四季度 · 原生引擎与流式流水线
+
+- ✅ **edge0 统一推理引擎已开源**(2026-11-04)— [`edge0-infer`](../edge0-infer/README.md):macOS、iOS、Android 和 Windows 共用一个引擎与原生 API。
+- **在 edge0-infer 中支持 `edge0-8b`**。
+- 在现有流水线上发布更多模型档位与适配器。
+
+下一代架构支持、潜空间思考与批量专家预预测见[框架路线图](roadmap.md)。
+
+
+
+## 引用
+
+技术报告介绍 35B 的 SSD 流式推理与经过训练的路由预测。
+
+如果 edge0 对你有帮助,请引用我们的技术报告:
+
+```bibtex
+@article{lin2026other,
+ title = {The Other Half of the Memory Wall: Serving 35B MoEs from SSD
+ with Trained Routing Prediction},
+ author = {Lin, Yu and Wang, Yiming and Cai, Runyuan and Liu, Hanze and
+ Zeng, Xiaodong},
+ journal = {arXiv preprint arXiv:2609.18063},
+ year = {2026},
+ url = {https://arxiv.org/abs/2609.18063}
+}
+```
+
+
+
+## 发布历史
+
+- **[2026-11-04]** 我们发布了**统一推理引擎 [`edge0-infer`](../edge0-infer/README.md)**:基于 [GGML](https://github.com/ggml-org/ggml),通过同一个引擎和原生 C++ API 在 macOS、iOS、Android 和 Windows 上运行同一模型,提供 CLI、兼容 OpenAI 的本地服务,以及桌面、Android 和 iOS 聊天应用示例。首版支持 `edge0-35b`;`edge0-8b` 将在后续版本中支持。它取代了 Python 框架和各平台独立引擎;旧代码保留在 [`pre-edge0-infer`](https://github.com/Edge0-AI/Edge0/tree/pre-edge0-infer) 标签下。
+- **[2026-09-30]** 我们发布了 **iOS、macOS、Android 和 Windows 四个平台的 edge0 推理引擎**(源码位于 [`pre-edge0-infer`](https://github.com/Edge0-AI/Edge0/tree/pre-edge0-infer) 标签)。
+- **[2026-09-16]** 技术报告已发布于 arXiv:[The Other Half of the Memory Wall: Serving 35B MoEs from SSD with Trained Routing Prediction](https://arxiv.org/abs/2609.18063)。
+- **[2026-09-08]** 首次开源发布 **edge0**,并在 Hugging Face 和 ModelScope 同时发布两个模型档位:[`Edge0-35B-A3B-preview`](https://huggingface.co/Edge0/Edge0-35B-A3B-preview) 和 [`Edge0-8B-A1B-preview`](https://huggingface.co/Edge0/Edge0-8B-A1B-preview)。
+
+[← Edge0 首页](../README_zh.md)
diff --git a/docs/models/edge0-145b.md b/docs/models/edge0-145b.md
index 08a84874..4f6fced9 100644
--- a/docs/models/edge0-145b.md
+++ b/docs/models/edge0-145b.md
@@ -4,11 +4,13 @@ Two latent mixture-of-experts models for a single NVIDIA GPU, derived from Qwen3
Weights on Hugging Face: [`Edge0-145B-q3k`](https://huggingface.co/Edge0/Edge0-145B-q3k) · [`Edge0-145B-NVFP4`](https://huggingface.co/Edge0/Edge0-145B-NVFP4) · [`Edge0-120B-q3k`](https://huggingface.co/Edge0/Edge0-120B-q3k) · [`Edge0-120B-NVFP4`](https://huggingface.co/Edge0/Edge0-120B-NVFP4).
+[← Edge0](../../README.md)
+
## Model profile
| Item | Value |
| --- | --- |
-| Total parameters | Edge0 145B: 145B, 6.6B active per token; Edge0 120B: 120B, 6.1B active per token |
+| Total parameters | Edge0 145B: 145B, 10.12B active per token; Edge0 120B: 120B, 8.64B active per token |
| Number of layers | 48: 36 linear-attention layers, and one indexed-attention layer in every 4 |
| Number of experts | 512 routed experts per layer, plus one shared expert |
| top_k (K) | 10 |
@@ -19,6 +21,8 @@ Weights on Hugging Face: [`Edge0-145B-q3k`](https://huggingface.co/Edge0/Edge0-1
## Quality
+Model-level results; not separate quality evaluations of Q3_K and NVFP4. Higher is better.
+
| Model | deepswe 1.1 | terminal-bench 2.1 | AA-LCR | IFBench | GPQA-Diamond | HLE |
| --- | ---: | ---: | ---: | ---: | ---: | ---: |
| **Edge0-145B** | **64.6** | **86.5** | 79.3 | 80.6 | 90.4 | 35.4 |
@@ -30,46 +34,118 @@ Weights on Hugging Face: [`Edge0-145B-q3k`](https://huggingface.co/Edge0/Edge0-1
**Bold** = best in column.
-## Speed (measured, one card)
+
+
+## Speed
+
+All throughput figures are in tok/s. The 4K and 16K columns denote prefill input length.
### Edge0 145B
+
+
+
+Copyable speed data
+
| Machine | Build | 4K prefill | 16K prefill | Chat decode | Agent decode |
-| --- | --- | ---: | ---: | ---: | ---: |
+|---|---|---:|---:|---:|---:|
| RTX 5090 D 24 GB | Q3_K | 2169.9 | 3554.9 | 99.7 | **121.2** |
| RTX 5090 D 24 GB | NVFP4 | 1839.6 | 3165.7 | 79.6 | 98.3 |
| RTX 4090 24 GB | Q3_K | 2042.0 | 3179.4 | 69.9 | 91.7 |
| RTX Spark N1X 60 GiB | Q3_K | 674.0 | 770.3 | 37.7 | 36.7 |
| RTX Spark N1X 60 GiB | NVFP4 | 821.2 | 922.4 | 40.1 | 46.0 |
+| Apple M2 Ultra (Metal) | Q3_K | 755.6 | 800.3 | 60.9 | 57.0 |
| 16 GiB VRAM + 20 GiB RAM | Q3_K | 249 | 335 | 36.8 | 44.9 |
+
+
`16 GiB VRAM + 20 GiB RAM` rows are the RTX 5090 D 24 GB again, constrained by cgroup to a 16 GiB VRAM and 20 GiB system-RAM budget — not a different card. With residency on, the same card holds **Q3_K** (40.81 GiB of weights) as 23.14 GiB VRAM + 31.28 GiB RAM, and **NVFP4** (47.79 GiB) as 23.25 GiB VRAM + 38.27 GiB RAM — disjoint expert sets, nothing counted twice.
### Edge0 120B
+
+
+
+Copyable speed data
+
| 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 |
+
+
`16 GiB VRAM + 20 GiB RAM` rows are the RTX 5090 D 24 GB again, constrained by cgroup to a 16 GiB VRAM and 20 GiB system-RAM budget — not a different card. 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.
+## Edge0-145B architecture
+
+
+
+| | Edge0-145B |
+|---|---|
+| Total parameters | **145B** · **10.12 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 | 84.6 B parameters at latent width ℓ = **1792** |
+| 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 40.81 GiB · NVFP4 47.79 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,630,720 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.
+
+## Edge0-120B architecture
+
+
+
+| | 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.
+
## Model folders
-Each model folder holds one model in one expert format: `Edge0-145B-q3k`, `Edge0-145B-fp4`, `Edge0-120B-q3k` or `Edge0-120B-fp4` (`-q3k` is Q3_K, `-fp4` is NVFP4). Use a folder as it is provided; `edge0-infer` identifies the model and the expert format by `model_name` in its `model.json`. The files a folder must hold are listed in Model directory for [Edge0 145B](../../edge0-infer/docs/edge0-145b.md#model-directory) and [Edge0 120B](../../edge0-infer/docs/edge0-120b.md#model-directory) in the edge0-infer documentation; `edge0-infer inspect --model --json` checks them.
+Each model folder holds one model in one expert format: `Edge0-145B-q3k`, `Edge0-145B-NVFP4`, `Edge0-120B-q3k` or `Edge0-120B-NVFP4` (`-q3k` is Q3_K, `-NVFP4` is NVFP4). Use a folder as it is provided; `edge0-infer` identifies the model and the expert format by `model_name` in its `model.json`. The files a folder must hold are listed in Model directory for [Edge0 145B](../../edge0-infer/docs/edge0-145b.md#model-directory) and [Edge0 120B](../../edge0-infer/docs/edge0-120b.md#model-directory) in the edge0-infer documentation; `edge0-infer inspect --model --json` checks them.
## Requirements
-Linux or Windows with an NVIDIA GPU and CUDA 13, at least 16 GiB of GPU memory and 20 GiB of system memory.
+Linux or Windows with an NVIDIA GPU and CUDA 13. The constrained-memory results in the speed tables are measured test budgets, not general minimum requirements. A 16 GiB VRAM + 20 GiB host RAM test is available for 145B Q3_K and both 120B builds; no such result is available for 145B NVFP4.
+
+Apple M2 Ultra (Metal) measurements are retained in the speed tables. They do not establish macOS release availability.
## Running
-Both models run on edge0-strata, the engine built for them, which edge0-infer starts for these models (see [Platforms](../../README.md#platforms)). Build edge0-strata as [Build (Linux, NVIDIA)](../../edge0-strata/EDGE0.md#build-linux-nvidia) or [Build (Windows, NVIDIA)](../../edge0-strata/EDGE0.md#build-windows-nvidia) in `edge0-strata/EDGE0.md` describes, build edge0-infer as in its [Getting started](../../edge0-infer/docs/getting-started.md#build), and start a model folder with `edge0-infer serve --model ` or `edge0-infer chat --model `. The pages [Edge0 145B](../../edge0-infer/docs/edge0-145b.md) and [Edge0 120B](../../edge0-infer/docs/edge0-120b.md) in the edge0-infer documentation cover `serve`, `chat` and `inspect` for these models, how `edge0-infer` finds edge0-strata, the options (`--device`, `du`, `ple-io`, `--context`, `--strata-arg`) and the known limitations.
+Use `serve` or `chat` for these models; `run` is for the native engine.
+
+Both models run on edge0-strata, the engine built for them, which edge0-infer starts for these models (see [Documentation](../../README.md#documentation)). Build edge0-strata as [Build (Linux, NVIDIA)](../../edge0-strata/EDGE0.md#build-linux-nvidia) or [Build (Windows, NVIDIA)](../../edge0-strata/EDGE0.md#build-windows-nvidia) in `edge0-strata/EDGE0.md` describes, build edge0-infer as in its [Getting started](../../edge0-infer/docs/getting-started.md#build), and start a model folder with `edge0-infer serve --model ` or `edge0-infer chat --model `. The pages [Edge0 145B](../../edge0-infer/docs/edge0-145b.md) and [Edge0 120B](../../edge0-infer/docs/edge0-120b.md) in the edge0-infer documentation cover `serve`, `chat` and `inspect` for these models, how `edge0-infer` finds edge0-strata, the options (`--device`, `du`, `ple-io`, `--context`, `--strata-arg`) and the known limitations.
## Acknowledgements
diff --git a/docs/roadmap.md b/docs/roadmap.md
new file mode 100644
index 00000000..e18b9843
--- /dev/null
+++ b/docs/roadmap.md
@@ -0,0 +1,35 @@
+# Roadmap
+
+[← Edge0](../README.md)
+
+### Q4 2026
+
+**Platforms & systems**
+
+- ✅ **edge0 unified inference engine open-sourced** (2026-11-04) —
+ [`edge0-infer`](../edge0-infer/README.md): one engine and one native API
+ across macOS, iOS, Android and Windows.
+- **`edge0-8b` support in edge0-infer**.
+
+**Models & algorithms**
+
+Q4 works two fronts: bringing a next-generation architecture into the
+framework, and turning latent reasoning into a real latency saving rather
+than just an arithmetic one.
+
+- **Next-gen architecture support (Qwen3.8-Flash class)** — run hybrid
+ linear attention (GDN + QSA), gated multi-branch residual, and N-gram
+ embedding topologies on edge0. These designs suit SSD streaming offload
+ naturally: O(1)-state attention keeps long thinking from becoming a
+ KV-cache problem, and lookup-only N-gram tables stream on demand. Goal:
+ the tier runs on a single device and benchmarks within an acceptable
+ gap of the fp16 base.
+- **Latent thinking + batched expert pre-prediction** — make latent
+ reasoning a *latency* saving, not only an arithmetic one. The core
+ engineering problem: move expert routing from per-position to **once
+ per block**, so one prediction covers every position and round of a
+ block and **expert load volume decouples from the reasoning loop
+ count** — plus cross-block prefetch that loads the next block's experts
+ inside the current block's compute window. Progress is measured as
+ **end-to-end thinking-phase time at matched accuracy** (never tokens/s).
+- More model tiers and adapter releases on the existing pipeline.
diff --git a/licenses/edge0-model/.gitattributes b/licenses/edge0-model/.gitattributes
new file mode 100644
index 00000000..022d74cb
--- /dev/null
+++ b/licenses/edge0-model/.gitattributes
@@ -0,0 +1,2 @@
+# Preserve the upstream license verbatim, including original line endings.
+third-party/Qwen-LICENSE.txt -text
diff --git a/licenses/edge0-model/LICENSE b/licenses/edge0-model/LICENSE
new file mode 100644
index 00000000..f50456e6
--- /dev/null
+++ b/licenses/edge0-model/LICENSE
@@ -0,0 +1,236 @@
+Edge0 Community Model License
+Version 1.0 — 12 November 2026
+
+This License applies to the Edge0 Materials expressly designated in the
+accompanying release-scope.json, from publication of that designation.
+Existing valid grants are preserved as stated in Section 9.
+
+Licensor: Edge0, solely for rights it owns or is authorized to license.
+Commercial licensing contact: info@edge0.ai
+
+1. Scope and definitions
+
+"Edge0 Materials" means the Edge0-specific model contributions expressly
+identified in an accompanying release scope record as licensed under this
+License, and only to the extent that Edge0 owns or is authorized to license
+rights in those contributions. These may include original model modifications,
+adapters, training deltas, and model-specific documentation. Merely naming a
+repository does not establish ownership of every file or of an entire model.
+
+"Upstream Materials" means Qwen materials and any other third-party materials
+included in or required by a release. Their existing licenses remain in
+effect. They are not relicensed as Edge0 property by this License.
+
+"Covered Model" means a model incorporating Edge0 Materials, including a
+modified, fine-tuned, quantized, pruned, converted, or merged version, but only
+insofar as exercising rights in Edge0 Materials requires Edge0's permission.
+This definition does not extend to an independently obtained upstream model
+or an independent work that does not incorporate protected Edge0 Materials.
+
+"Outputs" means text, code, images, data, or other results generated by running
+a Covered Model. It does not mean copies of weights, adapters, or other Edge0
+Materials merely extracted or reproduced through a model.
+
+"Commercial Model Offering" has the limited meaning set out in Section 4.
+"You" means the person or legal entity exercising rights under this License.
+
+This License does not apply to framework or inference-engine code already
+licensed under Apache-2.0, MIT, or another separately identified license, or
+to earlier releases not expressly designated under this License.
+
+2. Upstream rights are preserved
+
+You must comply with every applicable upstream license when using or
+redistributing Upstream Materials or works derived from them. The applicable
+Qwen license is reproduced unchanged in third-party/Qwen-LICENSE.txt. The
+release scope record must identify the upstream source and applicable
+license, distinguishing a license-reference revision from any independently
+verified training or conversion revision.
+
+This License neither replaces that license nor waives any Qwen restriction,
+attribution requirement, or requirement for a separate Qwen authorization.
+Permission from Edge0 is not permission from Qwen, and permission from Qwen
+is not permission from Edge0 for separately protected Edge0 Materials.
+
+If an upstream license and this License cannot both be satisfied, no right
+to the conflicting use of Edge0 Materials is granted here. Nothing in this
+License reduces rights You hold independently in Upstream Materials. An
+upstream license does not acquire additional Edge0 conditions merely because
+its text or materials are distributed beside this License.
+
+All permissions and examples below are subject to applicable upstream terms.
+An activity that is free of an Edge0 fee may still require Qwen authorization.
+
+3. Broad community permission
+
+Subject to Sections 2, 4, and 5, Edge0 grants You a worldwide, non-exclusive,
+no-charge, royalty-free copyright license to use, run, study, reproduce,
+modify, fine-tune, quantize, prune, convert, merge, evaluate, publish, and
+redistribute Edge0 Materials and modifications of them. This grant continues
+for the duration of the applicable copyright, subject to Section 9.
+
+No separate Edge0 permission, registration, user-count threshold, or revenue
+threshold applies to an activity unless it is a Commercial Model Offering.
+In particular, this License permits:
+
+(a) personal use, including local deployment and private experimentation;
+(b) research, education, teaching, benchmarking, and publication of findings;
+(c) community development and noncommercial sharing of original or modified
+ models, adapters, quantizations, and related tools;
+(d) internal organizational use, including use by businesses, when You are
+ not making a Commercial Model Offering;
+(e) use by employees, freelancers, creators, and other individuals to produce
+ work for which they are paid, without providing customers access to the
+ model or distributing the model as a Commercial Model Offering; and
+(f) commercial use of Outputs, and use of a model as an incidental component
+ of a product or a domain-specific tool, where the activity does not fall
+ within Section 4.
+
+Edge0 does not require disclosure of Your source code, private data, training
+data, prompts, or modifications. You may keep modifications private. Edge0
+does not require an interface badge, mandatory telemetry, or prior approval
+for research or benchmarking. Upstream obligations remain unaffected.
+
+Voluntary donations unconnected to access, features, service levels, or model
+delivery, and reimbursement limited to documented copying or delivery costs,
+do not by themselves make noncommercial community sharing a Commercial Model
+Offering. A subscription or service fee cannot be renamed a donation to
+qualify for this exception.
+
+4. Limited commercial reservation
+
+You must obtain a separate written commercial license from Edge0 before
+making any of the following Commercial Model Offerings:
+
+(a) Model sales and paid distribution: selling, renting, or licensing access
+ to, or copies of, a Covered Model, its weights, or an adapter or delta
+ incorporating Edge0 Materials; or distributing them in a paid bundle
+ whose principal value proposition is access to that model. Unrestricted
+ community donations and cost reimbursement described in Section 3 are
+ excluded.
+
+(b) Commercial model services: operating a service for third parties that
+ offers language-model inference or fine-tuning as a capability in its own
+ right, through an API, hosted endpoint, hosted general-purpose model
+ interface, or equivalent arrangement, and that is financed by access or
+ usage fees, a subscription, advertising, or sponsorship tied to that
+ service. Customers must be able meaningfully to control inference inputs
+ or fine-tuning inputs. A single-purpose domain tool or an incidental
+ assistant feature is not covered by this paragraph merely because it
+ uses a model to generate task-specific results.
+
+(c) Commercial independent coding or office assistants: offering an
+ independent product primarily designed for AI-assisted coding or office
+ productivity that uses a Covered Model and is financed by sales, access
+ or usage fees, subscriptions, advertising, or sponsorship tied to the
+ product. This applies whether inference is hosted or runs on a user's
+ device. A single-purpose tool, an assistant primarily serving another
+ domain, or an incidental feature of a product with another primary
+ purpose is excluded from this paragraph.
+
+Merely earning income, working for a company, receiving research funding,
+selling Outputs, or performing a task for a client does not by itself fall
+within this Section. Neither does selling unrelated software or hardware
+merely because it can run a model, without a paid model bundle or another
+offering described above. Private model installation, training, or integration
+services are permitted unless the actual arrangement includes a model sale,
+paid distribution, or an offering described above. A paid custom adapter or
+delta incorporating Edge0 Materials is covered by paragraph (a).
+
+These reservations apply only to rights Edge0 controls. They do not authorize
+Edge0 to license Qwen rights or to charge for rights independently available
+from another rights holder. A separate Edge0 commercial license must identify
+the rights it grants and does not waive upstream obligations unless the
+relevant upstream rights holder has expressly authorized that waiver.
+
+5. Redistribution and attribution
+
+When redistributing Edge0 Materials or modifications containing them, You must:
+
+(a) include this License and all applicable upstream license texts and notices;
+(b) preserve applicable copyright and attribution notices;
+(c) identify Your material modifications and the responsible modifier in a
+ reasonably accessible change record or model documentation; and
+(d) tell recipients which materials are subject to this License and which
+ remain governed by separate upstream licenses. You must not represent
+ this License as a replacement for the Qwen license.
+
+You may choose the license for Your own additions, provided You identify them
+separately and do not purport to remove the conditions governing Edge0 or
+Upstream Materials. Recipients may obtain the same rights in Edge0 Materials
+directly under this License. You cannot grant a recipient rights You do not
+have, or impose a term that denies a recipient rights granted directly here.
+
+You are not required by Edge0 to publish private changes or to put branding
+in a user interface. Reasonable origin statements in distributed model
+documentation are sufficient for Edge0 attribution; Qwen's separate interface
+attribution conditions, if applicable, must still be followed.
+
+6. Outputs and independent works
+
+Edge0 claims no ownership of Outputs solely because they were generated with
+a Covered Model, and imposes no Edge0 fee, attribution duty, or use restriction
+on those Outputs. You may use, share, sell, and use Outputs to train other
+models, subject to applicable law, upstream terms, and third-party rights.
+This is not a representation that every Output is protectable or free of
+third-party claims. If an Output contains protected pre-existing material,
+its independent legal requirements remain applicable.
+
+This License creates no rights over Your independently developed work or
+over material merely processed by a Covered Model. Independently obtaining
+and modifying a Qwen model without using protected Edge0 Materials does not
+by itself bring that work under this License.
+
+7. Patents, names, and endorsement
+
+To the extent Edge0 controls patent claims necessarily infringed by its
+identified contributions alone or as combined in the identified release,
+Edge0 grants a non-exclusive, worldwide, royalty-free patent license for the
+uses permitted here, on the same conditions. This does not cover other patent
+claims or third-party patents. If You bring a patent claim alleging that the
+identified Edge0 contributions infringe Your patent, this Edge0 patent grant
+ends when that claim is filed; this does not decide upstream patent rights.
+
+No trademark or endorsement right is granted, except reasonable use of names
+to identify origin and satisfy required notices. You must not imply approval
+or sponsorship by Edge0, Qwen, or another upstream author without permission.
+
+8. No warranty; limited liability
+
+Edge0 Materials are supplied without a promise of fitness, accuracy, safety,
+availability, title, or non-infringement. You are responsible for assessing
+their suitability and complying with applicable law. To the extent the law
+allows, Edge0 and its contributors are not liable for losses arising from
+their use or unavailability. Mandatory legal rights and liabilities that
+cannot lawfully be excluded remain unaffected.
+
+9. Termination and continuity
+
+If You materially breach this License, the rights granted by Edge0 under it
+terminate. They are automatically reinstated when a first breach is fully
+cured within 30 days after You discover it or receive notice of it, whichever
+is earlier. Reinstatement for a later breach requires Edge0's written consent.
+Reinstatement does not excuse a past claim or waive an upstream condition.
+
+Termination applies only to Edge0's grant. Upstream rights and obligations
+are determined by the relevant upstream licenses. Recipients who remain in
+compliance do not lose their direct rights because of Your breach.
+
+Edge0 may publish new license versions for future releases, but doing so does
+not change the terms already granted for an existing release. Existing valid
+grants under Apache-2.0, MIT, or another license are not withdrawn by publishing
+this License. You may rely on rights You already validly hold.
+
+10. Entire scope of this grant
+
+This License governs only the identified Edge0 Materials. It does not certify
+that a release contains protectable new rights, that Edge0 has obtained a
+separate Qwen commercial license, or that every contemplated activity is
+permitted by an upstream rights holder. A release must not be designated under
+this License without identifying Edge0's licensing authority and the actual
+upstream terms. Any separately agreed commercial permission must be in writing
+from the relevant rights holder.
+
+The English text is the operative version of this License.
+Translations and community explanations are informational and do not expand
+any permission or commercial restriction.
diff --git a/licenses/edge0-model/NOTICE b/licenses/edge0-model/NOTICE
new file mode 100644
index 00000000..c7fbc6a4
--- /dev/null
+++ b/licenses/edge0-model/NOTICE
@@ -0,0 +1,49 @@
+Edge0 Community Model License — third-party and scope notice
+Release notice, 12 November 2026.
+
+Edge0-specific rights
+ Licensor: Edge0, only for rights it owns or is authorized to license.
+ Commercial contact: info@edge0.ai
+ Only the Edge0-specific contributions described in release-scope.json,
+ insofar as Edge0 owns or is authorized to license them, are designated
+ under the accompanying LICENSE. No claim is made here that the
+ entire model, every weight, or a mechanical conversion belongs to Edge0.
+
+Qwen base model
+ Reported base: Qwen/Qwen3.8-Flash-Next
+ Copyright (c) 2026 Qwen
+ Applicable upstream license: Qwen Community License 1.0
+ Exact unmodified text: third-party/Qwen-LICENSE.txt
+ Reference revision: 812d96e10a0dd82b69d749e68693698cf6c36daa
+ Reference verified: 12 November 2026
+ License reference metadata: release-scope.json
+
+ The model publisher has identified the Qwen license above as applicable.
+ The reference revision fixes that license text; it is not a representation
+ of the training or conversion revision used to create the Edge0 models.
+ No verified training-source commit is asserted in this release record.
+
+ Qwen's copyright, permission notice, commercial conditions, definitions,
+ disclaimers, and applicable-law requirement remain unchanged. The Edge0
+ license does not replace them. Required Qwen commercial permission must
+ come from Qwen or a party authorized by Qwen. The contact in Qwen's text
+ remains Qwen's contact and must not be replaced with Edge0's address.
+
+Separately licensed code
+ The existing Edge0 framework is identified as Apache-2.0 in the project
+ snapshot. The bundled edge0-strata fork retains the MIT license of
+ Niko1221 and the Strata contributors. Other bundled components retain
+ their own licenses and notices. This MODEL license does not change them.
+ These model license files do not distribute that code or replace its NOTICE.
+
+Attribution and relationship
+ Edge0 acknowledges the work of the Qwen team and the Strata contributors.
+ Identifying their work describes technical origin only. It does not assert
+ partnership, endorsement, sponsorship, or authorization beyond their
+ applicable licenses or a separately verified agreement.
+
+Existing grants
+ This model license does not revoke prior valid licenses, create exclusive rights
+ in upstream material, or retrospectively change the conditions of copies
+ already released under another valid grant. An erroneous metadata label
+ also cannot grant upstream rights that the publisher did not possess.
diff --git a/licenses/edge0-model/release-scope.json b/licenses/edge0-model/release-scope.json
new file mode 100644
index 00000000..ae802a74
--- /dev/null
+++ b/licenses/edge0-model/release-scope.json
@@ -0,0 +1,209 @@
+{
+ "license": "Edge0 Community Model License 1.0",
+ "licensor": "Edge0",
+ "commercial_contact": "info@edge0.ai",
+ "record_type": "Collection of published Hugging Face model release scope records",
+ "scope_note": "Each nested scope retains its original repository, artifact identifiers and prospective designation. Relative artifact paths inside each scope refer to that Hugging Face repository, not this GitHub repository. This collection does not designate framework code under the model license or change any original designation date.",
+ "releases": [
+ {
+ "source": {
+ "repository": "Edge0/Edge0-145B-q3k",
+ "commit": "d7de835cfce7d9bb22a3d5ebb7d1e8565d4ecf74",
+ "url": "https://huggingface.co/Edge0/Edge0-145B-q3k/blob/d7de835cfce7d9bb22a3d5ebb7d1e8565d4ecf74/release-scope.json",
+ "sha256": "9ab2d5f7bb8fef4caf664502a73a6b4371c56ad0244e81571df48587a69a11f4"
+ },
+ "scope": {
+ "license": "Edge0 Community Model License 1.0",
+ "licensor": "Edge0",
+ "commercial_contact": "info@edge0.ai",
+ "adoption": "Publisher-authorized prospective designation, 12 November 2026",
+ "repository": "Edge0/Edge0-145B-q3k",
+ "model": "Edge0-145B",
+ "release_before_license_commit": "88865e129afc96da02dd7ebd1d99eedca142216d",
+ "designation_applies_from": "The repository commit first publishing this LICENSE and release-scope.json; not a withdrawal of prior valid grants.",
+ "covered_edge0_materials": [
+ {
+ "materials": "Edge0-specific model contributions embodied in this identified release and its Edge0 model-card documentation",
+ "rights_limit": "Only protectable contributions that Edge0 owns or is authorized to license. No claim of ownership of the entire model, all weights, Qwen materials, or mechanical conversion alone.",
+ "identified_artifacts": {
+ "model_configuration": "model.json",
+ "model_configuration_blob": "6b840ae16e0e3a8a9106908de8d56530c57ce78e",
+ "model_artifacts": "The model artifacts present at release_before_license_commit, only insofar as they contain such Edge0-specific contributions.",
+ "model_documentation": "README.md"
+ }
+ }
+ ],
+ "excluded_materials": [
+ "Qwen upstream materials and independently held upstream rights",
+ "Framework and inference-engine code under Apache-2.0, MIT, or other separate licenses",
+ "Existing valid grants for prior copies"
+ ],
+ "upstream_license": {
+ "verified_date": "2026-11-12",
+ "repository": "Qwen/Qwen3.8-Flash-Next",
+ "license_reference_revision": "812d96e10a0dd82b69d749e68693698cf6c36daa",
+ "source_url": "https://huggingface.co/Qwen/Qwen3.8-Flash-Next/blob/main/LICENSE",
+ "fixed_source_url": "https://huggingface.co/Qwen/Qwen3.8-Flash-Next/blob/812d96e10a0dd82b69d749e68693698cf6c36daa/LICENSE",
+ "license": "Qwen Community License 1.0",
+ "sha256": "a0dc422560841fd68e06d974907f8b4c709bca44a67daad2b528437bdf676c08",
+ "bytes": 3235,
+ "user_confirmed_upstream_license": true,
+ "actual_training_base_revision_verified": false
+ },
+ "actual_training_or_conversion_base_revision": null,
+ "provenance_note": "Model configuration identifies Qwen3.8-Flash-Next. The publisher confirmed the applicable Qwen LICENSE URL. No training-source commit or independent ownership audit is asserted.",
+ "commercial_authorization_note": "This record is not evidence of a separate Qwen commercial authorization and does not waive any upstream requirement."
+ }
+ },
+ {
+ "source": {
+ "repository": "Edge0/Edge0-145B-NVFP4",
+ "commit": "6aab5f4337b4c7146dd69130dad4c719f83fca03",
+ "url": "https://huggingface.co/Edge0/Edge0-145B-NVFP4/blob/6aab5f4337b4c7146dd69130dad4c719f83fca03/release-scope.json",
+ "sha256": "adcdea803989c7e76717ec308064d1d20e8bb5b12e6944cb9cbfa499137389b0"
+ },
+ "scope": {
+ "license": "Edge0 Community Model License 1.0",
+ "licensor": "Edge0",
+ "commercial_contact": "info@edge0.ai",
+ "adoption": "Publisher-authorized prospective designation, 12 November 2026",
+ "repository": "Edge0/Edge0-145B-NVFP4",
+ "model": "Edge0-145B",
+ "release_before_license_commit": "c27b4f21faabf31ed194150fe3f2d71748b4d880",
+ "designation_applies_from": "The repository commit first publishing this LICENSE and release-scope.json; not a withdrawal of prior valid grants.",
+ "covered_edge0_materials": [
+ {
+ "materials": "Edge0-specific model contributions embodied in this identified release and its Edge0 model-card documentation",
+ "rights_limit": "Only protectable contributions that Edge0 owns or is authorized to license. No claim of ownership of the entire model, all weights, Qwen materials, or mechanical conversion alone.",
+ "identified_artifacts": {
+ "model_configuration": "model.json",
+ "model_configuration_blob": "24ec15b5c6d5056460ade593c939beacc15940b1",
+ "model_artifacts": "The model artifacts present at release_before_license_commit, only insofar as they contain such Edge0-specific contributions.",
+ "model_documentation": "README.md"
+ }
+ }
+ ],
+ "excluded_materials": [
+ "Qwen upstream materials and independently held upstream rights",
+ "Framework and inference-engine code under Apache-2.0, MIT, or other separate licenses",
+ "Existing valid grants for prior copies"
+ ],
+ "upstream_license": {
+ "verified_date": "2026-11-12",
+ "repository": "Qwen/Qwen3.8-Flash-Next",
+ "license_reference_revision": "812d96e10a0dd82b69d749e68693698cf6c36daa",
+ "source_url": "https://huggingface.co/Qwen/Qwen3.8-Flash-Next/blob/main/LICENSE",
+ "fixed_source_url": "https://huggingface.co/Qwen/Qwen3.8-Flash-Next/blob/812d96e10a0dd82b69d749e68693698cf6c36daa/LICENSE",
+ "license": "Qwen Community License 1.0",
+ "sha256": "a0dc422560841fd68e06d974907f8b4c709bca44a67daad2b528437bdf676c08",
+ "bytes": 3235,
+ "user_confirmed_upstream_license": true,
+ "actual_training_base_revision_verified": false
+ },
+ "actual_training_or_conversion_base_revision": null,
+ "provenance_note": "Model configuration identifies Qwen3.8-Flash-Next. The publisher confirmed the applicable Qwen LICENSE URL. No training-source commit or independent ownership audit is asserted.",
+ "commercial_authorization_note": "This record is not evidence of a separate Qwen commercial authorization and does not waive any upstream requirement."
+ }
+ },
+ {
+ "source": {
+ "repository": "Edge0/Edge0-120B-q3k",
+ "commit": "51a60a20d6fd51385a11e8d1e5f6c767c6715088",
+ "url": "https://huggingface.co/Edge0/Edge0-120B-q3k/blob/51a60a20d6fd51385a11e8d1e5f6c767c6715088/release-scope.json",
+ "sha256": "f5a88536e8159fac311adaa16e8b44433d047ab580a568028c2cc557aac6c6b6"
+ },
+ "scope": {
+ "license": "Edge0 Community Model License 1.0",
+ "licensor": "Edge0",
+ "commercial_contact": "info@edge0.ai",
+ "adoption": "Publisher-authorized prospective designation, 12 November 2026",
+ "repository": "Edge0/Edge0-120B-q3k",
+ "model": "Edge0-120B",
+ "release_before_license_commit": "0ac6cc7de7c936a3275e3801fae029aeaf908777",
+ "designation_applies_from": "The repository commit first publishing this LICENSE and release-scope.json; not a withdrawal of prior valid grants.",
+ "covered_edge0_materials": [
+ {
+ "materials": "Edge0-specific model contributions embodied in this identified release and its Edge0 model-card documentation",
+ "rights_limit": "Only protectable contributions that Edge0 owns or is authorized to license. No claim of ownership of the entire model, all weights, Qwen materials, or mechanical conversion alone.",
+ "identified_artifacts": {
+ "model_configuration": "model.json",
+ "model_configuration_blob": "ecd91d8301c94943da7032556d9faabcb8220929",
+ "model_artifacts": "The model artifacts present at release_before_license_commit, only insofar as they contain such Edge0-specific contributions.",
+ "model_documentation": "README.md"
+ }
+ }
+ ],
+ "excluded_materials": [
+ "Qwen upstream materials and independently held upstream rights",
+ "Framework and inference-engine code under Apache-2.0, MIT, or other separate licenses",
+ "Existing valid grants for prior copies"
+ ],
+ "upstream_license": {
+ "verified_date": "2026-11-12",
+ "repository": "Qwen/Qwen3.8-Flash-Next",
+ "license_reference_revision": "812d96e10a0dd82b69d749e68693698cf6c36daa",
+ "source_url": "https://huggingface.co/Qwen/Qwen3.8-Flash-Next/blob/main/LICENSE",
+ "fixed_source_url": "https://huggingface.co/Qwen/Qwen3.8-Flash-Next/blob/812d96e10a0dd82b69d749e68693698cf6c36daa/LICENSE",
+ "license": "Qwen Community License 1.0",
+ "sha256": "a0dc422560841fd68e06d974907f8b4c709bca44a67daad2b528437bdf676c08",
+ "bytes": 3235,
+ "user_confirmed_upstream_license": true,
+ "actual_training_base_revision_verified": false
+ },
+ "actual_training_or_conversion_base_revision": null,
+ "provenance_note": "Model configuration identifies Qwen3.8-Flash-Next. The publisher confirmed the applicable Qwen LICENSE URL. No training-source commit or independent ownership audit is asserted.",
+ "commercial_authorization_note": "This record is not evidence of a separate Qwen commercial authorization and does not waive any upstream requirement."
+ }
+ },
+ {
+ "source": {
+ "repository": "Edge0/Edge0-120B-NVFP4",
+ "commit": "291b1ee04fa2660f1d2edb57a66e1cdf4b460229",
+ "url": "https://huggingface.co/Edge0/Edge0-120B-NVFP4/blob/291b1ee04fa2660f1d2edb57a66e1cdf4b460229/release-scope.json",
+ "sha256": "2c7adde09899c294712f8da3e4664108ab1b239aecb7490050d55aec6c491aed"
+ },
+ "scope": {
+ "license": "Edge0 Community Model License 1.0",
+ "licensor": "Edge0",
+ "commercial_contact": "info@edge0.ai",
+ "adoption": "Publisher-authorized prospective designation, 12 November 2026",
+ "repository": "Edge0/Edge0-120B-NVFP4",
+ "model": "Edge0-120B",
+ "release_before_license_commit": "704a2c08c48c06d306e4d413ddf32b3a90e157ff",
+ "designation_applies_from": "The repository commit first publishing this LICENSE and release-scope.json; not a withdrawal of prior valid grants.",
+ "covered_edge0_materials": [
+ {
+ "materials": "Edge0-specific model contributions embodied in this identified release and its Edge0 model-card documentation",
+ "rights_limit": "Only protectable contributions that Edge0 owns or is authorized to license. No claim of ownership of the entire model, all weights, Qwen materials, or mechanical conversion alone.",
+ "identified_artifacts": {
+ "model_configuration": "model.json",
+ "model_configuration_blob": "8d259e49f336d8bc41ed9577b3111fc8ea4d20f5",
+ "model_artifacts": "The model artifacts present at release_before_license_commit, only insofar as they contain such Edge0-specific contributions.",
+ "model_documentation": "README.md"
+ }
+ }
+ ],
+ "excluded_materials": [
+ "Qwen upstream materials and independently held upstream rights",
+ "Framework and inference-engine code under Apache-2.0, MIT, or other separate licenses",
+ "Existing valid grants for prior copies"
+ ],
+ "upstream_license": {
+ "verified_date": "2026-11-12",
+ "repository": "Qwen/Qwen3.8-Flash-Next",
+ "license_reference_revision": "812d96e10a0dd82b69d749e68693698cf6c36daa",
+ "source_url": "https://huggingface.co/Qwen/Qwen3.8-Flash-Next/blob/main/LICENSE",
+ "fixed_source_url": "https://huggingface.co/Qwen/Qwen3.8-Flash-Next/blob/812d96e10a0dd82b69d749e68693698cf6c36daa/LICENSE",
+ "license": "Qwen Community License 1.0",
+ "sha256": "a0dc422560841fd68e06d974907f8b4c709bca44a67daad2b528437bdf676c08",
+ "bytes": 3235,
+ "user_confirmed_upstream_license": true,
+ "actual_training_base_revision_verified": false
+ },
+ "actual_training_or_conversion_base_revision": null,
+ "provenance_note": "Model configuration identifies Qwen3.8-Flash-Next. The publisher confirmed the applicable Qwen LICENSE URL. No training-source commit or independent ownership audit is asserted.",
+ "commercial_authorization_note": "This record is not evidence of a separate Qwen commercial authorization and does not waive any upstream requirement."
+ }
+ }
+ ]
+}
diff --git a/licenses/edge0-model/third-party/Qwen-LICENSE.txt b/licenses/edge0-model/third-party/Qwen-LICENSE.txt
new file mode 100644
index 00000000..9557a896
--- /dev/null
+++ b/licenses/edge0-model/third-party/Qwen-LICENSE.txt
@@ -0,0 +1,16 @@
+Qwen Community License 1.0
+
+Copyright (c) 2026 Qwen
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of this software, including the model weights, parameters, configuration files, inference code and associated documentation files (collectively, the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, sell, deploy, host, fine-tune, and create derivative works from (collectively, "Use" or "Using") copies of the Software; and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
+
+1. The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. If the Software (or any derivative works thereof) is Used for any of the licensee's commercial products or services that have more than 100,000,000 monthly active users or US$ 20,000,000 (or equivalent in other currencies) monthly revenue, respective model name must be prominently displayed on the user interface of such product or service; and,
+
+2. If the licensee or any of its affiliates conducts a Model as a Service or AI Work Assistant business, the licensee shall obtain a separate license from Qwen before Using the Software or its derivative works for any commercial purpose. The foregoing requirement shall not apply to the licensee's internal Use of the Software, provided that such Use does not make the Software, its outputs, or its underlying model capabilities available to any third party.
+
+"Model as a Service" means giving a third party access to language model inference or fine-tuning (e.g., via API or a hosted endpoint) in a manner that allows such third parties to exercise meaningful control over the inputs, parameters, or training data. This does not include the mere relaying of requests to models hosted by other third parties.
+“AI Work Assistant” means an independent AI-powered product primarily designed for AI-assisted coding or office productivity (e.g., Qoder and QwenWork). It does not include: (a) a single-purpose AI tool (such as an AI translation tool); (b) an AI assistant primarily designed for a domain other than coding or office productivity (such as Taobao AI Shopping Assistant or AMap AI Chat); or (c) an AI assistant that is a feature of a product whose primary purpose is not AI-assisted coding or office productivity.
+
+THE SOFTWARE AND ANY OUTPUT AND RESULTS THEREFROM ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL QWEN, ITS AFFILIATES OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. THE USE OF THE SOFTWARE MUST COMPLY WITH APPLICABLE LAWS AND REGULATIONS, AND MUST NOT INFRINGE THE INTELLECTUAL PROPERTY RIGHTS OF ANY THIRD PARTY.
+
+For any questions regarding this license, please contact model-business@notice.qwencloud.com.
\ No newline at end of file
diff --git a/licenses/edge0-model/upstream-reference.json b/licenses/edge0-model/upstream-reference.json
new file mode 100644
index 00000000..bde80355
--- /dev/null
+++ b/licenses/edge0-model/upstream-reference.json
@@ -0,0 +1,41 @@
+{
+ "upstream_license": {
+ "verified_date": "2026-11-12",
+ "repository": "Qwen/Qwen3.8-Flash-Next",
+ "license_reference_revision": "812d96e10a0dd82b69d749e68693698cf6c36daa",
+ "source_url": "https://huggingface.co/Qwen/Qwen3.8-Flash-Next/blob/main/LICENSE",
+ "fixed_source_url": "https://huggingface.co/Qwen/Qwen3.8-Flash-Next/blob/812d96e10a0dd82b69d749e68693698cf6c36daa/LICENSE",
+ "license": "Qwen Community License 1.0",
+ "sha256": "a0dc422560841fd68e06d974907f8b4c709bca44a67daad2b528437bdf676c08",
+ "bytes": 3235,
+ "user_confirmed_upstream_license": true,
+ "actual_training_base_revision_verified": false
+ },
+ "model_license_sources": [
+ {
+ "repository": "Edge0/Edge0-145B-q3k",
+ "commit": "d7de835cfce7d9bb22a3d5ebb7d1e8565d4ecf74",
+ "url": "https://huggingface.co/Edge0/Edge0-145B-q3k/blob/d7de835cfce7d9bb22a3d5ebb7d1e8565d4ecf74/release-scope.json",
+ "sha256": "9ab2d5f7bb8fef4caf664502a73a6b4371c56ad0244e81571df48587a69a11f4"
+ },
+ {
+ "repository": "Edge0/Edge0-145B-NVFP4",
+ "commit": "6aab5f4337b4c7146dd69130dad4c719f83fca03",
+ "url": "https://huggingface.co/Edge0/Edge0-145B-NVFP4/blob/6aab5f4337b4c7146dd69130dad4c719f83fca03/release-scope.json",
+ "sha256": "adcdea803989c7e76717ec308064d1d20e8bb5b12e6944cb9cbfa499137389b0"
+ },
+ {
+ "repository": "Edge0/Edge0-120B-q3k",
+ "commit": "51a60a20d6fd51385a11e8d1e5f6c767c6715088",
+ "url": "https://huggingface.co/Edge0/Edge0-120B-q3k/blob/51a60a20d6fd51385a11e8d1e5f6c767c6715088/release-scope.json",
+ "sha256": "f5a88536e8159fac311adaa16e8b44433d047ab580a568028c2cc557aac6c6b6"
+ },
+ {
+ "repository": "Edge0/Edge0-120B-NVFP4",
+ "commit": "291b1ee04fa2660f1d2edb57a66e1cdf4b460229",
+ "url": "https://huggingface.co/Edge0/Edge0-120B-NVFP4/blob/291b1ee04fa2660f1d2edb57a66e1cdf4b460229/release-scope.json",
+ "sha256": "2c7adde09899c294712f8da3e4664108ab1b239aecb7490050d55aec6c491aed"
+ }
+ ],
+ "scope": "Published model-license provenance. The Qwen license-reference revision is not a verified training or conversion revision. Original release records and their stated limits are retained in release-scope.json."
+}