전문가 샤딩
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
- 백본은 dense 경로(어텐션·norm·라우터·shared expert·combine)를 맡고, churn 내성을 위해 모든 전문가를 RAM 오프로드된 fallback 복제본으로 상주시킵니다.
- 워커(
linkcpp-expert-worker --serve)는 하나의 long-lived TCP 스트림으로(n_used, n_tokens, cur, sel) → experts에 응답합니다 — 폰에서는 443 릴레이가 터널링하는 바로 그 스트림입니다. - 커버리지는 전문가 커버리지 마켓으로 자가 치유됩니다:
POST /api/expert-coverage가 보유를 heartbeat하고,GET /api/expert-demand가 희소성을 집계하고,POST /api/expert-volunteer가 예산에 맞춰 가장 희소한 범위를 배정합니다.
약속이 아니라 측정
실기기 검증
- 샤딩 계산 == monolithic, max|Δ| = 3.6e-12 (근사가 아닌 정확한 재그룹핑).
- live 122B decode의 cross-process dispatch: argmax MATCH, 로짓 cosine 0.99869 — in-process와 바이트 단위로 동일.
- Galaxy S25가 자기 1.58 GB 슬라이스를 자율 다운로드하고 매 토큰 layer-0 전문가를 계산: 로컬 실행과 8/8 토큰 동일.
- 공개 인터넷 너머의 원격 GPU — 토큰당 WAN 왕복 한 번 — 도 greedy 8/8 동일을 유지했습니다(cosine 0.99773): 직접 링크에서 1.2% 처리량 오버헤드, CDN 엣지를 거치면 ~28%. 토큰별 직렬 dispatch의 정직한 비용이자, 패브릭의 지렛대가 더 낮은 지연이 아니라 배치인 이유입니다.
- 배치 dispatch는 배치 512(ROCm)에서 워커당 53k tok/s — 스웜을 실용화하는 처리량-패브릭 성질.