エキスパートシャーディング
MoE をエキスパート粒度で分割し、スマートフォンが 1.4 GB のレイヤーではなく 42–340 MB のエキスパートを担う。
エキスパートシャーディングはスウォームの運搬単位をレイヤー(122B で約 1.4 GB)からエキスパート(5.3 MB)へ下げます。弱いデバイスは 8–64 個のエキスパートスライス(42–340 MB)をダウンロードし、アテンションも KV もサンプラーもない純関数ワーカーとしてロードし、バックボーンのルーターが自分のエキスパートを選ぶたびに計算します。
エンジンの現状。エキスパート粒度のシャーディングは Kvasir の以前のエンジン上で構築・実証されたもので、以下の結果はその成果です。現在のエンジンである [p4](/wiki/p4) は今日レイヤー粒度で提供しており、エキスパートシャーディングをそこへ移す作業は設計済みで進行中です。個々の記述がツール名やルート名を挙げている場合、それは以前のエンジンで動いていたものです。
二つの役割
バックボーン × ワーカー
MoE レイヤー内のカット地点(ルーターはバックボーンで一度だけ)。
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
- バックボーンはデンスパス(アテンション、norm、ルーター、共有エキスパート、combine)を保持し、チャーン耐性のため全エキスパートを RAM オフロードのフォールバック複製として常駐させます。
- ワーカー(
linkcpp-expert-worker --serve)は 1 本の長寿命 TCP ストリームで(n_used, n_tokens, cur, sel) → expertsに応答します — スマートフォンでは 443 リレーがトンネルするまさにそのストリームです。 - カバレッジはエキスパートカバレッジ市場で自己修復します:
POST /api/expert-coverageが保有をハートビートし、GET /api/expert-demandが希少性を集計し、POST /api/expert-volunteerが予算に合わせて最も希少な範囲を割り当てます。
約束ではなく測定
実機で検証済み
- シャーディング計算 == モノリシック、max|Δ| = 3.6e-12(近似ではなく厳密な再グループ化)。
- 実 122B デコードのクロスプロセスディスパッチ:argmax MATCH、ロジット cosine 0.99869 — インプロセスとバイト単位で同一。
- Galaxy S25 が自分の 1.58 GB スライスを自律ダウンロードし、毎トークン layer-0 のエキスパートを計算:ローカル実行と 8/8 トークン一致。
- 公開インターネット越しのリモート GPU — トークンごとに WAN 往復 1 回 — でもグリーディに 8/8 一致を維持(cosine 0.99773):直接リンク上で1.2% のスループットオーバーヘッド、CDN エッジ経由では ~28%。トークンごとの逐次ディスパッチが払う正直なコストであり、このファブリックのレバーが低レイテンシではなくバッチ処理である理由です。
- バッチディスパッチはバッチ 512(ROCm)でワーカーあたり 53k tok/s — スウォームを実用にするスループットファブリック特性。