Tracker & Eval Pro (v0.43.0)

--tracker allowlist

Closed allowlist: wandb | tensorboard | mlflow | swanlab | trackio | none.

bash
soup train --tracker mlflow

Mutually exclusive with legacy --wandb / --tensorboard via resolve_report_to.

Telemetry (not wired, nothing is sent)

v0.43.0 landed a telemetry schema (soup_version / command / python / os / arch / duration) and the SOUP_TELEMETRY / SOUP_POSTHOG_KEY / SOUP_POSTHOG_ENDPOINT environment variables that would configure it.

Corrected in v0.71.41: those primitives exist, but they are not wired to any command. No usage data is ever sent today, with or without the environment variables. Wiring is deferred until a public privacy policy ships.

NLG metrics

Pure-Python BLEU + ROUGE-1/2/L + effective_tokens_per_second. Closed allowlist NLG_METRICS = frozenset({"bleu","rouge_1","rouge_2","rouge_l"}).

KL-divergence calibration

bash
soup eval quant-check --before old.json --after new.json

Classifies the KL delta as OK / MINOR / MAJOR at 0.05 / 0.20 thresholds (mirrors quant-check).

Model Arena (Elo)

An A/B tournament with Elo ratings: K=32 default, 256-model cap, 1M-match cap, and Tournament.ratings returns a MappingProxyType so a caller cannot mutate the table.

Library only, no CLI surface. It ships as soup_cli.eval.arena and is used from Python. There is no soup eval arena subcommand; soup eval registers benchmark, custom, judge, auto, compare, leaderboard, human, gate, quant-check, design, discover, lock, coverage, against, gate-install, unlearning, behavior, capability, checklist, irt-subset and citation. For a pairwise verdict from the CLI, use soup ship --task-mode pairwise.

New benchmarks

ceval, cmmlu, aider_polyglot (live Aider Polyglot runner v0.43.1).

Profiling helpers

  • memory_snapshot_context — CUDA torch.cuda.memory._record_memory_history wrapper
  • detect_anomaly_contexttorch.autograd.set_detect_anomaly wrapper
  • nccl_bandwidth_check — reference table for h100 / a100 / v100 / rtx40-series (OK ≥80% / MINOR ≥50% / MAJOR <50%)

VS Code launch.json writer

bash
soup doctor --disk

Writes .vscode/launch.json with cwd containment + symlink TOCTOU guard.

soup data demo

4-bundle frozen registry: alpaca_demo / sharegpt_demo / dpo_demo / grpo_demo. Atomic copy via sibling temp file + os.replace.

bash
soup data demo alpaca_demo --output ./train.jsonl

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.