Phase 3 — Offload RAM pakar backbone (M0)

Alirkan FFN pakar MoE dari RAM CPU alih-alih VRAM, dan satu koordinator 64 GB menampung 122B — tanpa bedah graf.

FFN pakar tak harus tinggal di VRAM. Mengalirkannya dari RAM CPU membuat satu koordinator menampung model yang pakarnya melebihi VRAM-nya — fondasi yang membuat node lemah bisa bergabung dengan MoE besar.

Planner terverifikasi · GGUF 122B nyata

122B muat di satu koordinator 64 GB

Sebelumnya ring menempatkan bobot hanya di VRAM, sehingga 122B (77.6 GB) infeasible di GCD 64 GB. Dengan aturan offload pakar, dry-run kembali feasible:

feasible
rencana ring 122B
62.6
VRAM GiB (≤ 64)
14.2
RAM GiB (pakar)
10
lapisan di-offload
A coordinator siphoning expert tiles from VRAM into a RAM reservoir, stamped feasible

Keluaran planner — format aturan -ot mesin inferensi.

node 0  layers [0,48]  vram=62.6  ram=14.2  ot_rules=10
sample: blk\.38\.ffn_(up|down|gate)_(ch|)exps=CPU   # inference engine -ot format
Apa yang dikawatkan · Python murni, tanpa rebuild C++

Membawa aturan offload planner ke pemuatan nyata

  • planner — sudah mengeluarkan ot (aturan -ot gabungan koma) di tiap penempatan.
  • protocol.py — bidang StageStartRequest.ot ditambahkan.
  • runtime.py — meneruskan ot penempatan ke permintaan stage.
  • stage_service.py — koordinator diluncurkan dengan --override-tensor.
  • linkcpp-server meneruskan argumen tak dikenal ke llama-server standar, jadi -ot berlaku apa adanya.
# stage_service.py — coordinator branch
if request.ot:
    command += ["--override-tensor", request.ot]

Diverifikasi dengan tes bolak-balik protokol ot plus konfirmasi bahwa perintah koordinator mengeluarkan --override-tensor; hub di-deploy ulang bersih tanpa regresi. Yang tersisa saat itu: pemuatan penuh 77 GB dua-node (koordinator dengan offload + ponsel memegang jendela satu-lapisan ~1.5 GB), menunggu ketersediaan server. Inti M0 — offload backbone yang membuat node lemah dapat berpartisipasi di MoE besar — sudah tuntas di tingkat kode dan planner.