Next step: the real checkpoint is on the acer box
Weights: /home/rhmaomao/hosting/deepseek_v4_flash_0731
Pull the latest (includes the converter + packed-pool engine path):
Step 1 — discovery (paste the output back here):
python3 tools/convert-ds4f.py inspect /home/rhmaomao/hosting/deepseek_v4_flash_0731
This prints: shard count, config key mapping, routed-expert classification
(uniformity check = fixed-rate pool feasibility), dense per-layer bytes,
unclassified tensors (embed/norm/lm_head), and size estimates. The
converter refuses on missing config keys, non-uniform expert payloads, or
unmatched naming — if inspect shows surprises (e.g. a latent-MoE naming
scheme), the regexes get adjusted before any conversion runs.
Step 2 — convert (after inspect is confirmed):
python3 tools/convert-ds4f.py convert /home/rhmaomao/hosting/deepseek_v4_flash_0731 \
--out ~/ds4f-model
Expect this to be the slow part: it copies the expert pool as-is (no
quantization, no dtype conversion) — at FP8 that's on the order of 250 GB
of reads+writes. Progress prints every 2000 experts. Verify step at the
end checks file sizes against the manifest.
Step 3 — structural run (the memory gate is the star):
./ds4f ~/ds4f-model --trunk ~/ds4f-model/trunk.bin \
--offsets ~/ds4f-model/trunk.offsets --pool ~/ds4f-model/pool.bin \
--preset laptop
On a small-RAM box this will REFUSE with the memory plan printed — that's
the gate working. Dial --cache-gb / --trunk-gb / --pin-layers until
it passes, then paste the run report. The engine currently validates the
memory/I-O structure at real scale (no kernels yet — those are roadmap).
Known naming assumptions in the converter (from the V3 family):
model.layers.{i}.mlp.experts.{e}.* for routed experts,
model.layers.{i}. prefix for dense layer tensors. inspect will show
whether V4-Flash matches.
Next step: the real checkpoint is on the acer box
Weights:
/home/rhmaomao/hosting/deepseek_v4_flash_0731Pull the latest (includes the converter + packed-pool engine path):
Step 1 — discovery (paste the output back here):
This prints: shard count, config key mapping, routed-expert classification
(uniformity check = fixed-rate pool feasibility), dense per-layer bytes,
unclassified tensors (embed/norm/lm_head), and size estimates. The
converter refuses on missing config keys, non-uniform expert payloads, or
unmatched naming — if
inspectshows surprises (e.g. a latent-MoE namingscheme), the regexes get adjusted before any conversion runs.
Step 2 — convert (after inspect is confirmed):
python3 tools/convert-ds4f.py convert /home/rhmaomao/hosting/deepseek_v4_flash_0731 \ --out ~/ds4f-modelExpect this to be the slow part: it copies the expert pool as-is (no
quantization, no dtype conversion) — at FP8 that's on the order of 250 GB
of reads+writes. Progress prints every 2000 experts. Verify step at the
end checks file sizes against the manifest.
Step 3 — structural run (the memory gate is the star):
On a small-RAM box this will REFUSE with the memory plan printed — that's
the gate working. Dial
--cache-gb/--trunk-gb/--pin-layersuntilit passes, then paste the run report. The engine currently validates the
memory/I-O structure at real scale (no kernels yet — those are roadmap).
Known naming assumptions in the converter (from the V3 family):
model.layers.{i}.mlp.experts.{e}.*for routed experts,model.layers.{i}.prefix for dense layer tensors.inspectwill showwhether V4-Flash matches.