Closes the doable tail of the export-QA + deferred-stub family on the RTX 3050 4 GB dev budget. Two deferred-stub runtimes go live, plus an ONNX export QA pass.
What's New
soup merge-sharded-fsdp-weightsis live (#96).consolidate_shards()lifts the v0.44.0 plan-only stub: lazy-torch +safetensors.torch.save, TOCTOU-hardened (enforce_under_cwd_and_no_symlinkon the output path and every shard,torch.load(weights_only=True), atomic write), a 16 GiB/shard cap, and duplicate-key handling (conflicting shape → error; same shape → keep-first + warn). New--plan-onlyflag;--yesremoved. Validated by merging two real FSDP shards on an RTX 3050.soup serve --kv-cache-typeis live for the transformers backend (#140).apply_kv_cache_type()→KvCacheRuntime:bf16/f16set the model compute dtype;q8_0wires the transformers quantized KV cache (cache_implementation="quantized", hqq backend) with a friendly install advisory when no quant backend is present;fp8is Hopper-gated. Early CLI validation rejects bad combos with exit 2.- ONNX export QA (#71). tiny-GPT2 round-trips cleanly; TinyLlama-1.1B is host-RAM-bound at the
onnx.loadexternal-data step (not a Soup bug) — documented intests/qa/v07114_qa.md.
Install / Upgrade
pip install --upgrade soup-cli
Security
consolidate_shardsrejects shards/output outside CWD and any symlink in the path (TOCTOU), loads withweights_only=True(no arbitrary pickle exec), and surfaces a renamed non-torch.binas a clean validation error.- KV-cache backend probe no longer raises when
optimumis absent — theq8_0path degrades to a friendly advisory instead of crashing.
Known Limitations
- GGUF export QA (#70), AWQ/GPTQ export QA (#72), CUDA+llama.cpp QA doc (#144), and HF Hub push/Spaces QA (#74) are infra-blocked on the RTX 3050 4 GB / Windows budget (need llama.cpp toolchain, maintained Windows quant wheels, or private HF creds) — kept open with the
infra-blockedlabel. - fp8 KV cache is Hopper-only in transformers; rejected on pre-(9,0) GPUs (use vLLM there).
- q8_0 KV cache needs
hqq(oroptimum-quanto) installed; otherwise the CLI exits 2 with an install hint.bf16/f16need no extra dep.
Full changelog: https://github.com/MakazhanAlpamys/Soup/blob/main/CHANGELOG.md