v0.53.8 / v0.53.10 — Remote loaders, alternative hubs, tracker extras

Live fsspec remote loaders

yaml
data:
  train: s3://my-bucket/instructions.jsonl

Closed 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

yaml
training:
  hub: modelscope   # hf | modelscope | modelers

v0.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

bash
pip install "soup-cli[trackers]"
soup train --tracker mlflow      # or swanlab | trackio

The [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-optimize for the Bayesian mix optimizer
  • pip install "soup-cli[data-pro]" — langdetect + presidio-analyzer for 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.