v0.53.8 / v0.53.10 — Remote loaders, alternative hubs, tracker extras
Live fsspec remote loaders
data:
train: s3://my-bucket/instructions.jsonlClosed scheme allowlist: s3, gs, gcs, az, abfs, abfss, oci. The schema gate from v0.42.0 is now backed by a real loader.
Alternative model hubs
training:
hub: modelscope # hf | modelscope | modelersv0.53.8 wires the dispatcher into soup train (pre-fetches the model before training starts). v0.53.10 plumbs the --hub flag through chat / serve / infer / merge / export / push and soup data download --hub.
The endpoint validation matches v0.29.0 HF endpoint validation: scheme allowlist, null-byte rejection, plain HTTP only for loopback, and RFC1918 / link-local / cloud-metadata IP literals refused over plain HTTP. An https hub endpoint is not checked for a private address, so these are not a general SSRF guard: the check on HF_ENDPOINT and the per-hub endpoint variables stops at the scheme and the plain-HTTP case.
Tracker extras
pip install "soup-cli[trackers]"
soup train --tracker mlflow # or swanlab | trackioThe [trackers] extra installs mlflow / swanlab / trackio as one bundle. Telemetry env vars (SOUP_TELEMETRY, SOUP_POSTHOG_KEY, SOUP_POSTHOG_ENDPOINT) existed here with no command wired to them. (Since changed: v0.75.0 wired telemetry as strictly opt-in, off unless SOUP_TELEMETRY=1, with a global --no-telemetry flag. The shipped wheel still sends nothing even when opted in, because its bundled project key is a placeholder the sender refuses by name. The payload, the policy and the placeholder.)
HF Space SDK auto-pick
soup deploy hf-space detects streamlit vs gradio automatically from the template's requirements.txt.
Bundled JSONL fixtures
The 4 demo bundles from v0.43.0 are now packaged as wheel data — they survive pip install --target and zipapp deployment.
New extras
pip install "soup-cli[mix]"—scikit-optimizefor the Bayesian mix optimizerpip install "soup-cli[data-pro]"—langdetect+presidio-analyzerfor proper langdetect / PII
Web UI: Tool Outputs panel
The Web UI sidebar grows a "Tool Outputs" panel (3s polling, XSS-safe rendering) backed by GET /api/tool-outputs. The SFT trainer callback writes tool-call records into an in-memory buffer (at most 1,000 records, gone when the process ends, so nothing survives a crash), and the panel shows them only when the run that wrote them shares a process with the server. A run started from the Web UI does not, so its panel stays empty; see the REST API reference.
Tests
- v0.53.8: 8,162 → 8,257 (+95)
- v0.53.10: 8,285 → 8,330 (+45)
See also
Soup is free and Apache-2.0. If it saved you a training run, starring the repo costs nothing and helps most. You can also fund the GPU time behind the work a 4 GB laptop cannot reach.