Sharding pakar

Membelah MoE pada butiran pakar, sehingga ponsel membawa 42–340 MB pakar alih-alih lapisan 1.4 GB.

Sharding pakar menurunkan unit angkut swarm dari lapisan (~1.4 GB pada 122B) ke pakar (5.3 MB). Perangkat lemah mengunduh irisan 8–64 pakar (42–340 MB), memuatnya sebagai worker fungsi-murni — tanpa attention, tanpa KV, tanpa sampler — dan menghitung pakarnya kapan pun router backbone memilihnya.

Status mesin. Sharding pada butiran pakar dibangun dan didemonstrasikan di mesin Kvasir sebelumnya, dan hasil-hasil di bawah ini berasal dari kerja itu. Mesin saat ini, [p4](/wiki/p4), melayani pada butiran lapisan hari ini; memindahkan sharding pakar ke atasnya sudah dirancang dan sedang dikerjakan. Di mana sebuah detail menyebut nama perkakas atau rute, itu adalah yang berjalan di mesin sebelumnya.

Dua peran

Backbone × worker

Titik potong di dalam satu lapisan MoE (router berjalan sekali, di backbone).

cur   = ffn_norm(x)                     # backbone
ids,p = top_k(softmax(cur @ router), 8) # backbone — authoritative
send  (cur rows, local_ids) → worker    # ~6 KB per decode step
recv  expert_out            ← worker    # worker: 3 mat-muls
x = x + combine(p, partials) + shared(cur)   # backbone — exact
  • Backbone memegang jalur padat (attention, norm, router, pakar bersama, combine) dan menyimpan semua pakar sebagai replika cadangan ter-offload ke RAM demi toleransi churn.
  • Worker (linkcpp-expert-worker --serve) menjawab (n_used, n_tokens, cur, sel) → experts lewat satu stream TCP berumur panjang — stream yang sama yang diterowongkan relay 443 untuk ponsel.
  • Cakupan memulihkan diri lewat pasar cakupan pakar: POST /api/expert-coverage mengirim heartbeat kepemilikan, GET /api/expert-demand mengagregasi kelangkaan, POST /api/expert-volunteer menetapkan rentang paling langka yang dipangkas sesuai anggaran node.
Diukur, bukan dijanjikan

Terverifikasi di perangkat nyata

  • Komputasi sharded == monolitik hingga max|Δ| = 3.6e-12 (pengelompokan ulang eksak, bukan aproksimasi).
  • Dispatch lintas-proses pada dekode 122B langsung: argmax MATCH, cosine logit 0.99869 — identik byte demi byte dengan in-process.
  • Sebuah Galaxy S25 mengunduh mandiri irisannya sebesar 1.58 GB dan menghitung pakar layer-0 di tiap token: 8/8 token identik dengan run lokal.
  • Sebuah GPU jarak jauh melalui internet publik — satu perjalanan bolak-balik WAN per token — tetap greedy 8/8 identik (cosine 0.99773): overhead throughput 1.2% pada tautan langsung, ~28% melalui edge CDN. Biaya jujur dari dispatch serial per-token, dan mengapa tuas jalinan adalah pengelompokan, bukan latensi lebih rendah.
  • Dispatch berkelompok mencapai 53k tok/s per worker pada batch 512 (ROCm) — sifat jalinan-throughput yang membuat swarm praktis.