diff --git a/README.md b/README.md index 3f87cb45..a577c6bf 100644 --- a/README.md +++ b/README.md @@ -1,131 +1,135 @@ -
+

Edge0

-edge0 +

Edge0

-# edge0 +

An open-source streaming MoE inference framework

-**An open-source streaming MoE inference framework — SSD expert offload + Recover-LoRA + prerouter routing prediction.** +
-**macOS** · **iOS** · **Android** · **Linux** · **Windows** — one program for every Edge0 model. +

Think big. Run here.
Sparse. By design.

-[![Hugging Face](https://img.shields.io/badge/%F0%9F%A4%97%20Hugging%20Face-Edge0--35B--A3B--preview-yellow?style=for-the-badge)](https://huggingface.co/Edge0/Edge0-35B-A3B-preview) -[![Hugging Face](https://img.shields.io/badge/%F0%9F%A4%97%20Hugging%20Face-Edge0--8B--A1B--preview-yellow?style=for-the-badge)](https://huggingface.co/Edge0/Edge0-8B-A1B-preview) -[![ModelScope](https://img.shields.io/badge/ModelScope-Edge0--35B--A3B--preview-624AFF?style=for-the-badge)](https://www.modelscope.cn/models/Edge0/Edge0-35B-A3B-preview) -[![ModelScope](https://img.shields.io/badge/ModelScope-Edge0--8B--A1B--preview-624AFF?style=for-the-badge)](https://www.modelscope.cn/models/Edge0/Edge0-8B-A1B-preview) -[![Hugging Face](https://img.shields.io/badge/%F0%9F%A4%97%20Hugging%20Face-Edge0--145B-yellow?style=for-the-badge)](https://huggingface.co/Edge0/Edge0-145B-q3k) -[![Hugging Face](https://img.shields.io/badge/%F0%9F%A4%97%20Hugging%20Face-Edge0--120B-yellow?style=for-the-badge)](https://huggingface.co/Edge0/Edge0-120B-q3k) -[![arXiv](https://img.shields.io/badge/arXiv-2609.18063-B31B1B?style=for-the-badge&logo=arxiv&logoColor=white)](https://arxiv.org/abs/2609.18063) -[![GitHub](https://img.shields.io/badge/GitHub-Edge0--AI%2FEdge0-black?style=for-the-badge&logo=github)](https://github.com/Edge0-AI/Edge0) -[![Discord](https://img.shields.io/badge/Discord-Join%20us-5865F2?style=for-the-badge&logo=discord&logoColor=white)](https://edge0.ai/discord) -[![License](https://img.shields.io/badge/License-Apache%202.0-blue?style=for-the-badge)](LICENSE) +
-English | [中文](README_zh.md) | [日本語](README_ja.md) | [Español](README_es.md) | [Français](README_fr.md) +

macOS · iOS · Android · Linux · Windows
One program for every Edge0 model

-
+

Project
+
+arXiv / 2609.18063 GitHub / Edge0-AI/Edge0 Discord / Join us License / Apache 2.0 Windows / Download +

+ +

Latest release
+
+Edge0 / 145B-Q3_K Edge0 / 145B-NVFP4 Edge0 / 120B-Q3_K Edge0 / 120B-NVFP4 +

+ +

Old release
+
+Hugging Face / Edge0-35B-A3B-preview Hugging Face / Edge0-8B-A1B-preview ModelScope / Edge0-35B-A3B-preview ModelScope / Edge0-8B-A1B-preview +

+ +

English · 中文 · 日本語 · Español · Français

+ +

News · About · Models · Quality · Benchmark · Getting started

+ +
## News +

13 November 2026 · 145B and 120B models · Latent MoE models for one NVIDIA GPU, in Q3_K and NVFP4.

+ +

4 November 2026 · Unified inference engine · A GGML-based engine with a shared C++ API, local server and chat examples.

+ +

30 September 2026 · Engines for four platforms · iOS, macOS, Android and Windows engines; archived at pre-edge0-infer.

+ +
+More updates + +

16 September 2026 · 35B technical report · Serving 35B MoEs from SSD with trained routing prediction.

+ +

8 September 2026 · First open-source release · The edge0 framework and 35B / 8B preview models on Hugging Face and ModelScope.

+ +
+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. + +Edge0-145B Q3_K: architecture, quality, 121.2 tok/s agent decode, 3554.9 tok/s prefill, and weights by build + +
+ +## Quality + +### 145B / 120B + +Six benchmarks, six models. Higher is better. Scores are reported by model, not as separate Q3_K and NVFP4 evaluations. + +Six-model comparison on DeepSWE 1.1, Terminal-Bench 2.1, HLE, GPQA-Diamond, IFBench and AA-LCR; 0–100 scale, with missing values marked + +[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 +Complete seven-row Edge0-145B speed table: 4K and 16K prefill, chat and agent decode, all measured machines and builds + +
+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 + +Complete eight-row Edge0-120B speed table + +
+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. + +
+ +
+

In action

+ +

Play the 2 minute 1 second Edge0-145B showcase

+ +

Recorded with Edge0-145B · Open video ↗

+ +
+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 + +Edge0-145B architecture and expert routing + +[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 +

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.

-[![Hugging Face](https://img.shields.io/badge/%F0%9F%A4%97%20Hugging%20Face-Edge0--35B--A3B--preview-yellow?style=for-the-badge)](https://huggingface.co/Edge0/Edge0-35B-A3B-preview) -[![Hugging Face](https://img.shields.io/badge/%F0%9F%A4%97%20Hugging%20Face-Edge0--8B--A1B--preview-yellow?style=for-the-badge)](https://huggingface.co/Edge0/Edge0-8B-A1B-preview) -[![ModelScope](https://img.shields.io/badge/ModelScope-Edge0--35B--A3B--preview-624AFF?style=for-the-badge)](https://www.modelscope.cn/models/Edge0/Edge0-35B-A3B-preview) -[![ModelScope](https://img.shields.io/badge/ModelScope-Edge0--8B--A1B--preview-624AFF?style=for-the-badge)](https://www.modelscope.cn/models/Edge0/Edge0-8B-A1B-preview) -[![Hugging Face](https://img.shields.io/badge/%F0%9F%A4%97%20Hugging%20Face-Edge0--145B-yellow?style=for-the-badge)](https://huggingface.co/Edge0/Edge0-145B-q3k) -[![Hugging Face](https://img.shields.io/badge/%F0%9F%A4%97%20Hugging%20Face-Edge0--120B-yellow?style=for-the-badge)](https://huggingface.co/Edge0/Edge0-120B-q3k) -[![arXiv](https://img.shields.io/badge/arXiv-2609.18063-B31B1B?style=for-the-badge&logo=arxiv&logoColor=white)](https://arxiv.org/abs/2609.18063) -[![GitHub](https://img.shields.io/badge/GitHub-Edge0--AI%2FEdge0-black?style=for-the-badge&logo=github)](https://github.com/Edge0-AI/Edge0) -[![Discord](https://img.shields.io/badge/Discord-Join%20us-5865F2?style=for-the-badge&logo=discord&logoColor=white)](https://edge0.ai/discord) -[![License](https://img.shields.io/badge/License-Apache%202.0-blue?style=for-the-badge)](LICENSE) +
-[English](README.md) | [中文](README_zh.md) | [日本語](README_ja.md) | Español | [Français](README_fr.md) +

macOS · iOS · Android · Linux · Windows
Un programa para todos los modelos Edge0

-
+

Proyecto
+
+arXiv / 2609.18063 GitHub / Edge0-AI/Edge0 Discord / Join us License / Apache 2.0 Windows / Download +

+ +

Última versión
+
+Edge0 / 145B-Q3_K Edge0 / 145B-NVFP4 Edge0 / 120B-Q3_K Edge0 / 120B-NVFP4 +

+ +

Versión anterior
+
+Hugging Face / Edge0-35B-A3B-preview Hugging Face / Edge0-8B-A1B-preview ModelScope / Edge0-35B-A3B-preview ModelScope / Edge0-8B-A1B-preview +

+ +

English · 中文 · 日本語 · Español · Français

+ +

Novedades · Acerca de · Modelos · Calidad · Rendimiento · Primeros pasos

+ +
+ + ## 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. +

13 noviembre 2026 · Modelos de 145B y 120B · MoE latentes para una sola GPU NVIDIA, en Q3_K y NVFP4.

+ +

4 noviembre 2026 · Motor de inferencia unificado · Un motor GGML con API común de C++, servidor local y ejemplos de chat.

+ +

30 septiembre 2026 · Motores para cuatro plataformas · Motores para iOS, macOS, Android y Windows; archivados en pre-edge0-infer.

+ +
+Más novedades + +

16 septiembre 2026 · Informe técnico de 35B · Ejecución de MoE de 35B desde SSD con predicción de enrutamiento entrenada.

+ +

8 septiembre 2026 · Primera publicación abierta · El framework edge0 y los modelos 35B / 8B preliminares en Hugging Face y ModelScope.

+ +
+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. + +Edge0-145B Q3_K: arquitectura, calidad, decodificación de agente a 121.2 tok/s, prefill a 3554.9 tok/s y tamaño de los pesos por formato + +
+ + + +## 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. + +Comparación de seis modelos en DeepSWE 1.1, Terminal-Bench 2.1, HLE, GPQA-Diamond, IFBench y AA-LCR; escala 0–100, valores ausentes indicados + +[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 | -| --- | --- | ---: | ---: | ---: | ---: | +Tabla completa de siete filas de Edge0-145B: prefill de 4K y 16K, decodificación de chat y agente, todos los equipos y formatos medidos + +
+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 | -| --- | --- | ---: | ---: | ---: | ---: | +Tabla completa de ocho filas de velocidad de Edge0-120B + +
+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. + +
+ + + +
+

En acción

+ +

Reproducir la demostración de Edge0-145B de 2 minutos y 1 segundo

+ +

Grabado con Edge0-145B · Abrir vídeo ↗

+ +
+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 + +Arquitectura y enrutamiento de expertos de Edge0-145B + +[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 +

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.

-[![Hugging Face](https://img.shields.io/badge/%F0%9F%A4%97%20Hugging%20Face-Edge0--35B--A3B--preview-yellow?style=for-the-badge)](https://huggingface.co/Edge0/Edge0-35B-A3B-preview) -[![Hugging Face](https://img.shields.io/badge/%F0%9F%A4%97%20Hugging%20Face-Edge0--8B--A1B--preview-yellow?style=for-the-badge)](https://huggingface.co/Edge0/Edge0-8B-A1B-preview) -[![ModelScope](https://img.shields.io/badge/ModelScope-Edge0--35B--A3B--preview-624AFF?style=for-the-badge)](https://www.modelscope.cn/models/Edge0/Edge0-35B-A3B-preview) -[![ModelScope](https://img.shields.io/badge/ModelScope-Edge0--8B--A1B--preview-624AFF?style=for-the-badge)](https://www.modelscope.cn/models/Edge0/Edge0-8B-A1B-preview) -[![Hugging Face](https://img.shields.io/badge/%F0%9F%A4%97%20Hugging%20Face-Edge0--145B-yellow?style=for-the-badge)](https://huggingface.co/Edge0/Edge0-145B-q3k) -[![Hugging Face](https://img.shields.io/badge/%F0%9F%A4%97%20Hugging%20Face-Edge0--120B-yellow?style=for-the-badge)](https://huggingface.co/Edge0/Edge0-120B-q3k) -[![arXiv](https://img.shields.io/badge/arXiv-2609.18063-B31B1B?style=for-the-badge&logo=arxiv&logoColor=white)](https://arxiv.org/abs/2609.18063) -[![GitHub](https://img.shields.io/badge/GitHub-Edge0--AI%2FEdge0-black?style=for-the-badge&logo=github)](https://github.com/Edge0-AI/Edge0) -[![Discord](https://img.shields.io/badge/Discord-Join%20us-5865F2?style=for-the-badge&logo=discord&logoColor=white)](https://edge0.ai/discord) -[![License](https://img.shields.io/badge/License-Apache%202.0-blue?style=for-the-badge)](LICENSE) +
-[English](README.md) | [中文](README_zh.md) | [日本語](README_ja.md) | [Español](README_es.md) | Français +

macOS · iOS · Android · Linux · Windows
Un programme pour tous les modèles Edge0

-
+

Projet
+
+arXiv / 2609.18063 GitHub / Edge0-AI/Edge0 Discord / Join us License / Apache 2.0 Windows / Download +

+ +

Dernière version
+
+Edge0 / 145B-Q3_K Edge0 / 145B-NVFP4 Edge0 / 120B-Q3_K Edge0 / 120B-NVFP4 +

+ +

Version précédente
+
+Hugging Face / Edge0-35B-A3B-preview Hugging Face / Edge0-8B-A1B-preview ModelScope / Edge0-35B-A3B-preview ModelScope / Edge0-8B-A1B-preview +

+ +

English · 中文 · 日本語 · Español · Français

+ +

Actualités · À propos · Modèles · Qualité · Performances · Premiers pas

+ +
+ + ## 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. +

13 novembre 2026 · Modèles 145B et 120B · Des MoE latents pour un seul GPU NVIDIA, en Q3_K et NVFP4.

+ +

4 novembre 2026 · Moteur d’inférence unifié · Un moteur GGML avec API C++ commune, serveur local et exemples de chat.

+ +

30 septembre 2026 · Moteurs pour quatre plateformes · Moteurs iOS, macOS, Android et Windows, archivés sous pre-edge0-infer.

+ +
+Plus d’actualités + +

16 septembre 2026 · Rapport technique 35B · Exécuter des MoE 35B depuis un SSD grâce à une prédiction de routage apprise.

+ +

8 septembre 2026 · Première publication open source · Le framework edge0 et les modèles 35B / 8B en aperçu sur Hugging Face et ModelScope.

+ +
+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. + +Edge0-145B Q3_K : architecture, qualité, décodage agent à 121.2 tok/s, préremplissage à 3554.9 tok/s et taille des poids par format + +
+ + + +## 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. + +Comparaison de six modèles sur DeepSWE 1.1, Terminal-Bench 2.1, HLE, GPQA-Diamond, IFBench et AA-LCR ; échelle 0–100, valeurs manquantes signalées + +[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 | -| --- | --- | ---: | ---: | ---: | ---: | +Tableau complet de sept lignes pour Edge0-145B : préremplissage 4K et 16K, décodage chat et agent, tous les appareils et formats mesurés + +
+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 | -| --- | --- | ---: | ---: | ---: | ---: | +Tableau complet de huit lignes de vitesse pour Edge0-120B + +
+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. +

Lire la démonstration Edge0-145B de 2 minutes et 1 seconde

-### 2) Obtenir un modèle +

Enregistré avec Edge0-145B · Ouvrir la vidéo ↗

-**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 + +Architecture et routage des experts d’Edge0-145B + +[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

-edge0 +

Edge0

-# edge0 +

オープンソースのストリーミング MoE 推論フレームワーク

-**オープンソースのストリーミング MoE 推論フレームワーク — SSD expert offload + Recover-LoRA + prerouter ルーティング予測。** +
-**macOS** · **iOS** · **Android** · **Linux** · **Windows** — すべての Edge0 モデルを 1 つのプログラムで。 +

大きなモデルを、このマシンで。
設計から、スパースに。

-[![Hugging Face](https://img.shields.io/badge/%F0%9F%A4%97%20Hugging%20Face-Edge0--35B--A3B--preview-yellow?style=for-the-badge)](https://huggingface.co/Edge0/Edge0-35B-A3B-preview) -[![Hugging Face](https://img.shields.io/badge/%F0%9F%A4%97%20Hugging%20Face-Edge0--8B--A1B--preview-yellow?style=for-the-badge)](https://huggingface.co/Edge0/Edge0-8B-A1B-preview) -[![ModelScope](https://img.shields.io/badge/ModelScope-Edge0--35B--A3B--preview-624AFF?style=for-the-badge)](https://www.modelscope.cn/models/Edge0/Edge0-35B-A3B-preview) -[![ModelScope](https://img.shields.io/badge/ModelScope-Edge0--8B--A1B--preview-624AFF?style=for-the-badge)](https://www.modelscope.cn/models/Edge0/Edge0-8B-A1B-preview) -[![Hugging Face](https://img.shields.io/badge/%F0%9F%A4%97%20Hugging%20Face-Edge0--145B-yellow?style=for-the-badge)](https://huggingface.co/Edge0/Edge0-145B-q3k) -[![Hugging Face](https://img.shields.io/badge/%F0%9F%A4%97%20Hugging%20Face-Edge0--120B-yellow?style=for-the-badge)](https://huggingface.co/Edge0/Edge0-120B-q3k) -[![arXiv](https://img.shields.io/badge/arXiv-2609.18063-B31B1B?style=for-the-badge&logo=arxiv&logoColor=white)](https://arxiv.org/abs/2609.18063) -[![GitHub](https://img.shields.io/badge/GitHub-Edge0--AI%2FEdge0-black?style=for-the-badge&logo=github)](https://github.com/Edge0-AI/Edge0) -[![Discord](https://img.shields.io/badge/Discord-Join%20us-5865F2?style=for-the-badge&logo=discord&logoColor=white)](https://edge0.ai/discord) -[![License](https://img.shields.io/badge/License-Apache%202.0-blue?style=for-the-badge)](LICENSE) +
-[English](README.md) | [中文](README_zh.md) | 日本語 | [Español](README_es.md) | [Français](README_fr.md) +

macOS · iOS · Android · Linux · Windows
すべての Edge0 モデルを、ひとつのプログラムで

-
+

プロジェクト
+
+arXiv / 2609.18063 GitHub / Edge0-AI/Edge0 Discord / Join us License / Apache 2.0 Windows / Download +

+ +

最新リリース
+
+Edge0 / 145B-Q3_K Edge0 / 145B-NVFP4 Edge0 / 120B-Q3_K Edge0 / 120B-NVFP4 +

+ +

以前のリリース
+
+Hugging Face / Edge0-35B-A3B-preview Hugging Face / Edge0-8B-A1B-preview ModelScope / Edge0-35B-A3B-preview ModelScope / Edge0-8B-A1B-preview +

+ +

English · 中文 · 日本語 · Español · Français

+ +

ニュース · 概要 · モデル · 性能評価 · 速度測定 · はじめに

+ +
+ + ## ニュース -- **[2026-11-13]** **`edge0-145b`** と **`edge0-120b`** をリリースしました。Qwen3.8-Flash-Next から派生した latent MoE モデルで、Linux または Windows 上の NVIDIA GPU 1 枚で動作します。[edge0-strata](edge0-strata/EDGE0.md) で動作し、`edge0-infer serve` と `edge0-infer chat` がこれらのモデル用に起動します。[モデルページ](docs/models/edge0-145b.md)を参照してください。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]** **統合推論エンジン [`edge0-infer`](edge0-infer/README_ja.md)** をリリースしました。[GGML](https://github.com/ggml-org/ggml) をベースに、1 つのエンジンと 1 つのネイティブ C++ API で、同じモデルを macOS、iOS、Android、Windows で実行します。CLI、OpenAI 互換のローカルサーバー、デスクトップ・Android・iOS 向けのチャットアプリのサンプルも付属します。最初のリリースは `edge0-35b` をサポートし、`edge0-8b` は今後のリリースでサポートします。これまでの Python フレームワークと各プラットフォームのエンジンを置き換えるもので、以前のコードは tag [`pre-edge0-infer`](https://github.com/Edge0-AI/Edge0/tree/pre-edge0-infer) に残しています。 -- **[2026-09-30]** **4 つのプラットフォーム — iOS、macOS、Android、Windows — 向けの edge0 推論エンジン**をリリースしました(ソースは tag [`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** の初オープンソースリリース。両モデルティア — [`Edge0-35B-A3B-preview`](https://huggingface.co/Edge0/Edge0-35B-A3B-preview) と [`Edge0-8B-A1B-preview`](https://huggingface.co/Edge0/Edge0-8B-A1B-preview) — を Hugging Face と ModelScope で同時公開。 +

2026年11月13日 · 145B と 120B モデル · NVIDIA GPU 1枚で動く潜在空間 MoE。Q3_K と NVFP4 を提供。

+ +

2026年11月4日 · 統合推論エンジン · GGML ベースの共通 C++ API、ローカルサーバー、チャットのサンプル。

+ +

2026年9月30日 · 4プラットフォームのエンジン · iOS、macOS、Android、Windows 対応。pre-edge0-infer に保存。

+ +
+過去のニュース + +

2026年9月16日 · 35B 技術報告書 · 学習済みルーティング予測で、SSD から 35B MoE を実行。

+ +

2026年9月8日 · 初のオープンソース公開 · edge0 と 35B / 8B プレビューモデルを Hugging Face と ModelScope で公開。

+ +
+リリースノート全文 + +- **[2026-11-13]** **`edge0-145b`** と **`edge0-120b`** を公開しました。Qwen3.8-Flash-Next をベースとする潜在空間 MoE モデルで、Linux または Windows 上の NVIDIA GPU 1枚で動作します。[edge0-strata](edge0-strata/EDGE0.md) を使用し、`edge0-infer serve` と `edge0-infer chat` がこのエンジンを起動します。詳細は[モデルページ](docs/models/edge0-145b.md)をご覧ください。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]** **統合推論エンジン [`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 の4プラットフォーム向け 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** を初めてオープンソースで公開し、2つのモデル規模、[`Edge0-35B-A3B-preview`](https://huggingface.co/Edge0/Edge0-35B-A3B-preview) と [`Edge0-8B-A1B-preview`](https://huggingface.co/Edge0/Edge0-8B-A1B-preview) を Hugging Face と ModelScope で公開しました。 + +
+ +
+ + + +
+

以前のリリース

+ +→ [35B / 8B リリースガイド](docs/legacy-models_ja.md) — モデルのダウンロード、アーキテクチャ、ベンチマーク、対応プラットフォーム、セットアップ手順。 + +
+ + ## 概要 -**edge0** はオープンソースのストリーミング MoE 推論フレームワークです。本番で実証済みのレシピ — **SSD expert offload + Recover-LoRA + prerouter ルーティング予測** — を拡張可能なフレームワークへと一般化し、コンシューマーハードウェアで大規模スパース MoE モデルを実行します。ピークメモリは、パラメータ数ではなく*アクティブ*なエキスパート集合によって上限が決まります。 +

Edge0 は、コンシューマー向けハードウェアで大規模なスパースモデルを実行するための、オープンソースのストリーミング MoE 推論フレームワークです。

+ +コマンドライン、ローカル API サーバー、Edge0 Chat アプリから利用できます。 -### コア機構 +最新リリースでは、145B と 120B の潜在空間 MoE モデルを NVIDIA GPU 1枚で実行できます。 -- **SSD expert offload**: エキスパートの重みは必要に応じてストレージからストリーミングされます。ピークメモリはパラメータ数ではなく、アクティブな集合によって上限が決まります。 -- **Prerouter**: 訓練済みヘッドがエキスパートルーティングを 1 ステップ先に予測するため、エキスパートのロードがフォワードパスを停滞させるのではなくオーバーラップします — デコードスループットは**最大 +59%**。ストレージレイテンシ、モデルサイズ、ルーティング幅 *K* が増すほど効果は大きくなります。 -- **Recover-LoRA**: int4 のベースは凍結され、FP 教師からの蒸留によって LoRA アダプタが訓練されることで、4-bit 時の量子化損失の大部分を回復します([品質](#品質)を参照)。アダプタはベースとは別に保存され、個別にオン/オフできます。 +両モデルともネイティブ4ビット学習を採用し、ローカルのエージェント処理向けに Q3_K と NVFP4 を提供します。 -### プラットフォーム +[`edge0-infer`](edge0-infer/README.md) は共通の `serve` と `chat` コマンドを提供し、モデルフォルダーに基づいてエンジンを選択します。最新モデルは Strata のフォークである [edge0-strata](edge0-strata/EDGE0.md)、以前の 35B リリースは [GGML ベースのネイティブエンジン](docs/legacy-models_ja.md#native-engine-design)で動作します。 -[`edge0-infer`](edge0-infer/README_ja.md) は実行するプログラム(CLI、OpenAI/Anthropic 互換のローカルサーバー、チャットアプリ)で、どのモデルも同じコマンドで使えます。各モデルはそれぞれ専用のエンジンで動作し、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` は [Benchmarking](edge0-infer/docs/benchmarking.md#reference-figures)、`edge0-145b` と `edge0-120b` は[モデルページ](docs/models/edge0-145b.md)を参照してください。ネイティブエンジンでは、同じデバイス上で prefill と decode に異なるバックエンドを使えます(例: Metal で prefill、CPU で decode)。デスクトップ(macOS、Windows)、Android、iOS 向けのチャットアプリのサンプルは [`edge0-infer/examples/`](edge0-infer/examples/README.md#chat-applications) にあります。 +対応範囲はモデルとエンジンによって異なります。 -### モデル +| プラットフォーム | `edge0-145b`, `edge0-120b` (edge0-strata) | `edge0-35b`(ネイティブエンジン) | +| --- | --- | --- | +| **Linux** | NVIDIA GPU (CUDA 13) | CPU | +| **Windows** | NVIDIA GPU (CUDA 13) | CPU, Vulkan | +| **macOS** (Apple Silicon) | — | Metal, CPU | +| **iOS** | — | Metal | +| **Android** | — | CPU | -フレームワークには 2 つのモデルティア(`edge0-35b` と `edge0-8b`)が付属します。各ティアはエンドツーエンドのリリースであり、公開されるチェックポイント、訓練済み LoRA アダプタ、訓練済み prerouter ヘッドが 1 つの単位として機能します。 +最新リリースには [145B / 120B のセットアップ手順](#getting-started)をご利用ください。[以前のリリースのガイド](docs/legacy-models_ja.md#platforms)ではネイティブバックエンド、各プラットフォームのビルド、チャットのサンプルを説明しています。8B チェックポイントは公開済みで、ネイティブエンジンへの対応は計画中です。 -| ティア | 公開チェックポイント | 推論プロファイル | エンジン | + + +## モデル + +

145B / 120B は現在の潜在空間 MoE シリーズです。Qwen3.8-Flash-Next をベースに、ネイティブ4ビット学習を採用しています。

+ +NVIDIA GPU と CUDA 13 を備えた Linux または Windows で、`edge0-infer serve` と `edge0-infer chat` を通じて edge0-strata 上で実行します。 + +**145B Q3_K · RTX 5090 D 24 GB:** エージェントデコード 121.2 tok/s · 16K プリフィル 3554.9 tok/s。 + +| モデル規模 | 公開チェックポイント | 推論構成 | エンジン | |---|---|---|---| -| `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 層、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-bit、24 層、128 エキスパート、prerouter K=8 | ネイティブエンジン(予定) | -| [`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 または NVFP4 latent エキスパート(1792)、48 層、512 エキスパート、K=10 | edge0-strata ✅(Linux または 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 または NVFP4 latent エキスパート(1280)、48 層、512 エキスパート、K=10 | edge0-strata ✅(Linux または Windows、NVIDIA GPU) | +| [`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 または NVFP4 の潜在空間エキスパート(1792)、48層、512エキスパート、K=10 | edge0-strata ✅(Linux または 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 または NVFP4 の潜在空間エキスパート(1280)、48層、512エキスパート、K=10 | edge0-strata ✅(Linux または Windows、NVIDIA GPU) | + + -公開済みの 2 つのチェックポイントはいずれもオープンのスパース MoE ベースモデル(それぞれ Qwen3.6-35B-A3B と Ling 3.0 bailing hybrid)上に構築されており、本フレームワークのために実施された LoRA と prerouter の訓練成果物を同梱しています。edge0-infer は付属のアセットツールで公開チェックポイントをダウンロードし、エンジン用のモデルアセットに変換します([はじめに](#はじめに)を参照)。 -`edge0-145b` と `edge0-120b` は単一の NVIDIA GPU 向けの latent-MoE です。edge0-strata 上で動作し、`edge0-infer serve` と `edge0-infer chat` がそれを起動します([edge0-145b と edge0-120b](docs/models/edge0-145b.md) を参照)。 +
+

モデル概要 · 145B Q3_K

-### 設計 +Q3_K · RTX 5090 D 24 GB。プリフィルは 16K token の入力で測定しています。評価スコアはモデル単位の結果です。 -- **GGML ベース、全プラットフォームで同じコード**: ネイティブライブラリは、固定バージョンを無改変で同梱した GGML のみに依存し、ビルド時に何もダウンロードしません。 -- **1 つのネイティブ API**: アプリケーションは CMake ターゲット `edge0::edge0` にリンクし、`include/edge0/` のヘッダーをインクルードするだけで、プロセス内でエンジンを使えます。リファレンス CLI とローカルサーバーは、ネイティブ API と同じ設定とデフォルト値を使います。 -- **エキスパートのオンデマンド読み込み**: ルーティングされるエキスパートは、ストレージから必要に応じて層ごとに固定数のエキスパートスロットへ読み込まれるため、デバイスのメモリ予算より大きなモデルでも全体を読み込まずに実行できます。 -- **2 つのルーティングモード**: `predicted`(デフォルト)は prerouter を使い、現在のトークンを計算している間に次のトークンのエキスパートをバックグラウンドで準備します。`actual` はモデル本来の計算で、比較用です。 -- **マルチターンの再利用**: マルチターン会話では通常、各ターンの新しいメッセージだけを計算し、それ以前の計算結果はそのまま再利用します。 +Edge0-145B Q3_K:アーキテクチャ、性能評価、エージェントデコード 121.2 tok/s、プリフィル 3554.9 tok/s、形式別の重み容量 -詳細は [edge0-infer のアーキテクチャ](edge0-infer/docs/architecture.md) を参照してください。 +
-### 品質 + -すべてのベンチマークは、edge0 モデル(int4 + 訓練済みアダプタ + prerouter ルーティング)とオリジナルの fp16 ベースモデルの両方について、同一の設定とパラメータで [OpenCompass](https://github.com/open-compass/opencompass) を使って私たち自身が実行しました。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** | +### 145B / 120B -`edge0-145b` と `edge0-120b`(**太字** = 列内の最高値。[モデルページ](docs/models/edge0-145b.md#quality)を参照): +6つのベンチマーク、6つのモデル。スコアは高いほど良好です。モデル単位の結果であり、Q3_K と NVFP4 を個別に評価したものではありません。 -| Model | deepswe 1.1 | terminal-bench 2.1 | AA-LCR | IFBench | GPQA-Diamond | HLE | +DeepSWE 1.1、Terminal-Bench 2.1、HLE、GPQA-Diamond、IFBench、AA-LCR での6モデル比較。0–100の尺度、欠損値を明示 + +[コピー可能なスコアと全モデル名](docs/models/edge0-145b.md#quality) + +
+コピー可能なスコア · 全6モデル + +太字は各列の最高スコアを示します。 + +| モデル | 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 | @@ -103,140 +154,233 @@ | 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** | -### ベンチマーク +
+ + + + + +## 速度測定 -`edge0-35b`、`predicted` ルーティング、edge0-infer で測定(各値は 3 プロセスの最小値〜最大値): + -| プラットフォーム | デバイス | 入力 | 最初のトークン | デコード速度 | ピークメモリ | -|---|---|---|---|---|---| -| macOS Metal | Apple M5、16 GiB | 3,084 トークン | 5.60–5.87 s | 24.8–24.9 tok/s | 3.43 GiB(`phys_footprint`) | -| macOS CPU | Apple M5、16 GiB | 627 トークン | 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 トークン | 8.20–8.26 s | 13.2 tok/s | 3.05 GiB(`phys_footprint`) | -| Android CPU | OnePlus PKR110、16 GB | 627 トークン | 18.4–18.8 s | 11.4–11.8 tok/s | 2.82 GiB(RSS) | -| Windows CPU | Intel Core i5-12400、32 GB | 627 トークン | 16.9–17.3 s | 7.3–8.2 tok/s | 2.86 GiB(ワーキングセット) | -| Windows Vulkan(両フェーズ、32 エキスパートスロット) | RTX 4070 SUPER、12 GB | 627 トークン | 3.75–3.76 s | 23.6–24.0 tok/s | GPU メモリ増加 5.35 GiB | +### 145B / 120B -メモリの指標はプラットフォームごとに異なり、直接比較できません。測定方法、`actual` ルーティングの数値、再現コマンドは [Benchmarking](edge0-infer/docs/benchmarking.md#reference-figures) を参照してください。 +スループットの単位はすべて tok/s です。代表値は RTX 5090 D 24 GB 上の **145B Q3_K** です。 -`edge0-145b` と `edge0-120b`、edge0-strata、NVIDIA GPU 1 枚(tok/s): +
+145B 速度表 · 全機器・全形式 -#### edge0-145b +強調表示した行は Q3_K です。表をクリックすると原寸で表示できます。 -| Machine | Build | 4K prefill | 16K prefill | Chat decode | Agent decode | -| --- | --- | ---: | ---: | ---: | ---: | +Edge0-145B の全7行の速度表:4K・16K プリフィル、チャット・エージェントデコード、測定した全機器と形式 + +
+コピー可能な 145B 速度データ + +| 機器 | 形式 | 4K プリフィル | 16K プリフィル | チャットデコード | エージェントデコード | +|---|---|---:|---:|---:|---:| | 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 測定条件 · メモリ予算の制限と常駐 + +`16 GiB VRAM + 20 GiB RAM` の行も RTX 5090 D 24 GB を使用し、cgroup で VRAM を 16 GiB、システム RAM を 20 GiB に制限したものです。別のカードではありません。常駐を有効にすると、同じカードで **Q3_K**(重み 40.81 GiB)は 23.14 GiB VRAM + 31.28 GiB RAM、**NVFP4**(47.79 GiB)は 23.25 GiB VRAM + 38.27 GiB RAM を使用します。両メモリに置かれるエキスパート集合は重複せず、二重計上していません。 + +16 GiB VRAM + 20 GiB RAM は測定時の制限であり、最小システム要件ではありません。Apple M2 Ultra の行は Metal での測定結果で、macOS 対応のリリースを告知するものではありません。 -| Machine | Build | 4K prefill | 16K prefill | Chat decode | Agent decode | -| --- | --- | ---: | ---: | ---: | ---: | +
+ +
+120B 速度表 · 全機器・全形式 + +Edge0-120B の全8行の速度表 + +
+コピー可能な 120B 速度データ + +| 機器 | 形式 | 4K プリフィル | 16K プリフィル | チャットデコード | エージェントデコード | +|---|---|---:|---:|---:|---:| | 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` の行は同じ RTX 5090 D 24 GB を cgroup で GPU メモリ 16 GiB、システムメモリ 20 GiB に制限したものです。詳細は[モデルページ](docs/models/edge0-145b.md#speed-measured-one-card)を参照してください。 +
+ +`16 GiB VRAM + 20 GiB RAM` の行も RTX 5090 D 24 GB を使用し、cgroup で VRAM を 16 GiB、システム RAM を 20 GiB に制限したものです。別のカードではありません。常駐を有効にすると、同じカードで **Q3_K**(重み 27.98 GiB)は 22.93 GiB VRAM + 18.40 GiB RAM、**NVFP4**(32.96 GiB)は 23.02 GiB VRAM + 23.40 GiB RAM を使用します。両メモリに置かれるエキスパート集合は重複せず、二重計上していません。 + +
+ + + +
+

動作デモ

+ +

2分1秒の Edge0-145B デモ動画を再生

+ +

Edge0-145B で収録 · 動画を開く ↗

+ +
+5つのデモ · チャプターガイド + +| 時間 | デモ | +| --- | --- | +| 0:00 | ローカルチャットとコーディング | +| 0:36 | 動画制作 | +| 0:58 | 3D のマンハッタン | +| 1:19 | 大聖堂のワールド制作 | +| 1:38 | PCB 設計 | + +[チャプターマーカー(VTT)](assets/edge0-release/showcase-chapters.vtt) + +
+ +
+ + + +## アーキテクチャ + +潜在空間 MoE は、注意機構をフル幅に維持しながらエキスパート入力を圧縮します。潜在幅は 145B が 1792、120B が 1280 です。両モデルとも各 token を 512 エキスパート中の10個にルーティングし、さらに共有エキスパートを1個備えています。 + +
+アーキテクチャ詳細 · 図と構成 + +Edge0-145B のアーキテクチャとエキスパートルーティング + +[完全な構成、ルーティング、両モデルの仕様](docs/models/edge0-145b.md#model-profile)。 + +
+ + + + ## はじめに -以下のコマンドはすべて `edge0-infer/` ディレクトリで実行します。CMake 3.21 以上、Ninja、C++17/C11 コンパイラ、uv、Git が必要です。35B の元の重みは約 18 GB、変換後のアセットは約 20 GB で、変換中はさらに同じくらいの空き容量が必要です。 +### 145B / 120B · edge0-strata -### 1) ビルド +各モデルフォルダー(Q3_K または NVFP4、Edge0-145B または Edge0-120B)は、コマンドラインまたは Edge0 Chat デスクトップアプリから `edge0-infer` を通じて実行します。フォルダー構成は変更しないでください。`edge0-infer` は `model.json` 内の `model_name` でモデルを識別します。 -```bash -cd edge0-infer -cmake --preset mac-metal && cmake --build --preset mac-metal -build/mac-metal/bin/edge0-infer info # 次の行が出力されるはず: model.0: edge0_35b -``` +145B と 120B には `serve` または `chat` を使用します。`run` はネイティブエンジン用です。 -Metal のないマシンでは `--preset cpu`、`build/cpu/bin/edge0-infer` を使い、以下のコマンドでは `--device cpu` を指定してください。 +
+プラットフォームと文書について -### 2) モデルの準備 +ビルド手順は Linux または Windows(x64 または ARM64)上の NVIDIA GPU と CUDA 13 を対象としています。Apple M2 Ultra の測定には Metal を使用しており、macOS 対応のリリースを示すものではありません。 -**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 "$@"; } +**1. ビルド。** リポジトリをクローンし、2つの部分をビルドします。以下の起動コマンドは `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 ``` -ダウンロードされるのは Hugging Face 上の `Edge0/Edge0-35B-A3B-preview` で、固定されたリビジョンとダイジェストで検証されます。 +- エンジン **edge0-strata**:[edge0-strata/EDGE0.md](edge0-strata/EDGE0.md) の「Build (Linux, NVIDIA)」または「Build (Windows, NVIDIA)」を参照してください。 +- **edge0-infer**:[edge0-infer/docs/getting-started.md](edge0-infer/docs/getting-started.md) の「Build」(Linux)または「Windows」を参照してください。 -**edge0-145b と edge0-120b(edge0-strata)**:[`edge0-strata/EDGE0.md`](edge0-strata/EDGE0.md) に従って edge0-strata をビルドし、公開されたモデルフォルダを使います([edge0-145b と edge0-120b](docs/models/edge0-145b.md) を参照)。 +**2. コマンドラインから実行。** `Edge0-145B-q3k` など、単一のモデルフォルダーを指定します。複数モデルを格納した親フォルダーではありません。Windows のプログラムは `build\windows\bin\edge0-infer.exe` です。 -### 3) 実行 +```bash +build/cpu/bin/edge0-infer serve --model /path/to/Edge0-145B-q3k +``` + +重みのロード後に `Listening: http://127.0.0.1:8000 model=` と表示されます。`` は `edge0_145b` です。その後、OpenAI および Anthropic 互換エンドポイントを提供します。 ```bash -# 単発のプロンプト -build/mac-metal/bin/edge0-infer run --model "$MOE_ASSETS_35B" --device metal --user "一文で自己紹介してください。" -# マルチターンチャット -build/mac-metal/bin/edge0-infer chat --model "$MOE_ASSETS_35B" --device metal -# サーバー起動(OpenAI/Anthropic 互換、デフォルト 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}' ``` -edge0-145b と edge0-120b でも、`chat` と `serve` は同じく `--model <モデルフォルダ>` で使います。`run` はネイティブエンジン専用です。 +`edge0-infer chat --model /path/to/Edge0-145B-q3k` は対話セッションを起動します。その他のオプションは [edge0-infer/docs/edge0-145b.md](edge0-infer/docs/edge0-145b.md) を参照してください。 + +
+ +
+デスクトップアプリ · Windows -Android、Windows、iOS 向けのビルド、および自分の CMake プロジェクトからエンジンを使う方法は [Getting started](edge0-infer/docs/getting-started.md) を参照してください。 +⬇️ **ダウンロード:** **[GitHub Releases](https://github.com/Edge0-AI/Edge0/releases)** + +Windows で **Edge0 Chat** を開き、`Edge0-145B-q3k` などのモデルフォルダーを選ぶと、ローカルで実行できます。ソースからアプリをビルドする場合は [Edge0 Chat](edge0-infer/examples/desktop/README.md) ガイドを参照してください。 + +
+ + ## ドキュメント -**モデル** +**最新リリース · 145B / 120B** -- [MoE のルーティングとエキスパート](docs/moe.md) / [prerouter](docs/prerouter.md) -- [edge0-35b](docs/models/edge0-35b.md) / [edge0-8b](docs/models/edge0-8b.md) / [edge0-145b と edge0-120b](docs/models/edge0-145b.md) -- 技術レポート: [The Other Half of the Memory Wall](https://arxiv.org/abs/2609.18063)([PDF](paper/main.pdf)) +- [モデル、測定結果、アーキテクチャ](docs/models/edge0-145b.md) +- [edge0-strata · ビルドと起動の取り決め](edge0-strata/EDGE0.md) +- edge0-infer モデルガイド:[145B](edge0-infer/docs/edge0-145b.md) / [120B](edge0-infer/docs/edge0-120b.md) + +**フレームワーク** -**edge0-infer** +- [edge0-infer](edge0-infer/README.md) · コマンドライン、ローカルサーバー、チャットアプリ +- [ローカルサーバー](edge0-infer/docs/local-server.md) / [テスト](edge0-infer/docs/testing.md) +- [モデルアセット用ツールとモデルの追加](edge0-infer/tools/assets/README.md) -- [Getting started](edge0-infer/docs/getting-started.md): 各プラットフォームでのビルド、モデルアセット、実行、チャット、サーバー -- [Configuration](edge0-infer/docs/configuration.md) / [Native API](edge0-infer/docs/native-api.md) / [ローカルサーバー](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/tools/assets/README.md) +
+以前のリリース · モデルとネイティブエンジンの文書 -**エンジン** +- [35B / 8B リリースガイド](docs/legacy-models_ja.md) +- [MoE のルーティングとエキスパート](docs/moe.md) / [prerouter](docs/prerouter.md) +- モデルリファレンス:[edge0-35b](docs/models/edge0-35b.md) / [edge0-8b](docs/models/edge0-8b.md) +- [はじめに](edge0-infer/docs/getting-started.md):対応プラットフォームでのネイティブビルド、モデルアセット、run、chat、serve +- [設定](edge0-infer/docs/configuration.md) / [ネイティブ API](edge0-infer/docs/native-api.md) +- [アーキテクチャ](edge0-infer/docs/architecture.md) / [ネイティブエンジンの設計](edge0-infer/docs/architecture.md#native-engine) / [既知の制限](edge0-infer/docs/limitations.md) +- [ベンチマーク](edge0-infer/docs/benchmarking.md) +- 技術報告書:[The Other Half of the Memory Wall](https://arxiv.org/abs/2609.18063)([PDF](paper/main.pdf)) -- ネイティブエンジン: [Architecture](edge0-infer/docs/architecture.md#native-engine) / [Native API](edge0-infer/docs/native-api.md) -- edge0-strata: [ビルドと起動の取り決め](edge0-strata/EDGE0.md) / edge0-infer での [edge0-145b](edge0-infer/docs/edge0-145b.md) と [edge0-120b](edge0-infer/docs/edge0-120b.md) +
+ + ## ロードマップ -### 2026 年 Q4 +
+2026年第4四半期 · アーキテクチャと推論 + +**モデルとアルゴリズム** -**プラットフォーム & システム** +第4四半期は、次世代アーキテクチャの導入と、潜在空間での推論を計算量の削減だけでなく実際のレイテンシ短縮につなげることの2点に取り組みます。 -- ✅ **edge0 統合推論エンジンのオープンソース化**(2026-11-04)— [`edge0-infer`](edge0-infer/README_ja.md): 1 つのエンジンと 1 つのネイティブ API で macOS、iOS、Android、Windows をカバーします。 -- **edge0-infer での `edge0-8b` サポート**。 +- **次世代アーキテクチャ対応(Qwen3.8-Flash クラス)** — ハイブリッド線形注意(GDN + QSA)、ゲート付き多分岐残差、N-gram 埋め込み構成を edge0 で実行します。これらは SSD ストリーミングオフロードと相性がよく、O(1) 状態の注意機構は長い思考による KV-cache の問題を避け、参照専用の N-gram テーブルは必要に応じて読み込めます。目標は単一デバイスで動作し、fp16 ベースモデルとの評価差を許容範囲に収めることです。 +- **潜在空間での思考 + エキスパートの一括事前予測** — 潜在空間での推論を、演算量だけでなく*レイテンシ*の削減につなげます。中核課題は、位置ごとのルーティングを**ブロックごとに1回**へ変え、ひとつの予測でブロック内の全位置・全ラウンドをカバーし、**エキスパートのロード量を推論ループ回数から切り離す**ことです。さらに、現在のブロックの計算中に次のブロックのエキスパートをプリフェッチします。進捗は**同等の精度での思考フェーズ全体の所要時間**で評価し、tokens/s では評価しません。 -**モデル & アルゴリズム** +[以前のリリースのマイルストーンとネイティブエンジンの対応予定](docs/legacy-models_ja.md#roadmap)。 -Q4 は 2 つの前線で進めます: 次世代アーキテクチャをフレームワークに取り込むこと、そして潜在推論を単なる算術上の削減ではなく実際のレイテンシ削減に変えることです。 +
-- **次世代アーキテクチャのサポート(Qwen3.8-Flash クラス)** — ハイブリッド線形アテンション(GDN + QSA)、ゲート付きマルチブランチ残差、N-gram 埋め込みトポロジを edge0 で実行します。これらの設計は SSD ストリーミングオフロードと自然に相性が良いものです: O(1) 状態のアテンションにより長い思考が KV キャッシュの問題になるのを防ぎ、ルックアップのみの N-gram テーブルはオンデマンドでストリーミングされます。目標: そのティアが単一デバイスで動作し、ベンチマークが fp16 ベースに対して許容可能な差に収まること。 -- **潜在 thinking + バッチ化されたエキスパート事前予測** — 潜在推論を、単なる算術上の削減ではなく*レイテンシ*の削減にします。コアとなるエンジニアリング課題: エキスパートルーティングを位置ごとから**ブロックごとに 1 回**へ移行し、1 回の予測がブロック内のすべての位置とラウンドをカバーすることで、**エキスパートのロード量を推論ループの回数から切り離す**こと — さらに、現在のブロックの計算ウィンドウ内で次のブロックのエキスパートをロードするクロスブロックプリフェッチも加えます。進捗は**同一精度でのエンドツーエンドの thinking フェーズ時間**で測定します(決して tokens/s では測りません)。 -- 既存パイプラインにおける、さらなるモデルティアとアダプタのリリース。 + -## コントリビュート +## コントリビューション -コントリビューションを歓迎します — issue、PR、ベンチマークレポート、モデルポート、すべてが対象です。 +
+開発フローとチェック -ビルドとテストは [Testing](edge0-infer/docs/testing.md) を参照してください。モデルアセットが不要なチェック: +issue、PR、ベンチマーク報告、モデル移植など、さまざまな貢献を歓迎します。 + +ビルドとテストは[テスト文書](edge0-infer/docs/testing.md)で説明しています。モデルアセットなしで実行できるチェックは次のとおりです。 ```bash cd edge0-infer @@ -244,13 +388,19 @@ cmake --preset cpu && cmake --build --preset cpu ctest --preset cpu -L "L0|L1" ``` -`edge0-infer/` 配下の変更も、通常どおりこのリポジトリで issue / PR を出してください。このディレクトリは別のリポジトリで開発されており、受け入れられた変更はメンテナーがまずそちらに適用し、次回の同期でここに反映されます。詳細は [CONTRIBUTING](CONTRIBUTING.md) を参照してください。 +`edge0-infer/` の変更も通常どおりこのリポジトリに issue や PR を提出してください。このディレクトリは別のリポジトリで開発されているため、採用された変更はメンテナーが先にそちらへ適用し、次回の同期でこちらに反映されます。[CONTRIBUTING](CONTRIBUTING.md) を参照してください。 + +流れ:fork → 機能ブランチ → `main` 宛てに PR。テストの成功を維持し、新しい動作にはテストを追加してください。 -ワークフロー: fork → フィーチャーブランチ → `main` への PR。テストが通る状態を保ち、新しい動作にはテストを追加してください。 +
+ + ## 引用 -edge0 が役に立った場合は、私たちの技術レポートを引用してください: +技術報告書は、35B の SSD ストリーミングと学習済みルーティング予測を扱っています。 + +edge0 が役立った場合は、技術報告書を引用してください。 ```bibtex @article{lin2026other, @@ -264,13 +414,57 @@ edge0 が役に立った場合は、私たちの技術レポートを引用し } ``` + + ## お問い合わせ -- **Discord**: [edge0.ai/discord](https://edge0.ai/discord) — コミュニティのチャットとサポート -- **メール**: samuel@edge0.ai +- **Discord**:[edge0.ai/discord](https://edge0.ai/discord) — コミュニティでの交流とサポート +- **メール**:samuel@edge0.ai + +バグ報告と機能要望には [GitHub Issues](https://github.com/Edge0-AI/Edge0/issues) をご利用ください。 + + + +
+

ライセンス

+ + + +### フレームワークのコード + +フレームワークのコードは引き続き [Apache-2.0](LICENSE) です。同梱コンポーネントはそれぞれのライセンスと[通知](NOTICE)を保持し、Strata には [MIT ライセンス](edge0-strata/LICENSE)が適用されます。 + + + +### モデルのライセンス + +Edge0 固有のモデルへの貢献には [Edge0 Community Model License 1.0](licenses/edge0-model/LICENSE) が適用されます。対象は Edge0 が所有するか、ライセンスを付与する権限を持つ貢献に限られます。以前の有効なライセンスは変更されません。 + +適用される上流の条件に従う限り、個人利用、研究、教育、改変、非商用共有、内部利用、生成物の商用利用を認めます。非公開の改変の開示や、画面への Edge0 バッジ表示は要求しません。 + +次の場合は Edge0 の別途書面による許可が必要です。 + +- **モデルの販売と有料配布**。対象アダプター、差分、およびモデルへのアクセスが主な価値となる商用バンドルを含みます。 +- **商用モデルサービス**。料金、サブスクリプション、広告、関連スポンサー収入で運営され、推論またはファインチューニングを提供するものです。 +- **独立した商用コーディング・オフィスアシスタント**。推論をサーバーで行うか、ユーザーのデバイスで行うかは問いません。 + +定義、例外、再配布の条件はライセンス全文をご確認ください。商用ライセンス窓口:[info@edge0.ai](mailto:info@edge0.ai)。 + + + +### 上流の条件と適用範囲 + +Qwen の素材には引き続き該当する上流ライセンスが適用されます。同梱の [Qwen Community License 1.0](licenses/edge0-model/third-party/Qwen-LICENSE.txt) は原文のまま収録しています。Edge0 の許可によって、Qwen の帰属表示や別途商用許可の要件が免除されることはありません。 + +帰属表示とライセンス範囲は[モデルの NOTICE](licenses/edge0-model/NOTICE)をご覧ください。フレームワークと第三者コードのライセンスは影響を受けません。 + +
+謝辞 · モデルの系譜とエンジンの出典 + +[Qwen3.8-Flash-Next](https://huggingface.co/Qwen/Qwen3.8-Flash-Next) と [Strata](https://github.com/Niko1221/Strata) のチームに感謝します。Edge0 は Strata エンジンに潜在空間 MoE のサポートを追加しています。`edge0-strata` は Niko1221 と Strata コントリビューターによる Strata のフォークで、[MIT ライセンス](edge0-strata/LICENSE)を維持しています。 -バグと機能リクエストには、[GitHub Issues](https://github.com/Edge0-AI/Edge0/issues) をご利用ください。 +Edge0 フレームワークのコードは [Apache-2.0](LICENSE) で公開され、同梱の第三者コンポーネントは各自のライセンスを維持します([NOTICE](NOTICE) 参照)。[以前のリリース](docs/legacy-models_ja.md#models)は Qwen3.6 と Ling のモデル系譜を維持しています。 -## ライセンス +
-Apache-2.0。同梱のサードパーティコンポーネントはそれぞれのライセンスに従います([NOTICE](NOTICE) を参照)。 +
diff --git a/README_zh.md b/README_zh.md index 055c2e53..c7534ae2 100644 --- a/README_zh.md +++ b/README_zh.md @@ -1,135 +1,151 @@ -
- -edge0 - -# edge0 - -**开源流式 MoE 推理框架 —— SSD 专家 offload + Recover-LoRA + prerouter 路由预判** - -**macOS** · **iOS** · **Android** · **Linux** · **Windows** —— 一个程序,运行所有 Edge0 模型。 - -[![Hugging Face](https://img.shields.io/badge/%F0%9F%A4%97%20Hugging%20Face-Edge0--35B--A3B--preview-yellow?style=for-the-badge)](https://huggingface.co/Edge0/Edge0-35B-A3B-preview) -[![Hugging Face](https://img.shields.io/badge/%F0%9F%A4%97%20Hugging%20Face-Edge0--8B--A1B--preview-yellow?style=for-the-badge)](https://huggingface.co/Edge0/Edge0-8B-A1B-preview) -[![ModelScope](https://img.shields.io/badge/ModelScope-Edge0--35B--A3B--preview-624AFF?style=for-the-badge)](https://www.modelscope.cn/models/Edge0/Edge0-35B-A3B-preview) -[![ModelScope](https://img.shields.io/badge/ModelScope-Edge0--8B--A1B--preview-624AFF?style=for-the-badge)](https://www.modelscope.cn/models/Edge0/Edge0-8B-A1B-preview) -[![Hugging Face](https://img.shields.io/badge/%F0%9F%A4%97%20Hugging%20Face-Edge0--145B-yellow?style=for-the-badge)](https://huggingface.co/Edge0/Edge0-145B-q3k) -[![Hugging Face](https://img.shields.io/badge/%F0%9F%A4%97%20Hugging%20Face-Edge0--120B-yellow?style=for-the-badge)](https://huggingface.co/Edge0/Edge0-120B-q3k) -[![arXiv](https://img.shields.io/badge/arXiv-2609.18063-B31B1B?style=for-the-badge&logo=arxiv&logoColor=white)](https://arxiv.org/abs/2609.18063) -[![GitHub](https://img.shields.io/badge/GitHub-Edge0--AI%2FEdge0-black?style=for-the-badge&logo=github)](https://github.com/Edge0-AI/Edge0) -[![Discord](https://img.shields.io/badge/Discord-Join%20us-5865F2?style=for-the-badge&logo=discord&logoColor=white)](https://edge0.ai/discord) -[![License](https://img.shields.io/badge/License-Apache%202.0-blue?style=for-the-badge)](LICENSE) - -[English](README.md) | 中文 | [日本語](README_ja.md) | [Español](README_es.md) | [Français](README_fr.md) - -
- -## 新闻 - -- **【2026-11-13】** 发布 **`edge0-145b`** 与 **`edge0-120b`**:由 Qwen3.8-Flash-Next 派生的 latent MoE 模型,在 Linux 或 Windows 上用单张 NVIDIA GPU 运行。它们运行在 [edge0-strata](edge0-strata/EDGE0.md) 上,由 `edge0-infer serve` 与 `edge0-infer chat` 为它们启动;见[模型页](docs/models/edge0-145b.md)。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】** 发布**统一推理引擎 [`edge0-infer`](edge0-infer/README_zh.md)**: - 基于 [GGML](https://github.com/ggml-org/ggml),一个引擎、一套原生 C++ API, - 在 macOS、iOS、Android、Windows 上运行同一个模型,并附带 CLI、OpenAI 兼容 - 本地服务,以及桌面、Android、iOS 对话 App 示例。首版支持 `edge0-35b`, - `edge0-8b` 将在后续版本支持。它取代了原 Python 框架与四端各自的引擎, - 旧版代码保留在 tag - [`pre-edge0-infer`](https://github.com/Edge0-AI/Edge0/tree/pre-edge0-infer)。 -- **【2026-09-30】** 我们发布了**四端推理引擎**,适配 iOS、macOS、 - Android、Windows 平台(源码见 tag - [`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** 首次开源发布,两个模型档位 - [`Edge0-35B-A3B-preview`](https://huggingface.co/Edge0/Edge0-35B-A3B-preview) - 与 [`Edge0-8B-A1B-preview`](https://huggingface.co/Edge0/Edge0-8B-A1B-preview) - 同步登陆 Hugging Face 与 ModelScope。 - -## 关于 edge0 - -**edge0** 是一个开源的流式 MoE 推理框架:把「SSD 专家 offload + -Recover-LoRA + prerouter 路由预判」抽象成可扩展的通用框架,让大型稀疏 -MoE 模型跑在消费级硬件上——峰值内存由**激活**专家集而非参数量决定。 - -### 核心机制 - -- **SSD 专家 offload**:专家权重按需从存储流式加载,峰值内存由 - 激活集而非参数量决定; -- **prerouter**:训练头提前一步预测专家路由,专家装载与前向计算重叠 - 而非阻塞——解码吞吐**最高 +59%**,收益随存储延迟、模型规模与路由 - 宽度 *K* 增大; -- **Recover-LoRA**:冻结 int4 基模,用 FP teacher 蒸馏训练 LoRA, - 在 4bit 下恢复绝大部分量化损失(见[质量](#质量))。适配器与基模 - 分开存放,可单独开关。 - -### 平台 - -[`edge0-infer`](edge0-infer/README_zh.md) 是你运行的程序(命令行、本地 OpenAI/Anthropic 兼容服务、聊天应用),所有模型使用相同的命令。每个模型运行在为它准备的引擎上,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` 见 [Benchmarking](edge0-infer/docs/benchmarking.md#reference-figures),`edge0-145b` 与 `edge0-120b` 见[模型页](docs/models/edge0-145b.md)。在原生引擎上,prefill 与 decode 可以用同一设备上的不同后端,例如 Metal prefill + CPU decode。 -桌面(macOS、Windows)、Android、iOS 的对话 App 示例见 -[`edge0-infer/examples/`](edge0-infer/examples/README.md#chat-applications)。 - -### 模型 - -框架随附两个模型档位(`edge0-35b` 与 `edge0-8b`)。每个档位是一个端到端发布:发布的 checkpoint、 -训练好的 LoRA 适配器与训练好的 prerouter 头作为整体协同工作。 - -| 档位 | 发布 checkpoint | 推理档 | 引擎 | +

Edge0

+ +

Edge0

+ +

开源流式 MoE 推理框架

+ +
+ +

大模型,就在本机。
稀疏,源于设计。

+ +
+ +

macOS · iOS · Android · Linux · Windows
一个程序,运行所有 Edge0 模型

+ +

项目
+
+arXiv / 2609.18063 GitHub / Edge0-AI/Edge0 Discord / Join us License / Apache 2.0 Windows / Download +

+ +

最新版本
+
+Edge0 / 145B-Q3_K Edge0 / 145B-NVFP4 Edge0 / 120B-Q3_K Edge0 / 120B-NVFP4 +

+ +

此前版本
+
+Hugging Face / Edge0-35B-A3B-preview Hugging Face / Edge0-8B-A1B-preview ModelScope / Edge0-35B-A3B-preview ModelScope / Edge0-8B-A1B-preview +

+ +

English · 中文 · 日本語 · Español · Français

+ +

动态 · 关于 · 模型 · 能力评测 · 性能测试 · 快速开始

+ +
+ + + +## 动态 + +

2026年11月13日 · 145B 与 120B 模型 · 单张 NVIDIA GPU 运行的潜空间 MoE 模型,提供 Q3_K 与 NVFP4。

+ +

2026年11月4日 · 统一推理引擎 · 基于 GGML,共用 C++ API,提供本地服务与聊天示例。

+ +

2026年9月30日 · 四个平台的推理引擎 · iOS、macOS、Android 与 Windows 引擎;已归档至 pre-edge0-infer。

+ +
+更多动态 + +

2026年9月16日 · 35B 技术报告 · 通过训练路由预测,从 SSD 运行 35B MoE 模型。

+ +

2026年9月8日 · 首次开源发布 · edge0 框架及 35B / 8B 预览模型,现已发布于 Hugging Face 与 ModelScope。

+ +
+完整发布说明 + +- **[2026-11-13]** 我们发布了 **`edge0-145b`** 和 **`edge0-120b`**:基于 Qwen3.8-Flash-Next 的潜空间混合专家模型,可在 Linux 或 Windows 上使用单张 NVIDIA GPU 运行。模型由 [edge0-strata](edge0-strata/EDGE0.md) 驱动,`edge0-infer serve` 和 `edge0-infer chat` 会为其启动该引擎;详见[模型页面](docs/models/edge0-145b.md)。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]** 我们发布了**统一推理引擎 [`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)。 + +
+ +
+ + + +
+

此前版本

+ +→ [35B / 8B 版本指南](docs/legacy-models_zh.md) — 模型下载、架构、评测、支持平台与安装说明。 + +
+ + + +## 关于 + +

Edge0 是一个开源流式 MoE 推理框架,用于在消费级硬件上运行大型稀疏模型。

+ +可通过命令行、本地 API 服务或 Edge0 Chat 应用使用。 + +最新版本让 145B 和 120B 潜空间 MoE 模型能够在单张 NVIDIA GPU 上运行。 + +两款模型均采用原生 4 位训练,提供 Q3_K 和 NVFP4 格式,面向本地 agent 任务。 + +[`edge0-infer`](edge0-infer/README.md) 提供统一的 `serve` 和 `chat` 命令,并根据模型文件夹选择引擎。最新模型运行于 Strata 的分支 [edge0-strata](edge0-strata/EDGE0.md);此前的 35B 版本使用[基于 GGML 的原生引擎](docs/legacy-models_zh.md#native-engine-design)。 + + + +### 支持平台 + +平台支持取决于模型及其引擎。 + +| 平台 | `edge0-145b`, `edge0-120b` (edge0-strata) | `edge0-35b`(原生引擎) | +| --- | --- | --- | +| **Linux** | NVIDIA GPU (CUDA 13) | CPU | +| **Windows** | NVIDIA GPU (CUDA 13) | CPU, Vulkan | +| **macOS** (Apple Silicon) | — | Metal, CPU | +| **iOS** | — | Metal | +| **Android** | — | CPU | + +最新版本请参阅 [145B / 120B 安装说明](#getting-started)。[此前版本指南](docs/legacy-models_zh.md#platforms)涵盖原生后端、各平台构建和聊天示例。8B 检查点已发布,原生引擎支持仍在计划中。 + + + +## 模型 + +

145B / 120B 是当前的潜空间 MoE 系列,基于 Qwen3.8-Flash-Next,采用原生 4 位训练。

+ +通过 `edge0-infer serve` 和 `edge0-infer chat` 调用 edge0-strata,在配备 NVIDIA GPU 和 CUDA 13 的 Linux 或 Windows 系统上运行。 + +**145B Q3_K · RTX 5090 D 24 GB:** agent 解码 121.2 tok/s · 16K 预填充 3554.9 tok/s。 + +| 型号 | 已发布检查点 | 推理配置 | 引擎 | |---|---|---|---| -| `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) | 4bit,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) | 4bit,24 层,128 专家,prerouter K=8 | 原生引擎(计划中) | -| [`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 或 NVFP4 latent 专家(1792),48 层,512 专家,K=10 | edge0-strata ✅(Linux 或 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 或 NVFP4 latent 专家(1280),48 层,512 专家,K=10 | edge0-strata ✅(Linux 或 Windows,NVIDIA GPU) | - -两个已发布的 checkpoint 均基于开源稀疏 MoE 基座(分别为 Qwen3.6-35B-A3B -与 Ling 3.0 混合架构),并携带为本框架训练的 LoRA 与 prerouter 权重。 -edge0-infer 用自带的资产工具下载发布的 checkpoint,并转换成引擎的模型 -资产(见[快速开始](#快速开始))。 -`edge0-145b` 与 `edge0-120b` 是面向单块 NVIDIA GPU 的 latent-MoE;它们在 edge0-strata 上运行,由 `edge0-infer serve` 与 `edge0-infer chat` 启动(见 [edge0-145b 与 edge0-120b](docs/models/edge0-145b.md))。 - -### 设计 - -- **基于 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-145b` 与 `edge0-120b`(**粗体**为该列最高;见[模型页](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) | Q3_K 或 NVFP4 潜空间专家(1792),48 层,512 个专家,K=10 | edge0-strata ✅(Linux 或 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 或 NVFP4 潜空间专家(1280),48 层,512 个专家,K=10 | edge0-strata ✅(Linux 或 Windows,NVIDIA GPU) | + + + +
+

模型概览 · 145B Q3_K

+ +Q3_K · RTX 5090 D 24 GB。预填充使用 16K token 输入。能力分数为模型层面的评测结果。 + +Edge0-145B Q3_K:架构、能力评测、121.2 tok/s agent 解码、3554.9 tok/s 预填充,以及各格式的权重体积 + +
+ + + +## 能力评测 + +### 145B / 120B + +六项评测,六个模型。分数越高越好。分数按模型报告,并非对 Q3_K 和 NVFP4 分别进行评测。 + +六个模型在 DeepSWE 1.1、Terminal-Bench 2.1、HLE、GPQA-Diamond、IFBench 与 AA-LCR 上的对比;0–100 分,缺失值已标明 + +[可复制的分数及完整模型名称](docs/models/edge0-145b.md#quality) + +
+可复制分数 · 全部六个模型 + +粗体表示该列最高分。 + +| 模型 | 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 | @@ -138,157 +154,233 @@ edge0-infer 用自带的资产工具下载发布的 checkpoint,并转换成引 | 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** | -### 性能实测 +
+ + -`edge0-35b`、`predicted` 路由,在 edge0-infer 上实测(每项为三个进程的最小值到最大值): + -| 平台 | 设备 | 输入 | 首 token | 解码速度 | 峰值内存 | -|---|---|---|---|---|---| -| macOS Metal | Apple M5,16 GiB | 3,084 token | 5.60–5.87 s | 24.8–24.9 tok/s | 3.43 GiB(`phys_footprint`) | -| macOS CPU | Apple M5,16 GiB | 627 token | 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 token | 8.20–8.26 s | 13.2 tok/s | 3.05 GiB(`phys_footprint`) | -| Android CPU | OnePlus PKR110,16 GB | 627 token | 18.4–18.8 s | 11.4–11.8 tok/s | 2.82 GiB(RSS) | -| Windows CPU | Intel Core i5-12400,32 GB | 627 token | 16.9–17.3 s | 7.3–8.2 tok/s | 2.86 GiB(工作集) | -| Windows Vulkan(两阶段,32 专家槽) | RTX 4070 SUPER,12 GB | 627 token | 3.75–3.76 s | 23.6–24.0 tok/s | 显存增加 5.35 GiB | +## 性能测试 -各平台的内存指标不同,不能直接横向比较。测量方法、`actual` 路由的数据与 -复现命令见 [Benchmarking](edge0-infer/docs/benchmarking.md#reference-figures)。 + -`edge0-145b` 与 `edge0-120b`,运行在 edge0-strata 上,单张 NVIDIA GPU(tok/s): +### 145B / 120B -#### edge0-145b +所有吞吐量均以 tok/s 为单位。主展示数据来自 RTX 5090 D 24 GB 上的 **145B Q3_K**。 -| Machine | Build | 4K prefill | 16K prefill | Chat decode | Agent decode | -| --- | --- | ---: | ---: | ---: | ---: | +
+145B 速度表 · 全部设备与格式 + +高亮行对应 Q3_K。点击表格可查看原尺寸图片。 + +Edge0-145B 完整七行速度表:4K 与 16K 预填充、聊天与 agent 解码,涵盖全部实测设备和格式 + +
+可复制的 145B 速度数据 + +| 设备 | 格式 | 4K 预填充 | 16K 预填充 | 聊天解码 | 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 +
+ +
+ +
+145B 测量条件 · 限定预算与内存驻留 + +`16 GiB VRAM + 20 GiB RAM` 行仍使用 RTX 5090 D 24 GB,通过 cgroup 将预算限制为 16 GiB 显存和 20 GiB 系统内存,并非另一张显卡。启用驻留后,同一张显卡上 **Q3_K**(权重 40.81 GiB)占用 23.14 GiB VRAM + 31.28 GiB RAM,**NVFP4**(47.79 GiB)占用 23.25 GiB VRAM + 38.27 GiB RAM;两处存放的专家集合互不重叠,没有重复计数。 + +16 GiB VRAM + 20 GiB RAM 是测试时的预算限制,不是最低系统要求。Apple M2 Ultra 行是 Metal 后端的测量结果,不代表已发布 macOS 支持。 -| Machine | Build | 4K prefill | 16K prefill | Chat decode | Agent decode | -| --- | --- | ---: | ---: | ---: | ---: | +
+ +
+120B 速度表 · 全部设备与格式 + +Edge0-120B 完整八行速度表 + +
+可复制的 120B 速度数据 + +| 设备 | 格式 | 4K 预填充 | 16K 预填充 | 聊天解码 | 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 | -`16 GiB VRAM + 20 GiB RAM` 这几行仍是同一张 RTX 5090 D 24 GB,用 cgroup 限制为 16 GiB 显存与 20 GiB 内存。详见[模型页](docs/models/edge0-145b.md#speed-measured-one-card)。 +
+ +`16 GiB VRAM + 20 GiB RAM` 行仍使用 RTX 5090 D 24 GB,通过 cgroup 将预算限制为 16 GiB 显存和 20 GiB 系统内存,并非另一张显卡。启用驻留后,同一张显卡上 **Q3_K**(权重 27.98 GiB)占用 22.93 GiB VRAM + 18.40 GiB RAM,**NVFP4**(32.96 GiB)占用 23.02 GiB VRAM + 23.40 GiB RAM;两处存放的专家集合互不重叠,没有重复计数。 + +
+ + + +
+

实际演示

+ +

播放 2 分 1 秒的 Edge0-145B 演示视频

+ +

使用 Edge0-145B 录制 · 打开视频 ↗

+ +
+五项演示 · 章节导览 + +| 时间 | 演示内容 | +| --- | --- | +| 0:00 | 本地聊天与编程 | +| 0:36 | 视频制作 | +| 0:58 | 3D 曼哈顿 | +| 1:19 | 大教堂场景搭建 | +| 1:38 | PCB 设计 | + +[章节标记(VTT)](assets/edge0-release/showcase-chapters.vtt) + +
+ +
+ + + +## 架构 + +潜空间 MoE 压缩专家输入,同时保持注意力的完整宽度。145B 模型的潜空间宽度为 1792,120B 为 1280。两者均将每个 token 路由至 512 个专家中的 10 个,并另设一个共享专家。 + +
+架构详情 · 示意图与配置 + +Edge0-145B 架构与专家路由 + +[完整配置、路由与两款模型规格](docs/models/edge0-145b.md#model-profile)。 + +
+ + + + ## 快速开始 -以下命令都在 `edge0-infer/` 目录下运行。需要 CMake 3.21+、Ninja、C++17/C11 -编译器、uv 与 Git;35B 的原始权重约 18 GB、转换后的资产约 20 GB,转换时还需要 -同样大小的空闲空间。 +### 145B / 120B · edge0-strata -### 1) 构建 +每个模型文件夹(Q3_K 或 NVFP4,Edge0-145B 或 Edge0-120B)均通过 `edge0-infer` 运行,可使用命令行或 Edge0 Chat 桌面应用。请保持文件夹原有结构:`edge0-infer` 根据 `model.json` 中的 `model_name` 识别模型。 -```bash -cd edge0-infer -cmake --preset mac-metal && cmake --build --preset mac-metal -build/mac-metal/bin/edge0-infer info # 应输出一行:model.0: edge0_35b -``` +145B 和 120B 使用 `serve` 或 `chat`;`run` 属于原生引擎。 -没有 Metal 的机器用 `--preset cpu`、`build/cpu/bin/edge0-infer`,并在下面的命令里 -用 `--device cpu`。 +
+平台与文档说明 -### 2) 获取模型 +构建说明适用于 Linux 或 Windows(x64 或 ARM64)上的 NVIDIA GPU 与 CUDA 13。Apple M2 Ultra 的测量使用 Metal,不代表已发布 macOS 支持。 -**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 "$@"; } +**1. 构建。** 克隆仓库,然后构建两个部分。以下启动命令均在 `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 ``` -下载的是 Hugging Face 上的 `Edge0/Edge0-35B-A3B-preview`,按锁定的版本与 -摘要校验。 +- **edge0-strata** 引擎:参照 [edge0-strata/EDGE0.md](edge0-strata/EDGE0.md) 中的“Build (Linux, NVIDIA)”或“Build (Windows, NVIDIA)”。 +- **edge0-infer**:参照 [edge0-infer/docs/getting-started.md](edge0-infer/docs/getting-started.md) 中的“Build”(Linux)或“Windows”。 + +**2. 从命令行运行。** 传入单个模型文件夹,例如 `Edge0-145B-q3k`,而非包含多个模型的上级目录。Windows 程序路径为 `build\windows\bin\edge0-infer.exe`。 -**edge0-145b 与 edge0-120b(edge0-strata)**:按 [`edge0-strata/EDGE0.md`](edge0-strata/EDGE0.md) 构建 edge0-strata,使用发布的模型目录(见 [edge0-145b 与 edge0-120b](docs/models/edge0-145b.md))。 +```bash +build/cpu/bin/edge0-infer serve --model /path/to/Edge0-145B-q3k +``` -### 3) 运行 +权重加载完成后会输出 `Listening: http://127.0.0.1:8000 model=`,其中 `` 为 `edge0_145b`,随后提供兼容 OpenAI 和 Anthropic 的接口: ```bash -# 单轮 -build/mac-metal/bin/edge0-infer run --model "$MOE_ASSETS_35B" --device metal --user "用一句话介绍你自己。" -# 多轮对话 -build/mac-metal/bin/edge0-infer chat --model "$MOE_ASSETS_35B" --device metal -# 起服务(OpenAI/Anthropic 兼容,默认 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}' ``` -edge0-145b 与 edge0-120b 的 `chat` 和 `serve` 同样用 `--model <模型目录>`;`run` 只用于原生引擎。 +`edge0-infer chat --model /path/to/Edge0-145B-q3k` 则启动交互会话。更多选项见 [edge0-infer/docs/edge0-145b.md](edge0-infer/docs/edge0-145b.md)。 + +
+ +
+桌面应用 · Windows -Android、Windows、iOS 的构建,以及在自己的 CMake 工程中使用引擎,见 -[Getting started](edge0-infer/docs/getting-started.md)。 +⬇️ **下载:** **[GitHub Releases](https://github.com/Edge0-AI/Edge0/releases)** + +在 Windows 上打开 **Edge0 Chat**,选择模型文件夹(如 `Edge0-145B-q3k`)即可本地运行。如需从源码构建应用,请参阅 [Edge0 Chat](edge0-infer/examples/desktop/README.md) 指南。 + +
+ + ## 文档 -**模型** +**最新版本 · 145B / 120B** + +- [模型、测量结果与架构](docs/models/edge0-145b.md) +- [edge0-strata · 构建与启动约定](edge0-strata/EDGE0.md) +- edge0-infer 模型指南:[145B](edge0-infer/docs/edge0-145b.md) / [120B](edge0-infer/docs/edge0-120b.md) + +**框架** +- [edge0-infer](edge0-infer/README.md) · 命令行、本地服务与聊天应用 +- [本地服务](edge0-infer/docs/local-server.md) / [测试](edge0-infer/docs/testing.md) +- [模型资产工具与新增模型](edge0-infer/tools/assets/README.md) + +
+此前版本 · 模型与原生引擎文档 + +- [35B / 8B 版本指南](docs/legacy-models_zh.md) - [MoE 路由与专家](docs/moe.md) / [prerouter](docs/prerouter.md) -- [edge0-35b](docs/models/edge0-35b.md) / [edge0-8b](docs/models/edge0-8b.md) / [edge0-145b 与 edge0-120b](docs/models/edge0-145b.md) +- 模型参考:[edge0-35b](docs/models/edge0-35b.md) / [edge0-8b](docs/models/edge0-8b.md) +- [快速开始](edge0-infer/docs/getting-started.md):各支持平台上的原生构建、模型资产、run、chat 与 serve +- [配置](edge0-infer/docs/configuration.md) / [原生 API](edge0-infer/docs/native-api.md) +- [架构](edge0-infer/docs/architecture.md) / [原生引擎设计](edge0-infer/docs/architecture.md#native-engine) / [已知限制](edge0-infer/docs/limitations.md) +- [性能测试](edge0-infer/docs/benchmarking.md) - 技术报告:[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):各平台的构建、模型资产、运行、对话与服务 -- [Configuration](edge0-infer/docs/configuration.md) / [Native API](edge0-infer/docs/native-api.md) / [本地服务](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/tools/assets/README.md) + -**引擎** +## 路线图 -- 原生引擎:[Architecture](edge0-infer/docs/architecture.md#native-engine) / [Native API](edge0-infer/docs/native-api.md) -- edge0-strata:[构建与启动约定](edge0-strata/EDGE0.md) / 在 edge0-infer 中运行 [edge0-145b](edge0-infer/docs/edge0-145b.md) 与 [edge0-120b](edge0-infer/docs/edge0-120b.md) +
+2026 年第四季度 · 架构与推理 -## 路线图 +**模型与算法** -### 2026 Q4 +第四季度重点推进两条路线:将下一代架构接入框架,以及让潜空间推理真正降低延迟,而不只是减少计算量。 -**平台与系统** +- **下一代架构支持(Qwen3.8-Flash 类)** — 在 edge0 上运行混合线性注意力(GDN + QSA)、门控多分支残差和 N-gram 嵌入拓扑。这些设计天然适合 SSD 流式卸载:O(1) 状态的注意力避免长思考演变为 KV-cache 容量问题,只需查表的 N-gram 表可按需流式加载。目标是在单台设备上运行,并将评测成绩与 fp16 基座的差距控制在可接受范围内。 +- **潜空间思考 + 批量专家预预测** — 让潜空间推理节省的是*延迟*,而不仅是算术运算。核心工程问题是将专家路由从逐位置改为**每个块一次**,使一次预测覆盖块内所有位置和轮次,令**专家加载量与推理循环次数解耦**;同时跨块预取,在当前块的计算窗口内加载下一块的专家。进展以**相同准确率下的端到端思考阶段耗时**衡量,绝不以 tokens/s 衡量。 -- ✅ **edge0 统一推理引擎开源**(2026-11-04)—— [`edge0-infer`](edge0-infer/README_zh.md): - 一个引擎、一套原生 API,覆盖 macOS、iOS、Android、Windows。 -- **edge0-infer 支持 `edge0-8b`**。 +[此前版本里程碑与原生引擎支持计划](docs/legacy-models_zh.md#roadmap)。 -**模型与算法** +
-Q4 推进两条主线:把下一代架构引入框架,以及把潜在推理(latent -thinking)变成真正的延迟收益、而不只是算力节省。 + -- **下一代架构支持(Qwen3.8-Flash 级)** —— 在 edge0 上跑通混合线性 - 注意力(GDN + QSA)、门控多分支残差、N-gram embedding 拓扑。这些 - 设计天然契合 SSD 流式 offload:O(1) 状态的注意力层让长思考不再是 - KV cache 问题,纯查表的 N-gram 表按需流式加载。目标:该档位在单 - 设备跑通,且基准与 fp16 基座的差距在可接受范围内。 -- **潜在思考 + 批量专家预预测** —— 让潜在推理成为*延迟*收益,而不 - 只是算力收益。核心工程问题:把专家路由从 per-position 改为**每 block - 一次**,一次预测覆盖一个 block 内所有位置与所有轮次,使**专家加载量 - 与推理循环次数解耦**;配合跨 block 预取,在当前 block 的计算窗口内 - 加载下一个 block 的专家集。进展以**等准确率下的端到端思考阶段耗时** - 衡量(而非 tokens/s)。 -- 更多模型档位与适配器版本在现有管线上持续发布。 +## 参与贡献 -## 贡献 +
+开发流程与检查 -欢迎各种形式的贡献——issue、PR、性能实测报告、新模型接入都算。 +欢迎各种贡献,包括 issue、PR、评测报告和模型移植。 -构建与测试见 [Testing](edge0-infer/docs/testing.md),不需要模型资产的检查: +构建和测试方法见[测试文档](edge0-infer/docs/testing.md);以下检查无需模型资产: ```bash cd edge0-infer @@ -296,14 +388,18 @@ cmake --preset cpu && cmake --build --preset cpu ctest --preset cpu -L "L0|L1" ``` -`edge0-infer/` 下的改动请照常在本仓库提 issue / PR;该目录在独立仓库开发, -接受的改动由维护者先应用到那边,随下次同步回到这里。详见 -[CONTRIBUTING](CONTRIBUTING.md)。 +修改 `edge0-infer/` 时,仍在本仓库提交 issue 和 PR;该目录在独立仓库中开发,获接受的修改由维护者先应用到该仓库,再随下一次同步进入此处。详见 [CONTRIBUTING](CONTRIBUTING.md)。 + +流程:fork → 功能分支 → 向 `main` 提交 PR。请确保测试通过,并为新行为添加测试。 + +
-流程:fork → 功能分支 → 向 `main` 发 PR。请保持测试通过,并为新行为补测试。 + ## 引用 +技术报告介绍 35B 的 SSD 流式推理与经过训练的路由预测。 + 如果 edge0 对你有帮助,请引用我们的技术报告: ```bibtex @@ -318,14 +414,57 @@ ctest --preset cpu -L "L0|L1" } ``` + + ## 联系我们 - **Discord**:[edge0.ai/discord](https://edge0.ai/discord) — 社区交流与支持 - **邮箱**:samuel@edge0.ai -Bug 与功能建议请直接提 -[GitHub Issues](https://github.com/Edge0-AI/Edge0/issues)。 +报告问题或提出功能需求,请使用 [GitHub Issues](https://github.com/Edge0-AI/Edge0/issues)。 + + + +
+

许可

+ + + +### 框架代码 + +框架代码继续采用 [Apache-2.0](LICENSE)。随附组件保留各自的许可与[声明](NOTICE),包括 Strata 的 [MIT 许可](edge0-strata/LICENSE)。 + + + +### 模型许可 + +Edge0 专属的模型贡献采用 [Edge0 Community Model License 1.0](licenses/edge0-model/LICENSE),仅适用于 Edge0 拥有或获授权许可的贡献。此前有效的许可保持不变。 + +在遵守适用上游条款的前提下,该许可允许个人使用、研究、教育、修改、非商业分享、内部使用,以及对生成结果的商业使用。它不要求公开私有修改,也不要求在界面展示 Edge0 标识。 + +以下情形需另行取得 Edge0 的书面许可: + +- **模型销售与付费分发**,包括许可覆盖的适配器、差量权重,以及主要价值在于模型访问的商业捆绑产品。 +- **商业模型服务**,通过费用、订阅、广告或相关赞助获得收入,提供推理或微调服务。 +- **独立商业编程或办公助手**,无论推理运行于服务器还是用户设备。 + +定义、例外与再分发要求请参阅完整许可。商业授权联系:[info@edge0.ai](mailto:info@edge0.ai)。 + + + +### 上游条款与范围 + +Qwen 材料继续受适用的上游许可约束。保留的 [Qwen Community License 1.0](licenses/edge0-model/third-party/Qwen-LICENSE.txt) 按原文收录;Edge0 的授权不豁免 Qwen 的署名要求或另行商业授权要求。 + +署名与许可范围见[模型 NOTICE](licenses/edge0-model/NOTICE)。框架及第三方代码的许可不受影响。 + +
+致谢 · 模型谱系与引擎来源 + +感谢 [Qwen3.8-Flash-Next](https://huggingface.co/Qwen/Qwen3.8-Flash-Next) 与 [Strata](https://github.com/Niko1221/Strata) 团队。Edge0 为 Strata 引擎增加了潜空间 MoE 支持。`edge0-strata` 是 Niko1221 与 Strata 贡献者所开发 Strata 的分支,并保留其 [MIT 许可](edge0-strata/LICENSE)。 + +Edge0 框架代码采用 [Apache-2.0](LICENSE);随附第三方组件保留各自的许可(见 [NOTICE](NOTICE))。[此前版本](docs/legacy-models_zh.md#models)保留其 Qwen3.6 与 Ling 模型谱系。 -## License +
-Apache-2.0;内置的第三方组件保留各自的许可证(详见 [NOTICE](NOTICE))。 +
diff --git a/assets/edge0-release/arch-120B.svg b/assets/edge0-release/arch-120B.svg new file mode 100644 index 00000000..a5c654f4 --- /dev/null +++ b/assets/edge0-release/arch-120B.svg @@ -0,0 +1 @@ +Edge0-120B latent sparse MoE architectureThe full model stack appears on the left, one transformer layer is expanded in the center, and parameter specifications, MTP, expert records and the legend appear on the right. active parameters per token are 8.64B.Edge0-120BLatent sparse MoE on Qwen3.8-Flash-Next · 48 layers · 512 experts · 10 routed per tokeninput tokensEmbeddingPLE (fp8)48 × transformer layerhybrid attentionfull every 4 layers + GDNsparse indexerlatent MoE← detail on the rightFinal normlm_head · 248Klogitsone layer · latent MoE detail · ℓ = 1280h∈ ℝT × 2560+QSA · GDN hybrid attentionruns at the full 2560 width+D · 2560 → ℓ · 8 groups (shared)router · top-10 / 512512 routed experts10 active + 1 shared per tokenΣU · ℓ → 2560 (shared)+→ next layerℓspecstotal 120Bactive / token 8.64B48 × 512 experts 60.4BPLE 51.2B · MTP 1.26Bcontext 256KMTP draft head 1.26Bextra head, 512 experts,trained with the model andused for speculative decodeone expertℓ → 640 → ℓ, SwiGLU1,164,800 B per recordpinned, swapped orstreamed onto the GPUlegendfull 2560 widthlatent width ℓidle expertoptional / side pathAttention, embedding and the shared D/U projections keep the full 2560 width; the 512 routed experts read and write ℓ only, which is what makes one expert a fixed-size record. \ No newline at end of file diff --git a/assets/edge0-release/arch-145B.svg b/assets/edge0-release/arch-145B.svg new file mode 100644 index 00000000..a782e9af --- /dev/null +++ b/assets/edge0-release/arch-145B.svg @@ -0,0 +1 @@ +Edge0-145B latent sparse MoE architectureThe full model stack appears on the left, one transformer layer is expanded in the center, and parameter specifications, MTP, expert records and the legend appear on the right. active parameters per token are 10.12B.Edge0-145BLatent sparse MoE on Qwen3.8-Flash-Next · 48 layers · 512 experts · 10 routed per tokeninput tokensEmbeddingPLE (fp8)48 × transformer layerhybrid attentionfull every 4 layers + GDNsparse indexerlatent MoE← detail on the rightFinal normlm_head · 248Klogitsone layer · latent MoE detail · ℓ = 1792h∈ ℝT × 2560+QSA · GDN hybrid attentionruns at the full 2560 width+D · 2560 → ℓ · 8 groups (shared)router · top-10 / 512512 routed experts10 active + 1 shared per tokenΣU · ℓ → 2560 (shared)+→ next layerℓspecstotal 145Bactive / token 10.12B48 × 512 experts 84.6BPLE 51.2B · MTP 1.26Bcontext 256KMTP draft head 1.26Bextra head, 512 experts,trained with the model andused for speculative decodeone expertℓ → 640 → ℓ, SwiGLU1,630,720 B per recordpinned, swapped orstreamed onto the GPUlegendfull 2560 widthlatent width ℓidle expertoptional / side pathAttention, embedding and the shared D/U projections keep the full 2560 width; the 512 routed experts read and write ℓ only, which is what makes one expert a fixed-size record. \ No newline at end of file diff --git a/assets/edge0-release/badge-group-divider.svg b/assets/edge0-release/badge-group-divider.svg new file mode 100644 index 00000000..09056adc --- /dev/null +++ b/assets/edge0-release/badge-group-divider.svg @@ -0,0 +1 @@ +Badge group dividerA fine pale blue rule between the group title and its badge row. \ No newline at end of file diff --git a/assets/edge0-release/badges/Edge0-120B-NVFP4-badge.svg b/assets/edge0-release/badges/Edge0-120B-NVFP4-badge.svg new file mode 100644 index 00000000..1afa9621 --- /dev/null +++ b/assets/edge0-release/badges/Edge0-120B-NVFP4-badge.svg @@ -0,0 +1,18 @@ + + + Edge0/Edge0-120B-NVFP4 — NVFP4 + Edge0/Edge0-120B-NVFP4 — NVFP4. Visible badge label: Edge0 / 120B-NVFP4. Original repository badge target: https://huggingface.co/Edge0/Edge0-120B-NVFP4. + + + + + + + + + + + + +Edge0120B-NVFP4 + diff --git a/assets/edge0-release/badges/Edge0-120B-q3k-badge.svg b/assets/edge0-release/badges/Edge0-120B-q3k-badge.svg new file mode 100644 index 00000000..999b8ce6 --- /dev/null +++ b/assets/edge0-release/badges/Edge0-120B-q3k-badge.svg @@ -0,0 +1,18 @@ + + + Edge0/Edge0-120B-q3k — Q3_K + Edge0/Edge0-120B-q3k — Q3_K. Visible badge label: Edge0 / 120B-Q3_K. Original repository badge target: https://huggingface.co/Edge0/Edge0-120B-q3k. + + + + + + + + + + + + +Edge0120B-Q3_K + diff --git a/assets/edge0-release/badges/Edge0-145B-NVFP4-badge.svg b/assets/edge0-release/badges/Edge0-145B-NVFP4-badge.svg new file mode 100644 index 00000000..245389a7 --- /dev/null +++ b/assets/edge0-release/badges/Edge0-145B-NVFP4-badge.svg @@ -0,0 +1,18 @@ + + + Edge0/Edge0-145B-NVFP4 — NVFP4 + Edge0/Edge0-145B-NVFP4 — NVFP4. Visible badge label: Edge0 / 145B-NVFP4. Original repository badge target: https://huggingface.co/Edge0/Edge0-145B-NVFP4. + + + + + + + + + + + + +Edge0145B-NVFP4 + diff --git a/assets/edge0-release/badges/Edge0-145B-q3k-badge.svg b/assets/edge0-release/badges/Edge0-145B-q3k-badge.svg new file mode 100644 index 00000000..89bbef41 --- /dev/null +++ b/assets/edge0-release/badges/Edge0-145B-q3k-badge.svg @@ -0,0 +1,18 @@ + + + Edge0/Edge0-145B-q3k — Q3_K + Edge0/Edge0-145B-q3k — Q3_K. Visible badge label: Edge0 / 145B-Q3_K. Original repository badge target: https://huggingface.co/Edge0/Edge0-145B-q3k. + + + + + + + + + + + + +Edge0145B-Q3_K + diff --git a/assets/edge0-release/badges/Edge0-35B-A3B-preview-hf-badge.svg b/assets/edge0-release/badges/Edge0-35B-A3B-preview-hf-badge.svg new file mode 100644 index 00000000..2908c252 --- /dev/null +++ b/assets/edge0-release/badges/Edge0-35B-A3B-preview-hf-badge.svg @@ -0,0 +1,18 @@ + + + Hugging Face / Edge0/Edge0-35B-A3B-preview + Hugging Face / Edge0/Edge0-35B-A3B-preview. Visible badge label: Edge0 / 35B-A3B. Original repository badge target: https://huggingface.co/Edge0/Edge0-35B-A3B-preview. + + + + + + + + + + + + +Edge035B-A3B + diff --git a/assets/edge0-release/badges/Edge0-35B-A3B-preview-modelscope-badge.svg b/assets/edge0-release/badges/Edge0-35B-A3B-preview-modelscope-badge.svg new file mode 100644 index 00000000..7622f97c --- /dev/null +++ b/assets/edge0-release/badges/Edge0-35B-A3B-preview-modelscope-badge.svg @@ -0,0 +1,18 @@ + + + ModelScope / Edge0/Edge0-35B-A3B-preview + ModelScope / Edge0/Edge0-35B-A3B-preview. Visible badge label: Edge0 / 35B-A3B. Original repository badge target: https://www.modelscope.cn/models/Edge0/Edge0-35B-A3B-preview. + + + + + + + + + + + + +Edge035B-A3B + diff --git a/assets/edge0-release/badges/Edge0-8B-A1B-preview-hf-badge.svg b/assets/edge0-release/badges/Edge0-8B-A1B-preview-hf-badge.svg new file mode 100644 index 00000000..02671b3e --- /dev/null +++ b/assets/edge0-release/badges/Edge0-8B-A1B-preview-hf-badge.svg @@ -0,0 +1,18 @@ + + + Hugging Face / Edge0/Edge0-8B-A1B-preview + Hugging Face / Edge0/Edge0-8B-A1B-preview. Visible badge label: Edge0 / 8B-A1B. Original repository badge target: https://huggingface.co/Edge0/Edge0-8B-A1B-preview. + + + + + + + + + + + + +Edge08B-A1B + diff --git a/assets/edge0-release/badges/Edge0-8B-A1B-preview-modelscope-badge.svg b/assets/edge0-release/badges/Edge0-8B-A1B-preview-modelscope-badge.svg new file mode 100644 index 00000000..1001a191 --- /dev/null +++ b/assets/edge0-release/badges/Edge0-8B-A1B-preview-modelscope-badge.svg @@ -0,0 +1,18 @@ + + + ModelScope / Edge0/Edge0-8B-A1B-preview + ModelScope / Edge0/Edge0-8B-A1B-preview. Visible badge label: Edge0 / 8B-A1B. Original repository badge target: https://www.modelscope.cn/models/Edge0/Edge0-8B-A1B-preview. + + + + + + + + + + + + +Edge08B-A1B + diff --git a/assets/edge0-release/badges/arxiv-badge.svg b/assets/edge0-release/badges/arxiv-badge.svg new file mode 100644 index 00000000..de6a6766 --- /dev/null +++ b/assets/edge0-release/badges/arxiv-badge.svg @@ -0,0 +1,18 @@ + + + arXiv / 2609.18063 + arXiv / 2609.18063. Original repository badge target: https://arxiv.org/abs/2609.18063. + + + + + + + + + + + + +arXiv2609.18063 + diff --git a/assets/edge0-release/badges/discord-badge.svg b/assets/edge0-release/badges/discord-badge.svg new file mode 100644 index 00000000..451a4bd9 --- /dev/null +++ b/assets/edge0-release/badges/discord-badge.svg @@ -0,0 +1,18 @@ + + + Discord / Join us + Discord / Join us. Original repository badge target: https://edge0.ai/discord. + + + + + + + + + + + + +DiscordJoin us + diff --git a/assets/edge0-release/badges/github-badge.svg b/assets/edge0-release/badges/github-badge.svg new file mode 100644 index 00000000..97b41960 --- /dev/null +++ b/assets/edge0-release/badges/github-badge.svg @@ -0,0 +1,21 @@ + + + GitHub / Edge0-AI/Edge0 + GitHub / Edge0-AI/Edge0. Visible badge label: GitHub / Edge0. Original repository badge target: https://github.com/Edge0-AI/Edge0. + + + + + + + + + + + + + +GitHubEdge0 + diff --git a/assets/edge0-release/badges/license-badge.svg b/assets/edge0-release/badges/license-badge.svg new file mode 100644 index 00000000..f4de09cc --- /dev/null +++ b/assets/edge0-release/badges/license-badge.svg @@ -0,0 +1,18 @@ + + + License / Apache 2.0 + License / Apache 2.0. Original repository badge target: LICENSE. + + + + + + + + + + + + +LicenseApache 2.0 + diff --git a/assets/edge0-release/badges/windows-releases-badge.svg b/assets/edge0-release/badges/windows-releases-badge.svg new file mode 100644 index 00000000..641a9154 --- /dev/null +++ b/assets/edge0-release/badges/windows-releases-badge.svg @@ -0,0 +1,21 @@ + + + Windows | Download + Windows | Download. Visible badge label: Windows / Download. Original repository badge target: https://github.com/Edge0-AI/Edge0/releases. + + + + + + + + + + + + + +WindowsDownload + diff --git a/assets/edge0-release/hero.png b/assets/edge0-release/hero.png new file mode 100644 index 00000000..dcb2b708 Binary files /dev/null and b/assets/edge0-release/hero.png differ diff --git a/assets/edge0-release/legacy-quality.svg b/assets/edge0-release/legacy-quality.svg new file mode 100644 index 00000000..277a87ec --- /dev/null +++ b/assets/edge0-release/legacy-quality.svg @@ -0,0 +1,2 @@ + +Earlier Edge0 models · QualitySource Quality compares int4 Edge0 pipelines against fp16 baselines with OpenCompass; Average is retained as reported. Benchmark: AIME 2026, edge0-35b (int4): 86.6, Qwen3.6-35B-A3B (fp16): 92.7, edge0-8b (int4): 63.3, Ling 3.0 tiny (fp16): 73.3; Benchmark: HumanEval, edge0-35b (int4): 90.9, Qwen3.6-35B-A3B (fp16): 95.1, edge0-8b (int4): 91.5, Ling 3.0 tiny (fp16): 92.7; Benchmark: GPQA-Diamond, edge0-35b (int4): 79.8, Qwen3.6-35B-A3B (fp16): 81.8, edge0-8b (int4): 70.7, Ling 3.0 tiny (fp16): 71.2; Benchmark: MMLU-Pro, edge0-35b (int4): 81.0, Qwen3.6-35B-A3B (fp16): 84.6, edge0-8b (int4): 70.1, Ling 3.0 tiny (fp16): 65.8; Benchmark: IFBench, edge0-35b (int4): 57.9, Qwen3.6-35B-A3B (fp16): 61.7, edge0-8b (int4): 53.9, Ling 3.0 tiny (fp16): 60.6; Benchmark: Average, edge0-35b (int4): 79.2, Qwen3.6-35B-A3B (fp16): 83.2, edge0-8b (int4): 69.9, Ling 3.0 tiny (fp16): 72.7Benchmarkedge0-35b (int4)Qwen3.6-35B-A3B (fp16)edge0-8b (int4)Ling 3.0 tiny (fp16)AIME 202686.692.763.373.3HumanEval90.995.191.592.7GPQA-Diamond79.881.870.771.2MMLU-Pro81.084.670.165.8IFBench57.961.753.960.6Average79.283.269.972.7 diff --git a/assets/edge0-release/legacy-speed.svg b/assets/edge0-release/legacy-speed.svg new file mode 100644 index 00000000..7cb17d39 --- /dev/null +++ b/assets/edge0-release/legacy-speed.svg @@ -0,0 +1,2 @@ + +Edge0-35B · Platform benchmarksSource Benchmark uses predicted routing, min–max of three processes; memory metrics differ by platform. Platform: macOS Metal, Device: Apple M5, 16 GiB, Prompt: 3,084 tokens, First token: 5.60–5.87 s, Decode speed: 24.8–24.9 tok/s, Memory peak: 3.43 GiB (phys_footprint); Platform: macOS CPU, Device: Apple M5, 16 GiB, Prompt: 627 tokens, First token: 11.5–11.7 s, Decode speed: 21.7–22.3 tok/s, Memory peak: 2.96 GiB (phys_footprint); Platform: iOS Metal, Device: iPhone 17 Pro Max, 12 GB, Prompt: 627 tokens, First token: 8.20–8.26 s, Decode speed: 13.2 tok/s, Memory peak: 3.05 GiB (phys_footprint); Platform: Android CPU, Device: OnePlus PKR110, 16 GB, Prompt: 627 tokens, First token: 18.4–18.8 s, Decode speed: 11.4–11.8 tok/s, Memory peak: 2.82 GiB (RSS); Platform: Windows CPU, Device: Intel Core i5-12400, 32 GB, Prompt: 627 tokens, First token: 16.9–17.3 s, Decode speed: 7.3–8.2 tok/s, Memory peak: 2.86 GiB (working set); Platform: Windows Vulkan (both phases, 32 expert slots), Device: RTX 4070 SUPER, 12 GB, Prompt: 627 tokens, First token: 3.75–3.76 s, Decode speed: 23.6–24.0 tok/s, Memory peak: GPU memory increase 5.35 GiBPlatformDevicePromptFirst tokenDecode speedMemory peakmacOS MetalApple M5, 16 GiB3,084 tokens5.60–5.87 s24.8–24.9 tok/s3.43 GiB (phys_footprint)macOS CPUApple M5, 16 GiB627 tokens11.5–11.7 s21.7–22.3 tok/s2.96 GiB (phys_footprint)iOS MetaliPhone 17 Pro Max, 12 GB627 tokens8.20–8.26 s13.2 tok/s3.05 GiB (phys_footprint)Android CPUOnePlus PKR110, 16 GB627 tokens18.4–18.8 s11.4–11.8 tok/s2.82 GiB (RSS)Windows CPUIntel Core i5-12400, 32 GB627 tokens16.9–17.3 s7.3–8.2 tok/s2.86 GiB (working set)Windows Vulkan (both phases, 32 expert slots)RTX 4070 SUPER, 12 GB627 tokens3.75–3.76 s23.6–24.0 tok/sGPU memory increase 5.35 GiB diff --git a/assets/edge0-release/model-overview-145B-q3k.svg b/assets/edge0-release/model-overview-145B-q3k.svg new file mode 100644 index 00000000..6f54c0e2 --- /dev/null +++ b/assets/edge0-release/model-overview-145B-q3k.svg @@ -0,0 +1,2 @@ + +Edge0-145B · Q3_K model overviewEdge0-145B latent mixture of experts. 10.12 billion active parameters per token. Q3_K on RTX 5090 D 24 GB: 121.2 tok/s agent decode, 3554.9 tok/s 16K prefill. Model-level quality scores and both weight formats are shown; quality is not a separate evaluation of each format.EDGE0NATIVE EDGE SERIESMODEL 145BLATENT MoE · 512 EXPERTSLAYERSLATENT WIDTH ℓEXPERTSCONTEXTTRAINING481792512 ×10256K4-bit nativePARAMETERS · Q3_K145B121.2 tok/s agent decode · 3554.9 tok/s prefillmeasured on RTX 5090 D 24 GB · single cardWEIGHTS 40.81 / 47.79 GiBPREFILL 3554.9 tok/sCAPABILITYMEASUREDterminal-bench 2.186.5deepswe 1.164.6GPQA-Diamond90.4AA-LCR79.3weights on disk40.81 GiB3554.9PREFILL TOK/S · 16K121.2AGENT DECODE TOK/S40.81Q3_K ON DISK · GiB47.79NVFP4 ON DISK · GiB diff --git a/assets/edge0-release/news/es/news-2026-09-08.svg b/assets/edge0-release/news/es/news-2026-09-08.svg new file mode 100644 index 00000000..dc4cac95 --- /dev/null +++ b/assets/edge0-release/news/es/news-2026-09-08.svg @@ -0,0 +1,8 @@ + +Primera publicación abierta8 septiembre 2026 · Primera publicación abierta · El framework edge0 y los modelos 35B / 8B preliminares en Hugging Face y ModelScope. + + + +8 septiembre 2026 +Primera publicación abierta +El framework edge0 y los modelos 35B / 8B preliminares en Hugging Face y ModelScope. diff --git a/assets/edge0-release/news/es/news-2026-09-16.svg b/assets/edge0-release/news/es/news-2026-09-16.svg new file mode 100644 index 00000000..97fc7044 --- /dev/null +++ b/assets/edge0-release/news/es/news-2026-09-16.svg @@ -0,0 +1,8 @@ + +Informe técnico de 35B16 septiembre 2026 · Informe técnico de 35B · Ejecución de MoE de 35B desde SSD con predicción de enrutamiento entrenada. + + + +16 septiembre 2026 +Informe técnico de 35B +Ejecución de MoE de 35B desde SSD con predicción de enrutamiento entrenada. diff --git a/assets/edge0-release/news/es/news-2026-09-30.svg b/assets/edge0-release/news/es/news-2026-09-30.svg new file mode 100644 index 00000000..6f46345d --- /dev/null +++ b/assets/edge0-release/news/es/news-2026-09-30.svg @@ -0,0 +1,8 @@ + +Motores para cuatro plataformas30 septiembre 2026 · Motores para cuatro plataformas · Motores para iOS, macOS, Android y Windows; archivados en pre-edge0-infer. + + + +30 septiembre 2026 +Motores para cuatro plataformas +Motores para iOS, macOS, Android y Windows; archivados en pre-edge0-infer. diff --git a/assets/edge0-release/news/es/news-2026-11-04.svg b/assets/edge0-release/news/es/news-2026-11-04.svg new file mode 100644 index 00000000..6c15d078 --- /dev/null +++ b/assets/edge0-release/news/es/news-2026-11-04.svg @@ -0,0 +1,8 @@ + +Motor de inferencia unificado4 noviembre 2026 · Motor de inferencia unificado · Un motor GGML con API común de C++, servidor local y ejemplos de chat. + + + +4 noviembre 2026 +Motor de inferencia unificado +Un motor GGML con API común de C++, servidor local y ejemplos de chat. diff --git a/assets/edge0-release/news/es/news-2026-11-13.svg b/assets/edge0-release/news/es/news-2026-11-13.svg new file mode 100644 index 00000000..f3461d0c --- /dev/null +++ b/assets/edge0-release/news/es/news-2026-11-13.svg @@ -0,0 +1,8 @@ + +Modelos de 145B y 120B13 noviembre 2026 · Modelos de 145B y 120B · MoE latentes para una sola GPU NVIDIA, en Q3_K y NVFP4. + + + +13 noviembre 2026 +Modelos de 145B y 120B +MoE latentes para una sola GPU NVIDIA, en Q3_K y NVFP4. diff --git a/assets/edge0-release/news/fr/news-2026-09-08.svg b/assets/edge0-release/news/fr/news-2026-09-08.svg new file mode 100644 index 00000000..4153c54a --- /dev/null +++ b/assets/edge0-release/news/fr/news-2026-09-08.svg @@ -0,0 +1,8 @@ + +Première publication open source8 septembre 2026 · Première publication open source · Le framework edge0 et les modèles 35B / 8B en aperçu sur Hugging Face et ModelScope. + + + +8 septembre 2026 +Première publication open source +Le framework edge0 et les modèles 35B / 8B en aperçu sur Hugging Face et ModelScope. diff --git a/assets/edge0-release/news/fr/news-2026-09-16.svg b/assets/edge0-release/news/fr/news-2026-09-16.svg new file mode 100644 index 00000000..a746c864 --- /dev/null +++ b/assets/edge0-release/news/fr/news-2026-09-16.svg @@ -0,0 +1,8 @@ + +Rapport technique 35B16 septembre 2026 · Rapport technique 35B · Exécuter des MoE 35B depuis un SSD grâce à une prédiction de routage apprise. + + + +16 septembre 2026 +Rapport technique 35B +Exécuter des MoE 35B depuis un SSD grâce à une prédiction de routage apprise. diff --git a/assets/edge0-release/news/fr/news-2026-09-30.svg b/assets/edge0-release/news/fr/news-2026-09-30.svg new file mode 100644 index 00000000..f0fcfcdd --- /dev/null +++ b/assets/edge0-release/news/fr/news-2026-09-30.svg @@ -0,0 +1,8 @@ + +Moteurs pour quatre plateformes30 septembre 2026 · Moteurs pour quatre plateformes · Moteurs iOS, macOS, Android et Windows, archivés sous pre-edge0-infer. + + + +30 septembre 2026 +Moteurs pour quatre plateformes +Moteurs iOS, macOS, Android et Windows, archivés sous pre-edge0-infer. diff --git a/assets/edge0-release/news/fr/news-2026-11-04.svg b/assets/edge0-release/news/fr/news-2026-11-04.svg new file mode 100644 index 00000000..8d479166 --- /dev/null +++ b/assets/edge0-release/news/fr/news-2026-11-04.svg @@ -0,0 +1,8 @@ + +Moteur d’inférence unifié4 novembre 2026 · Moteur d’inférence unifié · Un moteur GGML avec API C++ commune, serveur local et exemples de chat. + + + +4 novembre 2026 +Moteur d’inférence unifié +Un moteur GGML avec API C++ commune, serveur local et exemples de chat. diff --git a/assets/edge0-release/news/fr/news-2026-11-13.svg b/assets/edge0-release/news/fr/news-2026-11-13.svg new file mode 100644 index 00000000..68bfaa7b --- /dev/null +++ b/assets/edge0-release/news/fr/news-2026-11-13.svg @@ -0,0 +1,8 @@ + +Modèles 145B et 120B13 novembre 2026 · Modèles 145B et 120B · Des MoE latents pour un seul GPU NVIDIA, en Q3_K et NVFP4. + + + +13 novembre 2026 +Modèles 145B et 120B +Des MoE latents pour un seul GPU NVIDIA, en Q3_K et NVFP4. diff --git a/assets/edge0-release/news/ja/news-2026-09-08.svg b/assets/edge0-release/news/ja/news-2026-09-08.svg new file mode 100644 index 00000000..6a31ed55 --- /dev/null +++ b/assets/edge0-release/news/ja/news-2026-09-08.svg @@ -0,0 +1,8 @@ + +初のオープンソース公開2026年9月8日 · 初のオープンソース公開 · edge0 と 35B / 8B プレビューモデルを Hugging Face と ModelScope で公開。 + + + +2026年9月8日 +初のオープンソース公開 +edge0 と 35B / 8B プレビューモデルを Hugging Face と ModelScope で公開。 diff --git a/assets/edge0-release/news/ja/news-2026-09-16.svg b/assets/edge0-release/news/ja/news-2026-09-16.svg new file mode 100644 index 00000000..0ba793b5 --- /dev/null +++ b/assets/edge0-release/news/ja/news-2026-09-16.svg @@ -0,0 +1,8 @@ + +35B 技術報告書2026年9月16日 · 35B 技術報告書 · 学習済みルーティング予測で、SSD から 35B MoE を実行。 + + + +2026年9月16日 +35B 技術報告書 +学習済みルーティング予測で、SSD から 35B MoE を実行。 diff --git a/assets/edge0-release/news/ja/news-2026-09-30.svg b/assets/edge0-release/news/ja/news-2026-09-30.svg new file mode 100644 index 00000000..d3cebaaf --- /dev/null +++ b/assets/edge0-release/news/ja/news-2026-09-30.svg @@ -0,0 +1,8 @@ + +4プラットフォームのエンジン2026年9月30日 · 4プラットフォームのエンジン · iOS、macOS、Android、Windows 対応。pre-edge0-infer に保存。 + + + +2026年9月30日 +4プラットフォームのエンジン +iOS、macOS、Android、Windows 対応。pre-edge0-infer に保存。 diff --git a/assets/edge0-release/news/ja/news-2026-11-04.svg b/assets/edge0-release/news/ja/news-2026-11-04.svg new file mode 100644 index 00000000..2927b00e --- /dev/null +++ b/assets/edge0-release/news/ja/news-2026-11-04.svg @@ -0,0 +1,8 @@ + +統合推論エンジン2026年11月4日 · 統合推論エンジン · GGML ベースの共通 C++ API、ローカルサーバー、チャットのサンプル。 + + + +2026年11月4日 +統合推論エンジン +GGML ベースの共通 C++ API、ローカルサーバー、チャットのサンプル。 diff --git a/assets/edge0-release/news/ja/news-2026-11-13.svg b/assets/edge0-release/news/ja/news-2026-11-13.svg new file mode 100644 index 00000000..8cf74121 --- /dev/null +++ b/assets/edge0-release/news/ja/news-2026-11-13.svg @@ -0,0 +1,8 @@ + +145B と 120B モデル2026年11月13日 · 145B と 120B モデル · NVIDIA GPU 1枚で動く潜在空間 MoE。Q3_K と NVFP4 を提供。 + + + +2026年11月13日 +145B と 120B モデル +NVIDIA GPU 1枚で動く潜在空間 MoE。Q3_K と NVFP4 を提供。 diff --git a/assets/edge0-release/news/news-2026-09-08.svg b/assets/edge0-release/news/news-2026-09-08.svg new file mode 100644 index 00000000..2bbc4b99 --- /dev/null +++ b/assets/edge0-release/news/news-2026-09-08.svg @@ -0,0 +1,10 @@ + +First open-source release8 September 2026 · First open-source release · The edge0 framework and 35B / 8B preview models on Hugging Face and ModelScope. + + + +8 September 2026 +First open-source release +The edge0 framework and 35B / 8B preview models on Hugging Face andModelScope. + + diff --git a/assets/edge0-release/news/news-2026-09-16.svg b/assets/edge0-release/news/news-2026-09-16.svg new file mode 100644 index 00000000..14be2a9e --- /dev/null +++ b/assets/edge0-release/news/news-2026-09-16.svg @@ -0,0 +1,10 @@ + +35B technical report16 September 2026 · 35B technical report · Serving 35B MoEs from SSD with trained routing prediction. + + + +16 September 2026 +35B technical report +Serving 35B MoEs from SSD with trained routing prediction. + + diff --git a/assets/edge0-release/news/news-2026-09-30.svg b/assets/edge0-release/news/news-2026-09-30.svg new file mode 100644 index 00000000..4c7f49e2 --- /dev/null +++ b/assets/edge0-release/news/news-2026-09-30.svg @@ -0,0 +1,10 @@ + +Engines for four platforms30 September 2026 · Engines for four platforms · iOS, macOS, Android and Windows engines; archived at pre-edge0-infer. + + + +30 September 2026 +Engines for four platforms +iOS, macOS, Android and Windows engines; archived at pre-edge0-infer. + + diff --git a/assets/edge0-release/news/news-2026-11-04.svg b/assets/edge0-release/news/news-2026-11-04.svg new file mode 100644 index 00000000..d51f774d --- /dev/null +++ b/assets/edge0-release/news/news-2026-11-04.svg @@ -0,0 +1,10 @@ + +Unified inference engine4 November 2026 · Unified inference engine · A GGML-based engine with a shared C++ API, local server and chat examples. + + + +4 November 2026 +Unified inference engine +A GGML-based engine with a shared C++ API, local server and chat examples. + + diff --git a/assets/edge0-release/news/news-2026-11-13.svg b/assets/edge0-release/news/news-2026-11-13.svg new file mode 100644 index 00000000..8be805c9 --- /dev/null +++ b/assets/edge0-release/news/news-2026-11-13.svg @@ -0,0 +1,10 @@ + +145B and 120B models13 November 2026 · 145B and 120B models · Latent MoE models for one NVIDIA GPU, in Q3_K and NVFP4. + + + +13 November 2026 +145B and 120B models +Latent MoE models for one NVIDIA GPU, in Q3_K and NVFP4. + + diff --git a/assets/edge0-release/news/zh/news-2026-09-08.svg b/assets/edge0-release/news/zh/news-2026-09-08.svg new file mode 100644 index 00000000..02bcb031 --- /dev/null +++ b/assets/edge0-release/news/zh/news-2026-09-08.svg @@ -0,0 +1,8 @@ + +首次开源发布2026年9月8日 · 首次开源发布 · edge0 框架及 35B / 8B 预览模型,现已发布于 Hugging Face 与 ModelScope。 + + + +2026年9月8日 +首次开源发布 +edge0 框架及 35B / 8B 预览模型,现已发布于 Hugging Face 与 ModelScope。 diff --git a/assets/edge0-release/news/zh/news-2026-09-16.svg b/assets/edge0-release/news/zh/news-2026-09-16.svg new file mode 100644 index 00000000..74169337 --- /dev/null +++ b/assets/edge0-release/news/zh/news-2026-09-16.svg @@ -0,0 +1,8 @@ + +35B 技术报告2026年9月16日 · 35B 技术报告 · 通过训练路由预测,从 SSD 运行 35B MoE 模型。 + + + +2026年9月16日 +35B 技术报告 +通过训练路由预测,从 SSD 运行 35B MoE 模型。 diff --git a/assets/edge0-release/news/zh/news-2026-09-30.svg b/assets/edge0-release/news/zh/news-2026-09-30.svg new file mode 100644 index 00000000..04224a3e --- /dev/null +++ b/assets/edge0-release/news/zh/news-2026-09-30.svg @@ -0,0 +1,8 @@ + +四个平台的推理引擎2026年9月30日 · 四个平台的推理引擎 · iOS、macOS、Android 与 Windows 引擎;已归档至 pre-edge0-infer。 + + + +2026年9月30日 +四个平台的推理引擎 +iOS、macOS、Android 与 Windows 引擎;已归档至 pre-edge0-infer。 diff --git a/assets/edge0-release/news/zh/news-2026-11-04.svg b/assets/edge0-release/news/zh/news-2026-11-04.svg new file mode 100644 index 00000000..6712e2bf --- /dev/null +++ b/assets/edge0-release/news/zh/news-2026-11-04.svg @@ -0,0 +1,8 @@ + +统一推理引擎2026年11月4日 · 统一推理引擎 · 基于 GGML,共用 C++ API,提供本地服务与聊天示例。 + + + +2026年11月4日 +统一推理引擎 +基于 GGML,共用 C++ API,提供本地服务与聊天示例。 diff --git a/assets/edge0-release/news/zh/news-2026-11-13.svg b/assets/edge0-release/news/zh/news-2026-11-13.svg new file mode 100644 index 00000000..705bdec3 --- /dev/null +++ b/assets/edge0-release/news/zh/news-2026-11-13.svg @@ -0,0 +1,8 @@ + +145B 与 120B 模型2026年11月13日 · 145B 与 120B 模型 · 单张 NVIDIA GPU 运行的潜空间 MoE 模型,提供 Q3_K 与 NVFP4。 + + + +2026年11月13日 +145B 与 120B 模型 +单张 NVIDIA GPU 运行的潜空间 MoE 模型,提供 Q3_K 与 NVFP4。 diff --git a/assets/edge0-release/quality-overview.svg b/assets/edge0-release/quality-overview.svg new file mode 100644 index 00000000..e8cb94c1 --- /dev/null +++ b/assets/edge0-release/quality-overview.svg @@ -0,0 +1,638 @@ + + + Quality — six benchmarks, six modelsAll six vertical-bar panels share a fixed 0–100 score scale; higher is better. The two priority panels appear above four smaller panels. Full model names are shown in the shared legend; stable short names appear below the bars. DeepSWE 1.1: Edge0-145B: 64.6; Edge0-120B: 51.3; Qwen3.8-Flash-Next: 58.7; Qwen3.8-27B: 42.2; DeepSeek-V4-Flash-0731: 54.4; Claude-Opus-4.6 (Max): not reported. Terminal-Bench 2.1: Edge0-145B: 86.5; Edge0-120B: 75.3; Qwen3.8-Flash-Next: 83.3; Qwen3.8-27B: 73.0; DeepSeek-V4-Flash-0731: 82.7; Claude-Opus-4.6 (Max): 78.2. HLE: Edge0-145B: 35.4; Edge0-120B: 31.0; Qwen3.8-Flash-Next: 35.9; Qwen3.8-27B: 30.8; DeepSeek-V4-Flash-0731: 33.8; Claude-Opus-4.6 (Max): 40.0. GPQA-Diamond: Edge0-145B: 90.4; Edge0-120B: 87.4; Qwen3.8-Flash-Next: 91.7; Qwen3.8-27B: 89.2; DeepSeek-V4-Flash-0731: 90.8; Claude-Opus-4.6 (Max): 91.3. IFBench: Edge0-145B: 80.6; Edge0-120B: 79.3; Qwen3.8-Flash-Next: 81.3; Qwen3.8-27B: 79.5; DeepSeek-V4-Flash-0731: 79.2; Claude-Opus-4.6 (Max): 62.5. AA-LCR: Edge0-145B: 79.3; Edge0-120B: 81.0; Qwen3.8-Flash-Next: 79.1; Qwen3.8-27B: 82.0; DeepSeek-V4-Flash-0731: 79.7; Claude-Opus-4.6 (Max): 78.0. Missing scores are not drawn as zero. Results are listed by model.{"layout":"one figure; two wide priority panels above four smaller panels","orientation":"vertical","baseline_date":"2026-11-12","baseline_sha256":"e5a4aafbd4e96388ad01c847a6779efa8c43ba78de4bedcb380689fb75986267","scale":[0,100],"unit":"score","palette":{"signal":"#E63946","ivory":"#F1FAEE","ice":"#A8DADC","steel":"#45789D","navy":"#1D3557"},"charts":[{"benchmark":"deepswe_1_1","label":"DeepSWE 1.1","priority":true,"rows":[{"model":"Edge0-145B","value":64.6,"color":"#E63946"},{"model":"Edge0-120B","value":51.3,"color":"#D98289"},{"model":"Qwen3.8-Flash-Next","value":58.7,"color":"#F1FAEE"},{"model":"Qwen3.8-27B","value":42.2,"color":"#F1FAEE"},{"model":"DeepSeek-V4-Flash-0731","value":54.4,"color":"#F1FAEE"},{"model":"Claude-Opus-4.6 (Max)","value":null,"color":"#A8DADC"}]},{"benchmark":"terminal_bench_2_1","label":"Terminal-Bench 2.1","priority":true,"rows":[{"model":"Edge0-145B","value":86.5,"color":"#E63946"},{"model":"Edge0-120B","value":75.3,"color":"#D98289"},{"model":"Qwen3.8-Flash-Next","value":83.3,"color":"#F1FAEE"},{"model":"Qwen3.8-27B","value":73.0,"color":"#F1FAEE"},{"model":"DeepSeek-V4-Flash-0731","value":82.7,"color":"#F1FAEE"},{"model":"Claude-Opus-4.6 (Max)","value":78.2,"color":"#A8DADC"}]},{"benchmark":"hle","label":"HLE","priority":false,"rows":[{"model":"Edge0-145B","value":35.4,"color":"#E63946"},{"model":"Edge0-120B","value":31.0,"color":"#D98289"},{"model":"Qwen3.8-Flash-Next","value":35.9,"color":"#F1FAEE"},{"model":"Qwen3.8-27B","value":30.8,"color":"#F1FAEE"},{"model":"DeepSeek-V4-Flash-0731","value":33.8,"color":"#F1FAEE"},{"model":"Claude-Opus-4.6 (Max)","value":40.0,"color":"#A8DADC"}]},{"benchmark":"gpqa_diamond","label":"GPQA-Diamond","priority":false,"rows":[{"model":"Edge0-145B","value":90.4,"color":"#E63946"},{"model":"Edge0-120B","value":87.4,"color":"#D98289"},{"model":"Qwen3.8-Flash-Next","value":91.7,"color":"#F1FAEE"},{"model":"Qwen3.8-27B","value":89.2,"color":"#F1FAEE"},{"model":"DeepSeek-V4-Flash-0731","value":90.8,"color":"#F1FAEE"},{"model":"Claude-Opus-4.6 (Max)","value":91.3,"color":"#A8DADC"}]},{"benchmark":"ifbench","label":"IFBench","priority":false,"rows":[{"model":"Edge0-145B","value":80.6,"color":"#E63946"},{"model":"Edge0-120B","value":79.3,"color":"#D98289"},{"model":"Qwen3.8-Flash-Next","value":81.3,"color":"#F1FAEE"},{"model":"Qwen3.8-27B","value":79.5,"color":"#F1FAEE"},{"model":"DeepSeek-V4-Flash-0731","value":79.2,"color":"#F1FAEE"},{"model":"Claude-Opus-4.6 (Max)","value":62.5,"color":"#A8DADC"}]},{"benchmark":"aa_lcr","label":"AA-LCR","priority":false,"rows":[{"model":"Edge0-145B","value":79.3,"color":"#E63946"},{"model":"Edge0-120B","value":81.0,"color":"#D98289"},{"model":"Qwen3.8-Flash-Next","value":79.1,"color":"#F1FAEE"},{"model":"Qwen3.8-27B","value":82.0,"color":"#F1FAEE"},{"model":"DeepSeek-V4-Flash-0731","value":79.7,"color":"#F1FAEE"},{"model":"Claude-Opus-4.6 (Max)","value":78.0,"color":"#A8DADC"}]}]} + + + + image/svg+xml + + + Edge0 Quality chart generator + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Edge0 + 145B + + + + + + Edge0 + 120B + + + + + + Qwen3.8 + Flash-Next + + + + + + Qwen3.8 + 27B + + + + + + DeepSeek + V4-Flash + + + + + + Claude + Opus 4.6 + + + + + + + + + 64.6 + + + 51.3 + + + 58.7 + + + 42.2 + + + 54.4 + + + — + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Edge0 + 145B + + + + + + Edge0 + 120B + + + + + + Qwen3.8 + Flash-Next + + + + + + Qwen3.8 + 27B + + + + + + DeepSeek + V4-Flash + + + + + + Claude + Opus 4.6 + + + + + + + + + 86.5 + + + 75.3 + + + 83.3 + + + 73.0 + + + 82.7 + + + 78.2 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 145B + + + + + + 120B + + + + + + Qwen + Flash + + + + + + Qwen + 27B + + + + + + DS-V4 + Flash + + + + + + Claude + 4.6 + + + + + + + + + 35.4 + + + 31.0 + + + 35.9 + + + 30.8 + + + 33.8 + + + 40.0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 145B + + + + + + 120B + + + + + + Qwen + Flash + + + + + + Qwen + 27B + + + + + + DS-V4 + Flash + + + + + + Claude + 4.6 + + + + + + + + + 90.4 + + + 87.4 + + + 91.7 + + + 89.2 + + + 90.8 + + + 91.3 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 145B + + + + + + 120B + + + + + + Qwen + Flash + + + + + + Qwen + 27B + + + + + + DS-V4 + Flash + + + + + + Claude + 4.6 + + + + + + + + + 80.6 + + + 79.3 + + + 81.3 + + + 79.5 + + + 79.2 + + + 62.5 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 145B + + + + + + 120B + + + + + + Qwen + Flash + + + + + + Qwen + 27B + + + + + + DS-V4 + Flash + + + + + + Claude + 4.6 + + + + + + + + + 79.3 + + + 81.0 + + + 79.1 + + + 82.0 + + + 79.7 + + + 78.0 + + + + Edge0 benchmark performance + + + Six models. Six benchmarks. + + + AGENT & CODING + + + GENERAL REASONING & KNOWLEDGE + + + DeepSWE 1.1 + + + Terminal-Bench 2.1 + + + HLE + + + GPQA-Diamond + + + IFBench + + + AA-LCR + + + Scores use a shared 0–100 scale · Higher is better · — Not reported + + + + + + + Edge0-145B + + + + + + Edge0-120B + + + + + + Qwen3.8-Flash-Next + + + + + + Qwen3.8-27B + + + + + + DeepSeek-V4-Flash-0731 + + + + + + Claude-Opus-4.6 (Max) + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/assets/edge0-release/showcase-chapters.vtt b/assets/edge0-release/showcase-chapters.vtt new file mode 100644 index 00000000..38044fc4 --- /dev/null +++ b/assets/edge0-release/showcase-chapters.vtt @@ -0,0 +1,16 @@ +WEBVTT + +00:00:00.000 --> 00:00:36.567 +Local Chat & Coding + +00:00:36.567 --> 00:00:58.400 +Video Production + +00:00:58.400 --> 00:01:19.567 +Manhattan in 3D + +00:01:19.567 --> 00:01:38.934 +Cathedral World Building + +00:01:38.934 --> 00:02:01.302 +PCB Design diff --git a/assets/edge0-release/showcase-poster.svg b/assets/edge0-release/showcase-poster.svg new file mode 100644 index 00000000..80b6e4ec --- /dev/null +++ b/assets/edge0-release/showcase-poster.svg @@ -0,0 +1,2 @@ + +Edge0 in actionWatch the complete 2:01 showcase, recorded with Edge0-145B. Recording quantization is unconfirmed. The original video frame is shown in full. The play symbol is a visual link affordance, not an embedded player.{"image_treatment": "Original JPEG bytes embedded unchanged; full 16:9 image without cropping or recoloring.", "model": "Edge0-145B", "play_style": "Existing v12 mountain-inspired teal/lavender/blush control styling; local accent, not a global palette change.", "poster_time": 1.5, "recording_build": null, "source": "model-cards/Edge0-145B-q3k/assets/demos/showcase-frame.jpg", "source_sha256": "a558bf61ddd491bbf364941b8dc0af0421444c8c866d55973dc0cb9d521a825d"}Play showcase2:01 diff --git a/assets/edge0-release/showcase.mp4 b/assets/edge0-release/showcase.mp4 new file mode 100644 index 00000000..5b19a4a9 Binary files /dev/null and b/assets/edge0-release/showcase.mp4 differ diff --git a/assets/edge0-release/speed-120B.svg b/assets/edge0-release/speed-120B.svg new file mode 100644 index 00000000..6a525f47 --- /dev/null +++ b/assets/edge0-release/speed-120B.svg @@ -0,0 +1,2 @@ + +Edge0-120B throughput by hardware and buildAll values are tok/s. Q3_K rows are highlighted. Machine: RTX 5090 D 24 GB, Build: Q3_K, 4K prefill: 3236.7, 16K prefill: 4576.5, Chat decode: 130.2, Agent decode: 144.6; Machine: RTX 5090 D 24 GB, Build: NVFP4, 4K prefill: 2668.5, 16K prefill: 4357.1, Chat decode: 124.9, Agent decode: 135.5; Machine: RTX 4090 24 GB, Build: Q3_K, 4K prefill: 2637.5, 16K prefill: 3551.1, Chat decode: 95.0, Agent decode: 104.9; Machine: RTX Spark N1X 60 GiB, Build: Q3_K, 4K prefill: 987.0, 16K prefill: 1081.7, Chat decode: 47.2, Agent decode: 68.4; Machine: RTX Spark N1X 60 GiB, Build: NVFP4, 4K prefill: 996.4, 16K prefill: 1066.9, Chat decode: 45.1, Agent decode: 68.9; Machine: Apple M2 Ultra (Metal), Build: Q3_K, 4K prefill: 867.6, 16K prefill: 908.7, Chat decode: 60.4, Agent decode: 63.0; Machine: 16 GiB VRAM + 20 GiB RAM, Build: Q3_K, 4K prefill: 430, 16K prefill: 778, Chat decode: 62.4, Agent decode: 73.3; Machine: 16 GiB VRAM + 20 GiB RAM, Build: NVFP4, 4K prefill: 361.1, 16K prefill: 619.7, Chat decode: 51.3, Agent decode: 59.9MachineBuild4K prefill16K prefillChat decodeAgent decodeRTX 5090 D 24 GBQ3_K3236.74576.5130.2144.6RTX 5090 D 24 GBNVFP42668.54357.1124.9135.5RTX 4090 24 GBQ3_K2637.53551.195.0104.9RTX Spark N1X 60 GiBQ3_K987.01081.747.268.4RTX Spark N1X 60 GiBNVFP4996.41066.945.168.9Apple M2 Ultra (Metal)Q3_K867.6908.760.463.016 GiB VRAM + 20 GiB RAMQ3_K43077862.473.316 GiB VRAM + 20 GiB RAMNVFP4361.1619.751.359.9 diff --git a/assets/edge0-release/speed-145B.svg b/assets/edge0-release/speed-145B.svg new file mode 100644 index 00000000..aa528eaa --- /dev/null +++ b/assets/edge0-release/speed-145B.svg @@ -0,0 +1,2 @@ + +Edge0-145B throughput by hardware and buildAll values are tok/s. Q3_K rows are highlighted. Machine: RTX 5090 D 24 GB, Build: Q3_K, 4K prefill: 2169.9, 16K prefill: 3554.9, Chat decode: 99.7, Agent decode: 121.2; Machine: RTX 5090 D 24 GB, Build: NVFP4, 4K prefill: 1839.6, 16K prefill: 3165.7, Chat decode: 79.6, Agent decode: 98.3; Machine: RTX 4090 24 GB, Build: Q3_K, 4K prefill: 2042.0, 16K prefill: 3179.4, Chat decode: 69.9, Agent decode: 91.7; Machine: RTX Spark N1X 60 GiB, Build: Q3_K, 4K prefill: 674.0, 16K prefill: 770.3, Chat decode: 37.7, Agent decode: 36.7; Machine: RTX Spark N1X 60 GiB, Build: NVFP4, 4K prefill: 821.2, 16K prefill: 922.4, Chat decode: 40.1, Agent decode: 46.0; Machine: Apple M2 Ultra (Metal), Build: Q3_K, 4K prefill: 755.6, 16K prefill: 800.3, Chat decode: 60.9, Agent decode: 57.0; Machine: 16 GiB VRAM + 20 GiB RAM, Build: Q3_K, 4K prefill: 249, 16K prefill: 335, Chat decode: 36.8, Agent decode: 44.9MachineBuild4K prefill16K prefillChat decodeAgent decodeRTX 5090 D 24 GBQ3_K2169.93554.999.7121.2RTX 5090 D 24 GBNVFP41839.63165.779.698.3RTX 4090 24 GBQ3_K2042.03179.469.991.7RTX Spark N1X 60 GiBQ3_K674.0770.337.736.7RTX Spark N1X 60 GiBNVFP4821.2922.440.146.0Apple M2 Ultra (Metal)Q3_K755.6800.360.957.016 GiB VRAM + 20 GiB RAMQ3_K24933536.844.9 diff --git a/docs/legacy-models.md b/docs/legacy-models.md new file mode 100644 index 00000000..48f3f918 --- /dev/null +++ b/docs/legacy-models.md @@ -0,0 +1,234 @@ +

Edge0

+ +# Previous release · 35B / 8B + +

English · 中文 · 日本語 · Español · Français

+ +[← 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: + +Original 35B and 8B quality results, including both FP16 base models + +
+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): + +Six original 35B device measurements with prompt length, first-token time, decode and memory metrics + +
+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 @@ +

Edge0

+ + + +# Versión anterior · 35B / 8B + +

English · 中文 · 日本語 · Español · Français

+ +[← 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. + +Resultados de calidad anteriores de 35B y 8B, incluidos ambos modelos base FP16 + +
+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): + +Seis mediciones anteriores de 35B por dispositivo, con longitud del prompt, tiempo al primer token, decodificación y memoria + +
+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 @@ +

Edge0

+ + + +# Version précédente · 35B / 8B + +

English · 中文 · 日本語 · Español · Français

+ +[← 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. + +Résultats de qualité antérieurs de 35B et 8B, incluant leurs deux modèles de base FP16 + +
+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) : + +Six mesures antérieures de 35B par appareil : longueur du prompt, temps du premier token, décodage et mémoire + +
+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

+ + + +# 以前のリリース · 35B / 8B + +

English · 中文 · 日本語 · Español · Français

+ +[← Edge0 ホーム · 最新リリース:145B / 120B](../README_ja.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**:学習済みヘッドが1ステップ先のルーティングを予測し、エキスパートのロードを順伝播と重ねて待ち時間を削減します。デコードスループットは**最大 +59%**向上し、ストレージ遅延、モデル規模、ルーティング幅 *K* が大きいほど効果が増します。 +- **Recover-LoRA**:int4 ベースを固定し、FP 教師モデルからの蒸留で LoRA アダプターを学習して、4ビット量子化による損失の大部分を回復します([性能評価](#quality)参照)。アダプターはベースとは別に保存され、有効・無効を切り替えられます。 + + + +## モデル + +フレームワークには `edge0-35b` と `edge0-8b` の2つのモデル規模が付属します。各リリースは、公開チェックポイント、学習済み 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 | ネイティブエンジン(予定) | + +2つの公開チェックポイントは、それぞれオープンなスパース 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-35b` は `edge0-infer/` の**ネイティブエンジン**(GGML ベース、ネイティブ C++ API)で動作し、`edge0-145b` と `edge0-120b` は Strata のフォークである [`edge0-strata/`](../edge0-strata/EDGE0.md) の **edge0-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 と同じ設定・既定値を使います。 +- **エキスパートのオンデマンド読み込み**:各層の固定数スロットへストレージから必要なエキスパートを読み込むため、メモリ予算を超えるモデルも全体をロードせずに実行できます。 +- **2つのルーティングモード**:`predicted`(既定)は現在の token の計算中に prerouter が次の 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です。 + +以前の35Bと8Bの性能評価結果。両方のFP16ベースモデルを含む + +
+コピー可能な性能評価データ + +| ベンチマーク | 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` ルーティングを測定しました(各範囲は3プロセスでの最小値から最大値)。 + +以前の35Bの6機器での測定結果。プロンプト長、最初のtokenまでの時間、デコード、メモリ指標を含む + +
+コピー可能な速度測定データ + +| プラットフォーム | デバイス | プロンプト長 | 最初の 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年第4四半期 · ネイティブエンジンとストリーミングパイプライン + +- ✅ **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 の4プラットフォーム向け 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** を初めてオープンソースで公開し、2つのモデル規模、[`Edge0-35B-A3B-preview`](https://huggingface.co/Edge0/Edge0-35B-A3B-preview) と [`Edge0-8B-A1B-preview`](https://huggingface.co/Edge0/Edge0-8B-A1B-preview) を Hugging Face と ModelScope で公開しました。 + +[← Edge0 ホーム](../README_ja.md) diff --git a/docs/legacy-models_zh.md b/docs/legacy-models_zh.md new file mode 100644 index 00000000..2f3d422b --- /dev/null +++ b/docs/legacy-models_zh.md @@ -0,0 +1,227 @@ +

Edge0

+ + + +# 此前版本 · 35B / 8B + +

English · 中文 · 日本語 · Español · Français

+ +[← 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: + +此前 35B 与 8B 的能力评测结果,包括两款 FP16 基座模型 + +
+可复制的能力评测数据 + +| 评测 | 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` 路由模式(每个范围为三个进程测量的最小值至最大值): + +此前 35B 在六种设备上的测量结果,含提示词长度、首 token 耗时、解码与内存指标 + +
+可复制的性能测试数据 + +| 平台 | 设备 | 提示词长度 | 首 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 +All Edge0-145B throughput measurements; Q3_K rows highlighted + +
+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 +All Edge0-120B throughput measurements; Q3_K rows highlighted + +
+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 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 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." +}